Предложение алгоритма сопоставления характеристик OpenCV для коробок на конвейере - PullRequest
0 голосов
/ 07 мая 2019

Обзор

Я пытаюсь создать прототип системы зрения, которая будет применять сопоставление с образцом для определения ориентации коробок (например, мыльниц).

Образец изображения

Ниже представлены снимки мыльных ящиков в реальном времени в реальных условиях, имеющие две из четырех возможных ориентаций. (Front_Straight и Back_Inverted ориентации).

Изображения в реальном времени будут очень похожи на эти (приблизительно 300x200 пикселей на изображение)

box_front_straight ____ enter image description here

Образы шаблонов будут подаваться в систему заранее и должны определять ориентацию коробок, движущихся на конвейере. Ящики на конвейере направляются так, чтобы они могли принимать только одну из 4 возможных ориентаций Front_Straight, Front_Inverted, Back_Straight и Back_Inverted, т.е. ящики не могут быть угловыми. Камера и конвейер зафиксированы, поэтому размер изображения коробок в реальном времени постоянен: 300 на 200 пикселей. (Я использовал монохромную камеру, при необходимости можно использовать и цветную камеру)

Некоторые свойства прототипа системы зрения:

  • Исправлено постоянное освещение.
  • Изображение коробки в реальном времени будет довольно с низким разрешением, как прилагается (300x200 за коробку)
  • Минимальное размытие движения или артефакты изображения
  • Среда программирования на основе OpenCV C ++.
  • ПК с процессором Intel Core i5 использоваться.

Постановка задачи

Я ищу легкий, но надежный алгоритм, который может точно сопоставить шаблонное изображение с изображениями коробок на конвейере в реальном времени, чтобы выделить лицо и ориентацию. Я новичок в сопоставлении функций, поэтому, пожалуйста, подскажите, какой детектор и сопоставитель функций будет наиболее подходящим для данного конкретного случая. Также, пожалуйста, дайте мне знать, возможно ли достичь 97% плюс точность, используя прилагаемое изображение в реальном времени с низким разрешением.

1 Ответ

2 голосов
/ 07 мая 2019

У вас очень удачный случай с изображениями с очень небольшим разбросом.Любой детектор функций должен работать очень хорошо в этом сценарии.Поскольку в OpenCV интерфейс является общим, их очень легко сравнивать друг с другом.Исходя из моего опыта, ORB работает довольно быстро и с хорошими результатами, но я ожидаю, что SIFT / SURF будет работать и в вашем случае.

Я бы не ожидал, что разрешение будет проблемой.

...