自主瞄准视觉系统

计算机视觉系统与硬件设计

概览

这是一个集成了计算机视觉嵌入式控制精密机械的综合性自主瞄准系统。该项目展示了经典计算机视觉算法与现代嵌入式平台的结合,实现了实时的目标检测和轨迹控制。基于我在大一期间获得的 STM32 开发(Keil5, HAL 库)基础,并通过进一步的深入学习,该系统展示了多模块通信协议和透视自适应算法的实际应用。

主要技术成果: 实现了亚厘米级的瞄准精度,误差小于 1/4 周期的实时画圆生成,以及延迟低于 30ms 的鲁棒 UART 通信协议。


系统演示

左: 靶心瞄准演示 | 右: 6cm 半径画圆演示
实时视觉处理流程演示

技术架构

展示视觉处理、主控和电机控制集成的系统架构

硬件选型与对比

OpenMV H7

✅ 快速原型开发
✅ 体积小巧
✅ MicroPython

K230

⚡ 高 AI 性能
⚖️ 尺寸适中
🔧 开发复杂

Jetson Nano

🚀 成熟生态系统
❌ 占用空间大
⏰ 开发周期长

硬件对比:选择 OpenMV 以平衡开发速度、尺寸限制和任务需求

核心技术

1. 透视自适应目标检测

  • 经典计算机视觉:基于多阈值过滤的斑点检测
  • 边缘边界检查:鲁棒的误检消除
  • 对角线交点法:透视畸变下的精确中心计算

2. 实时画圆算法

  • 透视补偿:动态椭圆参数计算
  • 同步控制:车辆运动与绘制轨迹匹配
  • 平滑插值:角速度协调以实现无缝操作

3. 多模块通信协议

  • 基于 UART:带错误检测的自定义帧协议
  • 实时协调:视觉与控制之间的延迟 <30ms
  • 鲁棒数据传输:帧验证与恢复机制
从目标检测到坐标输出的完整视觉处理流程

性能指标

指标 要求 实现 状态
瞄准精度 < 2cm < 1.5cm
画圆半径精度 6cm ± 0.5cm 6cm ± 0.3cm
同步误差 < 1/2 周期 < 1/4 周期
处理延迟 < 50ms < 30ms

实现细节

视觉处理模块

# Core blob detection with multi-criteria filtering
def find_target_boundary_rect(img):
    blobs = img.find_blobs([BLACK_THRESHOLD],
                          pixels_threshold=min_pixels,
                          area_threshold=min_area)

    # Edge boundary validation
    valid_blobs = filter_edge_touching_blobs(blobs)

    # Perspective center calculation
    return calculate_diagonal_intersection(valid_blobs)

通信协议

# Custom UART frame structure
def send_coordinates(x, y):
    frame = struct.pack('<BBBBBB',
                       0x3C, 0x3B,    # Header
                       x, y,          # Coordinates
                       0x01, 0x01)    # Footer
    uart.write(frame)

结果与荣誉

该项目已成功实施并测试,达到了所有目标规格。该系统随后应用于 2025 年全国大学生电子设计竞赛,荣获 省级一等奖

主要贡献:

  • 设计并实现了完整的视觉处理系统
  • 在各种条件下实现了亚厘米级的瞄准精度
  • 开发了新颖的透视自适应画圆算法
  • 建立了视觉与控制模块之间鲁棒的实时通信

技术栈

硬件
  • OpenMV Cam H7 + 变焦镜头
  • STM32 主控制器 (Keil5, HAL 库)
  • MSPM0 电机控制器
  • 高精度伺服电机
软件
  • MicroPython (OpenMV)
  • 经典计算机视觉
  • 实时控制算法
  • 自定义通信协议

该项目展示了 计算机视觉嵌入式系统精密控制 的成功集成,解决了复杂的现实世界瞄准挑战,展示了理论知识在嵌入式系统设计中的实际应用。