破解马赛克有多「容易」?

刷短视频时,估计大家都看过下面这类视频,各家营销号争相曝光「一分钟解码苹果笔刷背后内容」的秘密。换汤不换药,自媒体们戏称其为「破解马赛克」,殊不知让多少不明真相的用户建立起了错误的认知,也让苹果笔刷第 10086 次被「黑」为打码工具。

打码这个动作其实早就渗透在我们生活中的各个方面。如上用户通过 iOS 绘制功能提供的笔刷多次给截图进行涂抹,这样的操作至多称之为涂鸦而不是打码。普通人往往是打码行为的接收者而不是执行者,「单纯认为遮住内容就是打码」也变相造成了很多啼笑皆非的打码行为。

利用绘制功能中的涂鸦笔「打码」和「解码」

如上图所示,涂鸦笔只是对图片上追加了一层透明的遮罩,无论多少次叠加都可以通过调节亮度、对比度等参数的方式让笔刷后的内容现形。这些基于错误操作带来的错误结论居然变相又变成了马赛克不安全的证据,简直错上加错。

新时代围绕马赛克进行的讨论无非两个,马赛克是否安全以及马赛克的破解方式。从根本上来说,这两个问题取决于「打码时究竟图片发生了什么样的变化」,也就是得先知道图片打码背后的原理,才能判断其是否具备解码的可能,那么安全与否的问题也就水落石出了。

马赛克很难破解吗

首先从视觉上正视下马赛克的威力。以下是通过常规打码工具 Fotor 呈现的效果,可见物品轮廓,却不见高分辨率的细节,从人眼观看的效果来说,我们「知其然不知其所以然」。

打码工具 Fotor 提供的各种马赛克的截图

从定义上来说,马赛克指的通常是出于隐私保护等目的,将图片或视频中某个特定区域的色阶细节劣化,造成色块打乱、被晶格覆盖的效果。

光说还不明确,试试打码工具是就大致能看出个所以然来。在上图左侧的马赛克功能区,提供方块马赛克,三角形、六边形的马赛克形状可选,不仅有形状,强度的变更也可以调整马赛克单位覆盖的大小,越大意味着忽略的细节越多。从人眼来看,自然就更加难以还原了。

不过解码本来也不是人眼的行为,AI 则是普罗大众心中解密马赛克的万能钥匙。或许因为 AI 可以掌握某种规律和算法,通过猜想来完美还原马赛克呢?

通过 iOS 端的 DAMA App 进行像素打码

从上图中对一段字母和头像的聊天记录进行打码来看,很容易得出一些结论。(仅针对当前选择的打码工具)

  • 同样的头像在打码中依然呈现不同的结果,反过来可见通过马赛克完美解析出原内容难度太大。
  • 不同的字母也甚至因为色阶的劣化成了完全一致的空白,可见不同的内容在打码后可能保持一致的马赛克效果。

马赛克图片难以破解,指的是马赛克的色阶进行反向的细化,从而恢复成原图的样子很难。但很难还不一定意味着不可能,试图恢复的重要前提是——图片存储的数据中是否具备可还原的信息。

关于这一点是毋庸置疑的,不管是 JPG、PNG 等不同的压缩格式,图像数据中除了包含每个像素基本的 RGB 信息,部分格式额外存储的地理位置、拍摄设备等元数据信息,并不会包含打码等过程留下的任何数据。这切断了马赛克完美还原的根本途径,不然图像解码也不会是未来 AI 发挥力量的重要战场,AI 做的始终是试图「猜测」马赛克的原内容,正确与否并不能保证。

综上所述,被马赛克后的图片并不会额外存储打码过程中的额外处理信息,这就是马赛克不能被轻易还原的本质原因。

「马赛克」从何而来

既然说到了 AI,就不得不提各家厂商和学术团队在破解马赛克上的努力和成就。但本着严谨治学的态度,在此之前,先搞清楚什么是马赛克比较重要。

容我先问一个问题:你这辈子看过最美的马赛克是什么?

别误会,我不是要拿成人影片中的马赛克说事,只是恰好这部 Netflix 出品,讲述成人影片巨头崛起历程的精彩剧集《全裸导演》的片头制作太过精良,配合抓耳的 BGM 马赛克犹如烟花般绽放,有网友甚至称这是这辈子看过最美的马赛克。

被打上马赛克的霓虹灯,各种规则形状的碎片组合成的物体炸裂开来,仿佛世界都是由马赛克装扮而成。看似低分辨率的马赛克,远看却给人呈现出一种高清大图的美感,这样的美感早就被公元前三千年前的人们感知并利用起来,马赛克在当时就已经是教皇用在教堂建筑上的一种装饰艺术。

几千年后,被成人内容霸占用户心智,导致马赛克的使用场景越来越不被人们重视。加上一些自媒体隔三差五「破解马赛克」的碎片又片面化的宣传,言及马赛克动不动就内涵小电影的局面实在让人无语。

长此以往,不仅用户不知道如何正确打上马赛克,更是对马赛克的效果存疑,动不动马赛克不安全的囫囵说法实际上让群众对隐私保护的意识以及价值感大大降低。

各种马赛克场景

其实除了保护成人视频中的隐私泄漏,马赛克在日常中还有非常多的使用场景:

  • 在日常聊天传送涉及个人隐私的图片时,针对图片中的地址、车牌号、证件号、手机号等马赛克处理。
  • 电视新闻中,常见的有从法律层面上保护受害人、嫌疑人、证人隐私权等角度出发的马赛克处理。
  • 涉及国家隐私的地图和信息中,Google 地图等地图提供商往往要对军事禁区等信息进行马赛克处理。
  • 影视作品或游戏中,从未成年人保护角度出发对暴力、血腥等场景进行的马赛克处理。
  • ......

熟练地在涉及到隐私的地方打上马赛克,并将其合法合理地传播分享,是每个人新时代冲浪人必备的技能。

理论上的「破解」手段

既然无法 100% 保证还原马赛克之前的图像,可以通过什么样的方式来「推测」出马赛克之前的样子,就是所谓营销号眼中「破解马赛克神器」做的事情。这样的工具不外乎从逻辑层面上「猜」和「算」两种方法。

从「算」的学术描述上表述,去马赛克(demosaicing)算法是一种数字图像处理,用于根据从彩色滤波器阵列(CFA)覆盖的图像传感器输出的不完整颜色样本重建全色图像。 它也被称为 CFA 插值或颜色重建。

把令人迷惑的定义更通俗地表述出来,「算」的方式更像是对应人类「眯着眼睛看」的另一种机器执行的效果。不过单纯的算已经无法满足人类征服马赛克场景的复杂度了,大多数的马赛克去除方法是 AI 和算法加持下的双重结果。

从 2017 年 Google brain 展示出的 AI 去码功力,到 2020 年杜克大学的 PULSE 展示出的惊人效果,我们每一次都在惊叹于算法与 AI 结合后的去码效果。实验室产出的 paper 让人惊艳,但实际操作效果却始终不尽人意。

Google brain

2017 年  
Google Brain 团队发布了一个名为超强像素递归方案(Pixel Recursive Super Resolution)的 AI 系统,能提高像素乱化处理后的照片的分辨率。通俗地讲,就是能去除马赛克。

在上图中,右列是名人照片未经模糊化的原图,左列是被打码后的照片,分辨率仅有8×8像素。而中间是谷歌的 AI 解码处理后的效果,分辨率达到 32×32 像素,提升了 16 倍。

Google Brain 还原低分辨率照片基于两项核心工具。第一项是工具调节网络(conditioning network),通过海量人物面部照片来进行训练,让系统记忆学习到具有代表性的面部特征。另一项是工具优先网络(prior network),让系统基于之前的训练,猜测可以作为高分辨率照片的特征。

发者们通过深度学习让机器产生「联想」,以「猜测」的方式为被马赛克的色块增加细节,提升像素倍数,从而得出更清晰的画面。比起「还原」,还不如说这是 AI 靠强大的学习和计算能力「脑补」出了原图。

从应用角度来看,该系统最大的突破在于能够让 8×8 像素的模糊图片变得清晰一些,离更高清晰度的「解码」还有一段距离。

PULSE

杜克大学 2020 年 3 月 8 日在 arXiv 期刊
 中公布了不同于以往的超分辨率解决方案。这是 机器之心
 关于 PULSE 算法的一段关键描述:

PULSE 不从 LR 图像开始缓慢地添加细节,而是遍历高分辨率自然图像流形,搜索可以降级至原始 LR 图像的高分辨率图像。这一过程通过「降尺度损失」(downscaling loss)完成,它指引着在生成模型潜在空间中的探索。

通俗来说,PULSE 不是像拼图一样从 0 开始填补像素,而是快速生成高清大图然后降低图片分辨率与原始图片对比,从中找到匹配程度最高的图像的一种解决方案。这样的好处就是快速和生成的图片更加细腻。PULSE 算法可以在短短几秒内就把 16×16 像素的低分辨率图片提升到 1024×1024 级别,精度提升了64倍,同时可以将低分辨率图像中无法看清的毛孔、皱纹、头发等转换得清晰。

先放大再对比猜测,PULSE 算法可谓另辟蹊径。不过,靠猜测得到的图案毕竟不是原图,在还原过程往往得到清晰但跟原图大相径庭的图案。比如,我们将奥巴马的图像打码,再通过PULSE 算法还原,得到的居然是一张白人面孔。

对此,PULSE 算法创始人解释道:「结果的偏差,原因在于数据的偏差。为什么 PULSE 会出现奥巴马被洗白的情况?因为它是在 FlickFaceHQ 上进行预训练,这个数据集里基本都是白人照片。如果换成来自塞内加尔的数据集,训练完全相同的系统,那必然是每个人都看起来像非洲人。」

PULSE 解码生成的始终不是真实的原图。如果你打开 PULSE 的 Github 链接,在项目描述的第一段就有着清晰的描述:「我们已经注意到很多人担心 PULSE 将被用于识别面部被模糊化的个人。我们想强调的是,这是不可能的。PULSE 制作的是不存在的人的虚构面孔,不应该与真实的人混淆。它不会帮助识别或重建原始图像。」

Depix

除了识别人脸并去除马赛克,对于文字马赛克的处理也有对应的解码思路提出。

2022 年横空出世的 Depix
 就是能够从像素化截图中恢复密码的工具。该项目适用于使用线性方框滤波器(linear box filter)创建的像素化图像。如下图所示,项目作者给出了像素化图像、恢复之后的效果和原图的对比结果:

该算法利用了线性盒式滤波器分别处理每个块,对于每个块,它将对搜索图像中的所有块进行像素化以检查直接匹配。对于大多数像素化图像,Depix 设法找到单匹配结果。假设这些是正确的。然后,将周围的多匹配块的匹配进行比较,以在几何上与像素化图像中的距离相同的距离进行比较。匹配也被视为正确。重复此过程几次。正确的块不再具有几何匹配之后,它将直接输出所有正确的块。

不断重复这一过程,直到拼装出一张完整的拼图为止,达到去码的效果。Depix 拼图式的解决方案有一定效果,但网上众多开发者已经对其使用场景的限制有过总结:

  • 需要知道马赛克原始字符会有哪些可能。
  • 序列图像需要与马赛克图像原本的字符拥有相同字体设置(文本大小,字体,颜色,HSL)。
  • 只适用于英文、数字等字符序列的解码,不支持中文。

从解决思路和方案来看,Depix 其实是面对一种较为严苛的马赛克场景提出的针对性解决方案。图片被打码的部分像是一张被拆散的拼图,Depix 的任务就是在零散的拼图碎片中,通过算法找到最合适的一块,然后放到正确的位置里。

马赛克还安全吗

马赛克,因为其图片本身的不可逆性质,任何使用打码技术的用户应该建立好「完全去码是不可能的」这项基本认知。这也是上文中我们反复论证的结果。但不得不承认,不断进步的 AI 算法和日渐庞大的训练库,让用户对于打码后传播的图片也抱有一丝被「AI 猜出」后传播的心理风险。

关于这个问题,问一问同是 AI 技术出身的「ChatGPT 博士」,答案也许会有些启发。

在 ChatGPT 的总结中,可见其对于马赛克安全性的认知是比较到位的——不是完全安全,部分情况下信息可以被破解。在多次的问询中,还举例类似银行卡号、车牌号常见场景更容易被黑客破解。而在增强马赛克安全性的总结中,也体现了 AI 回答的全面性。

所谓道高一尺,魔高一丈,马赛克是否安全始终取决于用户打码的手段和方式。在传统影视新闻等传播媒体中,但凡需要打码的场景下,我们可以见到以下几种方案:

  • 实色遮盖
  • 高斯模糊
  • 马赛克

其中,实色遮盖是最稳妥和无法解析的方案不言而喻,比如早期的网络视频直接使用黑白色块大面积遮挡以保护隐私。高斯模糊的打码方案可以看做是主动丢失图像的大量细节,但还兼顾了部分内容观感的隐私保护解决方案。这在涉及到解放军战区的武器装备中经常被看到使用,原因在于高斯模糊的逆运算复杂度极高。马赛克则更像是折中的解决方案,在马赛克颗粒度细时观感破坏性不大,在马赛克粒度大时,隐私保护性能突出,总能根据场景找到合适的解决方案。

同时,从以上几种解码的「佼佼者」中,我们也不难得出通过 AI 和算法结合去码的技术方案日趋成熟,但还远远不够的结论。究其本质,靠「猜」始终是解码的核心解决方案,这意味着马赛克依然不能被完美的去除。Google brain 和 PULSE 算法看似很牛,但依然逃不过 AI 训练库不够丰富,猜测的结果合理但不准确的现实。类似 Depix 的解决方案看似可靠但使用场景单一。

知己知彼,百战百胜。增加打码时对隐私的破坏性,让内容失去规律,增加解码复杂度就是最好的打码方案。

正确的打码方式

实色遮盖、高斯模糊和马赛克都是增加 AI 破解复杂度的利器,利用好手头的工具追加以上任一效果甚至将多种打码方式结合在一起,都应该是防止隐私泄漏的常见手段。

iOS 自带的打码工具

回到上文提到的常见打码方式中,不仅要摒弃马克笔打码的行为更要用上趁手有效的打码工具。iOS 中的马赛克笔工具本来就是用来进行标记和划线,非要用的话,推荐使用 iOS 的标记功能进行打码,可以在编辑图片右下角的 + 添加色块来遮盖内容。

通过专业打码的 App 或图像处理软件进行打码,也是一种合适的图片打码处理方案。如果要让图片更加难以破解,可以选择打码后更换工具再进行二次打码。比如通过 A 工具高斯模糊后再用 B 工具追加马赛克,这样的图像打码方案更加纯粹和可靠。

最后

回到最初马赛克诞生的初衷,作为一种艺术形式,马赛克依然在建筑和艺术设计中占有一席之地。与此同时,也不要仅仅以为去除马赛克只是为了看清原本被刻意打上码的图片,去码技术在医学、刑侦等领域依然有着不可忽视的作用。

马赛克是武器,让人们免除隐私的泄漏,恰到好处地使用好这门打码的技术,可以保护我们免受隐私泄漏的风险。去码技术是人类以 AI 对抗模糊的武器,鼓励其发展,合理合法地使用好这门「武器」,更加是我们始终要坚守的底线。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/17222.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【面试】嵌入式C语言题目整理

【面试】嵌入式C语言题目整理 描述内存四区。 内存四区分为:代码区、静态区、堆区、栈区 代码区就是用来存放代码的。 静态区用来存放全局变量、静态变量、常量(字符串常量、const修饰的全局变量)。 堆区中的内存是由程序员自己申请和释放的&…

九、MyBatis动态SQL

文章目录 九、动态SQL9.1 if9.2 where9.3 trim9.4 choose、when、otherwise9.5 foreach9.6 SQL片段 本人其他相关文章链接 九、动态SQL 9.1 if 总结:根据标签中test属性所对应的表达式决定标签中的内容是否需要拼接到SQL中。 User getUserByParamsWithIf(User user…

Packet Tracer - 在思科路由器上配置 AAA 认证

Packet Tracer - 在思科路由器上配置 AAA 认证 拓扑图 地址分配表 设备 接口 IP 地址 子网掩码 默认网关 交换机端口 R1 G0/1 192.168.1.1 255.255.255.0 不适用 S1 F0/1 S0/0/0 (DCE) 10.1.1.2 255.255.255.252 不适用 不适用 R2 G0/0 192.168.2.1 255.2…

(四)Kubernetes - 手动部署(二进制方式安装)

Kubernetes - 手动部署 [ 3 ] 1 部署work node1.1 创建工作目录并拷贝二进制文件1.2 部署kubelet1.2.1 创建配置文件1.2.2 配置文件1.2.3 生成kubelet初次加入集群引导kubeconfig文件1.2.4 systemd管理kubelet1.2.5 启动并设置开机启动1.2.6 允许kubelet证书申请并加入集群 1.3…

JAVA-异常

文章目录 1.异常的体系1.3异常的分类 2.异常的处理2.2异常的抛出throw2.3异常的捕获2.3.1异常声明throws2.3.2 try-catch捕获并处理2.3.3 finally 2.4 异常的处理流程 3.自定义异常类 1.异常的体系 Throwable:是异常体系的顶层类,其派生出两个重要的子类…

人员拥挤检测系统 yolov5

人员拥挤检测系统通过YOLOv5网络模型算法技术,人员拥挤检测系统算法模型对校园/厂区车间/街道等场景的异常的人群聚集(出现拥挤情况)时,立刻抓拍存档并通知相关人员及时处理。在介绍Yolo算法之前,首先先介绍一下滑动窗…

ES是如何解决高可用

https://www.cnblogs.com/crazymakercircle/p/15433680.html ES是一个分布式全文检索框架,隐藏了复杂的处理机制,核心数据分片机制、集群发现、分片负载均衡请求路由。 ES的高可用架构,总体如下图: 说明:本文会以pdf…

Java 基础入门篇(一)—— Java 概述

文章目录 一、Java 概述二、Java 的产品 JDK2.1 JDK 安装2.2 Java与 Javac 介绍2.3 Java 程序的开发步骤 三、Java 程序的执行原理四、JDK 的组成五、Java 的跨平台工作原理 一、Java 概述 Java 是 sun 公司在 1995 年推出的一门计算机高级编程语言,其语言风格接近人…

深度学习卷积神经网络学习小结2

简介 经过大约两周左右的学习,对深度学习有了一个初步的了解,最近的任务主要是精读深度学习方向的文献,由于搭建caffe平台失败而且比较耗费时间就没有再尝试,所以并没有做实践方面的工作,本文只介绍了阅读文献学到的知…

外卖项目优化-02-mysql主从复制、读写分离(shardingJdbc)、Nginx(反向代理,负载均衡)

文章目录 瑞吉外卖项目优化-Day02课程内容前言1. MySQL主从复制1.1 介绍1.2 搭建1.2.1 准备工作1.2.2 主库配置1.2.3 从库配置 1.3 测试 2. 读写分离案例 (shardingJdbc)2.1 背景介绍2.2 ShardingJDBC介绍2.3 数据库环境2.4 初始工程导入2.5 读写分离配置2.6 测试 3. 项目实现读…

基于ATECLOUD的航电系统可灵活扩展自动化测试平台

随着电子技术的发展,航电系统在飞机整机中的重要性飞速提升。据统计,近年来航电系统在飞机出厂成本中的比例直线上升,航电系统研发成本已占飞机研制总成本的近30%,并保持着持续扩大的趋势。测试保障作为航电产业链至关重要的一环&…

基于JavaWeb实现的寻码网文章资讯管理系统

一、技术结构 前端:html ajax 后端:SpringBootMybatis-plus 环境:JDK1.8 | Mysql | Maven | Redis 二、功能简介 数据库与代码截图 后端管理-登录页 后端管理-首页 后端管理-文章管理-发布文章 后端管理-文章管理-文章列表 后端管理-文…

【iOS KVO(下) KVO的内部结构和源码】

前言 学习KVO的过程,我分为了KVO的实现过程分析和内部结构的学习,学习了实现过程,接下来看KVO是通过何种内部结构实现如此通知📢和监听。 1 KVO的存储结构 KVO的实现过程离不开合理的存储结构,用到了如下几个类 GS…

智能安防系统-视频监控系统

一、智能安防系统 1、智能安防系统介绍 安全防范系统成为了智慧城市与物联网行业应用中的一个非常重要的子系统。 安防系统主要包括:视频监控系统、入侵报警系统、出入口控制系统、电子巡查系统以及智能停车场管理系统等5个子系统。 AI人工智能安防系统功能&#xf…

Java8中DateTimeFormatter真的是线程安全的吗?

文章目录 [toc] 1.背景2.解决办法2.1办法一:换姿势或者升级JDK的版本2.1办法二:更换文件名称字生成策略 Java8中DateTimeFormatter真的是线程安全的吗? 答案是否定的 1.背景 由于之前写了一个旷世的ocr的服务,接入了旷世的FaceID的人脸比对…

C++笔记——第十六篇 异常

目录 1.C语言传统的处理错误的方式 2. C异常概念 3. 异常的使用 3.1 异常的抛出和捕获 在函数调用链中异常栈展开匹配原则 3.2异常安全 4.异常的优缺点 1.C语言传统的处理错误的方式 传统的错误处理机制: 1. 终止程序,如assert,缺陷&a…

04-Vue技术栈之组件化编程

目录 1、模块与组件、模块化与组件化1.1 模块1.2 组件1.3 模块化1.4 组件化1.5 传统方式编写应用1.6 组件方式编写应用 2、非单文件组件2.1 基本使用2.2 几个注意点2.3 组件的嵌套2.4 VueComponent2.5 一个重要的内置关系2.6 总结 3、单文件组件3.1 一个.vue 文件的组成(3 个部…

【玩转Git三剑客笔记】第一章 Git基础

第一章 Git基础 1.综述2.安装Git3.使用Git之前需要做的最小配置4.创建第一个仓库并配置local用户信息1.创建Git仓库2.设置Git最小配置 5.通过几次commit来认识工作区和暂存区1.将工作区中所有已经被git追踪的文件一起添加到暂存区2.git log查看提交日志 6.给文件重命名的简便方…

权限提升:不带引号服务路径 || 不安全的服务权限.

权限提升:不带引号服务路径 || 不安全的服务权限. 权限提升简称提权,由于操作系统都是多用户操作系统,用户之间都有权限控制,比如通过 Web 漏洞拿到的是 Web 进程的权限,往往 Web 服务都是以一个权限很低的账号启动…

探讨Redis缓存问题及解决方案:缓存穿透、缓存击穿、缓存雪崩与缓存预热(如何解决Redis缓存中的常见问题并提高应用性能)

Redis是一种非常流行的开源缓存系统,用于缓存数据以提高应用程序性能。但是,如果我们不注意一些缓存问题,Redis也可能会导致一些性能问题。在本文中,我们将探讨Redis中的一些常见缓存问题,并提供解决方案。 一、缓存穿…
最新文章