V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
zzy8200
V2EX  ›  分享创造

抗压缩 抗缩放 抗轻度 PS 抗微信非原图 图片加密隐写

  •  2
     
  •   zzy8200 ·
    zeruniverse · 2020-07-10 12:24:07 +08:00 · 3530 次点击
    这是一个创建于 1593 天前的主题,其中的信息可能已经有所发展或是发生改变。

    重新写了一下( 90%+ code) https://www.v2ex.com/t/391928

    现在能做到色块不那么明显,更抗压缩。另外新增可以抗重度缩放 抗轻度 PS 。 这次写 code 加了很多注释,欢迎各位拿去做二次开发。

    原图: maple

    写入数据后进行微信非原图压缩:

    maple

    如果允许色块再明显一点可以写入后进行轻度 PS, 比如苹果手机风格化:

    maple

    如果允许色块非常明显还可以抗重度缩放:

    maple

    前面三张图均能读出正确数据。

    DEMO: http://stego.js.org/

    GITHUB: https://github.com/zeruniverse/CryptoStego

    16 条回复    2020-07-13 15:33:55 +08:00
    designer
        1
    designer  
       2020-07-10 12:36:15 +08:00 via iPhone
    支持了
    jdhao
        2
    jdhao  
       2020-07-10 13:18:36 +08:00 via Android
    厉害了
    GPU
        3
    GPU  
       2020-07-10 14:54:38 +08:00
    上面三张图 jpb 我试了都不能读出数据,GitHub 上面的 png 就可以读出。
    MinQ
        4
    MinQ  
       2020-07-10 15:21:31 +08:00
    抗翻拍不?
    kop1989
        5
    kop1989  
       2020-07-10 15:26:46 +08:00
    赞,之前看过类似的数码水印技术。之前看的那个是直接通过转换可以显示人类可读的图像,可抗翻拍、抗裁切。不知道你这个原理是不是在可读图像基础上加了 ocr ?
    zzy8200
        6
    zzy8200  
    OP
       2020-07-10 15:32:55 +08:00 via iPhone
    @GPU 要选 level,上面三张分别是 level 2,3,5
    zzy8200
        7
    zzy8200  
    OP
       2020-07-10 15:34:29 +08:00 via iPhone
    @kop1989 不是 两个不一样。我这个是直接把文字编码写进去的,不是写字的形状
    kop1989
        8
    kop1989  
       2020-07-10 15:38:00 +08:00
    @zzy8200 #7 👍,能不能大概说说编码的这种和绘制隐藏水印图像的,相对而言你认为哪个抗干扰能力更强
    zzy8200
        9
    zzy8200  
    OP
       2020-07-10 15:44:13 +08:00 via iPhone   ❤️ 1
    @kop1989 一定是水印更强啊,毕竟形状你怎么剪,怎么转,或者中间几笔断了,人都能认出来。编码的话错一个 bit 数据就不对了
    kop1989
        10
    kop1989  
       2020-07-10 15:46:22 +08:00
    @zzy8200 #9 受教了
    zzy8200
        11
    zzy8200  
    OP
       2020-07-10 16:30:24 +08:00 via iPhone
    不抗。位置信息必须完全一致,所以也不抗裁剪。这个问题对隐写较难,可能你需要的是图片水印。
    zzy8200
        12
    zzy8200  
    OP
       2020-07-10 16:31:19 +08:00
    @MinQ 回复见#11
    vertigo
        13
    vertigo  
       2020-07-10 17:28:32 +08:00
    巧了,我前段时间也写了一个同样内容的小程序,用来做 BwaterMark 的,但是有一种攻击很蛋疼,就是电脑截图,几乎完全对抗加密的,楼主有方法嘛
    vertigo
        14
    vertigo  
       2020-07-10 17:29:27 +08:00
    @MinQ 手机拍屏幕无论在 github 还是百度贴吧,都是人人喊打的操作,肯定不可能
    zzy8200
        15
    zzy8200  
    OP
       2020-07-11 01:48:44 +08:00 via iPhone
    @vertigo 水印的话可以好解很多,毕竟不需要机读。翻拍强行要搞定是可以搞定的,应该有 deep learning 方法
    no1xsyzy
        16
    no1xsyzy  
       2020-07-13 15:33:55 +08:00
    @zzy8200 #9 其实 @kop1989 #5 提到的那个方法更抗各种操作,因为那个方法不是字形直接写上去,而是叠在频域里的,所以可以抗裁剪,因为裁剪不会很明显地影响频域信息。
    抗缩放抗裁剪抗滤镜,不过还是不抗翻拍,因为摩尔纹+扭曲变形,一旦翻拍不太可能再找出频语水印。
    你这个倒是可以用一些方式去做 calibration 复原,根本用不到 Deep Learning……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5367 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 07:20 · PVG 15:20 · LAX 23:20 · JFK 02:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.