StegaStamp:加州大学伯克利分校开源神奇的照片隐写术,打印的照片能当二维码用
但二维码的设计毕竟是为了对算法友好,人眼看起来就丑了些。
一种天然的想法是,能否把信息嵌入到照片里去?想象一下如果给一张个人大头照,就可以自动提取里面的名片信息,或者扫个风景照就支付,那看起来就自然多了。
实际上用图像检索的方式可以在一定程度上实现上述功能,提取特征然后到服务器上匹配图像,把对应信息下载下来。
传统的AR(增强现实)就是这么做的。但这需要联网,而且对于纹理不丰富的图片,检索效果很差,也没有很好的信息校正机制。以前有一家国内电商用类似图像检索的方式做过拍书籍封面搜商品的应用,但用的人并不是很多。
深度学习时代,能否实现照片“隐写术“?
几天前看到一篇论文,感觉距离实现这个目标不远了。
论文题目《StegaStamp: Invisible Hyperlinks in Physical Photographs》,翻译一下就是“隐写邮票:自然照片中嵌入不可见超链接“,Stega有隐写术的意思。
这篇论文作者来自美国加州大学伯克利分校。
作者的想法就是把信息写入图像中,使打印出来的图片感知度不被破坏,同时拍摄打印的图片还能把信息解码出来!
下图把这个一目了然表达了出来。需要说明的是,作者论文中说不只是打印照片支持拍照再解码,显示在屏幕上也能拍照后解码。
作者的视频介绍:
细节的流程是这样的,如下图:
图像与要嵌入的信息经过神经网络编码成新的照片,经过打印或者屏幕显示后再拍摄,把得到的图像经过检测算法得到校正后的图像区域,该图像经过解码算法得到嵌入图像里的信息。
这个过程中,我们不免有疑问,信息嵌入会不会影响照片的视觉感知?另外,信息嵌入是可以,但经过打印或者再次成像后拍照,外界的环境变化可能很大,如何保证提取信息的鲁棒性?
在目前该文的算法中,嵌入信息过多的确会影响视觉感知,但作者实验嵌入100bits信息还是OK的。
下图展示了,嵌入信息后(第二列)与原始图像(第一列)的差异(第三列)。视觉上几乎难以分辨不同。
至于解决鲁棒性的问题,做法是在训练解码器的时候,模拟真实的图像质量退化模型对嵌入信息的图像做变换。如下图:
包括图像透视变换、模糊化、颜色操作、加噪声、JPEG压缩。
最终该文得到的效果还是很不错的!
在大多数情况下都能100%正确解码!
下图为更多图像的识别结果:
同时该算法对各种真实世界的环境影响均有鲁棒性。
这是对抗光照变化:
这是对抗视角变化:
这是对抗局部遮挡:
这是对抗光线反射:
更多结果请看:
是不是很神奇?!
这个算法感觉很有用,不知道作者申请了专利没有。
作者已经开源了代码:
https://github.com/tancik/StegaStamp
该项目主页:
http://www.matthewtancik.com/stegastamp
论文地址:
https://arxiv.org/abs/1904.05343
有了这个技术,很多有趣的东西可以做出来,它不仅可以作为超链接,还可以在用户不知情的情况下对照片和屏幕嵌入信息。。。
支持CV君的分享,请文末点个“在看“吧~