构建一个面部跟踪系统传统
扫描二维码
随时随地手机看文章
人工智能驱动的机器人眼睛使用双伺服系统实时跟踪你的脸。不需要OpenCV编码,只需要可视化块。10分钟完成。
这个项目是关于什么的?
制造机器人眼睛,自动跟踪你的脸。这个人工智能驱动的系统将实时人脸检测与双伺服电机相结合,通过简单的视觉编程创造自然的跟踪行为-无需编码。
我们为什么决定制作它?
构建面部跟踪系统传统上需要复杂的编程:实现计算机视觉库(OpenCV)、管理相机流、处理AI模型推理、计算坐标变换、集成伺服电机控制库、实现平滑滤波器以及协调所有这些组件。使用Grablo,你只需想“让伺服器跟随我的脸”,并安排视觉块来实现它。
你将创造什么
一个完整的人工智能面部追踪系统,具有:
•使用设备上的AI处理进行实时人脸检测
•双伺服电机控制,模仿眼球运动
•自动坐标到角度转换平滑跟踪
•仪表盘上有实时摄像头和遥测技术
•当多人在场时,追踪最大的脸
快速启动
•安装软件:在树莓派上下载并安装Grablo软件
•硬件设置:根据接线图连接双伺服电机
•连接摄像头:连接树莓派摄像头模块或USB摄像头
•获取此项目:项目链接
•连接控制器:在您的项目中,进入“连接控制器”,输入IP地址
•点击运行:观看伺服跟踪你的脸在实时!
想自己动手做吗?跳到构建过程并遵循详细的教程
构建过程
逻辑
控制1:启动摄像头和人脸检测
创建一个逻辑并添加一个启动相机并持续检测人脸的控件
•条件(一次):仅在项目启动时运行一次
•动作(AI相机):初始化相机与人脸检测
- AI分析1(人脸检测):检测是否存在人脸
- AI分析2(人脸检测):获取人脸中心坐标
控制2:伺服电机跟踪
创建一个基于检测到的面部位置旋转伺服电机的控件
•条件(比较):只在检测到face时执行
•动作1(设定变量):计算伺服旋转角度
•动作2(自定义动作-可选):应用平滑滤波器减少抖动
•动作3 (I/O设备控制):旋转第一个伺服电机
•动作4 (I/O设备控制):旋转第二个伺服电机
指示板
创建一个显示小部件的新仪表板:
•网络流媒体(摄像头小部件):实时视频馈送显示实时跟踪
•人脸检测(LED小部件):人脸存在的布尔状态
•人脸x坐标(标签小部件):被检测人脸的水平位置
•伺服角度(标签部件):当前计算的伺服位置
这是它!
恭喜你!你刚刚构建了一个完整的人工智能驱动的面部跟踪伺服电机系统,只使用两个简单的控件和零行代码。这就是用Grablo进行可视化编程的力量——传统上需要复杂的计算机视觉库、人工智能模型集成和电机控制编程,现在可以通过直观的拖放块来完成。
预期结果
当您运行项目时:
•人脸检测:伺服电机旋转,跟随你的脸水平
•向左移动:伺服跟踪向左(像眼睛跟随运动)
•向右移动:伺服器平稳地向右跟踪
•多面:系统自动跟踪最大的面
•无脸:伺服器保持最后位置
•平滑运动:过滤消除抖动,创造自然运动
•仪表板:显示实时跟踪数据的实时摄像机馈送
接线图
伺服1(左眼):
•红线→5V电源
•棕线→GND
•橙线→GPIO 23(或您选择的引脚)
伺服2(右眼):
•红线→5V电源
•棕线→GND
•橙线→GPIO 24(或您选择的引脚)
相机模块:
•树莓派摄像头:连接CSI摄像头接口
•或USB相机:连接到任何USB端口
重要提示:
•电源:在使用Pi的5V进行测试时,请使用外部5V直流电源(最小2A),以确保双伺服系统稳定运行
•摄像头兼容性:支持Raspberry Pi Camera Module V1/V2/V3和大多数USB摄像头
•分辨率:分辨率越高,检测精度越高,但对处理能力要求越高
•伺服范围:调整角度范围(45-135°)根据您的机械设置和相机视野
•GPIO引脚:可以使用任何可用的GPIO引脚-只需在设备设置中更新引脚编号
接下来是什么?
使用更多的块扩展您的项目:
•全平移倾斜控制:增加人脸y坐标检测,控制第二伺服进行垂直跟踪(真正的2D人脸跟随)
•对象跟踪:将AI分析类型从“人脸检测”更改为“对象检测”,以跟踪球,手或特定颜色的物体
•LED指示灯:增加检测到人脸时亮起或根据跟踪状态改变颜色的LED
•运动触发的快照:自动保存相机快照时,人脸检测-家庭安全或访客记录有用
故障排除
伺服不动:
•验证GPIO引脚号码匹配您的布线
•检查伺服电源(双伺服至少1A)
•确认伺服连接(橙色到信号,红色到5V,棕色到GND)
未检测到人脸:
•增加房间的照明
•靠近摄像机(最佳1-3米)
•检查相机方向设置(尝试使用/不使用水平翻转)
跟踪方向错误:
•调整线性刻度输出范围(尝试135到45而不是45到135)
•切换相机水平翻转设置
•验证摄像机安装方向
摄像头未检测到:
•对于Pi相机:在raspi-config中启用相机
•对于USB摄像机:检查ls /dev/video*命令的连接
•尝试不同的相机索引(0,1,2…)
本文编译自hackster.io





