羊脸关键点检测是进行羊脸对齐、羊脸识别的预备任务,它的目的是检测羊脸图像中的鼻子、嘴巴、眼睛等关键点,以进行脸部旋转、拉伸、缩放等几何校正,提高后期脸部识别的精度。
羊脸关键点检测的基本流程是:收集羊脸图像,使用标注工具标注羊脸关键点位置,将每张羊脸图像和标注的关键点信息一一对应保存;选择深度神经网络,使用标注的羊脸关键点数据集训练模型,考察网络收敛情况、在验证集的预测准确率等指标;最后,将训练好的模型用于新羊脸图像的关键点检测。为降低计算量,可将羊脸检测作为关键点检测的准备工作。即先从图像上检测到羊脸,以缩小关键点检测区域,再预测羊脸图像中的关键点位置。
我们将收集的羊脸图像,使用labelme标注软件对每个羊脸标注8个关键点位置,分别是双眼、左右嘴角、左右鼻孔、鼻子中心、唇裂中心。标注结果保存为.json格式文件,并可转化为.xml, .txt等格式文件。使用18层的深度残差网络ResNet18作为主干网络,网络末端变换为512个1×1的特征图,与1层有16个神经元的输出层形成全连接。16个神经元分别输出8个关键点位置的横坐标和纵坐标。使用Python编程语言和Pytorch深度学习框架,对模型进行了训练。
使用训练的羊脸关键点检测模型对部分羊脸图像的关键点预测结果如图1所示。图中上面1行为实际标注的羊脸关键点,下面1行是对应图像预测的关键点。可以看出,与实际标注的位置相比,模型较为准确的预测到了羊脸关键点位置。
图1 ResNet18羊脸检测结果