人们都不喜欢马赛克,以至于诞生出了“马赛克阻止人类文明进步”的箴言。影片里看到马赛克,你会索然无味;文档里看到马赛克,你会兴致扫地……无数朋友都在寻找一个问题的答案——马赛克真的是不可消除的吗?有码能不能用什么黑科技,一键变成无码?
从原理上来说,马赛克属于永久性的信息丢失。马赛克的原理很简单,把大量的小像素点合并到一个大的像素点,并取平均色,就制造成了马赛克。马赛克显然属于不可逆运算,你无法从一个平均数,推断出它是由哪几个数平均而来的。
然而,马赛克是否当真完全不可能还原?一般来说,要消除马赛克,需要人进行想象脑补,然后把缺失的内容重新画出来。这种方法效率低,而且效果并不稳定。近几年AI技术的风行,带来了很多不可思议的应用。最近,又出现了一些和AI去马赛克相关的消息,一起来看看。
Depix
这是一款近来引起了热烈关注的去码工具。Depix在GitHub上进行了开源,它主要用于去除文字马赛克。如果你是一名开发者,可以通过下面的链接进入到GitHub的页面,来关注该项目。
Depix GitHub主页:https://github.com/beurtschipper/Depix
我们先来看看Depix的效果。
Depix去马赛克的效果,从上到下分别是马赛克后的字符、用Depix还原的效果、原图
虽然不是完美还原马赛克,但也足够惊人——能够将一团不可名状的东西,还原成为有一定可读性的字符,这是人工也难以做到的。Depix是怎么做到这种程度的呢?
Depix的原理其实并不难理解。首先,Depix使用了一个文本表格,将这些文本打一次马赛克。Depix使用的文本表格采用了De Bruijn sequence布鲁因序列,这个序列包含了预期还原字符的2字符组合。
De Bruijn sequence布鲁因序列
Depix的开发者认为,2字符非常重要,因为很多文本打马赛克以后,一些马赛克块会是2字符的组合。例如下图,某个马赛克像素其实同时包含了“o”和“b”,2字符能提供更加精确的匹配。
通过2字符匹配,可以精确辨识出对应的文字
最终,生成了一个马赛克块查找表。
接着,Depix就可以凭借DebBruijn序列的马赛克查找表,来匹配想要还原的马赛克文本了。一旦某个马赛克文本的块,匹配上了查找表中的结果,那么就会很大程度上还原成为比较精确的文字——虽然还不算完美,但效果已经足够让人辨认这是怎样的字符。
简单来说,Depix的原理是用让马赛克匹配已知的打码数据,然后进行还原。这项技术的出现,对于用马赛克隐藏密码等场景,造成了挑战。不过Depix显然也有局限,它当前主要用于识别英文字母和阿拉伯数字,对于海量的汉字,Depix暂时还无能为力。
Google Brain
Depix让人看到了文字去码的希望,而Google Brain,则是图像去码方面的代表。Google Brain是Google开展的AI项目,其中对于图像消除马赛克的研究,可谓是非常深入。
Google Brain使用的是一种全新的像素递归超分辨率技术,通过大量高、低分辨率的采样学习,然后得出规律来匹配修复结果。例如,Google Brain学习到了某种黑点是属于眼镜,那么在还原马赛克的时候,就可以把这种黑点还原成眼睛。从测试来看,效果的确不同凡响。
来自Google的图像去码AI
这样的AI技术有什么用?去除马赛克只是特定场合的具体应用,类似的算法在很多时候都可以发挥作用——只要当图像需要修复的时候,就有用武之地。例如拍照片手抖了失焦了,糊成一片该咋办?传统的方法可能就是简单粗暴的锐化了,而如果拍照APP使用AI技术,就可以“脑补”回丢失的细节和锐度,给你一张尽量可用的照片。
总结
除了上文所提到的,现在还有很多利用AI增强图像的技术,例如Waif2x智能放大图片技术,乃至NV家的DLSS技术,其实都和去马赛克的AI有异曲同工之妙,都是通过AI“脑补”出不存在或者已损的图像信息,来增强图像清晰度。
在未来,随着AI算法的完善、机器学习的积累以及硬件算力的进步,AI去码、图像增强还会有更多惊人的效果,或许在未来某一天,马赛克将不再成为观瞻的障碍吧。