《嵌入式人工智能技术应用》课件 4.1-基于人脸检测的灯光控制实验_第1页
《嵌入式人工智能技术应用》课件 4.1-基于人脸检测的灯光控制实验_第2页
《嵌入式人工智能技术应用》课件 4.1-基于人脸检测的灯光控制实验_第3页
《嵌入式人工智能技术应用》课件 4.1-基于人脸检测的灯光控制实验_第4页
《嵌入式人工智能技术应用》课件 4.1-基于人脸检测的灯光控制实验_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

项目四基于人脸检测算法实现家用设备的控制嵌入式人工智能技术应用项目引导案例近年来,随着智能设备的发展,在进入21世纪的今天,人们的生活水平逐渐提高。在这个科技物联网的时代下,给人们带来了生活便利,人们的生活物质水平也不断提高,对家居也会有更高的要求。思考一下,大家见过哪些智能家居?项目引导案例基于人脸检测的灯光控制实验任务一职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务一基于人脸检测的灯光控制实验了解人脸识别控制灯光工作原理;掌握使用串口控制黄灯的方法。能使用人脸检测算法识别人脸;能使用串口采集光照度值;能使用串口根据人脸识别结果和光照度值控制黄灯。职业能力目标01知识目标技能目标职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务一基于人脸检测的灯光控制实验

本实验将实现通过调用OpenCV、人脸检测算法、serial模块判断采集的图像是否有人以及光照度是否达到阈值来打开/关闭黄灯。任务描述任务要求使用OpenCV采集图像;使用OpenCV调用视频流;使用人脸识别算法进行人脸检测;使用串口获取光照度;在有人的情况下根据光照值打开黄灯。任务描述与要求02职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务一基于人脸检测的灯光控制实验任务分析根据光照度和人脸检测控制灯光可能会涉及到哪些步骤?根据自己的了解说说智能灯原理?任务分析与计划03任务计划表项目名称基于人脸检测算法实现家用设备的控制任务名称基于人脸检测的灯光控制实验计划方式自主设计计划要求请用5个计划步骤来完整描述出如何完成本次任务序号任务计划1

2

3

4

5

通过上面的思考,你是否对本任务要完成的工作有所了解?让我们一起来制订完成本次任务的实施计划吧!任务分析与计划03职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务一基于人脸检测的灯光控制实验04知识储备智能家居1三色灯报警器2智能家居04智能家居(smarthome,homeautomation)是以住宅为平台,利用综合布线技术、网络通信技术、安全防范技术、自动控制技术、音视频技术将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务的管理系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。智能家居04智能主要体现在可以通过声音控制、远程控制、自动化完成任务,通过APP可远程查看智能设备的状态,或自动推送预警提醒,比如家中灯长时间未关闭,门锁或摄像头捕捉到异常进行防盗警报。041、家庭自动化家庭自动化系指利用微处理电子技术,来集成或控制家中的电子电器产品或系统,例如:照明灯、咖啡炉、电脑设备、保安系统、暖气及冷气系统、视讯及音响系统等。智能家居基本分类042、家庭网络首先要把这个家庭网络和纯粹的“家庭局域网”分开来,它是指连接家庭里的PC、各种外设及与因特网互联的网络系统,它只是家庭网络的一个组成部份。家庭网络是在家庭范围内将PC、家电、安全系统、照明系统和广域网相连接的一种新技术。智能家居基本分类043、网络家电网络家电是将普通家用电器利用数字技术、网络技术及智能控制技术设计改进的新型家电产品。网络家电可以实现互联组成一个家庭内部网络,同时这个家庭网络又可以与外部互联网相连接。智能家居基本分类044、信息家电信息家电应该是一种价格低廉、操作简便、实用性强、带有PC主要功能的家电产品。利用电脑、电信和电子技术与传统家电相结合的创新产品,是为数字化与网络技术更广泛地深入家庭生活而设计的新型家用电器,信息家电包括PC、机顶盒、HPC、超级VCD、无线数据通信设备、WEBTV、INTERNET电话等等,所有能够通过网络系统交互信息的家电产品。智能家居基本分类思考一下在日常生活中是否使用过智能家居,哪些智能家居设备有哪些特点呢?智能家居0304智能家居设计原则(1)实用便利智能家居最基本的目标是为人们提供一个舒适、安全、方便和高效的生活环境。对智能家居产品来说,最重要的是以实用为核心,摒弃掉那些华而不实,只能充作摆设的功能,产品以实用性、易用性和人性化为主。思考一下,智能家居还有什么特点?04智能家居设计原则(2)标准性智能家居系统方案的设计应依照国家和地区的有关标准进行,确保系统的扩充性和扩展性,在系统传输上采用标准的TCP/IP协议网络技术,保证不同产商之间系统可以兼容与互联。04智能家居设计原则(3)方便性系统通过Internet远程调试与维护,通过网络,不仅使住户能够实现家庭智能化系统的控制功能,还允许工程人员在远程检查系统的工作状况,对系统出现的故障进行诊断。思考一下,智能家居还有什么特点?04智能家居设计原则(4)轻巧型“轻巧”型智能家居产品顾名思义它是一种轻量级的智能家居系统。“简单”、“实用”、“灵巧”是它的最主要特点。所以我们一般把无需施工部署,功能可自由搭配组合且价格相对便宜可直接面对最终消费者销售的智能家居产品。智能家居04

家庭自动化使房主能够远程监控自己的房屋,以应对诸如遗忘的咖啡机或前门未上锁等危险。智能家居可以适应用户的偏好。家庭自动化还可以帮助消费者提高效率。智能家居系统无需整天开着空调,而是可以学习行为并确保房主下班回家时房子已经冷却下来。智能家居优缺点智能家居04

家庭自动化系统一直难以成为主流,部分原因在于其技术性质。智能家居的一个缺点是它们的复杂性。有些人对技术有困难,或者会因为第一次不便而放弃它。智能家居制造商和联盟正在努力降低复杂性并改善用户体验,以使其对所有类型和技术水平的用户都感到愉快和有益。智能家居优缺点智能家居04

另一个主要问题是智能家居安全。如果黑客能够渗透到智能设备中,他们可能会关闭灯和警报器并解锁门,从而使家庭毫无防备地遭到闯入。此外,黑客可能会访问房主的网络,从而导致更严重的攻击或数据泄露。智能家居优缺点04知识储备智能家居1三色灯报警器2三色报警器04三色灯作为警示标志被广泛应用于各种特殊场所,也被应用于市政、施工作业和监护、救护、抢险等场景,用于指示方位和发送信号。此设备为12V供电,无正负级连接限制。三色报警器04三色报警灯,望文生义,起到警示提示效果,一般用于维护路途安全,有效减少交通事端的产生,同时也能避免潜在的不安全隐患。三色报警器04

例如,对于施工单位来说,在路途施工时应多开三色报警灯,尤其在夜间路途状况不清楚时,简单形成一些事端,不熟悉的人简单被绊倒,也会形成交通拥挤,所以建立三色报警灯是十分必要的。路途上的车辆也是如此。在长时间行进过程中,常常会呈现一些问题。为了确保安全,司机需要在福建设置风险LED报警灯,提示车辆在路上泊车时留意前面的新妨碍。放慢速度,安全驾驶。三色灯报警器在生活中的作用三色报警器04

三色报警灯在生产工业上应用广泛,常见的三色灯设备有自动化流水线、自动化设备、安检设备、LED灯封装设备、报警系统、SMT设备、数控机床、CNC、精雕机、数控铣床、数控设备灯。三色灯报警器的应用职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务一基于人脸检测的灯光控制实验05实验流程图05任务实施人脸识别算法接口2利用opencv采集图片1pyserial串口模块3利用opencv采集图片05importcv2dWindow('image',flags=cv2.WINDOW_NORMAL|cv2.WINDOW_KEEPRATIO|cv2.WINDOW_GUI_EXPANDED)cv2.resizeWindow("image",1920,1080)cap=cv2.VideoCapture(0)#实例化摄像头对象赋给变量capcap.set(cv2.CAP_PROP_FRAME_WIDTH,640)#采集图片的分辨率宽度为640cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)#采集图片的分辨率高度为480ret,image=cap.read()#读取一帧图片,并将返回结果赋给ret和imageprint(ret)cv2.imshow('image',image)#将采集的图片显示出来cv2.waitKey(500)cap.release()#释放摄像头,以免摄像头占用cv2.destroyAllWindows()#关闭所有窗口opencv采集图片的详细内容。cap=cv2.VideoCapture(0)实例化一个对象赋值给capcap.set(cv2.CAP_PROP_FRAME_WIDTH,640),cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)设置采集的分辨率宽高ret,image=cap.read()读取一帧图片,返回图片内容和状态值cv2.imshow('image',image)显示图片cv2.waitKey(100)等待100毫秒cap.release()释放摄像头,以免摄像头占用;cv2.destroyAllWindows()关闭所有窗口。利用opencv采集图片05importipywidgetsaswidgets#jupyter画图库fromIPython.displayimportdisplay#jupyter显示库imgbox=widgets.Image()#定义一个图像盒子,用于装载图像数据display(imgbox)#将盒子显示出来imgbox.value=cv2.imencode('.jpg',image)[1].tobytes()#把图像值转成byte类型的值显示结果图:05任务实施人脸识别算法接口2利用opencv采集图片1pyserial串口模块3人脸识别算法接口05fromlib.faceDetectimportNLFaceDetectface_libNamePath='/usr/local/lib/libNL_faceEnc.so'#指定库文件路径nlFaceDetect=NLFaceDetect(face_libNamePath)#实例化人脸检测算法接口对象modelPath=b"/usr/local/lib/rk3399_AI_model"#指定模型以及配置文件路径nlFaceDetect.NL_FD_ComInit(modelPath)#加载人脸检测模型和配置进行初始化ret=nlFaceDetect.NL_FD_InitVarIn(image)#加载采集的图片数据,返回0表示加载成功print(ret)face_num=nlFaceDetect.NL_FD_Process_C()#返回值检测的人脸个数print('人脸个数:',face_num)nlFaceDetect.NL_FD_Exit()#释放模型和内存人脸识别算法接口的调用,目前是利用视觉来检测有无人员。fromlib.faceDetectimportNLFaceDetect导入人脸识别算法接口类;nlFaceDetect=NLFaceDetect(libNamePath)实例化人脸检测算法接口对象,执行没有报错,表示实例化成功;nlFaceDetect.NL_FD_ComInit(configPath)加载模型和配置,并初始化,执行没有报错,表示加载成功;nlFaceDetect.NL_FD_InitVarIn(image)加载采集的图片数据,返回0表示加载成功;nlFaceDetect.NL_FD_Process_C()调用人脸检测主函数处理图像,返回人脸个数,并输出人脸框的位置信息,在输出结构体,可以获取相关信息;nlFaceDetect.NL_FD_Exit()释放模型内存。05任务实施人脸识别算法接口2利用opencv采集图片1pyserial串口模块33控制灯光1实例化串口对象2获取光照值pyserial串口模块05pyserial串口模块串口通信是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。串口是计算机上一种非常通用的设备通信协议。pyserial串口模块05importtimeimportserialser=serial.Serial("/dev/ttyS0",baudrate=9600,timeout=0.5)#实例化串口对象,串口会自动开启1.实例化串口对象串口通信是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。串口是计算机上一种非常通用的设备通信协议。serial.Serial(name,baudrate,timeout,bytesize,writeTimeout,port)参数说明:name:串口在板上的端口号baudrate:串口波特率timeout:读超时时长bytesize:字节大小writeTimeout:写超时port:读或者写端口pyserial串口模块05ser.flushInput()#清空串口输入缓存ser.flushOutput()#清空串口输出缓存command='0C0300000002C516'cmd=bytes.fromhex(command)print(cmd)ser.write(cmd)#对传感器串口写入获取光照度命令data=ser.read(9)#得到串口返回的9位数值data=str(data.hex())#HEX形式转16进制并转为字符串ifdata[:2]=='0c':beam_var=int('0x'+data[6:14],16)2.获取光照值ser.flushInput()清空输入缓存,读写串口之前,都需要清空缓存,以免其他缓存数据干扰;ser.flushOutput()清空输出缓存,读写串口之前,都需要清空缓存,以免其他缓存数据干扰;“获取光照度传感器”的指令为'0C0300000002C516',将其赋给command变量;RS485采用的通信协议是Modbus。而Modbus协议传输数据使用的是HEX形式的字符串。若要获得传感器光照度,就要将command转换成HEX形式。也就是将16进制转换成HEX形式字符串;使用formhex()函数,对command进行转换;ser.write(cmd)对串口设备写入命令;ser.read(2)获取串口设备返回2位数值。pyserial串口模块05importcv2importserialdWindow('image',cv2.WND_PROP_FULLSCREEN)#全屏化开发板窗口cv2.resizeWindow("image",1920,1080)cap=cv2.VideoCapture(0)#实例化摄像头cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)#设置采集图片的分辨率宽为640cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)#设置采集图片的分辨率高为480ret1,image1=cap.read()#采集一帧图片,并将返回的状态赋给变量ret1,图片数据赋给变量image1print(ret1)cv2.imshow('image',image1)#显示采集的图片cv2.waitKey(5000)#等待500毫秒cap.release()#释放摄像头cv2.destroyAllWindows()#关闭所有窗口3.控制灯光三色灯的控制,和光照度传感器的控制是一样的,都是采用的RS485串口控制,只是三色灯有经过继电器,和4150数据模块DO口。开发板通过串口控制数字量模块的DO口,来控制继电器的开关,进而控制灯光。步骤1:采集人脸图片。摄像头对着自己采集一张人脸图片。pyserial串口模块05fromlib.faceDetectimportNLFaceDetectface_libNamePath='/usr/local/lib/libNL_faceEnc.so'#指定库文件路径nlFaceDetect=NLFaceDetect(face_libNamePath)#实例化人脸检测算法接口modelPath=b"/usr/local/lib/rk3399_AI_model"#指定模型以及配置文件路径nlFaceDetect.NL_FD_ComInit(modelPath)#加载模型和配置进行初始化ret=nlFaceDetect.NL_FD_InitVarIn(image1)#加载采集的图片,返回0表示加载成功print(ret)face_num=nlFaceDetect.NL_FD_Process_C()#返回值检测的人脸个数print('人脸个数:',face_num)nlFaceDetect.NL_FD_Exit()#释放模型内存3.控制灯光

步骤2:检测人脸个数。调用人脸检测算法检测人数个数。pyserial串口模块053.控制灯光

步骤3:控制开关黄灯。有人时当光照度小于100打开黄灯,大于150关闭黄灯,无人时直接关闭黄灯。职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务一

温馨提示

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

评论

0/150

提交评论