Введите изображение в coremltools Pipelines
У меня есть модель, которая берет изображение в качестве входного сигнала и прошла обучение по керасу. После конвертации через coremltools я вижу, что модели требуется изображение в качестве входных данных (в xcode, я вижу, input: (color widthxheight)).
Теперь мне нужно поместить эту модель 1 в конвейер coremltools для объединения с другой моделью 2 (использует выходные данные модели 1 в качестве входных данных) и запустить модель. Для этого я использую конвейеры coremltools и создаю объект конвейера.
Я конвертирую конвейер в MLModel перед сохранением
img_dim = (3,640,480)
input_image = [('image', datatypes.Array( *img_dim ))]
pipeline1 = Pipeline(input_image , output_features)
pipeline1.add_model(model_keras)
pipeline1.add_model(model_postprocess)
finalmodelfile='FINALMODEL.mlmodel'
finalmodel=coremltools.models.MLModel(pipeline1.spec)
finalmodel.save(finalmodelfile)
Когда я загружаю FINALMODEL.mlmodel в xcode, он выдает мне ошибку
ошибка валидатора: конвейер: вход "изображение" модели "CoreML.Specification.ModelDescription" не соответствует типу, ранее указанному входом конвейера или выходом предыдущей модели.
Это говорит о том, что конвейерный ввод, как указано выше, принимает MLMultiArray в качестве ввода, а не изображение.
Я хочу использовать камеру с iphone в качестве входа, и, следовательно, хотел бы использовать изображение (UIImage или CVPixelBuffer) в качестве ввода. Преобразование в MLMultiArray - очень медленная операция и не подходит.
Итак, вопрос в том, как мне ввести тип данных изображения в объект конвейера?