在OpenCV 3.0中面对地标提取.任何人都可以建议任何可以让我提取面部地标的好的开源库吗?

Eii*_*991 8 opencv c++11 opencv3.0

我目前正在使用OpenCV3.0,希望我能够创建一个执行3项操作的程序.首先,在实时视频供稿中查找面孔.其次,使用ASM或AAM提取面部地标的位置.最后,使用SVM对视频中人脸上的面部表情进行分类.

我已经对此做了大量的研究,但无法在任何地方找到最合适的开源AAM或ASM库来完成此功能.如果可能的话,我希望能够训练AAM或ASM来提取我需要的特定面部地标.例如,下面链接的图片中的所有编号点: www.imgur.com/XnbCZXf

如果我有任何替代建议,以获得所需的功能,请随时向我推荐.

在此先感谢任何答案,欢迎所有建议,以帮助我这个项目.

小智 7

在评论中,我看到您选择使用dlib库训练自己的面部标志检测器.您有一些关于dlib用于生成其提供的"shape_predictor_68_face_landmarks.dat"模型的训练集的问题.

一些指示:

  • 作者(戴维斯·金)表示他使用了iBUG 300-W数据集中带注释的图像.此数据集共有11,167个图像,使用68点约定进行注释.作为标准技巧,他还镜像每个图像以有效地使训练集大小加倍,即11,167*2 = 22334个图像.这是数据集的链接:http://ibug.doc.ic.ac.uk/resources/facial-point-annotations/
    • 注意:iBUG 300-W数据集包括两个不可自由/公开可用的数据集:XM2VTS和FRGCv2.不幸的是,这些图像构成了ibug 300-W的大部分(7310图像,或65.5%).
    • 原始论文仅在HELEN,AFW和LFPW数据集上进行了培训.因此,您应该能够仅在公开可用的图像(HELEN,LFPW,AFW,IBUG)上生成相当好的模型,即3857个图像.
      • 如果你谷歌"一毫秒面部对齐kazemi",论文(和项目页面)将是最热门的点击.

您可以阅读此dlib博客文章的评论部分,详细了解培训流程的详细信息.特别是,他简要讨论了他为培训选择的参数:http://blog.dlib.net/2014/08/real-time-face-pose-estimation.html

考虑到训练集的大小(数以千计的图像),我认为只用少量图像就能获得可接受的结果.幸运的是,有许多公开可用的面部数据集,包括上面链接的数据集:)

希望有所帮助!


小智 2

AAM 和 ASM 都是相当老派的方法,结果有点令人失望。

大多数面部标志跟踪器使用级联补丁或深度学习。您拥有在这个演示中表现良好的 DLib(+BSD 许可证)、github 上的其他演示或一堆 API,如这个可以免费使用。

您还可以查看我使用 C++/OpenCV/DLib 的项目,其中包含您引用的所有功能并且完美运行。