Виявлення людей зверху


16

Я намагаюся знайти якийсь спосіб виявити людей, які використовують лише одну камеру на 3 метри над землею. Це кадр, повернений камерою:

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

ОНОВЛЕННЯ: Тест відео -> http://dl.dropbox.com/u/5576334/top_head_shadow.avi

Для цього спочатку я розумію, що мені потрібно виконати сегментацію фонового плану. Це легка частина.

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

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

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

Я вважав, що це буде дуже періодичною проблемою, але я не можу дуже багато про це знайти в літературі чи Інтернеті. Будь-яка допомога щодо вирішення цього завдання буде вдячна :-)

ОНОВЛЕННЯ: Для отримання додаткової інформації метою є впровадження певного загального методу для відстеження руху пішоходів. Перший прототип буде протестований у торговому центрі.


1
Якщо ви можете опублікувати кілька відео, є ймовірність, що хтось напише прототип. Чи можете ви публікувати, будь ласка?
Андрій Рубштейн

@Andrey, я завантажив відеотест, який показує проблему.
emepetres

@emepetres Якщо у вас є ресурси для перевірки цієї проблеми, можливо, у вас також є ресурси, щоб знайти вторинну камеру? Поєднання поглядів з двох камер (одна з виду зверху, та одна фронтальна чи з кута) та використання інформації як звучить цікаво, так і як правдоподібний підхід до відстеження потоку пішоходів (залежно від потрібної точності)
пенелопа

4
це завдання в літературі називається «люди рахують».
mrgloom

Чи можете ви надати посилання на це відео. Він більше не доступний у наданому посиланні
Гарвіта Тіварі

Відповіді:


11

Чи є інші об’єкти, які можуть переміщатися поруч з людьми? Якщо їх немає, ви можете просто знайти краплі (підключені компоненти) у вашій масці переднього плану, і це ваші люди.

Вони також можуть «стикатися» один з одним, створюючи замість двох одну крапку. У цьому випадку ви можете зробити відстеження руху та вирішити неоднозначність, використовуючи той факт, що траєкторія та швидкість є плавними.

Якщо є інші об'єкти (наприклад, собаки, машини), вам слід створити класифікатор, який отримує параметри блобу, такі як:

  • Статистична інформація про величину (розмір, суцільність тощо)
  • Колір
  • Інформація про край
  • Швидкість (у разі відстеження)

І повертає правильний клас (Human / No Human).


1
Я шукаю надійний метод, який також може розрізняти людину / людину. Таким чином, після роздумів над вашою відповіддю, я думаю, що використання параметрів блоба, як ви запропонували, у поєднанні з відстеженням деяких функцій та деякою статистичною інформацією блобу має бути достатньо надійною.
emepetres

8

Я був у "для використання добре перевірених методів, мені знадобиться обширна база даних прикладів, яких у мене немає" позиція в дуже невеликій компанії, яка "не могла собі цього дозволити". Я дуже шкодую, що не просто зробив все необхідне, щоб отримати якомога більше таких даних. Я думаю, що це врешті-решт змінило б для них світ.

У будь-якому роді реального виявлення зору у світі є мільйон речей, про які ви не думали, поки не спробували, і це не вдалося. Це стара проблема в багато, у багато разів складніше, ніж це здається. Я б рекомендував дотримуватися ньютонського методу "стоячи на плечах гігантів" (або, майже як добре, зверху на великій купі гномів). Тобто використання методу, який ви вже знаєте, працює і є надійним. Усі речі, які звучать так, що натомість стануть «досить хорошими», будуть нещасно виходити з ладу.

Стан сучасного виявлення пішоходів, який я останнім часом знав, був HOG, який спочатку був випробуваний саме в цій обстановці. Ви хочете відстежувати, тож вам доведеться трохи пограти в науковці Google, щоб знайти це. Придбайте мою головну думку, я опинився в подібній позиції, і тому я рекомендую вам отримати свою базу даних, що б вам не довелося робити, і використовувати щось, що ви знаєте, працює, що вже перевірено з відомим коефіцієнтом відмов, а не тим, що просто добре звучить. 40-річний марш смерті алгоритмів комп'ютерного зору, які "звучать так, як вони працюватимуть", - це не те, до чого ти хочеш стати частиною.

PS Не намагається критикувати комп’ютерний зір. Це одна з моїх улюблених областей. Але історія свідчить, що тисячу помилкових кроків потрібно зробити, і не дуже багато правильних. Краще слідувати за тим, хто вже знайшов якісь правильні кроки.


Можливо, ви маєте рацію, і я повинен витратити деякий час на створення хорошої бази даних для підготовки та тестування дескриптора HOG. Таким чином, чи знаєте ви, який мінімальний розмір мав би цю базу даних, щоб зробити тренінг правильно?
emepetres

1
Я не знаю. Якнайбільше різноманіття. Крім того, HOG є детектором, він повертає відповідь "так, є людина" або "немає людини" для зображення і нічого іншого. Це нічого не говорить про те, де знаходиться людина (місцеположення) або які пікселі є особою (сегментація) або про те, чи існує кілька людей проти однієї людини. Я думаю, що деякі адаптації до HOG були внесені (деякі запатентовані), але справа в тому, що ви хочете - це відстеження людей, а HOG, як він є, стосується лише виявлення , навіть не місця розташування. Я ніколи цього не робив, але відстеження людей - давня тема. Ознайомтеся з документами щодо стеження за особами.
Джон Робертсон

1
@John Robertson HOG не є детектором, це просто дескриптор, і він використовується з деяким класифікатором (наприклад, SVM + HOG), і він може повернути розташування об'єкта.
мрглоом

1
@mrgloom Ви праві. Він повертає місце розташування, роблячи пошук у вікні. Це лише швидко, використовуючи метод, запатентований великою корпорацією. Я не мав сенсу використовувати детектор слів у технічному розумінні тут, просто в простому англійському розумінні, що це щось, що виявляє. Це лише забезпечує розташування у вільному сенсі, що всередині цього вікна знаходиться хтось приблизно на 80-90% від шкали вікна, але без будь-якої ідентифікації, які частини вікна можуть належати людині. Мені знайоме технічне розрізнення дескриптора / детектора.
Джон Робертсон

3

Я думаю, що можна почати , поєднавши звідси кілька відповідей.

У цій відповіді згадуються два різні підходи , з основною відмінністю, що вам неможливо зробити розпізнавання обличчя, оскільки ви не бачите облич. Але інший підхід все ще застосований: вирішувати погоду щось є пішохідним чи не грунтуватися на його діях (рухах) .

Це, як ви і прогнозували, пропонує використовувати якусь сегментацію фонового плану. Дуже швидкий googling знайшов цю недавню статтю, яка виглядала досить перспективною, але оскільки я ніколи цього не робив особисто, ви або хтось інший, можливо, матимете кращі пропозиції щодо конкретного алгоритму, який слід використовувати на цьому кроці.

Тепер перша відповідь, яку я пов’язав, лише дає дуже загальну ідею підходу. Ця відповідь, однак, може дати вам уявлення про ваші наступні кроки: відслідковуйте об’єкти та намагайтеся розрізняти їх на основі швидкості чи напрямку переміщення .

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


Спасибі за вашу відповідь. Стаття про сегментацію переднього плану виглядає дуже цікаво. Як ви та @Andrey запропонували, я буду дотримуватися підходу аналізу блобу, щоб визначити кількість людей у ​​кожній краплі.
emepetres

@emepetres Було б добре, якби ви повідомили нам про ваші результати та наскільки успішним був підхід, як тільки ви спробуєте його і протестуєте
penelope

1

У мене є якесь завдання, як описано тут, рахувати людей. Але моя вимога полягає в тому, що камера повинна бути обличчям до людей з лівого / правого боку, а не над головою.

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

Цей продукт може дати вам краще пояснення: digiop . Дивіться брошуру для отримання більш технічних пояснень.

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


Дякуємо за те, що поділилися. Здається, це цікавий спосіб вирішити проблему.
emepetres
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.