Как обрабатывать неквадратные кадры с камеры с помощью CoreML? - PullRequest
0 голосов
/ 06 февраля 2019

Я обучил нейронную сеть в Керасе определять ключевые точки на изображении.Сеть ожидает изображения формы (224, 224, 3).Я хотел бы иметь возможность обнаруживать ключевые точки на изображениях в Swift с использованием CoreML, но не уверен, как использовать неквадратные формы с моей нейронной сетью, которая ожидает квадратные изображения.Есть идеи о правильных этапах предварительной обработки?Есть ли что-то встроенное в Vision API, чтобы помочь с этим?Я мог бы просто сжать изображения на квадраты, но я представляю, что это могло бы испортить предсказанные (X, y) пары ключевых точек.

1 Ответ

0 голосов
/ 06 февраля 2019

Это зависит.Как обучалась оригинальная модель?Если он также был обучен на сжатых изображениях, то сжатие их во время вывода вполне нормально.

Если нет, и вы хотите сохранить соотношение сторон изображений, вы можете установить imageCropAndScaleOption в вашем VNCoreMLRequest объекте на один из других режимов.

Независимо от, вам придется преобразовать предсказанные координаты ключевых точек обратно в любой размер, в котором вы отображаете изображение. Это проще всего, когда изображение сдавливается (просто умножьте на ширину и высоту), но немного сложнее при использовании одного из других imageCropAndScaleOption s.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...