Начало работы в OpenCV, рекомендации по использованию функций API

#opencv #computer-vision #object-detection

#opencv #компьютерное зрение #обнаружение объектов

Вопрос:

Я только начинаю работать с OpenCV и планирую создать робота с компьютерным зрением. Я хочу, чтобы этот робот распознавал классы объектов, а также отдельные экземпляры. В некотором смысле, функция, подобная Haar, для общих классов и BIGG для конкретных экземпляров. По сути, я хочу сделать что-то вроде этого: http://www.youtube.com/watch?v=fQ59dXOo63o в видео используется kinect, но я буду использовать только одну камеру. Если вы посмотрите видео, вы увидите, что kinect показывает объект и через несколько секунд учится распознавать новый объект. Это, по сути, то, что я хочу сделать; вместо создания тысяч шаблонов и одновременного обучения программного обеспечения, я хочу сделать этот процесс полуавтоматическим, когда робот изучает один объект за раз. У меня нет ограничений на тип изучаемого объекта, все честно.

Поскольку я имею дело с потенциально большим количеством объектов, которые будут обучаться, меня беспокоят проблемы с производительностью. Если бы у меня было обучено 10 000 объектов, я бы предположил, что мой ноутбук может подавиться некоторыми алгоритмами. В настоящее время я довольно перегружен всеми различными методами, которые есть в документации, и я мало представляю, что использовать.

Как бы вы, ребята, решили эту проблему?

Спасибо

Ответ №1:

Вот вопросы, о которых вы задавали (осознаете вы это или нет):

  • Обнаружение объектов
  • Классификация объектов
  • Распознавание объектов
  • Сегментация
  • Нормализация
  • Машинное обучение

Каждый из них является самостоятельным предметом, и нет «правильного» ответа для ваших нужд. Вам нужно поэкспериментировать и найти ту волшебную комбинацию алгоритмов, которая хорошо подходит для вашей проблемной области.

Кроме того, kinect имеет преимущество, которого нет у обычной камеры, а именно глубину. Простое старое распознавание 2D смехотворно сложно.

Однако, чтобы дать полезный ответ, ознакомьтесь с алгоритмом V1 Николаса Пинто, который имитирует возможности обнаружения объектов людьми.

http://pinto.scripts.mit.edu/Code/Code