Подсчет автомобилей из видео

10

Отказ от ответственности : я разместил этот вопрос на StackOverFlow, но узнал, что он лучше подходит здесь.

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

Я работаю над проектом, использующим OpenCV для подсчета автомобилей из видеофайла или камеры в реальном времени. Другие люди, работающие над таким проектом, обычно отслеживают движущиеся объекты, а затем подсчитывают их, но вместо этого я хотел работать с другой точкой зрения; попросить пользователя установить область интереса (ROI) (область интереса) в окне видео и работать только для этого региона (по некоторым причинам, например, не иметь дело с целым кадром и некоторым увеличением производительности), как показано ниже. (Пользователь может установить более одного ROI, и его просят установить высоту ROI примерно в два раза от нормального автомобиля в зависимости от пропорции.)

picture1

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

picture2

Сделав их, я попытался подсчитать белые пиксели последнего порогового кадра переднего плана и оценить, был ли это автомобиль или нет, проверив общее количество белых пикселей (я установил нижнюю границу статическим вычислением, зная высоту ROI) , Чтобы проиллюстрировать это, я нарисовал образец графики:

Picture3

Как вы можете видеть, было легко рассчитать белые пиксели и проверить, рисует ли он кривую по времени и определяет, является ли автомобиль или что-то вроде шума.

проблема

Я был довольно успешным, пока две машины не прошли через мой ROI одновременно. Мой алгоритм неправильно посчитал их как одну машину. Я пробовал разные подходы к этой проблеме и аналогично этому, например, для длинных транспортных средств, но я не нашел удовлетворительного решения.

Вопрос

Можно ли справиться с этой задачей с помощью такого подхода подсчета значений пикселей? Если нет, что вы предлагаете?

Horizon1710
источник
Ваша проблема - причина, по которой люди используют отслеживание. Кроме того, вы хотите, чтобы автомобили, которые движутся вместе (скажем, автомобиль с прицепом), считались одним или двумя?
Эмре
Во-первых, спасибо за издание. Я не ожидаю 100% точности, автомобили с прицепами можно игнорировать. но если это две отдельные машины, идущие очень близко друг к другу, мне нужно, чтобы программа различала их, но я понятия не имею.
Horizon1710

Ответы:

5

Вы можете отслеживать последние 10-15 кадров и подсчитывать количество белых пикселей этих кадров. Вы можете различить, если это транспортное средство или нет, так как график будет высоким для 10-15 кадров, вы сможете сказать, что это транспортное средство, иначе это шум.

Чтобы посчитать несколько автомобилей на нескольких полосах, вы можете проверить столбцы пикселей по вертикали. В настоящее время вы должны проверять пиксели по горизонтали на наличие белых пикселей.

Рухи Акабой
источник
Да, вы правы насчет проверки вертикальных линий, но как? Могу ли я определить точку входа транспортных средств, проверив первую строку моего ROI?
Horizon1710