Слежение за автотранспортными средствами с характерными для волос функциями и распределительным переключением
Я пытаюсь отслеживать транспортные средства, используя движущуюся камеру. Транспортные средства обнаруживаются с помощью каскадного классификатора Haar Feature в OpenCV. Я использую предварительно обученный набор данных здесь. Согласно исследованию " Отслеживание объектов" (2006), существует три категории для отслеживания объектов: точки или окрестности, ядра или формы, или отслеживание может основываться на силуэте объекта или его разрешающем. Я думаю, что мой подход относится ко второй категории. Поэтому я сначала попробовал алгоритм camshift.
Однако на этапе обнаружения я получил много ложных срабатываний, что делает отслеживание неэффективным. Мой вопрос: как устранить ложные срабатывания?
Я думаю, чтобы рассчитать гистограмму всех ограничивающих рамок (включая ложные срабатывания) для каждого кадра. Затем сделайте то же самое для следующего кадра и сравните гистограммы, чтобы создать уровень достоверности. Как вы думаете, это хорошая идея?
У меня также есть идеи применить процессирование перед обнаружением (например: вычитание сегмента основы / переднего плана, определение порога и т. Д.), Но они больше подходят для стационарных камер, чем для движущихся камер. Мне нужно немного поработать с Хааром, хотя бы дать шанс. Любые предложения будут великолепны.
1 ответ
На самом деле это широкий вопрос с множеством подходов, но основной из них заключается в том, что вам нужно несколько вещей для создания надежного трекера:
- хороший вход (движущаяся камера)
- хорошая характеристика / описание региона (вы выбрали метод на основе вейвлетов хаара)
- хорошая метрика сравнения для распознавателей (не знаю, что вы здесь делаете)
Как правило, вам необходимо стабилизировать входные данные с помощью процесса регистрации изображений. Ссылка на вашу библиотеку распознавателей рассчитывает метрику этих различителей по зарегистрированному входному изображению.
уменьшение количества ложных срабатываний зависит от вашего подхода, но обычно вы группируете ложные срабатывания и выясняете, откуда в алгоритме они происходят больше всего (многие будут возникать в разных местах), а затем изменяете эту часть алгоритма, чтобы лучше отбирать их,
Ваши варианты:
- зарегистрируйте изображения, если они еще не сделаны (это удалит ложные срабатывания от относительного движения)
- изучить алгоритм, чтобы выявить самый большой источник ложных срабатываний и соответствующим образом изменить его
- Получите лучшие тренировочные данные для сравнения (если ваши тренировочные данные не соответствуют реальным данным, это никогда не сработает)
- попробуйте другой подход (SIFT,SURF, GLO, преобразование Фурье-Меллина и т. д.)
это настолько конкретно, насколько я могу дать предоставленную вами информацию. Я надеюсь, что это помогает.