教学配套课件:人工智能开源硬件与python编程实践.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《教学配套课件:人工智能开源硬件与python编程实践.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学 配套 课件 人工智能 硬件 python 编程 实践
- 资源描述:
-
1、计算机视觉与计算机视觉与Python编程实践编程实践人工智能开源硬件与人工智能开源硬件与pythonpython编程实践编程实践2互动与调查 您了解哪些人工智能理论和方法(机器学习、深度学习等)?如有,请列举;您有没有参与过人工智能应用实践?如有,请简要说明工作内容;您有无Python编程经历?如有,请说明掌握程度如何?您接触过人工智能开源硬件吗?如有,请列举;课程教学内容总体安排 人工智能概述与人工智能开源硬件;Python编程基础;嵌入式Python编程基础;计算机视觉与Python编程;语音识别与Python编程;情境导入 人工智能成为国际竞争的新焦点和经济发展的新引擎,世界各国都高度关
2、注具有创新及实践能力的人工智能研究及应用人才的培养。机器人中的人工智能技术分为智能硬件和算法编程两部分,其中计算机视觉、语音交互和Python编程都是当前最热点的技术。任务与目标 了解计算机视觉的基本原理,了解人工智能开源硬件的技术特性;了解嵌入式Python程序的基本结构及编程方法;掌握OpenAIE IDE编程工具,完成编写、上传、运行嵌入式Python程序;了解运用人工智能开源硬件进行人工智能应用系统设计的实践方法。知识拓展:计算机视觉 计算机视觉是人工智能技术的重要内容,它研究如何使人工智能系统从图像数据中去“感知”。相当于给计算机安装上眼睛(照相机)和大脑(算法),让计算机能够感知环
3、境。计算机视觉就是用各种成象系统代替视觉器官作为输入感知手段,由计算机来代替大脑完成处理和解释。一般包括图像获取、预处理、特征提取、检测分割、机器学习、深度学习等部分。知识拓展:人工智能开源硬件 集成高性能处理器和摄像头处理芯片,可以直接采集和处理图像帧数据;集成语音识别以及语音合成芯片,可以直接采集和处理语音数据,进行人机语音交互;带机器视觉和听觉功能的Arduino;成本低、功能强、易学习、便于普及。知识拓展:Python语言 自由、开放源码,从解释器、编程工具到扩展库,人们可自由地发布软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中;易于学习、易于掌握、易于推广普及
4、;已经被移植在各种系统平台,扩展库特别丰富。2022-7-25知识拓展:Python编程基础 变量与赋值 列表、元组及切片操作 语句 程序结构(顺序、条件、循环)函数 对象 注释Python嵌入式编程 固化库、外部库的导入和引用;MPU资源的引用;OpenAI开源硬件常用嵌入式程序结构(from.)import+模块:引入程序所依赖的模块硬件(视觉、语音)初始化及设置部分主程序运行以及循环部分:while(True):设计与实践 人工智能开源硬件及Python编程库 OpenAIE IDE的使用 编写第一个嵌入式Python程序 调试、验证及完善2022-7-25 工作频率:480MHz;RA
5、M存储:1M;Flash存储:2M;VGA分辨率摄像头及视频编码 ASR语音识别;UART通讯接口;计算机视觉Python库;语音识别Python库;CNN深度学习Python库;板上硬件资源Python库;人工智能开源硬件OpenAIE固化的Python编程库 板上固化算法库(Python on Board)计算机视觉(OpenCV/MV)语音识别(ASR)异步通信(UART)CNN深度学习神经网络库OpenAIE IDE的使用 OpenAIE IDE是支持人工智能开源硬件OpenAIE的编程工具,集成了视频显示等辅助工具,可以编写、调试Python代码;编写第一个嵌入式Python程序 板
6、上固化的openaie库中提供LED控制类,包含有点亮red、green、blue三种颜色的控制方法。通过on方法,进行点亮,通过off方法进行熄灭。from openaie import led#从板上固化的openaie库中导入led模块;import timewhile(True):led.green.on()#开启绿灯 time.sleep(150)#延时150毫秒 led.green.off()#关闭绿灯 time.sleep(150)#延时150毫秒分析与思考 总结Python程序在变量定义、基本语法以及程序结构上的特点。将这种编程风格与你属性的其它编程语言做一比较。以While程
7、序结构为例,重点体会Python的缩进规则,进一步了解和体验Python语言中if、for和函数定义等程序模块的结构设计。如果不遵守缩进规则,会是什么结果?课程中所编写的程序是运行在智能硬件上,属于嵌入式编程。请从硬件的工作频率、内存、外存、输入输出接口、摄像头等附件的性能、编程库的调用等方面分析,嵌入式Python与运行在电脑上的Python程序在编程方法上有哪些异同?视频捕捉与处理视频捕捉与处理Python编程编程2022-7-25人工智能开源硬件与人工智能开源硬件与python编程实践编程实践情境导入 火车站“刷脸”进站模式采用了人脸识别技术。检票闸机上都安装了摄像头,旅客走近机器时,摄
8、像头实时采集含有人脸的视频流,并自动在图像帧中检测和跟踪人脸,进而对检测到的人脸进行特征识别,与身份证芯片里的照片进行比对。票证信息相符以及人脸与证件照比对通过,闸机就会自动放行。任务与目标 了解视频与图像的基本原理、相关技术和应用框架;掌握运用人工智能开源硬件进行摄像头工作控制的方法,掌握Python语言的编程方法;应用人工智能开源硬件和Python相关算法模块设计视频采集与捕捉功能;针对生活应用场景,进一步开展创意设计,设计具有实用价值的视频采集与捕捉应用系统。2022-7-25知识拓展:数字图像基础知识 分辨率 图像存储格式 灰度图像 色温 白平衡2022-7-25知识拓展:视频图像的采
9、集 视频由一组连续变化的图像组成,其中的每幅图像就是视频帧。当连续的图像帧以每秒超过20帧以上速率变化时,根据视觉暂留原理,形成平滑连续的视觉效果;数字摄像头可以直接捕捉图像,通过串口或者USB接口传到计算机里。2022-7-25知识拓展:分辨率 摄像头的分辨率是指摄像头解析图象的能力,也即摄像头的影像传感器的像素数。最高分辨率就是指摄像头能最高分辨图像的能力,即摄像头的最高像素数。30万像素CMOS摄像头的最高分辨率一般是分辨率为640480。分辨率的两个参数表示的是图片在长和宽上所占的像素的数目。2022-7-25set_framesize(sensor.QVGA)#设置图像的分辨率;知识
10、拓展:图像存储格式 彩色图像由RGB三个分量组成。Bitmap图像格式由三个颜色通道组成,每个通道用8位数据来表示,各有 256 个可能的值。所以,Bitmap图像又称为24 位真彩色图像,也被称为RGB888格式。RGB565彩色模式,一个像素占两个字节,即16位。第一个字节的前5位用来表示R(Red),第一个字节的后三位连同第二个字节的前三位用来表示G(Green),第二个字节的后5位用来表示B(Blue)。一个像素的16位颜色信息中,高5位为R分量,中间6位为G分量,低5位为B分量。2022-7-25set_pixformat(sensor.RGB565)#设置为565彩色;知识拓展:灰
11、度图像 灰度图像是每个像素只有一个采样颜色的图像,通常显示为从最暗黑色到最亮的白色的灰度。黑白图像只有黑白两种颜色,灰度图像在黑色与白色之间还有许多级的颜色深度。图像灰度级指图像中的色度分量亮度的最大值与最小值之差的级别。一般使用8位数据来表示灰度,这样灰度共有256级。RGB图像转灰度图像,使用不同的经验公式,会得到不同的灰度图像。2022-7-25gray=0.2989*r+0.5870*g+0.1140*b彩色转灰度图像编程实现def rgb2gray(rgb):r,g,b=rgb:,:,0,rgb:,:,1,rgb:,:,2 gray=0.2989*r+0.5870*g+0.1140*
12、b return gray2022-7-25知识拓展:色温 色温是表示光线中包含颜色成分的一个计量单位。色温是指绝对黑体从绝对零度(-273)开始加温后所呈现的颜色。黑体在受热后,逐渐南黑变红,转黄,发白,最后发出蓝色光。当加热到一定的温度,黑体发出的光所含的光谱成分,就称为这一温度下的色温。色温越高,光色越偏蓝,色温越低则偏红。某一种色光比其它色光的色温高时,说明该色光比其它色光偏蓝,反之则偏红。同样,当一种色光比其它色光偏蓝时说明该色光的色温偏高,反之偏低。2022-7-25知识拓展:白平衡 白平衡的概念是“不管在任何光源下,都能将白色物体还原为白色”,对在特定光源下拍摄时出现的偏色现象,
13、通过加强对应的补色来进行补偿。摄像机的白平衡设定用来校准色温的偏差。白平衡调节是通过对白色被摄物的颜色还原,进而达到其他物体色彩准确还原。2022-7-25sensor.set_auto_whitebal()#自动白平衡开启或者关闭设计与实践 Python程序基本结构 OV7725摄像头编程基础 摄像头参数设置及控制 视频捕捉Python编程 调试、验证及完善2022-7-25Python程序基本结构 顺序 条件 循环2022-7-25以While循环结构为例,体会Python的缩进规则;以if、for等条件结构为例,体会Python的缩进规则;如果不遵守缩进规则,会是什么结果?OV7725摄
14、像头编程基础 分辨率(VGA、QVGA、QQVGA);图像存储格式(RGB565等);帧率;增益;白平衡;畸变矫正2022-7-25摄像头参数设置及控制import sensor#引入摄像头控制模块#设置摄像头工作参数sensor.reset()#初始化摄像头;sensor.set_pixformat(sensor.RGB565)#设置为彩色,每个像素16bit;sensor.set_framesize(sensor.QVGA)#设置图像分辨率大小;sensor.skip_frames()#更改设置后,跳过若干帧,等待感光元件稳定;#sensor.set_pixformat()#设置像素模式;
15、#sensor.GRAYSCALE#灰度,每个像素8bit。#自动增益白平衡sensor.set_auto_gain()#自动增益开启或者关闭。sensor.set_auto_whitebal()#自动白平衡开启或者关闭。2022-7-25视频捕捉Python编程案例sensor.reset()#初始化摄像头;#持续拍照while(True):img=sensor.snapshot()#拍摄一张照片,其中img为一个image对象实例;#跳过一些帧sensor.skip_frames(n=10)#在更改设置后,跳过若干帧,等待感光元件的稳定;#获取一张图像sensor.snapshot()#拍
16、摄一张照片,返回一个image对象。2022-7-25功能拓展 通过摄像头捕捉到视频图像;按下板上按键,保存图像帧到板上Flash存储中;模拟实现相机功能。2022-7-25完整案例:import sensor,image,timefrom openaie import*sensor.reset()sensor.set_pixformat(sensor.RGB565)sensor.set_framesize(sensor.QVGA)sensor.skip_frames(time=2000)clock=time.clock()while(True):clock.tick()img=sensor.
17、snapshot()if button.is_pressed():#检测到按键按下 time.sleep(10)#延时消抖if button.is_pressed():img.save(“example.jpg”)#保存图片,重置AIE控制板进行查看2022-7-25保存成外部文件的图像帧分析与思考 为什么在嵌入式视觉应用中,常用QQVGA、QVGA等低分辨率以及RGB565等图像格式,而不使用高分辨率及Bitmap等图像格式?在视频采集过程中,为什么要使用sensor.skip_frames(n)方法,跳过若干帧?编写调试好摄像头控制程序后,观察环境光照变化对视频图像质量的影响。分析光照的影
18、响会严重到什么程度?请找一些对策,并设计解决方案。如果把OpenAIE控制板上的LED灯设置成白色,可以起对附件环境起补光作用吗?编程尝试一下,观察补光前后摄像头采集图像在亮度上的变化,再做出结论。2022-7-25计算机视觉与颜色追踪计算机视觉与颜色追踪人工智能开源硬件与人工智能开源硬件与python编程实践编程实践情境导入 在无人智能驾驶系统中,红绿灯识别是一项基本技术。利用无人车的前置摄像系统,对实时捕捉到的图像帧进行图像处理和分析,发现前方的交通指示装置,然后对交通装置区域里的颜色块进行检测,实现红绿灯的识别,引导无人车的运动。颜色的识别与追踪不仅应用于智慧交通、机器人等智慧装备之中,
19、在工业、农业及日常生活中都有广泛应用。任务与目标 了解图像颜色识别技术的基本原理、相关算法和应用框架;掌握运用人工智能开源硬件设计颜色识别系统的方法,提升Python编程方法;应用人工智能开源硬件和Python相关算法模块设计颜色跟踪功能;针对生活应用场景,进一步开展创意设计,设计具有实用价值的颜色跟踪应用系统。知识拓展:颜色空间模型 光的颜色由不同波长的电磁波所决定。人的眼睛内有几种辨别颜色的锥形感光细胞,分别对黄绿色、绿色和蓝紫色(或称紫罗兰色)的光最敏感(波长分别为564、534和420纳米)。表征颜色的模型的不止一种,主要可以通过RGB、HSV、LAB、CMYK等色域模型将可见光的颜色
20、描述出来。知识拓展: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,表示所选颜色
21、的纯度和该颜色最大的纯度之间的比率,当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:颜色在蓝黄轴的分量。通过计算每个像素
22、点和六种颜色平均值的欧氏距离,这六种距离中最小的距离既为该像素点的颜色;LAB阈值分割法有两个关键步骤:第一,确定进行正确分割的阈值;第二,将图像的所有像素与阈值进行比较,以进行区域划分,达到目标与背景分离的目的。设计与实践 颜色追踪摄像头参数设置 时钟控制设计 颜色追踪编程 红绿蓝三颜色追踪 调试、验证及完善颜色追踪摄像头参数设置#设置摄像头工作参数 sensor.reset()#初始化摄像头组件;sensor.set_pixformat(sensor.RGB565)#设置为彩色;sensor.set_framesize(sensor.QVGA)#设置图像的大小;sensor.skip_fr
23、ames()#在更改设置后,跳过若干帧,等待摄像头组件的稳定;#自动增益白平衡 sensor.set_auto_gain()#自动增益开启或者关闭。在使用颜色追踪算法时,需要关闭自动增益。sensor.set_auto_whitebal()#自动白平衡开启或者关闭。在使用颜色追踪算法时,需要关闭此功能。2022-7-25时钟控制设计 time.ticks()返回以毫秒计的通电后的运行时间。time.sleep(ms)休眠 ms 毫秒数。class time.clock返回一个时钟物件。clock.tick()开始追踪运行时间。clock.fps()停止追踪运行时间,并返回当前FPS(每秒帧数)
24、。在调用该函数前一定要先调用tick()方法;clock.avg()停止追踪运行时间,并返回以毫秒计的当前平均运行时间。在调用该函数前始终首先调用 tickclock.reset()重置时钟物件。2022-7-25颜色追踪编程方法 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),代表
25、从左上顶点(x,y)开始的宽为w高为h的矩形区域,roi默认设置为整个图像视野。2022-7-25颜色追踪的实现设置好摄像头视频采集工作参数,将待追踪颜色的LAB阈值传入find_blobs函数中,即可在指定的图像区域内启动颜色追踪过程:red_threshold_01=(41,60,44,84,-10,63)#设置红色的阈值,括号里面的数值分别是L A B 的最大值和最小值(minL,maxL,minA,while(True):clock.tick()#跟踪两次snapshots()间消耗的时间(milliseconds);img=sensor.snapshot()#捕获图像帧;blobs=
展开阅读全文