发明内容
本申请实施例提供了一种传送带物料检测方法、装置、计算机可读存储介质及终端设备,可以解决现有的传送带物料检测中维护成本高、检测效率低的问题。
第一方面,本申请实施例提供了一种传送带物料检测方法,包括:
获取拍摄自传送带的目标图片;
采用预设滑动窗口遍历所述目标图片,获取各第一检测窗口内的目标图片对应的特征向量;
根据各所述特征向量与各预设聚类中心之间的距离匹配各所述特征向量对应的目标聚类中心;
确定未匹配到目标聚类中心的目标特征向量,并获取所述目标特征向量对应的目标窗口的第一窗口位置;
根据所述第一窗口位置合并相邻的目标窗口;
若合并的目标窗口的第一数量大于预设数量阈值,则确定所述传送带中存在物料。
可选地,在根据各所述特征向量与各预设聚类中心之间的距离匹配各所述特征向量对应的目标聚类中心之前,包括:
获取所述传送带对应的多张样本图片,其中,所述样本图片为所述传送带中不存在物料时的图片;
采用所述预设滑动窗口遍历各所述样本图片,获取各第二检测窗口内的各所述样本图片对应的样本特征向量;
利用预设聚类算法对各所述样本特征向量进行聚类处理,得到所述样本特征向量对应的各预设聚类中心和各所述预设聚类中心对应的聚类半径。
在第一方面的一种可能的实现方式中,在利用预设聚类算法对各所述样本特征向量进行聚类处理,得到所述样本特征向量对应的各预设聚类中心和各所述预设聚类中心对应的聚类半径之后,包括:
获取各所述预设聚类中心对应的各样本特征向量对应的第二检测窗口的第二窗口位置;
根据各所述第二窗口位置构建各所述第二检测窗口对应的聚类中心集,所述聚类中心集为所述第二检测窗口对应的预设聚类中心的集合。
可选地,所述根据各所述特征向量与各预设聚类中心之间的距离匹配各所述特征向量对应的目标聚类中心,包括:
获取各所述特征向量对应的第一检测窗口的第三窗口位置;
根据所述第三窗口位置确定各所述第一检测窗口对应的聚类中心集;
根据各所述特征向量与对应的聚类中心集中的各预设聚类中心之间的距离匹配各所述特征向量对应的目标聚类中心。
在第一方面的另一种可能的实现方式中,在利用预设聚类算法对各所述样本特征向量进行聚类处理,得到所述样本特征向量对应的各预设聚类中心和各所述预设聚类中心对应的聚类半径之后,包括:
根据各所述预设聚类中心对应的聚类半径确定各所述预设聚类中心对应的样本特征向量的第二数量;
根据所述第二数量对各所述预设聚类中心进行降序排列,得到所述预设聚类中心对应的排列数组。
可选地,所述根据各所述特征向量与各预设聚类中心之间的距离匹配各所述特征向量对应的目标聚类中心,包括:
对于每一特征向量,将所述排列数组中排序第一的预设聚类中心确定为所述特征向量对应的候选聚类中心;
确定所述特征向量与所述候选聚类中心之间的距离;
若所述距离小于或者等于所述候选聚类中心对应的聚类半径,则将所述候选聚类中心确定为所述特征向量对应的目标聚类中心;
若所述距离大于所述候选聚类中心对应的聚类半径,则更新所述排列数组,并返回执行所述将所述排列数组中排序第一的预设聚类中心确定为所述特征向量对应的候选聚类中心的步骤以及后续步骤。
可选地,在确定所述传送带中存在物料之后,还包括:
控制所述传送带停止运行,并发送报警消息。
第二方面,本申请实施例提供了一种传送带物料检测装置,包括:
目标图片获取模块,用于获取拍摄自传送带的目标图片;
特征向量获取模块,用于采用预设滑动窗口遍历所述目标图片,获取各检测窗口内的目标图片对应的特征向量;
特征向量匹配模块,用于根据各所述特征向量与各预设聚类中心之间的距离匹配各所述特征向量对应的目标聚类中心;
目标窗口确定模块,用于确定未匹配到目标聚类中心的目标特征向量,并获取所述目标特征向量对应的目标窗口的窗口位置;
目标窗口合并模块,用于根据所述窗口位置合并相邻的目标窗口;
物料确定模块,用于当合并的目标窗口的第一数量大于预设数量阈值时,确定所述传送带中存在物料。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述的传送带物料检测方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的传送带物料检测方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的传送带物料检测方法。
本申请实施例与现有技术相比存在的有益效果是:
本申请实施例中,首先获取拍摄自传送带的目标图片,并采用预设滑动窗口遍历所述目标图片,获取各第一检测窗口内的目标图片对应的特征向量;随后根据各所述特征向量与各预设聚类中心之间的距离匹配各所述特征向量对应的目标聚类中心;然后确定未匹配到目标聚类中心的目标特征向量,并获取所述目标特征向量对应的目标窗口的第一窗口位置;最后根据所述第一窗口位置合并相邻的目标窗口,若合并的目标窗口的第一数量大于预设数量阈值,则确定所述传送带中存在物料。本申请实施例通过特征向量和聚类来进行传送带的物料检测,可有效减少传送带物料检测对待检测物料的颜色及形状的依赖,降低传送带物料检测的后期维护成本,提高传送带物料的检测效率和准确性。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
如图1所示,本申请实施例提供了一种传送带物料检测方法,本申请实施例的执行主体可为终端设备,所述终端设备包括但不限于:桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。其中,所述传送带物料检测方法可以包括:
S101、获取拍摄自传送带的目标图片;
本申请实施例中,所述传送带可为工业流水线等场所进行物料传输的传送带,所述传送带的周围可以安装在有摄像头等拍摄装置,所述摄像头等拍摄装置可以拍摄包含整个传送带的图片。其中,所述摄像头等拍摄装置可以与所述终端设备连接,例如,所述摄像头等拍摄装置可以通过移动网络、无线网络或者有线网络与所述终端设备通信连接。所述摄像头等拍摄装置用于对所述传送带进行图片拍摄,并可将所拍摄的目标图片通过移动网络、无线网络或者有线网络传输至所述终端设备。
应理解,所述摄像头等拍摄装置也可以对所述传送带进行视频拍摄,并可以将所拍摄的视频传输至所述终端设备,所述终端设备则可以从所述视频中截取所述目标图片。
S102、采用预设滑动窗口遍历所述目标图片,获取各第一检测窗口内的目标图片对应的特征向量;
示例的,可根据所述传送带的纹理结构确定所述预设滑动窗口的大小,具体地,可以将能够体现所述传送带纹理结构的最小尺寸确定为所述预设滑动窗口的大小,例如,对于表面非平滑的锯齿花纹防滑传送带,所述预设滑动窗口内应包含多个锯齿。另外,还可以根据具体情况设置所述预设滑动窗口的滑动步长,例如,可以将所述预设滑动窗口的滑动步长设置为8。
在此,所述终端设备获取所述目标图片后,可以采用所述预设滑动窗口以对应的滑动步长遍历所述目标图片,并可以在遍历过程中提取各第一检测窗口内的目标图片对应的特征来构成各第一检测窗口对应的特征向量,例如,可以提取HOG特征来构成各第一检测窗口对应的特征向量,或者可以提取RGB特征来构成各第一检测窗口对应的特征向量,或者可以通过卷积自编码器提取特征来构成各第一检测窗口对应的特征向量。
其中,当提取HOG特征来构成各第一检测窗口对应的特征向量,所述特征向量可以通过如下步骤获取:
步骤a、计算所述第一检测窗口内的目标图片的一阶导数;
具体地,对目标图片f中的任一像素点(x,y)可以根据下述公式计算其水平方向一阶偏导数Dx、垂直方向一阶偏导数Dy、导数幅值和相角:
Dx(x,y)=f(x+1,y)-f(x-1,y)
Dy(x,y)=f(x,y+1)-f(x,y-1)
在一种可能的实现方式中,因摄像头等拍摄装置采集的一般是RGB彩色图片,因此,在采用所述预设滑动窗口对所述目标图片进行遍历之前,所述终端设备可以首先对所述目标图片进行灰度处理,以得到所述目标图片对应的灰度图片,然后对目标图片f对应的灰度图片f’中的任一像素点(x,y)可以根据上述公式计算其水平方向一阶偏导数Dx、垂直方向一阶偏导数Dy、导数幅值和相位,即可以通过颜色空间变换,以将彩色图片转化成灰度图片,然后再进行一阶导数的计算。
在另一种可能的实现方式中,因颜色空间变换可能会带来信息损失,因此所述终端设备可以直接根据RGB彩色图片来计算一阶导数,例如,可以将三个通道中导数的最大值确定为对应的一阶导数:
Dx(x,y)=max{Dx(x,y,R),Dx(x,y,G),Dx(x,y,B)}
Dy(x,y)=max{Dy(x,y,R),Dy(x,y,G),Dy(x,y,B)}
或者可以将三个通道的导数之和确定为对应的一阶导数:
Dx(x,y)=Dx(x,y,R)+Dx(x,y,G)+Dx(x,y,B)
Dy(x,y)=Dy(x,y,R)+Dy(x,y,G)+Dy(x,y,B)
或者可以将三个通道导数的平方和确定为对应的一阶导数:
步骤b、进行梯度方向的离散化;
本申请实施例中,可以将所述第一检测窗口内的目标图片分成若干个单元网格,例如,可以分成若干个8*8的单元网格,并可以采用n个区间来统计各个单元网格的梯度信息,其中,n可以为9,即可以采用区间长度为20°的9个区间来统计各个单元网格的梯度信息。
应理解,相角θ的取值范围为0~180°。在此,可以首先将相角离散化到对应的区间,例如,对于某一像素点(x,y),当计算得到该像素点对应的相角θ=42°,则可以确定θ∈[40°,60°)这一区间,其中,40°对应的相角编号为2,60°对应的相角编号为3,则该像素点在40°梯度方向上的投票可以为:
同时该像素点在60°梯度方向上的投票可以为:
需要说明的是,为减少内存占用,可以使用两张与目标图片等大的双通道图片保存中间结果,其中,一张图片存储目标图片上的每个像素点在相邻相角方向上的投票,另一张图片存储该像素点处计算所得的相角被离散化到的两个相邻的相角编号。
步骤c、统计梯度方向直方图,并根据梯度方向直方图获取所述第一检测窗口对应的特征向量;
应理解,将8*8的单元网格中各像素点在各梯度方向上的投票相加,可以得到该单元网格对应的梯度方向直方图,即可以得到该单元网格对应的n维特征向量。
在此,所述第一检测窗口可以由16*16个区块构成,而每一个区块可以由2*2个的单元网格构成,因此,可以首先将各个区块中的每一个单元网格对应的特征向量水平拼接起来,得到各区块对应的特征向量,其中,各区块对应的特征向量的维数为4n;然后,可以将这16*16个区块对应的各个特征向量水平方向拼接起来,从而得到所述第一检测窗口对应的特征向量,其中,所述第一检测窗口对应的特征向量的维数为:
其中,widthwindow为窗口宽度,heightwindow为窗口高度,widthblock为区块宽度,heightblock为区块高度,block_stridewidth为水平方向上的窗口个数,block_strideheight为垂直方向上的窗口个数。
可选地,在计算各区块对应的特征向量的过程中,因任一像素点对上下左右4个单元网格对应的梯度方向直方图均有贡献,因此,可以首先确定这4个单元网格各自所对应的权重。示例的,如图2所示,可以根据下述公式确定这4个单元网格各自所对应的权重:
w0=(1-cellX)*(1-cellY)
w1=cellX*(1-cellY)
w2=(1-cellX)*cellY
w3=cellX*cellY
其中,widthcell为单元网格的宽度,heightcell为单元网格的高度,cellX=(x+0.5)/widthcell-0.5,cellY=(y+0.5)/heightcell-0.5。
然后,可以使用高斯核对导数幅值进行加权,其中,高斯核大小与区块大小一致,高斯核具体可以为:
最后,对于某一区块中的任一像素点(x,y),若该像素点在40°梯度方向上的导数幅值为a0,在60°梯度方向上的导数幅值为a1,则该像素点在各单元网格对应的40°梯度方向和60°梯度方向上的投票可以为:
votei(40°)=Gauss(x,y)*a0*wi
votei(60°)=Gauss(x,y)*a1*wi
其中,i=1,2,3,4。
需要说明的是,在室内场景下,如果摄像头等拍摄装置的拍摄区没有配备专业光源和/或四周没有加遮光板,拍摄得到的目标图片可能会存在光照不均匀现象,或者当传送带的四周有人走过,拍摄得到的目标图片可能会出现明显阴影,因此,为增强所提取的特征对局部光照变化的鲁棒性,对每个区块对应的特征向量可利用下述公式进行局部直方图归一化:
其中,histi是特征向量的第i个分量,n是特征向量的维数,thresh为0.2。
然后,使用下述公式将特征向量的模归一化到1。
应理解,通过提取HOG特征来构成各第一检测窗口对应的特征向量仅作示意性解释,不应理解为对本申请实施例的限制,本申请实施例在HOG特征提取的框架下,还可以使用RGB特征编码图片的颜色信息来构成各第一检测窗口对应的特征向量。具体地,可以通过将目标图片划分网格,并统计每个网格内的RGB灰度值的平均值来得到各第一检测窗口对应的特征向量;或者也可以将目标图片转换到HSV颜色空间,丢弃受光照强度影响较大的V通道,并采用类似HOG特征提取的方法,对H通道的灰度值进行离散化,将S通道的取值按权重投票到各个网格中,生成颜色特征编码来构成各第一检测窗口对应的特征向量。此外,还可以使用卷积自编码器来获取各第一检测窗口对应的特征向量。
在一种可能的实现方式中,如图3所示,在所述根据各所述特征向量与各预设聚类中心之间的距离匹配各所述特征向量对应的目标聚类中心之前,可以包括:
S301、获取所述传送带对应的多张样本图片,其中,所述样本图片为所述传送带中不存在物料时的图片;
S302、采用所述预设滑动窗口遍历各所述样本图片,获取各第二检测窗口内的各所述样本图片对应的样本特征向量;
S303、利用预设聚类算法对各所述样本特征向量进行聚类处理,得到所述样本特征向量对应的各预设聚类中心和各所述预设聚类中心对应的聚类半径。
对于上述S301至S303,可以首先收集30~50张样本图片,所述样本图片为所述传送带中不存在物料时的图片,即所述样本图片为空传送带图片;然后可以使用所述预设滑动窗口遍历各样本图片,并获取各第二检测窗口内的各所述样本图片对应的样本特征向量,在此,所述样本特征向量的获取方式与前述所述的特征向量的获取方式相似,基本原理相同。最后,可以使用预设聚类算法获取所有样本特征向量的多个预设聚类中心,并获取各所述预设聚类中心对应的聚类半径。
其中,所述预设聚类算法可以为K均值聚类算法。具体地,首先可以随机初始化M个聚类中心;其次,可以根据各预设特征向量与这M个聚类中心之间的距离将各预设特征向量分配到最近的聚类中心;最后,可以计算与各个聚类中心相关联的样本特征向量的均值,作为新的聚类中心来进行迭代处理,直至到达最大迭代次数或聚类中心的移动小于某一阈值(1e-7)为止,得到最终的预设聚类中心以及各预设聚类中心对应的样本特征向量。
应理解,在确定各预设聚类中心对应的聚类半径时,可将可包括该预设聚类中心的95%样本特征向量的距离来作为该预设聚类中心对应的聚类半径,以避免由于少数点到聚类中心比较远,使得聚类中心的聚类半径偏大,影响物料检测的准确性。
在一种可能的实现方式中,因L2距离对纹理的上下左右平移不敏感,因此可使用L2距离来作为各预设特征向量与聚类中心之间的距离,具体地,L2距离的计算公式为:
其中,P为预设特征向量的维数,I1为预设特征向量,I2为聚类中心。
在另一种可能的实现方式中,还可以使用L1距离或者余弦距离来作为各预设特征向量与聚类中心之间的距离,具体地,L1距离的计算公式为:
余弦距离的计算公式为:
需要说明的是,所述预设聚类算法也可以为基于K均值聚类算法的层次聚类,例如,可以采用自顶向下的层次聚类,即可以首先使用K均值聚类算法将预设特征向量分为N类;然后针对每一类的样本特征向量,可继续使用K均值聚类算法进行聚类,直至每一类的样本特征向量的个数小于P为止。其中,N可以为5~20中的任一整数,P可以为100。
具体地,首先可以将每一个类作为一个聚类簇来构建索引树,然后可以根节点作为聚类簇列表的初始值,循环选择当前已获得的聚类簇中,能够使得全部样本的类内距离最小的聚类簇进行拆分,并以其子簇代替父簇插入到聚类簇列表中,直至达到所需聚类中心的数量为止。其中,全部样本的类内距离定义如下:
其中,c为第c个聚类簇,μc为第c个预设聚类中心,xi为第i个预设特征向量。
S103、根据各所述特征向量与各预设聚类中心之间的距离匹配各所述特征向量对应的目标聚类中心;
本申请实施例中,所述终端设备在得到所述目标图片对应的各所述特征向量后,可分别计算各所述特征向量与各预设聚类中心之间的距离,从而可根据计算得到的距离确定各所述特征向量对应的目标聚类中心。
在一种可能的实现方式中,在利用预设聚类算法对各所述样本特征向量进行聚类处理,得到所述样本特征向量对应的各预设聚类中心和各所述预设聚类中心对应的聚类半径之后,可以包括:
步骤d、获取各所述预设聚类中心对应的各样本特征向量对应的第二检测窗口的第二窗口位置;
步骤e、根据各所述第二窗口位置构建各所述第二检测窗口对应的聚类中心集,所述聚类中心集为所述第二检测窗口对应的预设聚类中心的集合。
对于上述步骤d和步骤e,不同样本图片在相同的第二检测窗口所对应的特征向量可能匹配到不同的聚类中心,例如,样本图片A在第二检测窗口A中所对应的样本特征向量A匹配的预设聚类中心可以为1号聚类中心,样本图片B在第二检测窗口A中所对应的样本特征向量B匹配的预设聚类中心可以为2号聚类中心,……,样本图片S在第二检测窗口A中所对应的样本特征向量S匹配的聚类中心可以为s号聚类中心,则第二检测窗口A匹配的预设聚类中心可以包括1号聚类中心、2号聚类中心、……、s号聚类中心等多个。同样地,其他第二检测窗口可匹配的预设聚类中心也可以包括多个。因此,本申请实施例中,可以根据各第二检测窗口的第二窗口位置来构建各第二检测窗口对应的聚类中心集,即将可以匹配相同第二检测窗口的预设聚类中心划分至同一集合中。在此,匹配相同第二检测窗口可以是匹配一个相同的第二检测窗口,也可以是匹配多个相同的第二检测窗口,例如,可以将同时匹配上第二检测窗口A和第二检测窗口B的预设聚类中心划分至同一集合中。
在此,通过进行聚类中心集的划分可以有效减少物料检测中目标聚类中心匹配时的匹配数量,提高各特征向量的匹配速度,从而提高物料检测的准确性和效率。
需要说明的是,在每一个聚类中心集中,还可以根据该聚类中心集中各预设聚类中心所对应的样本特征向量的数量来对该聚类中心集中的各预设聚类中心进行降序排序,得到该聚类中心集对应的排列数组,其中,样本特征向量越多的预设聚类中心排序越靠前,而样本特征向量越小的预设聚类中心排序越靠后。因此,在进行特征向量对应的目标聚类中心的匹配时,可以首先匹配该特征向量对应的聚类中心集,然后在该聚类中心集中可以优先匹配排列数组中排序在前的预设聚类中心,以此进一步加快目标聚类中心的匹配速度,提高物料检测的检测速度和准确性。
因此,所述根据各所述特征向量与各预设聚类中心之间的距离匹配各所述特征向量对应的目标聚类中心,可以包括:
步骤f、获取各所述特征向量对应的第一检测窗口的第三窗口位置;
步骤g、根据所述第三窗口位置确定各所述第一检测窗口对应的聚类中心集;
步骤h、根据各所述特征向量与对应的聚类中心集中的各预设聚类中心之间的距离匹配各所述特征向量对应的目标聚类中心。
对于上述步骤f至步骤h,应理解,在确定某一特征向量所匹配的目标聚类中心时,可以首先获取该特征向量对应的第一检测窗口的第三窗口位置,然后可以根据该第三窗口位置确定该第一检测窗口对应的聚类中心集,最后,可以计算该特征向量与该聚类中心集中的各预设聚类中心之间的距离,并可以根据计算得到的距离与各预设聚类中心对应的聚类半径来确定该特征向量对应的目标聚类中心。具体地,当该特征向量与该聚类中心集中的某一预设聚类中心之间的距离小于或等于该预设聚类中心对应的聚类半径时,则可以认为该特征向量对应的目标聚类中心为该预设聚类中心。而当该特征向量与该聚类中心集中的所有预设聚类中心之间的距离均大于所对应的预设聚类中心的聚类半径时,则可以认为该特征向量未匹配到目标聚类中心。
可选地,在确定该特征向量对应的聚类中心集后,可以首先获取该聚类中心集所对应的排列数组,然后可以根据该排列数组来匹配该特征向量所对应的目标聚类中心,即优先匹配该聚类中心集排序在前的预设聚类中心。其中,根据该排列数组来匹配该特征向量所对应的目标聚类中心将在后续内容中进行详细描述。
在另一种可能的实现方式中,在利用预设聚类算法对各所述样本特征向量进行聚类处理,得到所述样本特征向量对应的各预设聚类中心和各所述预设聚类中心对应的聚类半径之后,可以包括:
步骤i、根据各所述预设聚类中心对应的聚类半径确定各所述预设聚类中心对应的样本特征向量的第二数量;
步骤j、根据所述第二数量对各所述预设聚类中心进行降序排列,得到所述预设聚类中心对应的排列数组。
对于上述步骤i和步骤j,本申请实施例中,还可以根据各预设聚类中心所对应的样本特征向量的第二数量来对各预设聚类中心进行降序排序,得到排列数组,其中,样本特征向量越多的预设聚类中心排序越靠前,而样本特征向量越小的预设聚类中心排序越靠后,而在进行特征向量所对应的目标聚类中心的匹配时,可优先匹配排列数组中排序在前的预设聚类中心,以此加快目标聚类中心的匹配速度,提高物料检测的检测速度和准确性。
因此,如图4所示,所述根据各所述特征向量与各预设聚类中心之间的距离匹配各所述特征向量对应的目标聚类中心,可以包括:
S401、对于每一特征向量,将所述排列数组中排序第一的预设聚类中心确定为所述特征向量对应的候选聚类中心;
S402、确定所述特征向量与所述候选聚类中心之间的距离;
S403、若所述距离小于或者等于所述候选聚类中心对应的聚类半径,则将所述候选聚类中心确定为所述特征向量对应的目标聚类中心;
S404、若所述距离大于所述候选聚类中心对应的聚类半径,则更新所述排列数组,并返回执行所述将所述排列数组中排序第一的预设聚类中心确定为所述特征向量对应的候选聚类中心的步骤以及后续步骤。
对于上述S401至S404,在确定某一特征向量对应的目标聚类中心时,可以首先将排列数组中排序第一的预设聚类中心确定为该特征向量对应的候选聚类中心,然后计算该特征向量与该候选聚类中心之间的距离,若计算得到的距离在该候选聚类中心对应的聚类半径以内,则可以直接将该候选聚类中心确定为该特征向量对应的目标聚类中心;若计算得到的距离不在该候选聚类中心对应的聚类半径以内,则继续将排序第二的预设聚类中心确定为该特征向量对应的候选聚类中心,然后再次计算该特征向量与该候选聚类中心之间的距离,若计算得到的距离仍不在该候选聚类中心对应的聚类半径以内,则继续将排序第三的预设聚类中心确定为该特征向量对应的候选聚类中心,然后再次进行距离计算,以此类推,直到得到该特征向量对应的目标聚类中心或者直达该排列数组内的预设聚类中心均已被匹配过为止。
应理解,当该特征向量与排列数组内的最后一个预设聚类中心之间的距离仍不在该预设聚类中心对应的聚类半径以内时,则可以认为该特征向量未匹配到目标聚类中心。
S104、确定未匹配到目标聚类中心的目标特征向量,并获取所述目标特征向量对应的目标窗口的第一窗口位置;
S105、根据所述第一窗口位置合并相邻的目标窗口;
S106、若合并的目标窗口的第一数量大于预设数量阈值,则确定所述传送带中存在物料。
对于上述S104至S106,在完成所有特征向量所对应的目标聚类中心的匹配后,所述终端设备可以获取其中未匹配到目标聚类中心的目标特征向量,其中,未匹配到目标聚类中心的目标特征向量可能与各预设聚类中心均不属于同一类别,因各预设聚类中心所对应的类别为空传送带,因此,未匹配到目标聚类中心的目标特征向量可能为所述传送带中存在物料时的特征向量。在此,可根据可能为所述传送带中存在物料时的特征向量的个数是否达到预设数量阈值来确定所述传送带中是否存在物料,其中,所述预设数量阈值可根据实际情况具体确定。
具体地,首先可以获取目标特征向量对应的目标窗口的第一窗口位置,然后可以根据第一窗口位置来合并相邻的目标窗口,例如,当目标窗口A与目标窗口D相邻,目标窗口D与目标窗口F相邻,目标窗口F与目标窗口H相邻时,则可将目标窗口A、目标窗口D、目标窗口F和目标窗口H进行合并。而当合并的目标窗口的第一数量大于所述预设数量阈值时,则表明所述传送带不是空传送带,即可以确定所述传送带中存在物料。而当合并的目标窗口的第一数量大小于或等于所述预设数量阈值时,可以认为在进行目标聚类中心的匹配时存在匹配错误,所述传送带为空传送带,即可以确定所述传送带中不存在物料。
可选地,在确定所述传送带中存在物料之后,还可以包括控制所述传送带停止运行,并发送报警消息,以提醒操作人员取出所述传送带中的物料,避免造成物料损坏。
本申请实施例中,首先获取拍摄自传送带的目标图片,并采用预设滑动窗口遍历所述目标图片,获取各第一检测窗口内的目标图片对应的特征向量;随后根据各所述特征向量与各预设聚类中心之间的距离匹配各所述特征向量对应的目标聚类中心;然后确定未匹配到目标聚类中心的目标特征向量,并获取所述目标特征向量对应的目标窗口的第一窗口位置;最后根据所述第一窗口位置合并相邻的目标窗口,若合并的目标窗口的第一数量大于预设数量阈值,则确定所述传送带中存在物料。本申请实施例通过特征向量和聚类来进行传送带的物料检测,可有效减少传送带物料检测对待检测物料的颜色及形状的依赖,降低传送带物料检测的后期维护成本,提高传送带物料的检测效率和准确性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的传送带物料检测方法,图5示出了本申请实施例提供的传送带物料检测装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图5,所述传送带物料检测装置,可以包括:
目标图片获取模块501,用于获取拍摄自传送带的目标图片;
特征向量获取模块502,用于采用预设滑动窗口遍历所述目标图片,获取各检测窗口内的目标图片对应的特征向量;
特征向量匹配模块503,用于根据各所述特征向量与各预设聚类中心之间的距离匹配各所述特征向量对应的目标聚类中心;
目标窗口确定模块504,用于确定未匹配到目标聚类中心的目标特征向量,并获取所述目标特征向量对应的目标窗口的窗口位置;
目标窗口合并模块505,用于根据所述窗口位置合并相邻的目标窗口;
物料确定模块506,用于当合并的目标窗口的第一数量大于预设数量阈值时,确定所述传送带中存在物料。
可选地,所述传送带物料检测装置,还可以包括:
样本图片获取模块,用于获取所述传送带对应的多张样本图片,其中,所述样本图片为所述传送带中不存在物料时的图片;
样本向量获取模块,用于采用所述预设滑动窗口遍历各所述样本图片,获取各第二检测窗口内的各所述样本图片对应的样本特征向量;
聚类中心确定模块,用于利用预设聚类算法对各所述样本特征向量进行聚类处理,得到所述样本特征向量对应的各预设聚类中心和各所述预设聚类中心对应的聚类半径。
在一种可能的实现方式中,所述传送带物料检测装置,还可以包括:
第二窗口位置获取模块,用于获取各所述预设聚类中心对应的各样本特征向量对应的第二检测窗口的第二窗口位置;
聚类中心集构建模块,用于根据各所述第二窗口位置构建各所述第二检测窗口对应的聚类中心集,所述聚类中心集为所述第二检测窗口对应的预设聚类中心的集合。
可选地,所述特征向量匹配模块503,可以包括:
第三窗口位置获取单元,用于获取各所述特征向量对应的第一检测窗口的第三窗口位置;
第三窗口位置确定单元,用于根据所述第三窗口位置确定各所述第一检测窗口对应的聚类中心集;
目标聚类中心匹配单元,用于根据各所述特征向量与对应的聚类中心集中的各预设聚类中心之间的距离匹配各所述特征向量对应的目标聚类中心。
在另一种可能的实现方式中,所述传送带物料检测装置,还可以包括:
第二数量确定模块,用于根据各所述预设聚类中心对应的聚类半径确定各所述预设聚类中心对应的样本特征向量的第二数量;
降序排列模块,用于根据所述第二数量对各所述预设聚类中心进行降序排列,得到所述预设聚类中心对应的排列数组。
可选地,所述特征向量匹配模块503,还可以包括:
候选聚类中心确定单元,用于对于每一特征向量,将所述排列数组中排序第一的预设聚类中心确定为所述特征向量对应的候选聚类中心;
距离确定单元,用于确定所述特征向量与所述候选聚类中心之间的距离;
目标聚类中心确定单元,用于若所述距离小于或者等于所述候选聚类中心对应的聚类半径,则将所述候选聚类中心确定为所述特征向量对应的目标聚类中心;
排列数组更新单元,用于若所述距离大于所述候选聚类中心对应的聚类半径,则更新所述排列数组,并返回执行所述将所述排列数组中排序第一的预设聚类中心确定为所述特征向量对应的候选聚类中心的步骤以及后续步骤。
可选地,所述传送带物料检测装置,还可以包括:
报警消息发送模块,用于控制所述传送带停止运行,并发送报警消息。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图6为本申请一实施例提供的终端设备的结构示意图。如图6所示,该实施例的终端设备6包括:至少一个处理器60(图6中仅示出一个)处理器、存储器61以及存储在所述存储器61中并可在所述至少一个处理器60上运行的计算机程序62,所述处理器60执行所述计算机程序62时实现上述任意各个传送带物料检测方法实施例中的步骤。
所述终端设备6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是终端设备6的举例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所述处理器60可以是中央处理单元(Central Processing Unit,CPU),该处理器60还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61在一些实施例中可以是所述终端设备6的内部存储单元,例如终端设备6的硬盘或内存。所述存储器61在另一些实施例中也可以是所述终端设备6的外部存储设备,例如所述终端设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述终端设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质至少可以包括:能够将计算机程序代码携带到装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。