进化的隐藏水印:深度学习提升版权保护的鲁棒性
一、前言
过去几年,以网络视频为代表的泛网络视听领域的崛起,是互联网经济飞速发展最为夺目的大事件之一。泛网络视听领域不仅是21世纪以来互联网领域的重要基础应用、大众文化生活的主要载体,而且在推动中国经济新旧动能转化方面也发挥了重要作用。据中国网络视听节目服务协会发布的《2021中国网络视听发展研究报告》显示,截至2020年12月,我国网络视听用户规模达9.44亿,2020年泛网络视听产业规模破6000亿元。然而,
自泛网络视听诞生之初,盗版如同一颗毒瘤一样蔓延滋长,危害与日俱增,加强网络版权保护,任务紧迫而艰巨。
版权保护技术是指针对盗版侵权行为的确权存证以及监测、取证等技术。当前,区块链、人工智能、数字水印等版权保护应用主要集中在版权确权、监测、取证等环节;
其中数字水印技术在版权确权、版权监测环节有着重要应用价值 ,数字水印具有查找侵权、追根溯源的能力,相比其他技术可以进一步实现对侵权行为的追踪溯源。
数字水印技术是将版权信息、唯一标识信息等以可见或不可见的方式嵌入数字作品载体中,用于证明作品来源。其中不可见的隐藏水印,具有肉眼不可发现但算法可以检测的特性,能够抵抗一定程度的剪切、拼接和编辑等操作。然而,随着盗版技术的不断升级,传统隐藏水印技术在复杂攻击场景中的鲁棒性面临着更加艰巨的挑战。攻击者可以通过复杂多样的编辑处理技术破坏被保护载体中所隐藏的版权信息,使得版权水印提取失效。本文针对这一问题,
分享一种使用深度学习技术来加强隐藏水印的鲁棒性的方法;如下图所示,该技术能够在高效、轻量的计算下,有效的提升隐藏水印技术在多种复杂攻击下的鲁棒性
二、技术背景
1. 隐写术( Steganography )
隐写术一般指的是向图像或者视频等信息载体中嵌入隐秘信息,其中大部分隐写术算法都是基于空域等知识进行信息嵌入。近年来图像隐写术的发展也是层出不穷,从最早期的LSB、LSB-
Match到内容自适应隐写术:HUGO[1](空域自适应隐写算法)、WOW[2]、SUNIWARD[3],再到如今的深度学习隐写术。
隐写算法已经可以自动的将隐秘信息嵌入到纹理、噪声丰富的图像区域,并保持复杂的图像高阶统计特性。
2. 隐写分析( Steganalysis )
隐写分析是通过对图像的统计特性进行分析,判断图像中是否隐藏有额外的信息甚至估计信息嵌入量、获取隐藏信息内容的技术。
目前的隐写分析研究领域通常将隐写分析看成一个二分类问题,目标是区分载体图像和载密图像
。下图展示隐写分析的例子(图例来自数据集BOSSbase_1.0.1)。

左图为载体图像,中间为载密图像,右图为差异图像(载体图像与载密图像之间的差异图像)。
隐写分析方法一般分为两类。一类是 基于传统特征的图像隐写分析方法
,这一类方法主要包含特征提取、特征增强和特征分类器三部分;其中特征提取与增强部分对于后面训练分类器有着决定性的作用,且特征选择非常依赖于人工,存在耗时长、鲁棒性差等缺陷,代表的隐写分析模型有
SPAM[4]、SRM[5]、DCTR[6]等。另一类方法 是基于深度学习的隐写分析方法 ,模型主要分为 半学习模型和全学习模型
。半学习模型依靠SRM的30个滤波核作为预处理层来进行网络的学习,代表的网络有Xu-Net[7]、Ye-
Net[8]等。全学习模型则完全依靠深度神经网络强大的学习能力从纷繁复杂的像素信息中学习到重要的残差特征信息,代表的深度网络SRNet[9]等。全学习深度网络在检测精度上要优于半学习深度网络并且更具有鲁棒性。
3. 数字水印( Digital WaterMarking )
数字水印技术是指将特定的编码信息嵌入到数字信号中,数字信号可能是音频、图像或是视频等。若要拷贝有数字水印的信号,所嵌入的信息也会一并被拷贝。数字水印技术是一种基于内容的、非密码机制的计算机信息隐藏技术,是保护信息安全、实现防伪溯源、版权保护的有效办法。数字水印一般分为明水印和隐藏水印。
隐藏水印通过在载体数据(音频、视频等)中添加隐藏标记,在一般情况下无法被人眼以及机器所辨识。隐藏水印的重要应用之一就是保护著作权,期望能借此避免或阻止数字媒体未经授权的复制和拷贝。
4. 水印检测
隐藏水印信息检测的方法一般有两种。一种是 基于自相关的检测方法 ,这种方法是根据水印嵌入算法提出的相关函数生成对应的检测算法,另一种则是
利用模版匹配的方法
,该方法利用图像处理中模板匹配的思想,在添加水印时制定一个模板,通过模板来添加水印;在检测水印时,在待测图像上使用模板进行相似度计算;当相似度超过设定的阈值时便认定检出水印,反之则无水印。
5. 联系与区别
隐写术&隐写分析 (Steganography &Steganalysis):隐写术更注重于 嵌入信息的隐蔽性
,即如何嵌入才能让载密图像无法被敌手察觉异常,通常载密图像在通讯中是无损的;
隐写分析则期望在载体数据无损的情况下,判断一张图像是载密图像还是原始图像。
数字水印 (Digital WaterMarking) 更注重 嵌入信息的 鲁棒性
,含水印信息的载体在传播过程中会受到诸如:压缩、裁剪、放缩、剪辑等攻击。需要保证在面对这种攻击情势下,数字水印仍然可以保持有效性,这是版权保护的一个重要前提。
三、深度学习识别隐藏水印
与数字隐写相比, 隐藏水印除了要求水印的隐蔽性,还更加注重水印信息的鲁棒性
。隐藏水印载体在真实场景下中会遇到很多复杂且未知的攻击,这通常会导致水印信息的部分或整体特征被破坏,最终导致水印信息无法被检测或者完整提取。传统的水印检测方法多是基于相关性检测、模版提取等方法确定载体中是否有水印。这些方法在面对复杂攻击时效果较差,而且不同隐藏水印添加的特征多种多样,因此针对特定水印方法设计单独的分析检测方案耗时费力。深度学习在处理这些问题上则天生具有优势,
我们可以在训练过程中模拟现实攻击提升鲁棒性,使用多种水印算法数据混合提升模型的泛化能力。
1、数据集构建
由于传统数据集存在训练图片尺寸单一、数据量级小等缺陷,我们构建了一个包含1000个视频和20w张图片的原始载体数据集;载体数据集中尽量保证了数据多样化与多元化,包含了电影、人物、风景、科技、音乐、卡通等多种不同风格的视频和图像。
我们在该数据集上制作隐藏水印数据集,隐藏水印数据集中包括了多种视频和图像水印算法,最终我们将原始载体集和水印集进行合并作为我们的训练集 。
数据集的质量直接影响到模型最终的表达能力。因此我们对训练集进行了清洗,我们使用多种图像质量模型对载体质量进行了过滤和清洗。为了充分验证模型的泛化能力,
我们使用现实场景中积累的真实数据作为验证集,并对其进行标注和扩增,在验证集上应用一些复杂的变换来模拟现实中的复杂且未知的攻击形式 。
2、模型训练
2.1 模型
从精度以及性能两个方面的指标来考虑,我们选用轻量级神经网络MobileNetV3[10]系列中的MobileNetV3_small和MobileNetV3_large作为备选模型,并针对水印识别任务对模型架构进行调整,以使其更适合该任务。MobileNet系列模型不论从精度还是性能都在各类计算机视觉任务上展现出了优异的成绩,它使用深度可分离卷积来构建轻量级的深层神经网络,能够在延迟度和准确度之间有效地进行平衡。为了比较计算机视觉领域的深度模型与图像隐写分析深度模型之间的差异,我们同时选用SRNet作为备选模型之一。
下表是对选定的三个备选模型进行前置训练(相同实验环境下)在测试集上的结果,我们从模型的性能方面与精度方面进行综合考察。可见MobileNetV3_large不论在精度和速度上都要比SRNet要更胜一筹。因此选用MobileNetV3_large模型作为识别隐藏水印的基础模型。
2.2 训练
隐藏水印检测的鲁棒性是我们最关心的指标,盗窃者在盗窃作品后可能会对作品进行一系列的改造、混淆与变换。这也就意味着我们的
隐藏水印会面临着多种多样的攻击形式,比如常见的有平移、翻转(镜像)、高斯模糊、颜色抖动、仿射变换、随机裁剪等,复杂的形式有拼接、图像混合、图像剪切粘贴、信息压缩、格式转化等
。为了提升模型在检测时对这些变换手段的鲁棒性,我们在训练阶段尽可能的模拟数据在网络传输中可能遇到的攻击变换形式来进行数据增强,进一步提升模型的泛化能力。下表展示了不同数据增强情形下对于模型在验证集上的泛化能力。

最终我们在训练阶段 使用混合的数据增强形式 ,
对于数据先进行概率性的翻转处理、平移填充、不同比例压缩、图像混合等处理,最后再将数据进行随机裁剪处理
,并保证在经过数据变换后要保证数据中还包含隐藏水印特征。
3. 泛化性
合适的优化器配上合适的学习率衰减策略能够加速模型的收敛速度以及学习特征的能力。我们
使用带有权重惩罚项的Adamw优化器搭配上余弦退火衰减策略在测试集以及验证集上获得了不错的精度
。我们在收集到的训练集上使用Adamw优化器以及CosineAnnealingWarmRestarts学习率衰减策略对MobileNetV3_large模型进行训练。在测试集上达到了97.15%的准确率。
在面临多种未知组合攻击的业务场景下,我们的模型整体达到了92.08%的准确率;
在将水印检测模型与水印提取模型串联时,能够在不牺牲精度的情况下提升2倍以上的水印处理速度 ;在并联时,能够显著提升复杂攻击场景下的水印算法的鲁棒性。
四、总结
数字水印技术是保护创作者的合法权益的重要手段。为了逃避侵权风险、谋求利益,盗版者会通过多种方法对原创作品进行编辑,这就要求添加的数字水印能够在这种未知情形下仍然能发挥作用持续的为创作者保驾护航。当载体数据受到恶意修改时可能会导致其中的水印无法识别,这将严重影响版权保护技术的鲁棒性。
而深度学习技术可以让模型理解隐藏水印中人类无法感知的特征,能够帮助我们召回那些被破坏的数字水印信息,有效地提升隐藏水印技术在真实场景中的鲁棒性和可靠性。
本文提及的算法均已在抖音、飞书、今日头条、西瓜视频中的视频、图片、网页等敏感场景中落地,取得不错的效果。其中飞书已全端场景应用隐藏水印算法,
在具体实践上,隐藏水印算法能够加强飞书客户内部信息安全管理,防止截屏、拍照泄密
。此外,通过隐藏水印还可以有效帮助企业用户实现版权保护与链路追踪,具有准确性高、实效性高、抗攻击强及体验无感等诸多优势,为用户提供从物理到应用层面的全方位安全护航。
未来,相关水印能力将出现在火山引擎云安全系列产品矩阵中,服务于火山云客户,用于解决版权问题和数据泄露溯源问题。
网络安全工程师企业级学习路线
这时候你当然需要一份系统性的学习路线
如图片过大被平台压缩导致看不清的话,可以在文末下载(无偿的),大家也可以一起学习交流一下。

一些我收集的网络安全自学入门书籍

一些我白嫖到的不错的视频教程:

上述资料【扫下方二维码】就可以领取了,无偿分享

相关文章:
进化的隐藏水印:深度学习提升版权保护的鲁棒性
一、前言 过去几年,以网络视频为代表的泛网络视听领域的崛起,是互联网经济飞速发展最为夺目的大事件之一。泛网络视听领域不仅是21世纪以来互联网领域的重要基础应用、大众文化生活的主要载体,而且在推动中国经济新旧动能转化方面也发挥了重…...
Jenkins配置项目教程
在上一篇[Jenkins的使用教程](https://blog.csdn.net/weixin_43787492/article/details/129028131?spm1001.2014.3001.5501)中我介绍了如何创建一个项目 Jenkins在创建项目中提供了很多功能供我们选择,这里我将对配置项目做一个较完整的介绍Jenkins配置项目0、所有…...
C++多继承,虚继承部分总结与示例
tags: C OOP 写在前面 写一下多继承, 虚继承的一些部分, 包括一些例子. 多继承 简介 多继承是指从多个直接基类中产生派生类的能力. 多继承的派生类继承了所有父类的属性, 所以会带来一些复杂的问题. 示例1: 多继承用法与调用顺序 #include <string> #include <…...
程序员35岁以后就没有出路了吗?听听京东10年测开的分析
国内的互联网行业发展较快,所以造成了技术研发类员工工作强度比较大,同时技术的快速更新又需要员工不断的学习新的技术。因此淘汰率也比较高,超过35岁的基层研发类员工,往往因为家庭原因、身体原因,比较难以跟得上工作…...
数据结构(六):冒泡排序、选择排序、插入排序、希尔排序、快速排序
数据结构(六)一、大O表示法二、冒泡排序三、选择排序一、大O表示法 在计算机中采用粗略的度量来描述计算机算法的效率,这种方法被称为“大O”表示法。 我们判断一个算法的效率,不能只凭着算法运行的速度,因为随着数据…...
C++之类与对象(上)
目录 一、类的定义 二.类的访问限定及封装 1.访问限定 2.封装 三.类的作用域和实例化 2.类的实例化 四.类的对象大小的计算 1.类成员存储方式 2.结构体内存对齐规则 五.类成员函数的this指针 1.this指针的引出 2.this指针的特性 3.C语言和C实现Stack的对比 一、类的定义 class …...
Java岗面试题--Java并发 计算机网络(日积月累,每日三题)
目录1. 面试题一:在 Java 程序中怎么保证多线程的运行安全?1.1 追问一:Java 线程同步的几种方法?2. 面试题二:JMM3. 面试题三:计算机网络的各层协议及作用?1. 面试题一:在 Java 程序…...
三菱FX3U与威纶MT8071IP走RS422通讯
一、准备工作 1.需要工具: 电脑一台、PLC:三菱FX3U一个、触摸屏:威纶MT8071一个、 (三菱圆形编程口转USB)一根、触摸屏与电脑通讯线一根(T型口数据线)、PLC与触摸屏通讯线:电烙…...
给想考CISP的一点建议
如果你正在考虑参加CISP认证考试,以下是我对你的几点建议: 了解CISP考试: 在报名参加考试之前,要充分了解CISP认证考试的考试内容、考试形式、考试难度等相关信息,这有助于你制定更有效的备考计划。制定备考计划&…...
ACM 记忆化搜索
一.记忆化搜索概述 1.概念 搜索是一种简单有效但是效率又很低下的算法结构,其低效的原因主要在于存在很多重叠子问题。而记忆化搜索则是在搜索的基础上,利用数组来记录已经计算出来的重叠子问题状态,进行合理化的剪枝,从而降低时…...
spring框架常用注解简单说明
1、Configuration:标注在类上,相当于把当前类作为spring的xml配置文件中的; 2、Bean:标注在方法上,相当于spring配置文件中的; 3、Service:标注在类上,表明当前类是一个服务层的Be…...
2023-02-24 mysql/innodb-聚合-临时表避免OOM-使用磁盘文件-分析
摘要: mysql/innodb在执行聚合时, 当聚合的数据量太大时, 也就是临时表的大小超过tmp_table_size 限制时, 将进行写磁盘操作, 以避免OOM。 本文记录聚合数据写磁盘的操作。 参考: https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_tmp_table_…...
cracklib与libpwquality 评估密码的安全性
一、cracklib 检测密码强弱linux中采用pam pam_cracklib module来实现对密码强度的检测,可以通过配置让linux系统自动检测用户的密码是否为弱密码。yuminstall cracklib # centos apt-get install libcrack2 # ubuntu # 如果需要依赖此库做开发的话需要安装这个 y…...
【Java】保证并发安全的三大特性
一、并发编程三大特性的定义和由来 并发编程这三大特性就是为了在多个线程交替执行任务的过程中保证线程安全性。 二、为什么会出现线程不安全的现象呢? 接下来我们从这三个特性切入来介绍线程不安全的原因。 1.原子性: 一组操作要么全部执行&#…...
如何优雅的用golang封装配置项(Functional Options)
导读 最近要封装一个公共服务,涉及到配置项的地方总是找不到合理的方案,后来看了一下grpc在配置方面的封装,了解到原来是golang特有的Functional Options编程模式,今天分享给大家,希望你能用到,咱们直接来看…...
Springboot 使用thymeleaf 服务器无法加载resources中的静态资源异常处理
目录一、异常错误二、原因三、解决方法方法1. 将无法编译的静态资源放入可编译目录下方法2. 重新编译项目加载资源方法3. 修改pom.xml资源配置文件方法4. 不连接远程数据库启动,使用本地数据库一、异常错误 Springboot使用thymeleaf,并连接远程数据库启…...
服务端IOS订阅类型支付接入详细说明与注意事项
一、说明 由于本人在开发ios订阅类型支付接入的时候,遇到了很多坑,也查了不少资料,逐步完善了整个ios订阅支付服务端接入的功能,在这里写下总结和一些注意事项的记录,方便未来需要重新接入或者避免一些不必要的坑,这里…...
【剑指Offer】重建二叉树(递归+迭代)
重建二叉树一、递归法二、迭代法题目链接 题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 示例 1: Input: preorder [3,9,20,15,7], inorder [9,3,15,…...
注解@Transactional 原理和常见的坑
这篇文章,会先讲述 Transactional 的 4 种不生效的 Case,然后再通过源码解读,分析 Transactional 的执行原理,以及部分 Case 不生效的真正原因1 项目准备下面是 DB 数据和 DB 操作接口:uidunameusex1张三女2陈恒男3楼仔…...
2023年全国最新交安安全员精选真题及答案4
百分百题库提供交安安全员考试试题、交安安全员考试预测题、交安安全员考试真题、交安安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 31.特种劳动防护用品必须具有“三证”,下列不属于“三证”的是&#…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...
Redis上篇--知识点总结
Redis上篇–解析 本文大部分知识整理自网上,在正文结束后都会附上参考地址。如果想要深入或者详细学习可以通过文末链接跳转学习。 1. 基本介绍 Redis 是一个开源的、高性能的 内存键值数据库,Redis 的键值对中的 key 就是字符串对象,而 val…...
Java多线程实现之Runnable接口深度解析
Java多线程实现之Runnable接口深度解析 一、Runnable接口概述1.1 接口定义1.2 与Thread类的关系1.3 使用Runnable接口的优势 二、Runnable接口的基本实现方式2.1 传统方式实现Runnable接口2.2 使用匿名内部类实现Runnable接口2.3 使用Lambda表达式实现Runnable接口 三、Runnabl…...
多模态学习路线(2)——DL基础系列
目录 前言 一、归一化 1. Layer Normalization (LN) 2. Batch Normalization (BN) 3. Instance Normalization (IN) 4. Group Normalization (GN) 5. Root Mean Square Normalization(RMSNorm) 二、激活函数 1. Sigmoid激活函数(二分类&…...
安宝特案例丨寻医不再长途跋涉?Vuzix再次以AR技术智能驱动远程医疗
加拿大领先科技公司TeleVU基于Vuzix智能眼镜打造远程医疗生态系统,彻底革新患者护理模式。 安宝特合作伙伴TeleVU成立30余年,沉淀医疗技术、计算机科学与人工智能经验,聚焦医疗保健领域,提供AR、AI、IoT解决方案。 该方案使医疗…...
