基于人脸跟踪云台的红外热成像系统*

2022-10-20 01:09张紫东马春燕陈燕姚坤李根郭然
电子器件 2022年3期
关键词:舵机云台分类器

张紫东,马春燕,陈燕,姚坤,李根,郭然

(太原理工大学电气与动力工程学院,山西 太原 030024)

2020 年伊始,新型冠状病毒席卷全球,面对新型传染性疾病,中国政府积极应对,很快国内疫情就得到了有效控制。即便如此,常态化的防疫工作仍是必须的[1]。疫情防控的首道防线就是人体体温检测,快速、精准测温成为了新冠疫情防控的重要排查依据。受公共场所复杂检测环境影响,对于人体体表温度的检测目前主要依靠测试者手持红外测温设备对被测者进行点对点测温,该测温方法模式固定,普遍存在测温距离短、测温响应不灵敏等缺点。采用红外热成像传感器对人体或其他生物测温的高度可靠性在很多文献已有提及,文献[2]提及华中师范大学设计了一款基于高分辨率温度传感器MLX90640 的测温系统,这款测温系统虽然稳定性很高,但缺乏对被测目标的追踪;在文献[3]中提及应用OpenMV 开源视觉模块的目标识别与跟踪,但没有对目标温度进行采集。

本文所设计的人脸跟踪红外热成像测温系统,能同时采集温度信息和人脸信息,实现双重认证,应用于公共场所,把信息连接到门禁控制器,及时地排查温度异常人员。为了解决由目标的运动而导致的面部区域温度未检测到的问题,采用OpenMV 机器视觉模块,加持两自由度云台,实现了对被测者的面部捕捉以及跟踪,有效地提高了测温的准确性。非接触式追踪动态人脸的红外热成像测温系统的开发研究,在智能监控领域有较大的推广应用价值。

1 系统硬件设计

为实现精确测温,系统主要包括红外热成像温度数据采集部分、目标跟踪云台部分与图像显示部分。系统以OpenMV 机器视觉模块为基础,开源图像处理模块使用STM32H743 芯片为控制核心并以OV7725传感器为摄像头模组。测温部分采用MLX90640 热电堆传感器进行温度信息采集,经MCU 将温度数据处理后实时经SPI 通信总线传输给LCD 屏幕,显示被测者的红外热图像。人脸跟踪云台部分,在OV7725 传感器收集的数字图像的前提下,经图像处理算法处理捕捉人脸,再通过PID 算法控制云台舵机跟踪人脸运动。系统硬件组成如图1 所示。

图1 系统硬件组成

1.1 MLX90640 热电堆传感器原理

红外阵列传感器测定被探测目标与背景辐射的红外线差异,就能得到不同的红外图像[4]。

MLX90640 是一款高分辨率、低功耗、低成本的32*24 像素红外阵列传感器,采用4 脚TO39 封装以及I2C 兼容的数字接口。MLX90640 包含768 个热红外像素点,每个像素的行和列表示为PIX(i,j),i表示行号(1~24),j作为其列数(1~32)。MLX90640 数据像素区域的分布图如图2 所示。其正常工作温度范围-45 ℃~85 ℃,测温范围在-45 ℃~300 ℃,集成了环境温度传感器和VDD 电压检测传感器,这些内部传感器的输出都储存在内部RAM 中。通过I2C 数据接口,可以访问存储于内部RAM 中的红外阵列、芯片环境温度以及VDD 实时数据。MLX90640 传感器的测量速率最高可达64 Hz,但是由噪声与刷新速率的关系可知刷新速率越高,噪声越高[5]。因此,本方案规范在其16 Hz 的刷新率下使用。

图2 MLX90640 像素分布图

视场是由热电堆传感器接收到50%的辐射信号来确定的,并且和传感器的主轴线相关,如图3 所示,越靠近主轴线,热电堆传感器所获得的辐射信号越多,测温灵敏度也就越高。MLX90640 有两种视场(Field of View,FOV)可以选择,分别是FOV 为110°×75°的BAA 版本和FOV 为55°×35°的BAB 版本。红外热传感器分辨率为32*24 像素,则可以理解为从镜头发射出32*24=768 条激光来探测温度,其中线夹角α为相邻两条激光线的夹角,线夹角=视场角/(行或者列像素-1),则BAA 版本的水平方向与垂直方向的线夹角分别为3.548°和3.261°,相对应的BAB 版本的线夹角分别为1.774°和1.522°。设被测物体尺寸用D表示,最远探测距离用S表示,相邻测线夹角用α表示,则有式(1):

图3 视场测量

假设额头的长度为12 cm,代入式(1),则其被BAA 版本和BAB 版本探测到的最远距离为1.05 m和2.26 m,结合使用场景,本系统选择MLX90640 的BAB 版本。

1.2 人脸检测与追踪云台

人脸检测与追踪云台硬件包括以下三个部分,云台的控制器,OV7725 传感器和控制舵机。

1.2.1 控制器

控制器是一个以STM32H743 单片机为核心的机器视觉模块OpenMV,集成OV7725 图像传感器,在Python 图像识别算法库的加持下,相当于给云台提供了一双眼睛。同时它可以通过I/O 端口发送命令控制机器系统,通过串口将采集到的信号传输给其他控制器。核心处理器采用STM32H743 单片机,该处理器基于高性能ArmCortex-M7 内核,工作频率高达480 MHz。STM32H743 单片机包含高速嵌入式内存,配备连接到APB 总线、AHB 总线的各种增强型I/O 端口和外围设备。

1.2.2 OV7725

OV7725 低电压CMOS 器件,最大输出分辨率为640×480 pixel 的图像。其工作方式是将光信号转换成电信号,通过AD 转换器转换成数字信号后发送给DSP 数字信号处理芯片,并使用FIFO 存储器存储图像数据。它支持处理8 位灰度图像或16位RGB565 彩色图像,当其使用VGA 时序工作时,输出的图像阵列可以达到60 frame/s[6]。通过SCCB 接口,还可以对采集到的图像进行补偿,支持伽玛曲线、白平衡、饱和度、色度等基础处理。

1.2.3 驱动模块

云台是一种两自由度的机械目标跟踪云台。通过机器底座、大臂、小臂以及伺服驱动器组合而成的云台,可以完成绕Z轴旋转以及上下俯仰的动作。本云台两个舵机的转角范围在0~180°,并且需要的扭矩较小,故使用数字舵机MG996R 就能够满足精度以及扭矩的要求。MG996R 数字舵机相比于传统的模拟舵机,精度高、线性度好、响应速度更快。

1.2.4 电源模块

为了使整个系统脱机运行,需要加持电源模块和5 V 锂电池给整个系统供电。其中STM32H743 的所有I/O 口的电压范围在3.3 V~5.0 V 之间,MG996R数字舵机的工作电压在4.8 V~7.2 V 之间,工作电压越高响应越快。因此,本设计采用5 V 锂电池给MG996R 数字舵机直接供电,并通过Ams1117-3.3 降压模块为控制器提供3.3 V 电压输入。

2 系统软件算法设计

为解决对运动中的人体测温以及身份的认证,软件流程图如图4 所示:主要由人脸检测、人脸追踪、采集人脸特征、采集温度信息这四部分组成。

图4 软件设计流程

2.1 人脸检测

跟踪人脸的第一步是要进行人脸检测找出目标人脸在整体图像中的位置,人脸检测算法是在一帧图像中划分人脸与非人脸的算法[7-8]。本系统采用的是基于HAAR 特征分析的Adaboost 级联分类器的人脸检测算法,本系统使用的人脸检测算法的工作流程如图5 所示。

图5 人脸检测算法工作流程

2.1.1 级联分类器

第一步加载Adaboost 级联分类器,最初Viola 和Jones 就是使用Adaboost 级联分类器,同时他们也指出,别的机器学习方法也有效[9-10]。但是训练一个级联分类器的缺点是需要大量的图像样本,并且即便是在技术发达的今天,也要耗费几天的时间去训练级联分类器。所以针对上述缺点,不必建立一个新的级联分类器,而是选择一个OpenMV 默认提供的级联分类器:HaarCascade_frontalface.cascade。

2.1.2 图像预处理

图像的预处理包含两个步骤,最重要的一步是将图像转化为灰度图,其次是将图像的分辨率调整为HQVGA。图像灰度指的是,在RGB 空间中,如果R=G=B,颜色表示灰色,其中R=G=B 的值称为灰色值,灰色值的范围为0~255。灰度图满足整体图像的空间需求,减少了人脸识别的计算量。

2.1.3 通过级联分类器

级联分类器的结构是二叉树状结构,如图5 所示,每一级代表一个强分类器。每一个强分类器由若干个弱分类器组成,弱分类器的结构与强分类器相同。假设每一个弱分类器的阈值为Threshold,当计算出的特征值大于Threshold 时,该弱分类器的输出取右值,反之取左值[11]。检测时,将所有弱分类器的值相加与强分类器的阈值比较,只有当该值大于强分类器的阈值时,才被认定是人脸正样本,接着开始下一级强分类器的检测。也就是说,当被检测图像通过所有强分类器时才被认为是人脸样本,否则拒绝。

2.1.4 绘制人脸检测结果

当检测样本通过级联分类器被判断为人脸正样本后,输出识别结果(x,y,w,h),以人脸左上角为原点绘制矩形,(x,y)代表人脸区域左上角坐标,w代表人脸区域的宽度(width),h代表人脸区域的高度(height),同时设置图框参数,包括颜色、线条粗细、线条类型,最终在分辨率为HQVGA(240×160 pixel)的灰度图上的绘制结果如图6(a)所示。

图6 人脸检测输出结果

2.2 目标追踪PID 控制器设计

本设计的检测目标是动态人脸,多数情况下OpenMV 采集的人脸中心会与整个图像的中心坐标存在偏差,所以需要核心处理器计算偏差像素值,并以此作为PID 控制器的输入,接着通过PWM 调制控制舵机的俯仰与水平运动,进而控制摄像头追踪人脸。

人脸对象中心如图6(b)中十字型标记所示,经计算人脸对象的中心横坐标为Tx,纵坐标为Ty:

人脸中心坐标与整幅图像中心横坐标的偏差量Δx,纵坐标的偏差量Δy分别为(W与H分别为整幅图像的长度与宽度,单位为像素值):

PID 控制(Proportional-Integral-Derivative Control)是过程控制中最为常用的一种控制,P 表示比例控制,I 表示积分控制,D 表示微分控制,具体的,在本设计中,比例控制是最基本的控制规律,其控制舵机运动的幅度。但伴随着舵机运动后的稳定,会产生稳态误差,即摄像头稳定后,摄像头模组没有对准人脸,系统需要引入积分控制消除稳态误差。当且仅当舵机的偏差随时间发生变化时,微分控制才会对系统起作用。

2.3 LBP 特征提取

局部二值模式(Local Binary Pattern,LBP)是一种用来描述图像局部纹理特征的算子,是照片分类和人脸检索研究中采用较多的特征提取算法之一。基础LBP 特征算法的原理是,在灰度图像中,LBP算子定义为在3×3 的区域内,以窗口中心像素为阈值,将相邻的8 个像素的灰度值与其进行比较,若周围像素灰度值大于中心像素灰度值,则该像素点被标记为1,否则为0。这样,3×3 邻域内的8 个点经比较可产生8 位二进制数,再将其转化为十进制数,即该区域内中心像素点的LBP 特征值[12-13]。

对应在本系统中的应用,将2.1.4 节人脸检测输出的矩形元组(x,y,w,h)作为LBP 特征的感兴趣区域(region of interest,ROI),并将其划分为若干16×16像素的小区域(可以通过多种方式划分区域);提取每个小区域的LBP 特征,计算每个小区域的直方图;接着对该直方图进行归一化处理[14];最后将得到的每个区域的统计直方图连接成为一个特征向量,也就是得到整个感兴趣区域的LBP 特征向量。

假设需要对实验室内部30 名人员进行人脸认证,首先需要在均匀的背景下采集人脸图像,每个人拍摄20 张不同角度、不同表情的图片作为人脸库。制作好人脸图库后,将目标的LBP 特征向量与人脸库依次比对,特征差异度越小,则被检测人脸与此样本更相似、更匹配,最终分辨人脸身份。

2.4 温度数据采集

主设备STM32H743 处理器与从设备MLX90640的内部RAM 和EEPROM 之间通过I2C 协议进行通信。EEPROM 中存储的数据用于计算目标区域内实际的温度值,RAM 中存储芯片温度数据、目标温度数据等。STM32H743 微控制器需要不断地从RAM 中读取温度数据并通过式(6)计算实际温度值[15]:

式中:(i,j)为像素点坐标;为红外辐射率补偿系数;αCOMP(i,j)为灵敏度系数;KT为不同温度范围的灵敏度斜率;式中Sx(i,j)的具体计算公式为:

Ta-r可由环境温度Ta和反射系数ε(默认ε=1)求得。

式中:Tr为IR 信号反射温度,约等于Ta-8。

至此,所有计算实际温度所需的变量均已求得,代入式(6)即可求出每个红外像素点的实际温度值。

3 系统调试与分析

3.1 系统整体调试

完成人脸检测识别、人脸目标跟踪、人脸特征识别、温度检测之后,与门禁结合对系统进行整体调试。根据系统硬件设计对云台进行设计制造,并将云台固定到距地面1.5 m 左右的位置。将本文第二部分的程序算法使用Python 语言写入IDE 中,并作为主程序main.py,两个I/O 口P8、P9 控制云台舵机。PID 调试的结果及算法程序写入IDE 并保存为PID.py,主程序main.py 会对其进行调用。系统的具体工作流程是,云台启动后首先复位原点,接着对首个目标进行人脸检测并跟踪,进而对其进行人脸识别与温度检测双重认证,两项认证通过主程序即控制门禁打开,接着系统复位对第二个目标进行检测。系统的Solidwork 组件图与实物图如图7 所示。

图7 Solidwork 组件图与实物图

在对OV7725 摄像头图像进行灰度化处理后,系统准确地对被检测者实现了人脸检测与身份识别,并将MLX90640 的热成像图像置于OV7725 摄像头图像右上角,整体图像如图8 所示;并在热成像图的下方显示被检测者的温度与身份信息。若被测者温度大于37.3 ℃,或身份信息未被系统收录,身份信息一栏会显示None,且连接的门禁系统会阻止其通行并发出警报,以提醒工作人员做进一步检查工作。

3.2 不同图像分辨率测试

图像分辨率大小的不同影响着被检测者身份识别的时间,将QVGA、HQVGA、QQVGA 三种分辨率下的人脸识别时间进行对比分析得,图像分辨率大小与人脸识别时间成正相关,综合考虑,图像分辨率选择HQVGA。

表1 分辨率与人脸识别时间关系

3.3 红外热成像图像插值处理

在对系统进行调试时,如图9(a)所示,MLX90640的基础热成像图像存在分辨率较低、边缘不平滑的缺点,遂对其进行图像平滑处理,并将平滑后的图像和OV7725 摄像头图像结合。如图9(b)所示,经过插值后的红外热成像图像,像素点成像更平滑,提高了图像的分辨率,细节处理得更清晰,同时高低温分布更加明显,采用图像插值方法提高图像分辨率,也降低了系统的成本。红外图像的上方附上了灰度处理后的OV7725 摄像头图像,这样在显示温度变化的同时,人脸细节也更清楚,便于系统进行人脸检测与人脸识别操作。

图9 热成像图像平滑化处理前后变化

3.4 温度数据准确性实验

选用松下T82 额式红外体温计作为测温基准,其测温分辨率为0.1 ℃。在室内,使用本系统和T82额式红外体温计分别对30 人进行测温实验,进行三次,实验结果如表2。

表2 温度数据准确性实验结果

当单个样本使用本系统测温所得温度数据与使用T82 额式红外体温计测量所得温度数据的差值的绝对值小于0.2 ℃时,则定义系统测试温度准确。由表2 实验结果看出,三组的温度准确率均在96.5%以上,且通过时间较快,满足在密集场所下快速筛选人体温度的需求。同时经分析,后续两组的准确率相对第一组较低的原因是由于本系统长期运行,发热严重,实际测温数据受环境温度影响,导致准确率较低,后续可添加TEC 控温来解决。

4 结论

本文设计了基于人脸跟踪云台的红外热成像门禁系统,通过调试,实现了非接触热成像传感器的768 个像素点的温度监测,加持目标跟踪云台的设计,实现了对人脸的跟踪测温和人脸识别,提高了温度检测和人脸识别的准确性。系统脱机运行的设计以及预留的I/O 口可以与门禁系统方便连接,实现了对温度异常人员的筛查,便于检测人员的检视。

猜你喜欢
舵机云台分类器
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
学贯中西(6):阐述ML分类器的工作流程
基于朴素Bayes组合的简易集成分类器①
Help me buy a…Tripod head帮我买云台
大疆创新:灵眸Osmo口袋云台相机
基于AdaBoost算法的在线连续极限学习机集成算法
海太克HS—1100WP数字舵机
超音速舵机保护器
精准水平快速到位
菜鸟看模型