基于OpenMV图像识别的自主迷宫寻宝小车

2024-09-12 00:00:00赖盛英谢鑫鑫樊伟征王慧琴陈袁丰
现代电子技术 2024年5期
关键词:图像识别

摘" 要: 基于机器视觉模块OpenMV和TC264单片机,设计基于图像识别的自主迷宫寻宝小车。通过识图装置OpenMV识别藏宝图,定位宝藏坐标、识别迷宫矩阵,并通过串口发送给单片机,利用多目标A算法进行路径规划,利用陀螺仪与编码器进行实时定位,根据小车当前的坐标与宝藏坐标对比来进行小车的控制,同时使用超声波避障模块及按键等实现迷宫寻宝的任务。通过实验证明,小车系统运行流畅,各个模块之间协调配合,定位精度可达0.2 mm,判别真伪宝藏并将信息发送给单片机的时间在1~2 s,在科学性、准确性、可行性、创新性和完整性方面均有较好的表现。

关键词: OpenMV; TC264单片机; 图像识别; 迷宫寻宝; 多目标A算法; 实时定位

中图分类号: TN911.73⁃34; TP13" " " " " " " " " "文献标识码: A" " " " " " " " " " 文章编号: 1004⁃373X(2024)05⁃0070⁃05

Autonomous maze treasure hunting car based on OpenMV image recognition

LAI Shengying1, XIE Xinxin2, FAN Weizheng1, WANG Huiqin1, CHEN Yuanfeng1

(1. School of Mathematics, Physics and Statistics, Shanghai University of Engineering Science, Shanghai 201620, China;

2. School of Electronic and Electrical Engineering, Shanghai University of Engineering Science, Shanghai 201620, China)

Abstract: On the basis of the machine vision module OpenMV and microcontroller unit (MCU) TC264, an autonomous maze treasure hunting car is designed based on image recognition. The map reading device OpenMV is used to identify the treasure map, locate the treasure corrdinates and identify the maze matrix. After the identification, the messanges of the maze and treasures are sent to the MCU by the serial port. The path is planned with the multi⁃objective A algorithm. The gyroscope and the encoder are used for real⁃time positioning. The car is controlled according to the comparison between the current coordinates of the car and the treasure coordinates. Meanwhile, the ultrasonic obstacle avoidance module and keys are used to achieve the tasks of finding treasures in the maze. Experiments show that the small car system operates smoothly, with coordination and cooperation among various modules. Its positioning accuracy is 0.2 mm. It takes about 1 s to 2 s for the hunting car to judge the authenticity of the treasure and send the information to the MCU. The results show that the car has good performance in terms of scientificity, accuracy, feasibility, innovation and completeness.

Keywords: OpenMV; MCU TC264; image recognition; treasure hunting in the maze; multi⁃objective A algorithm; real⁃time positioning

0" 引" 言

在当今数字化时代,机器视觉技术以及自主导航系统的快速发展为智能机器人的研发和应用带来了无限可能。随着人工智能技术的不断进步,图像识别在多个领域中发挥着重要作用,特别是在自主导航和智能控制方面[1]。设计基于图像识别的自主迷宫寻宝小车的过程中,可以采用深度学习算法,如卷积神经网络(CNN),对藏宝图进行识别和解析,也可以利用树莓派的计算能力和OpenCV的图像处理功能来实现图像识别、路径规划和避障等功能。考虑到迷宫寻宝的准确性、创新性和成本效益等方面的要求,本文基于机器视觉模块OpenMV和TC264单片机,旨在设计一款基于OpenMV图像识别的自主迷宫寻宝小车,该小车能够通过识别藏宝图并定位宝藏坐标,在迷宫中智能地规划路径,实现自主寻宝的任务。该小车系统的核心技术包括图像识别、路径规划、实时定位和避障等多个模块的协同作用[2]。本文基于机器视觉模块OpenMV识别藏宝图,提取宝藏位置信息和迷宫矩阵,并通过串口通信将信息发送给TC264单片机,使用多目标A算法进行路径规划,确保小车能够以最短路径快速到达目的地。为了实现小车在迷宫中的实时定位,采用陀螺仪和编码器,有效地监测和更新小车的位置信息,确保路径规划的准确性和实时性。小车在移动过程中,通过与宝藏坐标和路径的对比,智能地调整行驶方向和速度,从而实现对小车的精准控制。此外,为了增加小车在迷宫中的智能化和灵活性,还采用超声波避障模块等装置,以应对在迷宫中可能遇到的障碍物和紧急情况[3]。通过实践证明,该方案可行有效,集成了多个核心技术模块,具备专用的图像识别装置、全面的系统控制手段及实时定位技术,具有一定的推广价值。

1" 系统方案设计

基于OpenMV图像识别的自主迷宫寻宝小车是由多个嵌入式系统组成的,主要由TC264单片机及其学习板、机器视觉模块OpenMV、陀螺仪传感器IMU963RA、编码器、TFT屏幕(薄膜晶体管屏幕)以及电源等外设组成。其中,OpenMV是一个独立的嵌入式视觉开发平台,用于检测和分析迷宫,提取图像中的特征,执行目标识别、跟踪及其他视觉任务。智能车则是另一个独立的嵌入式系统,可以感知环境,并根据OpenMV提供的视觉信息执行移动和导航。本文研究了两个嵌入式系统通过串口通信进行交互,以实现系统的整体功能。系统架构设计如图1所示。

在迷宫寻宝的整个流程中有两个关键环节:OpenMV识别藏宝图和坐标导航。智能车的迷宫寻宝流程图如图2所示。

1.1" 系统硬件设计

1.1.1" 主控模块设计

本文采用TC264单片机进行智能车的嵌入式开发。该单片机主频高达200 MHz,拥有强大的处理能力,满足复杂应用的需求。采用OpenMV进行视觉开发,它以STM32F427 MCU为核心,集成了OV7725摄像头芯片,在小巧的硬件模块上实现了核心机器视觉算法,并提供Python编程接口。通过OpenMV可以识别宝藏位置、辨别真假宝藏信息、识别迷宫矩阵、循迹等。

1.1.2" 传感器模块设计

本文采用的传感器模块主要有陀螺仪IMU963RA、1024线编码器、超声波避障模块等。陀螺仪可以测量车辆的角速度和角度变化,用于姿态感知,通过获取车辆的姿态信息,进行精确的定位和导航控制。IMU963RA是具备三轴加速度计[4]、三轴陀螺仪和三轴磁力计的传感器组合,可以提供更全面的姿态感知和运动测量能力。九轴陀螺仪通常具有较高的精度,能够提供准确的姿态感知和运动测量[5]。1024线编码器提供了较高的分辨率,能够提供更精确的位置和速度测量结果。编码器可以测量电机轮子的转动位置和速度,用于实现精确的车辆定位和控制。超声波模块可以测量车辆与障碍物之间的距离,用于检测前方的障碍物并进行避障。超声波模块具有较高的测距精度,能够提供准确的距离测量结果。

1.1.3" 车模结构

迷宫寻宝小车的车型选用三轮车,采用自制车模,外接2S锂电池供电,三轮车的设计更为灵活,在迷宫寻宝任务中使得小车能够更快速地探索迷宫并做出快速反应。小车结构如图3a)所示,车模3D图如图3b)所示。

1.2" 系统软件设计

1.2.1" 软件环境

本文使用C语言开发TC264单片机,开发环境为AURIX™ Development Studio(简称ADS);其次,使用Python语言开发机器视觉模块OpenMV,开发环境为OpenMV IDE。

1.2.2" OpenMV图像识别

本文通过机器视觉模块OpenMV主要实现三个功能:

1) 识别藏宝图:OpenMV可以使用畸变校正和透视变换算法对摄像头捕获的图像进行处理。畸变校正可以校正由于摄像头镜头特性引起的图像畸变,以获取更准确的图像信息[6]。透视变换可以将图像从摄像头的视角转换为鸟瞰视角,消除远近物体的大小变化[7]。OpenMV可以使用计算机视觉算法进行色块检测,色块检测是一种常见的图像处理任务,用于识别和定位图像中具有特定颜色的区域。本文先对摄像头进行畸变矫正,后根据色块检测找到迷宫的起点和终点,根据迷宫的4个顶点分别进行[x]轴和[z]轴的透视旋转变换,其中,[x]轴变换的角度Angle1如式(1)所示,[z]轴变换的角度Angle2如式(2)所示。随后,根据目标识别和形状检测找到宝藏,并进行平移变换和比例变换,变换后的[x]坐标transform_[x]如式(3)所示,变换后的[y]坐标transform_[y]如式(4)所示,最后,将变换得到的坐标进行矫正,即将地图分成10个区间,每个区间长度为40,处于此区间的任意坐标为区间中点值,据此便可以在理想状态下确定其准确的坐标位置。

[Angle1=arccosabs(end_y-start_y)abs(end_x-start_x)*180°π] (1)

式中:[(start_x,start_y)]是迷宫起点的坐标;[(end_x,end_y)]是迷宫终点的坐标。

[Angle2=arctanabs(bend_y-bend_x)abs(bstart_y-bstart_x)*180°π]

(2)

式中:[(bstart_x,bstart_y)]是经过[x]轴变换后的迷宫起点的坐标;[(bend_x,bend_y)]是经过[x]轴变换后的迷宫终点的坐标。

[transform_x=k1*abs(x+dx)" =400abs(bend_x-bstart_x)*(x+target_x-bstart_x)] (3)

式中:[k1]为[x]轴比例变换系数,目的是转换成实际为4 m×4 m的迷宫里的坐标;target_[x]是将起点转换成目标值的[x]轴坐标,即0;[dx]为增量,初始值为0,目的是将迷宫起点坐标映射到(0,0)。

[transform_y=k2*abs(y+dy) =400abs(bend_y-bstart_y)*(y+target_y-bstart_y)] (4)

式中:[k2]为[y]轴比例变换系数;target_[y]是将起点转换成目标值的[y]轴坐标,即0;[dy]为增量,初始值为0。

2) 指引智能车循迹:智能车一键发车进入迷宫,OpenMV通过摄像头采集迷宫的图像数据,对赛道进行滤波、二值化等操作,以便更好地提取车道线的信息,使用OpenMV的线性回归算法,智能车可以辅助进行循迹操作。通过分析循迹线的边缘信息,拟合循迹线的方程,智能车可以根据循迹线的位置和方向进行转向控制,从而实现沿着循迹线行驶[8]。

3) 识别真伪宝藏:智能车根据宝藏位置信息,通过导航和路径规划算法,使车辆能够准确到达宝藏附近。OpenMV利用图像处理算法,提取宝藏的特征信息,即颜色、形状等,通过比较匹配或分类结果,确定宝藏的真伪性质,根据预先定义的判别准则,可以判断宝藏是否为真实的目标。

1.2.3" 多目标A算法

A*算法是一种启发式搜索算法,用于在图或网络中找到两个节点之间的最短路径。在迷宫问题中,可以将起始点设置为迷宫的入口,将宝藏位置设置为目标点,并使用A*算法找到最短路径[9⁃11]。考虑到存在多个宝藏点,本文采用多目标A算法(MOA算法)。MOA算法能够同时考虑多个目标,在一次搜索中找到最优解,从而减少搜索次数和计算量。

1.2.4" 坐标导航

利用九轴陀螺仪和编码器,通过航迹推算法,计算出相对于初始时刻的位移与姿态变化,从而得到小车当前实时的坐标和姿态[5,12]。编码器可以获得轮子的瞬时脉冲用于速度闭环和里程计算。陀螺仪检测偏航角,通过积分得到姿态。对于陀螺仪存在的零点漂移现象,可以采用零漂补偿或滤波处理(FIR滤波、卡尔曼滤波[13]),从而降低陀螺仪的输出误差。

2" 实验结果

2.1" OpenMV识图结果

1) 使用OpenMV对藏宝图进行畸变矫正,再查找色块定位起点和终点,根据迷宫4个顶点的坐标对[x]轴进行透视旋转变换,随后,根据变换后的迷宫顶点坐标对[z]轴进行透视旋转变换,此时,得到的迷宫藏宝图状态较为理想,该过程如图4所示。在此状态基础上进行圆形检测,并根据平移变换和比例变换定位宝藏的真实坐标。

定位宝藏结束后,对图像进行预处理。首先采用高斯模糊滤波和均值滤波,再对图像进行二值化处理,根据图像的分辨率对迷宫边缘进行一定的腐蚀和膨胀,得到一个较为理想的黑白迷宫图。随后根据黑白迷宫的像素值对迷宫进行遍历,即可将迷宫转化成一个二维矩阵(二维矩阵的大小根据不丢失元素特征和不占用过多内存的前提下自定义),结果如图5所示。

2) 使用OpenMV的线性回归算法,根据迷宫的黑线进行二值化处理,并拟合成一条直线,以获得直线的偏差和角度。

3) 使用OpenMV识别真伪宝藏,根据宝藏的特征信息,即颜色、形状等,通过比较匹配或分类结果,确定宝藏的真伪性质,分别假定我方为红方和蓝方,区分真假宝藏,具体如图6所示。

2.2" 智能小车运行结果

根据实验结果显示,迷宫寻宝小车在成功识图的前提下能够在迷宫中完整运行,并通过LED灯光提供照明。无论是在昏暗环境还是正常环境下,小车均能成功完成迷宫寻宝任务。识别真假宝藏并将信息发送给单片机的时间在0.5~2 s之间,而整个迷宫寻宝过程总时长约在2 min以内。最理想情况下,智能小车前往的前3个宝藏全为真宝藏,找完直接去往终点,耗费时间在1 min左右;最糟糕情况下,智能小车前往了8个宝藏才找到3个真宝藏,耗时2 min以内。

通过超声波避障模块实现避障,采用外部中断来检测超声波模块返回的高低电平,70 cm内能够进行准确距离测算,解决了传统算法中易卡死的情况。编码器采用1024线,定位精度可达0.2 mm,在没有循迹线的情况下也能进行迷宫寻宝。

3" 结" 论

本文基于机器视觉模块OpenMV图像识别和TC264单片机设计的自主迷宫寻宝小车在实验中取得了令人满意的结果。

1) 通过使用OpenMV图像识别装置,小车能够成功识别藏宝图并提取宝藏的坐标信息和迷宫矩阵信息,这证明了图像识别在迷宫寻宝任务中的可行性和有效性。

2) 利用多目标A算法进行路径规划,小车能够根据迷宫矩阵和宝藏坐标生成最优路径,这表明多目标A算法在迷宫寻宝中具有较高的效率和性能。

3) 通过陀螺仪和编码器的实时定位,小车能够准确获取自身的位置信息,这为小车在迷宫中的导航和控制提供了重要的参考依据。在与宝藏坐标的比对过程中,小车能够根据自身位置进行准确的控制,确保朝着宝藏的方向移动,这验证了小车控制系统的可靠性和准确性。

注:本文通讯作者为谢鑫鑫。

参考文献

[1] 张谦,邬依林.基于智能视觉的无人机导航技术研究[J].现代电子技术,2018,41(16):132⁃134.

[2] 张沫,吴一卓.基于A*算法的搬运机器人路径规划优化[J].现代电子技术,2023,46(13):135⁃139.

[3] 邢强,虞凯西,谷玉之.基于测距超声波传感器的间距平衡避障策略[J].现代电子技术,2018,41(20):97⁃99.

[4] 邹泽兰,徐同旭,徐祥,等.基于两步修正法的MEMS三轴陀螺仪标定方法[J].仪器仪表学报,2022,43(4):191⁃198.

[5] 刘春,刘滔,张海燕,等.小波变换法在姿态解算中的应用[J].电子测量与仪器学报,2021,35(1):183⁃190.

[6] 蔡梦姚,王鹏.空间转换的鱼眼图像畸变校正[J].国外电子测量技术,2022,41(3):9⁃13.

[7] 李一航,周东兴,韩东升.一种基于透视变换的远距离双目测距方法[J].电子测量技术,2021,44(7):93⁃99.

[8] 邓开连,周芳管,崔灿,等.基于KEA的智能循迹小车[J].现代电子技术,2020,43(16):13⁃17.

[9] 李喆,吴君,王顺森,等.采用A星⁃遗传算法的船舶管路智能布置[J].西安交通大学学报,2023,57(6):172⁃180.

[10] 徐淦,李文超,刘美如.基于概率A*的智能车路径规划算法[J].电子测量技术,2023,46(8):92⁃98.

[11] 丁一,杨旭泽.考虑动态加权A星算法的预翻箱作业优化[J].运筹与管理,2023,32(5):36⁃41.

[12] 张徐玮,鲍其莲,孙朔冬,等.陀螺仪辅助星敏感器星跟踪算法设计[J].电子测量与仪器学报,2021,35(4):23⁃29.

[13] 余志鹏,熊剑,衷卫声,等.基于秩卡尔曼滤波的室内行人航位推算算法[J].仪器仪表学报,2020,41(5):214⁃220.

[14] 翟瑞,周静雷.基于STM32的USB转串口通信端口设计[J].国外电子测量技术,2021,40(1):92⁃95.

[15] 张海超,张北伟.基于STM32的多串口通信系统设计[J].国外电子测量技术,2019,38(2):99⁃102.

猜你喜欢
图像识别
支持向量机的舰船图像识别与分类技术
浅谈图像识别技术在打击绿通假证逃费中的应用
基于图像识别和多感知融合的列车自动防护方案
基于Resnet-50的猫狗图像识别
电子制作(2019年16期)2019-09-27 09:34:50
高速公路图像识别技术应用探讨
图像识别在物联网上的应用
电子制作(2018年19期)2018-11-14 02:37:04
图像识别在水质检测中的应用
电子制作(2018年14期)2018-08-21 01:38:16
一种基于TuriCreate和OpenCV的实时图像识别系统设计
电子测试(2018年10期)2018-06-26 05:53:32
基于图像识别的田间玉米秆识别系统设计与实现
电子测试(2017年11期)2017-12-15 08:57:02
浅谈模式识别在图像识别中的应用
电子测试(2017年23期)2017-04-04 05:06:50