众所周知,马赛克在成为一种
图像处理手段之前
,其实是发源于古希腊的一种建筑工艺。
后来,马赛克被用于给图片打码,便从此走上了不归路——
一旦使用,不可
还原
。
图片其实是由一个个像素组成,
每个像素只有一个颜色。给图像加上马赛克之后,图片部分区域的分辨率降低,关键信息被隐藏
。也就是说,马赛克其实是一种“不可逆的加密过程“。
很多时候,面对打了马赛克的图片,人们只能凭借想象力去复原图像。而随着技术的发展,去除马赛克,还原原图,也逐渐成为可能。例如,前段时间火爆全网的 GitHub 项目
Depix;杜克大学的 PULSE 项目;再例如,极棒 2018 年举办的时尚第一场 GAN 掉马赛克比赛。
先来聊聊 Depix 项目,作者 Sipke Mellema 其实是一名信息安全顾问。
https://github.com/beurtschipper/Depix
Depix 能够从
使用线性方框滤波器(linear box filter)创建的像素化图像中恢复
文字密码。线性滤方框波器的会
单独处理每一个像素框,利用像素平均值填满这个框,实现覆盖。而利用 Depix 去操作时,就会
对搜索图像中的每一个 block 执行像素化以寻找直接匹配。
具体步骤如下:
-
-
在具有相同字体设置(包括文本大小、字体、颜色、hsl)的编辑器中,粘贴待处理字符的德布鲁因(De Bruijn sequence)。
-
给该序列截图,尽可能使用和像素化图像相同的截图工具。
-
python depix.py -p [pixelated rectangle image] -s [search sequence image] -o output.png
对于大部分像素化图像,Depix 尽量寻找单匹配结果,并假设这些匹配是正确的。至于周围多匹配 block 的结果被看作像素化图像中相同的几何距离,并认为这些匹配也是正确的。该过程重复多次。
在正确的 block 没有更多几何匹配后,Depix 将直接输出所有正确的 block。对于多匹配 block,Depix 将输出所有匹配的平均值。
效果如下图:
在这个项目引发热议之前,其实已经有一些类似的去除图片马赛克项目。最近的一个就是
杜克大学的 AI 算法 PULSE
(详见:
https://github.com/adamian98/pulse)。
PULSE是一种新型超分辨率算法,它通过潜在空间探索对照片采样,可以将低分辨率的图片放大64倍,让画质变得高清、逼真。
如你所知,这种能将皱纹、眉毛、牙齿都“还原”的技术主要还是靠“脑补”。所生成的高清图片也并非真实存在,是虚拟的面孔。
其中主要用到了
GAN
(
Generative Adversarial Networks
)生成式对抗网络
技术,利用不同的训练集进行生成和检测。先生成高清大图,再降低分辨率与原图对比,最终找到匹配程度最高的图像。
无独有偶,英伟达也公开过类似的算法 face vid2vid,可以提升H。2视频通话画质同时节约流量。还可以手动修改后台数据,调整头部姿势,或者实现面部视频迁移。
同样是去除马赛克,有的方法还原了文字信息,可能会导致密码或机密信息泄露;有的则修复了模糊照片,让修图师看到了拯救头发的
曙光。可见技术往往没有立场,主要在于用技术的人。而用技术的人又有着怎样的故事呢?
同样 GAN 掉过马赛克的老司机有话说
👇🏻👇🏻👇🏻