水印提取和添加方法、装置、电子设备及存储介质
技术领域
本申请涉及视频处理技术领域,具体而言,涉及一种水印提取和添加方法、装置、电子设备及存储介质。
背景技术
目前,各类短视频网站、app越来越盛行。但视频网站对于上传的视频内容往往缺乏全面且有效的审核手段。视频网站上对视频进行未授权拷贝并再次发布的情况屡见不鲜,网络视频内容监管等问题日益凸显,因此视频内容的版权保护及溯源成为急需解决的问题。视频水印技术是解决该问题的方法之一,然而视频信息量巨大,因此,为了节省存储视频信息所需的存储空间,视频信息通常是以压缩的形式进行存储的。
现有的视频水印添加技术,首先对已压缩的视频进行解封装处理,得到已压缩的视频码流,然后对已压缩的视频码流解压缩,并对解压缩后得到的视频帧添加水印,接着将已添加水印的视频帧重新压缩,得到已添加水印,且已压缩的视频码流,最后将其封装为视频文件或封装为便于网络传输的数据流,然而视频的压缩和解压缩过程相当复杂,且相当耗时。
发明内容
鉴于此,本申请实施例的目的在于提供一种水印提取和添加方法、装置、电子设备及存储介质,以在添加水印的过程中,避免对视频进行解压缩和压缩的操作,提高水印添加效率。
第一方面,本申请实施例提供一种水印添加方法,所述方法包括:获取水印和视频码流,所述视频码流为已压缩的视频码流,且待添加所述水印;将所述水印和所述视频码流输入预先训练好的水印添加模型中,得到已添加所述水印且已压缩的视频码流。
在上述实现过程中,利用水印添加模型直接对已压缩的视频码流添加水印,得到已添加所述水印且已压缩的视频码流,该过程无需对已压缩视频码流进行解压缩和压缩操作,继而提高水印添加效率。
基于第一方面,在一种可能的设计中,在所述将所述水印和所述视频码流输入预先训练好的水印添加模型中,得到已添加所述水印且已压缩的视频码流之前,所述方法还包括:建立原始水印添加模型;获取模型训练样本,所述模型训练样本包括水印样本及视频码流样本,所述视频码流样本为无水印且已压缩的视频码流;将所述模型训练样本输入所述原始水印添加模型中,得到模型输出结果;确定所述模型输出结果与预设的标准模型输出结果的误差的第一损失值,所述标准模型输出结果的视频内容与所述视频码流样本的内容对应,且已压缩并添加有所述水印样本;在确定所述第一损失值大于预设阈值时,对所述原始水印添加模型进行更新,直至利用更新后的水印添加模型确定出的新的损失值小于等于所述预设阈值,得到训练好的水印添加模型。
在上述实现过程中,将水印样本及视频码流样本输入所述原始水印添加模型中,得到模型输出结果;其中,所述视频码流样本为无水印且已压缩的视频码流;在确定所述模型输出结果与预设的标准模型输出结果的误差的第一损失值大于预设阈值时,对所述原始水印添加模型进行更新,所述标准模型输出结果的视频内容与所述视频码流样本的内容对应,且已压缩并添加有所述水印样本,直至利用更新后的水印添加模型确定出的新的损失值小于等于所述预设阈值,继而保证训练好的水印添加模型能准确地对将待添加水印添加至已压缩的视频码流中,无需视频压缩和解压缩操作。
基于第一方面,在一种可能的设计中,所述获取水印,包括:获取初始水印;对所述初始水印进行置乱,得到所述水印。
在上述实现过程中,通过对初始水印进行置乱,继而能够进一步提高已添加所述水印的视频码流的抗攻击性。
第二方面,本申请实施例提供一种水印提取方法,所述方法包括:获取已添加水印且已压缩的视频码流;将所述视频码流输入预先训练好的水印提取模型中,得到所述水印。
在上述实现过程中,利用水印提取模型从已添加水印且已压缩的视频码流中直接提取出所述水印,该过程无需对已压缩视频码流进行解压缩和压缩操作,继而提高水印提取效率。
基于第一方面,在一种可能的设计中,在所述将所述视频码流输入预先训练好的水印提取模型中,得到水印输出结果之前,所述方法还包括:建立原始水印提取模型;获取视频码流样本,所述视频码流样本为已添加水印且已压缩的视频码流;将所述视频码流样本输入所述原始水印提取模型中,得到水印输出结果;确定所述水印输出结果与预设的标准水印输出结果的误差的第二损失值;在确定所述第二损失值大于预设门限值时,对所述原始水印提取模型进行更新,直至利用更新后的水印提取模型确定出的新的损失值小于等于所述预设门限值,得到训练好的水印提取模型。
在上述实现过程中,将所述视频码流样本输入所述原始水印提取模型中,得到水印输出结果;其中,所述视频码流样本为已添加水印且已压缩的视频码流;在确定所述水印输出结果与预设的标准水印输出结果的误差的第二损失值大于预设门限值时,对所述原始水印提取模型进行更新,直至利用更新后的水印提取模型确定出的新的损失值小于等于所述预设门限值,得到训练好的水印提取模型,继而保证训练好的水印提取模型能准确地从已添加水印且已压缩的视频码流中,提取出所述水印,无需视频压缩和解压缩操作。
基于第一方面,在一种可能的设计中,在所述确定所述水印输出结果与预设的标准水印输出结果的误差的第二损失值之前,所述方法还包括:获取原始水印;对所述原始水印进行置乱,得到所述标准水印输出结果。
在水印提取模型输出的水印为经过置乱后的水印的情况下,为了保证训练好的水印提取模型的水印提取准确度,因此,上述实现过程中,需要对所述原始水印进行置乱,得到标准水印输出结果,以保证标准水印输出结果与水印提取模型输出的水印输出结果统一,继而保证训练好的水印提取模型的水印提取准确度。
第三方面,本申请实施例提供一种水印添加装置,所述装置包括:第一获取单元,用于获取水印和视频码流,所述视频码流为已压缩的视频码流,且待添加所述水印;水印添加单元,用于将所述水印和所述视频码流输入预先训练好的水印添加模型中,得到已添加所述水印且已压缩的视频码流。
基于第三方面,在一种可能的设计中,所述装置还包括:水印添加模型训练单元,用于建立原始水印添加模型;以及获取模型训练样本,所述模型训练样本包括水印样本及视频码流样本,所述视频码流样本为无水印且已压缩的视频码流;将所述模型训练样本输入所述原始水印添加模型中,得到模型输出结果;确定所述模型输出结果与预设的标准模型输出结果的误差的第一损失值,所述标准模型输出结果的视频内容与所述视频码流样本的内容对应,且已压缩并添加有所述水印样本;在确定所述第一损失值大于预设阈值时,对所述原始水印添加模型进行更新,直至利用更新后的水印添加模型确定出的新的损失值小于等于所述预设阈值,得到训练好的水印添加模型。
基于第三方面,在一种可能的设计中,所述第一获取单元,具体用于获取初始水印;以及对所述初始水印进行置乱,得到所述水印。
第四方面,本申请实施例提供一种水印提取装置,所述装置包括:第二获取单元,用于获取已添加水印且已压缩的视频码流;水印提取单元,用于将所述视频码流输入预先训练好的水印提取模型中,得到所述水印。
基于第四方面,在一种可能的设计中,所述装置还包括:水印提取模型训练单元,用于建立原始水印提取模型;获取视频码流样本,所述视频码流样本为已添加水印且已压缩的视频码流;将所述视频码流样本输入所述原始水印提取模型中,得到水印输出结果;确定所述水印输出结果与预设的标准水印输出结果的误差的第二损失值;在确定所述第二损失值大于预设门限值时,对所述原始水印提取模型进行更新,直至利用更新后的水印提取模型确定出的新的损失值小于等于所述预设门限值,得到训练好的水印提取模型。
基于第四方面,在一种可能的设计中,所述装置还包括:第三获取单元,用于获取原始水印;以及对所述原始水印进行置乱,得到所述标准水印输出结果。
第五方面,本申请实施例提供一种电子设备,包括处理器以及与所述处理器连接的存储器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述电子设备执行第一方面所述的方法。
第六方面,本申请实施例提供一种存储介质,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行第一方面所述的方法。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的水印添加方法的流程示意图。
图2为本申请实施例提供的水印提取方法的流程示意图。
图3为本申请实施例提供的水印添加装置的结构示意图。
图4为本申请实施例提供的水印提取装置的结构示意图。
图5为本申请实施例提供的电子设备的结构示意图。
图标:300-水印添加装置;310-第一获取单元;320-水印添加单元;400-水印提取装置;410-第二获取单元;420-水印提取单元;500-电子设备;501-处理器;502-存储器;503-通信接口。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1为本申请实施例提供的一种水印添加方法的流程图,下面将对图1所示的流程进行详细阐述,所述方法包括步骤:S11和S12。
S11:获取水印和视频码流,所述视频码流为已压缩的视频码流,且待添加所述水印。
S12:将所述水印和所述视频码流输入预先训练好的水印添加模型中,得到已添加所述水印且已压缩的视频码流。
下面对上述方法进行详细介绍。
S11:获取水印和视频码流,所述视频码流为已压缩的视频码流,且待添加所述水印。
在具体的实施过程中,S11可以按照如下方式实施,获取视频文件,对所述视频文件进行解封装,得到所述视频码流和音频码流;其中,所述视频码流为已压缩的视频码流,且待添加所述水印。
作为一种实施方式,获取视频流,对所述视频流进行解封装,得到所述视频码流和音频码流。
作为一种实施方式,直接从第三方获取解封装后的视频码流。
作为一种实施方式,所述获取水印包括步骤:A1和A2。
A1:获取初始水印。
其中,所述初始水印可以为图片,也可以为字符信息等。
在本实施例中,所述初始水印为隐水印,在其他实施例中,所述初始水印也可以为明水印。值的一提的是,与明水印相比,由于隐水印具有肉眼不可见性,因此,不容易被侵权者去除,而且隐水印不会覆盖视频内容,因此,不会影响用户的视频观看体验。
在获取到所述初始水印之后,执行步骤A2。
A2:对所述初始水印进行置乱,得到所述水印。
其中,对所述初始水印进行置乱的具体实施方式为本领域熟知技术,因此,在此不再赘述。
作为一种实施方式,S11中获取到的水印也可以为步骤A1中的初始水印。
在获取到所述水印和所述视频码流之后,执行步骤S12。
S12:将所述水印和所述视频码流输入预先训练好的水印添加模型中,得到已添加所述水印且已压缩的视频码流。
作为一种实施方式,在S12之前,所述方法还包括:B1、B2、B3、B4和B5。
B1:建立原始水印添加模型。
其中,在本实施例中,所述原始水印添加模型为卷积神经网络模型,在其他实施例中,所述原始水印添加模型也可以为循环神经网络模型,也可以为卷积神经网络模型和循环神经网络模型的组合。
B2:获取模型训练样本,所述模型训练样本包括水印样本及视频码流样本,所述视频码流样本为无水印且已压缩的视频码流。
其中,所述水印样本可以包括图片和/或字符。
所述水印样本的数量可以为多个,也可以为一个或者两个,所述视频码流样本的数量可以为多个,也可以为一个或者两个。
其中,步骤B2中获取水印样本及视频码流样本的具体实施方式可以参照步骤S11,因此,在此不再赘述。
B3:将所述模型训练样本输入所述原始水印添加模型中,得到模型输出结果。
值的一提的是,在步骤B3中,每次只将所述模型训练样本中的一个水印样本和一个视频码流样本输入至所述原始水印提取模型中,得到模型输出结果,可以理解的是,所述模型输出结果为添加有水印且已压缩的视频码流。
B4:确定所述模型输出结果与预设的标准模型输出结果的误差的第一损失值,所述标准模型输出结果的视频内容与所述视频码流样本的内容对应,且已压缩并添加有所述水印样本。
在实际实施过程中,B4可以按照如下方式实施,根据预先确定的损失函数,确定所述模型输出结果与预设的标准模型输出结果的误差的第一损失值。
其中,所述标准模型输出结果是利用背景技术中提到的水印添加技术得到的已添加水印,且已压缩的视频码流。
可以理解的是,若对所述标准模型输出结果进行解压缩,并从解压缩后的结果中提取出所述水印样本之后,再对其进行压缩之后所得到的视频码流与所述视频码流样本的内容相同。
值的一提的是,不同的水印样本对应的标准模型输出结果不同,不同的视频码流样本对应的标准模型输出结果不同。
B5:在确定所述第一损失值大于预设阈值时,对所述原始水印添加模型进行更新,直至利用更新后的水印添加模型确定出的新的损失值小于等于所述预设阈值,得到训练好的水印添加模型。
在确定所述第一损失值大于预设阈值时,利用梯度下降反向传播算法对所述原始水印添加模型进行更新,得到更新后的水印添加模型,继而将所述模型训练样本中的任意一个水印样本和视频码流样本输入至所述更新后的水印添加模型,得到新的模型输出结果;确定所述新的模型输出结果与预设的标准模型输出结果的误差的新的损失值,在确定所述新的损失值小于等于所述预设阈值时,确定所述更新后的水印添加模型为训练好的水印添加模型。
其中,所述预设阈值根据实际需求设定,所述预设阈值越小,训练好的水印添加模型的水印添加精度越高,但是模型训练所需复杂度也相对较大。
请参照图2,图2为本申请实施例提供的一种水印提取方法的流程图,下面将对图2所示的流程进行详细阐述,所述方法包括步骤:S21和S22。
S21:获取已添加水印且已压缩的视频码流。
S22:将所述视频码流输入预先训练好的水印提取模型中,得到水印输出结果。
下面对上述方法进行详细介绍。
S21:获取已添加水印且已压缩的视频码流。
其中,S21中的视频码流可以为利用背景技术获取到的已添加水印,且已压缩的视频码流,也可以为利用预先训练好的水印添加模型所得到的视频码流。
在获取到已添加水印且已压缩的视频码流之后,执行步骤S22。
S22:将所述视频码流输入预先训练好的水印提取模型中,得到所述水印。
作为一种实施方式,在S22之前,所述方法还包括:C1、C2、C3、C4和C5。
C1:建立原始水印提取模型。
其中,在本实施例中,所述原始水印提取模型为卷积神经网络模型,在其他实施例中,所述原始水印提取模型也可以为循环神经网络模型,也可以为卷积神经网络模型和循环神经网络模型的组合。
C2:获取视频码流样本,所述视频码流样本为已添加水印且已压缩的视频码流。
其中,在本实施例中,C2中的视频码流样本为利用背景技术获取到的已添加水印,且已压缩的视频码流,在其他实施例中,C2中的视频码流也可以为利用预先训练好的水印添加模型所得到的视频码流。
其中,所述视频码流样本的数量为至少一个。
C3:将所述视频码流样本输入所述原始水印提取模型中,得到水印输出结果。
在C3中,每次将一个视频码流样本输入至所述原始提取模型中,得到水印输出结果。
C4:确定所述水印输出结果与预设的标准水印输出结果的误差的第二损失值。
在实际实施过程中,C4可以按照如下方式实施,根据预先确定的损失函数,确定所述水印输出结果与预设的标准水印输出结果的误差的第二损失值。
其中,所述预设的标准水印输出结果和已添加水印且已压缩的视频码流中的水印相同。
C5:在确定所述第二损失值大于预设门限值时,对所述原始水印提取模型进行更新,直至利用更新后的水印提取模型确定出的新的损失值小于等于所述预设门限值,得到训练好的水印提取模型。
在确定所述第二损失值大于预设门限值时,利用梯度下降反向传播算法对所述原始水印提取模型进行更新,得到更新后的水印提取模型,继而将任意一个视频码流样本输入至所述更新后的水印提取模型,得到新的水印输出结果;确定所述新的水印输出结果与预设的标准水印输出结果的误差的新的损失值,在确定所述新的损失值小于等于所述预设门限值时,确定所述更新后的水印提取模型为训练好的水印提取模型。
作为一种实施方式,在C4之前,所述方法还包括步骤:D1和D2。
D1:获取原始水印。
D2:对所述原始水印进行置乱,得到所述标准水印输出结果。
其中,D1和D2的具体实施方式请参照A1和A2,因此,在此不再赘述。
其中,C4中的标准水印输出结果可以为D1中的原始水印。
请参照图3,图3是本申请实施例提供的一种水印添加装置300的结构框图。下面将对图3所示的结构框图进行阐述,所示装置包括:
第一获取单元310,用于获取水印和视频码流,所述视频码流为已压缩的视频码流,且待添加所述水印。
水印添加单元320,将所述水印和所述视频码流输入预先训练好的水印添加模型中,得到已添加所述水印且已压缩的视频码流。
作为一种实施方式,所述装置还包括:水印添加模型训练单元,用于建立原始水印添加模型;以及获取模型训练样本,所述模型训练样本包括水印样本及视频码流样本,所述视频码流样本为无水印且已压缩的视频码流;将所述模型训练样本输入所述原始水印添加模型中,得到模型输出结果;确定所述模型输出结果与预设的标准模型输出结果的误差的第一损失值,所述标准模型输出结果的视频内容与所述视频码流样本的内容对应,且已压缩并添加有所述水印样本;在确定所述第一损失值大于预设阈值时,对所述原始水印添加模型进行更新,直至利用更新后的水印添加模型确定出的新的损失值小于等于所述预设阈值,得到训练好的水印添加模型。
作为一种实施方式,所述第一获取单元310,具体用于获取初始水印;以及对所述初始水印进行置乱,得到所述水印。
本实施例对的各功能单元实现各自功能的过程,请参见上述图1所示实施例中描述的内容,此处不再赘述。
请参照图4,图4是本申请实施例提供的一种水印添加装置400的结构框图。下面将对图4所示的结构框图进行阐述,所示装置包括:
第二获取单元410,用于获取已添加水印且已压缩的视频码流。
水印提取单元420,用于将所述视频码流输入预先训练好的水印提取模型中,得到所述水印。
作为一种实施方式,所述装置还包括:水印提取模型训练单元,用于建立原始水印提取模型;获取视频码流样本,所述视频码流样本为已添加水印且已压缩的视频码流;将所述视频码流样本输入所述原始水印提取模型中,得到水印输出结果;确定所述水印输出结果与预设的标准水印输出结果的误差的第二损失值;在确定所述第二损失值大于预设门限值时,对所述原始水印提取模型进行更新,直至利用更新后的水印提取模型确定出的新的损失值小于等于所述预设门限值,得到训练好的水印提取模型。
作为一种实施方式,所述装置还包括:第三获取单元,用于获取原始水印;以及对所述原始水印进行置乱,得到所述标准水印输出结果。
本实施例对的各功能单元实现各自功能的过程,请参见上述图2所示实施例中描述的内容,此处不再赘述。
请参照图5,图5为本申请实施例提供的一种电子设备500的结构示意图,电子设备500可以为上述实施例中的站点服务器,电子设备500可以是个人电脑(personalcomputer,PC)、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)等。
电子设备500可以包括:存储器502、处理器501、通信接口503和通信总线,通信总线用于实现这些组件的连接通信。
所述存储器502用于存储本申请实施例提供的水印提取、添加方法和装置对应的计算程序指令等各种数据,其中,存储器502可以是,但不限于,随机存取存储器(RandomAccess Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。
处理器501用于读取并运行存储于存储器中的水印提取、添加方法和装置对应的计算机程序指令,以获取水印和视频码流,所述视频码流为已压缩的视频码流,且待添加所述水印;将所述水印和所述视频码流输入预先训练好的水印添加模型中,得到已添加所述水印且已压缩的视频码流。
其中,处理器501可能是一种集成电路芯片,具有信号的处理能力。上述的处理器501可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
通信接口503,用于接收或者发送数据。
此外,本申请实施例还提供了一种存储介质,在该存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行本申请任一项实施方式所提供的方法。
综上所述,本申请各实施例提出的水印提取和添加方法、装置、电子设备及存储介质,利用水印添加模型直接对已压缩的视频码流添加水印,得到已添加所述水印且已压缩的视频码流,该过程无需对已压缩视频码流进行解压缩和压缩操作,继而提高水印添加效率。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的装置来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。