Введите изображение в 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 - очень медленная операция и не подходит.

Итак, вопрос в том, как мне ввести тип данных изображения в объект конвейера?

0 ответов

Другие вопросы по тегам