Получение исключения времени выполнения при предоставлении модели coreML изображения

Я пытаюсь изучить структуру Apple CoreML, и для этого я создал очень простую модель CoreML, которая будет определять, показывает ли изображение яблоко или банан. Для этого у меня есть изображение яблока в каталоге Assets.xcassets, и когда я нажимаю кнопку, я хочу, чтобы это изображение было передано в мою модель, и я надеюсь получить правильную информацию о нем.

   @IBAction func applePressed(_ sender: Any){
        let image = cropImage(imageToCrop: UIImage(named: "apple")!)

        guard let fruitName = try? model.prediction(image: image as! CVPixelBuffer) else{
        fatalError("Unexpected runtime error.")
    }

    print(fruitName.classLabel)

} 

Сейчас я получаю сообщение об ошибке. Я получаю сообщение об ошибке Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

Ошибка находится рядом со строкой guard let fruitName = try? model.prediction(image: image as! CVPixelBuffer) else{ fatalError("Unexpected runtime error.") }

Я не уверен, что вызывает ошибку. Единственная причина, по которой я могу думать, это то, что я неправильно форматирую изображение. Модель требует CVPixelBuffer, и я не уверен, правильно ли мое приведение из UIImage в CVPixelBuffer.

Что я делаю неправильно?

Любая помощь приветствуется!


person J. Doe    schedule 19.01.2019    source источник
comment
Если image - это UIImage, тогда нет, вы не можете слепо преобразовать его в любой другой класс.   -  person rmaddy    schedule 19.01.2019
comment
если это так, как я могу превратить UIImage в CVPixelBuffer?   -  person J. Doe    schedule 19.01.2019