用于图像对比的数据压缩方法、图像对比方法及装置转让专利

申请号 : CN201811385075.0

文献号 : CN109544651B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 董淳光

申请人 : 深圳市墨者安全科技有限公司

摘要 :

本发明涉及一种用于图像对比的数据压缩方法、图像对比方法及装置。数据压缩方法,其包括以下步骤:划分步骤,采用设定的阈值划分所有的特征值,保留不小于阈值的特征值;排序步骤,将上一步保留的特征值从大至小排序,保留前N个特征值;存储步骤,将上一步得到的N个特征值中的每X个特征值及其初始位置通过Y个整型变量存储。通过将特征值划分、筛选后,将特征值和初始位置压缩存储在整型变量中,整个数据量得到极大减少,处理速度得到提高,对存储要求降低,同时也不会影响对比精度,能够适应整个互联网海量的图片对比处理。

权利要求 :

1.用于图像对比的数据压缩方法,其特征在于,所述数据压缩方法用于图像对比中的词袋技术获取图像的128个特征值的压缩处理,其包括以下步骤:划分步骤,采用设定的阈值划分所有的特征值,保留不小于阈值的特征值;

排序步骤,将上一步保留的特征值从大至小排序,保留前N个特征值;

存储步骤,将上一步得到的N个特征值中的每X个特征值及其初始位置通过Y个整型变量存储;

所述存储步骤中,将Y个整型变量拆分成X份单元存储位,单元存储位存储一个特征值及其初始位置的比特位数等于32×Y/X;

所述单元存储位分成两部分,一部分存储特征值所处的初始位置,另一部分存储特征值乘上固定倍率取整;

所述初始位置是指特征值在最初128个特征值中所处的位置。

2.如权利要求1所述的用于图像对比的数据压缩方法,其特征在于,所述固定倍率为

65536。

3.如权利要求1或2所述的用于图像对比的数据压缩方法,其特征在于,Y=1,X=1。

4.如权利要求1或2任一所述的用于图像对比的数据压缩方法,其特征在于,Y=3,X=

2。

5.一种图像对比方法,其特征在于,其包括权利要求1-4任一所述的数据压缩方法。

6.一种图像对比方法,其特征在于,其包括权利要求1或2所述的数据压缩方法以及还原步骤;所述还原步骤中,将单元存储位存储的特征值除以固定倍率得到原先特征值的近似值,同时提取单元存储位存储的特征值初始位置。

7.一种电子设备,其特征在于,包括:

处理器;以及

存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现根据权利要求1至6中任一项所述的方法。

8.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1至6中任一项所述方法。

说明书 :

用于图像对比的数据压缩方法、图像对比方法及装置

技术领域

[0001] 本发明涉及图像对比技术及数据处理技术,尤其涉及一种用于图像对比的数据压缩方法、图像对比方法及装置。

背景技术

[0002] 图像对比技术先已经有非常广泛的应用。目前图片比对的需求通常是:比对两张图是否相同、或部分相同,并且需要在互联网上做海量图片比对。如此大规模图像比对,在比对算法上有比较高的要求。既要确保比对准确性,也要保证机器能扛住。机器能否扛住,其中一个指标是内存、速度这一矛盾问题。对海量图片,如果将特征存储在磁盘中,读取一个特征假设0.01秒,那么100万个图就需要1万秒。互联网上图片远不止100万这个数量级。因此需要考虑减少数据存储量和处理量。
[0003] 一般比对算法都会用到使用视觉词袋技术,最早出现在神经语言程序学(NLP)和信息检索(IR)领域。该技术忽略掉文本的语法和语序,用一组无序的单词(words)来表达一段文字或一个文档。近年来,视觉词袋模型被广泛应用于计算机视觉中。与应用于文本的视觉词袋模型类比,图像的特征(feature)被当作单词(Word),把图像“文字化”之后,有助于大规模的图像检索。视觉词袋技术中,每一张图需要128个浮点类型(float/double)作为特征值,特征值表示的是每个样本图片到字典库的“距离”,取值范围是[0,1]。特征值大部分都是很小的小数,趋近于0,只有几个数据是零点几,或零点零几,所以要用浮点数表示,因此128个浮点数最少需要512字节(实际上加上辅助数据会远超这个数)。100万图片需要488.28MB内存,1000万张图需要4882.8MB内存,1亿张图需要48.828GB内存。这样庞大的数据量对处理速度和存储容量都提出了非常高的要求,有待改进。

发明内容

[0004] 本发明的目的在于为克服现有技术中数据量庞大的缺陷,而提供一种用于图像对比的数据压缩方法、图像对比方法及装置。
[0005] 为实现上述目的,本发明采用以下技术方案:用于图像对比的数据压缩方法,其包括以下步骤:
[0006] 划分步骤,采用设定的阈值划分所有的特征值,保留不小于阈值的特征值;
[0007] 排序步骤,将上一步保留的特征值从大至小排序,保留前N个特征值;
[0008] 存储步骤,将上一步得到的N个特征值中的每X个特征值及其初始位置通过Y个整型变量存储。
[0009] 本发明与现有技术相比的有益效果是:通过将特征值划分、筛选后,将特征值和初始位置压缩存储在整型变量中,整个数据量得到极大减少,处理速度得到提高,对存储要求降低,同时也不会影响对比精度,能够适应整个互联网海量的图片对比处理。
[0010] 其中一方面,存储步骤中,将Y个整型变量拆分成X份单元存储位,单元存储位存储一个特征值及其初始位置的比特位数等于32×Y/X。
[0011] 其中一方面,单元存储位分成两部分,一部分存储特征值所处的初始位置,另一部分存储特征值乘上固定倍率取整。固定倍率为65536。
[0012] 其中一方面,Y=1,X=1或者Y=3,X=2。
[0013] 本发明还公开了一种图像对比方法,其包括了以上的数据压缩方法以及还原步骤;还原步骤中,将单元存储位存储的特征值除以固定倍率得到原先特征值的近似值,同时提取单元存储位存储的特征值初始位置。
[0014] 本发明还公开了一种电子设备,包括:处理器;以及存储器,存储器上存储有计算机可读指令,计算机可读指令被处理器执行时实现以上的数据压缩方法和图像对比方法。
[0015] 本发明还公开了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上的数据压缩方法和图像对比方法。

附图说明

[0016] 图1为本发明数据压缩方法的流程图。

具体实施方式

[0017] 为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案作进一步介绍和说明。
[0018] 本发明数据压缩方法的流程图如图1所示。数据压缩方法可用于图像对比中的词袋技术的特征值的压缩处理。词袋技术的特征值通常为128个浮点数,通过本发明的数据压缩方法减少数据量,提高处理速度。
[0019] 本发明数据压缩方法包括以下步骤:划分步骤,采用设定的阈值划分所有的特征值,保留不小于阈值的特征值;排序步骤,将上一步保留的特征值从大至小排序,保留前N个特征值;存储步骤,将上一步得到的N个特征值中的每X个特征值及其初始位置通过Y个整型变量存储。
[0020] 存储步骤中,将Y个整型变量拆分成X份单元存储位,单元存储位存储一个特征值及其初始位置的比特位数等于32×Y/X。单元存储位分成两部分,一部分存储特征值所处的初始位置,另一部分存储特征值乘上固定倍率取整。固定倍率为65536。
[0021] 本发明还公开了一种图像对比方法,其包括了以上的数据压缩方法以及还原步骤;还原步骤中,将单元存储位存储的特征值除以固定倍率得到原先特征值的近似值,同时提取单元存储位存储的特征值初始位置。
[0022] 实施例一
[0023] 通过视觉词袋技术获取图像的128个特征值,随后对128个特征值进行处理。
[0024] 首先进行划分步骤,采用设定的阈值划分所有的特征值,保留不小于阈值的特征值。在实施例一中,采用阈值为0.00001,将原先128个特征值数据中,大于0.00001的特征值保留,小于等于0.00001的特征值都删除。阈值的选取根据实际情况确定,譬如许多特征值特别小,则将阈值设置成相对较大。
[0025] 然后进行排序步骤,将划分步骤保留下来的特征值从大至小排序,保留前N个特征值。譬如划分步骤保留下来28个,那么从大到小排序了之后,保留前面14个特征值,减少了特征值的数量。
[0026] 最后进行存储步骤,将排序步骤得到的N个特征值中的每X个特征值及其初始位置通过Y个整型变量存储。譬如将保留下来的14个特征值通过整型变量(INT)存储。要注意的是,初始位置是指特征值在最初128个特征值中所处的位置。
[0027] 在实施例一中,用1个整型变量存放1个特征值及其初始位置。也即是,将1个整型变量作为1份单元存储位,单元存储位存储一个特征值及其初始位置的比特位数等于32×1/1=32bit。单元存储位分成两部分,32比特位可以等分成相同的两半,前16bit存储特征值所处的初始位置,后16bit存储特征值乘上固定倍率,或者相互调换亦可。在其他实施例中,32比特位可以不是均等划分。特征值是浮点数,可用float类型存储,需要4字节。实施例一中若要用16个比特位存储,16个比特位表示整数最多是65536,那么就将固定倍率定位
65536,可将原先特征值乘上65536,然后取整。这样原先大于等于1/65536的特征值浮点数乘以65535后都可以表示成整数,该整数就可以存放在16比特位空间中,而小于1/65536的将被当成0。
[0028] 实施例一中的图像对比方法包括了实施例一的数据压缩方法以及还原步骤。还原步骤中,将单元存储位存储的特征值除以固定倍率65536得到原先特征值的近似值,同时提取单元存储位存储的特征值初始位置。最后便可以根据还原所得数据获得最初词袋特征,从而可以进行图像对比。
[0029] 实施例二
[0030] 通过视觉词袋技术获取图像的128个特征值,随后对128个特征值进行处理。
[0031] 首先进行划分步骤,采用设定的阈值划分所有的特征值,保留不小于阈值的特征值。在实施例二中,采用阈值为0.0001,将原先128个特征值数据中,大于0.0001的特征值保留,小于等于0.0001的特征值都删除。阈值的选取根据实际情况确定,譬如许多特征值特别小,则将阈值设置成相对较大。
[0032] 然后进行排序步骤,将划分步骤保留下来的特征值从大至小排序,保留前N个特征值。譬如划分步骤保留下来30个,那么从大到小排序了之后,保留前面12个特征值,减少了特征值的数量。
[0033] 最后进行存储步骤,将排序步骤得到的N个特征值中的每X个特征值及其初始位置通过Y个整型变量存储。譬如将保留下来的12个特征值通过整型变量(INT)存储。要注意的是,初始位置是指特征值在最初128个特征值中所处的位置。
[0034] 在实施例二中,用3个整型变量存放2个特征值及其初始位置。也即是,将3个整型变量等分成2份单元存储位,3个整型变量有96bit,因此单元存储位有32×3/2=48bit,足够用于存储一个特征值及其初始位置。单元存储位分成两部分,48比特位可以分成32bit和16bit,前32bit存储特征值所处的初始位置,后16bit存储特征值乘上固定倍率,或者其他实施例中相互调换亦可。特征值是浮点数,可用float类型存储,需要4字节。实施例二中若要用16个比特位存储,16个比特位表示整数最多是65536,那么就将固定倍率定位65536,可将原先特征值乘上65536,然后取整。这样原先大于等于1/65536的特征值浮点数乘以65535后都可以表示成整数,该整数就可以存放在16比特位空间中,而小于1/65536的将被当成0。
[0035] 实施例二中的图像对比方法包括了实施例一的数据压缩方法。
[0036] 本发明的方法通过将特征值划分、筛选后,将特征值和初始位置压缩存储在整型变量中,整个数据量得到极大减少,处理速度得到提高,对存储要求降低,同时也不会影响对比精度,能够适应整个互联网海量的图片对比处理。
[0037] 实施例三为一种电子设备,其包括:处理器;以及存储器,存储器上存储有计算机可读指令,计算机可读指令被处理器执行时实现实施例一或者二的数据压缩方法和图像对比方法。
[0038] 实施例四为一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现实施例一或者二的数据压缩方法和图像对比方法。
[0039] 以上陈述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。