Bir kişiyi tespit etmenin en ucuz / en kolay yolu nedir?


15

Birisinin rafta standart, ucuz sensörler kullanarak sıcak gövdeli bir memeliyi (yani İnsan) tespit etme başarısı olup olmadığını bilmek isterim?

İdeal olarak, bir odadaki bir kişiyi algılamak ve o kişiyi yerelleştirmek için ucuz bir sensör veya sensör kombinasyonu kullanmak istiyorum. Robotun bir odaya girmesini, bir insanın mevcut olup olmadığını tespit etmesini ve ardından tespit edilen insana geçmesini istiyorum. Maliyet daha fazla faktör olduğundan, doğruluğun% 100 olması gerekmez. Böyle bir sensörün hesaplama gereksinimlerinin bir Arduino üzerinde çalışabileceği şekilde olmasını istiyorum, ancak imkansızsa, Ahududu Pi veya BeagleBone Siyah gibi daha fazla güç ile bir şey kullanmaya istekli olurum. Birkaç düşüncem var; ancak hiçbiri ideal değildir:

  1. PIR Sensörü - Geniş bir görüş alanındaki hareketi algılayabilir (yani genellikle 120 derece veya daha fazla). Farkında olduğum bir "insan" dedektörüne en yakın şey olabilir; ancak bu kadar geniş bir görüş alanı ile bir kişinin çok zor olacağı (imkansız?) hareket ve yerelleştirme / üçgenleme gerektirir.
  2. Ultrason - Nesneleri hassas bir şekilde algılayabilir. Çok daha dar bir görüş alanına sahiptir; ancak, durağan olmayan bir nesne ile insan arasında ayrım yapamaz.
  3. IR dedektörleri - (yani, Keskin aralık sensörleri) Nesneleri yine çok hassas, çok dar görüş alanı ile algılayabilir; ancak, nesneleri tekrar ayırt edemez.
  4. Web kamerası + OpenCV - Bir odadaki insanları algılamak için yüz algılamayı kullanın. Bu en iyi seçenek olabilir; ancak, OpenCV hesaplama açısından pahalıdır ve çalıştırmak için bir arduinodan çok daha fazlasını gerektirir. Bir Raspberry Pi'de bile yavaş olabilir.
  5. Kinect - Kinect'in özellik algılama yeteneklerini kullanarak, bir bölgedeki insanları tanımlamak nispeten kolay olurdu; Ancak, Kinect çok pahalı ve ben "ucuz" bir çözüm düşünün olmaz.

Belki birisi vücut ısısına ayarlanmış ucuz bir "ısı dedektörü" nin farkındadır ve / veya yukarıdaki (# 1-4) 'ün bazı kombinasyonlarında başarılı olmuştur ve sonuçlarını paylaşmak ister?


İnsanlarla sınırlı mı yoksa Bay Ed'i de tanımalı mı?
ott--

Sıcak gövdeli herhangi bir memeli. İç mekanda kullanılacak, bu yüzden Bay Ed orada olmamalı; ancak, öyle olsaydı, tespit edilirdi. =)
Yahma

Kinect'in aslında o kadar pahalı olmadığını (benzer bir şey ararken) anladım; ancak düzgün çalışması için minimum bir mesafeye ihtiyaç duymaz. Gereksiniminiz için hala işe yarayabilir ve bunun için çok sayıda kod olduğundan eminim.
Galahad II

Hangi çözüm ile gittiniz? Daha uzun menzilli bir şey buldunuz mu?
Crashalot

Aslında bir sorum var. Audrino'nun analog pimlerinde IR sensörü kullanarak insan nabız hızını tespit edebilir miyiz? eğer öyleyse nasıl? lütfen bana yardım et
sapana

Yanıtlar:


7

Pasif kızılötesi dedektör (PIR) ve sonar telemetre (SRF) kombinasyonu hile yapmalıdır.

Benim için daha önce işe yarayan şey (insanları bulmak değil ama çok benzer) sol ve sağ taraflarda iki PIR'nin ortada biraz örtüşmesi için işaret etmesi gerekiyordu.
Daha sonra insanın sola mı, sağa mı yoksa öne mi (her ikisi de açıkken) olduğunu anlayabilirsiniz. Temelde daha sonra SRF'nin üzerine, vb.'yi söyleyecek şekilde istifleyin. Biraz kirli ve bazı varsayımlar yapmanız gerekiyor, ancak basitliği için iyi çalışıyor.

2 PIR için sözde kod şu kadar basit bir şey olabilir:

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

Buradaki fikir, o bölgede bir şey görürseniz bir tarafa (60 derece) çok fazla dönmenizdir. Dönüşten sonra önünüzde değilse, onları gördüğünüz tarafa biraz daha az dönün. Önünüzde oluncaya kadar dönüş miktarını tekrarlamaya ve daraltmaya devam edin, sonra ileri doğru. Önde olduklarında çok fazla dönmediğinizi (açıyı sıfırlayın) unutmayın, çünkü 'kapsam dışı' kadar hızlı hareket etmez.

Bu algoritmanın aslında ne kadar iyi çalıştığına gerçekten şaşırdım (otomatik kovalamaca oyuncakları için kullandık ve yavaşlatmak / aptallaştırmak zorunda kaldık çünkü insan kontrollü bir robotu çok kolay dövecek / yakalayacaktı).

Her iki sensör de Pololu'dan temin edilebilir (bağlantı yok):

Pasif Kızılötesi Dedektör
Sonar Mesafe Bulucu


Bir sahte kod veya bir PIR sensörü ve sonar kullanmanın bir kişiyi nasıl tespit edip yerelleştirebileceğine dair daha fazla ayrıntı gönderebilir misiniz?
Yahma

Bu çözümdeki menzil ne olurdu? 300 feet uzaktaki insanları takip etmek için uyarlanabilir mi? Ve hareketli parça içermeyen 180 derecelik bir görüş alanını barındırmak için mi yapılmıştır? Bu öneri için teşekkürler!
Crashalot

PIR veri sayfasında bir aralık listelenmiyor ( pololu.com/file/0J250/SE-10.pdf ), ancak sensör boyutuna bağlı olarak, aralık sınırlı gibi görünüyor ve kesinlikle insanı algılayabilecek bir şey değil gibi görünüyor 100-300 fit uzakta mı?
Crashalot

Bu, belki 2 - 3 metre (6 - 9 feet) gibi küçük mesafeler için iyi çalıştı. Ayrıca, bu algoritmanın daha büyük mesafelere iyi ölçeklenmeyeceğini düşünüyorum, örneğin robot veya konu çok ayrılmadan önce büyük bir 'hata' veya dalgalanmanın bile düzeltilebileceğine gerçekten bağlı.
profMamba

1

Kullanılabilecek daha yeni bir sensör tipi Omron (D6T aralığı) veya Excelitas (DigiPile) tarafından MEMS tabanlı sıcaklık dizileridir. Bunlar, PIR elemanlarının aksine, mutlak sıcaklıkları ölçer ve böylece arka plan ve ön plan sıcaklıklarını ayırt etmeye ve sıcaklık kaynaklarının hareketini ve statik varlığını tespit etmeye izin verir.


Bu sensörlerin 300 feet uzaktaki insanları takip edip edemeyeceğini biliyor musunuz?
Crashalot

Bunun işe yarayacağını sanmıyorum. En fazla 5-10 m diyebilirim. Çözünürlük oldukça düşüktür, bu nedenle bu mesafedeki bir kişi bir piksel içinde sadece küçük bir noktadır.
kjyv

Cevap için teşekkürler! Yüksek çözünürlüklü bilgisayar görüşünün ötesinde, 300 feet boyunca işe yarayacak bir şey var mı? CV bu kadar hesaplama açısından pahalı olduğundan, CV'yi PIR (veya termal) gibi diğer sensörler ile 100-300 feet uzakta izlemek için diğer sensörlerle birleştirerek hesaplama maliyetlerini düşürebilir misiniz?
Crashalot

0

kapasitif bir sensör işe yarayabilir, yapmak gerçekten ucuz, sadece alüminyum folyo ve birkaç direnç, eti tespit edebilir, ancak iyiden başka bir şey tespit edip etmediğinden emin değilim, üçgeni üçgenlemek için kullanabilirsiniz


Ha? Bunun menzili ne olurdu? Milimetre?
RoboKaren

0

Bunun en kolay olup olmadığını söyleyemem, ancak bir kişinin nabzını tespit etmek için Eulerian Video Büyütme kütüphanesini kullanabilirsiniz.

Bu durumda, videoda beklenen insan nabız aralığıyla eşleşen bir dalgalanma arıyorsunuz. Ayrıca görünür nabzı sergileyen bir vücut kısmının net bir görüntüsüne ihtiyacınız olacaktır.

Donanım tabanlı yüz algılamayı araştıran bazı çalışmalar da vardır ( örnek 1 , örnek 2 ). Birkaç yıl önceki dijital kameralar, aslında bu kare bir yüz içeriyor mu yoksa içermiyor mu demek için tasarlanmış oldukça optimize edilmiş bir sinir ağı olan bu özelliğe sahipti ... o zaman yakalanan görüntüde önceden tanımlanmış bir dizi kareyi tekrarlıyorsunuz.


Aww, benimki yazarken yaptığımla aynı şeyi önerdin! Screamers (1995) filmini de gördünüz mü? = P
jzx

Fragmanı gördüm, ama asla film ... bir şeylerin üzerinde olabileceğimi bilmek güzel. Ama Yahma ne yapıyor? :)
Ian

0

PIR kullanmayı denedim ama kullanım ve gecikmelerle ilgili sorunları var. İnsan tespitinin dürüst olması etkili bir seçim değildir. Kapasitif Algılama Tekniğini insan tespiti için en ucuz ve en kolay yol olduğu için kullanabilirsiniz (Akıllı seçim) ve daha az karmaşıktır. Çok düşük maliyetle kendiniz için bir sensör yapabilirsiniz ve küçük projeler için iyidir. "İnsan Algılama Robotu" Projemde bir tane kullandım. Videomu şurada izleyebilirsiniz: Kapasitif Tabanlı İnsan Algılama


0

Önümüzdeki birkaç yıl içinde giderek daha popüler hale gelecek olan çıplak metal olmayan bir çözüm, ağır veri işleme görevinizi (örneğin, bir görüntüdeki bir insanı tanımak) bir Bulut hizmetine boşaltmak olacaktır. Bu, cihazınızın internete bağlı olduğunu varsayar. Raspberry Pi ve Google Cloud Vision API'sı ile ilgili bir örnek: https://www.dexterindustries.com/howto/use-google-cloud-vision-on-the-raspberry-pi/ . Deneme döneminden sonra Google Cloud'a abonelik gerektirdiğini, ancak sunucularına ayda N'den az istek gönderirseniz, diğer bazı bulut görme API'lerinin (Amazon, Microsoft Azure, ...?) Ücretsiz hizmet sunabileceğini unutmayın. .

Küçük platformlarda ağır veri işleme için başka bir çözüm, işi önceden eğitilmiş makine öğrenme modellerini çalıştırmak için özel bir işlemci birimi (örn. Raspberry PI ile Movidius Neural Compute Stick: https) ile robotunuzdaki thumbdrive benzeri bir cihaza aktarmak olacaktır. : //medium.com/deep-learning-turkey/a-brief-guide-to-intel-movidius-neural-compute-stick-with-raspberry-pi-3-f60bf7683d40 ). Bu da çevrimdışı çalışıyor. Hobi projeleri için hala biraz pahalılar ama maliyetlerinin her şey gibi düşeceğini umuyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.