Retinaface网络:
用于在人脸图像中检测人脸区域。
提供人脸的边界框(bounding boxes)和面部特征点(landmarks)。
Hopenet网络:
用于估计人脸姿态,即人脸的俯仰角(pitch)、偏航角(yaw)和滚转角(roll)。
需要先从Retinaface检测到的人脸区域中截取出人脸图像,然后对该图像进行姿态估计。
具体流程
人脸检测(Retinaface):
输入一张图片image。
Retinaface网络对该图片进行处理,检测出所有人脸的边界框和特征点。
返回检测到的边界框boxes_conf_landms,以及经过处理的图片old_image。
选择最近的人脸(Depth信息):
通过process_depth_data函数对深度数据dpt进行处理,去除异常值并归一化深度值。
计算每个人脸框内的平均深度值,选择深度值最小的人脸(即最近的人脸)。
返回该最近人脸的边界框。
人脸姿态估计(Hopenet):
对最近人脸的边界框区域进行裁剪,得到人脸图像face_img。
使用Hopenet网络对该人脸图像进行姿态估计,得到俯仰角、偏航角和滚转角。
返回姿态估计结果(以角度表示的俯仰角、偏航角和滚转角)。
结果绘制:
在原图old_image上绘制检测到的人脸边界框和姿态估计结果。
具体包括绘制人脸框、深度信息以及姿态角度(roll, pitch, yaw)。