Який найдешевший / найпростіший спосіб виявити людину?


15

Мені хотілося б дізнатись, чи вдалося комусь виявити теплоногих ссавців (тобто людини), використовуючи стандартні з полиці недорогі датчики?

В ідеалі я хотів би використовувати недорогий датчик або комбінацію датчиків для виявлення людини в кімнаті та локалізації цієї людини. Я хотів би, щоб робот зайшов у приміщення, виявив, чи є людина / люди, а потім перейти до виявленої людини. Точність не повинна бути 100%, оскільки вартість - це більше фактор. Мені б хотілося, щоб обчислювальні вимоги такого датчика були такими, що він може працювати на Arduino, хоча, якщо це неможливо, я б хотів використати щось із більш чутливим, наприклад, Raspberry Pi або BeagleBone Black. У мене є кілька думок; проте жоден з них не є ідеальним:

  1. Датчик PIR - може виявляти рух у великому полі зору (тобто зазвичай 120 градусів і більше). Можливо, буде найближчим до "людського" детектора, про який я знаю; однак це вимагає руху та локалізації / триангуляції там, де людині було б дуже важко (неможливо?) з таким великим полем зору.
  2. Ультразвук - може виявляти предмети з хорошою точністю. Має набагато вузьке поле зору; однак не в змозі розмежовувати статичний неживий об’єкт від людини.
  3. ІЧ-детектори - (тобто датчики різкої дальності) Можуть знову виявляти предмети з великою точністю, дуже вузьким полем зору; однак вона знову не в змозі диференціювати об'єкти.
  4. Веб-камера + OpenCV - можливо, використовуйте функцію розпізнавання облич, щоб виявити людей у ​​кімнаті. Це, можливо, найкращий варіант; однак, OpenCV обчислювально дорого коштує та вимагає набагато більше, ніж ардуїно для запуску. Навіть на Raspberry Pi це може бути повільним.
  5. Kinect - Використовуючи можливості виявлення функцій Kinect, було б відносно легко визначити людей у ​​даній місцевості; проте Kinect занадто дорогий, і я б не вважав це "дешевим" рішенням.

Можливо, хтось знає про недорогий «детектор тепла», налаштований на тепло тіла та / або мав успіх у поєднанні (# 1-4) вище і хотів би поділитися своїми результатами?


Це обмежено для людей чи він повинен також визнавати містера Еда?
ott--

Будь-яке скрутне тіло. Він буде використовуватися в приміщенні, тому містер Ед не повинен бути там; однак, якби він був, його виявлять. =)
Яхма

Мене примусили зрозуміти (коли я шукав щось подібне), що Кінект насправді не такий дорогий; однак це потерпає від необхідності мінімальної відстані для правильної роботи. Однак для вашої вимоги це може спрацювати, і я впевнений, що для цього є багато коду.
Галахад II,

З яким рішенням ви пішли? Чи траплялося вам знайти щось із більшим діапазоном?
Crashalot

Насправді у мене є питання. Чи можемо ми виявити частоту пульсу людини за допомогою ІЧ-датчика в аналогових штифтах Audrino? якщо так, то як? будь ласка, допоможіть мені
sapana

Відповіді:


7

Комбінація пасивного інфрачервоного детектора (PIR) і датчика датчика датчиків (SRF) повинна зробити цю справу.

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

Псевдо-код для 2-х PIR міг би бути настільки ж простим, як:

amount = 60; //degrees
while (notCloseEnough)
{
  if (bothActive)
    forward;
  else 
  {
    if (leftActive)  
      turnLeftByAmount(amount);
    else
      turnRightByAmount(amount);
    amount = amount - 5;

    //recalibrate
    if (amount <= 0)
      amount = 60;
  }

  checkIfCloseEnough();
}

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

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

Обидва датчика доступні від Pololu (без приналежності):

Пасивний інфрачервоний датчик
ехолота Range Finder


Чи можете ви опублікувати якийсь псевдо-код або більш детальну інформацію про те, як за допомогою датчика PIR та сонару вдасться виявити та локалізувати людину?
Яхма

Який би діапазон цього рішення? Чи можна його пристосувати для відстеження людей на відстані 300 футів? І зроблено для розміщення поля зору на 180 градусів без рухомих частин? Дякую за цю пропозицію!
Crashalot

Інформаційний лист PIR не містить переліку діапазону ( pololu.com/file/0J250/SE-10.pdf ), але, виходячи з розміру датчика, здається, що діапазон буде обмежений, і, звичайно, не те, що може виявити людину рух на відстані 100-300 футів?
Crashalot

Це добре спрацювало на невеликих відстанях, можливо, 2 - 3 метри (6 - 9 футів). Я б також подумав, що цей алгоритм не розширюватиметься на більші відстані, наприклад, оскільки він дійсно залежить від того, що навіть велика «помилка» або коливання може бути виправлена ​​до того, як робот або предмет занадто розлучиться.
profMamba

1

Більш свіжий тип датчика, який можна використовувати, - це температурні масиви на основі MEMS від Omron (діапазон D6T) або Excelitas (DigiPile). Вони, на відміну від елементів PIR, вимірюють абсолютні температури і тим самим дозволяють розрізняти фонову та передню температури та визначати рух та статичні присутність джерел температури.


Чи знаєте ви, чи могли б датчики відслідковувати людей на відстані 300 футів?
Crashalot

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

Дякую за відповідь! Крім комп'ютерного зору високої роздільної здатності, чи є щось, що би працювало на 300 футів? Оскільки резюме настільки дорого обчислюється, чи можете ви зменшити обчислювальні витрати, з'єднавши CV з іншими датчиками, такими як PIR (або тепловий), щоб відслідковувати людей на відстані 100-300 футів?
Crashalot

0

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


Так? Який би діапазон щодо цього? Міліметри?
RoboKaren

0

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

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

Також було проведено певну роботу ( приклад 1 , приклад 2 ) з вивчення апаратного виявлення обличчя. Цифрові камери декількох років тому мали цю здатність, яка по суті була високооптимізованою нейронною мережею, покликаною сказати, "чи містить цей квадрат обличчя чи ні" ... тоді ви просто перебираєте набір заздалегідь визначених квадратів на захопленому зображенні.


Aww, ти запропонував те саме, що я робив, коли я писав моє! Чи бачили ви фільм Крикуни (1995)? = P
jzx

Я бачив трейлер, але ніколи фільм ... Добре знати, що я можу бути на чомусь. Але що Яма має на меті? :)
Ян

0

Я спробував використовувати PIR, але у нього проблеми з поводженням та затримки. Це не є ефективним вибором для чесного виявлення людини. Ви можете використовувати функціональну техніку зондування, оскільки це найдешевший і найпростіший спосіб виявлення людини (Розумний вибір), і він менш складний. Ви можете зробити датчик для себе за дуже низьку вартість, і це добре для невеликих проектів. Я використовував його в проекті "Робота з виявлення людини". Ви можете переглянути моє відео за адресою: Виявлення людини, засноване на потенціалах


0

Неметалічне рішення, яке, напевно, стане все більш популярним протягом наступних кількох років, - це завантаження вашої важкої завдання з обробки даних (наприклад, розпізнавання людини на зображенні) на службу Cloud. Це припустимо, що ваш пристрій підключено до Інтернету. Ось приклад з Raspberry Pi та API Cloud Vision Google: https://www.dexterindustries.com/howto/use-google-cloud-vision-on-the-raspberry-pi/ . Зауважте, що для підключення до Google хмара потрібна підписка за минулий пробний період, але деякі інші API хмарного бачення (Amazon, Microsoft Azure, ...?) Можуть навіть пропонувати свої послуги безкоштовно, якщо ви надсилаєте на їх сервери менше ніж N запитів на місяць .

Ще одним рішенням для важкої обробки даних на невеликих платформах було б перевантажити роботу на пристрій, схожий на thumbdrive вашого робота, із спеціалізованим процесорним блоком для запуску вже навчених моделей машинного навчання (наприклад, Movidius Neural Compute Stick з Raspberry PI: https : //medium.com/deep-learning-turkey/a-brief-guide-to-intel-movidius-neural-compute-stick-with-raspberry-pi-3-f60bf7683d40 ). Це також працює в автономному режимі. Вони все ще трохи дорогі для хобі-проектів, але я очікую, що їх вартість знизиться, як і все.

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