Отказ от ответственности : я разместил этот вопрос на StackOverFlow, но узнал, что он лучше подходит здесь.
Я немного новичок в обработке изображений, поэтому я хотел бы попросить вас найти оптимальное решение для моей проблемы, а не помощь для кода. Я пока не мог придумать хорошую идею, поэтому хотел спросить вашего совета.
Я работаю над проектом, использующим OpenCV для подсчета автомобилей из видеофайла или камеры в реальном времени. Другие люди, работающие над таким проектом, обычно отслеживают движущиеся объекты, а затем подсчитывают их, но вместо этого я хотел работать с другой точкой зрения; попросить пользователя установить область интереса (ROI) (область интереса) в окне видео и работать только для этого региона (по некоторым причинам, например, не иметь дело с целым кадром и некоторым увеличением производительности), как показано ниже. (Пользователь может установить более одного ROI, и его просят установить высоту ROI примерно в два раза от нормального автомобиля в зависимости от пропорции.)
До сих пор я достиг некоторого базового прогресса, такого как фоновое обновление, морфологические фильтры, определение пороговых значений и получение движущегося объекта в виде двоичного изображения, как показано ниже.
Сделав их, я попытался подсчитать белые пиксели последнего порогового кадра переднего плана и оценить, был ли это автомобиль или нет, проверив общее количество белых пикселей (я установил нижнюю границу статическим вычислением, зная высоту ROI) , Чтобы проиллюстрировать это, я нарисовал образец графики:
Как вы можете видеть, было легко рассчитать белые пиксели и проверить, рисует ли он кривую по времени и определяет, является ли автомобиль или что-то вроде шума.
проблема
Я был довольно успешным, пока две машины не прошли через мой ROI одновременно. Мой алгоритм неправильно посчитал их как одну машину. Я пробовал разные подходы к этой проблеме и аналогично этому, например, для длинных транспортных средств, но я не нашел удовлетворительного решения.
Вопрос
Можно ли справиться с этой задачей с помощью такого подхода подсчета значений пикселей? Если нет, что вы предлагаете?
источник
Ответы:
Вы можете отслеживать последние 10-15 кадров и подсчитывать количество белых пикселей этих кадров. Вы можете различить, если это транспортное средство или нет, так как график будет высоким для 10-15 кадров, вы сможете сказать, что это транспортное средство, иначе это шум.
Чтобы посчитать несколько автомобилей на нескольких полосах, вы можете проверить столбцы пикселей по вертикали. В настоящее время вы должны проверять пиксели по горизонтали на наличие белых пикселей.
источник