本发明涉及通用缺陷类算法领域,尤其是指一种基于python的图片查重方法。
背景技术:
1、在实际通用缺陷类算法领域项目中,提供的图片数据往往有分辨率低、类别不清、部分重复等问题,这对前期进行数据清洗等预处理工作造成不小困难。
2、此外,客户为了隐藏图片信息,会将不同批次不同类别的图片名称统一设置为从0-n的序号,因此会出现以下几种情况:
3、(1)同一批数据的部分完全相同图片被命名成不同序号名称。
4、(2)不同批次数据的部分完全相同图片被命名成不同序号名称并分别储存在不同文件夹。
5、再者,在图片样本量大的情况下,凭人工很难将其中的重复部分筛选出来,而对重复图片不加干预直接标注,则会变相降低样本多样性,从而降低标注效率。
6、为了解决上述问题,本案提供了基于python的图片查重技术。
7、在本部分中公开的以上信息仅用于对本公开的发明构思的背景的理解,因此,以上信息可包含不构成现有技术的信息。
技术实现思路
1、本发明的目的在于提供一种基于python的图片查重方法,提升效率,精度更高,筛选重复图效果更好。
2、为达成上述目的,本发明的解决方案为:一种基于python的图片查重方法,包括步骤:
3、1)获取多个待查重及现有彩色图片;
4、2)运用resize函数对所述彩色图片进行缩放;所述缩放得到32*32像素rgb三通道的图像;
5、3)将所述图像根据所述rgb三通道的图像分别进行dct运算后组合得到所述图像32*32三维矩阵;
6、4)在所述图像32*32三维矩阵中r通道取左上8*8、中间8*8及右下8*8区域,g通道取中间8*8及左下8*8区域、b通道取中间8*8及右上8*8区域,通过计算上述r通道、g通道及b通道区域的算数平均数得到8*8格式的图像特征矩阵;
7、5)将所述图像特征矩阵转化为64位列表求平均值;将64位列表与平均值比较,小于平均值给0,大于平均值给1得到图像均值二进制数列;循环所述图像均值二进制数列,以三个数为步长,转化为十进制得到图像均值十进制数列;
8、6)对所述图像均值十进制数列中间不足10的数字十位上补零得到待查重及现有彩色图片哈希值;
9、7)设字典a包含待查重彩色图片键及待查重彩色图片值,设字典b包含现有彩色图片键及现有彩色图片值;所述待查重彩色图片值与现有彩色图片值包含待查重及现有彩色图片哈希值和待查重及现有彩色图片原始路径;所述待查重彩色图片键与现有彩色图片键分别进行序列标记;对比字典a与字典b,设所述待查重彩色图片值样本为ax,设现有彩色图片值样本为b(0-n);ax小于b0,待查重彩色图片与现有彩色图片不重复;ax大于bn,待查重彩色图片与现有彩色图片不重复;若ax在b(0-n)的区间内,与b的中间值进行比较,通过二分法缩小范围,判断是否完全相等,若完全相等则输出待查重彩色图片值与现有彩色图片值,否则待查重彩色图片与现有彩色图片不重复。
10、本发明的解决方案还包括,一种基于python的图片查重方法,包括步骤:
11、1)获取多个待查重及现有灰度图片;
12、2)运用resize函数对所述灰度图片进行缩放;所述缩放得到32*32像素灰度图像;
13、3)将所述灰度图像根据所述图像进行dct运算后组合得到所述32*32图像矩阵;
14、4)在所述图像矩阵中间8*8区域,通过8*8区域的算数平均数得到8*8格式的图像特征矩阵;
15、5)将所述图像特征矩阵转化为64位列表求平均值;将64位列表与平均值比较,小于平均值给0,大于平均值给1得到图像均值二进制数列;循环所述图像均值二进制数列,以三个数为步长,转化为十进制得到图像均值十进制数列;
16、6)对所述图像均值十进制数列中间不足10的数字十位上补零得到待查重及现有灰度图片哈希值;
17、7)设字典a包含待查重灰度图片键及待查重灰度图片值,设字典b包含现有灰度图片键及现有灰度图片值;所述待查重灰度图片值与现有灰度图片值包含待查重及现有灰度图片哈希值和待查重及现有灰度图片原始路径;所述待查重灰度图片键与现有灰度图片键分别进行序列标记;对比字典a与字典b,设所述待查重灰度图片值样本为ax,设现有灰度图片值样本为b(0-n);ax小于b0,待查重灰度图片与现有灰度图片不重复;ax大于bn,待查重灰度图片与现有灰度图片不重复;若ax在b(0-n)的区间内,与b的中间值进行比较,通过二分法缩小范围,判断是否完全相等,若完全相等则输出待查重灰度图片值与现有灰度图片值,否则待查重灰度图片与现有灰度图片不重复。
18、本发明的解决方案还包括,一种基于python的图片查重方法的数据库,包括存储空间,所述存储空间分布式存储上述的一种基于python的图片查重方法及信息。
19、本发明的解决方案还包括,图片查重装置,包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于当执行所述计算机程序时,实现上述的一种基于python的图片查重方法。
20、本发明的解决方案还包括一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现上述的一种基于python的图片查重方法。
21、本发明的解决方案还包括一种图片查重系统,包括如上述的图片查重装置、互联网接口以及外设,所述外设包括显示器、键盘及鼠标,
22、所述图片查重装置依次与互联网接口及外设连接;
23、显示器用于显示上述一种基于python的图片查重方法;
24、键盘及鼠标用于操控及修改上述一种基于python的图片查重方法;
25、互联网接口用于将上述一种基于python的图片查重方法联网。
26、采用上述方案后,本发明的增益效果在于:
27、1、本发明提供一种通用缺陷类算法领域的图片处理方法通过dct获取低频信息,将图像从像素域变换到频率域,一般图像都存在很多冗余和相关性的,转换到频率域之后,只有很少的一部分频率分量的系数才不为0,大部分系数都为0(或者说接近于0),经过dct变换后的系数矩阵从左上角到右下角频率越来越高,因此图片的能量主要保留在左上角的低频系数上。本发明提供的方法保留信息更多,真实性更强。
28、2、发明人创新性实验得出的取样方法,通过归纳找到各自通道更具信息的矩阵,从而获取更加真实性的哈希值,对于重复图片查全查准效果更佳,效率较高。
1.一种基于python的图片查重方法,其特征在于,包括步骤:
2.一种基于python的图片查重方法,其特征在于,包括步骤:
3.一种基于python的图片查重方法的数据库,其特征在于,包括存储空间,所述存储空间分布式存储如权利要求1所述的一种基于python的图片查重方法及信息。
4.一种基于python的图片查重方法的数据库,其特征在于,包括存储空间,所述存储空间分布式存储如权利要求2所述的一种基于python的图片查重方法及信息。
5.图片查重装置,其特征在于,包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于当执行所述计算机程序时,实现如权利要求1所述的一种基于python的图片查重方法。
6.图片查重装置,其特征在于,包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于当执行所述计算机程序时,实现如权利要求2所述的一种基于python的图片查重方法。
7.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1所述的一种基于python的图片查重方法。
8.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求2所述的一种基于python的图片查重方法。
9.一种图片查重系统,其特征在于,包括如权利要求4所述的图片查重装置、互联网接口以及外设,所述外设包括显示器、键盘及鼠标,
10.一种图片查重系统,其特征在于,包括如权利要求5所述的图片查重装置、互联网接口以及外设,所述外设包括显示器、键盘及鼠标,