APP下载

基于OpenMV的自动追踪识别仪表小车设计

2023-01-05常晏鸣冯志强耿家豪

关键词:仪表盘小车摄像头

常晏鸣,廖 宇,冯志强,李 明,耿家豪

(湖北民族大学 智能科学与工程学院,湖北 恩施 445000)

由于传统的指针式仪表具有结构简单、精度较高、直观性和抗干扰性强等优点,很多工厂仍然在电力系统仪表测试和系统控制中使用[1].在电力系统中,对电气设备仪表的实时监控和数据收集非常重要[2],而且很多时候需要远程获取仪表盘数据.

为了解决上述问题,同时减少人工抄表、提高识别效率,本文将深度学习的算法引入工业仪表识别中,用先进的算法可以解决自动识别在准确率、泛化能力方面不足的缺点,还能应用于仪表自动识别的机器人巡检之中[3].为解决传统目标跟踪系统存在的结构复杂、资源利用率低等问题.刘义亭等[4]提出了一种基于嵌入式摄像头OpenMV的目标跟踪系统设计方案,系统加入对目标运动轨迹的判别算法,有效提高了系统的抗干扰能力.仪表盘的采集环境一般在室内,目前室内定位主要采取以下方法:蓝牙定位、ZigBee定位、超声波定位、地磁定位、超宽带定位、WiFi定位、可见光定位和视觉定位等[5].为了降低成本和提高硬件复用率,本设计最终采用AprilTag标识物识别的定位方式[6],并且采用OpenMV视觉识别的方法实现目标识别与跟踪[7-10].采用类似技术的还有姚志强等[11],使用AGAST算法在获取特征点以及追踪目标方位信息方面取得了较高准确率.

针对目前检测算法参数量过大,并且嵌入式设备性能有限的问题,范新南等[12]提出了一种基于改进YOLOv4的嵌入式变电站仪表检测算法,采用MobileNetV3作为主干特征提取网络,在保证模型能够有效提取特征的情况下,降低运算量,提高检测速度,解决了嵌入式平台上实时检测的问题,并将改进后的算法在嵌入式终端NVIDIA Jetson Nano上部署,其检测速度可达15帧/s.

本设计在此基础上,实现了一款基于OpenMV的自动追踪识别仪表小车,为解决此种问题提供了高性价比的解决方案.OpenMV在市面上售价为600元左右,而NVIDIA Jetson Nano售价为3 000元左右,成本更低.本设计采用Arduino UNO单片作为核心控制器,并协同机器视觉模块OpenMV进行图像采集和识别,该自动追踪识别小车系统能够准确寻找目标,并完成巡检任务.通过非接触式的图像识别和测量算法,计算小车和目标物之间的相对距离,Arduino通过获取的距离信息,控制驱动电机进而控制小车行驶.当小车追踪到仪表盘时,系统对提取的仪表盘特征进行匹配,并拍照记录仪表盘数据内容,实现储存和传输.

图1 小车实物设计Fig.1 Car design physical drawing

图2 小车硬件设计总体Fig.2 Overall block diagram of car hardware design

1 系统硬件设计

小车实物设计如图1所示,其硬件设计总体如图2所示.系统采用2节型号为18650的3.7 V锂电池,为整个硬件部分供电.OpenMV摄像头模块获取目标图片的中心坐标,通过串行通信把坐标发送给主控模块.Arduino UNO单片机作为主控模块,将收集到的信息进行处理,并通过电机驱动模块L298N控制4组电机的转动,实现小车自动跟踪的目的.

1.1 追踪模块

采用的追踪模块型号为OpenMV4 H7 PLUS,简称为OpenMV.它是一款具有图像处理功能的可编程单片机摄像头,主控芯片使用STM32H743II ARM Cortex M7处理器、480 MHz、1 MB RAM、2 MB闪存.所有的数字输入/输出引脚输出3.3 V并且5 V耐受.OpenMV摄像头采用2.8 mm焦距镜头,安装在一个标准M12镜头底座上.本设计还分别采用了其他4种镜头,验证OpenMV在不同摄像头下的识别范围.同时集成了Micropython运行环境,包括编译器、装载器和虚拟机,具备小巧、低功耗、低成本等特点.

1.2 控制模块

主控制模块采用Arduino UNO单片机.本设计需要用到单片机与多模块通信,同时小车也需具备拓展性.Arduino UNO是基于ATmega328P的开发板.它有14个数字输入/输出引脚,6个模拟输出引脚、6个模拟输入引脚,1个16 MHz的晶体振荡器,1个USB接口,1个DC接口,1个ICSP接口,1个复位按钮.Arduino UNO与OpenMV模块通过串口进行通信,接收OpenMV发送来的目标物体中心点坐标,并分析目标物体坐标与画面中心的差,进而通过电机驱动模块控制电机运转,实现左转、右转、前进或后退的动作,达成跟踪目标的目的.

1.3 电机驱动模块

使用L298N作为电机主驱动芯片.它具有驱动能力强、可靠性高、发热量小、抗干扰能力强、输出电流大等特点.最多可以同时控制4个电机.L298N通过接收主控制芯片的输入信号,调节电源输出的电压,实现电机的正反转驱动;通过使能端输入脉冲宽度调制(pulse width modulation,PWM)信号,改变电机的转速.同时板载5 V稳压模块,可以把电池组提供的7.2 V电压降至稳定的5 V,为主控芯片和OpenMV供电,使它们工作在额定电压下,解决了芯片供电电压问题.

1.4 云台模块

云台模块采用2自由度的设计,使OpenMV在水平和垂直方向上都能实现180°旋转,能够搜寻范围内的目标物体.云台框架通过3D打印机打印,再安装2个伺服电机,就构成了云台模块.这2个电机通过连接到信号线上的不同占空比的PWM信号实现不同角度的旋转.其中PWM波的周期要求为20 ms.

图3 软件总流程Fig.3 General software flow

图4 测距模块原理Fig.4 Principle diagram of ranging module

图5 PID控制系统原理Fig.5 Schematic diagram of PID control system

2 系统软件设计

2.1 软件设计整体方案

系统的软件设计可分为OpenMV摄像头、Arduino控制、电机模块等部分.软件总流程如图3所示.

2.2 测距以及测量物体大小

小车的测距系统由2部分构成.第一部分是OpenMV的视觉处理设计,首先离线获取目标物体AprilTag和仪表盘直径数值,根据这个数值在线探测识别目标物中心点横坐标,串口将获得的坐标信息以json字符串类型发送出去.第二部分是Arduino UNO主控程序设计,首先接收通过串口发送过来的数据,再判断目标物中心点是否发生偏离;若发生偏离,则调节电机转动使目标物出现在图像中心.OpenMV采用的是单目摄像头,想要实现测距,就需要选参照物,利用参照物的大小比例来计算距离.在AprilTag和仪表盘采集时都运用此算法进行距离的测算.测距模块原理如图4所示.

由摄像头的几何关系可得知:

(1)

(2)

由式(1)和(2)可推出式(3):

(3)

由真实图像的几何关系可得式(4):

(4)

将式(4)代入式(3),可得出式(5):

(5)

再将式(1)代入式(5)可推出式(6):

(6)

其中Lm是摄像头与目标物体的距离,Bpix是摄像头中目标物体所占的像素(直径的像素),Rm是目标物体真实的半径,Apix是固定的像素,L′是摄像头与OpenMV内部镜头底座的距离.可以通过计算仪表盘到小车的距离,控制小车前进与后退,使之正好在OpenMV监测范围内.

2.3 速度控制算法的理论分析

巡检小车在行驶过程中,速度控制可由比例、积分、微分(proportional integral differential,PID)算法对其电机进行控制.PID控制系统原理如图5所示.

该算法中,整体运动进行解算后得到轮子的期望转速r(t)为输入,输出为控制电机的PWM值u(t),通过编码器反馈值计算出的实际速度y(t)、e(t)为偏差信号,其中关系如式(7)所示:

e(t)=r(t)-y(t).

(7)

输出为一种线性组合表达式,该表达式由偏差信号的比例、积分、微分决定,具体由式(8)表示:

(8)

式(8)中:Kp是比例系数;Ti是比例积分常数;Td是微分时间常数.

采用PID算法对电机进行控制,主要是因为速度反馈异常可能会使输出的目标速度大幅变化,导致巡检机器人失控造成损坏.另外,还要对其极限速度进行限幅,限幅值是系统运行前通过人工整定而获得的.

图6 特征提取Fig.6 Feature extraction diagram

图7 MobileNetV2网络结构Fig.7 MobileNetV2 network structure diagram

2.4 特征提取与检测

采用自适应通用加速分割检测(adaptive and generic accelerated segment test,AGAST)算法进行特征提取,AGAST算法是在角点特征检测(features from accelerated segment test,FAST)算法的基础上改进而来.该算法对于光照、仿射和投影变换等各种干扰因素具备一定的抗干扰性.为了进一步提高检测效率与检测速度,该算法提取足够多的像素点,并且以待检测点为圆心,以3个像素的Bresenham圆作为半径,把这个区域作为模板,将灰度值大于或小于该模板邻域内阈值的待检测点视为特征点.虽然AGAST算法与FAST算法具有相似的特征点检测方法,但其对于复杂图像的检测,具有更好的性能,并且采用式(9)所示的“非较亮”与“非较暗”2种模式对原图像检测进行扩展:

(9)

2.5 特征分类

由于传统的卷积神经网络存在内存需求大、运算量大等缺点,导致无法在移动设备以及嵌入式设备上运行.本设计在识别到仪表盘后,将采用MobileNet V2轻量化网络,对识别到的仪表盘进行二分类.MobileNet V2网络结构如图7所示.MobileNet V2网络采用倒残差结构,首先使用1×1的卷积核进行升维,再通过3×3的卷积核进行Dwise操作,最后再通过1×1卷积进行降维处理.

MobileNet V2网络由Google团队在2018年提出,具有准确率高和模型小的特点.相比MobileNet V1的残差结构会造成信息损失的缺陷,倒残差结构形成的稀疏特征损失比较少,适合嵌入到本设计当中.

数据集采用68张电压表图和68张电流表图,共136张图片,其中108张为训练集,28张为测试集.训练周期为20轮,学习率为0.000 5.将训练后生成的标签文件和tflite文件导入到OpenMV中,用于仪表盘的分类.最终生成的模型只有625 KB,大大提高了检测速度.

2.6 室内定位方案

室内定位方案不同于室外定位,室内存在卫星信号弱、GPS信号很难覆盖到的缺点,并且室内区域环境更为精细,需要更加准确的定位方式.因此,采用可视标识物及图像采集的方法实现巡检小车室内定位.视觉基准的可视标志在进行选择时,需要注意2个问题.首先是识别的准确率,由于室内空间相对来说并不大,所以定位的准确率就显得尤为重要,定位有偏差、结果不稳定就会直接影响仪表盘识别效率.其次是标识物的信息量,信息量少的标识物,结构相对简单,识别率高;信息量多的标识物,结构比较复杂,识别率较低.

图8 AprilTag检测与解码流程Fig.8 AprilTag detection and decoding

图9 仪表室导航地图设计Fig.9 Instrument room navigation map design

图10 不同旋转角度下AprilTag检测结果Fig.10 AprilTag detection results at different rotationrotation angles

表1 不同模型计算量对比Tab.1 Comparison of computational load between different models

在综合比较以上信息后,最终采用AprilTag标志作为定位系统的视觉基准.AprilTag是1个视觉基准库,在增强现实(augmented reality,AR)、机器人、相机校准领域使用广泛.通过与二维码相似但是降低了复杂度的特定标志,可以满足简单高效的需求,使OpenMV快速检测到标识物,并计算标识物距离摄像头相对位置.将AprilTag放置在地图的特殊位置作为定位点,引导小车到达目标位置,进行仪表盘的采集.巡检小车在室内巡检过程中,会检测当前距离目标AprilTag的位置和角度,并根据这些采集的数据,指导小车向其对应的方向移动.AprilTag检测与解码流程如图8所示.

2.7 室内巡检方案

关键位置的AprilTag标签是整个巡检地图的核心构成元素,要将关键节点的AprilTag标签增加代码描述,使OpenMV检测到对应标签后,获取该标签的信息,执行相应的函数.每个AprilTag节点包括如下的信息.

1) ID_S:当前节点的ID信息.

2) ID_F:上一个节点的ID信息.

3) DIR_F:上一个节点相对X轴正向的方向.

4) ROTATE_F:上一个节点沿X轴方向的旋转角度.

5) ID_N:下一个节点的ID信息.

6 ) DIR_N:下一个节点相对X轴正向的方向.

7) ROTATE_N:下一个节点沿X轴方向的旋转角度.

每个节点都包含着上下相邻节点的ID、姿态、位置、旋转角度的信息,通过这种方式不仅可以实现导航和定位的功能,还可以让巡检小车在指定节点完成仪表盘信息采集.巡检小车运行时,读取当前节点的信息,完成该节点对应的巡检任务及仪表盘图像采集,并判断下一个节点信息,继续完成后续的巡检.

巡检导航需要在仪表室设置导航地图,如图9所示.在仪表室地面的每个转弯口和每个仪表柜旁都放置一个AprilTag标志,当巡检小车行驶到某个AprilTag标志时,读取其ID,从而获悉仪表盘相对位置,并进行仪表盘信息的识别与采集,从而引导巡检小车到下一个AprilTag标志处.

在室内巡检实验中,通过旋转路径上AprilTag不同的角度,检测OpenMV是否能够准确识别.实验结果表明,在2 m范围内,OpenMV对路径上的AprilTag识别准确率可达100%,如图10所示.

3 实验结果及分析

本算法相对于其他目标检测算法具有轻量型的特点.通过比较不同模型的计算量,衡量算法对应的时间复杂度.本算法与其他算法在计算量大小方面的比较如表1所示.从表1中可以看出本算法网络提升了检测效率,计算量明显下降,相比于YOLOv3减少了88.22%,相比于YOLOv4减少了65.24%,相比于了Faster-RCNN减少了98.46%,相比于EfficientDet-D1减少了41.16%,相比于CenterNet减少了88.18%.同时生成的模型更小,便于在OpenMV上部署.

实验又分别在OpenMV底座上加装4种不同的摄像头:原装摄像头、无畸变摄像头、广角摄像头和长焦摄像头,其参数如表2所示.

表2 不同类型摄像头参数对比

实验采用不同摄像头,对不同距离的仪表盘进行识别,其实验结果如表3所示.实验得到最佳识别距离时的检测结果,如图11所示.

(a) 原装摄像头检测结果 (b) 无畸变摄像头检测结果 (c) 广角摄像头检测结果 (d) 长焦摄像头检测结果图11 不同类型摄像头检测结果Fig.11 Test results of different types of cameras

由上述结果可知,OpenMV可以准确识别到仪表盘位置,显示仪表盘类型、识别准确率和仪表盘之间的距离.原装摄像头、广角摄像头和无畸变摄像头,都在距离目标物0.20~0.50 m时,识别效率较高.长焦摄像头可以识别到3.00 m左右的标识物及仪表盘.实验又对比了不同算法在Jetson Nano上的检测结果,如表4所示.

表3 不同类型摄像头识别效果对比

表4 Jetson Nano上检测结果Tab.4 Detection results on Jetson Nano

通过以上实验,发现小车可以准确识别铺设在地上的AprilTag标志,不受角度的限制.摄像头方面,无畸变摄像头可以更加清晰成像,效果更加明显,最终作为主要摄像头.在一些特殊的场景中,如需要远距离提取仪表盘信息时,也可以考虑长焦摄像头.采用MobileNet V2作为主干特征提取网络,更适合应用在性能有限的嵌入式设备中.实验结果表明,本设计在略微损失精度的情况下,提升了检测的速度,同时具备轻量化和小型化的特点,方便在变电站中迁移部署,具有很好的应用价值.

4 结论

在基于OpenMV的自动追踪识别仪表小车设计中,OpenMV在特征识别和特征检测系统以及室内定位等方面,起着至关重要的作用.可以准确识别仪表盘,分辨仪表盘类型,获取距离信息,距离较远的可以采用长焦摄像头进行采集与识别,而且它成本低、结构稳定.该系统在获取仪表盘图像以及检测速率上有所提升,具备一定的实际应用价值,后续工作将会根据变电站自动巡检的实际应用环境和需求开展更进一步的研究.

猜你喜欢

仪表盘小车摄像头
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
仪表堂堂
大车拉小车
自制小车来比赛
Dashboard的10个实现原则
刘老师想开小车
两轮自平衡小车的设计与实现
福特探险者车仪表盘上多个故障灯点亮
奔驰360°摄像头系统介绍