手把手教你用Python去除马赛克!
有人说,马赛克是阻碍人类进步的绊脚石,虽然最近几年也频繁传出有在研发去除马赛克的软件,但是一直没有成品问世。
于是人类和马赛克的斗争就从未消停过。各种有亮点的图片部位,经常被无情地打上马赛克。在此之前,想完美清除马赛克几乎是不可能的,人类的进步一直停留在怎么打马赛克和去马赛克之间。
最近一位程序员及经过不断努力终于完成了这款软件。据悉,这位程序员“deeppomf”用深度神经网络开发出了一个能抹去马赛克让原图重现的神奇程序:DeepCreamPy 。
该项目使用深度完全卷积神经网络(deep fully convolutional neural network),参照了英伟达在今年4月前发布的一篇论文。当然,英伟达原文的目的可不是用来做羞羞的事情,而是为了复原画面被单色条带遮挡的问题。
不过目前该软件的局限性还很大,只能完成一些简单的修复。
例如本文中将原图在任意位置画上绿色线条进行打码后,在通过DeepCreamPy软件即可进行复原。并且在跟帖中还有不少使用者跟帖晒出了图片处理的前后效果图。
为了使这款软件达到更好的效果,作者在短短几个月内收集了超过10万张未打码的原图,但其中95%的图片他都没有仔细看过,只因为太过于浪费时间了。还说自己并不是第一个做这种软件件的人,却是第一个坚持下来的人。
从实际效果来看,复原后的图片涂抹痕迹仍然比较明显,不过处理线条比较简单的漫画可以说是绰绰有余。
接下来,就是让你实现心中无码,眼中自然无码的教程了。
适用范围
DeepCreamPy仅适用于薄码,如果马赛克太大太厚,去码可能会失效。另外,它对真人图片无效。如果你非要尝试,可以看一下强行使用的效果:
而且DeepCreamPy目前的版本还不能完全自动处理图片,需要用Photoshop首先对马赛克部分进行手动预处理。
使用方法
安装软件
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)将你想修复的区域的颜色涂成绿色 (0,255,0)。强烈推荐使用铅笔工具,不要用刷子。如果你没用铅笔,那么确保你所使用的工具关闭了抗锯齿(ANTI-ALIASING)功能。
使用 wand selection 工具(关闭了抗锯齿功能)来选择空缺区域。然后稍微扩展选中区域,并在选中区域上使用绿色 (0,255,0) 的油漆桶工具。
要在 Photoshop 中扩展选中区域,可以执行该操作:Selection > Modify > Expand 或 Contract。要在 GIMP 中扩展选中区域,可执行该操作:Select > Grow。将这些图像保存为 PNG 格式,并保存到 decensor_input 文件夹中。
A. 使用二进制编译文件(Windows)
双击 decensor 文件来修复图像。
B. 从头开始运行
运行以下行进行图像修复:
$ pythondecensor.py
修复后图像将保存至 decensor_output 文件夹。每张图像的修复需要几分钟。
如果敏感部位不是黑条,而是马赛克,还需要将未上色的原始图片放入”decensor_input_original” 文件夹中,并确保其文件名和放在”decensor_input”中的预处理图片文件名相同。
运行去马赛克软件
A. 使用exe直接处理
双击软件即可
B. 命令行处理
对于黑条遮挡的图片,输入以下命令:
$python decensor.py
对于马赛克遮挡的图片,输入以下命令:
$python decensor.py —is_mosaic=True
注意事项
如果你图片处理后成了这样:
一定是你处理的姿势不对,请注意不要犯以下两种错误:
第一幅图中,图片马赛克区域没有完全涂满;第二幅图中,由于开启了抗锯齿功能,导致马赛克边缘区域不是纯绿色填充,请关闭抗锯齿功能!!
最后附上软件地址下载地址,请享受吧。
资源地址
文章到此就高一段落了,喜欢本文的小伙伴可以转发,或点波关注喔!
本文来自网络,如有侵权,请联系小编删除!