特征点检测的应用有很多种,比如人脸特征点检测,人体骨架特征点检测,人体运动特征点检测等。今天我就以人脸特征点为例,通过卷积神经网络来实现检测。
1、准备数据
人脸数据是非常丰富的,我用的是kaggle上人脸特征检测数据,下载地址:https://www.kaggle.com/c/facial-keypoints-detection。这个数据中有一些值是缺失的,是无法使用的,需要将这些值去除。
2、网络模型搭建
网络模型采用目前比较通用的VGG模型,代码我就不给出来了,我把模型结构图分享给大家。
3、训练网络模型
搭建完成模型后,我们就可以训练模型了。我训练了20000次,损失函数结果如图。可以看到loss的值已经是非常低了。
4、测试集上检测
训练完模型后,我们需要在测试集上去做特征点的检测。我给出几张图的结果,从这上面可以看出结果还是不错的。
为了进一步表明模型的检测能力,我对NBA球星头像进行了检测,结果显示也还不错。
为了方便大家更高效地学习,我将代码进行了整理并更新到Github上,
地址:https://github.com/junqiangchen/FeaturePointDetection
如果大家觉得这个项目还不错,希望大家给个Star并Fork,可以让更多的人学习。如果有任何问题,随时给我留言我会及时回复的。