Подтвердить что ты не робот

Система подсчета людей

Я хочу создать "систему подсчета людей" с помощью OpenCV (или Emgu CV).

Расскажите мне, как реализовать или привести меня к некоторым примерам или проектам с открытым исходным кодом.

(Я проделал определенную работу: извлечение diff, затем пороговое значение для удаления фона, использование истории движения и т.д., до сих пор нет хороших результатов.)

Изменить 1: Я считаю, что поток высоких людей (десяток из них может пройти одновременно).

Изменить 2: он должен быть не менее 80% точным. Люди идут через дверь шириной почти 5 метров. Проблема в том, что я не контролирую положение или угол камеры. Камера выкрикивает место с расстояния 10 метров на высоте 2,5 м.

Спасибо

4b9b3361

Ответ 1

Если вы вызываете систему подсчета людей системой, которая подсчитывает людей, которые находятся в комнате, то я рекомендую вам внедрить аппаратное обеспечение с помощью микроконтроллера с двумя лазерами (нормальные работы с лазерными игрушками) и 2 фоторезисторами. Для микроконтроллера я recomen вы используете Arduino.And затем создайте приложение С#, имеющее объект SerialPort, и прочитайте данные, которые отправляет arduino через USB. Ардуино отправит 1 для "кто-то вошел в комнату" и 0, например, "кто-то вышел из комнаты". Затем запись и статистика могут быть легко выполнены на С#.

Arduiono Site: здесь

Фоторезистор для $1: здесь

Это решение намного дешевле и проще реализовать, чем при использовании камеры с довольно хорошим качеством.

Надеюсь, я помог тебе.

Ответ 2

Проверьте детектор пешеходов HOG, который поставляется с последними версиями OpenCV ( >= 2.2).

См. modules/objdetect/src/hog.cpp и samples/cpp/peopledetect.cpp в источниках OpenCV. К сожалению, официальной документации пока нет.

Ответ 4

Являются ли люди единственными "сущностями" на сцене? Если это не так, вы заботитесь о том, чтобы рассматривать человека как-то другое, что движется по сцене? Потому что, если это так, вы можете просто подсчитать blobs, которые входят или выходят со сцены. Это может показаться немного наивным, но я возьму какое-то изображение движения, пиксели движения группы по расстоянию в кластерах. Ваша метрика расстояния может принимать во внимание некоторые ограничения, например, что люди будут "часто" стоять так, чтобы пиксели в кластере группировались вокруг какой-то линии регрессии (прямая линия, если камера выровнена с полом). Не нужно будет отслеживать их на сцене, просто замечая, когда они войдут или уйдут, хотя у вас возникнут проблемы с, например, с людьми, входящими на сцену и выходящими парами или группами... Удачи:)

Ответ 5

Это действительно зависит от положения камеры. Предполагая, что вы можете получить профили передних лиц людей на изображениях:

Эта проблема в основном заключается в обнаружении и распознавании лиц.

Есть много способов поиска лиц, но это тот подход, с которым я немного знаком.

Для обнаружения лица вам необходимо выполнить сегментацию изображения на цвете тона кожи. Это позволит извлечь участки кожи. [Оружие, сундук (для тех, кто носит V cut tops), лицо, ноги и т.д.] Затем вам нужно выстроить профили областей кожи в профиль ваших обученных лиц.

[Вам нужно будет использовать Eigenfaces для создания общего профиля того, как выглядит лицо]

Если область кожи выстраивается в линию и не отклоняется слишком далеко от профиля, тогда она считается лицом. Как только лицо будет подтверждено, добавьте его в хранилище данных собственных данных [для распознавания]. Чтобы сохранить обработку, вы можете рассмотреть возможность ограничения области поиска, если вы ищете предыдущее лицо. [Учитывая частоту кадров и последний раз, когда человек был замечен]

Если вы имеете в виду "Толпа потока", я думаю, вы просто имеете в виду плотность лиц в толпе.

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

Этот подход: действительно зависит от вашей способности обнаруживать области лица. Это может не сработать, если люди в видео смотрят вниз, не подгоняя профиль обученных данных и т.д. Также это может быть сделано, если человек надевает солнцезащитные очки в видео. [Возможно, это будет считаться "новым лицом" ]

Ответ 6

Я думаю, что если у вас плотные люди с большим количеством окклюзий, вам нужно использовать какой-то алгоритм машинного обучения, например, вы можете использовать Implicit Model Model для функций.