最新公告
  • 欢迎光临数据科学与编程,我们是数据学科学兴趣交流小组立即加入我们
  • AI消除马赛克,github上三千星标的项目

    还在用马赛克的方式隐藏密码?小心被「看穿」。

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

    打马赛克就安全了吗?AI消除马赛克,上线三天收获近7000星

    再比如:

    打马赛克就安全了吗?AI消除马赛克,上线三天收获近7000星

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

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

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

    打马赛克就安全了吗?AI消除马赛克,上线三天收获近7000星

    项目地址:https://github.com/beurtschipper/Depix

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

    打马赛克就安全了吗?AI消除马赛克,上线三天收获近7000星

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

    如何使用

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

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

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

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

    执行命令:

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

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

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

    Depix 背后的算法

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

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

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

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

    打马赛克就安全了吗?AI消除马赛克,上线三天收获近7000星

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

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

    打马赛克就安全了吗?AI消除马赛克,上线三天收获近7000星

    创建字母的德布鲁因序列时加上空格显然会带来同样的问题:算法无法找到后续字母的恰当 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

    来源:

    机器之心https://www.toutiao.com/a6904110713938231816/

    打马赛克就安全了吗?AI消除马赛克,上线三天收获近7000星
    本站上原创文章未经作者许可,不得用于商业用途,仅做学习交流使用,本站免责声明。转载请注明出处,否则保留追究法律责任的权利。《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
    数据科学与编程 » AI消除马赛克,github上三千星标的项目

    发表评论

    • 52会员总数(位)
    • 320资源总数(个)
    • 25本周发布(个)
    • 3 今日发布(个)
    • 333稳定运行(天)

    提供最优质的博文资源集合

    立即阅览 了解详情