Dlib 的 simple_object_detector() 是 运行 慢

Dlib's simple_object_detector() is running slowly

我已经为 simple_object_detector() 训练了一个 SVM 模型。但是在对视频进行推理时它变得太慢了。

我遇到了一个类似的问题:Why is dlib so slow finding an object? where an answer is saying to use USE_AVX_INSTRUCTIONS flag enabled while dlib installation. But it is not the case for me. As I found the flag is enabled by default. I also have come through this FAQ: Why is dlib slow 解决方案是在 Visual Studio 中选择 Release 模式,但我没有使用 Visual Studio 而只是 运行从终端输入代码。

但有趣的是,如果我 运行 内置人脸检测器 dlib.get_frontal_face_detector() 它 运行 完全没问题,没有延迟。但是程序只会在 运行ning simple_object_detector() 对自定义数据进行训练时变慢。

好的!我得到了解决方案。实际上我错过了在 运行 检测器时提供一个标志。应该是跟一些优化有关吧。

首先初始化检测器对象:

detector = dlib.simple_object_detector("/path/to/your/trained/SVM/detector")

现在更改以下行:

detections = detector(gray_image)

为此:

detections = detector(gray_image, 0)

参考: https://github.com/davisking/dlib/issues/557#issuecomment-297679025