我目前正在学习使用
Python的OpenCV API,这一切都很好.我正在取得不错的进展.部分内容来自Python语法的简单性,而不是将其与C一起使用,我还没有尝试过.我已经意识到,如果我打算做任何生产质量,我必须在某些时候弄脏OpenCV的C绑定.
就在最近,我遇到了dlib,它也声称可以完成OpenCV所做的所有事情.它用C语言编写并提供Python API(惊喜).任何人都可以根据自己的实施经验担保dlib吗?
解决方法
我已广泛使用OpenCV和dlib进行人脸检测和人脸识别,与基于OpenCV Haar的人脸检测器相比,dlib非常准确. (请注意,OpenCV现在有一个DNN模块,我们可以在这里获得基于深度学习的面部检测器和面部识别器模型.)
我正在比较OpenCV-DNN和Dlib进行面部检测/识别.我完成后会发布结果.
dlib中有许多有用的功能,但我更喜欢OpenCV用于任何其他CV任务.
编辑:正如所承诺的,我已经对OpenCV与Dlib人脸检测方法进行了详细的比较.
这是我的结论:
一般情况
在大多数应用程序中,我们不会在前面的图像中知道面部的大小.因此,最好使用OpenCV – DNN方法,因为它非常快速且非常准确,即使对于小尺寸的面部也是如此.它还可以检测各种角度的面部.我们建议大多数人使用OpenCV-DNN
适用于中到大图像尺寸
Dlib HoG是cpu上最快的方法.但它没有检测到小尺寸的脸(< 70x70).因此,如果您知道您的应用程序不会处理非常小的面部(例如自拍应用程序),那么基于HoG的面部检测器是更好的选择.此外,如果你可以使用GPU,那么MMOD人脸检测器是最好的选择,因为它在GPU上非常快,并且还提供各种角度的检测. 有关详细信息,请查看this blog