茅山科幻▲视频后期福音!,AI能实时检测视频流中人脸并打马赛克


茅山科幻▲视频后期福音!,AI能实时检测视频流中人脸并打马赛克
文章图片
大数据文摘出品
作者:牛婉杨
我们现在经常用到的马赛克其实起源于建筑上的图案装饰 , 如今马赛克常用于图像或视频的模糊处理 。 随着技术的进步 , 打码与去码变成了一种常见的技术研究方向 , 同时也掀起了一场技术与道德的“战争” 。
那么为什么要打马赛克?其实是出于一种隐私保护 , 例如新闻上出现犯罪嫌疑人的画面时是需要打码的 , 因为尚未定罪时需要维护嫌疑人的肖像权 。
现如今 , 大部分打马赛克的工作都需要我们手动来打 , 比如在图像/视频制作软件里添加马赛克 。 那么这种工作能不能交给AI呢?如果AI可以自动对图像/视频进行实时处理 , 无疑会帮人类减轻很大的工作量 。
答案是可以!AdrianRosebrock博士在博客中分享了通过OpenCV实现“人脸自动马赛克”这一教程 , 而这个项目是受到了他的一位博客读者的启发 。 事实上 , 这个项目有很大的现实意义 。
那么 , AI究竟是如何做到自动实时打码的?说到这里 , 首先需要介绍一下什么是人脸模糊 。
什么是人脸模糊?
AdrianRosebrock博士在博客中详细的分享了技术实现方法 , 从介绍人脸检测器 , 人脸模糊的简单步骤 , 到分别用OpenCV对人脸进行高斯模糊和像素化模糊的详细操作 。
AdrianRosebrock博士的详细教程:
https://www.pyimagesearch.com/2020/04/06/blur-and-anonymize-faces-with-opencv-and-python/
简单来说 , 实现人脸模糊可以分为以下4步:
茅山科幻▲视频后期福音!,AI能实时检测视频流中人脸并打马赛克
文章图片
第一步:人脸检测
在这一步可以使用任何的人脸检测器 , 只要它能在图像或视频中生成人脸的边界框坐标就行 。
茅山科幻▲视频后期福音!,AI能实时检测视频流中人脸并打马赛克
文章图片
有一些常见的人脸检测工具可以供你参考:
HaarcascadesHOG+LinearSVMDeeplearning-basedfacedetectors一旦识别到人脸 , 就可以进入到第二步了 。
第二步:图像/视频的ROI提取
脸探测器会给出一个边界框 , 也就是图像中人脸的坐标(x,y) 。
这些坐标通常表示:
人脸边界框的起始坐标x面部截止的坐标x人脸位置的起始坐标y面部截止的坐标y然后就可以用这些信息来提取人脸ROI(感兴趣区域) , 如下图所示:
茅山科幻▲视频后期福音!,AI能实时检测视频流中人脸并打马赛克
文章图片
接下来就开始进行人脸模糊啦 。
第三步:人脸模糊
说到打码这件事 , 有两种常用的模糊方式 , 一个是高斯模糊 , 一个是像素化模糊 。 高斯模糊的效果比较“温柔” , 但很可能面临着模糊不彻底的问题 , 而像素化模糊就相当简单粗暴 , 是我们最常见的马赛克样式 。
茅山科幻▲视频后期福音!,AI能实时检测视频流中人脸并打马赛克
文章图片
高斯模糊下的面部图像
这两个模糊方式都可以实现人脸自动模糊这个项目 , 练习时可以凭你的个人喜好选择 。
在进行人脸模糊之后 , 最后一步就是将模糊后的人脸放回原始图像中 。
第四步:将模糊后的照片整合到原始图像中
茅山科幻▲视频后期福音!,AI能实时检测视频流中人脸并打马赛克
文章图片
使用来自人脸检测的原始(x,y)坐标(步骤二中提到的) , 我们可以得到模糊/匿名化的人脸 , 然后将其存储到原始图像中(如果使用OpenCV和Python , 则此步骤使用NumPy数组切片) 。
至此 , 人脸模糊的部分就完成了 。
如何在实时视频中通过AI实现人脸自动模糊?
文摘菌在这里简单展示一下如何使用OpenCV识别人脸 , 然后再将人脸模糊应用到实时视频流中 。


推荐阅读