分享 | 机器视觉基础之颜色追踪

机器视觉就是机器的视觉,换句话说:就是将视觉感知赋予机器,使机器具有和生物视觉系统类似的场景感知能力。机器视觉主要用计算机来模拟人的视觉功能,从客观事物的图像中提取信息,进行处理并加以理解,最终用于实际检测、测量和控制。机器视觉技术最大的特点是速度快、信息量大、功能多。

机器视觉是人工智能正在快速发展的一个分支。简单说来,机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是通过机器视觉产品(即图像摄取装置,分CMOS和CCD两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,得到被摄目标的形态信息,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。
机器视觉的主要任务:通过分析图像,对图像中所涉及到的场景或物体生成一组描述信息。也就是说,机器视觉系统的输入是图像(或者图像序列),输出是对这些图像的感知描述。这组描述与这些图像中的物体或场景息息相关,并且这些描述可以帮助机器来完成特定的后续任务,指导机器人系统与周围的环境进行交互。

机器视觉系统的特点是提高生产的柔性和自动化程度。在一些不适合于人工作业的危险工作环境或人工视觉难以满足要求的场合,常用机器视觉来替代人工视觉;同时在大批量工业生产过程中,用人工视觉检查产品质量效率低且精度不高,用机器视觉检测方法可以大大提高生产效率和生产的自动化程度。

下面我们将结合机器视觉基础,基于开源的机器人平台,来分享一下颜色追踪的实验开发案例。

该项目利用探索者平台制作。这里我们利用底盘小车来完成颜色追踪实验。【详细的样机组装步骤图可加QQ交流群:221964861进行获取】
实现思路:摄像头采集到红色物品后,通过串口通信来发布信息,底盘小车订阅消息然后进行相应的运动。


一、主要使用的器材
树莓派、SD卡、摄像头、树莓派相关的实验器材(显示屏、键盘鼠标、充电宝/手机充电器)

二、电路连接
对底盘小车进行电路连接,如下图。


一、软件环境介绍
在使用树莓派之前,我们需要给树莓派的SD卡里烧录系统镜像。而本次实验中的SD卡已经烧录好系统镜像,相关配置如下:
操作系统:Ubuntu18.04系统,基于Debian GNU/Linux,支持x86、amd64(即x64)、ARM和ppc架构。
仿真系统:基于开源机器人操作系统ROS melodic和开源软件平台Arduino开发,上位机采用ROS melodic,基于Rviz完成全向移动底盘小车slam导航运动规划,采用gazebo完成全向移动底盘小车物理运动仿真;下位机采用Arduino实现对全向移动底盘小车运动的控制。
二、程序编写
(1)将以下程序下载到主机中【详细的程序源码可加QQ交流群:221964861进行获取】

(2)打开终端(Alt+ctrl+T),输入roslaunch color_tracking Monocular_Camera_calibration.launch 命令,见下图。

(3)移动红色物体(这里用红色的灭火器代表待追踪的物体),观察底盘小车跟随灭火器运动的效果。
注意1:请把灭火器放置在摄像头可采集到的区域内;
注意2:受硬件的影响,移动灭火器的速度建议稍微慢点,如可以先把灭火器移动到一个位置,观察底盘小车追踪的效果。
我们可以在rviz界面里看到摄像头采集到红色目标的中心坐标及面积,供追踪使用(见下图);同时可以观察到底盘小车进行追踪红色的灭火器,直到运动到靠近灭火器的地方。



