基于深度学习的人脸识别系统在智慧农业领域的应用研究
2021-12-01孙灏
孙 灏
(中煤科工集团常州研究院有限公司,江苏 常州 213000)
智慧农业的发展主要经历了三个阶段,即初步形成阶段、研发并示范阶段、推广阶段,由于我国的智慧农业起步较晚,故现在还停留在第二阶段——研发并示范阶段,还没有形成成熟的技术体系及配套机制,因此距离真正的推广应用还有一段距离。目前我国的智慧农业主要涉及到农作物的种植领域,大规模的农场种植棉花、水稻、玉米等农作物,利用智慧农业技术可以改进种植过程中的灌溉方式及收割方式。目前智慧农业应用推广还存在诸多问题,比如缺乏专业人才、全国经济发展水平不一致、农村人口受教育程度普遍较低等。但是在2018年京东宣布正式进军养殖业,其中猪脸识别技术引起了社会各界的广泛关注,猪脸识别技术可以准确记录每头猪的体重、生长及健康状况。而猪脸识别技术的基础就是人脸识别,下面就针对人脸识别技术进行探讨。
1 深度学习的工作原理
与普通的神经网络相比,深度学习网络最大的特点在于其网络结构中包含一个以上的隐藏层,其可以从简单的概念构建复杂概念的方式进行抽象,包含输入层与输出层在内具有三层以上的系统即为深度学习。深度学习网络中,每层神经元均以上一层神经元输出为基础学习识别一组特定的特征,对前一层的特征进行整合与重组,网络深度不断增加,神经元就不断识别更加抽象、复杂的特征。这种特征层次结构可以实现深度学习网络高维度、大规模的数据处理,完成数十亿参数的非线性函数运算。利用深度学习网络可以针对一幅图像合并某些角点或边缘等基本特征集来学习相关概念。深度学习的深层思想来自于这些抽象的级别,每一层接受前一层的输出为输入学习上一层更高级的特征,利用这些特征再产生一个输出。
深度学习的学习过程与传统的机器学习不同,机器学习的特征是由人工设定的,系统根据人工设定的特征对目标进行识别、分类,但是不同目标的特征差异悬殊,即使是同一类目标,其特征往往也会受到多种因素的影响而发生变化,因此人工操作的工作量十分繁重,且无法达到理想的识别效果。而深度学习无需人工干预即可自动提取图像特征,其先由底层网络中学习简单的特征提取,再逐层抽象最终获得目标的高级特征表示,整个过程中系统会学习如何识别复杂的概念。深度学习通过大量标记数据进行训练与学习,再用于未标记、非结构化数据的处理,因此深度学习网络的性能大大优于普通的机器学习网络。
2 人脸识别的具体流程
人脸识别技术的具体流程主要包括人脸检测、人脸对齐、提取人脸特征、人脸匹配四个环节,具体如下:
2.1 人脸检测
人脸检测是人脸识别的第一步,是在检测出图像中的人脸后再返回人脸框坐标。检测过程中,图像质量、光照、人脸遮挡、转动等均会对人脸检测的准确性产生直接影响,而人脸检测的准确性越高,后续提取人脸特征时的噪声就越小,人脸识别的准确性也就越高。人脸检测的方法包括肤色检测、模板检测、特征脸检测、神经网络检测等。人脸检测时先在图像上选择一个观测窗口,通常是矩形区域,提取观测窗口中能够描述该区域图像信息的特征,最后判断特征描述是否包含人脸信息。不断重复上述步骤即可检测完整的图像区域,如果所有窗口检测均不包含人脸特征,则判定图像中无人脸信息。
2.2 人脸对齐
人脸对齐的主要目的是通过对人脸图像的归一化处理来提高人脸识别的准确性。人脸对齐包括几何对齐与灰度对齐两个方面,其中几何对齐的主要目的是调整人脸转动、拍摄距离导致的图像角度、尺寸差异,多数几何对齐方法都是基于面部关键点位置来实现的,因此几何对齐的主要内容包括人脸切割、调整图像大小、旋转面部姿态等,通过旋转、缩放、平移等操作实现人脸对齐。灰度对齐主要是增强图像亮度,将光照条件对人脸图像的影响降至最低,具体方法就是统一图像的灰度。
2.3 提取人脸特征
提取人脸特征能够将区分两个不同人脸的深层抽象特征提取出来,人脸特征的提取方法包括手工提取、基于学习的特征提取两种。手工提取特征是指分析人脸图像中的特征敏感性,针对特征本身设计出区分不同人脸的显著特征,所提取的特征的每一维均可以进行物理解释。常用的手工提取特征包括基于纹理的特征与形状描述特征两种。基于纹理的特征是采用尺度不变特征转换(SIFT)算法计算图像中角点进行特征点匹配,SIFT算法特征可区分性强,即使对图像进行旋转、缩放、光照变化等处理也不会影响匹配结果,不过该算法计算量大,提取边缘光滑的特征效果不好。形状描述特征算法主要是统计两个点集中的每个点的上下文信息,对比二者的相似性后得到一组最近似的排列结果,最终确定两个点集中的对应点。该方法计算效率高,描述简单图形的形态效果好,可实现一定程度的形变,不过图像如果经过旋转处理或噪声敏感,则会影响其识别效果。基于学习特征不会直接提取图像特征,而是通过学习来获取人脸图像特征,其关注点在于设计提取特征的规则。最典型的就是神经网络技术,其模拟人类大脑的神经元工作结构,设计学习方法及模型结构,通过学习获得模型参数,目前无法用物理方法解释神经网络提取出来的特征。
2.4 人脸匹配
人脸特征提取完成后要进行人脸匹配,即比较两个人脸图像的相似度,利用一个相似度阈值度量两个人脸比较的相似度,相似度大于设定的阈值即可判定为匹配成功,反之则匹配不成功。在进行人脸匹配时需要对人脸数据集进行预处理,利用人脸检测器对数据集中人脸进行定位确定出定位区域,最终定位出人脸图像中的各个关键点。检测完成后可以选择人脸中的双眼、鼻尖、两边嘴角等关键点,再对照一张标准人脸进行仿射变换,即可得到相同角度的人脸图片。其中仿射变换是指二维坐标之间的线性变化,可以通过一系列复杂变换的组合实现平移、缩放、旋转等操作,且不会改变图像的平行性与平直性。仿射变换确定人脸图像中的五个关键点后,可以将训练集与测试集中所有图片中的这五个关键点坐标转换成标准脸的相对坐标位置,如图像中未检测到人脸则缩放原始图片将其作为训练数据;针对少量算法无法再次探测图片中人脸的情况,即使变换后也无法检测到人脸,则可截取变换时定位的人脸图片作为训练数据。针对同一张人脸图像中出现多张人脸的情况,需要选择对应的类别剪切人脸,被剪切目标选择检测到的面积最大的人脸,确定该人脸的五个关键点后仿射变换处理图片,再重复上述操作通过人脸检测器对变换后的图片进行检测。
3 基于深度学习的人脸识别系统开发实例
本研究以某地铁站闸机检票应用场景为例提出一种基于深度学习的人脸识别系统开发方案:
3.1 人脸识别系统框架
本研究提出的人脸识别系统能够实现用户移动端注册购票及刷脸进站。整个系统架构包括站务通信模块、闸机通信模块、视频解码模块、人脸识别模块等部分。其中站务通信模块在接收到站务系统推送的用户信息后将其存储于本地数据库,主要负责与站务系统的通信;闸机通信模块则主要向闸机系统发送识别匹配信息,如果闸机端发送了注销请求,通过闸机通信模块可以删除本地数据库中存储的用户信息;视频解码模块主要负责视频的读入与解码;人脸识别模块主要对解码后的图像进行上述人脸识别处理,即人脸检测、人脸对齐、提取人脸特征、人脸匹配等。具体系统架构如图1所示:
3.2 人脸识别系统算法流程
第一步读入解码后的原始图像检测其中的人脸。第二步用深度学习过的人脸模型提取人脸图像的特征向量,将检测到的人脸图像输入到深度学习网络进行前向计算,将最终的计算结果作为图像的高维特征,该特征是图像数据在特征空间的映射,可以表征图像,故该特征即为图像的深层特征。第三步提取数据库中每张人脸图像的特征向量,计算数据库中人脸图像特征向量与提取到的人脸图像特征向量之间的余弦距离,用计算结果度量两张人脸图像的相似性,余弦距离越大表示两张图像相似度越高。第四步按照第三步的计算结果进行降序排序,排序最前面的即为与待识别图像最相似的图像。针对待识别图像的余弦距离设定有某个阈值,只有大于该阈值系统才会判定人脸图像识别成功,小于该阈值则判定失败。本研究中针对地铁检票的工作场景将该阈值设定为0.75,以降低误检率。
3.3 辅助模块
辅助模块的主要作用是开发一个人脸识别图形界面程序,以用于实际场景的测试。辅助模块主要包括图形界面用户注册模块、人脸识别模块两大部分。
3.3.1 用户注册模块
在该检票人脸识别系统中用户使用手机端的APP采集人脸图像,用户注册模块就是提取用户的面部特征信息,并将提取到的人脸特征信息、姓名信息及编号信息等存入系统本地数据库中,后续进行人脸识别时将会与这些信息进行对比。用户注册模块包括人脸检测、特征提取、图像编码及信息入库等部分,其中人脸检测与特征向量提取如上述人脸识别算法所述。在人脸识别系统中人脸识别模块显示结果时系统需要显示出人脸图像的识别结果,因此用户注册时要保存人脸图像,并将其传输至人脸识别模块。本系统采用base64对需要保存的人脸图像进行编码处理,base64是一种二进制文本编码方案,通常用于HTTP环境下较长标识信息的传递,应用该方案可以将系统采集到的图像二进制数据编码为字符串,数据可以在不同系统之间可靠、完整的传输,不会对原始图像数据产生破坏,以便于后续的传输与存储。提取到人脸特征及图像编码完成后,再将用户的基本信息、编号信息、人脸特征向量及图像编码字符串等储存于本地数据库用于后续的对比。在人脸注册模块界面用户操作时需点击采集按钮就可以通过屏幕右方的边框裁剪人脸图像,点击注册后后台线程会提取人脸图像特征,此处采用多线程处理方法,UI线程响应界面,后台工作者线程进行特征提取、存储用户信息等数据处理,这种多线程的处理方法可以确保界面保持响应。
3.3.2 人脸识别模块
人脸识别模块主要包括人脸检测、特征提取、相似度匹配、图像解码四个部分,由于人脸检测、特征提取及图像解码的操作与上述用户注册模块基本相同,此处仅重点是介绍相似度匹配模块的设计。相似度匹配即上述人脸识别算法流程中提到的计算待匹配图像特征向量与数据库中图像特征向量的余弦距离。需要注意的是,由于闸机检票时存在多人排队检票的情况,因此人脸识别系统会同时检测到多张人脸,这种情况下系统会将离摄像头最近的用户人脸,即面部区域最大的人脸作为待识别人脸,且系统会连续读取多帧图像,以减少运动模糊的影响,选择其中最清晰的图像作为待识别图像。在实际的工作流程中,点击人脸识别时UI线程会对视频中出现的人脸图像进行检测,裁剪后发送至后台,工作者线程接受到处理后的图像后即提取高维特征向量,逐一计算其与数据库中存储的人脸图像特征向量的余弦距离,以判断该人脸图像能够与数据库中存储的图像匹配成功,系统会在人脸识别模块界面给出识别结果及置信度。
3.4 人脸识别模块封装
常用的封装人脸识别系统核心模块的方法包括两种,一种是以后台进程的形式提供人脸识别服务,另一种是封装成动态链接库的形式,限于篇幅此处主要介绍以后台进程的形式提供人脸识别服务的方法。以后台进程的形式提供人脸识别服务的主要流程包括人脸检测服务、特征提取服务、人脸识别服务三个部分。系统建立连接后客户端会向系统发送人脸检测请求,人脸检测服务会将待检测图像从请求包中解析出来进行人脸检测,检测到人脸后将人脸图像裁剪出来实现人脸检测抠图,再将检测结果以数据包的形式发送至客户端。特征提取服务同样要先连接客户端,建立连接后向系统发送特征提取请求及对应的人脸图像,特征提取服务就会提取人脸图像的高维特征,再将处理结果发送至客户端。人脸识别服务是该模块的核心,客户端与系统建立连接后会向人脸识别服务发送人脸识别请求,其解析出数据包中的人脸图像并提取特征后,与本地数据库中存储的用户信息进行比对,分析注册用户的姓名、人脸特征等信息是否与处理结果一致;人脸识别服务还会接收客户端发送的存储信息,对其进行解析处理后并保存于本地。此外,用户如果需要进行注销操作,客户端也会将注销请求发送至人脸识别服务,其会将需要注销的用户信息直接删除。
4 结束语
总之,人脸识别技术是生物识别技术中的重要组成部分,其用户体验好,具有非接触性的优势,且假冒成本高,越来越受到学术界的关注,成为各位专家学者研究的热点方向。深度学习算法的发展与进步是人脸识别技术发展的有力推手,因此基于深度学习的人脸识别系统被广泛应用于各个领域,包括视频监控、智能安防、智慧农业等。相信随着人脸识别技术的不断发展,在智慧农业领域的应用将会越来越广泛。