《AI硬件与Pyhthon编程实践》03计算机视觉与颜色追踪写字字帖_第1页
《AI硬件与Pyhthon编程实践》03计算机视觉与颜色追踪写字字帖_第2页
《AI硬件与Pyhthon编程实践》03计算机视觉与颜色追踪写字字帖_第3页
《AI硬件与Pyhthon编程实践》03计算机视觉与颜色追踪写字字帖_第4页
《AI硬件与Pyhthon编程实践》03计算机视觉与颜色追踪写字字帖_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机视觉与颜色追踪人工智能开源硬件与python编程实践情境导入在无人智能驾驶系统中,红绿灯识别是一项基本技术。利用无人车的前置摄像系统,对实时捕捉到的图像帧进行图像处理和分析,发现前方的交通指示装置,然后对交通装置区域里的颜色块进行检测,实现红绿灯的识别,引导无人车的运动。颜色的识别与追踪不仅应用于智慧交通、机器人等智慧装备之中,在工业、农业及日常生活中都有广泛应用。任务与目标了解图像颜色识别技术的基本原理、相关算法和应用框架;掌握运用人工智能开源硬件设计颜色识别系统的方法,提升Python编程方法;应用人工智能开源硬件和Python相关算法模块设计颜色跟踪功能;针对生活应用场景,进一步开展创意设计,设计具有实用价值的颜色跟踪应用系统。知识拓展:颜色空间模型光的颜色由不同波长的电磁波所决定。人的眼睛内有几种辨别颜色的锥形感光细胞,分别对黄绿色、绿色和蓝紫色(或称紫罗兰色)的光最敏感(波长分别为564、534和420纳米)。表征颜色的模型的不止一种,主要可以通过RGB、HSV、LAB、CMYK等色域模型将可见光的颜色描述出来。知识拓展:RGB模型在模型的三维直角坐标系中,x、y、z轴相当于红、绿、蓝三通道,原点vec3(0.0,0.0,0.0)代表黑色,顶点vec3(1.0,1.0,1.0)代表白色,原点到顶点的中轴线x=y=z代表灰度线。RGB模型适用于计算机表示,将RGB以不同的比例混合后,人的眼睛可以形成与其它各种频率的可见光等效的色觉。知识拓展:HSV模型HSV模型(Hue色相、Saturation饱和度、Value/Brightness亮度)比较适合人类习惯;模型中H即光谱颜色所在的位置,用角度来表示,红、绿、蓝分别相隔120°,互补色(CMY)分别相差180°。纯度S范围在[0,1],表示所选颜色的纯度和该颜色最大的纯度之间的比率,当S=0时,代表灰度。V表示色彩的明亮程度,范围[0,1],与光强度无直接关系。知识拓展:Lab模型Lab模型又称亮度-对比度模型,是由亮度(Luminosity)和有关色彩的a、b三个要素组成。a表示从洋红色到绿色的范围,b表示由黄色到蓝色的范围;L取值范围是[0,100],当L=50时,相当于50%的黑。a、b的值域都是[-128,127];Lab模型具有不依赖设备的优点,如果想在数字图像处理中保留宽阔的色域和丰富的色彩,最好选择Lab模型。基于Lab色彩空间的图像分割Lab颜色空间中,L:亮度层,a:颜色在红绿轴的分量,b:颜色在蓝黄轴的分量。通过计算每个像素点和六种颜色平均值的欧氏距离,这六种距离中最小的距离既为该像素点的颜色;LAB阈值分割法有两个关键步骤:第一,确定进行正确分割的阈值;第二,将图像的所有像素与阈值进行比较,以进行区域划分,达到目标与背景分离的目的。设计与实践颜色追踪摄像头参数设置时钟控制设计颜色追踪编程红绿蓝三颜色追踪调试、验证及完善颜色追踪摄像头参数设置#设置摄像头工作参数sensor.reset() #初始化摄像头组件;sensor.set_pixformat(sensor.RGB565)#设置为彩色;sensor.set_framesize(sensor.QVGA)#设置图像的大小;sensor.skip_frames() #在更改设置后,跳过若干帧,等待摄像头组件的稳定;#自动增益/白平衡sensor.set_auto_gain() #自动增益开启或者关闭。在使用颜色追踪算法时,需要关闭自动增益。sensor.set_auto_whitebal() #自动白平衡开启或者关闭。在使用颜色追踪算法时,需要关闭此功能。2023/1/30时钟控制设计time.ticks()返回以毫秒计的通电后的运行时间。time.sleep(ms)休眠ms毫秒数。classtime.clock返回一个时钟物件。clock.tick()开始追踪运行时间。clock.fps()停止追踪运行时间,并返回当前FPS(每秒帧数)。在调用该函数前一定要先调用tick()方法;clock.avg()停止追踪运行时间,并返回以毫秒计的当前平均运行时间。在调用该函数前始终首先调用tickclock.reset()重置时钟物件。2023/1/30颜色追踪编程方法image.find_blobs()方法,用于查找图像中所有色块,并返回一个所搜索到的色块物件的列表。thresholds元组列表中每个元组需要有六个参数值(l_lo,l_hi,a_lo,a_hi,b_lo,b_hi),分别是LAB颜色模型的L、A和B三个参数的最小值和最大值。roi参数用来设置颜色识别的视野区域,roi是一个元组,roi=(x,y,w,h),代表从左上顶点(x,y)开始的宽为w高为h的矩形区域,roi默认设置为整个图像视野。2023/1/30颜色追踪的实现设置好摄像头视频采集工作参数,将待追踪颜色的LAB阈值传入find_blobs函数中,即可在指定的图像区域内启动颜色追踪过程:red_threshold_01=(41,60,44,84,-10,63)#设置红色的阈值,括号里面的数值分别是LAB的最大值和最小值(minL,maxL,minA,while(True):clock.tick()#跟踪两次snapshots()间消耗的时间(milliseconds);img=sensor.snapshot() #捕获图像帧;blobs=img.find_blobs([red_threshold_01],area_threshold=150)#搜索指定颜色色块;ifblobs:#如果找到了目标颜色print(blobs)forbinblobs:#迭代找到的目标颜色区域img.draw_rectangle(b[0:4])#用矩形标记出目标颜色区域img.draw_cross(b[5],b[6])#在cx,cy坐标处画上十字标记拓展:实现红绿蓝三种颜色追踪thresholds=[(41,60,44,84,-10,63),#红色阈值(53,72,-59,-15,-3,52),#绿色阈值(48,71,-25,-5,-53,-26)]#蓝色阈值#可同时设置<=16种颜色阈值while(True):clock.tick()img=sensor.snapshot()#捕捉一帧图像,保存到image对象中;forblobinimg.find_blobs(thresholds,pixels_threshold=200,area_threshold=200):#如果所检出色块的像素数或像素面积大于阈值200则会被确认,返回给blob对象;img.draw_rectangle(blob.rect())#画矩形img.draw_cross(blob.cx(),blob.cy())#画十字2023/1/30调试及验证2023/1/30分析与思考利用find_blobs函数可以实现某种特定颜色的识别和追踪,实际生活中会有同时追踪几种颜色的需求。请思考,要进行多种颜色的同时追踪,Python程序应该如何设计?在颜色追踪应用中,你有没有遇到过环境光照变化对识别追踪结果的影响?光照的影响严重到什么程度?请找到一种对策,并设计解决方案。实际应用中,同一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论