《基于OpenMV颜色快识别系统的设计与实现通信工程嵌入式专业.docx》由会员分享,可在线阅读,更多相关《基于OpenMV颜色快识别系统的设计与实现通信工程嵌入式专业.docx(26页珍藏版)》请在课桌文档上搜索。
1、目录1Abstract1HU-M.2第一章绪论41.1 研究背景41.2 国内外现状41.3 本文主要研究内容5第二章OPeilMV颜色块识别系统设计的分析72.1 颜色块识别与追踪系统的分析与原理72.2 颜色块测距系统的分析与原理9第三章Python代码的编写113.1 MicroPython语言简介113.2 识别与追踪系统流程图与代码编写113.3 测距系统流程图与代码编写14第四章系统的实现与误差比较164.1 颜色块识别与追踪系统的实现164.2 颜色块测距系统的实现20第五章总结与展望245.1 课题总结245.2 研究展望2425致.错未定乂书签。作为机器视觉模块的重要技术之一
2、的C)PenMV(OpenMachineViSion)开放视觉模块,是当下嵌入式计算机视觉领域的一个研究热点。OPenMV视觉模块对于颜色块识别、追踪与测距系统的实现,在背景颜色与目标颜色相近程度、光照强度、颜色块与镜头的距离发生改变时,都会对测试结果产生较大的影响。因此分析这些变化时对我所设计的OPenMV颜色块识别追踪与测距系统产生的影响是有必要的。本文主要的工作内容是:首先研究分析OPenMV的颜色块识别与测距系统模型的设计,然后研究了OPenMV视觉模块的基本原理和MicroPython语言的编写,接着对背景颜色与目标颜色的相近程度和颜色块与镜头距离改变时系统的误差做了比较与说明,最后
3、完成T1)基于OPenMV的颜色块识别与追踪系统设计;2)颜色块目标测距系统的设计。实验结果表明:1)C)PenMV颜色块识别系统进行颜色块识别时,如果背景的颜色与目标色块的颜色太过接近,则会出现多个色块识别的情况,并不能分离出背景与色块;2)当OPenMV颜色块测距系统进行测距时,如果目标颜色块距离过远则会发生测得的距离与实际距离相差较多。关键词:OpenMV,颜色块识别,颜色块追踪,颜色块测距AbstractOpenMV(OpenMachinevision),whichisoneoftheimportanttechnologiesofmachinevisionmodules,isahott
4、opicinthefieldofembeddedcomputervision.Therealizationofthecolorblockrecognition,trackinganddistancemeasurementsystembytheOpenMVvisionmodulewillhaveagreaterimpactonthetestresultswhenthebackgroundcolorisclosetothetargetcolor,thelightintensity,andthedistancebetweenthecolorblockandthelens.Therefore,thea
5、nalysisofthesechangesisnecessaryforthedesignofOpenMVcolorblockrecognitiontrackingandrangingsystem.Themainworkofthispaperis:Firstly,itanalyzesandanalyzesthedesignofOpenMVscolorblockidentificationandrangingsystemmodel.ThenitstudiesthebasicprincipleofOpenMVvisionmoduleandthewritingofMicroPythonlanguage
6、,andthenthesimilaritybetweenbackgroundcolorandtargetcolor.Theerrorofthesystemwhenthecolorblockandthelensdistancearechangediscomparedandillustrated.Finally,1)thedesignofthecolorblockrecognitionandtrackingsystembasedonOpenMViscompleted;2)thecolorblocktargetdistancemeasurementsystemisdesigned.Experimen
7、talresultsshowthat:1)WhentheOpenMVcolorblockrecognitionsystemperformscolorblockrecognition,ifthebackgroundcoloristooclosetothecolorofthetargetcolorblock,multiplecolorblockidentificationsituationswilloccur,andthebackgroundandcolorblockscannotbeseparated.;2)WhentheOpenMVcolorblockdistancemeasurementsy
8、stemperformsdistancemeasurement,ifthetargetcolorblockistoofarapart,themeasureddistancewilldifferfromtheactualdistance.Keywords:OpenMV,Colorblockidentification,Colorblocktracking,Colorblockdistancemeasurement前言在算机技术和电子技术飞速发展的现代,作为人类认知世界的最主要来源,也是人类获取,表达和传递信息的重要手段的图像,在人们的日常生活中发挥着不可代替的重要作用。用计算机进行图像处理的愈加
9、频繁使数字图像处理技术迅速发展,OPenMV(OpenMachinevision,开放视觉模块)开源计算机视觉库作为当下嵌入式计算机视觉领域的重要研究技术,具有功能强大、开源、低成本的优点,是国内外爱好者的研究热点。本文以OPenMV和MicroPython语言的基本理论为基础,做出了基于OPenMV的颜色块识别与追踪、测距系统的设计。并在此基础上,在背景颜色与目标颜色相近程度、光照强度、颜色块与镜头的距离发生改变时,对系统的识别准确度做了一些比较。围绕OPenMV颜色块识别、追踪与测距系统的设计与实现,本文的结构安排如下:第一章介绍了与本课题相关的OPenMV的研究背景,国内外一些研究现状以
10、及本文的研究内容和研究目标。第二章阐述了基于OPenMV的颜色块识别、追踪和测距系统的基本原理,并建立系统的设计模型以及一些设计中所应用的算法。第三章介绍了基于OPenMV的颜色块识别、追踪和测距系统的MicroPython语言的部分代码及代码功能。第四章介绍了基于OPenMV的颜色块识别、追踪与测距系统的实现,并在一些参数发生改变时,对设计的系统的识别准确度做了一些比较。最后总结全文,并对基于OPenMV视觉模块的各种更加深入的系统设计的前景做出了展望。第一章绪论1.1 研究背景在计算机技术和电子技术的飞速发展的今天,图像作为人类观察世界、了解世界的最主要手段,据统计,人类认知世界有70%8
11、0%的信息是通过图像获取的。随着数字图像处理技术快速发展,C)PenCV(OPenSourceComputerVisionLibraray,开源计算机视觉库)成为在图像处理和计算机视觉方面的热门技术,OPenCV是由C函数以及一部分不多的C+类组成,来实现计算机视觉方面和图像处理的通用算法如3D重建、目标分割、目标识别、特征检测、运动分析、特征跟踪等的由Intel公司资助的开源视觉库,也是国内外爱好者使用的视觉模块方便快捷的技术。而OPenMV作为一个集成了一部分OPenCV核心算法的单片机视觉模块,也受到了广大视觉研究爱好者的喜爱。OPenMV是一个功能强大的机器视觉模块,它相比其他视觉模块
12、,具有开源并且成本低的有点。OPenMV以STM32F767CPU芯片以及OV7725摄像头芯片为核心,在硬件模块看上去很小巧情况下,通过C语言卓效地实现了机器视觉的核心算法。OPenMV还提供Python编程接口,所以可以使用自己编写的Python语言来实现想要的OPenMV的各种不同的机器视觉功能。寻找色块、人脸检测、眼球检测、边缘检测、目标跟踪等都是OPenMV上的机器视觉算法。这些算法可以用来实现多种功能,包括入侵检测、跟踪标记的目标、残次品筛选、人脸识别跟踪等。一些简单的PythOn程序的编写,就可以使OPenMV完成各种的任务。轻便灵巧的设计让OPenMV可以应用在更多意想不到的地
13、方,比如设计出具有人脸识别功能的机器人,设计出具有视觉巡线的小车,能感知周边的摄像头等。本文研究的是基于OPenMV的颜色块识别、追踪与测距系统的设计与实现。1.2 国内外现状目前对OPenMV视觉模块的研究,国内外发展势头都很迅猛。在国内,2010年4月王小波,刘慧英在VC+6.0的环境下,用OPenCV的编程获得了较为理想的车辆轮廓线,实现了的对车辆轮廓的检测。2011年尹俊超、刘直芳对基于OpenMV的运动目标检测和追踪方案进行了研究,最终实现了对一个场景中的多个不同目标同时检测和追踪,提取目标特性并标记出目标的运动轨迹。同年7月,秦小文、温志芳、乔维维等人在研究了C)PenCV的特点及
14、结构,并通过图像形态学和平滑处理为例介绍了OPenCV在数字图像处理上的应用。2012年,黄佳提出了基于OPenNI、OpenCV.OPenGL视觉库的检测与跟踪动态目标的检测系统。2013年12月,赵健和张东泉通过分析和优化基于OPenCV的手势识别算法,最终09的简单手势识别率可以超过97%。同年12月份,雷建锋和汪伟实现了基于OPenCV的图像阈值分割。2016年,杜聪阐述了OPenCV的特点、运行环境、操作、应用领域等,强调了OPenCV在图形处理技术领域中的重要作用IH)L2016年,郭中华,苑俊英,伍冯洁等人对基于OPenMV人脸识别进行了研究,并将人此技术应用在了智能社区的门禁系
15、统上。同年9月份,李华琛进行了基于OpenCV的图像边缘检测技术的三种不同算子实现边缘检测算法的对比研究。同年11月份,吕昆和金晅宏进行了基于OPenMV的车牌识别的研究并提出了一种很实用的方法网。国外对OPenCV以及OPenMV的研究则更加深入,YAMAMOTOKenjiSENOHTakanori、KURITATaiichiro在2010年通过C)PenCV成功实现了2D和3D的转换H3同年2月,JUnBurdenMalcolmCleIand等人进行了基于OPenCV和Python在自行车赛道上进行团队转换时跟踪单个骑车人的研究I。Nvidia也在同年为OPenCV应用程序开发添加GPU加
16、速“纥2012年,CoombsJoseph、PrabhU等人克服了将OPenCV移植到Tl嵌入式ARM+DSP平台的挑战“力。KirllKornyakov在2013年研究了在IOS上使用C)PenCV并发布了教学手册1网。2015年2月,IWayanAgusSuryawibawa等人发表了基于Android的OPenCV草药识别附。2018年,LTriyOno、EHPratiStO等人使用C)PenCV的手语翻译器应用程序】。1.3 本文主要研究内容本文的主要内容是基于OPenMV的颜色块识别、追踪与测距系统的设计与实现。课题实施主要分为:1.资料收集以及当前研究现状分析;2.了解OPenMV
17、视觉模块和Python语言的基本原理;3.颜色块识别追踪与测距算法的研究;4系统调试与实验结果分析;5完善课题设计。图1-1的设计系统流程图阐述了我在设计这些系统时所采用的算法、各个系统之间的关系以及系统所产生的一些问题。图1-1设计系统流程图第二章OpenMV颜色块识别系统设计的分析2.1 颜色块识别与追踪系统的分析与原理要实现基于OPenMV的颜色块识别与追踪系统的设计,经过查阅资料,我将系统的设计归结于以下几点。要识别颜色块,首先利用阈值进行二值化,二值图像是经过二值化后的图像亮度值只(0)黑和(255)白两种状态。二值化在图像识别与分析中的地位是十分重要的,这种简单的图像模式,在空间上
18、使它对像素的关系有很好的表现力。因为我们要识别的图像是彩色的,我所使用的是Lab(CIE(CommissionInternationalEclairage,国际照明委员会)1976(L*,a*,b*)色彩空间的非正式缩写)颜色空间,Lab颜色空间中,L分量代表LUminosity,即照明度,L的取值范围是0,100,0表示纯黑色,I(X)则代表纯白色;a和b则是两个不同颜色的颜色轴,a的取值范围是-128,127,-128代表绿色,127代表红色;b的取值范围是/28,127,128代表蓝色,127代表黄色。所以我们有(minL,maxL,minA,maxA,minB,maxB)这三个阈值,一
19、共六个值。图2-1是Lab颜色空间的示意图:图2-1Lab颜色空间示意图即然后,进行联通域检索,连通域检索运用八连通域算法,通过对图像进行的逐行逐列的扫描,按照算法一定的规则标记连通区域,来得到对象的个数,同时统计每一个区域所包含的像素个数,再用标尺转换最后就可以得到想要测得的区域面积,在阈值编辑器上使自己想要的目标显示出来,就可以识别所需要的目标颜色块。实现颜色块的追踪所采用的是CamShift(COntinUOUSlyAdaptiveMeanShift,不断适应变化)算法,它是由Mean-Shift算法为基础,在Mean-Shift算法上做了改进,改进后,它能够自主调节搜索窗口的大小以此来
20、适应目标的大小,CamShift算法可以跟踪视频中目标尺寸的变化而进行变化。它是一种半自动追踪算法,需要手动标记出需要追踪的目标。CamShift算法是以视频或者图像中运动目标的颜色信息当做特征作为基本思想,对拍摄的图像的每一张分别用Mean-Shift的的算法运算,而且将上一张图像搜索窗口的大小和目标的正中心作为下一步Mean-shift的搜索窗口大小和中心的起点,再一步一步迭代,最终实现OPenMV对目标颜色块的追踪。因为CamShift算法每一步实施搜索之前就会将搜索窗的大小以及位置设置成目标色块当前的中心的大小和位置,而目标颜色块通常在这区域附近,所以CamShift算法会使搜索时间缩
21、短;另外,当颜色块目标的运动时,颜色每一帧的改变并不会太大(除非发生重大事故),所以CamShift算法的鲁棒性十分良好。图22就是CamShift追踪算法的基本流程:图2-2CamShift跟踪算法流程2.2 颜色块测距系统的分析与原理要实现基于OPenMV的颜色块测距系统,首先得要在2.1颜色块识别与追踪系统的基础上再做出测距的公式加入程序才能获得测距功能。首先识别颜色块,利用阈值进行二值化,识别彩色图像,使用Lab颜色空间,在OPenMVIDE上得出(minL,maxL,minA,maxA,minB,maxB)六个值。然后,进行联通域检索,在阈值编辑器上使自己想要的目标显示出来。接着,用
22、CamShift算法实现颜色块追踪,因为要得出目标颜色块的实时距离,所以得在目标变化的情况下也能测距,所以要在识别和追踪的基础上进行测距。tan(a)=/2*=/2*(2.1)这里为摄像头视角的一半;为纸板高度;为纸板令画面满屏时距离镜头的距离;为摄像头画面上的高度;为假想的画面与镜头的距离。由公式(2.1)我们可以作变换得:=*/(2.2)图中我们还可以得到:tan(夕)=/=/遁(2.3)这里仅是小球边缘与镜头的水平线夹角;Q是画面中小球的半径;A是小球的实际半径;LtarRe(是小球距离镜头的距离,也就是我们要测得的距离。由公式(2.3)我们可以变换得到:L=(R*LR机器视觉Machi
23、neVison-阈值编辑器thresholdeditor,将图3-2上Lab的阈值在阈值编辑器里表示出来,我们可以看到,在Lab阈值范围在(60,77,0,18,-58,-25)时,图像已经可以较为清晰地显示出来,且没有什么背景混在图形里,如图4-4所示:图4-4阈值编辑器调试二值化黑白图像接着,关闭阈值编辑器,将Lab阈值范围(60,77,0,18,-58,-25)输入程序中,再运行程序,就可以看到目标圆柱体在被拖到不同位置时都在被追踪,如图4-5、图4-6所示:图4-5将目标放置在中间时识别的情况图4-6将目标移动后识别的情况可以看到,基于OPenMV的颜色块识别与追踪系统已经基本实现。但
24、是当我们将阈值编辑器的BMaX值向后调整到1,可以发现右边图的左下角出现了较为明显的背景色块,如图4-7所示:IIWy X* Ut XMIC WMk4 *xl)5“用 IlM *t z图4-7调整BMaX后的二值化图像而在程序中将Lab阈值范围从(60,77,0,18,-58,-25)改成(60,77,0,18,-58,1)时,识别的图像也会在识别出部分背景,如图48所示:图4-8改完BMaX后识别出的图像而在其它5个值都不变的情况下,LMin值调小、LMaX值调大、AMin值调小、AMaX值调大或者BMin值调小时都不会出现这种误差。由图21所知,由于背景偏黄色,所以BMax值的变化对背景颜
25、色对目标色块的影响十分明显。由此,得出结论,在背景呈不同颜色时,分别按背景颜色在Lab颜色空间,见图2-1中的表示调整6个值对背景识别出的误差会出现不同程度的影响,越靠近背景色的值改变对识别正确率的影响越大。具体见表41:背景颜色偏向对识别正确率影响最大的值白色LMax黑色LMin红色AMax绿色AMin黄色BMax蓝色BMin表4-14.2 颜色块测距系统的实现首先将编写完成的代码并放入OPenMVIDE里,打开摄像头,将目标放在一个背景颜色差异明显的桌面上,并用矩形框将要识别追踪的目标色块标记,与4.1中颜色块识别与追踪系统一样,可以看到,图像在Lab颜色空间中的表现形式,如图4-9所示:
26、图4-9用矩形框将标记要识别追踪的目标色块然后我们用阈值编辑器进行图像的处理,将图4-1上Lab的阈值在阈值编辑器里表示出来,我们可以看到,在Lab阈值范围在(64,85,-16,11,-45,1)时,图像已经可以较为清晰地显示出来,如图4-10所示:图4-10阈值编辑器调试二值化黑白图像接着,关闭阈值编辑器,将Lab阈值范围(64,85,-16,11,-45,1)输入颜色块测距的程序中,再运行程序,就可以看到目标圆柱体当前与摄像头的实时距离,左下角显示出目标距离:14厘米,如图4-11及4-12所示:图4-11识别颜色块并测出距离6 T alal米米 厘厘米米米米匣厘厘厘4 4 q 4目目目
27、目标标标标离离 巨 S S离离RE A 2 3厘Is4 4米米米米SarchResult,SeriaITrinl图4-12距离的输出值停止运行程序,将摄像头离目标稍远一些,运行程序,可以看到目标圆柱体当前与摄像头的实时距离,左下角输出的目标距离:19厘米,如图4-13及4-14所示:图413远一些的图像SerialTerainal3目标距离:19厘米目标距离:19蜃米目标距离:19厘米目标距离:19厘米目标距离;29厘米目标距离:19厘米目标距离:19厘米目标距离:19厘米目标距施;19厘米目标距离:19厘米SearchResultsSerialTeramal图4.14距离的输出值当我们将距离
28、先放置在9厘米左右,并将OPenMV向后拉动时,输出值从9厘米一直变大,达到了12-13厘米,如图4-15所示:SerialTerminal2二目标距离:9厘米目标距离:9厘米目标距离:9厘米目标距离:9厘米目标距离:9厘米目标距离:9厘米目标距离:9厘米目标距离:9厘米目标距离:9厘米目标距离:9厘米目标距离:10厘米目标距离:10厘米目标距离:10厘米目标距离:1。厘米目标距离:1。厘米目标距离:10厘米目标距离:10厘米目标距离:1。厘米目标距离:10厘米目标距离:11厘米目标距离:10厘米目标距离:厘米目标距离:11厘米目标距离:21厘米目标距离:12厘米目标距离:11厘米目标距离:1
29、1厘米目标距离:11厘米目标距离:厘米目标距离:12厘米目标距离:12厘米目标距离:工3厘米目标距离:13厘米目标距离:12厘米目标距离:13厘米目标距离:12厘米目标距离:12厘米目标距离:13厘米目标距离:11厘米目标距离:12厘也SearchResultsSerialTerminal可见,基于OPenMV的颜色块测距系统已经基本实现。第五章总结与展望5.1 课题总结在这个科技飞速发展的时代,作为绝大部分人类生活学习工作中获得信息的来源,图像以及机器视觉的发展也十分迅速,在未来,人工智能中的视觉智能模块更是人工智能中的重中之重,所以学习、分析机器视觉模块十分重要。本文主要对基于OPenMV
30、的颜色块识别追踪与测距系统的设计与实现进行研究,首先介绍了OPenMV视觉模块的国内外研究情况;接着分析了基于OPenMV的颜色块识别、追踪和测距系统的实现;再讲解了PythOn语言编写的流程图与Python代码;最后介绍了基于OPenMV的颜色块识别、追踪与测距系统的实现与一些环境因素改变时系统所发生的误差。5.2 研究展望在这个科技发展非常迅速的时代,我们对于世界的认知和开发也越来越深入,作为绝大部分人类生活学习工作中获得信息的来源,图像以及机器视觉的发展也越来越飞速,在未来,人工智能将普及,而人工智能中的视觉智能模块更是人工智能中的重中之重,所以,学习、分析机器视觉模块显得尤为重要。机器
31、视觉与机器学习也是不可分割的,OPenMV内置的很多算法近年来在人脸识别、人脸检测、人脸跟踪、航拍、安全防卫、入侵检测、特定目标跟踪、目标检测等领域都发挥了非常重要的作用。而这仅仅是冰山一角,在将来,OPenMV能够实现的功能将越来越多,作用的范围也会越来越广,图像、视频处理领域也会越来越多的运用机器视觉。我会更加深入学习机器视觉,争取为未来的机器视觉添砖加瓦。参考文献1章毓晋.图像理解与计算机视觉M.北京,清华大学出版社,1999.2 IntelCorporationJntelopensourcecomputervisionlibraryreferenceManualK,20013 1.On
32、gI9960208.0PenMV简介,CSDN博客,网络(4刘慧英,王小波.基于OPenCV的车辆轮廓检测J.科学技术与工程,2010(10):2987-2991.5尹俊超,刘直芳.基于OPenCV的运动目标检测与跟踪J.计算机工程与设计,2011(32):2817-2820.6秦小文,温志芳,乔维维.基于OPenCV的图像处理J.电子测试.2011(7):39-417黄佳.基于OPenCV的计算机视觉技术研究D.上海:华东理工大学,20128赵健,张东泉.基于OPenCV的数字手势识别算法J.计算机应用,2013(33):193-196.9雷建锋,汪伟.基于OPenCV的图像阈值分割研究与实
33、现J.现代电子技术,2013(36):73-76.10杜聪.浅谈OPenCV计算机视觉库J.信息技术,2016(28):7-811郭中华,苑俊英,伍冯洁等.基于OPenCV的人脸识别系统的研究J.电子世界,2016(18):105-106.12李华琛.基于OPenCV图像边缘检测技术J.数字技术与应用,2016:40-42.13吕昆,金晅宏.基于OPenCV的车牌识别方法J.软件导刊,2016(15):193-195.14 YAMAMOTOKenji,SENOHTakanori,KURITATaiichiro.2D3DconversionsoftwareusingOPenCVIiabrary,
34、J-STAGE期刊,2010:21-2415JunBurden5MaIcolmCleland,MartinConway,MalcolmFalconer,RichardGreen;J.J.GeoffChase,ChrisHann,MarkJermy,CraigPalmenTrackingasinglecyclistduringateamchangeoveronavelodrometrackwithPythonandOpenCV,Elsevierjournal,2010-216 Anonymous.NvidiaAddsGPUAccelerationforOpenCVAppDevelopment,P
35、roQuest期刊,201017 CoombsJoseph5PrabhuRahuliPeakeGreg.OvercomingthechallengesofportingOpenCVtoTsembeddedARM+DSPplatforms,ProQuest期刊,2012-318 KirillKomyakovJnstantOpenCVforIOS,PacktPublishlingLtd.201319 IWayanAgusSuryawibawa,!KetutGedeDarmaPutra,NiKadekAyuWirdiani.HerbsRecognitionBasedonAndroidusingOpenCV,MECS期刊文献,2015.02.0120LTriyono,EHPratisto,SATBawono,FAPurnomo,YYudhanto,BRaharjo.SignLanguageTranslatorApplicationUsingOpenCVJM.IOP期刊,2018-121ChenLee_LLab颜色空间,CSDN博客,网络(