ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

【CanMV K210】视觉识别 灰度巡线多 ROI 识别与转向优化

【CanMV K210】视觉识别 灰度巡线多 ROI 识别与转向优化 在智能小车和视觉机器人项目中,巡线是非常经典的基础实验。黑色轨迹线看起来只是一条简单路径,但对于程序来说,它代表了摄像头图像采集、灰度阈值识别、目标区域筛选、偏移量计算、方向状态判断和运动控制输出等一整套流程。相比单纯点亮 LED,视觉巡线更接近真实机器人项目中的感知与决策逻辑。本实验使用 CanMV K210 摄像头采集灰度图像,通过多个 ROI 检测区域识别黑色线条的位置,再根据黑线中心与图像中心之间的偏差计算偏转角度。程序不会直接驱动电机,而是把巡线结果转换成左右轮模拟速度,并通过串口打印出LINE_OK、LINE_LOST、转向角度、左右轮速度、ROI 检测数量和 FPS 信息。这样的结构很适合作为视觉巡线课程的优化版案例,既能观察图像检测结果,也能理解巡线算法如何为后续电机控制提供数据。学习目标说明理解视觉巡线流程认识摄像头采集、图像阈值、区域检测、偏差计算和速度输出之间的关系掌握灰度阈值识别使用灰度图像和黑线阈值识别地面黑色轨迹理解多 ROI 检测通过近处、中间、远处多个检测区域提高巡线稳定性学会偏转角计算将黑线中心偏移量转换成小车修正方向和转向角度建立控制接口思维将视觉识别结果转换成左右轮速度,为后续电机驱动实验打基础这个实验的重点不是让小车立刻跑起来,而是把“摄像头看到黑线”转换成“程序能理解的控制数据”。图像窗口中的 ROI 框和黑线中心点负责展示识别过程,串口中的角度、状态、速度和 FPS 负责展示决策结果。后续只需要在robot_control()中接入电机驱动代码,就能把当前视觉算法扩展成完整巡线小车。文章目录理论基础硬件设施软件代码扩展应用总结理论基础灰度巡线的核心思路是把复杂的彩色画面简化成明暗判断。地面背景通常较亮,黑色轨迹线通常较暗,程序只需要在灰度图中寻找符合黑色阈值的区域,就能得到线路位置。当前代码使用sensor.GRAYSCALE设置灰度图像,并通过LINE_THRESHOLD = [(0, 64)]把较暗的区域当作黑线候选目标。视觉巡线不是单纯识别黑色区域,还需要知道黑线相对小车中心的位置。图像宽度为 160,图像中心横坐标为IMG_CENTER_X = 80。当黑线中心在图像左侧时,说明小车需要向左修正;当黑线中心在图像右侧时,说明小车需要向右修正。程序通过calc_deflection_angle()将中心偏移换算成角度,再通过calc_motor_speed()将角度换算成左右轮速度差。多 ROI 是本实验的关键优化。普通巡线程序可能只检测画面下方的一块区域,这种方式能反映当前车头附近的线路位置,但对弯道趋势和线路走势判断较弱。当前代码把画面从下到上划分成近处、中间和远处三个检测区域,并为近处区域设置更高权重。近处区域主要决定当前修正方向,中间区域辅助判断走势,远处区域用于提前感知弯道。
返回列表