我目前正在使用Python学习OpenCV API,这一切都很好。我正在取得不错的进展。部分内容来自Python语法的简单性,而不是使用C ++,我还没有尝试过。我已经意识到,如果我打算做任何生产质量,我必须在某些时候弄脏OpenCV的C ++绑定。
就在最近,我遇到了dlib,它也声称可以完成OpenCV所做的所有事情。它用C ++编写,也提供Python API(惊喜)。任何人都可以根据自己的实施经验担保dlib吗?
答案 0 :(得分:8)
我已经将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