人生倒计时
- 今日已经过去小时
- 这周已经过去天
- 本月已经过去天
- 今年已经过去个月
我们看到了AI的很多神奇应用:下围棋、聊天、融合两张图的风格、创作小说...按理说,再也没有什么能让人们感到惊讶了。
但如果连邪恶的马赛克都能消除呢?
一般的水印或者马赛克都可以用Photoshop的“内容识别”工具来完成。只需将水印区域打勾,选择“填充”——“内容识别”,软件就会根据所选区域周围的内容自动填充,这样就可以轻松地从那些构图和色彩简单的图片中去除不需要的元素。
但是,归根结底,内容识别工具还是对所选区域周围的内容进行平均采样并填充,就像图片的“皮肤自体移植”一样。它无法修复已经被水印损坏的内容,可以说面对复杂的图像和我们最熟悉的黑色马赛克,我们无能为力。
例如,这里有一张西部牛仔的照片。他涉嫌多起暴力事件。我们先按照法律保护隐私的要求,在这里把眼睛马赛克一下。如果试图用内容识别工具来还原原始图像,很可惜只能得到一个恐怖的“盲人”,因为关于眼睛的信息已经被屏蔽了,无法通过“移植”来解决。
所以,想要找回被遮挡的眼睛,只能靠“脑补”——要么是人脑,要么是人工智能。
前段时间在GitHub上上线的DeepCreamPy项目就是因为这个原因而诞生的。这是一个旨在修复任何大小和形状的图像损坏的项目。由于采用了新的算法,效果是目前同类项目中最好的。
比如同样一张图片,经过DeepPicture处理后,会发现被遮挡的眼睛又被它“画”了一遍。虽然不是100%完美,但第一眼看上去和原图几乎一样。
什么是 DeepCreamPy?
DeepCreamPy是由deeppomf开发的,技术上主要是指NVIDIA今年发表的一项研究。通过深度全卷网络,CPU可以推断出图像缺失的内容,并给出有意义的预测——即作为一个图像处理项目,它可以在没有显卡支持的情况下运行。
这意味着项目依赖于CPU的处理能力。像我的电脑,现在还在用3代i5,处理一张图片需要30秒左右,而目前版本的DeepCreamPy还需要用户手动指明编码区在哪里,所以无法实现大规模的自动处理。
虽然图形界面还没有完成,但是作者已经发布了一个经过训练的预建模型。即使是对神经网络一无所知的人,只要按照流程操作,仍然可以体验到这套工具的神奇力量。
另外,作者已经开放了项目的源码,我们也可以重新训练或者编译这个模型,但是前提是必须安装Python、TensorFlow、Keras、Pillow、h5py等工具,有空余时间的同学可以自行尝试。下面将以预建模型为例,介绍如何使用DeepStream去除马赛克。
如何使用 DeepCreamPy?
首先你需要下载作者发布的集成包并解压。需要注意的是,它只能在64位Windows系统上运行。
别忘了DeepCreamPy还不支持全自动处理,所以你得用Photoshop打开需要处理的图片:把编码部分涂成纯绿色(#00FF00),这样程序就能识别出需要处理的区域。最好用铅笔工具来画。如果要使用笔刷工具,一定要记得关闭抗锯齿功能,否则会导致识别错误。
然后,将PNG格式的绿色图片保存到集成包的“decensor_input”文件夹中——根据个人经验,大部分不运行的情况都是因为忘记了正确的文件格式。
最后双击运行“decensor.exe”等待程序自动处理完成,再到“decensor_output”文件夹查看处理后的图片。程序启动运行需要一段时间,所以看到空白色命令行界面不要慌,耐心等待或者干脆把程序切到后台做点别的。
就我个人的测试体验来说,很多时候DeepCreamPy确实给出了惊人的答案,但是它的“补脑”能力自然不如大脑。如果镶嵌区域太大,结果就不可靠。好在我的对手只是绅士E上一个整齐的小黑马赛克,目前的算法完全可以应付。
你知道的。