Я пытаюсь найти какой-то метод обнаружения людей, использующих только одну камеру в 3 метрах над землей. Это кадр, возвращаемый камерой:
ОБНОВЛЕНИЕ: Видео тест -> http://dl.dropbox.com/u/5576334/top_head_shadow.avi
Чтобы сделать это, сначала я понимаю, что мне нужно выполнить сегментацию фона на переднем плане. Это легкая часть.
С помощью маски переднего плана я могу выполнять простые операции, такие как преобразование Хафа, чтобы найти круги, но таким образом можно обнаружить только 60% голов, включая много ложных срабатываний.
Я мог бы использовать некоторые другие простые методы, такие как цветовая сегментация, но я обнаружил, что головы людей сильно различаются из-за их прически, цвета, количества волос, ...
Другой вариант, который у меня есть, - возможность использования дескрипторов HOG или функций, подобных Хаару, но мне понадобится обширная база данных людей, замеченных сверху, для обучения моделей. Я не нашел ничего подобного.
Я думал, что это будет очень частой проблемой, но я не могу найти много об этом в литературе или в Интернете. Любая помощь в решении этой задачи будет оценена :-)
ОБНОВЛЕНИЕ: Для получения дополнительной информации, цель состоит в том, чтобы внедрить некоторый общий метод для отслеживания потока пешеходов. Первый прототип будет испытан в торговом центре.
источник
Ответы:
Есть ли другие объекты, которые могут двигаться рядом с людьми? Если нет, вы можете просто найти капли (связанные компоненты) в маске переднего плана, и это ваши люди.
Они также могут «сталкиваться» друг с другом, создавая один шарик вместо двух. В этом случае вы можете отслеживать движение и устранить неоднозначность, используя тот факт, что траектория и скорость плавные.
Если есть другие объекты (например, собаки, машины), вы должны создать классификатор, который получает параметры BLOB-объектов, такие как:
И возвращает правильный класс (человек / нет человека).
источник
Я был в «чтобы использовать хорошо проверенные методы, мне нужна обширная база данных примеров, которых у меня нет», в должности в очень маленькой компании, которая «не могла себе этого позволить». Я очень сожалею о том, что не просто сделал все необходимое, чтобы получить как можно больше таких данных. Я думаю, что это имело бы огромное значение для них в конце концов.
У любого вида обнаружения видения в реальном мире есть миллион вещей, о которых вы даже не подумали, пока не попробовали, и это не сработало. Это старая проблема, намного, намного сложнее, чем кажется. Я бы порекомендовал придерживаться ньютоновского метода «стоять на плечах гигантов» (или, почти так же хорошо, на вершине большой кучи гномов). То есть используйте метод, который вы уже знаете, работает и надежен. Все вещи, которые звучат так, как будто это будет «достаточно хорошо», вместо этого с треском провалится.
Последний уровень обнаружения пешеходов, который я знал, был HOG, который был первоначально испытан именно в таких условиях. Вы хотите отслеживать, поэтому вам нужно немного поиграться в Google Gulfar, чтобы найти это. Суть в том, что я находился в аналогичном положении, и из этого я бы порекомендовал вам получить базу данных, что бы вы ни делали, и использовать то, что, как вы знаете, работает, которое уже проверено с известным уровнем отказов не то, просто звучит хорошо. 40-летний марш смерти алгоритмов компьютерного зрения, которые «звучат так, как будто они будут работать», - это не то, чем вы хотите стать.
PS Не пытаюсь критиковать компьютерное зрение. Это одна из моих любимых областей. Но история показывает, что нужно сделать тысячу неправильных шагов, а не очень много правильных. Лучше следовать за кем-то, кто уже нашел некоторые из этих правильных шагов.
источник
Я думаю, что вы могли бы начать , комбинируя несколько ответов отсюда.
В этом ответе упоминаются два разных подхода , с основным отличием в том, что вы не можете определить лицо, так как вы не видите лица. Но другой подход все еще применим: решить, является ли что-то пешеходом или нет основываясь на его действиях (движениях) .
Это, как вы и предполагали, предполагает использование некоторой сегментации фона на переднем плане. Найден очень быстрый поиск в Google эту недавнюю статью , которая выглядела довольно перспективным, но так как я никогда не делал это лично, вы или кто - то другой может иметь лучшие предложения по определенному алгоритму для использования на этом этапе.
Итак, первый ответ, который я связал, дает очень общую идею подхода. Этот ответ, однако, может дать вам представление о ваших следующих шагах: отслеживать объекты и пытаться различать их в зависимости от скорости или направления движения .
Наконец, я никогда не решал проблему, с которой вы столкнулись, поэтому я, вероятно, не очень помог, но, возможно, ответы, с которыми я связан, могут дать вам общее представление о том, с чего начать. Меня также удивило, что я не смог найти никаких предыдущих работ и статей при поиске ответа на вашу проблему, но, возможно, вам просто нужен кто-то, кто скажет вам правильные ключевые слова для описания этой проблемы .
источник
У меня есть какая-то задача, как описано здесь, подсчет людей. Но мое требование заключается в том, чтобы камера смотрела на людей с левой / правой стороны, а не над головой.
При этом, изучая возможное решение для моего случая, я наткнулся на интересный метод для вашего случая (обнаружение издержек). В этих решениях используется стереокамера, чтобы вы могли обрабатывать капли (люди, движущиеся слишком близко друг к другу), наблюдая за глубиной (например, видят капли только на среднем уровне головы людей).
Этот продукт может дать вам лучшее объяснение: digiop . Смотрите брошюру для более технического объяснения.
PS Я не представляю компанию, просто указываю на хорошо документированное решение
источник