本申请涉及图像处理技术领域,具体而言,涉及一种工件分类方法、装置、设备及介质。
背景技术:
随着智能制造产业的兴起,工业生产制造过程也越来越智能化。例如,在智能工厂搭建过程中,机械臂要分拣抓取各类工件,这就需要对工件进行准确地识别分类。
目前,在对工件进行识别分类时,往往是通过提取工件图像的边缘特征等图像特征,将提取的图像特征和预设图像特征进行匹配,以确定工件类别。但是对于一些构造较为简单的工件,例如法兰等,由于从法兰图像中提取出的特征较为简单,在预测这类工件的类别时,由于提取的图像特征一般都是各个像素点独立的特征,没有考虑到各个像素点之间的关联,这样就会出现工件分类准确性差的问题。
技术实现要素:
有鉴于此,本申请实施例的目的在于提供一种工件分类方法、装置、设备及介质,能够提高工件分类的准确性。
第一方面,本申请提供一种工件分类方法,包括:
获取待识别工件的工件图像,并提取所述工件图像的方向梯度直方图hog特征;
基于提取的方向梯度直方图(histogramoforientedgradient,hog)特征以及预先训练好的与各工件类别分别匹配的支持向量机(supportvectormachine,svm)模型,确定所述待识别工件属于每种工件类别的预测分类概率;
从确定出的各个预测分类概率中筛选出满足预设条件的目标预测分类概率;
将所述目标预测分类概率对应的工件类别确定为所述待识别工件的类别。
本申请的一些实施例中,提取所述工件图像的方向梯度直方图hog特征,包括:
将所述工件图像转换为灰度图像;
将所述灰度图像划分为至少一个预设尺寸的图像区域,其中,每个图像区域包括至少一个单元格,每个单元格包括至少一个像素点;
针对每个图像区域,提取该图像区域中每个单元格的梯度信息并根据该图像区域中各个单元格的梯度信息,确定该图像区域的hog特征;
将各个图像区域的hog特征进行拼接,得到所述工件图像的hog特征。
本申请的一些实施例中,从确定出的各个预测分类概率中筛选出满足预设条件的目标预测分类概率,包括:
将各个预测分类概率中数值最大的预测分类概率确定为目标预测分类概率。
本申请的一些实施例中,针对每个工件类别,根据以下方式训练得到与该工件类别匹配的svm模型:
获取包括正样本和负样本的样本训练集,其中,正样本为属于该工件类别的工件图像,正样本与正样本标签一一对应,负样本为不属于该工件类别的工件图像,负样本与负样本标签一一对应;
从所述样本训练集中获取预设数量的正样本和负样本;
分别提取每个正样本的hog特征和每个负样本的hog特征;
基于提取出的各正样本的hog特征、各负样本的hog特征以及待训练的svm模型,分别确定各正样本属于该工件类别的预测分类概率和各负样本属于该工件类别的预测分类概率;
基于各正样本属于该工件类别的预测分类概率和所述正样本标签,以及,各负样本属于该工件类别的预测分类概率和所述负样本标签,确定本次训练过程的损失值;
若所述损失值不大于设定阈值,则得到与该工件类别匹配的svm模型。
本申请的一些实施例中,所述方法还包括:
若所述损失值大于所述设定阈值,则调整所述待训练的svm模型的模型参数后,进入从所述样本训练集中获取预设数量的正样本和负样本的步骤。
第二方面,本申请提供一种工件分类装置,包括:
获取模块,用于获取待识别工件的工件图像;
提取模块,用于提取所述工件图像的方向梯度直方图hog特征;
概率确定模块,用于基于提取的hog特征以及预先训练好的与各工件类别分别匹配的支持向量机svm模型,确定所述待识别工件属于每种工件类别的预测分类概率;
筛选模块,用于从确定出的各个预测分类概率中筛选出满足预设条件的目标预测分类概率;
类别确定模块,用于将所述目标预测分类概率对应的工件类别确定为所述待识别工件的类别。
本申请的一些实施例中,所述提取模块,在提取所述工件图像的方向梯度直方图hog特征时,具体用于:
将所述工件图像转换为灰度图像;
将所述灰度图像划分为至少一个预设尺寸的图像区域,其中,每个图像区域包括至少一个单元格,每个单元格包括至少一个像素点;
针对每个图像区域,提取该图像区域中每个单元格的梯度信息并根据该图像区域中各个单元格的梯度信息,确定该图像区域的hog特征;
将各个图像区域的hog特征进行拼接,得到所述工件图像的hog特征。
本申请的一些实施例中,所述筛选模块,在从确定出的各个预测分类概率中筛选出满足预设条件的目标预测分类概率时,具体用于:
将各个预测分类概率中数值最大的预测分类概率确定为目标预测分类概率。
本申请的一些实施例中,所述装置还包括:模型训练模块;所述模型训练模块,用于针对每个工件类别,根据以下方式训练得到与该工件类别匹配的svm模型:
获取包括正样本和负样本的样本训练集,其中,正样本为属于该工件类别的工件图像,正样本与正样本标签一一对应,负样本为不属于该工件类别的工件图像,负样本与负样本标签一一对应;
从所述样本训练集中获取预设数量的正样本和负样本;
分别提取每个正样本的hog特征和每个负样本的hog特征;
基于提取出的各正样本的hog特征、各负样本的hog特征以及待训练的svm模型,分别确定各正样本属于该工件类别的预测分类概率和各负样本属于该工件类别的预测分类概率;
基于各正样本属于该工件类别的预测分类概率和所述正样本标签,以及,各负样本属于该工件类别的预测分类概率和所述负样本标签,确定本次训练过程的损失值;
若所述损失值不大于设定阈值,则得到与该工件类别匹配的svm模型。
本申请的一些实施例中,所述模块训练模块,还用于:
若所述损失值大于所述设定阈值,则调整所述待训练的svm模型的模型参数后,进入从所述样本训练集中获取预设数量的正样本和负样本的步骤。
第三方面,本申请提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时实现如上述第一方面,或第一方面任一实施例中所述的工件分类方法的步骤。
第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面任一实施例中所述的工件分类方法的步骤。
本申请实施例中,在对工件进行分类时,可以获取待识别工件的工件图像并提取工件图像的hog特征,进而可以基于提取的hog特征和预先训练好的与各工件类别分别匹配的svm模型,确定待识别工件属于每种工件类别的预测分类概率,然后从确定出的各个预测分类概率中筛选出满足预设条件的目标预测分类概率,最后可以将目标预测分类概率对应的工件类别确定为待识别工件的类别。上述方式中,基于工件图像的hog特征以及每种工件类别匹配的svm模型,来预测工件所属的工件类别,通过这种方式可以提升工件分类的准确性。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的工件分类方法的流程示意图;
图2示出了本申请实施例提供的提取工件图像的hog特征的流程示意图;
图3示出了本申请实施例提供的二维平面的示意图;
图4示出了本申请实施例提供的对与任一工件类别匹配的svm模型进行训练的流程示意图;
图5示出了本申请实施例提供的一种工件分类装置的结构示意图;
图6示出了本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请可应用在对物品进行分类的场景下,示例性的,可以应用在生产制造过程中对工件进行分类的场景下。以工件为法兰类零件为例,法兰类零件分为很多种类型,例如螺纹连接法兰、焊接法兰、卡夹法兰等,并且,同一种类型的法兰的尺寸、表面螺孔的个数等也不一定相同,故在工业生产过程中,需要对不同的法兰进行分类。但是考虑到法兰的构造一般较为简单,故在提取图像中的法兰特征时,提取出的特征也较为简单,此时通过特征匹配的方式来对法兰进行分类时,可能导致分类准确性较低。
基于此,本申请提供一种工件分类方法、装置、设备及介质,提取工件图像的hog特征,并基于hog特征以及与每种工件类别匹配的svm模型,来预测工件的类别,由此可以提升分类准确性。需要说明的是,本申请提到的工件并不限定于法兰,还可以是其它工件,本申请对此并不限定,并且在对其它物品进行分类的场景下同样也可以应用本申请提供的分类方法。
下面,结合具体实施例对本申请提供的工件分类方法进行说明。
参照图1所示,为本申请实施例提供的工件分类方法的流程示意图,包括如下步骤:
步骤101、获取待识别工件的工件图像。
示例性的,在生产制造过程中,车间中放置有很多工件,并安装有图像采集装置(如摄像设备等)用于采集工件图像,并上传给服务器。
步骤102、提取工件图像的hog特征。
本申请实施例中,服务器在接收到工件图像之后,可以提取工件图像的hog特征。具体实施中,在提取工件图像的hog特征之前,为了减少环境因素,或图像质量本身对提取hog特征结果的影响,可以首先对工件图像进行预处理。
上述对工件图像进行的预处理包括以下基本图像处理过程:
(1)图像灰度化处理。
若采集的工件图像为彩色图像,那么可以将工件图像转换为灰度图像。进一步地,可以对灰度图像的每个像素点的灰度值进行归一化处理。示例性的,可以采用gamma矫正法来进行归一化处理,本申请中不再展开说明。
通过图像灰度化处理,可以有效地降低图像局部的阴影和光照变化影响,同时也能抑制噪音信号。
(2)图像锐化处理。
其中,图像锐化处理可以增强图像的边缘特征,本申请实施例中,通过锐化处理,能够凸显工件图像中工件的轮廓特征。
(3)图像增强处理。
其中,图像增强处理,可以使图像中各像素点的灰度值集中分布在较窄的区间内。本申请实施例中,通过图像增强处理,可以增加局部图像区域的对比度,能更清晰的展示图像的各个细节,实现图像画质的增强与改善。示例性的,图像增强处理的方式可以采用直方图均衡化的方式,也可以为其他方式,本申请中不再展开说明。
进一步地,在对工件图像进行了上述一系列的基本图像处理之后,可以提取工件图像的hog特征。具体的,可以采用图2所示的流程示意图,包括如下步骤:
步骤201、将由工件图像转换的灰度图像划分为至少一个预设尺寸的图像区域,其中,每个图像区域包括至少一个单元格,每个单元格包括至少一个像素点。
步骤202、针对每个图像区域,提取该图像区域中每个单元格的梯度信息并根据该图像区域中各个单元格的梯度信息,确定该图像区域的hog特征。
其中,梯度信息包括梯度幅值和梯度方向。示例性的,可以通过以下公式求解该图像区域每个单元格内坐标为(x,y)的像素点的梯度幅值和梯度方向:
gx(x,y)=h(x+1,y)-h(x-1,y);
gy(x,y)=h(x,y+1)-h(x,y-1);
其中,式中gx(x,y)、gy(x,y)、h(x,y)分别表示像素点(x,y)处的水平方向梯度、垂直方向梯度和像素值。
推导可知,像素点(x,y)处的梯度幅值g(x,y)和梯度方向α(x,y)分别为:
本申请的一些实施例中,针对每个图像区域中的每个单元格,在计算该单元格内每个像素点的梯度幅值和梯度方向之后,可以基于该单元格内每个像素点的梯度幅值和梯度方向,统计该单元格的hog特征,并将各个单元格的hog特征拼接后,可以得到该图像区域的hog特征。
示例性的,假设该图像区域内包括4个单元格,每个单元格的hog特征为9维的特征向量,那么该图像区域的特征向量即为四个9维的特征向量的拼接,即4*9维的特征向量。
步骤203、将各个图像区域的hog特征进行拼接,得到工件图像的hog特征。
示例性的,在采用上述步骤202的方式得到各个图像区域的hog特征之后,可以将各个图像区域的hog特征进行拼接,得到工件图像的hog特征。示例性的,假设该工件图像包括4个图像区域,每个图像区域的hog特征为4*9维的特征向量,那么该工件图像的特征向量即为四个4*9维的特征向量的拼接,即4*4*9维的特征向量。
步骤103、基于提取的hog特征以及预先训练好的与各工件类别分别匹配的svm模型,确定待识别工件属于每种工件类别的预测分类概率。
其中,上述svm模型可以用于解决二分类的问题,作为有监督式的二分类模型,通过构建一个n-1维的分割超平面来实现对n维样本数据进行划分,认定的分隔超平面两侧的样本点分属两个不同类别。这样,对于待识别的hog特征,通过判断该hog特征落入了分隔超平面的哪一侧,便可以识别出待识别的hog特征对应的类别。
示例性的,以图3所示的二维平面为例,假设二维平面上有两种不同的数据,分别用“○”和“×”表示。由于这些数据是线性可分的,所以可以用一条直线将这两类数据分开,这条直线就相当于一个超平面,超平面一边的数据点所对应的y全是-1(表示-1类),另一边所对应的y全是+1(表示+1类)。
超平面可以用分类函数f(x)=wtx+b表示,其中,x表示输入的特征向量,w表示可调权值向量,t表示向量的转置,b表示偏置,即超平面相对原点的偏移。当f(x)等于0的时候,x便是位于超平面上的点,而f(x)大于0的点对应y=+1的数据点,f(x)小于0的点对应y=-1的点。
鉴于svm模型的上述特征,可以将提取出的hog特征分别输入至每个工件类别匹配的svm模型中,这样,每个svm模型可以输出该待识别工件属于该svm模型对应的工件类别的概率,以及,该待识别工件不属于该svm模型对应的工件类别的概率。本申请中可以利用待识别工件属于每种工件类别的预测分类概率来分析确定待识别工件所归属的类别。
此外,在将提取出的hog特征分别输入至每个工件类别匹配的svm模型之前,还可以将提取的hog特征进行归一化和标准化处理。关于归一化和标准化的处理过程,本申请中不再具体阐述。
步骤104、从确定出的各个预测分类概率中筛选出满足预设条件的目标预测分类概率。
一种可能的实施方式中,可以将各个预测分类概率中数值最大的预测分类概率确定为目标预测分类概率。
另一种可能的实施方式中,可以将各个预测分类概率从大到小排列,将排列在首位的预测分类概率确定为目标预测分类概率。
步骤105、将目标预测分类概率对应的工件类别确定为待识别工件的类别。
在确定出目标预测分类概率之后,可以将目标预测分类概率对应的工件类别确定为最终预测出的待识别工件的类别,以便对工件进行分类。
需要说明的是,若上述步骤104中各个预测分类概率中数值最大的预测分类概率有不止一个,或者,排列在首位和第二位的预测分类概率的数值相同,那么这种情况下,确定出的目标预测分类概率不止一个,相应地,目标预测分类概率对应的工件类别也不止一个。为了准确确定工件归属于哪一个类别,可以将每个目标预测分类概率对应的工件类别推送到客户端的分类展示界面,由工作人员从展示的每个目标预测分类概率对应的工件类别中选择类别,将选中的类别作为待识别工件的类别。
本申请实施例中,在对工件进行分类时,可以获取待识别工件的工件图像并提取工件图像的hog特征,进而可以基于提取的hog特征和预先训练好的与各工件类别分别匹配的svm模型,确定待识别工件属于每种工件类别的预测分类概率,然后从确定出的各个预测分类概率中筛选出满足预设条件的目标预测分类概率,最后可以将目标预测分类概率对应的工件类别确定为待识别工件的类别。上述方式中,基于工件图像的hog特征以及每种工件类别匹配的svm模型,来预测工件所属的工件类别,通过这种方式可以提升工件分类的准确性。
接下来,针对每个工件类别对应的svm模型,对该svm模型训练的过程进行介绍。
参照图4所示,为本申请实施例提供的对与任一工件类别匹配的svm模型进行训练的流程示意图,包括如下步骤:
步骤401、获取包括正样本和负样本的样本训练集,其中,正样本为属于该工件类别的工件图像,正样本与正样本标签一一对应,负样本为不属于该工件类别的工件图像,负样本与负样本标签一一对应。
步骤402、从样本训练集中获取预设数量的正样本和负样本。
步骤403、分别提取每个正样本的hog特征和每个负样本的hog特征。
具体hog特征的提取过程可参见上述步骤102中的描述,这里不再展开说明。
步骤404、基于提取出的各正样本的hog特征、各负样本的hog特征以及待训练的svm模型,分别确定各正样本属于该工件类别的预测分类概率和各负样本属于该工件类别的预测分类概率。
步骤405、基于各正样本属于该工件类别的预测分类概率和正样本标签,以及,各负样本属于该工件类别的预测分类概率和负样本标签,确定本次训练过程的损失值。
其中,损失值即表征了本次训练过程的预测误差率。一示例中,假设正样本标签用1来标识,负样本标签用0来标识,那针对每个正样本和每个负样本,其对应的预测分类概率为0-1之间任一数值,通过计算每个正样本对应的预测分类概率与正样本标签之间的偏差值,以及,每个负样本对应的预测分类概率与负样本标签之间的偏差值,再将计算出的偏差值求平均,便可以得到本次训练过程的损失值。
步骤406、判断损失值是否大于设定阈值。
若是,则执行步骤407;若否,则执行步骤408。
其中,上述设定阈值可以基于实际训练过程来配置,本申请对此并不限定。
步骤407、调整待训练的svm模型的模型参数后,进入步骤402。
步骤408、将当前训练得到的svm模型作为与该工件类别匹配的svm模型。
基于相同的技术构思,本申请还提供一种与工件分类方法对应的工件分类装置,具体参见图5所示,上述工件分类装置500,包括:
获取模块501,用于获取待识别工件的工件图像;
提取模块502,用于提取所述工件图像的hog特征;
概率确定模块503,用于基于提取的hog特征以及预先训练好的与各工件类别分别匹配的svm模型,确定所述待识别工件属于每种工件类别的预测分类概率;
筛选模块504,用于从确定出的各个预测分类概率中筛选出满足预设条件的目标预测分类概率;
类别确定模块505,用于将所述目标预测分类概率对应的工件类别确定为所述待识别工件的类别。
本申请的一些实施例中,所述提取模块502,在提取所述工件图像的方向梯度直方图hog特征时,具体用于:
将所述工件图像转换为灰度图像;
将所述灰度图像划分为至少一个预设尺寸的图像区域,其中,每个图像区域包括至少一个单元格,每个单元格包括至少一个像素点;
针对每个图像区域,提取该图像区域中每个单元格的梯度信息并根据该图像区域中各个单元格的梯度信息,确定该图像区域的hog特征;
将各个图像区域的hog特征进行拼接,得到所述工件图像的hog特征。
本申请的一些实施例中,所述筛选模块504,在从确定出的各个预测分类概率中筛选出满足预设条件的目标预测分类概率时,具体用于:
将各个预测分类概率中数值最大的预测分类概率确定为目标预测分类概率。
本申请的一些实施例中,所述装置还包括:模型训练模块506;
所述模型训练模块506,用于针对每个工件类别,根据以下方式训练得到与该工件类别匹配的svm模型:
获取包括正样本和负样本的样本训练集,其中,正样本为属于该工件类别的工件图像,正样本与正样本标签一一对应,负样本为不属于该工件类别的工件图像,负样本与负样本标签一一对应;
从所述样本训练集中获取预设数量的正样本和负样本;
分别提取每个正样本的hog特征和每个负样本的hog特征;
基于提取出的各正样本的hog特征、各负样本的hog特征以及待训练的svm模型,分别确定各正样本属于该工件类别的预测分类概率和各负样本属于该工件类别的预测分类概率;
基于各正样本属于该工件类别的预测分类概率和所述正样本标签,以及,各负样本属于该工件类别的预测分类概率和所述负样本标签,确定本次训练过程的损失值;
若所述损失值不大于设定阈值,则得到与该工件类别匹配的svm模型。
本申请的一些实施例中,所述模块训练模块506,还用于:
若所述损失值大于所述设定阈值,则调整所述待训练的svm模型的模型参数后,进入从所述样本训练集中获取预设数量的正样本和负样本的步骤。
由于本申请实施例中的装置解决问题的原理与本申请实施例上述工件分类方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
基于相同的技术构思,本申请实施例还提供了一种电子设备,参照图6所示的电子设备的结构示意图,所述电子设备60包括处理器61、存储器62和总线63,所述存储器62存储有所述处理器61可执行的机器可读指令,当所述设备60运行时,所述处理器61与所述存储器62之间通过总线63通信,所述处理器61执行所述存储器62存储的机器可读指令,使得所述设备60执行上述实施例中所述的任一工件分类方法的步骤。
此外,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的任一工件分类方法的步骤。
本申请实施例所提供的工件分类方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的工件分类方法的步骤,具体可参见上述方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。