前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >逆天啦!OpenCV4.1.2 CPU上人脸检测居然能跑到700+ FPS

逆天啦!OpenCV4.1.2 CPU上人脸检测居然能跑到700+ FPS

作者头像
OpenCV学堂
发布2019-11-18 15:08:08
2.1K0
发布2019-11-18 15:08:08
举报

微信公众号:OpenCV学堂 关注获取更多计算机视觉与深度学习知识

Debug与Release编译之争

初学OpenCV开发,配置开发环境,大家都一般都是配置为debug模式,其实时间一长就会给大家带来很多困扰,就是发现OpenCV速度比较慢,感觉有点不真实。其实这个时候只要切换到Release模式下,一行代码都不用改,程序重新编译生成一下,速度都会得到明显的提升。这个就是Debug与Release模式的不同。但是我还一直没有尝试过OpenCV DNN模块在Release模式的表现如何,今天我在编译OpenCV4.1.2时候,一时兴起在Debug与Release模式下都测试了一下DNN模块的人脸检测功能,结果我自己惊讶到下巴掉下来了。没想到差距如此之大,详细看下面的对比试验。

对比测试

以人脸检测OpenCV DNN代码为例,计算后台设置为OpenCV,设备为CPU,代码如下:

代码语言:javascript
复制
net.setPreferableBackend(DNN_BACKEND_OPENCV);        
net.setPreferableTarget(DNN_TARGET_CPU);

我刚开始在OpenCV4.1.2 DEBUG模式下跑OpenCV DNN的人脸检测:

实时人脸检测看上去是个梦,OpenCV DNN真相扎心,其实不用这么悲观,继续往下看。

切换到release模式下,同样的代码,运行速度如下:

没想到,居然可以对DNN模块十倍以上加速,我好喜欢Release模式,实时无压力。

OpenCV4.1.2+IE加速

修改IE加速为计算后台,其余代码跟上述保持不,变如下:

代码语言:javascript
复制
face_detector.setPreferableBackend(DNN_BACKEND_INFERENCE_ENGINE);
face_detector.setPreferableTarget(DNN_TARGET_CPU);

运行结果如下:

重写代码,使用OpenCV4.1.2最新的DetectionModel方式运行:

什么,CPU人脸检测居然跑到700 FPS,如果不是事实摆在我的眼前,我自己都不敢相信,这个就是在最新OpenCV4.1.2 Release模式下使用IE加速加持之后的真实结果。真实测试1280x720的同样可以达到同等水平FPS。以后千万别跟我说OpenCV DNN速度有点慢!

最后说一下我的系统环境与硬件配置

CORE i7 8th Windows 10 64bit VS2015 + OpenCV4.1.2 OpenVINO2019R03

OpenCV是我自己编译的release版本!

测试视频Frame大小为632x360

什么,不知道如何编译OpenCV

什么还不支持如何编译OpenCV,去看这里吧:

代码语言:javascript
复制
https://space.bilibili.com/365916694/#/
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenCV学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档