Перейти к содержимому
Compvision.ru

Recommended Posts

Здравствуйте!

Тема такая - по конвейеру идут объекты, их надо посчитать, я обучил каскадный классификатор (процентов 90 он определяет - иногда проскакивают кадры где не определяется , но в целом каждый объект определен), вытащил координаты найденных объектов, пытаюсь сделать счетчик по расстоянию до условной линии. Но натыкаюсь на то, что он считает объекты по количеству кадров т.е был объект 5 сек в кадрах со скоростью 5к\сек получили 25 объектов. Еще сложнее если вдруг появляется два объекта. Попытался сделать с ROI - вырезал небольшой участок и на нем уже получил очень близкие к достоверным результаты. Но понимаю что это неправильно. Помогите как отслеживать именно найденный объект (видел ролики где над объектом пририсовывалась цифра и не менялась по всему треку слежения) и сравнивать расстояние до линии. Возможно ли реализовать чтоб в центре объекта ставилась точка и слежение происходило за ней?, Я пробовал, но к 10 кадру у меня 8-10 таких точек в центре объекта. и не смог реализовать удаление не всех точек на экране а тех которые вышли из заданной области у меня через пару минут в верхней области экрана пару сотен таких точек.

Извините за "многобукаф".

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тема очень богатая. Если ты, вдруг, используешь OpenCV 3.0, то можешь использовать стандартные (не идеальные, но неплохие) трекеры оттуда. Штук 3-4 там точно есть. Если же нет, то могу немного написать текста о трекерах и накидать ссылок на сторонние библиотеки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тема очень богатая. Если ты, вдруг, используешь OpenCV 3.0, то можешь использовать стандартные (не идеальные, но неплохие) трекеры оттуда. Штук 3-4 там точно есть. Если же нет, то могу немного написать текста о трекерах и накидать ссылок на сторонние библиотеки.

использую 2.4.9. пробовал пример LKDemo хотелось бы заюзать что то подобное,но чтоб точки ставились при обнаружении объекта каскадами, за точками следит уверенно. Но не могу сделать чтоб они не ставились кучей и убирались автоматом с верхней части экрана. Еще там у меня возникла сложность: в примере точки не в структуре Point описываются, и я так и нес мог их сравнить с условной линией. Пробовал копать в сторону классов чтоб распознанный объект относился к классу, но толком ни чего не накопал, а сделать получилось примерно с тем же успехом (в каждом кадре новый класс ). Есть и 3.0 в принципе могу порыться и в нем, просто начинал на 2.4.9 не хотелось менять. было мнение использовать ROI-область чтоб выделенный объект устанавливал область и все слежение в ней происходило, пробовал провернуть СУРФ в этой области, но он находит кучу точек вокруг обекта и 1-2 внутри - как итог объект уезжает по конвейеру а точки остаются.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По поводу сторонних библиотек, возможно их использовать совместно с OPENCV? просто даже не копал в ту сторону, както залип сразу на ОЦВ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Если у тебя объект как-то выделяется от фона цветом, то:

  1.1. используй Camshift (см. пример camshiftdemo.cpp);

  1.2. более устойчивый вармант - particle filter + camshift, пример от Smorodov'а вроде как был на форуме.

2. Если у тебя на объекте есть особенности, углы, контраст, то можно использовать трекер по точкам: простой и быстрый это CMT.

3. Есть достаточно универсальный трекер Struck и куча его вариаций.

4. Есть достаточно мощный трекер TLD (см. реализацию OpenTLD или в OpenCV 3.0).

5. В уже упомянутом OpenCV 3.0 есть реализации трекеров MIL, online boosting, median flow, TLD.

6. Посмотри на VOT 2014. Там есть датасеты, результаты, используемые алгоритмы.

 

В целом тема популярная, материала очень много. Всё зависит от задачи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо большое за ответы.

Нашел с  Camshift вот такой пример http://stackoverflow.com/questions/25020446/face-detection-and-tracking-with-camshift-opencv-c-run-failed попробую его пока покрутить. Суть в том что мои объекты - это мешки с цементом они серые на сером фоне конвейера и выделяются они цветами не очень хорошо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В описанном выше примере беда. когда объект уходит из поля зрения камеры и камшифт его теряет программа крашится с ошибкой. пока объект перемещается по кадру вроде норм работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это уже надо самому дорабатывать, чтобы не падало и выдавало порерю объекта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×