什么是检测一个人的最便宜/最简单的方法?


15

我想知道是否有人能使用现成的标准廉价传感器检测热身哺乳动物(即人类)?

理想情况下,我想使用便宜的传感器或传感器组合来检测房间内的人并定位该人。我希望机器人进入房间,检测是否有人,然后移至检测到的人。精度不一定是100%,因为成本是一个重要因素。我希望这种传感器的计算要求能够在Arduino上运行,尽管如果不可能的话,我愿意使用功能更强大的产品,例如Raspberry Pi或BeagleBone Black。我有一些想法;但是,它们都不是理想的:

  1. PIR传感器 -可以检测大视野内的运动(即通常为120度或更大)。可能是我所知道的最接近“人类”探测器的事物。但是,在如此大的视野下,需要移动和定位/三角定位一个人所处的位置将非常困难(不可能?)。
  2. 超声波 -可以高精度检测物体。具有较窄的视野;但是,无法区分静态的无生命物体和人类。
  3. 红外探测器 -(即锐利范围传感器)可以再次以极高的精度,非常狭窄的视场检测物体;但是,它再次无法区分对象。
  4. 网络摄像头+ OpenCV-可能使用面部检测来检测房间中的人。这可能是最好的选择。但是,OpenCV在计算上很昂贵,并且运行起来比arduino要多得多。即使在Raspberry Pi上,速度也会很慢。
  5. Kinect-使用Kinect的特征检测功能,相对容易识别区域内的人员;但是,Kinect太昂贵了,我认为它不是“便宜”的解决方案。

也许有人知道调整到体热的廉价“热量检测器”和/或通过上述(#1-4)的某种组合获得了成功,并且想分享他们的结果?


它只限于人类吗?还是应该认识埃德先生?
ott-- 2013年

任何热身的哺乳动物。它会在室内使用,所以埃德先生不应该在那里。但是,如果他被发现,就会被发现。=)
Yahma

当我寻求类似的东西时,我被领会到Kinect实际上并不那么昂贵。但是,它确实需要最小距离才能正常运行。仍然可以满足您的要求,它可能会起作用,而且我敢肯定有很多代码可以满足要求。
Galahad II

您采取了什么解决方案?您碰巧找到了更长距离的东西吗?
Crashalot '16

其实我有一个问题。我们可以使用红外传感器在Audrino的模拟引脚中检测人脉率吗?如果是这样,那怎么办?请帮帮我
sapana

Answers:


7

被动红外检测器(PIR)和声纳测距仪(SRF)的组合应该可以解决问题。

以前对我有效的方法(找不到人,但非常相似)是在左右两侧分别指定两个PIR,以便它们在中间有一点重叠。
然后,您可以确定人类是在左侧,右侧还是前方(当两个都打开时)。然后,您基本上将其堆叠在SRF的顶部,它将告诉您范围等信息。它有点脏,您必须作一些假设,但为了简单起见,它很好用。

这两个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购买(无隶属关系):

被动红外探测器
声纳测距仪


您可以张贴一些伪代码或其他有关如何使用PIR传感器和声纳来检测和定位人员的详细信息吗?
Yahma 2013年

此解决方案的范围是多少?是否可以将其追踪到300英尺外的人员?并且可以容纳180度无移动部件的视场吗?感谢您的建议!
Crashalot '16

PIR数据表没有列出范围(pololu.com/file/0J250/SE-10.pdf),但是基于传感器的大小,似乎范围会受到限制,并且肯定不会检测到人类运动距离100-300英尺?
Crashalot '16

对于短距离(大约2-3米(6-9英尺)),此方法效果很好。我也认为该算法无法很好地扩展到更大的距离,例如,它实际上取决于这样一个事实,即即使是较大的“误差”或波动,也可以在机器人或受试者离得太远之前进行校正。
profMamba

1

可以使用的最新传感器类型是欧姆龙(D6T系列)或Excelitas(DigiPile)的基于MEMS的温度阵列。与PIR元件相反,它们测量绝对温度,从而可以区分背景温度和前景温度,并检测温度源的运动和静态存在。


您知道这些传感器是否可以追踪300英尺外的人吗?
Crashalot '16

我认为那不行。我说最多5-10m。分辨率非常低,因此处于此距离的人只是一个像素内的一个小点。
kjyv

谢谢回复!除了高分辨率的计算机视觉之外,还有什么能在300英尺的范围内起作用?由于CV的计算量如此之大,您是否可以通过将CV与其他传感器(如PIR(或热))耦合以跟踪100-300英尺远的人来降低计算成本?
Crashalot

0

电容式传感器可以工作,制造起来真的很便宜,只需铝箔和一些电阻,它就可以检测到肉,但是我不确定是否除了肉以外我什么也不能检测,您可以使用3进行三角测量


??这个范围是多少?毫米?
RoboKaren 2014年

0

我不能说这是否最简单,但是可以想象,您可以使用欧拉视频放大库来检测人的脉搏。

在这种情况下,您会在视频中寻找与预期的人脉搏范围相匹配的波动。您还需要显示可见脉冲的身体部位的清晰图像。

还有一些工作(示例1示例2)探索基于硬件的面部检测。几年前的数码相机具有此功能,它本质上是高度优化的神经网络,旨在说“这个正方形是否包含人脸”……然后您只需在捕获的图像中遍历一组预定义的正方形即可。


噢,你建议我写我的时候做的同样的事情!您是否也看过电影Screamers(1995)?= P
jzx 2014年

我看过预告片,但从未看过电影……很高兴知道我可能会遇到一些事情。但是Yahma在做什么?:)
Ian

0

我尝试使用PIR,但是它在处理和延迟方面存在问题。老实说,这不是人类发现的有效选择。您可以使用电容式传感技术,因为它是用于人类检测的最便宜,最简单的方法(一个明智的选择),并且它也不太复杂。您可以以非常低的成本为自己制造传感器,这对小型项目非常有用。我在“人类检测机器人”项目中使用了一个。您可以在以下位置观看我的视频:基于电容的人体检测


0

在未来几年中可能会越来越流行的非金属解决方案是将繁重的数据处理任务(例如,识别图像中的人)转移到Cloud服务。假设您的设备已连接到互联网。这是Raspberry Pi和Google Cloud Vision API的示例:https : //www.dexterindustries.com/howto/use-google-cloud-vision-on-the-raspberry-pi/。请注意,它需要在试用期内订阅Google Cloud,但如果您每月向其服务器提交的请求少于N个,则某些其他Cloud Vision API(Amazon,Microsoft Azure等)可能甚至免费提供其服务。 。

在小型平台上进行大量数据处理的另一种解决方案是将工作转移到机器人上具有专用处理器单元的类似设备的拇指驱动器上,以运行已受过训练的机器学习模型(例如,带有Raspberry PI的Movidius神经计算棒:https ://medium.com/deep-learning-turkey/a-brief-guide-to-intel-movidius-neural-compute-stick-with-raspberry-pi-3-f60bf7683d40)。这也可以离线使用。对于爱好项目,它们仍然有些昂贵,但是我希望它们的成本会像其他事物一样下降。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.