亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

使用树莓派进行平移/倾斜面部跟踪

通过一些努力,我发现控制两个伺服电机以允许网络摄像头平移/倾斜,同时使用 raspberry pi 实时跟踪面部并不像乍一看那样不可能。通过一些仔细的调整和代码优化,我能够让 pi 跟上两个伺服系统,同时以 320×240 的分辨率运行 OpenCV 人脸检测,寻找正确的轮廓、左轮廓和正面,并以每秒一次以上的速度调整伺服系统.

第一步:获取硬件。

需要的东西:

树莓派 — 模型 A 可以正常工作,我有原始模型 B,它与新模型 A 具有相同的规格(减去网络)。
平移/倾斜支架
两个舵机
GPIO 带状电缆
支持 Pi 的网络摄像头 — 我使用的是罗技 C210

假设你已经有一个树莓派和一个网络摄像头,额外的硬件会让你花费大约 25 美元

第 2 步:准备好树莓派。

确保您使用的是官方 RaspbianOS(硬浮动版本)并且它是最新的。
您可能想要超频您的树莓派。我做到了 800mhz。您走得越高,面部识别速度越快,但您的 pi 可能越不稳定。

为 python 安装 OpenCV:sudo apt-get install python-opencv
Richard Hirst 为 raspberry pi 获取出色的伺服冲击器伺服驱动程序:这里

您可以将所有文件下载为 zip 存档并将它们解压缩到 pi 上某处的文件夹中。
要安装伺服冲击波驱动程序,请打开终端和 CD 到您提取伺服冲击波文件的目录中
运行命令:make install_autostart

如果舵机没有被移动,您可能希望使舵机超时并在一秒后停止向舵机发送信号。
要做到这一点,请将以下行添加到 /etc/modules:servoblaster idle_timeout=1000

使用以下命令启动伺服喷砂机:sudo modprobe伺服喷砂机

下一个任务是让相机按预期运行:

首先,非常感谢 Gmoto 发现并指出它,这是使一切顺利运行的“pi”的最后一块;您必须调整 uvcvideo 模块中的一些参数才能使一切正常运行。
即,运行以下命令:

rmmod uvcvideo
modprobe uvcvideo nodrop=1 timeout=5000 quirks=0x80

如果您打算运行面部跟踪程序,则每次重新启动时都需要运行该程序,或者将参数添加到 /etc/modules 中,就像您对伺服喷砂机超时调整所做的那样。

第 3 步:组装您的装备

按照说明构建平移/倾斜支架并连接伺服系统。
将您的相机连接到支架顶部(我只是使用胶带)并将其插入您的树莓派 USB 端口。
我是能够在没有 USB 集线器的情况下为其供电,但您可能需要一个有源 USB 集线器并通过它。

第 4 步:连接舵机

Servoblaster认为servo-0连接GPIO 4,servo-1连接GPIO-17。
Servos有三根线,一根是红色,是Vin/positive,一根是棕色或黑色,分别是是接地/负极,另一个是控制。
使用带状电缆(在我的情况下,一些连接线卡在孔中)将每个伺服的控制线连接到正确的引脚。代码假设servo-0将控制左右运动,而servo-1将控制相机的上下运动;所以用这种方式连接它们。

现在看来,舵机的 Vin 将来自 GPIO 的 5v 引脚,而舵机的接地将来自 GPIO 的接地引脚,这似乎是常识,但这在我的情况下不起作用,因为我使用了更大的伺服底座。大型伺服器比 pi 愿意提供的功率更大。然而,我能够毫无问题地为我的小型倾斜伺服系统提供动力。此外,制造伺服爆破器的理查德·赫斯特似乎暗示他可以使用 GPIO 5v 驱动多个小型伺服系统。我还了解到,我的 pi 版本中有一些保险丝,后来与这些电源引脚相关被移除。我的直觉告诉我,你可以从较新的 pi 上的这些引脚为两个较小的伺服器供电。如果你不能,这就是你必须做的:

您将需要某种能够处理 5v-6v 重负载的外部电源:我使用了内置在 arduino 中的电源,但任何 5 伏电源都可以;伺服系统的额定电压高达 6v。计算机电源上的 5v 引脚、5v-6v 壁式充电器、并联的一些电池;无论什么漂浮在你的船上。拥有外部电源后,只需将伺服器的正极和负极线连接到电源的正极和负极,然后将外部电源的接地(负极)连接到 raspberry pi GPIO 上的接地引脚。

第五步:运行程序

我在这篇文章中附上了 python 脚本,它叫做 PiFace.py 来运行它只是 CD 到它在终端中的位置并输入:python PiFace.py

这是我的一些实际操作视频。

更多细节:使用树莓派进行平移/倾斜面部跟踪


制造工艺

  1. 使用 DS18B20 读取温度 |树莓派 2
  2. Raspberry Pi 上的温度监控
  3. 使用 RASPBERRY PI 测量温度
  4. 使用 Raspberry Pi 监测温度
  5. 传感器数据与 Raspberry Pi 微处理器的集成
  6. 带 RPi 的线跟踪传感器
  7. 用树莓派检测闪电
  8. Raspberry Pi Ball 跟踪
  9. 带有 t cobbler plus 的 Raspberry pi 2 水报警器
  10. 使用树莓派进行平移/倾斜面部跟踪
  11. Raspberry Pi 的最佳配件
  12. 在没有 LIRC 的情况下将 IR Remote 与 Raspberry Pi 一起使用