Windows 10环境下,YOLO v3(darknet.exe)与dlib19.17对比测试:多目标检测

昨天,在同一台HP笔记本电脑上,基于Windows 10+CUDA10.1环境,对YOLO v3和dlib19.17的人脸检测的速度进行了简单的对比测试,结果是:

用同样的480*360的图片,三个人脸,在缺省的配置条件下,最快运行时间,YOLO v3大约比dlib19.17快10%。

如果直接将PyCharm集成环境中调用dlib19.17的Python程序与YOLO v3的darknet.exe的运行速度进行对比,则YOLO v3的速度大约比dlib19.17快30%。

人脸检测速度的测试过程请参考:https://blog.csdn.net/weixin_41943311/article/details/92793426

今天,我们进一步做多目标检测的对比测试。

(1)第一回合,先使用一张站成两排的球员合影照片做测试

原图如下:

Windows 10环境下,YOLO v3(darknet.exe)与dlib19.17对比测试:多目标检测_第1张图片

网上有人说,YOLO v3在检测密集的小物体方面有不足,那实际情况到底如何呢?

使用605*454大小的图片,YOLO v3的检测结果如下:

Windows 10环境下,YOLO v3(darknet.exe)与dlib19.17对比测试:多目标检测_第2张图片

图中28个人(包括一个很小的小孩子)全部检出,但不幸的是,把足球手套检测成了“sports ball”,用时43.602毫秒(这个速度,与检测3个人脸的速度几乎一样)。

作为对比,我们用Pycharm集成环境中调用dlib19.17来检测,检测结果是:

Windows 10环境下,YOLO v3(darknet.exe)与dlib19.17对比测试:多目标检测_第3张图片

人脸检出数量为0,用时66140微秒。

我们改用相同内容的807*605大小的图片,则YOLO v3运行时报错:“CUDA Error: out of memory “;Pycharm集成环境中调用dlib19.17的人脸检出数量仍然为0。

这一回合测试,YOLO v3完胜。

(2)第二回合,我们使用一张坐火车出游的中学生照片做测试

原图如下:

Windows 10环境下,YOLO v3(darknet.exe)与dlib19.17对比测试:多目标检测_第4张图片

使用605*454大小的图片,YOLO v3的检测结果如下:

Windows 10环境下,YOLO v3(darknet.exe)与dlib19.17对比测试:多目标检测_第5张图片

检出20个人脸,2个椅子,用时43.801毫秒(这个速度,与检测3个人脸的速度几乎一样)。

作为对比,我们用Pycharm集成环境中调用dlib19.17来检测,检测结果是:

Windows 10环境下,YOLO v3(darknet.exe)与dlib19.17对比测试:多目标检测_第6张图片

检出6个人脸,用时115989微秒(这个速度,与检测3个人脸的速度相比,几乎慢了一倍)。

我们改用相同内容的807*605大小的图片,则YOLO v3运行时报错:“CUDA Error: out of memory “。Pycharm集成环境中调用dlib19.17的人脸检测结果是:

Windows 10环境下,YOLO v3(darknet.exe)与dlib19.17对比测试:多目标检测_第7张图片

检出10个人脸,用时203917微秒(这个速度,与检测3个人脸的速度相比,慢了2倍多)。

我们继续调大图片尺寸,改用相同内容的1008*756大小的图片,Pycharm集成环境中调用dlib19.17的人脸检测结果是:

检出13个人脸,用时363766微秒,但第一排左边只露出半张脸的同学依然没有被检出。

这一回合,可以看出YOLO v3的表现依然很好。

(3)小结

综合两个回合的比较,在多目标检测这项测试中,YOLO v3显著优于dlib19.17,主要表现在:

(1)用于识别的图片尺寸可以比较小;

(2)运行速度快;

(3)运行时间与待检测目标的数量不相关,不因检测目标数量增加而消耗额外的时间。

但同时,我们也发现,YOLO v3对显卡内存的消耗要比dlib19.17大。

由于我们使用的dlib19.17的人脸检测模型“mmod_human_face_detector.dat”是2016年训练完成的训练模型,如果能有更好的训练模型,dlib19.17也许会表现得更好。

你可能感兴趣的:(Windows 10环境下,YOLO v3(darknet.exe)与dlib19.17对比测试:多目标检测)