当前位置 : 主页 > 编程语言 > 其它开发 >

文字隐写术-盲水印研究笔记【原创】

来源:互联网 收集:自由互联 发布时间:2022-06-15
blind watermark 盲水印技术实现,这里主要引用网上三种java实现的效果测试和研究。可以将文字隐藏在图片中,通过提取还原水印,实现版本保护效果。开源代码: https://gitee.com/chejiangyi/
blind watermark 盲水印技术实现,这里主要引用网上三种java实现的效果测试和研究。可以将文字隐藏在图片中,通过提取还原水印,实现版本保护效果。 开源代码: https://gitee.com/chejiangyi/shuiyin/tree/master gitee 开源代码(java) https://gitee.com/chejiangyi/shuiyin/tree/master   需求概述 研究盲水印对于版权保护的效果和能力   研究尝试概述 水印实现: 大部分的python或者java算法都基于频域的盲水印效果。 涉及的算法: 傅里叶变换。 开源相关: 大部分是python算法居多,也有java的一些傅里叶实现,少部分其他语言实现。 涉及的框架: opencv (用来处理图片)   图片盲水印方式 1. 二维码(本质是图片) 盲水印(未尝试) 2. 图片盲水印(初步尝试,未深入,初步效果不佳) 3. 文本盲水印(已尝试)   图片盲水印:初步尝试一个傅里叶算法,发现在截图等复杂场景干扰下,似乎没有文本盲水印抗干扰能力强;但是没有深入印证其他多种算法效果。 文本盲水印:经过几轮尝试,发现文本盲水印会效果好,但是在一些场景下图片会有一些失真(对比原图),色泽会变浅。 在其他抗干扰(截图,缩放,涂改)情况下效果还可以。图片失真的情况,在不同傅里叶算法中,效果不一样,有些不失真,但是效果抗干扰能力差。   文本盲水印尝试详解 一. 目前java 有三种demo沉淀 第一种:   第二种:

第三种:

  整体算法代码行不多,核心在于算法本身,具体算法实现原理网上论文很多,但是真正能商用的效果不好。 dct 一般用于图片算法,dft 一般用于文本算法,当然文本也可以以图片的方式显示中文。 三种总体效果都差不多,但是在干扰情况下差异还是很大的。 引用网上的一段盲水印的注意点描述:   目前没有用真实的图片效果和实际场景做测试,从而排除额外的一些情况,所以没办法确定真实的场景是否有效,或者是否可以规避一些不可能存在的实际场景。初步与产品确认,测试效果还可以,但不是很理想,比如一些截图30%,20%的情况下,部分图片信息无法有效还原“盲水印”。一些非原图处理(比如采用微信和飞书截图)之后,图片变成jpg压缩,此时盲水印可能无法有效还原检测,原图或者加水印后的图尽量都使用png或者bmp。加水印后,图片会有略微明显的色泽变化(但是其中有些算法好像变化不大,没有大范围细节测试,但是这种情况带来抗干扰能力差较多)。 二. 目前python 效果测试 python 是目前盲水印算法最多的案例和demo,在github上发现一些python算法一般加的是图片盲水印(非文字盲水印),但是没有详细测试效果(主要是没精力)。网上fork数或者关注数多的盲水印,实际测试效果并不佳。比如:https://github.com/guofei9987/blind_watermark 这个盲水印可以支持文字隐藏,但是实际进行截图和干扰的时候发现文字水印无法如期提取,跟实际描述的文档有较大差异,可能是姿势不对。其他的水印效果未深入,未来有更多精力后再深入投入实际场景做验证。 三. 云服务测试 目前云服务中支持的,主要有七牛云和腾讯云,七牛云更偏图片处理,所以用七牛云做测试(腾讯云未测)但是实际效果也不是很理想。 七牛云盲水印恢复靠的是原始图片(可能是通过水印图和原始图对比),从而恢复水印(这种手法可能要与产品商量实际场景行不行),同样也有version 3第三种算法实现盲水印,可以在水印图中提取水印。经过测试version 3的实现,在图片截图和缩放等干扰情况下,恢复水印的能力会差很多,丢失的信息更多,不如网上的一些开源算法,所以云服务效果不尽如意。 总结笔记 盲水印总体效果不是很成熟,但是作为辅助版权验证应该还是可以的(除了图片会增加一些大小),关键还是在于实际业务场景。 同时自身也不是图片处理相关专家,很多细节和参数也不敢调整,也无法真正有效结合实际业务场景发挥和调优算法。 所以真正落地盲水印,后续需要在几个方面努力: 1)需要专职的一名图片处理专家或者外聘专家支援。 2)大量的实际场景的图片和用户干扰的案例图做多次验证。 3)通过机器学习进行算法参数调优。   测试效果示例 常用案例测试: 实际案例测试: 盲水印部分截图干扰测试: 盲水印部分截图/缩放干扰测试:   参考资料 隐性水印或是叫盲水印软件介绍 https://ningbocat.com/post/1613.html 有意思的数字盲水印的简单的实现 https://www.cnblogs.com/Imageshop/p/10097854.html opencv https://opencv.org/ 隐写术 https://www.jianshu.com/p/08041bcf0f23 隐藏水印几个注意点 https://blog.csdn.net/linyacool/article/details/71506638   java 水印代码 https://github.com/ww23/BlindWatermark/ https://github.com/maohuihua123/BlindWatermark https://github.com/aaronwong1989/blind-watermark https://github.com/hanbings/moe-mark   python https://github.com/guofei9987/blind_watermark jpg截图等场景下几乎无法还原。 https://github.com/fire-keeper/BlindWatermark 非文字水印   第三方云服务 七牛云 https://developer.qiniu.com/dora/5915/blind-watermarking-processing 腾讯云 https://cloud.tencent.com/document/product/436/46781       by 车江毅 2022-6-13 开源是一种态度,分享是一种精神,学习仍需坚持,进步仍需努力,.net生态圈因你我更加美好。
网友评论