设计一款独立的边缘AI追踪摄像头
这是一款小型物体追踪摄像头,能够识别目标并转向跟随。
我的第一个版本使用ESP32-CAM将视频流传输到笔记本电脑,由YOLO模型检测物体,然后笔记本电脑再向另一台控制舵机的ESP32发送运动指令。
虽然系统能运行,但仍然依赖于笔记本电脑。
在升级版中,物体检测功能由Grove Vision AI V2本地完成,而XIAO ESP32-S3则负责控制水平和垂直方向的舵机。
我还重新设计了3D打印的机身,使其更好地适配新硬件。
工作原理
追踪循环:
1. Grove Vision AI V2 检测到该物体。
2. 检测到的目标位置已发送至XIAO。
3. XIAO 将物体位置与相机画幅的中心进行比较。
4. 如果物体偏移,XIAO 将移动载物台和倾斜伺服电机。
5. 摄像头转向物体。
物体检测和跟踪现在在设备本地运行。
所用硬件
本原型中,我使用了:
3D打印的摄像头结构
我重新设计了摄像头机身,以适配Grove Vision AI V2硬件、OV5647摄像头模块、XIAO板以及MG90S舵机。
舵机控制
XIAO根据物体在摄像头画面中的位置,向左、右、上或下移动摄像头。
首先,它会检查物体与中心的距离:
errorX表示物体在水平方向上的距离。
errorY表示物体在垂直方向上的距离。
如果物体远离中心,摄像头将加速移动;如果仅轻微偏移,则摄像头移动速度较慢。XIAO不会直接跳转到新的舵机位置,而是计算每个轴的目标速度,并逐步调整舵机的运行速度。
简而言之,目标舵机速度的计算方式如下:
一个较小的死区可防止摄像头在物体已接近中心时产生不必要的移动。
检测到的物体位置在用于舵机控制前也会经过滤波处理。这减少了检测框微小变化引起的抖动。
伺服速度逐渐变化,而非瞬间跳跃,有助于使运动更加平滑和稳定。
仅靠精确的检测是不够的,检测到的位置还需要进行滤波处理,同时伺服运动必须保持平稳,以实现可靠的跟踪。
当物体不再被检测到时,系统会短暂等待新的检测,然后停止伺服运动,直到目标再次出现。
AI推理与伺服控制作为独立任务运行,使得伺服电机在处理新检测的同时能够独立更新。
演示结果
升级后的原型现在能够使用Grove Vision AI V2和XIAO本地追踪物体。
最重要的改进是物体检测不再依赖笔记本电脑。
现在Grove Vision AI V2直接在设备上检测物体,并将物体位置发送给XIAO,XIAO则通过移动俯仰伺服电机来跟随其移动。
这还不是最终产品,但主要的本地边缘AI追踪循环已能正常工作。
主要限制
原版:需要笔记本电脑进行推理
升级版:仍需更整洁的外壳和电源管理
尚待改进之处
该项目目前仍处于原型阶段,因此我接下来希望改进以下几点:
- 更整洁的线路连接
- 更优质的电子设备外壳
- 电池供电与电源管理
- 舵机运动更平滑
- 更好的机械平衡
- 增加延迟和响应时间测试
当前AI模型使用约500张图像的数据集进行训练。我认为,若能拥有更大、更多样化的训练数据集,检测的准确性和可靠性将得到提升。
一个未来的想法是将此系统转化为自然或野生动物监测摄像头。为此,系统需要更完整的外壳、可靠的电源以及环境防护措施。
结论
这个项目最初是为我的原始ESP32-CAM物体追踪摄像头进行升级。过程中遇到了许多小问题,但看到它终于能检测到物体并跟随移动,整个过程都变得值得了。虽然目前仍处于原型阶段,但现在感觉离我最初设想的设备已经近了许多。
本文编译自hackster.io





