一种视频认证方法及装置
技术领域
本发明涉及通信信息安全技术领域,尤其涉及一种视频认证方法及装置。
背景技术
视频一般通过公共的传输通道传输给用户,在传输的过程中,视频可能被恶意篡改,例如视频被删帧,或重排帧,或者帧图像中的内容被修改等。当视频涉及公共安全、政治、军事或法庭证据时,对视频的可信度必须进行评价,因而产生了视频认证技术。视频认证技术是视频信息安全评价与预警系统中的关键技术,该技术通过对视频内容的处理,生成可辨别性的标识,通过该标识来实现对视频内容安全性的认证。目前的视频认证主要利用数字水印技术或者感知哈希技术进行实现。
对于感知哈希技术,通过对原始视频进行处理,得到内容区分性特征,利用该区分性特征形成一个描述视频内容的视频指纹。对该原始视频对应的待认证视频采用同样的方法得到视频指纹,然后采用一定的相似度比较算法实现对待认证视频的认证。例如:对每帧图像进行随机分块,各块之间相互交叠,并对每个分块进行编号,对编号具有预设关系的分块计算其平均亮度差,生成结构哈希向量和时间哈希序列,通过结构哈希向量确定结构哈希距离,而利用时间哈希序列确定时间哈希距离,对结构哈希距离和时间哈希距离进行加权得到原视频与待认证视频的哈希距离,将哈希距离与设定的阈值进行比较,判断该视频是否被篡改。但该方法只能够判断视频是否被篡改,而不能判断篡改的具体位置。
对于数字水印技术,常通过将具有观感的图像作为水印,利用一定的嵌入算法将其嵌入到目标视频的所有帧或者特定帧,在接收端通过提取算法得到嵌入的水印,通过对得到水印的完整性和正确性的评价,实现对视频内容安全性的认证。但是数字水印技术嵌入方法在比较复杂,不利于实现视频认证。此外,数字水印会对视频图像的质量有所影响,造成数字水印技术的视频认证的效率低下。
由此,针对以上的不足,需要一种新的视频认证方法,以达到在不影响视频图像质量的情况下,算法简单,又能够准确定位篡改位置的目的。
发明内容
本发明的目的是提供一种视频认证方法及装置,以克服相关技术中感知哈希技术不能定位篡改位置、数字水印技术算法复杂以及影响视频图像质量的问题。
一方面,本发明提供一种视频认证方法,包括:
生成待认证视频的待认证哈希码,并获取该待认证视频的原始视频的参考哈希码,所述待认证哈希码中包括:针对待认证视频的每一帧图像,对该帧图像的图像区域进行划分得到的每个预设区域的哈希码,以及表示每个预设区域在该帧图像中所处位置的位置信息;所述参考哈希码的生成算法与所述待认证哈希码的生成算法相同;
将待认证视频和原始视频中帧号相同的图像视为一组待认证图像,以预设区域为单位,对该组待认证图像中的每个对应预设区域的哈希码进行匹配;并
针对每个预设区域的哈希码,当该预设区域的哈希码与原始视频中对应预设区域的哈希码不匹配时,确定该预设区域被篡改,并根据该预设区域的位置信息确定该待认证视频被篡改的位置。
其中,在一个实施例中,所述生成待认证视频的待认证哈希码,包括:
针对待认证视频的每一帧图像,获取该帧图像的背景图像和由该帧图像的非背景图像的像素点形成的至少一个运动目标图像,将每一个运动目标图像视为一个预设区域,并生成每一个运动目标图像在该帧图像中的位置信息;
将背景图像之间的差距小于等于预设差距的帧图像视为一个集合,并针对每一个集合,从该集合中选取一帧图像的背景图像生成该集合中的每一帧图像对应的场景图像;
针对每一个场景图像,对该场景图像进行分块,将每一个分块视为一个预设区域,并生成每块场景图像的块哈希码,由该场景图像的所有块哈希码生成该场景图像的场景哈希码;
针对每一个运动目标图像,生成该运动目标图像的目标哈希码;
根据所述场景哈希码、所述目标哈希码、以及所述运动目标图像的位置信息生成所述待认证视频的待认证哈希码。
其中,在一个实施例中,所述根据所述场景哈希码、所述目标哈希码、以及所述运动目标图像的位置信息生成所述待认证视频的待认证哈希码,包括:
确定每一个场景图像的场景哈希码的标识;并将每一个运动目标图像的目标哈希码和该目标图像的位置信息视为一个目标结构体;
针对所述待认证视频的每一帧图像,根据预设空间位置关系,将该帧图像的运动目标图像的目标结构体进行级联,并在预设位置添加该帧图像对应的场景图像的标识,生成帧图像哈希码;
按照在所述待认证视频的时序关系,级联每一帧图像的帧图像哈希码,生成所述待认证视频的待认证哈希码。
其中,在一个实施例中,所述针对每一个场景图像,对该场景图像进行分块,将每一个分块视为一个预设区域,并生成每块场景图像的块哈希码,由该场景图像的所有块哈希码生成该场景图像的场景哈希码,包括:
针对每一个场景图像,对该场景图像进行分块;并,将每一个分块视为一个预设区域,对每一块场景图像进行感知哈希特征提取;
根据感知哈希特征提取结果,生成每一个场景图像的特征系数集;
针对特征系数集中的每一种特征系数,在该种特征系数所在的数据范围内,计算出预设数量的谷底,由所述谷底将该种特征系数的数据范围划分为不同的量化区间;并将每一个量化区间内的特征系数进行量化,并编码为哈希码;其中,在编码时,相邻特征系数的哈希码的不同位的位数小于等于第一预设阈值,非相邻特征系数的不同位的位数大于第二预设阈值,其中,第一预设阈值小于等于第二预设阈值;
由每一块场景图像的哈希码组成一个块哈希码,并由一个场景图像的所有块哈希码生成该场景图像的场景哈希码。
其中,在一个实施例中,当预设区域为场景图像的分块时,所述将待认证视频和原始视频中帧号相同的图像视为一组待认证图像,以预设区域为单位,对该组待认证图像中的每个对应预设区域的哈希码进行匹配,包括:
将待认证视频和原始视频中帧号相同的图像视为一组待认证图像,以分块为单位,针对每一个分块,将该分块的哈希码与原始视频中对应分块的块哈希码进行比对,判断两分块中的块哈希码中不同位的位数是否超过第三预设阈值;
当不同位的位数超过第三预设阈值时,确定该分块被篡改;当不同位的位数小于等于第三预设阈值时,确定该分块正常。
其中,在一个实施例中,当预设区域为运动目标图像时,所述将待认证视频和原始视频中帧号相同的图像视为一组待认证图像,以预设区域为单位,对该组待认证图像中的每个对应预设区域的哈希码进行匹配,包括:
将待认证视频和原始视频中帧号相同的图像视为一组待认证图像,以运动目标图像为单位,针对每一个运动目标图像,计算该运动目标图像的哈希码与原始视频中对应运动目标图像的目标哈希码的差值,并计算该差值所占原始视频中对应运动目标图像的目标哈希码的比率;
当计算得到的比率大于等于第四预设阈值时,确定该运动目标图像被篡改;当计算得到的比率小于第四预设阈值时,确定该运动目标图像正常。
另一方面,本发明还提供一种视频认证装置,所述装置包括:
待认证哈希码生成模块,用于生成待认证视频的待认证哈希码,并获取该待认证视频的原始视频的参考哈希码,所述待认证哈希码中包括:针对待认证视频的每一帧图像,对该帧图像的图像区域进行划分得到的每个预设区域的哈希码,以及表示每个预设区域在该帧图像中所处位置的位置信息;所述参考哈希码的生成算法与所述待认证哈希码的生成算法相同;
认证模块,用于将待认证视频和原始视频中帧号相同的图像视为一组待认证图像,以预设区域为单位,对该组待认证图像中的每个对应预设区域的哈希码进行匹配;并
定位模块,用于针对每个预设区域的哈希码,当该预设区域的哈希码与原始视频中对应预设区域的哈希码不匹配时,确定该预设区域被篡改,并根据该预设区域的位置信息确定该待认证视频被篡改的位置。
其中,在一个实施例中,所述待认证哈希码生成模块,包括:
处理单元,用于针对待认证视频的每一帧图像,获取该帧图像的背景图像和由该帧图像的非背景图像的像素点形成的至少一个运动目标图像,将每一个运动目标图像视为一个预设区域,并生成每一个运动目标图像在该帧图像中的位置信息;
场景图像生成单元,用于将背景图像之间的差距小于等于预设差距的帧图像视为一个集合,并针对每一个集合,从该集合中选取一帧图像的背景图像生成该集合中的每一帧图像对应的场景图像;
场景哈希码生成单元,用于针对每一个场景图像,对该场景图像进行分块,将每一个分块视为一个预设区域,并生成每块场景图像的块哈希码,由该场景图像的所有块哈希码生成该场景图像的场景哈希码;
目标哈希码生成单元,用于针对每一个运动目标图像,生成该运动目标图像的目标哈希码;
待认证哈希码生成单元,用于根据所述场景哈希码、所述目标哈希码、以及所述运动目标图像的位置信息生成所述待认证视频的待认证哈希码。
其中,在一个实施例中,所述待认证哈希码生成单元,包括:
确定子单元,用于确定每一个场景图像的场景哈希码的标识;并将每一个运动目标图像的目标哈希码和该目标图像的位置信息视为一个目标结构体;
帧图像哈希码生成子单元,用于针对所述待认证视频的每一帧图像,根据预设空间位置关系,将该帧图像的运动目标图像的目标结构体进行级联,并在预设位置添加该帧图像对应的场景图像的标识,生成帧图像哈希码;
待认证哈希码生成子单元,用于按照在所述待认证视频的时序关系,级联每一帧图像的帧图像哈希码,生成所述待认证视频的待认证哈希码。
其中,在一个实施例中,所述场景哈希码生成单元,包括:
感知哈希特征提取子单元,用于针对每一个场景图像,对该场景图像进行分块;并,将每一个分块视为一个预设区域,对每一块场景图像进行感知哈希特征提取;
特征系数集生成子单元,用于根据感知哈希特征提取结果,生成每一个场景图像的特征系数集;
编码子单元,用于针对特征系数集中的每一种特征系数,在该种特征系数所在的数据范围内,计算出预设数量的谷底,由所述谷底将该种特征系数的数据范围划分为不同的量化区间;并将每一个量化区间内的特征系数进行量化,并编码为哈希码;其中,在编码时,相邻特征系数的哈希码的不同位的位数小于等于第一预设阈值,非相邻特征系数的不同位的位数大于第二预设阈值,其中,第一预设阈值小于等于第二预设阈值;
场景哈希码生成子单元,用于由每一块场景图像的哈希码组成一个块哈希码,并由一个场景图像的所有块哈希码生成该场景图像的场景哈希码。
其中,在一个实施例中,所述认证模块,包括:
分块匹配单元,用于当预设区域为场景图像的分块时,将待认证视频和原始视频中帧号相同的图像视为一组待认证图像,以分块为单位,针对每一个分块,将该分块的哈希码与原始视频中对应分块的块哈希码进行比对,判断两分块中的块哈希码中不同位的位数是否超过第三预设阈值;
第一确定单元,用于当不同位的位数超过第三预设阈值时,确定该分块被篡改;当不同位的位数小于等于第三预设阈值时,确定该分块正常。
其中,在一个实施例中,所述认证模块,包括:
运动目标图像匹配单元,用于当预设区域为运动目标图像时,将待认证视频和原始视频中帧号相同的图像视为一组待认证图像,以运动目标图像为单位,针对每一个运动目标图像,计算该运动目标图像的哈希码与原始视频中对应运动目标图像的目标哈希码的差值,并计算该差值所占原始视频中对应运动目标图像的目标哈希码的比率;
第二确定单元,用于当计算得到的比率大于等于第四预设阈值时,确定该运动目标图像被篡改;当计算得到的比率小于第四预设阈值时,确定该运动目标图像正常。
本发明至少具有以下有益效果:在本发明实施例提供的视频认证方法中,通过用相同的流程和方法获取原始视频和待认证视频的哈希码,并通过匹配两者的哈希码进行视频认证,相对于数字水印进行视频认证的方法易于实现,且不会对图像的质量产生影响,通过对视频图像进行场景图像和运动目标图像分离,并分别生成哈希码,有利于分别判断场景图像和运动目标图像是否被篡改,并进一步的,可以根据场景图像的分块确定场景图像被篡改的具体位置,根据运动目标图像的位置信息,确定运动目标图像被篡改的位置。综上,本发明实施例提供的视频认证的方法能够即不影响视频的图像质量,也能够准确定位被篡改的位置。此外,现有技术中采用数字水印技术的视频认证方法中,采用半脆弱水印时对一些正常的操作(例如对视频图像进行平滑处理、平移等)的鲁棒性低,使得本发明实施例提供的视频认证方法能够更普遍适用。在本发明实施例中通过在生成哈希码时进行多区间非均匀量化编码,在视频认证时通过具有容忍区间的哈希码匹配方法,相对于现有的数字水印技术能够提高鲁棒性,进而提高视频认证的准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
图1为本发明实施例中视频认证方法的示例性流程图之一;
图2为本发明实施例中视频认证方法的示例性流程图之二;
图3为本发明实施例中视频认证方法的示例性流程图之三;
图4为本发明实施例中视频认证方法的多区间非均匀量化方法的示意图;
图5为本发明实施例中视频认证方法的待认证哈希码的组织方式的示意图;
图6为本发明实施例中视频认证装置的示意图之一;
图7为本发明实施例中视频认证装置的示意图之二。
具体实施方式
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明实施例提供一种视频认证方法及装置,尤其适用于监控视频的视频认证。此外,本发明实施例提供的视频认证方法及装置可以适用于不同分辨率、不同帧率的视频,本发明实施例对此并不做限定。
如图1所示,为本发明实施例提供的视频认证方法的流程示意图,在本发明实施例提供的视频认证方法中,通过用相同的算法获取原始视频和待认证视频的哈希码,并通过匹配两者的哈希码进行视频认证,相对于数字水印进行视频认证的方法易于实现,且不会对图像的质量产生影响;通过对视频图像进行场景图像和运动目标图像分离,并分别生成哈希码,有利于分别判断场景图像和运动目标图像是否被篡改,并进一步的,可以根据场景图像的分块确定待认证视频的帧图像中的背景图像部分被篡改的具体位置,根据运动目标图像的位置信息,确定待认证视频的帧图像中运动目标图像被篡改的位置。综上,本发明实施例提供的视频认证的方法能够即不影响视频的图像质量,也能够准确定位被篡改的位置。此外,现有技术中采用数字水印技术的视频认证方法中,采用半脆弱水印时对一些正常的操作(例如对视频图像进行平滑处理、加噪等)的鲁棒性低,使得本发明实施例提供的视频认证方法能够更普遍适用。在本发明实施例中通过在生成哈希码时进行多区间非均匀量化编码,在视频认证时通过具有容忍区间的哈希码匹配方法,相对于现有的数字水印技术能够提高鲁棒性,进而提高视频认证的准确性。下面,对本发明实施例提供的视频认证方法进行详细说明。
实施例一
如图2所示,为本发明实施例中进行视频认证的方法的示例性流程图,该方法包括以下步骤:
步骤201:生成待认证视频的待认证哈希码,并获取该待认证视频的原始视频的参考哈希码,所述待认证哈希码中包括:针对待认证视频的每一帧图像,对该帧图像的图像区域进行划分得到的每个预设区域的哈希码,以及表示每个预设区域在该帧图像中所处位置的位置信息;所述参考哈希码的生成算法与所述待认证哈希码的生成算法相同。
其中,场景图像用于表征视频的背景图像的特征,在一帧图像中,分为背景图像和运动目标图像,背景图像由场景图像表示,运动目标图像由确定为背景图像的像素点组成,此外,一帧图像中可以包括至少一个运动目标图像。
步骤202:将待认证视频和原始视频中帧号相同的图像视为一组待认证图像,以预设区域为单位,对该组待认证图像中的每个对应预设区域的哈希码进行匹配。
步骤203:针对每个预设区域的哈希码,当该预设区域的哈希码与原始视频中对应预设区域的哈希码不匹配时,确定该预设区域被篡改,并根据该预设区域的位置信息确定该待认证视频被篡改的位置。
下面对上面各步骤所包括的内容进行详细说明。
其中,在一个实施例中,在步骤201中,生成待认证视频的待认证哈希码,包括以下步骤:
步骤A1:针对待认证视频的每一帧图像,获取该帧图像的背景图像和由该帧图像的非背景图像的像素点形成的至少一个运动目标图像,将每一个运动目标图像视为一个预设区域,并生成每一个运动目标图像在该帧图像中的位置信息。
步骤A2:将背景图像之间的差距小于等于预设差距的帧图像视为一个集合,并针对每一个集合,从该集合中选取一帧图像的背景图像生成该集合中的每一帧图像对应的场景图像。
步骤A3:针对每一个场景图像,对该场景图像进行分块,将每一个分块视为一个预设区域,并生成每块场景图像的块哈希码,由该场景图像的所有块哈希码生成该场景图像的场景哈希码
步骤A4:针对每一个运动目标图像,生成该运动目标图像的目标哈希码。
步骤A5:根据场景哈希码、目标哈希码、以及运动目标图像的位置信息生成待认证视频的待认证哈希码。
下面对上述步骤A1-步骤A5进行说明:
其中,在一个实施例中,对于步骤A1中任何通过现有技术实现图像中的场景图像与运动目标图像分离的方法均适用于本发明实施例,本发明对此不做限定。其中可以通过建立背景模型提取背景图像和运动目标图像。当通过背景模型提取背景图像和运动目标图像时,涉及到如何建立背景模型,如何生成每帧图像对应的场景图像,如何确定视频中哪些像素点属于运动目标图像,以及如何确定运动目标图像的位置信息,下面对以上各点进行详细说明:
1)背景模型的建立
其中,在一个实施例中,可以通过多样本建模,建立背景模型,并更新场景图像。具体地,采用多个样本建立背景模型的方法如下:
在待认证视频的首帧图像中进行背景模型初始化,对首帧中每个像素在其预设邻域内随机抽取N个样本,组成初始的背景模型。该背景模型中每个像素点对应一个样本模型,每个样本模型中由预设样本数量的样本组成,每个样本对应一个样本值。上述样本模型可以由公式(1)表示:
Model(i,j)={sample1,sample2,…,sampleN} (1)
在公式(1)中,Model(i,j)表示(i,j)点的样本模型,sample表示样本模型中的样本值,N为样本数量。
其中,在一个实施例中每个样本的样本值,可以由该样本的像素值表示。
2)运动目标图像的提取
具体的,在采用多样本建模,建立背景模型之后,提取运动目标图像的方法可以执行为:对于待认证视频的每帧图像内的每个像素点,将该像素点的像素值与当前背景模型中与该像素点的位置相同的样本模型中的每一个样本值进行比较,计算该像素点的像素值与每一个样本值的样本差距,则可以得到N个样本差距,其中,N为每个样本模型中的样本数量。当样本差距小于样本阈值的数量大于预设样本差距数量时,则确定该像素点为背景点(即该像素点属于场景图像),否则,确定该像素点为运动目标图像的像素点。其中,该像素点的像素值与样本值的样本差异可以通过公式(2)确定:
diff=|value(i,j)-samplei| (2)
在公式(2)中,diff表示样本差距;value(i,j)表示位置为(i,j)点的像素点的像素值;samplei表示位置为(i,j)点的样本模型中的样本值。
3)背景模型的更新
待认证视频中多帧图像的背景之间差异可能比较大,用一个固定不变的背景模型无法准确的描述待认证视频中每帧图像的背景图像的特点,这样的背景模型也就无法准确的提取运动目标图像。因此,为准确描述每帧图像的背景图像的特征,以便于能够准确的提取运动目标图像,需要对背景模型进行更新,并使用更新后的背景模型提取运动目标图像。
在更新背景模型时,具体的更新方法可以为:从第2帧图像开始,对于每帧图像中的每一个像素点,当确定该像素点不属于运动目标图像即属于(即为背景图像的背景点)时,可以以均匀分布[0,θ-1]的随机概率去更新该像素点所在预设邻域内的随机位置的样本模型中的随机的一个样本值。例如,当预设邻域为8邻域时,一个像素点最多可以在8个预设领域内,则可以从这8个预设邻域内随机选择一个预设邻域,并在选择的预设邻域内随机选择一个位置的样本模型,并从选择的样本模型中的随机选择一个样本值进行更新。较佳的,当预设领域为8领域,样本模型中的样本个数为20时,θ可以根据经验确定,例如θ可以选择为16。需要说明的,任何用现有技术实现对场景图像进行更新方法均适用于本发明实施例,在此不做限定。
至此,运动目标图像的提取过程可以描述为:对于待认证视频的首帧图像,根据初始化的背景模型,提取运动目标图像,在之后的运动目标图像提取过程中,根据背景点更新背景模型。当背景模型更新后,根据更新后的背景模型继续提取的运动目标图像,如此重复,边更新背景模型,边提取运动目标图像,在背景模型更新后,使用更新后的背景模型提取运动目标图像。
4)场景图像的生成
在实际应用中,当视频的场景相对稳定不容易发生变化时,在短时间内视频中的背景图像变化较小,例如监控视频。对于具有这样特征的视频,可以多帧图像共用一个场景图像。
其中,在一个实施例中,对于步骤A2中“将背景图像之间的差距小于等于预设差距的帧图像视为一个集合,并针对每一个集合,从该集合中选取一帧图像的背景图像生成该集合中的每一帧图像对应的场景图像”,进行举例说明:例如待认证视频共有100帧图像,分别标号为1-100,其中,第1帧图像至第30帧图像的30个背景图像之间的差距小于等于预设差距,因此第1帧图像至第30帧图像为一个集合,从该集合中选择一帧图像的背景图像生成该集合的每一帧图像的场景图像。类似的,当剩余的第31帧图像至第100帧图像的背景图像的差距小于等于预设差距时,第31帧图像至第100帧图像共用另一个场景图像。由此可见,一百帧图像仅用两个场景图像,描述这100帧图像的背景图像。由此,在本发明实施例中,每一帧图像,可以用场景图像和运动目标图像表示。由于多帧图像共用一个场景图像,在之后的生成视频的待认证哈希码的过程中,由于用场景图像代替多帧图像的背景图像,可以减少哈希码的长度,提高哈希码匹配的效率,从而提高视频认证的效率。
其中,在一个实施例中,当通过上述的背景模型生成场景图像时,场景图像的生成可以包括场景图像的建立和更新两个过程,具体如下:
a、场景图像的建立
根据待认证视频的首帧图像初始化背景模型后,可以根据该背景模型提取首帧图像的运动目标图像,并由不属于运动目标图像的像素点构成首帧图像的背景图像。将首帧图像的背景图像生成初始场景图像。之后进入下一帧图像的处理流程。
对于第2帧图像,使用背景模型提取该帧图像中的运动目标图像,和背景图像,并用背景图像的像素点继续更新背景模型。将第2帧的背景图像生成的场景图像与第一个场景图像进行比对,当比对的结果不满足更新场景图像的条件时(即背景图像之间的差距小于等于预设差距),继续用初始场景图像作为第2帧图像对应的场景图像;当比对的结果满足更新场景图像的条件时(即背景图像之间的差距大于预设差距时),用第2帧图像的背景图像生成的场景图像作为更新后的场景图像,并用更新后的场景图像作为第2帧图像对应的场景图像。之后进入下一帧图像的处理流程。
对于第3帧图像至待认证视频的最后一帧图像,与第二帧图像的处理流程的方法相同,在此不再赘述。
综上可知,对于当前帧图像,当该帧图像的背景图像与当前的场景图像之间差距小于等于预设差距时,即表示当前帧图像的背景图像与上一帧图像的背景图像之间的差距小于等于预设差距,则当前帧图像划分至上一帧图像所在的集合。反之,当当前帧图像的背景图像与当前的场景图像之间差距大于预设差距时,即表示当前帧图像的背景图像与上一帧图像的背景图像之间的差距大于预设差距,则当前帧图像不能划为上一帧图像所在的集合,由此从当前帧图像开始建立一个新的集合,并用新的场景图像作为新的集合的每一帧图像对应的场景图像。由此,通过循环执行上述的过程,得到每一帧图像的运动目标图像,和每一帧图像对应的场景图像。
其中,在一个实施例中,也可以将一个集合中任一背景图像选来用作生成该集合的场景图像,本发明对此并不限定。
其中,在一个实施例中,根据背景图像生成场景图像可以执行为:在一帧图像中,根据预设规则填充除背景图像的像素点之外的像素点的像素值。预设规则例如是,用默认的像素值,或者,从背景模型中的对应位置选择一个像素值。需要说明的是,当从从背景模型中的对应位置选择一个预设位置的像素值填充,以便于减少因随机选择像素值造成的差距,该差距例如是待认证视频与原始视频的对应场景图像之间的差距。
b、场景图像的更新
可以在背景图像的变化达到一定变化程度后,对场景图像进行更新,实现多帧图像对应一个场景图像。在一个实施例中,可以通过计算当前提取的背景图像生成的场景图像与当前场景图像的帧差,更新当前场景图像。该帧差可以用一个比值表示,该比值的求取过程为:首先计算当前帧图像提取的背景图像生成的场景图像与当前场景图像中对应位置的像素值差距,将像素值差距超过预设帧差差距的像素点的个数除以整帧图像的像素点的总数,用最终获得的比值表示帧差,当该帧差大于预设帧差阈值时,更新当前场景图像。可以通过公式(3)计算帧差:
其中,在公式(3)中,ratio表示帧差,NUMchange表示像素值差距超过预设帧差差距的像素点的个数;NUMtotal表示整帧图像的像素点的总数。
其中,需要说明的是,也可以通过计算当前提取的背景图像生成的场景图像,与当前的场景图像之间的色差更新场景图像,具体的:
方式一:计算根据提取的背景图像生成的场景图像与当前场景图像中对应位置的像素点的色差,并计算两图像之间的平均色差,当平均色差大于色差阈值时,更新场景图像,当平均色差小于等于色差阈值时,不更新场景图像。
方式二:计算根据提取的背景图像生成的场景图像与当前场景图像中对应位置的像素点的色差,并计算色差大于色差阈值的像素点的个数,当色差大于色差阈值的像素点的个数与整帧图像的像素点的个数的比值大于预设比值时,更新场景图像,否则,不更新场景图像。
需要说明的是,任何能够表示图像之间的差距的以便于确定是否更新场景图像的方法均适用于本发明实施例,本发明实施例对此不做限定。
由此,本发明实施例中,通过更新场景图像,可以在保证多帧图像共用一个场景图像的前提下,提高场景图像描述背景图像的准确性。
5)运动目标图像的位置信息的确定
其中,当通过多样本建模,建立背景模型并提取运动目标图像之后,每一个运动目标图像都是由至少一个像素点组成的像素点集合,可以根据运动目标图像的像素点在所在的帧图像中的位置,确定运动目标图像的位置信息。具体的,可以以一个能够包括运动目标图像的最小的图形描述该运动目标图像,例如矩形、正方形、圆形等。并以描述该图形在一帧图像中的位置信息,表示运动目标图像在待认证视频中的位置信息。例如,当使用矩形表示运动目标图像时,可以以矩形的左上角顶点的在帧图像中的位置坐标,以及改矩形的长和宽来表示运动目标图像的位置信息,具体的,可以由公式(4)表示一运动目标图像:
recti={xi,yi,widthi,heighti}其中,i=1,2,3......,n (4)
其中,在公式(4)中,recti表示第i个运动目标图像,(xi,yi)表示矩形左上角顶点的坐标(可以用该矩形表示的运动目标图像所在帧图像中的位置表示);widthi表示矩形的宽;heighti表示矩形的高。
其中,可以以每一帧图像为单位对运动目标图像进行标号,此时,公式(4)中的n值会随着帧图像不同而不同;也可以以整段待认证视频为单位对运动目标图像标号,此时公式(4)中的n值对于一段确定的待认证视频是一个固定值。现有技术中能够表示运动目标图像的位置的方法均适用于本发明实施例,本发明对此不做限定。
当通过步骤A1将获取场景图像和运动目标图像后,下面可以分别生成表示场景图像的场景哈希码和运动目标图像的目标哈希码,具体的,生成场景图像的场景哈希码的过程,可包括以下内容:
其中,在一个实施例中,场景哈希码的生成过程包括感知哈希特征提取和特征量化编码两部分,由此,步骤A3可执行为以下步骤:
步骤A31:针对每一个场景图像,对该场景图像进行分块;并,将每一个分块视为一个预设区域,对每一块场景图像进行感知哈希特征提取。
其中,在一个实施例中,可以对场景图像均匀分块,也可以非均匀分块。非均匀分块例如是,当场景图像中具有描述该场景图像的特征的图像信息集中在一部分区域时,可以将该部分区域划分为多个小块,而对于特征变化不多例如整体为一个颜色的部分区域划分为一个较大块。
其中,感知哈希是多媒体数据集到感知摘要集的一类单向映射,即将具有相同感知内容的多媒体数字表示唯一的映射为一段数字摘要,并满足感知鲁棒性和安全性。通过感知哈希特征提取后,原始图像的数据集的数据量可以明显减小,由感知摘要集表示原始图像的特征。
其中,在一个实施例中,由于场景图像包含帧图像中的大部分信息,所以场景图像的感知哈希特征提取方法需要尽量提取较为精细的特征,因此,可以采用分块的变换域特征提取方法进行场景图像的感知哈希特征提取,该方法可以是分块DCT变换(DiscreteCosine Transform,离散余弦变换)、分块DWT变换(Discrete Wavelet Transform,离散小波变换)、分块DFT变换(Discrete Fourier Transform,离散傅里叶变换)等。任何可以提取精细的感知哈希特征的方法均适用于本发明实施例,对此不做限定。
步骤A32:根据感知哈希特征提取结果,生成每一个场景图像的特征系数集。
例如,针对每一分块,当通过DCT变换进行感知哈希特征提取时,可以得到该分块的DCT系数矩阵,从该系数矩阵中提取预设第一系数数量的DC系数(直流系数)和预设第二系数数量的AC系数(交流系数)作为该分块的特征系数矩阵中的特征系数,较佳的,为能够有效的表征场景图像的特征,将DCT系数矩阵中的各系数按照从大到小的顺序进行排序,获取预设系数数量(包括第一系数数量或第二系数数量)的系数时,获取排序靠前的预设数量的系数。此外,还可以根据AC系数在DCT系数矩阵中的位置选取预设数量的AC系数,例如可以选取矩阵中所处位置的行号和列号之和小于预设和值的位置的AC系数。对于一个场景图像,该场景图像中所有分块的特征系数矩阵组成该场景图像的特征系数集。其中,每个分块的特征系数矩阵可以由公式(5)表示,每个场景图像的特征系数集可以由公式(6)表示:
在公式(5)中,表示第i个分块的特征系数矩阵;Y表示特征系数矩阵中的特征系数;n1表示第一系数数量;n2表示第二系数数量。
则根据公式(5),可以得到整个场景图像的特征系数集,即公式(6)为:
在公式(6)中,FEATURE表示特征系数集;表示场景图像中记为1的分块的特征系数矩阵,表示场景图像中记为2的分块的特征系数矩阵;表示场景图像中记为N的分块的特征系数矩阵;N为场景图像分块的数量。
步骤A33:针对特征系数集中的每一种特征系数,在该种特征系数所在的数据范围内,计算出预设数量的谷底,由谷底将该种特征系数的数据范围划分为不同的量化区间;并将每一个量化区间内的特征系数进行量化,并编码为哈希码;其中,在编码时,相邻特征系数的哈希码的不同位的位数小于等于第一预设阈值,非相邻特征系数的不同位的位数大于第二预设阈值,其中,第一预设阈值小于等于第二预设阈值。
步骤A34:由每一块场景图像的哈希码组成一个块哈希码,并由一个场景图像的所有块哈希码生成该场景图像的场景哈希码。
其中,在步骤A33中,每一个分块的特征系数矩阵中的每一个元素为一种特征系数,例如,继续沿用前面的例子,若每块场景图像通过DCT变换后,获取5个AC系数,1个DC系数,则特征系数的种类为6(即5+1)。当由公式(6)形成特征系数集时,该特征系数集中的每一行特征系数为由N个来自不同的分块的特征系数组成,每一行特征系数为一种特征系数的所有成员。
其中,在一个实施例中,获得场景图像的特征系数集之后,为了减少特征系数集中的冗余信息,同时减少传输成本,需要对特征系数集进行量化。量化方法要保证减少冗余信息的同时保证视频认证结果的鲁棒性和敏感性,具体的,在本发明实施例中通过多区间非均匀量化的方法,对特征系数集进行量化编码,具体的,仍然延续前述的例子,每块场景图像通过DCT变换后,获取5个AC系数,1个DC系数,特征系数集中每一行数据为一种特征系数,对每一种特征系数的量化可以执行为以下操作:
步骤A33-1:将特征系数集的每一行数据根据该行特征系数的数据范围,和预设规则计算该种特征系数的数据直方图。
具体的,将每行特征系数的最大值和最小值所确定的数据范围,分成预设个数的区间,该预设个数的区间用于进行直方图统计,以统计出每个区间包含的特征系数的数量。
步骤A33-2:从每行特征系数的中值所在的区间开始计算谷底,向两边计算直方图的谷底。
较佳的,计算谷底的方法为:从中值所在的区间向两边计算,如果当前区间包含的特征系数的数量小于相邻的两个区间各自包含的特征系数的数量,则将当前区间记为谷底。若预设量化区间个数为m时,则需要找到m-1个谷底。较佳的,为了满足对称性的需求,量化区间的个数m可以为奇数。
步骤A33-3:将谷底作为量化区间的界限值,对每个量化区间内的特征系数进行量化编码。
其中,较佳的,在编码方式设计上相邻特征系数的哈希码的不同位的位数小于等于第一预设阈值,非相邻特征系数的不同位的位数大于第二预设阈值,其中,第一预设阈值小于等于第二预设阈值。较佳的两特征系数的距离越远,则这两特征系数的哈希码的不同位的位数越多,这样可以根据哈希码不同位的数量来确定对应特征系数的哈希码的差距。
在执行步骤A33之后,实现了对特征系数集进行量化,较佳的,可以将每块场景图像的哈希码按照预设顺序(该预设顺序例如是按照空间顺序自上而下,由左至右的顺序)首尾相连,可以得到场景图像的场景哈希码。需要说明的是,任何有序连接各分块的哈希码的方法均适用于本发明实施例,对此不做限定。
对于步骤A4,生成运动目标图像的目标哈希码的过程,可包括以下内容:
其中,运动目标图像的目标哈希码的生成过程,也包括感知哈希特征提取和特征量化编码两部分,其中,运动目标图像的哈希码生成的方法可以与场景图像的哈希码的生成方法相同,也可以不同。在本发明实施例中,当运动目标图像占整帧图像的比例大于等于预设比例时,即运动目标图像占整帧图像的较大部分时,可以采用与场景图像相同的哈希码生成方法,当运动目标图像占整帧图像的比例小于预设比例时,即运动目标图像占整帧图像的较小部分时,由于运动目标图像本身的特征比较明显,因此只需要提取其粗略的整体特征即可,此时,例如可以采用提取整体的Hu矩来粗略代表运动目标图像的整体特征,具体的,通过求取运动目标图像的7个Hu矩作为运动目标图像的特征系数。然后,通过取整操作实现对7个特征系数的量化,这样便于实现和快速生成运动目标图像的哈希码,从而提高视频认证的速度。需要说明的是,现有技术中实现对运动目标图像的特征系数矩阵的量化方法均适用于本发明实施例,本发明实施例对此不做限定。
经过上述步骤A1-步骤A4分别生成了场景哈希码和目标哈希码之后,便可以生成待认证哈希码,具体的:
其中,在一个实施例中,步骤A5可执行为以下步骤:
步骤A51:确定每一个场景图像的场景哈希码的标识;并将每一个运动目标图像的目标哈希码和该目标图像的位置信息视为一个目标结构体。
其中,在一个实施例中,通过指针方式指向场景哈希码可以视为一种确定场景哈希码的标识的方法。
步骤A52:针对待认证视频的每一帧图像,根据预设空间位置关系,将该帧图像的运动目标图像的目标结构体进行级联,并在预设位置添加该帧图像对应的场景图像的标识,生成帧图像哈希码。
其中,对于场景变化不大的视频,例如监控视频,每帧图像中的最大差别在于运动目标图像的位置和形态的变化,而场景图像往往是稳定的。因此,可以使多帧图像共用一个场景图像。具体的,例如,针对每一帧图像,将该帧图像中每一个目标结构体按照其对应的运动目标图像在该帧图像中的空间位置,按照自上而下,由左至右的顺序将每一个目标结构体进行级联,然后在最后一个目标结构体后以指针的方式指向该帧图像对应的场景图像的场景哈希码,由此,最终生成了帧图像哈希码。从而实现,多帧图像共用一个场景图像的场景哈希码。
步骤A53:按照在待认证视频的时序关系,级联每一帧图像的帧图像哈希码,生成待认证视频的待认证哈希码。
其中,具体的,例如,按照在视频中的时间先后顺序计量帧图像哈希码,由此,生成最终的待认证哈希码。
本发明实施例中,通过多帧图像共用一个场景图像,从而通过减少场景图像的哈希码的数量,减少整段待认证视频的哈希码的长度,从而在进行视频认证时,因为哈希码的长度减少,可以降低哈希码的比对长度,从而提高视频认证的速度。
其中,在一个实施例中,当待认证视频通过传输通道(例如网络),传输给用户时,在传输的过程中将不可避免的对待认证视频的视频信息产生不同程度的改变,而这种改变会对视频认证结果产生一定的影响,因此,为了降低这种改变对于视频认证的影响,在步骤A1之前,还可以对待认证视频进行平滑处理。具体的,由于人眼对视频图像的色彩信息的敏感程度不同,其中,人眼对亮度信息的敏感程度远大于色彩信息中的色调信息以及饱和度信息,所以,在对视频图像进行平滑处理时,可以提取待认证视频的亮度信息,而仅对亮度信息进行平滑处理。例如可以对YUV颜色空间的Y信息进行平滑处理,其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。若视频图像所使用的颜色空间并非YUV颜色空间时,可以根据现有技术将视频图像的颜色空间转换到YUV颜色空间,进行亮度平滑处理。需要说明的是,可以就实际需求,对其他的颜色信息进行平滑处理以降低上述传输过程中的改变对视频认证的影响,也可以采用其它现有技术的方法达到降低上述传输过程中的改变对视频认证的影响的目的,本发明实施例对此不做限定。
较佳的,可以采用高斯平滑进行平滑处理方法,也可以采用现有技术中提供的其它平滑处理方法,本发明实施例对此不做限定。
至此,对待认证哈希码的生成过程已介绍完,下面对于视频认证的过程进行详述,该认证过程即对待认证视频的待认证哈希码和原始视频的参考哈希码的匹配过程,具体的可以以帧图像为单位匹配每帧图像的帧图像哈希码,在匹配每帧图像的帧图像哈希码时,可以分为场景图像的场景哈希码的匹配,和运动目标图像的目标哈希码的匹配:
1)场景哈希码的匹配
当预设区域为场景图像的分块时,步骤202可以执行为以下操作:将待认证视频和原始视频中帧号相同的图像视为一组待认证图像,以分块为单位,针对每一个分块,将该分块的哈希码与原始视频中对应分块的块哈希码进行比对,判断两分块中的块哈希码中不同位的位数是否超过第三预设阈值;当不同位的位数超过第三预设阈值时,确定该分块被篡改;当不同位的位数小于等于第三预设阈值时,确定该分块正常。
其中,在一个实施例中,第三预设阈值可以与前述的第一预设阈值相同(该第一预设阈值为,对场景图像进行编码时要求相邻系数间哈希码不同位的位数小于第一预设阈值),当然,考虑到误差的存在,第三预设阈值也可以与前述的第一预设阈值也可以不相同,那么改第三预设阈值可以凭经验或用户需求设定。
当第三预设阈值与第一预设阈值相同时,当确定不同位的位数超过第三预设阈值时,根据前述要求相邻特征系数间不同位的位数较少,非相邻特征系数间不同位的位数较多的要求,则可以确定该哈希码对应的特征系数从一个量化区间跳跃整个相邻量化区间而到达不相邻的量化区间。即,该特征系数的变化引起其位置变化大于预设的整个量化区间,即超越了整个容忍范围,因此判定该特征系数发生变化,也即该特征系数对应的分块发生了变化,由此确定,该分块被篡改。否则,当不同位的位数小于等于第三预设阈值时,则说明该特征系数的变化还没有跨过预设的容忍区间,即在容忍范围之内,由此确定该特征系数未发生变化,也即确定该特征系数对应的分块没有发生变化。因此,对应一个分块,其特征系数矩阵中有多个特征系数,当有至少一个特征系数的哈希码与原始视频中对应分块的对应预设系数的哈希码的不同位的位数超过第三预设阈值时,则表示该分块被篡改,否则,表示该分块正常。
以上,通过容忍区间以及前述的多区间非均匀量化的方法,能够提高视频认证的鲁棒性,相对于现有技术通过数字水印的方法进行视频认证时,本发明实施例中采用的视频认证方法能够对一些正常的操作具有鲁棒性,由此可以提高视频认证的准确性。
2)运动目标图像的目标哈希码的匹配
可以根据运动目标图像的哈希码生成方法,分为以下两种情况:
第一种情况:对于运动目标图像所占整帧图像的比例大于等于预设比例的情况,即当运动目标图像的哈希码生成方法与场景图像的哈希码生成方法相同时,则运动目标图像的哈希码匹配方法与场景图像的哈希码匹配方法相同,在此不再赘述。
第二种情况:对于运动目标图像所占整帧图像的比例小于预设比例的情况,即以运动目标图像为单位提取该运动目标图像粗略的整体特征时,可以以运动目标图像为单位进行哈希码匹配,具体的,针对每一个运动目标图像,计算该运动目标图像的哈希码与原始视频中对应运动目标图像的目标哈希码的差值,并计算该差值所占原始视频中对应运动目标图像的目标哈希码的比率;当计算得到的比率大于等于第四预设阈值时,确定该运动目标图像被篡改;当计算得到的比率小于第四预设阈值时,确定该运动目标图像正常。
具体的,当计算得到的变化率(即比率)大于第四预设阈值时,则确定该特征系数发生变化。对于运动目标图像,其所占整帧图像的比例较小,也即该运动目标图像较小,因此篡改操作对其的影响较大。因此,对于目标哈希码中的多个特征系数的哈希码,当有至少一个特征系数的哈希码发生变化时,则确定该运动目标图像被篡改,当有通过公式(7)计算变化率:
在公式(7)中,ChangeRatioi表示运动图像的第i个哈希码的变化率;表示原始视频中对应运动目标图像的第i个特征系数的哈希码;表示待认证视频中运动目标图像的第i个特征系数的哈希码。
其中,第四预设阈值的取值越大,则鲁棒性越差,敏感性越好,可以根据实际需求确定该第四预设阈值的取值。
需要说明的是,上述通过计算变化率认证运动目标图像是否被篡改的方法,也同样适用于场景图像的哈希码匹配的方法,例如可以以分块为单位,计算每个分块的每个特征系数的变化率,当有至少一个系数的变化率超过第四预设阈值时,则确定该分块被篡改。
综上,本发明实施例中,通过用相同的流程和方法获取原始视频和待认证视频的哈希码,并通过哈希码进行视频认证,相对于数字水印进行视频认证的方法易于实现,且不会对图像的质量产生影响,通过对视频图像进行场景图像和运动目标图像分离,并分别生成哈希码,有利于分别判断场景图像和运动目标图像是否被篡改,并进一步的,可以根据场景图像的分块确定场景图像被篡改的具体位置,根据运动目标图像的位置信息,确定运动目标图像被篡改的位置。通过在生成哈希码时进行多区间非均匀量化编码,在视频认证时通过具有容忍区间的哈希码比较方法,相对于现有的数字水印技术能够提高鲁棒性,提高视频认证的准确性。
实施例二
下面以对监控视频的视频进行视频认证为例,由于监控视频的场景图像比较稳定,因此可以建立至少一个场景图像用于表示该监控视频的场景图像。对应监控视频的场景图像,可以通过预先分块,并对每个分块进行DCT变换进行每个分块的感知哈希特征提取,由1个DC系数和5个AC系数组成每个分块的特征系数矩阵,然后通过多区间非均匀量化获得每个分块的块哈希码。由于监控视频中运动目标图像所占整帧图像的比例较小,因此可以每一个目标图像为单位,对每一个目标图像将求得的7个Hu矩作为该运动目标图像的特征系数矩阵,然后通过取证操作获得该运动目标图像的哈希码,最后通过以每个分块为单位,对场景图像的块哈希码通过容忍区间的方法进行匹配,对运动目标图像,采用变换率进行匹配,完成视频认证。具体的,如图3所示,该方法包括以下步骤:
步骤301:在待认证视频的首帧图像中初始化背景模型。
具体的,步骤301中,初始化背景模型的方法可以执行为:对首帧中每个像素在其8邻域内随机抽取20个样本,组成初始的背景模型。
步骤302:根据初始化后的背景模型从待认证视频的首帧图像中提取运动目标图像和背景图像,生成每个运动目标图像的位置信息,并根据背景图像生成当前场景图像,将该当前场景图像作为首帧图像对应的场景图像。
对于首帧图像中的每一个像素点,通过公式(2)确定该像素点是否属于背景点(即是否属于背景模型),具体的,将该像素点与背景模型中对应位置的像素点的样本模型中的每一个样本值进行比较,获得样本差距,当获得的样本差距小于样本阈值的像素点的数量大于预设样本差距数量时,则确定该像素点为背景点,否则,该像素点为运动目标图像的像素点。
运动目标图像的位置信息,根据前述公式(4),由可包含运动目标图像的最小矩形的左上角顶点和该矩形的宽和高来表示。
步骤303:从待认证视频的第2帧图像开始对背景模型进行更新,并针对每一帧图像使用更新后的背景模型提取运动目标图像和背景图像。
更新方法参见步骤A1中的更新背景模型的方法,在此不再赘述。
步骤304:从待认证视频的第2帧图像开始,针对每一帧图像,根据提取的背景图像判断当前场景图像是否更新,当确定当前场景图像更新时,将更新后的场景图像作为与该帧图像对应的场景图像,当确定当前场景图像不更新时,将当前场景图像作为与该帧图像对应的场景图像。
具体的,监控视频的场景图像比较稳定,短时间内变化不明显,可以通过实施例一中描述的通过计算帧差或色差的方法,更新当前场景图像,在此不再赘述。
步骤305:针对每一个场景图像,对该场景图像进行分块,并生成每块场景图像的块哈希码,由该场景图像的所有块哈希码生成该场景图像的场景哈希码。
具体的,步骤305可执行为以下步骤:
步骤C1:针对每一个场景图像,对该场景图像进行分块,每一块为一个分块;并,对各分块进行DCT变换,将DCT变换后的DCT系数矩阵中,选取1个DC系数和5个较大的AC系数作为该分块的特征系数。例如可以选取所在的行号和列号之和小于5的位置的AC系数,例如行号为第一行,列号为第一列时,行号和列号之和为2,小于预设和值5,因此位于第一行第一列位置的AC系数作为选用系数。
具体的,将DCT系数矩阵中的AC系数按照从大到小的顺序排列,选取排序靠前的5个AC系数。
步骤C2:针对每一个场景图像,由该场景图像的所有分块的特征系数,构成该场景图像的特征系数集,其中,在该特征系数集中,每一行的特征系数均来自不同的分块,每一行特征系数为一种特征系数的所有成员。
步骤C3:针对特征系数集中的每一行特征系数,在该行特征系数所在的数据范围内,将该行特征系数划分为500个区间,并从该行特征系数的中值所在的区间开始向两边计算出4个谷底,由谷底将该种特征系数的数据范围划分为不同的量化区间;并将每一个量化区间内的特征系数进行量化,并编码为哈希码;其中,在编码时,相邻特征系数的哈希码的不同位的位数小于等于1,非相邻特征系数的不同位的位数大于1。
通过步骤C3实现了对场景图像中每个分块的多区间非均匀量化。其中,由于4个谷底将每行特征系数划分为5个量化区间,因此可以用3位二进制码表示每一个特征系数。由此,每一个分块由6个3位二进制码组成该分块的块哈希码。
为便于理解,如图4,为本发明实施例中,在预设谷底的数量为4时,进行多区间非均匀量化方法的示意图,在图4中,特征系数集中一行特征系数的范围有两端的两个黑色实心圆点表示;每个Interval代表一个谷底,4个固定将该行特征系数划分为5个量化区间,每个量化区间的量化结果为每个量化区间上面对应的二进制码。
步骤306:以运动目标图像为单位,针对每一个运动目标图像,提取该运动目标图像的7个Hu矩作为该运动目标图像的特征系数,并通过取整操作,对该运动目标图像的特征系数进行量化,生成该运动目标图像的目标哈希码。
步骤307:针对每一个运动目标图像,将该运动目标图像的目标哈希码和该目标图像的位置信息视为一个目标结构体。
其中,需要说明的是步骤305-步骤307的执行顺序不受限。
步骤308:针对待认证视频的每一帧图像,根据预设空间位置关系,将该帧图像的运动目标图像的目标结构体进行级联,并由最后一个目标结构体以指针的方式指向该帧图像对应的场景哈希码,由此生成帧图像哈希码。
步骤309:按照每帧图像在待认证视频中的时序关系,依次级联每帧图像的帧图像哈希码,生成该待认证视频的待认证哈希码。
如图5所示,为生成待认证哈希码的组织方式的示意图,在图5中,每一个SceneHash代表一个场景图像的场景哈希码;每一个frame代表一帧图像;每一帧图像中,每一个Rect表示该帧图像中的一个运动目标图像,每一个MotObjHash表示对应运动目标图像的目标哈希码。其中以frame1为例,最后一个运动目标图像Rect3以指针的方式指向场景图像SceneHash1的场景哈希码。各帧图像以在待认证视频中的时序关系,级联起来生成待认证视频的待认证哈希码。
步骤310:获取原始视频的参考哈希码,其中该参考哈希码的生成算法与待认证哈希码的生成算法相同。
步骤311:对待认证哈希码和参考哈希码进行匹配,对待认证视频进行认证。
其一,对于场景图像,以分块为单位,针对场景图像的每一个分块,将该分块的哈希码与原始视频中对应分块的块哈希码进行比对,判断不同位的位数是否超过1个;当不同位的位数超过1个时,确定该分块被篡改;当不同位的位数小于等于1时,确定该分块正常。
在本发明实施例中,每个分块有6个特征系数,每个特征系数由3位二进制码表示,由此,可以通过公式(8)确定每个特征系数的哈希码的不同位的位数:
在公式(8)中,DiffBit表示不同位的位数,Dbiti表示待认证视频中特征系数的二进制码的第i位;Obiti表示预算内视频中对应分块的对应特征系数的第i位。
需要说明的是,当用k位二进制码表示每个特征系数时,公式(8)中的3可以替换为k,用以计算每个特征系数的哈希码不同位的位数。
其二,对于运动目标图像的哈希码的匹配,以运动目标图像为单位,针对待认证视频的每一个运动目标图像,计算该运动目标图像的哈希码与原始视频中对应运动目标图像的目标哈希码差值,并计算该差值所占原始视频中对应运动目标图像的目标哈希码的比率;当计算得到的比率大于等于第四预设阈值时,确定该运动目标图像被篡改;当计算得到的比率小于第四预设阈值时,确定该运动目标图像正常。
具体的计算比率的方法请参见前述公式(7)的方法,在此不再赘述。
本发明实施例,以监控视频为例,通过场景图像和运动目标图像分离,对应具有丰富特征的场景图像,进行精细的感知哈希特征提取,和多区间非均匀量化编码,生成场景图像的场景哈希码,并采用具有容忍区间的哈希码比较方法进行认证,能够提高视频认证的鲁棒性,从而提高视频认证的准确性,使得本发明实施例提供的视频认证方法能够更普遍适用。对于较小的运动目标图像,进行粗略的感知哈希特征提取,在不影响认证结果的情况下能够提高提取感知哈希特征和量化编码的效率。通过由多帧图像共用一个场景图像(即场景图像),从而在生成待认证视频的待认证哈希码时,减小该哈希码的长度,在进行视频认证时,降低哈希码匹配的数量,从而提高视频认证的效率。此外,通过分块,和运动目标图像的位置信息,当确定待认证被篡改时,可以准确的确定篡改的位置。
基于相同的构思,本发明实施例中还提供一种视频认证装置,如图6所示,为该装置的示意图,该装置包括:
待认证哈希码生成模块601,用于生成待认证视频的待认证哈希码,并获取该待认证视频的原始视频的参考哈希码,所述待认证哈希码中包括:针对待认证视频的每一帧图像,对该帧图像的图像区域进行划分得到的每个预设区域的哈希码,以及表示每个预设区域在该帧图像中所处位置的位置信息;所述参考哈希码的生成算法与所述待认证哈希码的生成算法相同;
认证模块602,用于将待认证视频和原始视频中帧号相同的图像视为一组待认证图像,以预设区域为单位,对该组待认证图像中的每个对应预设区域的哈希码进行匹配;并
定位模块603,用于针对每个预设区域的哈希码,当该预设区域的哈希码与原始视频中对应预设区域的哈希码不匹配时,确定该预设区域被篡改,并根据该预设区域的位置信息确定该待认证视频被篡改的位置。
其中,在一个实施例中,如图7所示,所述待认证哈希码生成模块601,包括:
处理单元604,用于针对待认证视频的每一帧图像,获取该帧图像的背景图像和由该帧图像的非背景图像的像素点形成的至少一个运动目标图像,将每一个运动目标图像视为一个预设区域,并生成每一个运动目标图像在该帧图像中的位置信息;
场景图像生成单元605,用于将背景图像之间的差距小于等于预设差距的帧图像视为一个集合,并针对每一个集合,从该集合中选取一帧图像的背景图像生成该集合中的每一帧图像对应的场景图像;
场景哈希码生成单元606,用于针对每一个场景图像,对该场景图像进行分块,将每一个分块视为一个预设区域,并生成每块场景图像的块哈希码,由该场景图像的所有块哈希码生成该场景图像的场景哈希码;
目标哈希码生成单元607,用于针对每一个运动目标图像,生成该运动目标图像的目标哈希码;
待认证哈希码生成单元608,用于根据所述场景哈希码、所述目标哈希码、以及所述运动目标图像的位置信息生成所述待认证视频的待认证哈希码。
其中,在一个实施例中,所述待认证哈希码生成单元,包括:
确定子单元,用于确定每一个场景图像的场景哈希码的标识;并将每一个运动目标图像的目标哈希码和该目标图像的位置信息视为一个目标结构体;
帧图像哈希码生成子单元,用于针对所述待认证视频的每一帧图像,根据预设空间位置关系,将该帧图像的运动目标图像的目标结构体进行级联,并在预设位置添加该帧图像对应的场景图像的标识,生成帧图像哈希码;
待认证哈希码生成子单元,用于按照在所述待认证视频的时序关系,级联每一帧图像的帧图像哈希码,生成所述待认证视频的待认证哈希码。
其中,在一个实施例中,所述场景哈希码生成单元,包括:
感知哈希特征提取子单元,用于针对每一个场景图像,对该场景图像进行分块;并,将每一个分块视为一个预设区域,对每一块场景图像进行感知哈希特征提取;
特征系数集生成子单元,用于根据感知哈希特征提取结果,生成每一个场景图像的特征系数集;
编码子单元,用于针对特征系数集中的每一种特征系数,在该种特征系数所在的数据范围内,计算出预设数量的谷底,由所述谷底将该种特征系数的数据范围划分为不同的量化区间;并将每一个量化区间内的特征系数进行量化,并编码为哈希码;其中,在编码时,相邻特征系数的哈希码的不同位的位数小于等于第一预设阈值,非相邻特征系数的不同位的位数大于第二预设阈值,其中,第一预设阈值小于等于第二预设阈值;
场景哈希码生成子单元,用于由每一块场景图像的哈希码组成一个块哈希码,并由一个场景图像的所有块哈希码生成该场景图像的场景哈希码。
其中,在一个实施例中,如图7所示,所述认证模块602,包括:
分块匹配单元609,用于当预设区域为场景图像的分块时,将待认证视频和原始视频中帧号相同的图像视为一组待认证图像,以分块为单位,针对每一个分块,将该分块的哈希码与原始视频中对应分块的块哈希码进行比对,判断两分块中的块哈希码中不同位的位数是否超过第三预设阈值;
第一确定单元610,用于当不同位的位数超过第三预设阈值时,确定该分块被篡改;当不同位的位数小于等于第三预设阈值时,确定该分块正常。
其中,在一个实施例中,如图7所示,所述认证模块602,包括:
运动目标图像匹配单元611,用于当预设区域为运动目标图像时,将待认证视频和原始视频中帧号相同的图像视为一组待认证图像,以运动目标图像为单位,针对每一个运动目标图像,计算该运动目标图像的哈希码与原始视频中对应运动目标图像的目标哈希码的差值,并计算该差值所占原始视频中对应运动目标图像的目标哈希码的比率;
第二确定单元612,用于当计算得到的比率大于等于第四预设阈值时,确定该运动目标图像被篡改;当计算得到的比率小于第四预设阈值时,确定该运动目标图像正常。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。