点击 机器学习算法与Python学习 选择加星标

精彩内容不迷路

来源:机器之心

像素化(又称马赛克)是一种常见的打码方式,通过降低图像中部分区域的分辨率来隐藏某些关键信息,比如:

再比如:

看图找马赛克!(找不到请看右侧原图)

但是,在你想隐藏信息的同时,有一些技术却反其道而行之,试图将图片还原为原始状态。

最近,一个名为 Depix 的 GitHub 项目爆火,上线三天 star 量已经高达 6.9k。项目作者 Sipke Mellema 是一名信息安全顾问。

项目地址:

https://github.com/beurtschipper/Depix

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

马赛克打得够严实了,不过 Depix 还是基本解读出了被隐藏的信息。

如何使用

使用 Depix 从像素化图像截图中恢复文字密码,操作也比较简单:

  • 从截图中分割出矩形像素化 block;

  • 在具有相同字体设置(包括文本大小、字体、颜色、hsl)的编辑器中,粘贴待处理字符的德布鲁因(De Bruijn sequence);

  • 给该序列截图,尽可能使用和像素化图像相同的截图工具;

  • 执行命令:

python depix.py -p [pixelated rectangle image] -s [search sequence image] -o output.png

Depix 算法利用线性方框滤波器单独处理每一个 block 这一事实。它对搜索图像中的每一个 block 执行像素化以寻找直接匹配。

对于大部分像素化图像,Depix 尽量寻找单匹配结果,并假设这些匹配是正确的。至于周围多匹配 block 的结果被看作像素化图像中相同的几何距离,并认为这些匹配也是正确的。该过程重复多次。

在正确的 block 没有更多几何匹配后,Depix 将直接输出所有正确的 block。对于多匹配 block,Depix 将输出所有匹配的平均值。

Depix 背后的算法

像素化常使用线性方框滤波器实现。线性方框滤波器的实现很简单,速度很快,可以并行处理多个 block。

由于线性方框滤波器是一种确定性算法,对同样的值执行像素化通常会产生同样的像素化 block。使用同样位置的 block 对相同文本执行像素化,会得到同样的 block 值。我们可以尝试像素化文本来找出匹配的模式。幸运的是,这对于秘密值的一部分同样奏效。我们可以把每个 block 或 block 组合看作一个子问题。

项目作者没有选择创建潜在字体的查找表。该算法要求在相同背景上具备相同的文本大小和颜色。现代文本编辑器还会添加色调、饱和度和亮度,也就是说存在海量潜在字体。

项目作者给出的解决方案也很简单:使用待处理字符的德布鲁因序列,将其粘贴到相同的编辑器中,然后截图。该截图可以用作相似 block 的查找图像,例如:

德布鲁因序列包括待处理字符的所有双字符组合。这很重要,因为一些 block 会重叠两个字符。找出恰当的匹配需要搜索图像中具备相同像素配置的 block。

在以下测试图像中,Depix 算法无法找到「o」的一部分。这是因为在搜索图像中,搜索 block 还包含下一个字母(「d」)的一部分,但在原始图像中这里有个空格。

创建字母的德布鲁因序列时加上空格显然会带来同样的问题:算法无法找到后续字母的恰当 block。有空格又有字母的图像需要更长的搜索时间,但结果也更好。

对于大部分像素化图像而言,Depix 似乎能够找到 block 的单匹配结果,并假设这是正确的。然后将其周围多匹配 block 的匹配结果看作在像素化图像中处于相同的几何距离,并假设这些匹配也是正确的。

在正确的 block 没有更多几何匹配后,Depix 直接输出所有正确的 block。对于多匹配 block,Depix 将输出所有匹配的平均值。虽然 Depix 的输出并不完美,但已经算不错了。

下图展示了包含随机字符的测试图像的去像素化结果,大部分字符被正确读取:

对这个项目感兴趣的读者,可以自行尝试。

以后截图时给敏感信息打码,看来不能简单地用「马赛克了」。

参考链接:https://www.linkedin.com/pulse/recovering-passwords-from-pixelized-screenshots-sipke-mellema/?trackingId=yYFSUnuxRXasNV%2Fh3ZsiSw%3D%3D


  • 你点的每个“在看”,我都认真当成了AI

打马赛克就安全了吗?AI消除马赛克,GitHub霸榜相关推荐

  1. 本周AI热点回顾:AI消除马赛克神器公布;Github黑暗模式正式发布;「中国AlphaFold」创生!

    点击左上方蓝字关注我们 01 打马赛克就安全了吗?AI消除马赛克,GitHub开源项目上线三天收获近7000星 像素化(又称马赛克)是一种常见的打码方式,通过降低图像中部分区域的分辨率来隐藏某些关键信 ...

  2. CSDN开发者周刊第 20 期:Google 下一代操作系统 Fuchsia 源码正式公开;AI 消除马赛克 效果惊人

    CSDN开发者周刊:只为传递"有趣/有用"的开发者内容,点击 Star(CodeChina)! 本周热门项目 1.红帽停止维护 CentOS 8,创始人另起炉灶 12 月 8 日, ...

  3. 敲代码、作诗、写论文无所不能!史上最大AI模型GPT-3强势霸榜Github

    最近,GPT-3火了!相信你已经在网上看到各种有关GPT-3的演示.这个由OpenAI创建的大型机器学习模型,它不仅可以自己写论文,还会写诗歌,就连你写的代码都能帮你写了. 下面还是先让你看看GPT- ...

  4. 2022 斯坦福AI报告:中国霸榜AI顶会,但引用量最低

    CVPR 2022 | 最全25+主题方向.最新50篇GAN论文汇总 本文 新智元 编辑:桃子 时光 [新智元导读]2022年人工智能指数报告发布了!这份报告中,中国在AI顶会论文上表现不凡,但在引用 ...

  5. 打马赛克就安全了吗?AI消除马赛克,GitHub开源项目上线三天收获近7000星

    来源:机器之心 本文约1500字,建议阅读5分钟 还在用马赛克的方式隐藏密码?小心被「看穿」. 像素化(又称马赛克)是一种常见的打码方式,通过降低图像中部分区域的分辨率来隐藏某些关键信息,比如: 再比 ...

  6. pulse 去马赛克软件_打马赛克就安全了吗?AI消除马赛克,上线三天收获近7000星...

    机器之心报道 作者:魔王.小舟 还在用马赛克的方式隐藏密码?小心被「看穿」. 像素化(又称马赛克)是一种常见的打码方式,通过降低图像中部分区域的分辨率来隐藏某些关键信息,比如: 再比如: 看图找马赛克 ...

  7. 打马赛克就安全了吗?GitHub热榜的“AI消除马赛克”,上线三天收获近万star

    还在用马赛克的方式隐藏密码?小心被「看穿」. 像素化(又称马赛克)是一种常见的打码方式,通过降低图像中部分区域的分辨率来隐藏某些关键信息,比如: 再比如: 看图找马赛克!(找不到请看右侧原图) 但是, ...

  8. 你还在以为打马赛克就安全了吗?AI消除马赛克,GitHub开源项目上线三天收获近7000星

    还在用马赛克的方式隐藏密码?小心被「看穿」. 像素化(又称马赛克)是一种常见的打码方式,通过降低图像中部分区域的分辨率来隐藏某些关键信息,比如: 再比如: 看图找马赛克!(找不到请看右侧原图) 但是, ...

  9. 一键服务端是什么意思_一键消除马赛克和圣光?这类软件能否在未来成为二次元宅男的福音...

    导读:看到一个有意思的话题,这里也分享给大家.主要介绍了一款关于一键消除马赛克和圣光的软件,如果有实际效果的话,可以说解决了很多人心中的"难题".这类软件,能否在未来成为二次元宅男 ...

最新文章

  1. JSF Tree学习...
  2. MyEclipse完好提示配置
  3. Java LinkedList公共对象peek()方法(带示例)
  4. 修改Firebug字体
  5. Linux静态库与动态库详解
  6. 项目源码--Android聚合视频类播放器
  7. 弹幕助手连接不到服务器,小葫芦obs弹幕助手怎么用 OBS弹幕助手使用教程
  8. 5 月最大的 GameFi 崩溃受害者能否在熊市中生存?| May Monthly Report
  9. Aras innovator: 如何搜索指定长度的字符串
  10. AMD处理器与INTEL的区别
  11. 如何扩展关键词,以及使用python多线程爬取bing搜索结果
  12. Flutter踩坑之flutter doctor --android-licenses报错
  13. python永久配置pip下载镜像源方法(window版本)
  14. 数据链路层概述(主要解决的三个问题)
  15. Derivation of Linear Regression with Multiple Variables
  16. nginx 如何使用rewrite
  17. 论不良贷款拨备覆盖率的局限性和建议
  18. IBM WebSphere Portal宕机或性能低常见问题分析 及解决措施
  19. 51Nod - 1588 幸运树(DFS)
  20. SW4STM32编译Decawave原始工程

热门文章

  1. java调用百望税控NISEC_SKSC.dll发送xml报文
  2. 如何用计算机打出平方,平方符号在电脑怎么打出来(电脑输入平方符号的2种方法)...
  3. AD7606 SPI模式 网上问题汇总
  4. Iphone 开发播放音频无声音
  5. 前端Hack之XSS攻击个人学习笔记
  6. 【Java】解决 java:错误:编码GBK的不可映射字符
  7. ssm药品大全网站的设计与实现毕业设计源码281128
  8. C++async、future、packaged_task、promise的使用
  9. 合天网安实验室CTF练习赛之RE300
  10. illumina测序的一些注意事项