在个人隐私极其容易泄露的网络时代,大家可能都会使用马赛克来遮盖图片上的敏感信息。马赛克是一种用来遮盖原画面的手段,有利也有弊。在影视漫画作品中,每当出现儿童不宜或者血腥暴力的场景,都极有可能伴随着厚重的马赛克。而正儿八经的画面带上马赛克,画风就会变得奇怪起来。
有码观影,始终如同隔靴搔痒,如鲠在喉。所以有人说,马赛克的发明是阻碍人类进步的绊脚石。于是乎在Github上就有这样一位程序员deeppomf ,使用深度神经网络开发出了一款能去除马赛克,让原图重现的神奇程序:DeepCreamPy 。
软件介绍:
DeepCreamPy 是一款基于深度学习的工具,通过使用深度完全卷积神经网络,使用CPU即可推断出图像缺失的内容并给出有意义的预测。技术上参照了英伟达在18年发布的一篇论文,当然,英伟达原文的目的可不是用来做羞羞的事情,而是为了复原画面被单色条带遮挡的问题。
DeepCreamPy 支持跨平台,作者提供了适用于 Windows 64 位平台的预构建二进制文件,对于有兴趣自己编译的用户,DeepCreamPy 可以在 Windows、Mac 和 Linux 上运行。
使用该工具的方法十分简单,用户在单独的图像编辑程序中打开图片,在需要去除马赛克的部位画上一条绿线,运行程序让它自动复原即可。
我们先来看看它的去码效果:
从开发者放出的这两张对比图来看,还原度还是相当可以的。图片中的动漫少女的脸颊和肩颈、手部线条都得到了几乎完美的还原,让人完全看不出差别。
DeepCreamPy适用范围:
DeepCreamPy 仅适用于薄码和二次元动漫图片,如果马赛克太大太厚,去码可能会失效,如下图所示。
而且该程序还要求使用者手动标明哪里是打码区域,因此还实现不了大规模自动化处理。
所以如果你十分介意这些缺点,那么后面的内容可以跳过了。如果你学(wu)习(ma)的意愿很强烈,请接着往下看。
DeepCreamPy怎么使用?
安装软件:
64位Windows用户可以直接下载exe程序,资源下载见文末。
如果你使用的不是Windows系统,需要自己编译,程序中已经包含训练模型,请从压缩包中提取。
编译代码需要一下组件:
- Python 3.6
- TensorFlow 1.10
- Keras 2.2.4
- Pillow
- h5py
Tensorflow、Keras、Pillow、和h5py可以使用pip安装:
$ pip install -r requirements.txt
请注意软件版本,Windows上的TensorFlow不兼容Python 2,也不兼容Python 3.7。
手动处理黑条遮挡和马赛克遮挡
打开 Photoshop 或者 GIMP,将你想修复的区域的颜色涂成绿色。对于单色条遮住人物敏感部位的情况,使用纯绿色(色号#00FF00)预处理图片,以绿条取代图片中的黑条。强烈推荐使用铅笔工具,不要用刷子。如果你没用铅笔,那么确保你所使用的工具关闭了抗锯齿(ANTI-ALIASING)功能。或者用魔棒选中马赛克区域,再用油漆桶上色。
最后将处理的文件以PNG格式存储在软件的「decensor_input」文件夹中。如果敏感部位不是黑条而是马赛克,还需要将未上色的原始图片放入「decensor_input_original」文件夹中,并确保其文件名和放在「decensor_input」中的预处理图片文件名相同。
运行DeepCreamPy去马赛克
A. 使用EXE直接运行:双击软件即可;
B. 命令行处理:
对于黑条遮挡的图片,输入以下命令:
$ python decensor.py
对于马赛克遮挡的图片,输入以下命令:
$ python decensor.py —is_mosaic=True
程序的启动和运行会花费一定时间,所以看到空白的命令行界面不要慌张,耐心等待或者干脆把程序切到后台就行了。
注意事项:
如果你图片处理后成了这样:
一定是你处理的姿势不对,请注意不要犯以下两种错误:
图一,图片马赛克区域没有完全涂满;图二,由于开启了抗锯齿功能,导致马赛克边缘区域不是纯绿色填充,请关闭抗锯齿功能。
DeepCreamPy下载说明:
由于目前开源作者已经删除全部项目程序,文末会给大家提供第三方备份存档的文件,包含了windows可视化程序和源码。
总而言之,DeepCreamPy目前的确是有一些局限。从实际效果来看,DeepCreamPy复原后的真人图片涂抹痕迹比较明显,不过处理线条比较简单的动漫图片是绰绰有余了,所以看看X番什么的应该是没问题。
也许你会说,实现这样的效果也不算啥。别急,时代在发展,技术在进步,你懂得。
英伟达论文地址:https://arxiv.org/pdf/1804.07723.pdf