Apa cara termurah / termudah untuk mendeteksi seseorang?


15

Saya ingin tahu apakah ada yang berhasil mendeteksi mamalia bertubuh hangat (mis. Manusia) menggunakan standar dari rak, sensor murah?

Idealnya, saya ingin menggunakan sensor murah atau kombinasi sensor untuk mendeteksi seseorang di dalam ruangan dan melokalkan orang itu. Saya ingin robot memasuki ruangan, mendeteksi apakah ada manusia dan pindah ke manusia yang terdeteksi. Akurasi tidak perlu 100%, karena biaya lebih merupakan faktor. Saya ingin persyaratan komputasi sensor sedemikian rupa sehingga dapat berjalan pada Arduino, meskipun jika itu tidak mungkin, saya akan bersedia untuk menggunakan sesuatu dengan tenaga yang lebih besar, seperti Raspberry Pi atau BeagleBone Black. Saya punya beberapa pemikiran; namun, tidak satupun dari mereka yang ideal:

  1. PIR Sensor - Dapat mendeteksi gerakan dalam bidang penglihatan yang luas (mis. Biasanya 120 derajat atau lebih). Mungkin hal yang paling dekat dengan detektor "manusia" yang saya sadari; Namun, itu membutuhkan gerakan dan pelokalan / triangulasi di mana seseorang akan sangat sulit (mustahil?) dengan bidang visi yang luas.
  2. Ultrasound - Dapat mendeteksi objek dengan presisi yang baik. Memiliki bidang pandang yang jauh lebih sempit; Namun, tidak dapat membedakan antara objek statis yang tidak hidup dan manusia.
  3. Detektor IR - (mis. Sensor rentang tajam) Dapat mendeteksi objek dengan presisi tinggi, bidang pandang yang sangat sempit; Namun, sekali lagi tidak dapat membedakan objek.
  4. Webcam + OpenCV - Mungkin menggunakan deteksi wajah untuk mendeteksi manusia di suatu ruangan. Ini mungkin pilihan terbaik; namun, OpenCV mahal secara komputasi dan akan membutuhkan lebih dari sekadar arduino untuk dijalankan. Bahkan pada Raspberry Pi, ini bisa lambat.
  5. Kinect - Menggunakan kemampuan deteksi fitur Kinect, akan relatif mudah untuk mengidentifikasi manusia di suatu daerah; Namun, Kinect terlalu mahal dan saya tidak akan menganggapnya sebagai solusi "murah".

Mungkin seseorang menyadari "detektor panas" yang tidak mahal yang disesuaikan dengan panas tubuh dan / atau telah berhasil dengan beberapa kombinasi (# 1-4) di atas dan ingin membagikan hasilnya?


Apakah itu terbatas pada manusia atau haruskah mengenali Mr. Ed juga?
ott--

Mamalia bertubuh hangat. Ini akan digunakan di dalam ruangan, jadi Pak Ed seharusnya tidak ada di sana; Namun, jika dia, dia akan terdeteksi. =)
Yahma

Saya dituntun untuk memahami (ketika saya mencari sesuatu yang serupa) bahwa Kinect sebenarnya tidak semahal itu; Namun itu menderita membutuhkan jarak minimum untuk beroperasi dengan baik. Masih untuk kebutuhan Anda mungkin berhasil dan saya yakin ada banyak kode untuk itu.
Galahad II

Solusi apa yang Anda gunakan? Apakah Anda menemukan sesuatu dengan rentang yang lebih panjang?
Crashalot

Sebenarnya saya punya pertanyaan. Bisakah kita mendeteksi denyut nadi manusia menggunakan sensor IR di pin analog Audrino? jika demikian lalu bagaimana? tolong bantu saya
sapana

Jawaban:


7

Kombinasi detektor inframerah pasif (PIR) dan sonar range finder (SRF) harus melakukan trik.

Apa yang telah bekerja dengan baik untuk saya sebelumnya (tidak menemukan manusia tetapi sangat mirip) adalah memiliki dua PIR di sisi kiri dan kanan menunjuk sehingga mereka memiliki sedikit tumpang tindih di tengah.
Anda kemudian dapat mencari tahu apakah manusia ke kiri, kanan atau di depan (ketika keduanya aktif). Anda pada dasarnya kemudian menumpuk ini di atas SRF yang akan memberi tahu Anda rentang dll. Ini agak kotor dan Anda harus membuat beberapa asumsi, tetapi itu bekerja dengan baik untuk kesederhanaannya.

Kode pseudo untuk 2 PIR dapat berupa sesuatu yang sederhana seperti:

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();
}

Idenya adalah Anda banyak berbalik ke satu sisi (60 derajat) jika Anda melihat sesuatu di area itu. Jika mereka tidak di depan Anda setelah belokan, putar sedikit kurang ke sisi yang Anda lihat. Terus ulangi dan persempit jumlah belokan sampai mereka ada di depan Anda, lalu maju. Ingatlah bahwa Anda tidak memutar sebanyak (mengatur ulang sudut) setelah mereka berada di depan karena tidak akan bergerak 'di luar ruang lingkup' sebagai cepat.

Saya benar-benar kagum dengan betapa bagusnya algoritma ini bekerja (kami menggunakannya untuk mengejar mainan otomatis dan harus memperlambat / bodohnya karena itu akan mengalahkan / menangkap robot yang dikendalikan manusia terlalu mudah).

Kedua sensor tersedia dari Pololu (tidak ada afiliasi):

Detektor Inframerah Pasif
Sonar Range Finder


Bisakah Anda memposting beberapa kode pseudo atau rincian lebih lanjut tentang bagaimana menggunakan sensor PIR & sonar akan dapat mendeteksi dan melokalkan seseorang?
Yahma

Berapa kisaran solusi ini? Bisakah itu diadaptasi untuk melacak orang hingga 300 kaki jauhnya? Dan dibuat untuk mengakomodasi bidang pandang 180 derajat tanpa bagian yang bergerak? Terima kasih atas saran ini!
Crashalot

Lembar data PIR tidak mencantumkan rentang ( pololu.com/file/0J250/SE-10.pdf ), tetapi berdasarkan pada ukuran sensor, sepertinya rentang akan terbatas, dan tentu saja bukan sesuatu yang dapat mendeteksi manusia gerakan 100-300 kaki jauhnya?
Crashalot

Ini bekerja dengan baik untuk jarak kecil, mungkin 2 - 3 meter (6 - 9 kaki). Saya juga akan berpikir bahwa algoritma ini tidak akan skala dengan baik untuk jarak yang lebih besar, misalnya karena itu benar-benar bergantung pada kenyataan bahwa bahkan 'kesalahan' atau fluktuasi besar dapat diperbaiki sebelum robot atau subjek menjadi terlalu terpisah.
profMamba

1

Jenis sensor yang lebih baru yang dapat digunakan adalah array temperatur berbasis MEMS oleh Omron (rentang D6T) atau Excelitas (DigiPile). Ini, yang bertentangan dengan elemen PIR, mengukur suhu absolut dan dengan demikian memungkinkan untuk membedakan antara suhu latar belakang dan latar depan dan mendeteksi pergerakan dan kehadiran statis sumber suhu.


Apakah Anda tahu jika sensor ini dapat melacak orang hingga 300 kaki jauhnya?
Crashalot

Saya tidak berpikir itu akan berhasil. Saya akan mengatakan maksimum 5-10m. Resolusi ini cukup rendah, sehingga orang pada jarak ini hanya titik kecil dalam satu piksel.
kjyv

Terima kasih balasannya! Di luar visi komputer resolusi tinggi, adakah yang bisa bekerja sejauh 300 kaki? Karena CV sangat mahal secara komputasi, dapatkah Anda mengurangi biaya komputasi dengan menggabungkan CV dengan sensor lain seperti PIR (atau termal) untuk melacak orang yang berjarak 100-300 kaki?
Crashalot

0

sensor kapasitif dapat bekerja, sangat murah untuk membuatnya, hanya aluminium foil dan beberapa resistor, dapat mendeteksi daging tetapi saya tidak yakin jika saya tidak mendeteksi apa-apa selain daging, Anda dapat menggunakan 3 untuk melakukan pelacakan


Hah? Apa yang akan menjadi kisaran pada ini? Milimeter?
RoboKaren

0

Saya tidak bisa mengatakan apakah ini yang paling mudah, tetapi bisa dibayangkan Anda bisa menggunakan perpustakaan Eulerian Video Magnification untuk mendeteksi denyut nadi seseorang.

Dalam hal ini, Anda akan mencari fluktuasi dalam video yang cocok dengan rentang pulsa manusia yang diharapkan. Anda juga perlu gambar yang jelas dari bagian tubuh yang memperlihatkan denyut nadi yang terlihat.

Ada juga beberapa pekerjaan ( contoh 1 , contoh 2 ) yang mengeksplorasi deteksi wajah berbasis perangkat keras. Kamera digital dari beberapa tahun yang lalu memiliki kemampuan ini, yang pada dasarnya adalah jaringan saraf yang sangat dioptimalkan yang dirancang untuk mengatakan "apakah kotak ini mengandung wajah atau tidak" ... maka Anda hanya beralih pada seperangkat kotak yang telah ditentukan sebelumnya dalam gambar yang diambil.


Aww, Anda menyarankan hal yang sama yang saya lakukan saat saya menulis milik saya! Apakah Anda melihat film Screamers (1995) juga? = P
jzx

Saya telah melihat trailernya, tetapi tidak pernah menonton filmnya ... senang mengetahui bahwa saya mungkin menyukai sesuatu. Tetapi apa yang sedang dilakukan Yahma? :)
Ian

0

Saya mencoba menggunakan PIR tetapi memiliki masalah dengan penanganan dan penundaan. Ini bukan pilihan yang efisien untuk deteksi manusia untuk jujur. Anda dapat menggunakan Teknik Penginderaan Kapasitif karena merupakan cara termurah dan termudah untuk deteksi manusia (Pilihan cerdas) dan juga tidak terlalu rumit. Anda dapat membuat sensor untuk diri Anda sendiri dengan biaya yang sangat rendah dan itu bagus untuk proyek-proyek kecil. Saya telah menggunakannya dalam Proyek "Robot Deteksi Manusia" saya. Anda dapat menonton video saya di: Deteksi Manusia Berbasis Kapasitif


0

Solusi non-bare-metal yang mungkin akan menjadi semakin populer selama beberapa tahun ke depan adalah melepaskan tugas pemrosesan data berat Anda (misalnya mengenali manusia dalam gambar) ke layanan Cloud. Itu dengan asumsi perangkat Anda terhubung ke internet. Berikut adalah contoh dengan Raspberry Pi dan Google Cloud Vision API: https://www.dexterindustries.com/howto/use-google-cloud-vision-on-the-raspberry-pi/ . Perhatikan bahwa ini memerlukan berlangganan ke cloud Google melewati masa percobaan, tetapi beberapa API visi cloud lainnya (Amazon, Microsoft Azure, ...?) Bahkan dapat menawarkan layanan mereka secara gratis jika Anda mengirimkan kurang dari N permintaan per bulan ke server mereka .

Namun solusi lain untuk pemrosesan data berat pada platform kecil adalah melepas pekerjaan ke perangkat seperti thumbdrive pada robot Anda dengan unit prosesor khusus untuk menjalankan model pembelajaran mesin yang sudah terlatih (mis. Movidius Neural Compute Stick dengan Raspberry PI: https : //medium.com/deep-learning-turkey/a-brief-guide-to-intel-movidius-neural-compute-stick-with-raspberry-pi-3-f60bf7683d40 ). Ini juga berfungsi offline. Mereka masih agak mahal untuk proyek hobi tetapi saya berharap biayanya akan turun seperti segalanya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.