OpenCCV множественное случайное отслеживание - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь реализовать оптическую сортировку цвета для случайных движущихся частиц. Не так уж и случайно - это просто пластиковые гранулы, цилиндры и хлопья, но все же это довольно случайно.

Текущая реализация выглядит следующим образом:

  1. Получить изображение отростков на нейтральном фоне
  2. Выполнить фильтр Канни, чтобы получить контуры
  3. Выполните фильтр Шарра, чтобы получить более точные контуры
  4. Do findContours ();
  5. Создайте boundingRect вокруг каждого контура и отметьте область bbox, чтобы мы не анализировали цвет мусора
  6. Создать маску из оставшихся контуров, заполненных белым
  7. Используйте каждый boundingRect в качестве ROI, примените маску к изображению внутри ROI, чтобы получить частицы только внутри ROI
  8. Рассчитайте средний цвет внутри каждой области интереса и определите, хорошая это или плохая цветовая частица

images are here

На статическом синтетическом изображении все работает очень хорошо, но на реальном изображении с веб-камеры все плохо:

Не каждый контур замкнут, и morphologyEx с MORPH_CLOSE не очень помогает, а также довольно медленно Незамкнутые контуры не заполняются белым, чтобы создать маску, поэтому средний цвет вычисляется неправильно.

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

Насколько мне известно, распознавание объекта, работающего хорошо, только когда выполнялась тренировка с хорошими и плохими образцами формы, но нет способа обучить его случайной форме

А для фильтра Калмана для прогнозирования положения нужна точка. Я могу найти центр частицы, используя моменты контуров. Но найденный центр в порядке, только если найденный контур является реальным контуром частицы, что не всегда верно.

Заранее спасибо за любые предложения.

...