相机+二维舵机云台的人员追踪

主要需要的电子器件:

MaixPro 相机:视觉处理

ESP32-S3 单片机:系统的控制与通信,处理坐标偏差

二维舵机云台:调整其相机位置

视觉检测:使用 MaixPy 内置的 face_detect

核心代码:

import sensor import image import lcd import time # 初始化LCD、摄像头 lcd.init() sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) # 320x240,平衡帧率和清晰度 sensor.run(1) sensor.skip_frames(time=2000) # 跳过初始模糊帧 # 初始化串口(与ESP32-S3通信,波特率要与ESP32-S3保持一致,比如115200) from machine import UART uart = UART(3, 115200, tx=Pin(4), rx=Pin(5)) # 对应MaixPro的引脚,需实际核对 while True: img = sensor.snapshot() # 采集一帧图像 faces = img.find_face() # 检测人脸 if faces: for face in faces: img.draw_rectangle(face.rect(), color=(255, 0, 0)) # 画框标记人脸 # 计算人脸中心坐标 face_x = face.x() + face.w() // 2 face_y = face.y() + face.h() // 2 img.draw_cross(face_x, face_y, color=(0, 255, 0)) # 标记人脸中心 # 计算与画面中心的偏移量(画面中心:160, 120,对应QVGA分辨率) offset_x = face_x - 160 offset_y = face_y - 120 # 发送偏移数据给ESP32-S3(格式:"X:xxx,Y:yyy\r\n",方便ESP32-S3解析) send_data = f"X:{offset_x},Y:{offset_y}\r\n" uart.write(send_data.encode()) # 显示画面到LCD lcd.display(img) time.sleep_ms(10) # 轻微延时,稳定帧率

通信:UART通信

云台位置矫正:

控制算法:

  • 设定舵机初始位置
  • 接收 MaixPro 传来的偏移量 offset_xoffset_y
  • 计算舵机目标角度:目标角度 = 当前角度 + 偏移量 × 比例系数(比例系数需实际调试,避免云台抖动或响应过慢)。
  • 限制舵机角度范围( 0°~180°)
相关推荐
胖咕噜的稞达鸭13 天前
如何写好一个skill
人工智能·数码相机
Hello-FPGA13 天前
CameraLink相机模拟器 信号源加速激光雷达系统算法开发
数码相机
双翌视觉13 天前
机器视觉系统为何离不开光学滤光片?
人工智能·数码相机·视觉检测·制造
3DVisionary14 天前
XTDIC-VG视频引伸计技术原理解析:金属疲劳测试的“非接触革命“
python·数码相机·音视频·非接触测量·xtdic-vg·视频引伸计·金属疲劳测试
_李小白14 天前
【智能驾驶:视觉感知后处理 阅读笔记】Day4: 相机成像模型与畸变
笔记·数码相机
Hello-FPGA14 天前
基于VU13P VU系列FPGA的高性能CoaXpress 图像采集系统
数码相机
ctrl_v助手14 天前
VisionPro (R) QuickBuild相机的连接
服务器·笔记·数码相机·c#
工头阿乐14 天前
相机坐标系标定与外参矩阵求解
数码相机·线性代数·矩阵
问道财经14 天前
Pocket 4爆火,索尼富士慌了
数码相机
Hello-FPGA14 天前
CoaXPress 相机触发设置
数码相机