马赛克是将一个一个方形区域的色彩求平均值,变成纯色。
我们用一维数字来比喻,假设一串数字是:314159265358,如果我每三个数求一次平均值,就得到:333555444555。解释:以前三个数314为例,3、1、4的平均值是2.66667,四舍五入为3。所以结果前三个数被替代为333。
很显然,单靠一条马赛克之后的信息,无法精确还原原始信息。这是一个不可逆的过程。
不过,事物是普遍联系的,现实世界很少有孤立的马赛克照片或视频。当一张照片对人物眼睛打码后,我们几乎都知道那是眼睛(傻傻的计算机不一定知道哦),而且还是两个,基本对称,黑色的(东方人),有眼珠和瞳孔。这就是典型的通过先验知识,进行脑补。只有像上面例子中333555444555这样完全脱离现实世界的马赛克才无法脑补。
下边这张马赛克图,近看完全不知道是什么。但是眯着眼或把手机放远一点,就能大概看出是个什么了。这就是人类的智慧。
如果计算机也像人类一样大量训练、学习,具备很多先验知识后,它们也可以对一张打码的图片进行“脑补”。最后实现还原,但是这种还原只是猜测。不可能真正还原。目前在深度学习领域,此类技术已经比较成熟。
上边我们似乎主要讨论的是图像,单个图像。而实际上很多的马赛克还出现在视频中。视频是一帧一帧的,比如一秒20帧。那么一个视频,我们就可以收集带同一部位马赛克的成千上万帧,或者说成千上万张截图。
对大量相关联的马赛克进行还原,这对于计算机来说,就变得拥有更大潜能。这种能力甚至超越人类。
我们依然用简单例子说明。最开始提到了314159265358,我们对它打“马赛克”后,使用的“方块”分组是:314.159.265.358,马赛克后333.555.444.555。如果我们移动一位,就变成了3.141.592.653.38,马赛克后3.222.555.555.6,以此类推。那么,三次移位得到三组不同的马赛克结果,最终我们理论上就可以反推出原始的数字信息,类似于求解三元一次方程组。三个方程联立就有很大概率得到唯一解。
视频中的图片帧也是一样的道理,当我们对同一个部位的马赛克进行大量收集,就可以求解出原始信息。
总之,理论上,如果从一个视频中抠出同一个打码对象的大量马赛克图片帧,是可以非常接近真实地逆向的。只不过,目前的技术水平,似乎离这个目标还有一点远。目前主要还是针对孤立的单张图片(或视频帧)尝试复原,还不能结合“上下文”。
但我相信,让人工智能可以结合上下文,动态跟踪视频中的打码对象,进行联立求解,这种技术不会太遥远。