Обнаружение людей сверху

16

Я пытаюсь найти какой-то метод обнаружения людей, использующих только одну камеру в 3 метрах над землей. Это кадр, возвращаемый камерой:

введите описание изображения здесь

ОБНОВЛЕНИЕ: Видео тест -> http://dl.dropbox.com/u/5576334/top_head_shadow.avi

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

С помощью маски переднего плана я могу выполнять простые операции, такие как преобразование Хафа, чтобы найти круги, но таким образом можно обнаружить только 60% голов, включая много ложных срабатываний.

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

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

Я думал, что это будет очень частой проблемой, но я не могу найти много об этом в литературе или в Интернете. Любая помощь в решении этой задачи будет оценена :-)

ОБНОВЛЕНИЕ: Для получения дополнительной информации, цель состоит в том, чтобы внедрить некоторый общий метод для отслеживания потока пешеходов. Первый прототип будет испытан в торговом центре.

emepetres
источник
1
Если вы можете опубликовать несколько видео, есть вероятность, что кто-то напишет прототип. Можете ли вы опубликовать, пожалуйста?
Андрей Рубштейн
@ Андрей, я загрузил видео тест, показывающий проблему.
Эмепетрес
@emepetres Если у вас есть ресурсы для тестирования этой проблемы, может быть, у вас есть ресурсы для поиска дополнительной камеры? Объединение видов с двух камер (одна вид сверху и одна фронтальная или под углом) и использование информации из обоих звуков, интересных и похожих на правдоподобный подход к отслеживанию потока пешеходов (в зависимости от необходимой точности)
Пенелопа
4
эта задача называется «подсчет людей» в литературе.
mrgloom
Можете ли вы предоставить ссылку на это видео.
Больше

Ответы:

11

Есть ли другие объекты, которые могут двигаться рядом с людьми? Если нет, вы можете просто найти капли (связанные компоненты) в маске переднего плана, и это ваши люди.

Они также могут «сталкиваться» друг с другом, создавая один шарик вместо двух. В этом случае вы можете отслеживать движение и устранить неоднозначность, используя тот факт, что траектория и скорость плавные.

Если есть другие объекты (например, собаки, машины), вы должны создать классификатор, который получает параметры BLOB-объектов, такие как:

  • Статистика BLOB-объектов (размер, прочность и т. Д.)
  • цвет
  • Пограничная информация
  • Скорость (в случае отслеживания)

И возвращает правильный класс (человек / нет человека).

Андрей Рубштейн
источник
1
Я ищу надежный метод, который может различать человека и нечеловека. Таким образом, после обдумывания вашего ответа я думаю, что использование параметров BLOB-объектов, как вы предлагали, в сочетании с отслеживанием некоторых функций и некоторой статистической информацией о BLOB-объектах должно быть достаточно надежным.
emepetres
8

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

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

Последний уровень обнаружения пешеходов, который я знал, был HOG, который был первоначально испытан именно в таких условиях. Вы хотите отслеживать, поэтому вам нужно немного поиграться в Google Gulfar, чтобы найти это. Суть в том, что я находился в аналогичном положении, и из этого я бы порекомендовал вам получить базу данных, что бы вы ни делали, и использовать то, что, как вы знаете, работает, которое уже проверено с известным уровнем отказов не то, просто звучит хорошо. 40-летний марш смерти алгоритмов компьютерного зрения, которые «звучат так, как будто они будут работать», - это не то, чем вы хотите стать.

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

Джон Робертсон
источник
Возможно, вы правы, и я должен потратить некоторое время на создание хорошей базы данных для обучения и тестирования дескриптора HOG. Таким образом, вы знаете, какой минимальный размер будет иметь эту базу данных, чтобы правильно провести обучение?
Эмепетрес
1
Не знаю. Как можно больше разнообразия. Кроме того, HOG - это детектор, он возвращает ответ «да, есть человек» или «нет человека» для изображения и ничего больше. В нем ничего не говорится о том, где находится человек (местоположение) или какими пикселями является человек (сегментация) или существует ли несколько человек против одного человека. Я думаю, что некоторые приспособления к HOG были сделаны (некоторые запатентованы), но суть в том, что вы хотите, чтобы отслеживание человека и HOG в его нынешнем виде касались только обнаружения , даже не местоположения. Я никогда не делал этого, но отслеживание людей - давняя тема. Проверьте документы на человека отслеживания.
Джон Робертсон
1
@John Robertson HOG - это не детектор, это просто дескриптор, он используется с некоторым классификатором (например, SVM + HOG) и может возвращать местоположение объекта.
Мрглом
1
@mrgloom Вы правы. Он возвращает местоположение, выполняя поиск в окне. Это быстро только с помощью метода, запатентованного крупной корпорацией. Я не хотел использовать детектор слов в техническом смысле здесь, просто в простом английском смысле, что это то, что обнаруживает. Это только обеспечивает местоположение в свободном смысле, что в этом окне есть кто-то приблизительно в 80-90% масштаба окна, но без какой-либо идентификации того, какие части окна могут принадлежать человеку. Я знаком с техническим различием дескриптор / детектор.
Джон Робертсон
3

Я думаю, что вы могли бы начать , комбинируя несколько ответов отсюда.

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

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

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

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

Пенелопа
источник
Спасибо за ваш ответ. Статья о сегментации переднего плана выглядит очень интересно. Как вы и @Andrey предложили, я буду следовать подходу анализа BLOB-объектов, чтобы определить количество людей в каждом BLOB-объекте.
emepetres
@emepetres Было бы неплохо, если бы вы сообщили нам о своих результатах и ​​о том, насколько успешным был подход, как только вы опробуете его и протестируете
penelope
1

У меня есть какая-то задача, как описано здесь, подсчет людей. Но мое требование заключается в том, чтобы камера смотрела на людей с левой / правой стороны, а не над головой.

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

Этот продукт может дать вам лучшее объяснение: digiop . Смотрите брошюру для более технического объяснения.

PS Я не представляю компанию, просто указываю на хорошо документированное решение

bonchenko
источник
Спасибо, что поделились, Кажется, это интересный способ решить проблему.
emepetres