2

У меня есть задача, связанная с распознаванием изображений, и задача состоит в том, чтобы определить, какой продукт основан на тысячах фотографий, сделанных для самых разных продуктов.«Распознавание изображений» слишком много функций

Например, мы сделали короткие видеоролики (1 минута) для 10 различных помеченных продуктов. И затем мы используем cv2.VideoCapture, чтобы преобразовать их в 60 с * 30fps ~ 1800 кадров на продукт. Таким образом, у нас есть около 18K различных изображений для 10 продуктов, все отлично обозначенные.

Я думаю о том, чтобы превращать изображения в пиксели и использовать метку в качестве результата, а все пиксели - как доход для использования машинного обучения (нейронной сети), чтобы превратить это в проблему классификации. Тем не менее, каждое изображение составляет 1080 * 1920, что дает вам 2 миллиона пикселей, пусть цвет (RGB и т. Д.).

Есть ли какая-либо стандартная техника, которую я должен использовать? Я могу сделать обнаружение кромок, контур, чтобы обрезать их до меньшего размера, но тогда все изображения будут иметь разный размер, не так ли? Если я масштабирую все, чтобы быть того же размера, разве не все это изменит проблемы распознавания изображений в масштабе?

У меня есть эти продукты, поэтому я могу взять столько фотографий, сколько хочу. Извините, это больше похоже на лучший практический или архитектурный вопрос, а не на конкретные вопросы программирования.

Это изображение, которое уменьшилось, чтобы быть меньше, чтобы вы могли понять, какую проблему я пытаюсь решить.

enter image description here

+0

Первое, что я попробую, - это обработать каждое изображение в отдельном примере.Таким образом, вы будете думать о себе как о 1000 примерах каждого класса. – maxymoo

+0

кроме того, что это звучит для меня, как будто вы на правильном пути. что вы имеете в виду «проблемы с распознаванием изображений в масштабе»? – maxymoo

ответ

3

Я настоятельно рекомендую вам использовать Convolutional Neural Network(CNN), чтобы решить эту проблему классификации изображений 10 класса, так как вы можете получить много изображений для «продуктов». Трубопровод будет очень похож на проект классификации изображений с использованием CNN, например handwritten digit recognition.

Для вашего вопроса, по сути, было бы лучше обрезать «товары», а затем изменить их размер до того же размера, чтобы обучить классификатор CNN. А на этапе распознавания (или предсказания) вы также должны обрезать продукт и изменять его размер до такого размера, чтобы подавать его в предварительно подготовленный классификатор. Преимущества этой процедуры предварительной обработки:

  • значительно уменьшают степень трудности распознавания и повышения точности.
  • Правильно меньший размер изображения требует меньше вычислений и потребления памяти, в то время как соответствующий классификатор по-прежнему может иметь конкурентную (или такую ​​же) точность.

Для решения проблемы распознавания «масштабного варианта изображения», как уже упоминалось выше, на этапе распознавания вы также должны обрезать продукт и изменять его размер до того же размера, что и для обучения вашего CNN, поэтому масштаб не будет сильно меняться. С другой стороны, вы можете выполнять data augmentation и more augmentation methods перед обучением CNN для повышения устойчивости CNN к дисперсии шкалы. Вот пример для увеличения лица данных, слева направо normal, zoom out, zoom in, rotate seprately и вы можете сделать его больше:

normalzoom outzoom inrotate

Надежда мое выражение ясно и поможет ,

Смежные вопросы