在前面的一篇博文中,阐述了如何实现图片马赛克的检测。但是对于视频马赛克检测来说实时性显得很有必要,这次主要讲解我是如何实现马赛克实时检测的。

1.实现过程

这里,马赛克的实时检测是通过多线程来实现的,由于多线程和电脑硬件设施有着直接的关系,所以这里贴出电脑的配置图。

电脑处理器是i3、4核处理器,主频2.13GHz,运行内存3.11GB,32位操作系统。

由于电脑是四核处理器,因此,程序采用了四线程的方式来进行马赛克检测。具体实现就是创建四个线程同时检测图片是否含有马赛克,大致如下:

HANDLE pThread1=CreateThread(NULL,0,PROCESS1,NULL,0,NULL);HANDLE pThread2=CreateThread(NULL,0,PROCESS2,NULL,0,NULL);HANDLE pThread3=CreateThread(NULL,0,PROCESS3,NULL,0,NULL);HANDLE hMutex=CreateMutex(NULL,FALSE,NULL);CloseHandle(pThread1);CloseHandle(pThread2);CloseHandle(pThread3);

主线程加上这三个副线程,共四个线程。其中PROCESS1,PROCESS2,PROCESS3是三个马赛克检测线程名称。(后面附上代码链接)

2.实现效果

实验对象选取了40帧图片进行操作,比较单线程和四线程的运行时间,同时比较实现的效果。

首先是单线程的实现效果图,如下所示:

可以看到,四十帧的图片花了11.354s,每帧耗时283.85ms,无法满足实时性要求(高清视频每帧耗时约40ms)。

现在,看看四线程的实现效果图:

四线程的总耗时是3.714s,每帧耗时92.85ms,相比较于单线程时间上有了283.85/92.85=3.06倍的提升,但是单帧耗时仍然超过了预期。但是多线程程序特别依赖于电脑硬件参数,于是乎,将这个程序换了一台配置较好的系统,配置为:
i7、8核处理器,主频3.40GHz,运行内存3.89GB。
得到的运行结果图如下:

现在检测40帧的图片总耗时为0.967s,每帧耗时24.175ms<40ms,满足实时性检测要求。

3.总结

利用多线程可以有效地提高程序的运行效率,但是要注意的是多线程和硬件属性有着很大的关系,需要合理使用。再者就是实时性的实现对电脑的配置有着一定的要求。配置太低的话,无法实现马赛克马赛克检测的实时性效果。

马赛克实时性检测程序链接:
http://download.csdn.net/detail/zhancf/9285265
(需配置opencv环境)

视频马赛克的实时检测相关推荐

  1. 使用Python,OpenCV在视频中进行实时条形码检测

    使用Python,OpenCV在视频中进行实时条形码检测 1. 步骤 2. 适用场景及优化 3. 总结 4. 源码 参考 上一篇博客介绍了如何检测和查找图像中的条形码.这篇博客将进行一些优化以检测实时 ...

  2. DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对《我要打篮球》视频段进行实时目标检测

    DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对<我要打篮球>视频段进行实时目标检测 目录 输出结果 设计思路 核心代码 相关文章 成功解决AttributeError ...

  3. DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对《俄罗斯总统普京对沙特王储摊的“友好摊手”瞬间—东道主俄罗斯5-0完胜沙特》视频段实时检测

    DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对<俄罗斯总统普京对沙特王储摊的"友好摊手"瞬间-东道主俄罗斯5-0完胜沙特>视频段实时检测 导读   ...

  4. 【小白目标检测】手把手教你做视频中的实时目标检测(基于Pelee算法)

    手把手教你做视频中的实时目标检测(基于Pelee算法) 0. 先看效果: 1. 算法详解: 2. 下载源码: 3. 运行检测: 有需求的大佬欢迎加入我的接单群,需求详情请群里戳群主 获取源码或数据集: ...

  5. QAudioRecorder 获取音视频的设备,麦克风实时检测问题

    在获取音视频设备中遇到了一个麦克风实时检测问题(热插拔) 起初获取是通过 audioInputs() 重新调用这个函数时没有重新检测到新的结果这里因为之前避免掉使用计时器所以就没用,每次通过调用aud ...

  6. 调用摄像头使用face_recognition 或 opencv中haar人脸特征实时检测识别人脸、给人脸打马赛克/给人脸贴图

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) OpenCV:python调用摄像头同时使用OpenCV中自带 ...

  7. 学生考试作弊行为视频实时检测系统源码

    基于YOLOv5的作弊行为检测系统,Python和pycharm实现,可实时检测,有方便操作的图形化界面

  8. 使用Opencv2+Pyqt5实现人脸识别视频马赛克

    [视频马赛克系统]使用Opencv2+Pyqt5实现人脸识别视频马赛克功能 1.实现背景 2.开发资源.环境准备 3.实现目标 4.开发原理 6.编译实现 1.视频中人脸马赛克 2.电脑摄像头进行人脸 ...

  9. 再改YOLO | YOLO-ReT让边缘端也可以实时检测

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨 ChaucerG 来源丨集智书童 在本文中,作者根据现有先进方法中各种特征尺度之间缺少的组合连 ...

最新文章

  1. 并发编程-16AQS同步组件之CountDownLatch 闭锁
  2. terminated 线程_Java【多线程系列】JUC线程池—2. 原理(二)、Callable和Future
  3. qemu PPP连接
  4. 工作115:赋值给form对象
  5. 干货|基于深度学习的目标检测算法面试必备(RCNN~YOLOv5)
  6. 【性能优化】PHP代码输出压缩后HTML
  7. VS IED 自己开发小插件
  8. Ubuntu安装UFW防火墙
  9. 关于模糊查询时的索引问题.(了解一下,对提高代码效率非常有好处)
  10. mcrotime php_php时间函数time、date和microtime的区别 | 木凡博客
  11. Linux下idea 配置Android SDK
  12. [Pytorch]PyTorch Dataloader自定义数据读取
  13. 【渝粤题库】 广东开放大学 劳动和社会保障法 形成性考核
  14. Powershell-获取Hyper-V复制状态
  15. 再谈软件研发管理体系建设
  16. C语言之父丹尼斯·里奇:乔布斯脚下的巨人肩膀
  17. 小程序软件有必要申请软件著作权登记么?
  18. 安装华为运动健康beta版本安装失败
  19. 点击给导航条加背景颜色
  20. unity学习之路——什么是unity(附学习路线)

热门文章

  1. Mac 鼠标卡顿现象
  2. openwrt固件的下载编译流程
  3. CREO图文教程:三维设计案例之油缸顶物体的骨架模型设计图文教程之详细攻略
  4. Windows任意文件读取漏洞
  5. 计算机常用的网络安全技术有哪些,简述计算机的网络安全技术有哪些常用技术?...
  6. RStudio安装失败的解决办法
  7. 【Writeup】2017陕西网络空间安全技术大赛CSTC misc部分
  8. selenium爬取拉勾网
  9. 泉州地区的“会子”是一种怎样的制度?
  10. 【生活】解决广州社保无法查询的问题,2020年3月起,广州社保/医保/养老无法在微信/支付宝查询到的解决办法