一种基于特征点的快速人脸朝向检测算法

2021-12-24 23:42高泠溦李志扬邓蕾杨泽信邹颖
电脑知识与技术 2021年29期
关键词:人脸检测粒子群算法

高泠溦 李志扬 邓蕾 杨泽信 邹颖

摘要:人脸朝向是判断学生是否认真听课的重要线索,而其中所涉及的物体姿态检测技术一般需要6轴传感器、KINECT等专业设备。本文提出了一种采用单摄像头的便捷人脸朝向检测算法,该算法在基准照片和转动后的照片中找出人脸的5对匹配特征点,然后根据光学成像原理,通过粒子群算法找出这些匹配特征点所对应的旋转矩阵,从而求出旋转角度。实验表明,对刚性物体该算法的测量精度可以达到2度左右。该方法可以广泛用于人脸朝向检测,或其他物体的姿态检测。

关键词:人脸检测;人脸朝向;特征点;姿态估计;粒子群算法

中图分类号:TP391  文献标识码:A

文章编号:1009-3044(2021)29-0105-03

Fast Face Orientation Detection Method Based on Feature Points

GAO Ling-wei, LI Zhi-yang, DENG Lei, YANG Ze-xin, ZOU Ying

(College of Physical Science and Technology, Central China Normal University, Wuhan 430079, China)

Abstract: Face orientation is an important clue to see whether a student is listening carefully, in which the ect posture detection usually requires professional equipment such as 6-axis sensor and KINECT. The paper proposed a convenient face orientation detection method using only a single camera. It first finds 5 pairs of matched face feature points from the reference photo and the rotated photo. Then it calculates by means of the particle swarm algorithm the rotation matrix and next the rotation angle of these pairs of feature points from the equations set up following geometrical optics. As the experiments show, a measurement accuracy of about 2 degrees can be reached for rigid ects. Therefor it can be widely used for face orientation detection and posture detection of other ects.

Key words:face detection; face orientation; feature point detection; attitude estimation;particle swarm algorithm

1引言

在全面防控疫情的背景下,各級各类学校积极开展线上教学[1]。网络教学具有很多优势,例如,资源共享以及学习形式趋向自由化。但是网络教学也带来一些不便,例如难以实时监测和把控学生的学习状态。通过人体姿态,特别是人脸朝向,可以判断学生是否认真听课。而对人脸或其他物体的姿态检测一般需要专业硬件设备或辅助装置,例如6 轴传感器[2]、KI? NECT[3]、双目摄像头[4]以及辅助棋盘格[5]等。人体姿态估计也一直是计算机视觉中一个备受关注的研究热点[6]。传统的姿态估计算法基于结构模型,往往应用在二维图场景中,受制于几何模糊性,其精度一般较低;随着深度学习的流行,近年来提出大量基于深度学习的检测算法,例如R-CNN[7]、SSD[8]等,估算精度得到大幅提升。但深度学习需要准备大量的训练数据,尤其是基于视频的机器学习,在实时监测方面更是经常遭受硬件资源和网络带宽带来的限制。

本文提出了一种采用单摄像头的便捷人脸朝向检测方法,该方法在基准照片和转动后的照片中找出人脸的5对匹配特征点,然后求出这些匹配特征点所对应的旋转矩阵,从而确定人脸朝向。该方法硬件设备简单,不需要机器学习的前期训练,可以广泛用于学生的学习状态或其他物体的在线姿态检测。

2基于匹配特征点的人脸朝向检测算法

本文首先从监测视频中选择两幅不同时刻的人脸图像A 和B,其中A为基准。然后分别提取A和B 图像的特征点,进一步对两者的特征点进行匹配,选出其中5对匹配度较好的特征点。下面推导如何从这5对匹配特征点确定人脸在B时刻相对于A时刻的旋转。

根据小孔成像原理,第i个特征点在 A 时刻的图像坐标(xiA,yiA)和其对应的相机坐标(XiA,YiA,ZiA)满足如下方程:

方程(1)和(2)中,xc和yc为相机中心的图像坐标,f为相机以单个像素宽度度量的焦距大小。同理可列出第i个特征点在 B 时刻的图像坐标(xiB,yiB)和其对应的相机坐标(XiB,YiB,ZiB)所满足的方程,i=1,2,3,4,5。这样总共可以列出10×2=20个方程,其中包含10×3=30个未知的相机坐标。

进一步采用刚体近似,假设从A 时刻到B 时刻,5个特征点所对应的相机坐标的变化可以用同样的旋转矩阵R 和平移矢量[tx,ty,tz]描述,即:

其中i=1,2,3,4,5,这样矩阵方程组(3)新增了5×3=15个方程,但是这15个方程新引入了3个未知的旋转矩阵参数和3个平移矢量参数。这意味着方程组(1)-(3)共包含35个方程,36个未知数,仍然无法求解。值得注意的是本文只关心与人脸朝向对应的旋转矩阵R,对相机坐标的绝对值大小并不关心。实际上,方程组(1)-(3)是关于图像坐标和其对应的相机坐标的线性方程,将其比例缩放后旋转矩阵R不变。因此我们可以通过归一化处理来减少未知数数目。

在方程组(3)中分别令i=1和2,并将所得方程组相减可得,

进一步将方程组(5)两边分别除以Z1B 和Z1A,整理可得,

通过类似处理可知,方程组(7)中i=2可以分别用i=3,4,5代替,总共包含4×3=12个方程。每个方程右边具有相同的矩阵系数Z1A1BR,而Z1A1BR本身包含1+3=4个未知数。除了矩阵系数 Z1A1BR外,上述12个方程组还包含Z2B1B,Z2A1A,Z3B1B,Z3A1A,Z4B1B, Z4A1A,Z5B1B,和Z5A1A 8个未知参数。这样12个方程共包含12个未知参数,具有唯一解。从所求得旋转矩阵R 即可知道人脸朝向。

3基于粒子群算法的方程求解原理

方程组(7)虽然具有唯一解,但它是一个高阶方程,无法求出解析解。为此本文采用粒子群算法进行数值搜索求解。基本原理和步骤如下。

在采用粒子群算法求方程组(7)时,我们假设每个粒子的位置由Z1A1B、α、θ和 β预先确定,其中人脸先绕Z轴旋转动α 角度,再绕X轴旋转θ 角度,最后绕Y轴旋转β 角度,这样旋转矩阵R可以写为,

进一步记Z1A1BR为,

令i=2,将(9)代入(7),整理后有:

方程组(10)包含3 个方程数,却仅有2 个未知数 Z2B1B 和 Z2A1A 。我们先根据方程组(10)的前两个方程进行求解,整理后可得,

如果并将方程组(11)所求得的 Z2B1B 和 Z2A1A 代入方程组(10)第3个方程,并记方程左右两边的差值为,

一般情况下,d21不为零。只有当Z1A1BR正确时,d21才为零。类似地分别令i=3,4,5,可得到d31,d41和d51。最后定义总误差:

显然,当且仅当总误差d=0时,Z1A1BR才是正确解。因此总誤差d可以作为衡量Z1A1BR 的依据。

根据粒子群算法原理,首先在适当范围内赋予每个粒子一个随机初始位置(Z1A1B,α,θ,β)和随机初始速度,并计算对应的初始总误差d。然后让每个粒子不停地随机移动搜索,在每个粒子每走一小步后计算并记录每个粒子以及整个粒子群所找到的最小总误差d。在每步移动过程中,所有粒子总是向其自身历史误差最小和整个粒子群误差最小的位置随机移动。这样经过多步搜索后,可以使总误差d收敛到零。由于大量粒子在整个范围内随机搜索,总有一个粒子恰好邻近总误差全局最小位置,因此粒子群算法不仅搜索效率高,速度快,而且不会陷入局部最小位置导致收敛失败或精度降低。

4实验结果

首先本文在不同距离和角度拍摄了多幅棋盘格照片,通过Matlab的相机标定工具箱对相机进行了标定,确定了相机的焦距f和图像中心坐标(xc,yc)。然后在固定距离,让棋盘格分别绕Z轴、X轴和Y轴旋转预定角度,拍摄棋盘格转动前后的照片,并采用前面所讨论的方法计算棋盘格的旋转角度。图1(a)和(b)分别为棋盘格绕Y轴转动前后的实验照片,计算结果为(Z1A1B,α,θ,β)=(1.6725 , 0.1895, 47.6255 , 0.9002)。而用量角器测量的棋盘格绕Y轴转动约为45度,计算结果与实测结果误差在2度左右。

经过上述标定后,本文将上述方法用于人脸转动监测。图2(a)和(b)分别为人脸转动前后的示例实验照片,其对应的计算结果为(Z1A1B,α,θ,β)=(0.9941 , -30.3891 , 7.3351 , 1.7673),与实际观察结果基本吻合。

图2人脸转动前后对比图示例

5结论

本文提出了一种基于特征点的快速人脸朝向检测方法,该方法采用单摄像头,只需在转动前后拍摄的两幅照片中找出5 对匹配特征点就可以计算人脸或其他物体的相对旋转角度。实验表明,对刚性物体该算法的测量精度可以达到2度左右。可以广泛用于人脸朝向检测,以便统计判断学生的学习状态,或用于其他物体的在线姿态检测,以便进行定位或安全报警等。

参考文献:

[1]李旭光,李忠毅.疫情下高职学生线上学习现状的个案研究[J].品位经典,2021(1):163-165.

[2]曾亿山,刘睿.基于六轴传感器的无线动作识别系统设计[J].传感器与微系统,2018,37(10):98-101.

[3] Ashwini K,AmuthaR.Compressive sensing based recognition of human upper limb motions with kinect skeletal data[J].Mul?timedia Tools and Applications,2021,80(7):10839-10857.

[4]钱林杰.基于FPGA双目摄像头采集的实时立体成像研究与实现[D].南京:南京大学,2018.

[5]熊云龙.基于六轮小车的虚拟智能管家系统及相关SLAM技术研究[D].武汉:华中师范大学,2020.

[6]李崤河,刘进锋.二维人体姿态估计研究综述[J].现代计算机, 2019(22):33-37.

[7] RussakovskyO,DengJ,SuH,etal.ImageNet large scale visual recognition challenge[J].International Journal of Computer Vi? sion,2015,115(3):211-252.

[8] Li Q T,Chen Z C,ZhangB,etal.Detection of tailings dams us?ing high-resolution satellite imagery and a single shot multi? box detector in the jing –Jin –ji region,China[J].Remote Sens? ing,2020,12(16):2626.

【通联编辑:唐一东】

猜你喜欢
人脸检测粒子群算法
JNI技术在基于OpenCV的人脸与微笑检测中的应用
蚁群算法的运用及其优化分析
基于人脸特征定位的SNS网站应用组件研究与设计
电力市场交易背景下水电站优化调度研究
基于粒子群算法的产业技术创新生态系统运行稳定性组合评价研究
基于Android平台的人脸识别系统设计与实现
基于Matlab的人脸检测实验设计
无线传感器网络联盟初始结构生成研究
基于JSeg和显著性检测的服装图像分割方法