一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种通过算法提升瓷砖图像识别的方法及装置与流程

2022-07-02 02:15:10 来源:中国专利 TAG:


1.本发明涉及瓷砖自动识别领域,尤其涉及一种通过算法提升瓷砖图像识别的方法及装置。


背景技术:

2.随着工业技术的发展,机器视觉在智能制造领域发挥越来越重要的作用,尤其是图像识别技术,正不断在各行业得到广泛的应用。
3.尤其是在瓷砖行业的图像识别技术普及程度不足。因为瓷砖的图像识别具有一定的特殊性。瓷砖与其它产品不一样的是:瓷砖的特征比较缺乏,有些瓷砖的条纹很少、且颜色浅,很难通过传统算法提取出图片的特征,导致识别失效。
4.瓷砖图案纹理大部分都比较相似,这使得现有的图像识别技术,很难区分这种细微的差别。而在实际应用中,待识别的瓷砖图像往往是通过不同用户拍摄的实拍图,清晰度、亮度、角度、方向、反光情况、带背景情况等都有较大差别,这使得瓷砖识别的难度加大。


技术实现要素:

5.针对上述技术问题,本发明提供了一种通过算法提升瓷砖图像识别的方法及装置,可以提升瓷砖图像识别技术,使得图像识别技术可以在瓷砖识别领域得到更好地应用。
6.本发明实施例的第一方面,提供一种通过算法提升瓷砖图像识别方法,包括:接收待识别图像;对所述待识别图像进行瓷砖轮廓识别,基于瓷砖轮廓利用透视变换算法、仿射变换算法和/或图像掩膜裁剪算法去除所述待识别图像的背景,得到目标瓷砖图像;基于神经网络模型对所述目标瓷砖图像进行特征提取,并利用所述目标瓷砖图像的特征向量检索图库中图像,根据图像索引得到与所述目标瓷砖图像相似的若干个瓷砖图像,该若干个瓷砖图像表征为若干个已知瓷砖型号。
7.一种可能的实施方式中,所述对所述待识别图像进行瓷砖轮廓识别,包括:采用u
2-net模型对所述待识别图像进行目标检测,将待识别图像生成图像掩膜识别出瓷砖的轮廓图像,所述u
2-net模型采用以下损失函数训练而成:其中是每个输出显著概率图的损失函数,ι
fuse
是最后的融合输出显著图的损失函数;与ω
fuse
是损失函数项的权重;对于损失函数,采用以下公式计算损失:
其中,(r,c)为像素坐标,(h,w)为图像的高度和宽度,p
g(r,c)
和p
s(r,c)
分别表示gt像素值和预测的显著概率图。
8.一种可能的实施方式中,所述基于瓷砖轮廓利用透视变换算法去除所述待识别的图像的背景,包括:确定出所述待识别图像及所述瓷砖的轮廓图像的四个顶点坐标,计算由瓷砖的轮廓图像到待识别图像的矩形透视变换的第一矩阵;基于所述第一矩阵将所述待识别图像及所述图像掩膜做同步透视变换计算,将两个图像投影到一个新的视平面,得到用于裁剪的图像掩膜及用于裁剪的待识别图像,利用预设阈值结合用于裁剪的待识别图像计算与用于裁剪的图像掩膜的尺寸大小,并基于尺寸大小裁剪所述待识别图像,或者变换为利用仿射变换算法、图像掩膜裁剪算法中至少一种去除所述待识别图像的背景。
9.一种可能的实施方式中,所述基于瓷砖轮廓利用仿射变换算法去除所述待识别的图像的背景,包括:根据瓷砖的轮廓图像确定最小外接矩形,根据所述最小外接矩形确定最小外接矩形的中心、旋转角度,然后计算由瓷砖的轮廓图像到待识别图像的仿射变换的第二矩阵;基于所述第二矩阵将所述待识别图像及图像掩膜做同步仿射变换计算,得到旋转的图像掩膜与待识别图像,根据旋转的图像掩膜与待识别图像、最小外接矩形的中心、最小外接矩形的尺寸、对所述旋转的图像掩膜与待识别图像进行初步裁剪;利用预设阈值结合初步裁剪的待识别图像计算与初步裁剪的图像掩膜的尺寸大小,并基于尺寸大小裁剪所述待识别图像,或者变换为利用仿射变换算法、图像掩膜裁剪算法中至少一种去除所述待识别图像的背景。
10.一种可能的实施方式中,所述基于瓷砖轮廓利用仿射变换算法去除所述待识别的图像的背景,包括:直接基于图像掩膜裁剪所述待识别图像,去除背景。
11.一种可能的实施方式中,所述基于神经网络模型对所述目标瓷砖图像进行特征提取,包括:基于三元组神经网络模型对所述目标瓷砖图像进行特征提取,所述三元组神经网络模型的三元组样本对采用最困难三元组与一般三元组,所述三元组样本数据选自resnet50预训练模型对数据集提取的特征向量及knn邻近算法确定的相似型号瓷砖图像的特征向量。
12.一种可能的实施方式中,训练所述三元组神经网络模块包括以下步骤:将所述三元组样本对输入三元组神经网络模块,利用resnet50预训练模型提取所述三元组样本对的图像特征形成特征向量;分别计算锚样本与正样本的欧式距离、锚样本与负样本的欧式距离;通过三元组损失函数计算三元组损失以优化三元组神经网络,直至三元组神经网络模型收敛。
13.一种可能的实施方式中,三元组样本生成方法包括:利用resnet50预训练模型对训练集提取特征形成特征向量,所述数据集包括通过翻转、亮度调节、色度调节、对比度调节、随机裁剪方式增广的数据集;从型号库中每个型号随机抽取一张图作为锚样本,随机抽取一张与锚样本同型号
的图作为正样本,利用knn邻近算法确定若干个与锚样本相似型号的图,从该若干个与锚样本相似型号的图对应的实拍图及原图中随机抽取一个作为负样本,根据约束条件筛选成为三元组样本对。
14.本发明实施例的第二方面,提供一种通过算法提升瓷砖图像识别方法装置,包括:获取模块,用于接收待识别图像;图像处理模块,用于对所述待识别图像进行瓷砖轮廓识别,基于瓷砖轮廓利用透视变换算法、仿射变换算法和/或图像掩膜裁剪算法去除所述待识别图像的背景,得到目标瓷砖图像;识别模块,用于基于神经网络模型对所述目标瓷砖图像进行特征提取,并利用所述目标瓷砖图像的特征向量检索图库中图像,根据图像索引得到与所述目标瓷砖图像相似的若干个瓷砖图像,该若干个瓷砖图像表征为若干个已知瓷砖型号。
15.本发明实施例的第三方面,提供一种图像识别设备,包括:处理器、存储器、系统总线;所述处理器以及所述存储器通过所述系统总线相连;所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行本发明实施例的第一方面提供所述的方法。
16.本发明实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行本发明实施例的第一方面提供所述的方法。
17.本发明对用户上传的图像进行背景去除,以减少背景对图像识别的干扰;通过构建深度学习模型,使得待识别图像与同型号图像的欧式距离较近,并且同时使待识别图像和非同型号图像的欧式距离较远,然后将待识别图像特征与图库特征比较,检索到最相似的图像。本发明提供的方案能适应不同场景下的瓷砖图像检索,图像检索更具有鲁棒性,弥补现有技术中技术缺失,使识别与推荐更符合用户需求。
附图说明
18.图1为本发明实施例中一种通过算法提升瓷砖图像识别方法的流程示意图;图2为本发明实施例中去除待识别图像背景的流程示意图;图3为本发明实施例中待识别图像与目标瓷砖图像的示意图;图4为本发明实施例中目标瓷砖图像识别的流程示意图;图5为本发明实施例中三元组神经网络架构图;图6为本发明实施例中基于识别结果展示的若干个检索结果示例图;图7为本发明实施例中一种通过算法提升瓷砖图像识别装置的模块示意图。
具体实施方式
19.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.请参阅图1所示,本发明提供一种通过算法提升瓷砖图像识别方法,该方法包括:
步骤110:接收待识别图像。
21.所述待识别图像为包含有瓷砖的图像,该图像中通常包含有拍摄背景。在一些应用场景中,用户可以通过上传的方式向瓷砖识别系统上传图像,或者通过现场拍摄的方式向瓷砖识别系统传送图像。
22.在一个优选的实施例中,所述瓷砖识别系统存储于云端,当用户无法判断瓷砖型号或想要了解相近似的瓷砖型号时,可以通过向云端上传拍摄的瓷砖图片用以识别瓷砖或推荐相似的瓷砖。当然所述瓷砖识别系统还可以存储于图像识别设备中或该图像识别设备的服务器中。
23.步骤120:对所述待识别图像进行瓷砖轮廓识别,基于瓷砖轮廓利用透视变换算法、仿射变换算法和/或图像掩膜裁剪算法去除所述待识别图像的背景,得到目标瓷砖图像。
24.在该步骤中,可以采用训练好的瓷砖轮廓检测模型对带有背景图像中的瓷砖轮廓识别。通常采用神经网络模型实现,例如u
2-net模型或其他神经网络模型。本发明提供的方法可通过flask封装接口,预加载服务器上训练好检测模型、图像识别模型,并接收用户在前端上传的待识别图像。
25.在识别出待识别图像中的瓷砖轮廓后,可利用三种算法对所述待识别图像中的背景进行去除,获得待识别图中仅瓷砖图像,作为图像识别对象。三种算法单独使用以对待识别图像的瓷砖识别,显然因为瓷砖纹理、光照强度等因素会影响识别结果,因此采用不同的算法处理所述待识别图像以解决识别困难的问题。在一种实施例中,所述的透视变换算法、仿射变换算法、图像掩膜裁剪算法依次使用,先使用透视变换算法,如果透视变换算法识别失败,则使用仿射变换算法,如果以上两种方法都失效,则直接根据图像掩膜裁剪算法对所述待识别图像进行裁剪,以去除背景。所述透视变换算法及仿射变换算法的执行顺序可以改变,考虑到用户拍摄的图像有一定的倾斜角度等因素,显然利用这两种识别算法较为精确,而图像掩膜裁剪算法是在上述两种算法不能有效识别时,直接利用神经网络模型识别出的图像掩膜对所述待识别图像进行裁剪,但同样是可以实现获取到目标瓷砖图像,基于该目标瓷砖图像进行识别,获取瓷砖型号或推荐类似瓷砖及瓷砖型号。采用这种方式可使得背景去除效果更佳,减少背景对图像识别的干扰。
26.步骤130:基于神经网络模型对所述目标瓷砖图像进行特征提取,并利用所述目标瓷砖图像的特征向量检索图库中图像,根据图像索引得到与所述目标瓷砖图像相似的若干个瓷砖图像,该若干个瓷砖图像表征为若干个已知瓷砖型号。
27.同样基于神经网络模型,但不同于步骤120中的神经网络模型,该步骤中可采用三元组神经网络模型或其他可实现物体识别的神经网络模型。通过神经网络模型可以对图像进行特征提取,并进行特征向量化。基于特征向量可以通过计算图像近似概率以实现图像的检索,在本发明的实施例中,通过检索瓷砖类型的图库实现识别。应当理解的是,神经网络模型的训练过程中,数据拟合、损失函数约束、训练数据集等会影响神经网络模型的识别准确度。显然本发明利用有效的数据集及识别(训练)方法可以提高识别准确度,以及满足行业的需求,具体容下文详述。
28.在该步骤中,以及本发明的识别方法输出结果是与所述目标瓷砖图像相似的若干个瓷砖图像,若干个瓷砖图像按照计算的识别概率高低排序,即满足对瓷砖图像的识别,又
满足相似类型瓷砖的推荐,方便用户选择及预览。可以提高用户的个性化设计需求。其中若干个瓷砖图像的型号为已知的,存储于所述图库中。
29.本发明通过对待识别图像进行背景去除,以减少背景对图像识别的干扰;并通过构建的三元组神经网络模型使得查询图像与同型号图像的欧式距离较近,同时与非同型号图像的欧式距离较远,实现更准确的检索相似图像最后。通过训练数据集的扩充,以图像图像增强的方式减少光线、角度、方向等对识别的干扰,详见下文描述。
30.在所述对所述待识别图像进行瓷砖轮廓识别过程中,本发明采用u
2-net模型对所述待识别图像进行目标检测,将待识别图像生成图像掩膜识别出瓷砖的轮廓图像。具体如下:训练数据集使用瓷砖图库,包含10000多张带背景的瓷砖实拍图,覆盖不同规格、不同型号,以及涵盖展厅、客厅、阳台、卫浴、以及其它建筑物等不同拍摄背景,利用以上数据可以使得训练的神经网络模型适应不同识别场景;然后通过水平翻转、垂直翻转,以及90度、180度、270度等旋转共8个方向变化来扩充训练数据集,共获得80000多张训练图像。使用另外5000多张实拍图作评估数据集,同样覆盖不同规格、不同型号,以及不同拍摄背景,8个方向增广后,评估数据集共有40000多张图像,便于校正待识别图像。并采用labelme工具对训练图像、以及评估图像进行批量标注,输出标注后的掩膜图像;然后统一图像格式尺寸为320
×
320。利用以上训练数据集与评估数据集参与模型训练及评估,以更好发挥u
2-net模型的性能。
31.根据整理好的训练数据集训练u
2-net模型,训练过程尝试最小化整个损失。采用以下损失函数:其中本实施例中,m=6)是每个输出显著概率图的损失函数,ι
fuse
是最后的融合输出显著图的损失函数;与ω
fuse
是损失函数项的权重;对于损失函数,采用以下公式计算损失:其中,(r,c)为像素坐标,(h,w)为图像的高度和宽度,p
g(r,c)
和p
s(r,c)
分别表示gt像素值和预测的显著概率图。
32.然后对u
2-net模型测试与评估。采用f-score统计量评估模型测试效果,f-score计算公式为:其中β是参数,p是精确率,r是召回率。本发明实施例中β2取0.3。
33.训练完成上述u
2-net模型后,可根据训练过程对输入的待识别图像做瓷砖轮廓识别计算,输出瓷砖的图像掩膜。瓷砖识别系统还会调整所述图像掩膜尺寸:获取待识别图像的尺寸;然后,将图像掩膜重置为待识别图像的尺寸。
34.接着检测图像中瓷砖部分的轮廓,先对掩膜图像进行二值化处理,将图像掩膜中像素大于128的全变成255(识别为前景),像素小于128的全变成0(识别为背景)。输出经过
二值化处理后的掩膜图像。然后,基于opencv工具对二值化处理后的掩膜图像进行轮廓检测,输出待识别图像中瓷砖的轮廓。
35.再对待识别图像去除图像背景,该过程中采用透视变换算法、仿射变换算法、图像掩膜裁剪算法处理;通过融合三种算法,可以更好提升复杂场景下瓷砖实拍图的背景去除准确率。
36.如图2所示,本发明提供的方法中,去除图像背景包括以下步骤:步骤210:背景检测;步骤220:图像掩膜生成;步骤230:调整图像掩膜尺寸;步骤240:瓷砖轮廓图像检测;上述多个步骤可参考图1所示的方法中的描述。
37.步骤250:透视变换算法处理;具体的,首选确定出所述待识别图像及所述瓷砖的轮廓图像的四个顶点坐标。将步骤240中获取到的瓷砖轮廓图像重置为m行2列的数组形式(m,2),其中,m表示轮廓中存储点的个数,数组中的值表示轮廓中存储点的坐标,输出图像轮廓坐标的数组为pts。瓷砖轮廓中每个存储点坐标可表示为如下形式:(x_1,y_1),(x_2,y_2)...(x_m,y_m)。然后创建一个4行2列的空数组rect,用来存放这4个坐标;其中,rect[0]表示左上角的坐标点,rect[1]表示右上角的坐标点,rect[2]表示右下角的坐标点,rect[3]表示左下角的坐标点。
[0038]
首先确定左上角的坐标点,对瓷砖轮廓的横坐标与纵坐标进行求和,并取最小值,即:由于瓷砖轮廓左上角的坐标点具有最小的横纵坐标之和,那么rect[0]=pts[s
min
]。然后依此确定右上角、右下角、左下角的坐标点:确定rect[1]坐标点,首先对瓷砖轮廓的横坐标与纵坐标进行差分,并取最小值,即:由于瓷砖轮廓右上角的坐标点具有最小的横纵坐标之差,那么rect[1]=pts[d
min
]。对瓷砖轮廓的横坐标与纵坐标进行求和,并取最大值,即:由于瓷砖轮廓右下角的坐标点具有最大的横纵坐标之和,那么rect[2]=pts[s
max
]。对轮廓的横坐标与纵坐标进行差分,并取最大值,即:由于瓷砖轮廓左下角的坐标点具有最大的横纵坐标之差,那么rect[3]=pts[d
max
]。
[0039]
再然后确定待识别图像的四个顶点坐标:dst=[[0,0],[max_w-1,0],[max_w-1,max_h-1],[0,max_h-1]];其中,[0,0]表示目标图像的左上角坐标,[max_w-1,0]表示目标图像的右上角坐标,[max_w-1,max_h-1]表示目标图像的右下角坐标,[0,max_h-1]表示目标图像的左下角坐标。
[0040]
max_w表示待识别图像的宽度,通过以下公式计算:max_h表示待识别图像的高度,通过以下公式计算:
int()表示取整。
[0041]
通过以上方式可得到所述待识别图像及所述瓷砖的轮廓图像的四个顶点坐标。
[0042]
在计算透视变换矩阵时,计算由瓷砖的轮廓图像到待识别图像的矩形透视变换的第一矩阵;基于所述第一矩阵将所述待识别图像及图像掩膜做同步透视变换计算,将两个图像投影到一个新的视平面,得到用于裁剪的图像掩膜及用于裁剪的待识别图像。具体通过以下变化公式计算:其中,表示透视变换矩阵;表示线性变换;m2=[a
13 a
23
]
t
表示透视;m3=[a
31 a
32
]表示平移。
[0043]
然后利用预设阈值结合用于裁剪的待识别图像计算与用于裁剪的图像掩膜的尺寸大小,并基于尺寸大小裁剪所述待识别图像,实现精细化裁剪。若计算得出失效,则变换为利用仿射变换算法或图像掩膜裁剪算法去除所述待识别图像的背景。具体如下:提取透视变换后的图像掩膜mask的行数row及列数col,(row,col)=mask_crop.shape。初始化变量。row_top=0,row_down=0,col_top=0,col_down=0;其中row_top是瓷砖图像的上边距、row_down是下边距、col_top是左边距、col_down是右边距。
[0044]
确定瓷砖图像的上边距row_top时:从图像掩膜mask_crop数组的第一行到最后一行,逐行求和,并判断该行求和值是否大于200*col(其中,200是像素阀值,值越小裁剪更多背景),当首次出现该行求和值大于200*col时,取该行数为上边距row_top。确定瓷砖图像的下边距row_down时:从图像掩膜mask_crop数组的最后一行倒序到第一行,逐行求和,并判断该行求和值是否大于200*col(其中,200是像素阀值,值越小裁剪更多背景),当首次出现该行求和值大于200*col时,取该行数为下边距row_down。确定瓷砖图像的左边距col_top时:从图像掩膜mask_crop数组的第一列到最后一列,逐列求和,并判断该列求和值是否大于200*row(其中,200是像素阀值,值越小裁剪更多背景),当首次出现该列求和值大于200*row时,取该列数为左边距col_top。确定瓷砖图像的右边距col_down时:从图像掩膜mask_crop数组的最后一列倒序到第一列,逐列求和,并判断该列求和值是否大于200*row(其中,200是像素阀值,值越小裁剪更多背景),当首次出现该列求和值大于200*row时,取该列数为右边距col_down。
[0045]
对经过透视变换后的待识别图像img_crop进一步做图像背景的精细化裁剪,设置0.3为阈值,计算阈值下的两个图像的尺寸大小,将图像掩膜的上边距与下边距的差值与0.3的待识别图像比较大小,将图像掩膜的右边距与左边距的差值与0.3的待识别图像比较大小:如果(row_down-row_top)《0.3*img_size[1]并且(col_down-col_top)《0.3*img_size[0],则表示通过透视变换裁剪背景失效,尝试下一种仿射变换方法,如仿射透视变换或图像掩膜裁剪算法。如果(row_down-row_top)≥0.3*img_size[1]并且(col_down-col_top)≥0.3*img_size[0],则对img_crop进一步精细化裁剪,new_img=img_crop[row_top:
row_down 1,col_top:col_down 1,0:3]。其中,img_size[1]为待识别图像的高度,img_size[0]为待识别图像的宽度,0.3是阀值,得到的new_img图像即是对图像背景精细化裁剪后的目标瓷砖图像。
[0046]
步骤260:仿射变换算法处理;首选根据瓷砖的轮廓图像确定最小外接矩形,根据所述最小外接矩形确定最小外接矩形的中心、旋转角度,然后计算由瓷砖的轮廓图像到待识别图像的仿射变换的第二矩阵。
[0047]
具体的,对于图像掩膜基于opencv工具计算得到最小外接矩形rect,其中,rect[0],rect[1],rect[2]分别表示最小外接矩形的中心(x,y)、(宽,高)、(旋转角度),即:center,size,angle=rect[0],rect[1],rect[2]。在确定最小外接矩形的中心及旋转角度之后,基于opencv工具计算仿射变换的第二矩阵。
[0048]
基于所述第二矩阵将所述待识别图像及图像掩膜做同步仿射变换计算,得到旋转的图像掩膜与待识别图像,根据旋转的图像掩膜与待识别图像、最小外接矩形的中心、最小外接矩形的尺寸、对所述旋转的图像掩膜与待识别图像进行初步裁剪。
[0049]
在一实施例中,对待识别图像及图像掩膜同步做仿射变换,将瓷砖图像旋转正,仿射变换公式为:射变换公式为:表示图像旋转、缩放等线性变换,代表平移操作,第二矩阵:m表示仿射变换矩阵。
[0050]
根据计算得到的仿射变换矩阵m、待识别图像的宽度与高度,分别对待识别图像及图像掩膜同步做仿射变换,得到仿射变换后旋转正的图像掩膜mask_rot与待识别图像img_rot。然后根据旋转正的图像掩膜mask_rot与待识别图像img_rot、最小外接矩形的尺寸与中心,基于opencv工具对旋转正的图像掩膜与待识别图像同步做初步裁剪,得到初步裁剪背景后的图像掩膜mask_crop与待识别图像img_crop。
[0051]
最后对得到的初步裁剪的背景的图像做进一步精细化裁剪:利用预设阈值结合初步裁剪的待识别图像计算与初步裁剪的图像掩膜的尺寸大小,并基于尺寸大小裁剪所述待识别图像。裁剪失效时变换为利用透视变换算法或图像掩膜裁剪算法去除所述待识别图像的背景。具体的可参照透视变换算法,对经过仿射变换后的图像img_crop进一步做图像背景的精细化裁剪:如果(row_down-row_top)《0.3*img_size[1]并且(col_down-col_top)《0.3*img_size[0],则表示通过透视变换裁剪背景失效,尝试下一种透视变换方法或图像掩膜裁剪算法。如果(row_down-row_top)≥0.3*img_size[1]并且(col_down-col_top)≥0.3*img_size[0],则对img_crop进一步精细化裁剪,new_img=img_crop[row_top:row_down 1,col_top:col_down 1,0:3]。其中,img_size[1]为待识别图像的高度,img_size[0]为待识别图像的宽度,0.3是阀值,得到的new_img图像即是对图像背景精细化裁剪后的目
标瓷砖图像。
[0052]
步骤270:图像掩膜裁剪算法处理;如果步骤250、步骤260中透视变换算法、仿射变换算法均失效,则直接对图像掩膜mask进行裁剪去除背景,计算过程可参考透视变换的精细化裁剪步骤。
[0053]
步骤280:输出目标瓷砖图像。见图3所示,左侧a为待识别图像,右侧b为去除背景的目标瓷砖图像,去除了场景中的多余背景。
[0054]
得到输出的目标瓷砖图像后,可参考图4所示对目标瓷砖图像识别,本发明基于三元组神经网络模型对所述目标瓷砖图像进行特征提取,所述三元组神经网络模型的三元组样本对采用最困难三元组与一般三元组,以提高模型训练效率及图像识别效果。所述三元组样本数据选自resnet50预训练模型对数据集提取的特征向量及knn邻近算法确定的相似型号瓷砖图像的特征向量。
[0055]
具体的,首选利用resnet50预训练模型与knn邻近算法处理训练数据集,然后将训练数据集输入三元组神经网络模型训练。训练数据集使用瓷砖图库,包含1.5万张覆盖不同规格、不同型号、不同拍摄背景的瓷砖实拍图、以及瓷砖原图,涵盖3000个型号,即每个型号平均有4个不同拍摄背景的实拍图、及1张原图。并通过翻转、亮度、色度、对比度、随机裁剪等方式增广数据集,获得12万张图像。通过对数据集的调整,可以适应不同用户拍摄的不同场景及影响因素的图像,从而提高神经网络模型的识别准确度。
[0056]
然后确定三元组样本对,即利用resnet50预训练模型对训练集提取特征形成特征向量,所述数据集包括通过翻转、亮度调节、色度调节、对比度调节、随机裁剪方式增广的数据集。从型号库中每个型号随机抽取一张图作为锚样本,随机抽取一张与锚样本同型号的图作为正样本,利用knn邻近算法确定若干个与锚样本相似型号的图,从该若干个与锚样本相似型号的图对应的实拍图及原图中随机抽取一个作为负样本,根据约束条件筛选成为三元组样本对。
[0057]
具体的,将每个三元组样本对表示为t=(a,p,n),其中a表示锚样本图,p表示正样本图,n表示负样本图。先选取resnet50预训练模型,移除全连接层,并为数据集中的3000个型号提取原图特征,每张原图通过特征提取后,都被转换成2048维特征向量。其中,resnet50预训练模型由imagenet数据集训练生成。然后通过knn最近邻算法拟合提取的特征,选取最近邻数目为20个,并选取欧氏距离度量图片的相似度,生成原图相似度模型。由于可组合的三元组非常多,如果遍历所有的组合不太现实、且极其低效,而在遍历的组合中,大多数是无效的简单三元组。因此,本发明只筛选困难三元组、一般三元组参与模型训练,以提高模型训练效率及图像识别效果。具体筛选逻辑如下:首先,每个三元组样本都在3000个型号的中每个型号随机抽取一张图作为锚样本。然后,再随机抽取一张与锚样本同型号的图作为正样本;最后,调取上一步训练好的knn算法模型,根据最近邻索引找到20个与锚样本最相似的20个型号,并从这20个型号的实拍图及原图中随机抽取一个样本作为负样本,对应的模型输出结果也显示为20个瓷砖图像,显示相应的瓷砖型号。
[0058]
得到上述三元组样本并不适合全部使用,因此需要根据约束条件筛选三元组样本对。本发明筛选了6万对一般三元组(semi-hard triplets)、1.2万对困难三元组(hard triplets)参与模型训练。其中,一般三元组主要用于网络的前期训练,帮助训练网络的收
敛。一般三元组样本满足以下约束条件:d(a,p)《d(a,n)《d(a,p) margin;通过加入困难三元组样本的网络训练,能够提高难以判断样本的判别能力,困难三元组样本满足以下约束条件:d(a,n)《d(a,p)。其中,margin是阈值,本发明满足筛选的样本对的阈值margin=0.05,d(a,p)、d(a,n)分别为通过resnet50预训练模型提取的特征向量计算的锚样本与正样本的欧氏距离、锚样本与负样本的欧氏距离。
[0059]
如图4所示,具体瓷砖识别过程及展示包括以下步骤:步骤410:利用神经网络模型提取目标瓷砖图像的特性特征并特征向量化;步骤420:在图库中检索与目标瓷砖图像特征相似的图像;步骤430:对查询得到的若干个相似图像排序;步骤440:将若干个相似图像反馈至前端展示。
[0060]
具体的,将所述三元组样本对输入三元组神经网络模块,该模块采用图5所示架构。利用resnet50预训练模型提取所述三元组样本对的图像特征形成特征向量,每张图像特征都被转换成2048维特征向量。分别计算锚样本与正样本的欧式距离d(a,p)、锚样本与负样本的欧式距离d(a,n)。欧式距离的计算方式如下:通过三元组损失函数计算三元组损失以优化三元组神经网络,直至三元组神经网络模型收敛。三元组损失函数计算公式如下:其中,是锚样本与正样本之间的欧式距离度量,是锚样本与负样本之间的欧式距离度量, 的含义是[]内的值大于零的时候,取该值为损失,小于零的时候,损失为零。margin是边际阈值,本发明取margin=0.5时,既能让网络可以收敛,又能较好的区分相似的图像。
[0061]
在一应用场景中,可将该神经网络模型部署于云端,通过flask封装接口,预加载服务器上训练好的模型,并将接口提供给开发前端调用;前端通过调用接口,返回用户查询的20张相似图像,20找那个相似图像根据识别的概率值排序,即相似度或系列瓷砖。如图6所示,为最左侧为待识别图像,该图像右侧为识别结果。
[0062]
本发明提供的方案能适应不同场景下的瓷砖图像检索,提高识别的鲁棒性,弥补现有技术中技术缺失,使识别与推荐更符合用户需求;相应地本发明还对应上述方法提供一种通过算法提升瓷砖图像识别方法装置,如图7所述该装置包括:获取模块71,用于接收待识别图像。
[0063]
当用户无法判断瓷砖型号或想要了解相近似的瓷砖型号时,可以通过向云端上传拍摄的瓷砖图片用以识别或推荐相似的瓷砖。当然所述瓷砖识别系统还可以存储于图像识别设备中或该图像识别设备的服务器中。
[0064]
图像处理模块72,用于对所述待识别图像进行瓷砖轮廓识别,基于瓷砖轮廓利用透视变换算法、仿射变换算法和/或图像掩膜裁剪算法去除所述待识别图像的背景,得到目标瓷砖图像。
[0065]
采用透视变换算法、仿射变换算法、图像掩膜裁剪算法处理;通过融合三种算法,可以更好提升复杂场景下瓷砖实拍图的背景去除准确率。详细可参考上文通过算法提升瓷砖图像识别方法的描述。
[0066]
识别模块73,用于基于神经网络模型对所述目标瓷砖图像进行特征提取,并利用所述目标瓷砖图像的特征向量检索图库中图像,根据图像索引得到与所述目标瓷砖图像相似的若干个瓷砖图像,该若干个瓷砖图像表征为若干个已知瓷砖型号。
[0067]
本发明基于三元组神经网络模型对所述目标瓷砖图像进行特征提取,所述三元组神经网络模型的三元组样本对采用最困难三元组与一般三元组,所述三元组样本数据选自resnet50预训练模型对数据集提取的特征向量及knn邻近算法确定的相似型号瓷砖图像的特征向量。将所述三元组样本对输入三元组神经网络模块,该模块采用图5所示架构。利用resnet50预训练模型提取所述三元组样本对的图像特征形成特征向量,每张图像特征都被转换成2048维特征向量。分别计算锚样本与正样本的欧式距离d(a,p)、锚样本与负样本的欧式距离d(a,n)。欧式距离的计算方式如下:通过三元组损失函数计算三元组损失以优化三元组神经网络,直至三元组神经网络模型收敛。三元组损失函数计算公式如下:其中,是锚样本与正样本之间的欧式距离度量,是锚样本与负样本之间的欧式距离度量, 的含义是[]内的值大于零的时候,取该值为损失,小于零的时候,损失为零。margin是边际阈值,本发明取margin=0.5时,既能让网络可以收敛,又能较好的区分相似的图像。
[0068]
详细可参考上文中通过算法提升瓷砖图像识别的方法。
[0069]
本发明还提供一种图像识别设备,包括:处理器、存储器、系统总线;所述处理器以及所述存储器通过所述系统总线相连;所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行入如上述的通过算法提升瓷砖图像识别的方法。
[0070]
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上述所述的通过算法提升瓷砖图像识别的方法。
[0071]
可以理解,计算机可读存储介质可以包括:能够携带计算机程序的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、以及软件分发介质等。计算机程序包括计算机程序代码。计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、以及软件分发介质等。
[0072]
在本发明的某些实施方式中,自动泊车装置可以包括控制器,控制器是一个单片机芯片,集成了处理器、存储器,通讯模块等。处理器可以是指控制器包含的处理器。处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
[0073]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0074]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0075]
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献