system: [SYSTEM]

user: 3. 算法研究与设计 与非接触式测温系统相比，进行了面部测温到穴位测温的改变。穴位温度检测主要从人脸捕捉、穴位标注方面入手，故本文基于Dlib人脸检测算法根据已有的目标检测模型以获取其在图像下的穴位坐标信息。 3.1. Dlib人脸检测算法 在人脸68个关键点检测的dat模型库结合patrikhuber的eos分支项目组成用于图像处理的开源库 [ 14 ]，使用这个模型库可以很方便地进行人脸检测，并进行简单的应用，81个点最终以坐标的形式来返回。与人脸识别有区别的是，需要加上一个形状检测器shape_predictor_81_face_landmarks.dat，可以直接使用。基于dlib的shape_predictor_81_face_landmarks模型检测人脸的81个特征点，每个特征点指定一个特定的索引，由索引标来提取特定的脸部结构。用到的两个关键函数 [ 14 ]：dlib.get_frontal_face_detector()和dlib.shape_predictor(predictor_path)。第一个是使用HOG pyramid的一个内置人脸检测算法，得到人脸框。第二个是用来标记人脸关键点，返回人脸关键点预测值。使用开源模型shape_predictor_81_face_landmarks.dat，可以得到81个特征点位置的坐标。 3.1.1. 算法改进 1) 本文主要是使用人脸检测算法确定穴位坐标点，考虑到人脸的穴位数目过多选择了穴位比较集中的额头区域。本文对算法区域定位进行改进，使用回归算法预测每一个点在图像当中的位置，对检测到的框进行遍历，找到脸颊区域进行关键点定位，同时打印出左上角(索引76)和右下角(索引78)坐标位置。保留原算法对面部的定位，确定坐标点的输出让该算法更适合小区域的确定，额头坐标如表1所示。 Table 1 Multiple detection of the coordinates of the upper left and lower right corners of the forehea Num Index x y 1 76 289 170 78 298 221 2 76 309 147 78 478 211 3 76 421 128 78 459 147 表1. 多次检测额头左上角、右下角坐标 2) 在Dlib人脸检测实现穴位标注，类似于形成一个热成像单元，对应index值通过UDP协议在红外温度数据进行相应的转化 [ 15 ]。 3) 引用UDP协议，为了匹配仪器实现可见摄像头和红外摄像头信息转换。对温度值提出接收请求、接收和接收额头两个坐标的字符串。 4) 增加红外温度存放模块，完成16位二进制数据转换。改进的算法增加了与设备的契合度，保证了数据的正常传输，是温度检测精度提高的基础，温度数据转化如图3(a)、图3(b)所示。 图3. 温度数据 3.1.2. 实验数据集 为了保证算法的可行性，本文使用的是81面部地表形状预测器，在给定任何图像的情况下可以找到81个面部特征界标。在68个面部地标外添加了13个覆盖额头区域的地标，额头的13点是参考了patrikhuber的eos分支项目，其他68个点是在300W和WFLW数据集上进行的实验。300 W是现在使用比较广泛的人脸关键点检测基准数据集，在数据集中每个图像上包含多张人脸，但只标注一张。包括 [ 14 ]：AFW (337)，Helen (train 2000 + test 330)，IBUG (135)，LFPW (train 811 + test 224)。3148张图像，测试集是554 + 135 = 689张。室外环境搜集的数据集中表情、光照条件、姿态、遮挡导致脸部大小变化非常大。在该数据集中，每张人脸图像被标注了68个关键点如图4所示。 图4. 不同的数据集标记不同的点 WFLW包含了10，000张脸部图片(7500张用于训练的图像和2500张用于测试)图b标注有98个关键点，关键点是对人脸形状的稀疏表示。除了地标标注外还包含丰富的属性标注，即遮挡、光照、姿态、模糊和现有的综合分析算法的表达 [ 16 ]。在使用的Dlib人脸检测开源数据中 [ 4 ]，300W数据集平均误差为3.60%，WFLW数据集平均误差为5.50%，并且只有2.81M的参数量，减少了计算资源的消耗同时保证了高精度，具有很大的实用价值。 3.2. 数据传输 UDP协议是一种无连接的网络协议 [ 17 ]。数据传输之前，服务端和客户端不会建立连接，在需要它传输数据的时候直接简单的抓取来自应用程序的数据即可。UDP不属于连接型协议，不需要去维护连接状态，具有资源消耗小，处理速度快的特点而且一台服务集可以向多个客户机去传输相同的数据，具有较好的实用性。提供的是一种面对面的连接，是一种可靠的字节流服务。在正式进行通讯之前首先通过一些握手机制确认双方通讯意向并建立一条认为可以传输的概念通道。发送端只负责发送数据不会对字节数据做出任何解释，解释均由接收端来完成。在进行传输完毕之后还要断开连接。 UDP协议发送数据主要步骤 [ 18 ]： 1) 创建发送端的Socket对象； 2) 获取输出流，写数据； 3) 释放资源。 UDP协议接收数据 [ 17 ]： 1) 创建接收端的Socket对象； 2) 绑定套接字； 3) 获取输入流，读取数据显示在控制台。 3.3. 几种人脸检测算法对比 本文选取Haar级联人脸检测算法和Dlib人脸检测算法在本文自建的带有人脸的图片上进行目标检测任务的测试，其中检测速度测试在本文的测试结果选取平均检测人脸个数与检测速度两项指标进行对比分析评价，速度测试在计算机上进行。如表2中展示了单个人脸目标检测算法的对比实验结果。 Table 2 Comparison of single face detection algorithm result 算法 检测速度 /ms 平均检测到人脸数量/个 基于Haar级联的人脸检测 120.77 0.885 Dlib人脸检测算法 1292.82 0.894 Dlib人脸检测算法(本文) 1308.55 1 表2. 单人脸检测算法结果对比 通过表2对比可以发现在检测速度方面Haar级联人脸检测在本文数据集下与其他算法相比精度最高，但是在平均检测人脸个数方面确不如Dlib人脸检测算法以及本文的改进版。考虑到若将面部测温准确到穴位测温，对算力有要求，所以更轻量化的Dlib人脸检测算法改进版具有更好的实用性。本文改进的算法相比原算法虽然速度有下降但是在人脸准确捕捉方面有了较大提升，可以保证其检测准确性。综合考虑，本文改进的算法在速度与精度方面取得一定平衡，为今后部署到嵌入式设备进行应用打下基础。 3.4. 测温方法对比 本文通过四种测温方式进行测温检测。主要有温度计、点阵式红外测温仪、非接触式测温仪、非接触面部穴位温度检测仪。实验结果从测温精度、测温距离和平均测温时间作为主要评价指标。实验测得各类测温设备准确率如表3所示。 Table 3 Comparison of single face detection algorithm result 测温方法 测温精度/℃ 测温距离/cm 平均测温时间 温度计 ±0.1 腋窝 5~10 min 点阵式红外测温仪(最初) ±0.5 10~20 (无风) 30~50 (有风) 无需停留，通过即测温 非接触式测温仪 ±0.2 20~30 无需停留，通过即测温 非接触面部穴位温度检测仪(本文) ±0.2 20~50 无需停留，通过即测温 表3. 单人脸检测算法结果对比 通过表3不同测温方式之间的测温准确率对比可以看出，在开源数据集的测试结果表明本文所用的方法识别速度相对效果最优。 点阵式红外测温系统 前期研究的测温系统基于树莓派4，利用摄像头、小喇叭、显示屏，并选用红外热像仪模块，构建了一种基于红外传感器的红外测温设备。红外测温模块思路：先对测温模块初始化设置无人状态进行20次循环计算背景温度。对获取到的后十次温度数据使用缓慢平均算法得到背景温度。当被测者出现在测量区域时，记录突变点个数(当前温度与背景温度差大于30)，计算被测人员距离设备的位置得出体温，设备自动进行数据保存，若体温异常语音播报报警信息。使用的测温方式是点阵式红外测温，对热源逐点测温，测得的各点温度数据结合红外热成像模组温度数据指令重新计算排列后放在光学视场中，不再将黑体作为体温筛查的标准 [ 17 ]。因为只是在可见光图像进行温度的计算无法排除外界环境和温度对测温的干扰 [ 19 ]，在后期研究中添加了红外摄像头，从可见光和红外两方面入手去进行温度的测量，增加了穴位测温，帮助测温更加准确。 3.5. 实验结果分析 本测试硬件设备，包括热像仪、PC机、网线。实验开始前已完成对热像仪可见光、红外摄像头的内外参数标定，热像仪与PC机完成链接，数据可以传递到PC机。实验场景温度检测如图5所示。 图5. 实验测试 实验对检测者多次进入摄像头范围进行重复测温，测温结果如表4所示。 Table 4 Temperature measurement result 次数 矫正前 矫正后 1 31.783403 36.56 2 31.600128 36.24 3 31.829976 37.11 4 31.19429597 35.24 表4. 测温结果 非接触式面部穴位温度检测系统通过UDP协议传输的Dlib人脸检测算法坐标点，进而获取红外数据库函数对数据转化，从而完成温度检测。但是通过在后续的实验中发现，存在导致个人整体体温升高的疾病，比如，气阴两虚型病人等，可能会导致穴位的温度略高或者略低。因为穴位的温度特性优势是相对的，并不是所有的穴位都具有这种优势，接下来的工作在于选择正确穴位提高穴位测温精确度。