dlib vs opencv 什么时候使用哪个

dlib vs opencv which one to use when

我目前正在学习 OpenCV API 和 Python,一切都很好。我正在取得不错的进步。它的一部分来自 Python 语法的简单性,而不是将它与我​​尚未尝试过的 C++ 一起使用。我已经意识到,如果我打算做任何生产质量的事情,我必须在某些时候弄脏 OpenCV 的 C++ 绑定。

最近我遇到了 dlib,它还声称可以做 OpenCV 所做的所有事情,甚至更多。它是用 C++ 编写的,也提供 Python API(惊喜)。任何人都可以根据自己的实施经验为 dlib 担保吗?

我已经广泛使用 OpenCV 和 dlib 进行人脸检测和人脸识别,与基于 OpenCV Haar 的人脸检测器相比,dlib 更加准确。 (请注意,OpenCV 现在有一个 DNN 模块,我们可以在其中获得基于深度学习的人脸检测器和人脸识别器模型。)

我正在比较 OpenCV-DNN 与 Dlib 的面部检测/识别。完成后会 post 结果吗?

dlib 中有许多有用的函数,但对于任何其他 CV 任务,我更喜欢 OpenCV。

编辑:正如承诺的那样,我对 OpenCV 与 Dlib 人脸检测方法进行了详细比较。

这是我的结论:

一般情况

在大多数应用中,我们事先并不知道图像中人脸的大小。因此,最好使用 OpenCV – DNN 方法,因为它非常快速且非常准确,即使对于小尺寸的人脸也是如此。它还可以检测各种角度的人脸。我们建议在大多数情况下使用 OpenCV-DNN

对于大中型图像尺寸

Dlib HoG 是 CPU 上最快的方法。但它不会检测小尺寸面孔(< 70x70)。因此,如果您知道您的应用程序不会处理非常小的人脸(例如自拍应用程序),那么基于 HoG 的人脸检测器是更好的选择。另外,如果你可以使用 GPU,那么 MMOD 人脸检测器是最佳选择,因为它在 GPU 上速度非常快,还可以提供各种角度的检测。

更多详情,你可以看看this blog