《AI硬件与Pyhthon编程实践》05计算机视觉目标跟踪系统写字字帖_第1页
《AI硬件与Pyhthon编程实践》05计算机视觉目标跟踪系统写字字帖_第2页
《AI硬件与Pyhthon编程实践》05计算机视觉目标跟踪系统写字字帖_第3页
《AI硬件与Pyhthon编程实践》05计算机视觉目标跟踪系统写字字帖_第4页
《AI硬件与Pyhthon编程实践》05计算机视觉目标跟踪系统写字字帖_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

计算机视觉目标跟踪系统人工智能开源硬件与python编程实践情境导入乒乓球、足球等机器人中涉及的关键技术是利用计算机机器视觉技术实现对球形的识别和实时跟踪,引导机械臂完成击球动作。对足球、乒乓球的快速识别并持续跟踪,利用的是计算机机器视觉中的颜色区块和形状的自动检测技术,在居家生活、工业生产等领域有着广泛应用。任务与目标了解图像处理与目标跟踪技术的基本原理、相关算法和应用框架;掌握运用人工智能开源硬件设计智能应用系统的方法,掌握Python语言的编程方法;应用计算机视觉开源硬件和Python编程,编写色块及形状综合识别算法,实现对目标的跟踪功能;针对生活应用场景,进一步开展创意设计,设计具有实用价值的目标跟踪应用系统。知识拓展:Lab颜色空间模型参数

L是亮度,取值范围是L∈(0,100);a为颜色在红绿轴的分量,取值范围是a∈(-128,127);b为颜色在蓝黄轴的分量,取值范围是b∈(-128,127)。一些算法库对Lab模型参数做了量化对齐处理,使其处于0-255范围,具体做法是:L=L*2.55,a=a+128,b=b+128。LAB各分量的阈值设定一般是根据先验知识。实际应用中,现场光照情况不尽相同,摄像头也会带来偏色情况,顺光、逆光、色温、噪声等情况,各分量的阈值需要调整。LAB各分量的阈值设定LAB各分量的阈值设定一般是根据先验知识。实际应用中,现场光照情况不尽相同,常常出现所给定的阈值并不是最合适。设计阈值计算算法,为每种颜色选定一个小样本采集区域,然后计算样本区域中这种颜色的平均值,作为颜色追踪过程的阈值参数。颜色阈值设置工具OpenAIEIDE开发工具中提供有颜色阈值选择器,利用Lab阈值编辑器,可以根据视频采集现场的光照、背景光、环境噪声、摄像头工作状态等实际情况,进行针对性的Lab模型参数设置。以下图中的红色色块Lab建模为例:启动阈值编辑器在OpenAIEIDE开发环境中,从顶部菜单的“工具”栏里,依次进行操作:选择工具->机器视觉->阈值编辑器选择建模源图像阈值编辑器操作界面左上是源图像显示区,显示导入的图像帧。右上是色块跟踪区,显示按照当前Lab阈值参数进行颜色跟踪的情况。该区域显示的是二值化图像,白色像素是被跟踪的像素。下部是各组参数调节区,包括L参数、A参数、B参数的最小值和最大值。阈值参数调节拖动L参数的最大值和最小值的指针,寻找到尽可能的目标区域阈值是白色的情况将最小值的指针拖到最左边,最大值的指针拖到最右边。阈值参数调节继续拖动各B参数的最大值和最小值通道上的指针,尽量消除非红色像素点,得到最好的效果拖动A参数的最大值和最小值通道上的指针,尽量消除非红色像素点,排除其余颜色的干扰。设计与实践镜头畸变的校正通过像素统计进行颜色检测调试、验证及完善程序镜头畸变的校正

摄像头会遇到镜头畸变的问题。根据近大远小的光学原理,在感光芯片的边缘位置会出现桶型畸变,成像中会产生鱼眼效果;在OpenAIE开源算法库中,image对象提供了lens_corr()的方法,可以用来矫正2.8mm焦距镜头产生的边缘畸变。校正后的形状追踪

importsensor,image,timeclock.tick()img=sensor.snapshot().lens_corr(1.8)forcinimg.find_circles(threshold=2500,x_margin=10,y_margin=10,r_margin=10,

r_min=2,r_max=100,r_step=2):area=(c.x()-c.r(),c.y()-c.r(),2*c.r(),2*c.r())通过像素统计进行颜色检测

image.get_statistics()方法,用于计算roi中每个颜色通道的平均值、中值、标准偏差、最小值、最大值、下四分值和上四分值,并返回一个数据对象。也可以使用image.get_stats来调用这一方法。如果传递thresholds列表,则直方图信息将仅从阈值列表中的像素计算得出。利用get_statistics统计的方法,可以计算出指定区域内占面积最大的颜色。例程

#area为识别到的圆的区域,即圆的外接矩形框

statistics=img.get_statistics(roi=area)#像素颜色统计

print(statistics)#(35,72,9,80,20,72)为红色的阈值,(53,77,-56,-3,-7,63)为绿色阈值,#(30,82,-29,39,-85,-3)为蓝色阈值。检测时,当区域内的众数(也就是最多的颜色),范围在这个阈值内,就说明是红色的圆。#l_mode()、a_mode()、b_mode()分别是L通道、A通道、B通道的众数。

if35<statistics.l_mode()<72and9<statistics.a_mode()<80and20<statistics.b_mode()<72: #识别到的红色圆形用红色的圆框出来

img.draw_circle(c.x(),c.y(),c.r(),color=(255,0,0))elif53<statistics.l_mode()<77and-56<statistics.a_mode()<-3and-7<statistics.b_mode()<63: #识别到的绿色圆形用绿色的圆框出来

img.draw_circle(c.x(),c.y(),c.r(),color=(0,255,0))elif30<statistics.l_mode()<82and-29<statistics.a_mode()<39and-96<statistics.b_mode()<-3:#识别到的蓝色圆形用蓝色的圆框出来

img.draw_circle(c.x(),c.y(),c.r(),color=(0,0,255))else:#将非红绿蓝色的圆用白色的矩形框出来

img.draw_rectangle(area,color=(255,255,255))分析与思考如果利用get_statistics函数进行颜色检测的效果不理想,会有哪些原因?实际视频采集环境对此会有什么影响吗?请加以分析,提升颜色追踪的效果。比较利用find_blobs和get_statistics方法进行颜色检测的异同之处,思考各自适合哪些应用场合?编写Python程序进行尝试。所提供案例利用get_statistics、find_circles方法,先搜寻圆形目标,再分辨圆形区域的颜色。如果需要搜寻矩形和某种色块,应该如何设计程序?更进一步的需求,如果需要同时对圆形与矩形,以及红绿蓝颜色进

温馨提示

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

评论

0/150

提交评论