日常中我们想要隐藏密码或其他敏感文本数据时怎么做呢?我们通常对内容进行像素化(也称为马赛克),像素化的原理是减少图像中敏感区域的清晰度以遮盖信息。然而,随着现代计算机视觉和人工智能技术的不断发展,像素化(打了马赛克)处理后的内容真的安全吗?今天给大家介绍一款开源去马赛克工具Depix,强大到不可想象,能够将经马赛克处理过的内容进行还原。实现效果如下:
Depix是一款用于从像素化的屏幕截图中还原密码的工具。它的实现原理是专门针对使用线性盒式滤波器创建的像素化图像而设计的。
Depix Github地址:https://github.com/beurtschipper/Depix
Depix 工具是用Python语言开发的,所以我们先要安装依赖库。
pip install git+https://github.com/beurtschipper/Depix
依赖库装好后,我们直接命令调用即可。
# 用法:
# -p 打过马赛克后的图片输入项
# -s Depix工具的模型字库
# -o 经过Depix处理后还原的图片
depix \
-p /path/to/your/input/image.png \
-s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png \
-o /path/to/your/output.png
示例一:对使用记事本创建并使用Greenshot进行像素化的示例图像进行还原。Greenshot 是通过对伽玛编码的 0-255 值进行平均来进行处理,用的Depix默认模式。
depix \
-p images/testimages/testimage3_pixels.png \
-s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png
输出结果:
示例二:对使用Sublime创建并使用Gimp 像素化的示例图像进行还原,其中以线性sRGB进行处理。backgroundcolor选项会过滤掉编辑器的背景颜色。
depix \
-p images/testimages/sublime_screenshot_pixels_gimp.png \
-s images/searchimages/debruin_sublime_Linux_small.png \
--backgroundcolor 40,41,35 \
--averagetype linear
输出结果:
它的算法是利用线性盒滤波器单独处理每个块。然后对每个块都会搜索模型字库图像中的所有块进行检查匹配。
对于大多数像素化的图像图像来说,Depix会设法找到单匹配结果。它假设这些是正确的,然后将周围多重匹配块的匹配再进行比较,使其在几何上与像素化图像中的距离相同。匹配也被视为正确。这个过程重复几次。
当正确的块不再有几何匹配时,将直接输出所有正确的块。对于多匹配块,它输出所有匹配的平均值。该算法利用线性盒滤波器单独处理每个块的事实。对于每个块,它都会对搜索图像中的所有块进行像素化以检查直接匹配。
Depix目前只适用于很严苛的很少一类,且只能识别英文单词,对汉字还不支持。但Depix的出现引起了人们对信息安全的关注,它揭示了传统像素化方法的局限性,特别是在处理敏感信息时。所以你现在还认为打过马赛克隐藏的内容信息安全吗?