《嵌入式人工智能技术应用》课件 项目四 基于人脸检测算法实现家用设备的控制_第1页
《嵌入式人工智能技术应用》课件 项目四 基于人脸检测算法实现家用设备的控制_第2页
《嵌入式人工智能技术应用》课件 项目四 基于人脸检测算法实现家用设备的控制_第3页
《嵌入式人工智能技术应用》课件 项目四 基于人脸检测算法实现家用设备的控制_第4页
《嵌入式人工智能技术应用》课件 项目四 基于人脸检测算法实现家用设备的控制_第5页
已阅读5页,还剩169页未读 继续免费阅读

下载本文档

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

文档简介

项目四基于人脸检测算法实现家用设备的控制嵌入式人工智能技术应用项目引导案例近年来,随着智能设备的发展,在进入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任务一基于人脸检测的灯光控制实验任务检查与评价06序号评价内容评价标准分值得分1知识运用(20%)掌握相关理论知识,理解本次任务要求,制定详细计划,计划条理清晰,逻辑正确(20分)20分

理解相关理论知识,能根据本次任务要求、制定合理计划(15分)了解相关理论知识,有制定计划(10分)无制定计划(0分)2专业技能(40%)完成获取光照度值、图像采集、人脸检测、控制灯光。(40分)40分

完成获取光照度值、图像采集、人脸检测。(30分)完成获取光照度值、图像采集。(20分)完成获取光照度值。(10分)没有获取光照度值。(0分)3核心素养(20%)具有良好的自主学习能力、分析解决问题的能力、整个任务过程中有指导他人(20分)20分

具有较好的学习能力和分析解决问题的能力,任务过程中无指导他人(15分)能够主动学习并收集信息,有请教他人进行解决问题的能力(10分)不主动学习(0分)4课堂纪律(20%)设备无损坏、设备摆放整齐、工位区域内保持整洁、无干扰课堂秩序(20分)20分

设备无损坏、无干扰课堂秩序(15分)无干扰课堂秩序(10分)干扰课堂秩序(0分)总得分1、请参照评价标准完成自评和对其他小组的互评。2、各组请代表分析本组任务实施经验。职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务一基于人脸检测的灯光控制实验任务小结07职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务一基于人脸检测的灯光控制实验任务拓展08修改视频流控制灯光代码,实现以下功能:1人体红外感应器感应到有人时打开黄灯;1.参考项目三任务二人体红外感应DI值获取代码,再用ifelse控制黄灯;解题

思路提示任务要求2人体红外感应器感应到无人时关闭黄灯。谢谢大家学习嵌入式人工智能技术应用项目四基于人脸检测算法实现家用设备的控制基于人脸检测的安防检测实验任务二职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务二基于人脸检测的安防检测实验理解通过人脸识别完成安防检测的实验流程。能够利用人脸识别算法,使用数据库完成用户注册;能够调用算法识别的特征数据与数据库中的数据做比对;能够结合人脸检测算法和灯光控制方法完成实验。职业能力目标01知识目标技能目标职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务二基于人脸检测的安防检测实验

本实验将实现通过调用opencv模块、人脸检测算法库、sqlite3模块、serial模块对采集的图像进行人脸检测,如果不是注册用户,则打开红灯。任务描述任务要求使用人脸检测算法提取人脸特征并注册到数据库;使用人脸检测算法将新采集的人脸图像与数据库中的数据计算相似度;如果识别未注册人员,则开启红灯预警。任务描述与要求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智能安防指的是服务的信息化、图像的传输和存储技术。智能安防04物联网技术的普及应用,使得城市的安防从过去简单的安全防护系统向城市综合化体系演变,城市的安防项目涵盖众多的领域,有街道社区、楼宇建筑、银行邮局、道路监控、机动车辆、警务人员、移动物体、船只等。智能安防04(1)视频监控管理

智能视频监控系统是采用图像处理、模式识别和计算机视觉技术,通过在监控系统中增加智能视频分析模块,借助计算机强大的数据处理能力过滤掉视频画面无用的或干扰信息、自动识别不同物体,分析抽取视频源中关键有用信息,快速准确的定位事故现场,判断监控画面中的异常情况。智能安防应用场景智能安防04(2)门禁、智能报警

智能安防报警系统是同家庭的各种传感器、功能键、探测器及执行器共同构成家庭的安防体系,是家庭安防体系的"大脑"。报警功能包括防火、防盗、煤气泄露报警及紧急求助等功能。智能安防应用场景智能安防04(3)消防

常见的就是生活中最常见的烟雾探测器。一旦烟雾达到烟感探测器的值,就会启动自动喷水装置并发出警报,管理人员可以根据终端的反馈及时赶到现场,采取相应措施,降低损失。智能安防应用场景智能安防04(4)公安行业

在公安行业主要用于筛选和跟踪嫌疑犯人的线索,人工智能可以快速的从录像选出犯罪嫌疑人的信息并且快速的传达到前端,智能机器只需要几分钟就可以完成。智能安防应用场景智能安防04(5)大厦、公共场所

人工智能相当于人的大脑,处理每天进进出出的人和车的运动信息以及实时跟踪定位,还可以区分是内部人还是外来人员,计算逗留时间来确保安全。智能安防应用场景智能安防04(6)工厂、园区

人工智能机器人可以在园区进行巡视,自动抓取信息分析并存储,还可以对是收集到的信息进行预判,一旦遇到紧急情况可以开启自动预警。智能安防应用场景智能安防04(7)在交通方面

人工智能的切入,可实时知道各条路的情况是怎样的,如果哪条路出现险情,人工智能可快速筛选出最近的最通畅的路线让大家更好的出行,节省时间。智能安防应用场景智能安防04(8)民用安防

民用安防现在使用最多,近年来入室盗窃案越来越多,家居安全成了大家关注的焦点,人工智能现在可以做到家里没人的情况下自动布防,如果有人闯入就会自动报警并且通知家人,等家庭成员回来时可以撤防确保隐私安全。智能安防应用场景04知识储备智能安防1数据库2数据库04数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库04数据库是一个按数据结构来存储和管理数据的计算机软件系统。数据库的概念实际包括两层意思:(1)数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。(2)数据库是数据管理的新方法和技术,它能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。数据库04DB:数据库(Database)即存储数据的“仓库”。它保存了一系列有组织的数据。DBMS:数据库管理系统(DatabaseManagementSystem):是一种操纵和管理数据库的大型软件,例如建立、使用和维护数据库。数据库04目前互联网上常见的数据库管理软件有Sybase、DB2、Oracle、MySQL、Access、VisualFoxpro(面向对象型)、MSSQLServer、Informix、PostgreSQL(对象-关系型)这几种。以下是2017年StackOverflow对各数据库受欢迎程度进行调查后的统计结果:数据库04SELECT-从数据库中提取数据UPDATE-更新数据库中的数据DELETE-从数据库中删除数据INSERTINTO-向数据库中插入新数据CREATEDATABASE-创建新数据库ALTERDATABASE-修改数据库CREATETABLE-创建新表ALTERTABLE-变更(改变)数据库表DROPTABLE-删除表CREATEINDEX-创建索引(搜索键)DROPINDEX-删除索引SQL命令数据库04

SQLite是一种C语言库,实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎。SQLite是世界上最常用的数据库引擎。SQLite内置于所有手机和大多数计算机中,并捆绑在人们每天使用的无数其他应用程序中。SQLite源码是开源的,任何人在不同的应用场景中都可以免费的使用SQLite。数据库04DDL-数据定义语言命令描述CREATE创建一个新的表,一个表的视图,或者数据库中的其他对象。ALTER修改数据库中的某个已有的数据库对象,比如一个表。DROP删除整个表,或者表的视图,或者数据库中的其他对象。DML-数据操作语言命令描述INSERT创建一条记录。UPDATE修改记录。DELETE删除记录。DQL-数据查询语言命令描述SELECT从一个或多个表中检索某些记录。数据库04不需要一个单独的服务器进程或操作的系统(无服务器的)。SQLite不需要配置,这意味着不需要安装或管理。一个完整的SQLite数据库是存储在一个单一的跨平台的磁盘文件。SQLite是非常小的,是轻量级的,完全配置时小于400KiB,省略可选功能配置时小于250KiB。SQLite是自给自足的,这意味着不需要任何外部的依赖。SQLite事务是完全兼容ACID的,允许从多个进程或线程安全访问。SQLite支持SQL92(SQL2)标准的大多数查询语言的功能。SQLite使用ANSI-C编写的,并提供了简单和易于使用的API。SQLite可在UNIX(Linux,MacOS-X,Android,iOS)和Windows(Win32,WinCE,WinRT)中运行。SQLite数据库优点职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务二基于人脸检测的安防检测实验05实验流程图05任务实施提取人脸特征写入数据库2利用opencv采集图片1人脸识别比对3安防报警4利用opencv采集图片05importcv2dWindow('image_win',flags=cv2.WINDOW_NORMAL|cv2.WINDOW_KEEPRATIO|cv2.WINDOW_GUI_EXPANDED)cv2.setWindowProperty('image_win',cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)#全屏展示cap=cv2.VideoCapture(0)time.sleep(2)#2秒后拍照cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)ret,image=cap.read()print(ret)cv2.imshow('image_win',image)cv2.waitKey(5000)cap.release()cv2.destroyAllWindows()opencv采集图片的详细内容,参考前面章节项目1:使用OpenCV实现人脸检测中的1_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()关闭所有窗口。05任务实施提取人脸特征写入数据库2利用opencv采集图片1人脸识别比对3安防报警43注册用户1提取人脸特征2sqlite3数据库的使用提取人脸特征写入数据库05提取人脸特征写入数据库调用人脸识别的算法,提取特征,写入数据库。提取人脸特征写入数据库051.提取人脸特征人脸识别算法包含了特征提取的接口。将获取到的特征值,转化为python可读的数据数组类型。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()释放模型和内存;face_area=(outObject.x2-outObject.x1)*(outObject.y2-outObject.y1)计算每个人脸框的大小,目的是在注册是的时候,只取站在最前面的人脸;face_area_max=max(face_areas)取最大的人脸框;max_index=face_areas.index(face_area_max)取最大人脸框的的下标,也就是第几个人脸;face_info=nlFaceDetect.djEDVarOut.faceInfos[max_index]获取最大人脸的人脸信息,作为单个人脸对齐的输入值;nlFaceDetect.NL_EA_Process_C_2(face_info)把人脸检测的结果信息,进行人脸对齐处理;faceNum,faceInfos=nlFaceDetect.NL_ER_Process_C()获取人脸特征,人脸特征是长度为512的数组。提取人脸特征写入数据库051.提取人脸特征(1)人脸对齐:人脸对齐任务即根据输入的人脸图像,自动定位出面部关键特征点,如左眼,右眼,鼻子,左嘴角,右嘴角等;(2)人脸特征提取:人脸特征提取,即获取人脸关键点的特征值,该算法,人脸特征是长度为512的数组。提取人脸特征写入数据库052.

sqlite3数据库的使用

SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎。SQLite是在世界上最广泛部署的SQL数据库引擎。SQLite源代码不受版权限制。(1)注册函数conn=sqlite3.connect("face.db")创建或连接一个数据库;cursor=conn.cursor()创建一个游标;create_user_table=''是创建用户表的命令,这里字段采用id,用户名,创建时间,特征;insert_user_table=''是插入用户表的命令,给每个字段插入相对应的数据;cursor.execute(create_tb_cmd)执行命令;mit()提交执行结果。importsqlite3#引入sqlite3数据库importtimedefregister_user(user_name,feature):conn=sqlite3.connect("face.db")#连接数据库

cursor=conn.cursor()#创建一个游标cursoncreate_user_table='createtableuser(idintegerprimarykey,user_nameTEXT,ctimeTEXT,featuresTEXT)'user_create_time=time.strftime("%Y-%m-%d%H:%M:%S",time.localtime())#数据创建时间

insert_user_table='insertintouser(user_name,ctime,features)values("{}","{}","{}")'.format(user_name,user_create_time,feature)try:#数据表不存在

cursor.execute(create_user_table)#执行创建数据表sql语句

cursor.execute(insert_user_table)#执行插入数据sql语句

exceptExceptionase:#数据表已存在

cursor.execute(insert_user_table)#执行插入数据sql语句

mit()#提交执行结果

cursor.close()#关闭游标

conn.close()#关闭对数据库的连接提取人脸特征写入数据库052.

sqlite3数据库的使用提取人脸特征写入数据库052.

sqlite3数据库的使用(2)读取函数read_cmd="select*fromuserORDERBYidDESC;"读取所有用户信息,按id值的倒叙排列,也就是最新插入的在最前面。defread_user():read_cmd="select*fromuserORDERBYidDESC;"#查询数据sql语句

res_list=[]#存储查询结果列表

try:conn=sqlite3.connect("face.db")#连接数据库

cursor=conn.cursor()#创建一个游标cursonres=cursor.execute(read_cmd)#执行查询数据sql语句

forrinres:res_list.append(r)#将查询结果存入列表

mit()#提交执行结果

cursor.close()#关闭游标

conn.close()#关闭对数据库的连接

exceptExceptionase:print('sqlerror:'+str(e))returnres_list提取人脸特征写入数据库053.注册用户

判断是否有人脸数据特征,将获取到的特征注册到数据库中,并使用读取函数,验证是否已写入。iffts_list:register_user('张三',fts_list)#注册人脸信息

res=read_user()#读取所有人脸注册数据

print(res[0])#打印第一条人脸注册数据05任务实施提取人脸特征写入数据库2利用opencv采集图片1人脸识别比对3安防报警41采集新图片2人脸识别比对人脸识别比对05人脸识别比对调用算法,识别一张新的图片,然后和数据库的数据进行比对。人脸识别比对051.采集新图片importcv2dWindow('image_win',flags=cv2.WINDOW_NORMAL|cv2.WINDOW_KEEPRATIO|cv2.WINDOW_GUI_EXPANDED)cv2.setWindowProperty('image_win',cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)#全屏展示time.sleep(2)#2秒后拍照cap=cv2.VideoCapture(0)cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)ret,image=cap.read()print(ret)cv2.imshow('image_win',image)cv2.waitKey(5000)cap.release()cv2.destroyAllWindows()人脸识别比对052.人脸识别比对05任务实施提取人脸特征写入数据库2利用opencv采集图片1人脸识别比对3安防报警43实现灯光预警1实例化串口对象2控制灯光安防报警05安防报警安防报警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:读或者写端口安防报警05打开红灯ser.flushInput()#清除串口写入缓存ser.flushOutput()#清除串口输出缓存command='FE050002FF0039F5'#打开红灯命令cmd=bytes.fromhex(command)ser.write(cmd)#对串口写入指令2.控制灯光三色灯的控制,采用的RS485串口控制,RS485采用的通信协议是Modbus。而Modbus协议传输数据使用的是HEX形式的字符。若要获得传感器DI值,就要将command转换成HEX形式。也就是将16进制转换成字符串。使用formhex()函数,对command进行转换。三色灯有经过继电器,和4150数据模块DO口。开发板通过串口控制数字量模块的DO口,来控制继电器的开关,进而控制灯光。关闭红灯ser.flushInput()#清除串口写入缓存ser.flushOutput()#清除串口输出缓存command='FE05000200007805'#关闭红灯命令cmd=bytes.fromhex(command)ser.write(cmd)#对串口写入指令安防报警05importcv2importserialdWindow('image_win',flags=cv2.WINDOW_NORMAL|cv2.WINDOW_KEEPRATIO|cv2.WINDOW_GUI_EXPANDED)cv2.setWindowProperty('image_win',cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)#全屏展示cap=cv2.VideoCapture(0)#实例化摄像头cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)#设置采集图片的分辨率宽为640cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)#设置采集图片的分辨率高为480time.sleep(2)#2秒后拍照ret,image=cap.read()#采集一帧图片,并将返回的状态赋给变量ret,图片数据赋给变量imagecv2.imshow('image_win',image)#显示采集的图片cv2.waitKey(5000)#等待5000毫秒cap.release()#释放摄像头cv2.destroyAllWindows()#关闭所有窗口print(ret)3.实现灯光预警步骤1:采集人脸照片。采集一张没有注册过的人脸。安防报警053.实现灯光预警步骤2:人脸对比。利用前面注册的数据,调用人脸识别算法,实现人脸识别比对。安防报警05importtimeimportserialser=serial.Serial("/dev/ttyS0",baudrate=9600,timeout=0.5)#实例化串口对象ifnotresult_state:#如果人脸验证失败

i=0whilei<2:#打开红灯

ser.flushInput()#清楚串口写入缓存

ser.flushOutput()#清楚串口输出缓存

command='FE050002FF0039F5'#打开红灯

cmd=bytes.fromhex(command)ser.write(cmd)#指令写入串口

time.sleep(1)#休眠1秒防止代码运行过快导致开关灯的操作跟不上

#关闭红灯

ser.flushInput()#清楚串口写入缓存

ser.flushOutput()#清楚串口输出缓存

command='FE05000200007805'#关闭红灯

cmd=bytes.fromhex(command)ser.write(cmd)#指令写入串口

time.sleep(1)#休眠1秒防止代码运行过快导致开关灯的操作跟不上

i+=1ser.close()3.实现灯光预警步骤3:红灯预警。根据检测结果result_state,判断是否是陌生人,如果是陌生人,红灯闪烁2次预警。职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务二基于人脸检测的安防检测实验任务检查与评价06序号评价内容评价标准分值得分1知识运用(20%)掌握相关理论知识,理解本次任务要求,制定详细计划,计划条理清晰,逻辑正确(20分)20分

理解相关理论知识,能根据本次任务要求、制定合理计划(15分)了解相关理论知识,有制定计划(10分)无制定计划(0分)2专业技能(40%)完成人脸特征提取、人脸注册、人脸识别、控制灯光。(40分)40分

完成人脸特征提取、人脸注册、人脸识别。(30分)完成人脸特征提取、人脸注册。(20分)完成人脸特征提取。(10分)没有人脸特征提取。(0分)3核心素养(20%)具有良好的自主学习能力、分析解决问题的能力、整个任务过程中有指导他人(20分)20分

具有较好的学习能力和分析解决问题的能力,任务过程中无指导他人(15分)能够主动学习并收集信息,有请教他人进行解决问题的能力(10分)不主动学习(0分)4课堂纪律(20%)设备无损坏、设备摆放整齐、工位区域内保持整洁、无干扰课堂秩序(20分)20分

设备无损坏、无干扰课堂秩序(15分)无干扰课堂秩序(10分)干扰课堂秩序(0分)总得分1、请参照评价标准完成自评和对其他小组的互评。2、各组请代表分析本组任务实施经验。职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务二基于人脸检测的安防检测实验任务小结07职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务二基于人脸检测的安防检测实验任务拓展08修改视频流控制灯光代码,实现以下功能:1相似度<0.5时红灯闪烁3次;1.打开红灯:'01050010FF008DFF'关闭红灯:'010500100000CC0F'开启黄灯:'01050011FF00DC3F'关闭黄灯:'0105001100009DCF'打开绿灯:'01050012FF002C3F'关闭绿灯:'0105001200006DCF'解题

思路提示任务要求20.5<=相似度<0.7时黄灯闪烁3次;3相似度>=0.7时绿灯闪烁3次。谢谢大家学习嵌入式人工智能技术应用项目四基于人脸检测算法实现家用设备的控制基于人脸检测的门禁控制教学任务三职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三基于人脸检测的门禁控制教学理解通过人脸识别完成门禁控制的实验流程。能够利用人脸识别算法,使用数据库完成用户注册;能够调用算法识别的特征数据与数据库中的数据做比对;能够结合人脸检测算法和门禁控制方法完成实验。职业能力目标01知识目标技能目标职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三基于人脸检测的门禁控制教学

本实验将实现通过调用opencv模块、人脸检测算法库、sqlite3模块、serial模块对采集的图像进行人脸检测,如果是已注册用户,则打开电子锁。任务描述任务要求使用人脸检测算法提取人脸特征并注册到数据库;使用人脸检测算法将新采集的人脸图像与数据库中的数据计算相似度;如果识别成功,则通过串口模块开启门锁。任务描述与要求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任务三基于人脸检测的门禁控制教学智能门锁204知识储备电子门锁1SQLite-python433SQL语句电子门锁04电子锁是一种通过密码输入来控制电路或是芯片工作(访问控制系统),从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。电子门锁04电子锁对机械锁不构成威胁一是复杂化,因为锁具本身是一种机械卡阻机构,最终还要靠机械动作来完成。而电子锁必须完成机械动作(操作)—电子转换和电子控制—机械执行这一系列过程,显然是复杂一些。二是故障概率相对较高,电子器件一多,一复杂,必然增加故障机率,加上电子器件怕潮湿,怕强磁电,怕强震动,使它对使用环境有一定要求。三是电子锁必须用电,早期的电子锁耗电较多。电子门锁的优势智能门锁204知识储备电子门锁1SQLite-python433SQL语句智能门锁04智能门锁是指区别于传统机械锁的基础上改进的,在用户安全性、识别、管理性方面更加智能化简便化的锁具。智能门锁是门禁系统中锁门的执行部件。智能门锁区别于传统机械锁,是具有安全性,便利性,先进技术的复合型锁具。智能门锁04(1)安全性。安装指纹锁后,应当不影响用防盗门的功用。锁具不存在明显的安全隐患。(2)稳定性。是指纹锁最重要的指标,一般需一年以上的实际使用后才会慢慢稳定下来,定型。(3)通用性。应当适用国内大部分的防盗门(符合2008版防盗门国家标准),改装量少。好的指纹锁安装时间应不高于30分钟。否则用户一般难以自己完成安装与维护。通用性设计得好,也可有效降低经销商库存。(4)智能性。进行增加,删除等操作,应当非常简单,用户不用记忆过多的口令与代码。高性能指纹锁还配有视频显示系统,用户操作比较方便。智能门锁外观特点智能门锁04(1)指纹锁,全称是电子指纹锁,常见功能通为指纹、密码、刷卡、机械钥匙四合一开锁方式。它普通机械锁升级为电子锁的替代品。防盗级别为A级。(2)智能锁,全称电子智能锁,它包含电子指纹锁的基本功能,增加上联网功能,可实现远程操控,是电子指纹锁的升级版,防盗级别为B级。(3)安防指纹锁,包含电子指纹锁的全部功能,是按照国家防盗锁具技术标准设计,是家庭防盗门锁的实用性产品,防盗级别为C级。(4)安防智能锁,包含电子指纹锁,电子智能锁,安防指纹锁的全部功能,是锁具行业技术含金量最高的产品,防盗级别为超C级智能门锁级别分类智能门锁204知识储备电子门锁1SQLite-python433SQL语句SQL语句04SQLSELECT语句SELECT语句用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集。SQLSELECT语法:SELECTcolumn_name,column_nameFROMtable_name;与SELECT*FROMtable_name;SQL语句04SQLORDERBY关键字ORDERBY关键字用于对结果集进行排序。ORDERBY关键字用于对结果集按照一个列或者多个列进行排序。ORDERBY关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用DESC关键字。SQLORDERBY语法:SELECTcolumn_name,column_nameFROMtable_nameORDERBYcolumn_name,column_nameASC|DESC;SQL语句04SQLINSERTINTO语句INSERTINTO语句用于向表中插入新记录。INSERTINTO语句用于向表中插入新记录。INSERTINTO语句可以有两种编写形式。第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:INSERTINTOtable_nameVALUES(value1,value2,value3,...);第二种形式需要指定列名及被插入的值:INSERTINTOtable_name(column1,column2,column3,...)VALUES(value1,value2,value3,...);SQL语句04SQLUPDATE语句UPDATE语句用于更新表中的记录。UPDATE语句用于更新表中已存在的记录。SQLUPDATE语法:UPDATEtable_nameSETcolumn1=value1,column2=value2,...WHEREsome_column=some_value;注意:SQLUPDATE语句中的WHERE子句,WHERE子句规定哪条记录或者哪些记录需要更新。如果您省略了WHERE子句,所有的记录都将被更新!SQL语句04SQLDELETE语句DELETE语句用于删除表中的记录。DELETE语句用于删除表中的行。SQLDELETE语法:DELETEFROMtable_nameWHEREsome_column=some_value;注意:SQLDELETE语句中的WHERE子句,WHERE子句规定哪条记录或者哪些记录需要删除。如果省略了WHERE子句,所有的记录都将被删除!智能门锁204知识储备电子门锁1SQLite-python433SQL语句SQLite-python04SQLite3可使用sqlite3模块与Python进行集成。sqlite3模块是由GerhardHaring编写的。它提供了一个与PEP249描述的DB-API2.0规范兼容的SQL接口。您不需要单独安装该模块,因为Python2.5.x以上版本默认自带了该模块。安装04在这里,您也可以把数据库名称复制为特定的名称:memory:,这样就会在RAM中创建一个数据库。在当前目录中创建我们的数据库test.db。可以根据需要改变路径。保存上面代码到sqlite.py文件中,并按如下所示执行。如果数据库成功创建,那么会显示下面所示的消息:连接数据库实例04上述程序执行时,它会在test.db中创建COMPANY表,并显示下面所示的消息:创建表实例04上述程序执行时,它会在COMPANY表中创建给定记录,并会显示以下两行:数据库打开成功数据插入成功INSERT操作实例04上述程序执行时,它会产生以下结果:SELECT操作实例04上述程序执行时,它会产生以下结果:UPDATE操作实例04上述程序执行时,它会产生以下结果:DELETE操作实例职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三基于人脸检测的门禁控制教学05实验流程图05任务实施提取人脸特征写入数据库2利用opencv采集图片1人脸识别比对3门锁控制4利用opencv采集图片05importcv2dWindow('image',flags=cv2.WINDOW_NORMAL|cv2.WINDOW_KEEPRATIO|cv2.WINDOW_GUI_EXPANDED)cv2.resizeWindow("image",1920,1080)cap=cv2.VideoCapture(0)cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)ret,image=cap.read()print(ret)cv2.imshow('image',image)cv2.waitKey(5000)cap.release()cv2.destroyAllWindows()opencv采集图片的详细内容,参考前面章节项目1:使用OpenCV实现人脸检测中的1_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()关闭所有窗口。05任务实施提取人脸特征写入数据库2利用opencv采集图片1人脸识别比对34门锁控制3注册用户1提取人脸特征2sqlite3数据库的使用提取人脸特征写入数据库05提取人脸特征写入数据库调用人脸识别的算法,提取特征,写入数据库。提取人脸特征写入数据库051.提取人脸特征人脸识别算法包含了特征提取的接口。将获取到的特征值,转化为python可读的数据数组类型。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()释放模型和内存;face_area=(outObject.x2-outObject.x1)*(outObject.y2-outObject.y1)计算每个人脸框的大小,目的是在注册是的时候,只取站在最前面的人脸;face_area_max=max(face_areas)取最大的人脸框;max_index=face_areas.index(face_area_max)取最大人脸框的的下标,也就是第几个人脸;face_info=nlFaceDetect.djEDVarOut.faceInfos[max_index]获取最大人脸的人脸信息,作为单个人脸对齐的输入值;nlFaceDetect.NL_EA_Process_C_2(face_info)把人脸检测的结果信息,进行人脸对齐处理;faceNum,faceInfos=nlFaceDetect.NL_ER

温馨提示

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

评论

0/150

提交评论