Ios 11 ipad mini: iOS 11 is compatible with these devices

swift — сбой приложения только для Iphone 6 и iPad в IOS 11 с использованием Vision & Machine Learning API

Я создал приложение для живого перевода, которое идентифицирует объект и переводит его с помощью камеры пользователя. Он отлично работает на моем iPhone 6s и не падает ни в одном из симуляторов, но когда я запускаю его на iPhone 6, он падает, как только я пытаюсь перейти к каналу камеры. Apple также говорит, что на iPad происходит сбой.

Некоторые устройства просто не поддерживают Vision API или что-то не так с моим кодом?

 импорт UIKit
импортировать AVKit
импортировать видение
переменная языка = ""
переменная языка2 = ""
класс ViewController: UIViewController, AVCaptureVideoDataOutputSampleBufferDelegate, AVCapturePhotoCaptureDelegate {
      @IBAction func screenshotB(_ отправитель: любой) {
       //скриншот экрана камеры
    }
    Скриншот @IBOutlet слабой версии BOutlet: UIButton!
    @IBOutlet слабая переменная swirlyGuy: UIActivityIndicatorView!
    @IBOutlet слабая переменная title1: UILabel!
    @IBOutlet слабая переменная settingsButtonOutlet: UIButton!
    @IBOutlet слабый var launchScreen: UIViewX!
    @IBOutlet слабая переменная launchScreenLogo: UIImageView!
    функция остановкиSwirlyGuy(){
        swirlyGuy. stopAnimating()
    }
    пусть идентификаторLabel: UILabel = {
        пусть метка = UILabel()
        label.backgroundColor = UIColor (красный: 0, зеленый: 0, синий: 0, альфа: 0,4)
        label.textColor = .белый
        label.textAlignment = .центр
        label.translatesAutoresizingMaskIntoConstraints = false
        ярлык возврата
    }()
    Функция @IBAction prepareForUnwind (segue:UIStoryboardSegue) {
    }
    переопределить функцию viewDidLoad() {
        super.viewDidLoad()
        LaunchScreen.alpha = 1
        LaunchScreenLogo.alpha = 1
        swirlyGuy.startAnimating()
        // запускаем камеру
        пусть CaptureSession = AVCaptureSession()
        CaptureSession.sessionPreset = .hd4K3840x2160
        охранять let captureDevice = AVCaptureDevice.default (для: .video) else { return }
        охрана пусть ввод = попробовать? AVCaptureDeviceInput (устройство: устройство захвата) еще { return }
        CaptureSession.addInput(ввод)
        CaptureSession.startRunning()
        let previewLayer = AVCaptureVideoPreviewLayer (сеанс: CaptureSession)
        view. layer.addSublayer (previewLayer)
        предварительный просмотрLayer.frame = вид.кадр
        пусть dataOutput = AVCaptureVideoDataOutput()
        dataOutput.setSampleBufferDelegate (я, очередь: DispatchQueue (метка: "videoQueue"))
        CaptureSession.addOutput(вывод данных)
        setupIdentifierConfidenceLabel()
        НастройкаКнопкаНастройки()
        setupTitle()
        настройкаSwirlyGuy()
        настройкаСкриншот()
    }
    переопределить func viewDidAppear (_ анимированный: Bool) {
        super.viewDidAppear(анимированный)
        UIView.animate(withDuration: 1.5) {
            self.launchScreen.alpha = 0
            self.launchScreenLogo.alpha = 0
        }
    }
    приватная функция файла setupSettingsButton() {
        view.addSubview (настройкиButtonOutlet)
    }
    fileprivate func setupScreenshot() {
        view.addSubview (скриншот BOutlet)
    }
    приватная функция файла setupSwirlyGuy() {
        view.addSubview (swirlyGuy)
    }
    функция приватного файла setupTitle() {
        view. addSubview (название1)
    }
    fileprivate func setupIdentifierConfidenceLabel() {
        view.addSubview (identifierLabel)
        идентификаторLabel.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
        идентификаторLabel.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
        идентификаторLabel.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
        идентификаторLabel.heightAnchor.constraint(equalToConstant: 100).isActive = true
        идентификаторLabel.numberOfLines = 0
    }
    func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
        // print("Камера смогла зафиксировать кадр:", Date())
        защитите пусть pixelBuffer: CVPixelBuffer = CMSampleBufferGetImageBuffer (sampleBuffer) else { return }
      // модель
        охрана пусть модель = попробуй? VNCoreMLModel(для: Resnet50().model) иначе {return}
        пусть запрос = VNCoreMLRequest (модель: модель) { (finishedReq, ошибка) в
            //возможно, проверим ошибку
            // print(finishedReq. results)
            охранять пусть результаты = finishReq.results как? [VNClassificationObservation] иначе { return }
            охранять let firstObservation = results.first else { return }
            печать (firstObservation.identifier, firstObservation.confidence)
            пусть x = (firstObservation.confidence)
            пусть y = (x * 10000).rounded () / 10000
            пусть z = (firstObservation.identifier)
            пусть s = (self.translateSpanish (object1: firstObservation.identifier))
            пусть f = (self.translateFrench (object1: firstObservation.identifier))
       // переменная языка = ""
       // переменная lang2 = ""
             если язык == "английский" {
             язык = г
             }
             иначе, если язык == "Испанский" {
             язык = с
             }
             еще {
             язык = ф
             }
             если language2 == "Испанский" {
             язык2 = с
             }
             иначе, если язык2 == "Английский" {
             язык2 = г
             }
             еще {
             язык2 = f
             }
             DispatchQueue. main.async {
             self.identifierLabel.text = "\(lang)" + " = " + "\(lang2) \n \(y * 100)% точность"
             self.stopSwirlyGuy()
             }
        }
        пытаться? VNImageRequestHandler (cvPixelBuffer: pixelBuffer, параметры: [:]). Выполнить ([запрос])
    }
//Функции перевода опущены для краткости
 

Это код для контроллера представления, который переходит на главный экран, где происходит подача камеры и обработка Vision.

импортировать UIKit

класс FirstLaunchViewController: UIViewController {

 @IBOutlet слабый var title1: UILabelX!
@IBOutlet слабая переменная logo1: UIImageView!
@IBOutlet слабое описание переменной 1: UILabel!
@IBOutlet слабая переменная buttonOutlet: UIButtonX!
@IBOutlet слабый var initialBackground: UIViewX!
@IBOutlet слабый var initialLogo: UIImageView!
Функция @IBAction toVC (_ отправитель: любой) {
        UserDefaults.standard.set(false, forKey: "имя")
        выполнитьSegue(withIdentifier: "toMain", отправитель: сам)
}
переопределить функцию viewDidLoad() {
    super. viewDidLoad()
    начальныйЛого.альфа = 1
    начальный фон.альфа = 1
    title1.альфа = 0
    логотип1.альфа = 0
    описание1.альфа = 0
    кнопкаOutlet.alpha = 0
    // Выполните любую дополнительную настройку после загрузки представления.
}
переопределить func viewDidAppear (_ анимированный: Bool) {
    super.viewDidAppear(анимированный)
    UIView.animate(withDuration: 1.5, анимация: {
        self.initialLogo.alpha = 0
        self.initialBackground.alpha = 0
    }) { (истина) в
        self.initialBackgroundGone()
    }
}
       func initialBackgroundGone() {
    UIView.animate(withDuration: 1.5, анимация: {
        self.title1.alpha = 1
    }) { (истина) в
        self.showBackgroundAgain()
    }
}
функция showBackgroundAgain() {
    UIView.animate(withDuration: 1.3, анимация: {
        self.logo1.alpha = 1
    }) { (истина) в
        self.showTitle()
    }
}
функция showTitle () {
    UIView.animate(withDuration: 1.5, анимация: {
        self.description1.alpha = 1
    }) { (истина) в
        self. showEverythingElse()
    }
}
функция showEverythingElse() {
    UIView.animate(withDuration: 3.5) {
        self.buttonOutlet.alpha = 1
    }
}
 

}

iOS 13.2 и iPadOS 13.2 от Apple доступны для iPhone и iPad, загрузите их сейчас

Сегодня Apple выпускает iOS 13.2 и iPadOS 13.2, в которых Deep Fusion совершенствует обработку изображений, обновляет Emoji, а также ряд исправлений и в целом улучшения системы.

Теперь вы можете загрузить и установить iOS 13.2 и iPadOS 13.2 на iPhone/iPod touch и iPad соответственно. Обновление выходит примерно через месяц после запуска iOS 13.1 и в основном приносит пользу новым владельцам iPhone, хотя есть и кое-что полезное для других людей.

Кто может выполнить обновление до iOS 13.2 и iPadOS 13.2?

Начиная с iOS 13, существуют разные операционные системы для iPhone/iPod touch и iPad.

iOS 13.2

Обновление iOS 13.2 совместимо с недавно выпущенными iPhone 11, iPhone 11 Pro и iPhone 11 Pro Max. Кроме того, вы можете установить обновление на iPhone XS, iPhone XS Max, iPhone XR, iPhone X, iPhone 8, iPhone 8 Plus, iPhone 7, iPhone 7 Plus, iPhone 6s, iPhone 6s Plus, iPhone SE и iPod touch ( 7-е поколение).

iPadOS 13.2

Между тем, iPadOS 13.2 доступна для 12,9-дюймового iPad Pro, 11-дюймового iPad Pro, 10,5-дюймового iPad Pro, 9,7-дюймового iPad Pro, iPad (7-го поколения), iPad (6-го поколения), iPad (5-го поколения), iPad mini (5-го поколения), iPad mini 4, iPad Air (3-го поколения) и iPad Air 2.

Новые функции

Камера

Deep Fusion — это новая функция камеры, которая работает исключительно с A13 Bionic Neural Engine используется в iPhone 11, iPhone 11 Pro и iPhone 11 Pro Max. Он позволяет захватывать несколько изображений с разной экспозицией, используя попиксельный анализ. При этом лучшие части каждого изображения сливаются в один великий шедевр. Те же пользователи теперь также могут изменять разрешение видео в приложении «Камера», а не в настройках.

Emoji

И iOS 13.2, и iPad 13.2 включают 70 новых и обновленных смайликов. К ним относятся новые взгляды на животных, еду, занятия и многое другое.

Siri

Впервые вы можете решить, разрешено ли Apple сохранять звук ваших взаимодействий Siri и Диктовки. Вы также можете удалить историю Siri и Диктовки в настройках Siri на вашем устройстве.

Приложение Home

Приложение Home теперь поддерживает защищенную камеру HomeKit и маршрутизаторы с поддержкой HomeKit.

Apple AirPods Pro

В тот же день, когда Apple выпустила iOS 13.2, компания представила AirPods Pro, который официально выйдет 30 октября. его, выбрав Настройки > Общие > Обновление ПО . Обязательно создайте резервную копию своего iPhone или iPad, выбрав «Настройки» > Apple ID > iCloud > «Резервное копирование iCloud» > «Резервное копирование сейчас» . Или создайте резервную копию через iTunes или стороннее приложение, чтобы на всякий случай иметь локальную архивную копию.

Полный список изменений iOS 13.2

Вот список всех новых функций и исправлений ошибок, включенных в это последнее обновление iOS 13.2 от Apple:

iOS 13.2 представляет Deep Fusion, передовую систему обработки изображений, использующую A13 Bionic Neural Engine для захвата изображений со значительно улучшенной текстурой, детализацией и уменьшенным шумом при слабом освещении на ‌iPhone 11‌, iPhone 11 Pro и iPhone 11 Pro Max. Дополнительные функции включают в себя обновленные и дополнительные смайлики, анонсы сообщений для «AirPods», поддержку «AirPods Pro», «HomeKit» Secure Video, маршрутизаторы с поддержкой «HomeKit» и новые настройки конфиденциальности «Siri». Это обновление также содержит исправления ошибок и улучшения.

Камера

  • Deep Fusion для ‌iPhone 11‌, ‌iPhone 11 Pro‌ и ‌iPhone 11 Pro Max‌ использует A13 Bionic Neural Engine для захвата нескольких изображений с различной экспозицией, выполнения попиксельного анализа и объединения самых высоких качественные части изображений вместе, что приводит к фотографиям со значительно лучшей текстурой, детализацией и уменьшенным шумом, особенно для сцен со средним и низким освещением 11 Про Макс‌

Emoji

  • Более 70 новых или обновленных смайликов, включая животных, еду, действия, новые специальные смайлики, гендерно-нейтральные смайлики и выбор оттенка кожи для пары смайликов. Поддержка AirPods

Анонсируйте сообщения с помощью ‌Siri‌, чтобы читать входящие сообщения вслух на ваши ‌AirPods‌

Поддержка AirPods Pro‌

Домашнее приложение

  • HomeKit‌ Безопасное видео позволяет вам в частном порядке захватывать, хранить и просматривать зашифрованное видео с ваших камер безопасности и функции обнаружения людей, животных и транспортных средств
  • Маршрутизаторы с поддержкой HomeKit позволяют вам контролировать, с чем ваши аксессуары HomeKit взаимодействуют через Интернет или в вашем доме‌

Siri‌

  • Настройки конфиденциальности, позволяющие контролировать, помогать ли улучшать Siri ‌ и «Диктовка», разрешив Apple хранить звук ваших взаимодействий «Siri» и «Диктовки»
  • Возможность удалить историю «Siri» и «Диктовки» из настроек «Siri»

Это обновление также включает исправления ошибок и другие улучшения. Это обновление:

  • Устраняет проблему, которая может препятствовать автозаполнению паролей в сторонних приложениях.

scroll to top