发明内容
本发明实施例的目的在于提供一种对物品陈列进行鉴别的方法、装置、电子设备及计算机可读存储介质,以快速自动鉴别物品的陈列是否符合标准。具体技术方案如下:
第一方面,本发明实施例提供了一种对物品陈列进行鉴别的方法,所述方法包括:
获得包含目标货架的待检测图像;其中,所述目标货架中陈列有物品;
对所述待检测图像进行图像处理,确定所述目标货架中所陈列的各个物品以及各个物品在所述目标货架中的第一位置;
针对每一第一位置,判断该第一位置上的物品是否与所对应目标位置上的物品相同;其中,该第一位置所对应的目标位置为:从模板图像中所确定的多个第二位置中、与该第一位置等同的第二位置;所述模板图像为:按照物品陈列标准在所述目标货架中陈列物品后所采集的包含所述目标货架的图像;所述第二位置为:所述模板图像中所陈列的物品所在的位置;
如果针对每一第一位置的判断结果均为是,判定所述目标货架中所陈列物品符合标准,否则,判定所述目标货架中所陈列物品不符合标准。
可选的,在所述针对每一第一位置,判断该第一位置上的物品是否与所对应目标位置上的物品相同的步骤之前,还包括:
判断从所述模板图像中所确定的多个第二位置是否均存在相对应的第一位置;如果是,执行所述针对每一第一位置,判断该第一位置上的物品是否与所对应目标位置上的物品相同的步骤;
否则,判定所述目标货架中所陈列物品不符合标准。
可选的,所述对所述待检测图像进行图像处理,确定所述目标货架中所陈列的各个物品以及各个物品在所述目标货架中的第一位置的步骤,包括:
利用边缘检测技术,定位所述目标货架在所述待检测图像中的目标区域;
利用物体检测技术,确定所述目标区域内的各个物品;
针对每一物品,确定该物品在所述目标货架中所在的层数和列数。
可选的,所述利用物体检测技术,确定所述目标区域内的各个物品的步骤,包括:
基于深度学习的卷积神经网络,检测所述目标区域内的各个物品。
可选的,所述针对每一物品,确定该物品在所述目标货架中所在的层数和列数的步骤,包括:
针对每一物品,利用k-means聚类算法对该物品在所述目标区域内的坐标进行聚类,得到该物品所在层的位置中心,并基于所述位置中心计算该物品所在的层数;
根据该物品所在层中的各个物品的坐标,确定该物品所在的列数。
可选的,所述判断该第一位置上的物品是否与所对应目标位置上的物品相同的步骤,包括:
计算第一物品与第二物品的相似度;其中,所述第一物品为:该第一位置上的物品,所述第二物品为:该第一位置所对应的目标位置上的物品;
判断所计算得到的相似度是否满足预设的相似条件;
如果是,判定该第一位置上的物品与所对应目标位置上的物品相同;
如果否,判定该第一位置上的物品与所对应目标位置上的物品不相同。
可选的,所述计算第一物品与第二物品的相似度的步骤,包括:
利用随机抽样一致算法,确定第一物品与第二物品的匹配点数量,将对所述匹配点数量进行归一化得到的归一化值,作为所述第一物品与所述第二物品的相似度;
或,
将包含所述第一物品的图片和包含所述第二物品的图片输入卷积神经网络,得到所述第一物品与所述第二物品的相似度;
或,
利用随机抽样一致算法,确定所述第一物品与所述第二物品的匹配点数量,将对所述匹配点数量进行归一化得到的归一化值,作为所述第一物品与所述第二物品的第一中间相似度;
将包含所述第一物品的图片和包含所述第二物品的图片输入卷积神经网络,得到所述第一物品与所述第二物品的第二中间相似度;
根据所述第一中间相似度和所述第二中间相似度,计算所述第一物品与所述第二物品的相似度。
第二方面,本发明实施例提供了一种对物品陈列进行鉴别的装置,所述装置包括:
获得模块,用于获得包含目标货架的待检测图像;其中,所述目标货架中陈列有物品;
确定模块,用于对所述待检测图像进行图像处理,确定所述目标货架中所陈列的各个物品以及各个物品在所述目标货架中的第一位置;
第一判断模块,用于针对每一第一位置,判断该第一位置上的物品是否与所对应目标位置上的物品相同;如果针对每一第一位置的判断结果均为是,判定所述目标货架中所陈列物品符合标准,否则,判定所述目标货架中所陈列物品不符合标准;
其中,该第一位置所对应的目标位置为:从模板图像中所确定的多个第二位置中、与该第一位置等同的第二位置;所述模板图像为:按照物品陈列标准在所述目标货架中陈列物品后所采集的包含所述目标货架的图像;所述第二位置为:所述模板图像中所陈列的物品所在的位置。
可选的,所述装置还包括:
第二判断模块,用于在所述第一判断模块针对每一第一位置,判断该第一位置上的物品是否与所对应目标位置上的物品相同之前,判断从所述模板图像中所确定的多个第二位置是否均存在相对应的第一位置;如果是,触发所述第一判断模块;否则,判定所述目标货架中所陈列物品不符合标准。
可选的,所述确定模块,包括:
定位子模块,用于利用边缘检测技术,定位所述目标货架在所述待检测图像中的目标区域;
第一确定子模块,用于利用物体检测技术,确定所述目标区域内的各个物品;
第二确定子模块,用于针对每一物品,确定该物品在所述目标货架中所在的层数和列数。
可选的,所述第一确定子模块,具体用于:
基于深度学习的卷积神经网络,检测所述目标区域内的各个物品。
可选的,所述第二确定子模块,包括:
计算单元,用于针对每一物品,利用k-means聚类算法对该物品在所述目标区域内的坐标进行聚类,得到该物品所在层的位置中心,并基于所述位置中心计算该物品所在的层数;
确定单元,用于根据该物品所在层中的各个物品的坐标,确定该物品所在的列数。
可选的,所述第一判断模块,包括:
计算子模块,用于计算第一物品与第二物品的相似度;其中,所述第一物品为:该第一位置上的物品,所述第二物品为:该第一位置所对应的目标位置上的物品;
判断子模块,用于判断所计算得到的相似度是否满足预设的相似条件;如果是,判定该第一位置上的物品与所对应目标位置上的物品相同;如果否,判定该第一位置上的物品与所对应目标位置上的物品不相同。
可选的,所述计算子模块,具体用于:
利用随机抽样一致算法,确定第一物品与第二物品的匹配点数量,将对所述匹配点数量进行归一化得到的归一化值,作为所述第一物品与所述第二物品的相似度;
或,
将包含所述第一物品的图片和包含所述第二物品的图片输入卷积神经网络,得到所述第一物品与所述第二物品的相似度;
或,
利用随机抽样一致算法,确定所述第一物品与所述第二物品的匹配点数量,将对所述匹配点数量进行归一化得到的归一化值,作为所述第一物品与所述第二物品的第一中间相似度;
将包含所述第一物品的图片和包含所述第二物品的图片输入卷积神经网络,得到所述第一物品与所述第二物品的第二中间相似度;
根据所述第一中间相似度和所述第二中间相似度,计算所述第一物品与所述第二物品的相似度。
第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的对物品陈列进行鉴别的方法的方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的对物品陈列进行鉴别的方法的方法步骤。
本发明实施例提供的方案,首先获得包含目标货架的待检测图像,然后对待检测图像进行图像处理,确定目标货架中所陈列的各个物品以及各个物品在目标货架中的第一位置,再针对每一第一位置,判断该第一位置上的物品是否与模板图像中所对应目标位置上的物品相同,如果针对每一第一位置的判断结果均为是,判定目标货架中所陈列物品符合标准,否则,判定目标货架中所陈列物品不符合标准。可见,应用本发明实施例的方案,不需要人工观察物品陈列是否与标准一致,而是通过对待检测图像进行图像处理,确定货架上的各个物品以及对应的位置,再将每一位置上的物品与模板图像中对应位置上的物品进行比对,从而快速自动鉴别物品的陈列是否符合标准。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为实现快速自动鉴别物品的陈列是否符合标准,本发明实施例提供了一种对物品陈列进行鉴别的方法、装置、电子设备及计算机可读存储介质。
下面首先对本发明实施例提供的一种对物品陈列进行鉴别的方法进行介绍。
需要说明的是,本发明实施例所提供的一种对物品陈列进行鉴别的方法的执行主体可以为一种对物品陈列进行鉴别的装置,其中,该对物品陈列进行鉴别的装置运行于电子设备中。在具体应用中,该电子设备可以为:终端设备或服务器,当然并不局限于此。
参见图1所示,本发明实施例提供的一种对物品陈列进行鉴别的方法,包括步骤S101~S103:
S101,获得包含目标货架的待检测图像。
其中,目标货架中陈列有物品。
在一种实现方式中,作为执行主体的终端设备可以具有图像采集功能,例如终端设备包含摄像头,则执行主体可以获得摄像头采集的包含目标货架的图像作为待检测图像。在另一种实现方式中,执行主体可以为服务器,则执行主体可以获得图像采集终端发送的包含目标货架的图像作为待检测图像。
在获得待检测图像之后,还可以对待检测图像进行预处理,例如图像增强操作,以提高图像质量,从而提高鉴别物品陈列是否符合标准的准确率。
S102,对待检测图像进行图像处理,确定目标货架中所陈列的各个物品以及各个物品在目标货架中的第一位置。
具体的,可以先确定目标货架在待检测图像中所在的目标区域,然后检测出该区域内的各个物品,并确定每一物品在目标货架中的位置。
在一种实现方式中,上述对待检测图像进行图像处理,确定目标货架中所陈列的各个物品以及各个物品在目标货架中的第一位置的步骤,可以包括下述步骤a1、a2、a3:
步骤a1、利用边缘检测技术,定位目标货架在待检测图像中的目标区域。
可以理解的,定位货架在图像中的区域,可以称为货架检测,即通过检测货架的四个边缘来确定货架的范围,以避免货架外的其它物品造成的噪声影响。货架边缘检测可以采取常用的边缘检测方法,例如利用LSD(Line Segment Detector,直线段检测算法),检测货架的上下左右四个边缘的直线,并用k-means聚类算法对检测出的边缘直线进行聚类,然后通过边缘直线的位置角度、边缘直线数量等条件判断货架的边缘,进而定位出货架在图像中的区域。
步骤a2、利用物体检测技术,确定目标区域内的各个物品。
在一种实现方式中,可以基于深度学习的卷积神经网络,检测目标区域内的各个物品。
本领域技术人员可以理解的是,基于深度学习的卷积神经网络来检测目标区域内的各个物品的物体检测方法可以分为两类。一是基于回归方法的深度学习检测算法,这类方法使用了回归的思想,即直接在图像的多个位置上回归出位于该位置的物体的边框以及物体的类别。二是基于Region Proposal(候选区域)的深度学习目标物体检测算法,由于该类算法利用了图像中的纹理、边缘、颜色等信息,可以保证在选取较少窗口(几百个甚至几千个)的情况下保持较高的召回率,这大大降低了后续操作的时间复杂度,并且获取的候选窗口要比滑动窗口的质量更高(滑动窗口固定长宽比),该类算法所利用的卷积神经网络的结构主要有RCNN(Regions with CNN features)、Fast R-CNN、Faster R-CNN等。
上述第一类方法的检测速度比较快,能达到实时的效果,第二类方法的准确度比较高。基于对物品检测准确度的要求,可以采用第二类方法,具体可以采用Faster R-CNN卷积神经网络进行物品检测。可以理解的是,采用Faster R-CNN卷积神经网络进行物品检测,不仅检测准确率较高,而且检测速度也有较大提升。
下面对Faster R-CNN卷积神经网络的训练过程进行简单介绍。如图2所示的Faster R-CNN卷积神经网络的网络结构图,训练样本为图片,对各个训练样本可以按照下述步骤1)~6)对Faster R-CNN卷积神经网络进行训练:
1)将图片输入到Faster R-CNN卷积神经网络;
2)利用Faster R-CNN卷积神经网络的卷积层和池化层对图片进行特征提取,将所提取的特征组成Feature Map(特征地图);
3)用RPN网络(Region Proposals NetWork)生成建议窗口(Region Proposals),每张图片生成300个建议窗口;
4)把各个建议窗口映射到Faster R-CNN卷积神经网络的最后一层卷积FeatureMap上;
5)通过RoI pooling(Region of interest pooling,感兴趣区域池)层使每个RoI(region of interest,感兴趣区域)生成固定尺寸的Feature Map;
6)利用Softmax Loss(探测分类概率损失函数)和Smooth L1Loss(探测边框回归损失函数)对分类概率和边框回归(Bounding box regression)进行联合训练。
在另一种实现方式中,还可以利用物体检测技术确定目标区域内的各个物品,首先检测出物品在目标区域内所在的区域,作为候选区域,然后对候选区域进行特征提取,可以提取的特征有SIFT(Scale-invariant feature transform,尺度不变特征转换)特征、HOG(Histogram of Oriented Gradient,方向梯度直方图)特征,等等,最后使用训练好的分类器进行分类,可以使用的分类器有SVM(Support Vector Machine,支持向量机)分类器、Adaboost分类器等。
步骤a3、针对每一物品,确定该物品在目标货架中所在的层数和列数。
具体的,可以根据每一物品在目标区域内的坐标,确定物品在目标货架中所在的层数和列数。
在一种实现方式中,步骤a3针对每一物品,确定该物品在目标货架中所在的层数和列数,可以包括:
针对每一物品,利用k-means聚类算法对该物品在目标区域内的坐标进行聚类,得到该物品所在层的位置中心,并基于位置中心计算该物品所在的层数;
根据该物品所在层中的各个物品的坐标,确定该物品所在的列数。
可以预先设定在目标区域中由下到上,层数增大,由左到右,列数增大,当然也可以按照其他顺序进行设定层数和列数的排序方式。在确定出各个物品在目标货架中所在的层数和列数后,还可以采用层数和列数逐渐增大的方式对各个物品进行排序,这也就是对物品进行陈列结构化。
其中,利用k-means聚类算法对该物品在目标区域内的坐标进行聚类,得到该物品所在层的位置中心,并基于位置中心计算该物品所在的层数属于现有技术的方法,在此不做赘述。
在确定各个物品所在层数之后,可以根据物品所在层中的各个物品的坐标,确定物品所在的列数。例如,物品A所在的层数为第5层,并且处于第5层的物品有4个,假设这4个物品的坐标分别为(5,1)、(5,2)、(5,3)、(5,4),且物品A的坐标为(5,4),则可以确定物品A所在的列数为4;又如,假设这4个物品的坐标分别为(5,1)、(5,2)、(5,3)、(5,5),且物品A的坐标为(5,5),则可以确定物品A所在的列数为5,同时也表明第5层第4列没有物品。
S103,针对每一第一位置,判断该第一位置上的物品是否与所对应目标位置上的物品相同;如果针对每一第一位置的判断结果均为是,判定目标货架中所陈列物品符合标准,否则,判定目标货架中所陈列物品不符合标准。
其中,该第一位置所对应的目标位置为:从模板图像中所确定的多个第二位置中、与该第一位置等同的第二位置;模板图像为:按照物品陈列标准在目标货架中陈列物品后所采集的包含目标货架的图像;第二位置为:模板图像中所陈列的物品所在的位置。
可以理解的是,为实现对目标货架的物品陈列情况进行鉴别,执行主体可以预先获得目标货架对应的模板图像。在获得模板图像后,可以按照上述步骤S102所述的方式对模板图像进行图像处理,确定出模板图像中目标货架中所陈列的各个物品以及各个物品在目标货架中的第二位置。进一步的,在确定出模板图像中各个物品以及对应的位置后,可以将各个物品以及对应的位置保存在数据库中,这样,当需要对目标货架的物品陈列情况进行鉴别时,可以直接读取数据库中的信息,实现快速对物品陈列情况进行鉴别。
在一种实现方式中,在针对每一第一位置,判断该第一位置上的物品是否与所对应目标位置上的物品相同的步骤之前,还可以包括:
判断从模板图像中所确定的多个第二位置是否均存在相对应的第一位置;
如果是,再执行步骤S103针对每一第一位置,判断该第一位置上的物品是否与所对应目标位置上的物品相同;
否则,直接判定目标货架中所陈列物品不符合标准。
可以理解的,如果某一第二位置不存在存在相对应的第一位置,也就是说待检测图像中与第二位置等同的位置上没有物品,即待检测图像中存在漏摆放的物品,进而可以直接判定目标货架中所陈列物品不符合标准。可见,本发明实施例可以检测出货架上的物品陈列是否存在缺漏的情况。
在一种实现方式中,上述判断该第一位置上的物品是否与所对应目标位置上的物品相同的步骤,可以包括:
计算第一物品与第二物品的相似度;其中,第一物品为:该第一位置上的物品,第二物品为:该第一位置所对应的目标位置上的物品;
判断所计算得到的相似度是否满足预设的相似条件;
如果是,判定该第一位置上的物品与所对应目标位置上的物品相同;
如果否,判定该第一位置上的物品与所对应目标位置上的物品不相同。
其中,预设的相似条件可以根据计算第一物品与第二物品的相似度的方式进行设定,例如,预设的相似条件可以为相似度小于预设阈值,也可以为相似度大于预设阈值,等等,本发明实施例对此不做限定。
其中,计算第一物品与第二物品的相似度的步骤,可以有如下三种实现方式:
方式1:利用随机抽样一致算法,确定第一物品与第二物品的匹配点数量,将对匹配点数量进行归一化得到的归一化值,作为第一物品与第二物品的相似度。
可以理解的,利用随机抽样一致(RANdom SAmple Consensus,RANSAC)算法,确定第一物品与第二物品的匹配点数量,并对匹配点数量进行归一化所得到的归一化值,也就是第一物品与第二物品的SIFT(Scale-invariant feature transform,尺度不变特征变换)特征的相似度。物体的SIFT特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关,SIFT特征的信息量大,适合在海量数据库中快速准确匹配,对于物品匹配来说,SIFT具有旋转不变性,是比较理想的特征。
下面对利用RANSAC算法确定第一物品与第二物品的匹配点数量的方法进行简单的原理性介绍。
RANSAC算法用于寻找一个最佳单应性矩阵H,矩阵大小为3×3。RANSAC算法的目的是找到最优的参数矩阵使得满足该矩阵的数据点个数最多,通常令h33=1来归一化矩阵。由于单应性矩阵有8个未知参数,至少需要8个线性方程求解,对应到点位置信息上,一组点对可以列出两个方程,则至少包含4组匹配点对:其转换矩阵公式如下表示:
其中,s表示尺度参数,(x,y)表示目标图像角点位置,(x',y')为场景图像角点位置。
利用RANSAC算法进行SIFT特征匹配筛选时的步骤如下:
1)随机从数据集中抽出4个样本数据,根据公式1计算出变换矩阵H,记为模型M;
2)根据公式2计算数据集中所有数据与模型M的投影误差,若误差小于阈值,将对应的数据加入内点集I;
3)如果当前内点集I中的元素个数大于最优内点集I_best中的元素个数,则更新I_best=I,同时根据公式3更新迭代次数k;
4)如果迭代数大于k,则退出,否则迭代数加1,并重复上述步骤。最终获得的内点集I中的元素个数即为SIFT特征匹配的匹配点数量。
方式2:将包含第一物品的图片和包含第二物品的图片输入卷积神经网络,得到第一物品与第二物品的相似度。
具体的,可以采用Siamese卷积神经网络来提取两个物品之间的相似性特征。Siamese卷积神经网络用于相似性度量,Siamese卷积神经网络可以从样本数据中学习到一个相似性度量,用这个学习出来的度量去比较和匹配新的未知类别的样本。因此,把将包含第一物品的图片和包含第二物品的图片作为Siamese卷积神经网络的输入,通过Siamese卷积神经网络可以输出两个物品的相似度数值,而这个数值可以称为两个物品的卷积神经网络特征的相似度。
方式3:利用随机抽样一致算法,确定第一物品与所述第二物品的匹配点数量,将对匹配点数量进行归一化得到的归一化值,作为第一物品与第二物品的第一中间相似度;
将包含第一物品的图片和包含第二物品的图片输入卷积神经网络,得到第一物品与所述第二物品的第二中间相似度;
根据第一中间相似度和第二中间相似度,计算第一物品与第二物品的相似度。
其中,可以将第一中间相似度与第二中间相似度的平均值作为第一物品与第二物品的相似度,也可以预先对第一中间相似度与第二中间相似度分别赋予相应的权重值,在计算得到第一中间相似度和第二中间相似度后,按照相应的权重值计算得到计算第一物品与第二物品的相似度,都是合理的。
对于以上三种计算第一物品与第二物品的相似度的方式,预设的相似条件均为:相似度小于预设阈值。
可以理解的,方式3计算两个物品的相似度时,综合考虑了方式1所计算的两个物品的SIFT特征的相似度,以及方式2所计算得到的两个物品的卷积神经网络特征的相似度,这种多特征融合的方式,可以提高物品匹配的准确率。
可见,应用本发明实施例的方案,不需要人工观察物品陈列是否与标准一致,而是通过对待检测图像进行图像处理,确定货架上的各个物品以及对应的位置,再将每一位置上的物品与模板图像中对应位置上的物品进行比对,从而快速自动鉴别物品的陈列是否符合标准。
下面通过一个具体实施例来对本发明实施例进行简单介绍。
本具体实施例中可以包含用户端和服务器端,其中,用户端可以具有图像采集功能,首先采集目标货架对应的模板图像,并将模板图像与用户端的ID进行绑定,将模板图像与用户端的ID一起上传到服务器端,服务器端对目标货架进行标准物品陈列注册;
然后,用户端采集目标货架对应的待检测图像,并将待检测图像与用户端的ID进行绑定,将待检测图像与用户端的ID一起上传到服务器端,服务器端对待检测图像进行检测,确定待检测图像中目标货架中所陈列的各个物品以及各个物品在目标货架中的位置,进而与绑定了相同ID的模板图像中目标货架中所陈列的各个物品以及各个物品在目标货架中的位置进行比对,从而鉴别目标货架中所陈列物品是否符合标准;
最后,服务器端再将鉴别结果发送给用户端,用户端可以对鉴别结果进行展示以使用户了解鉴别结果,进一步的,如果鉴别出不符合标准的陈列物品或者存在缺漏物品的位置时,还可以将物品或位置标注出来,使用户能够快速找到该物品或位置并进行纠正。
与上述的对物品陈列进行鉴别的方法相对应,本发明实施例提供了一种对物品陈列进行鉴别的装置。与图1所示的方法实施例相对应,图3为本发明实施例提供的一种对物品陈列进行鉴别的装置的结构示意图,该装置可以包括:
获得模块301,用于获得包含目标货架的待检测图像;其中,所述目标货架中陈列有物品;
确定模块302,用于对所述待检测图像进行图像处理,确定所述目标货架中所陈列的各个物品以及各个物品在所述目标货架中的第一位置;
第一判断模块303,用于针对每一第一位置,判断该第一位置上的物品是否与所对应目标位置上的物品相同;如果针对每一第一位置的判断结果均为是,判定所述目标货架中所陈列物品符合标准,否则,判定所述目标货架中所陈列物品不符合标准;
其中,该第一位置所对应的目标位置为:从模板图像中所确定的多个第二位置中、与该第一位置等同的第二位置;所述模板图像为:按照物品陈列标准在所述目标货架中陈列物品后所采集的包含所述目标货架的图像;所述第二位置为:所述模板图像中所陈列的物品所在的位置。
可见,应用本发明实施例的方案,不需要人工观察物品陈列是否与标准一致,而是通过对待检测图像进行图像处理,确定货架上的各个物品以及对应的位置,再将每一位置上的物品与模板图像中对应位置上的物品进行比对,从而快速自动鉴别物品的陈列是否符合标准。
可选的,所述装置还可以包括:
第二判断模块,用于在所述第一判断模块303针对每一第一位置,判断该第一位置上的物品是否与所对应目标位置上的物品相同之前,判断从所述模板图像中所确定的多个第二位置是否均存在相对应的第一位置;如果是,触发所述第一判断模块303;否则,判定所述目标货架中所陈列物品不符合标准。
可选的,所述确定模块302,可以包括:
定位子模块,用于利用边缘检测技术,定位所述目标货架在所述待检测图像中的目标区域;
第一确定子模块,用于利用物体检测技术,确定所述目标区域内的各个物品;
第二确定子模块,用于针对每一物品,确定该物品在所述目标货架中所在的层数和列数。
可选的,所述第一确定子模块,具体可以用于:
基于深度学习的卷积神经网络,检测所述目标区域内的各个物品。
可选的,所述第二确定子模块,可以包括:
计算单元,用于针对每一物品,利用k-means聚类算法对该物品在所述目标区域内的坐标进行聚类,得到该物品所在层的位置中心,并基于所述位置中心计算该物品所在的层数;
确定单元,用于根据该物品所在层中的各个物品的坐标,确定该物品所在的列数。
可选的,所述第一判断模块303,可以包括:
计算子模块,用于计算第一物品与第二物品的相似度;其中,所述第一物品为:该第一位置上的物品,所述第二物品为:该第一位置所对应的目标位置上的物品;
判断子模块,用于判断所计算得到的相似度是否满足预设的相似条件;如果是,判定该第一位置上的物品与所对应目标位置上的物品相同;如果否,判定该第一位置上的物品与所对应目标位置上的物品不相同。
可选的,所述计算子模块,具体可以用于:
利用随机抽样一致算法,确定第一物品与第二物品的匹配点数量,将对所述匹配点数量进行归一化得到的归一化值,作为所述第一物品与所述第二物品的相似度;
或,
将包含所述第一物品的图片和包含所述第二物品的图片输入卷积神经网络,得到所述第一物品与所述第二物品的相似度;
或,
利用随机抽样一致算法,确定所述第一物品与所述第二物品的匹配点数量,将对所述匹配点数量进行归一化得到的归一化值,作为所述第一物品与所述第二物品的第一中间相似度;
将包含所述第一物品的图片和包含所述第二物品的图片输入卷积神经网络,得到所述第一物品与所述第二物品的第二中间相似度;
根据所述第一中间相似度和所述第二中间相似度,计算所述第一物品与所述第二物品的相似度。
本发明实施例还提供了一种电子设备,如图4所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信,
存储器403,用于存放计算机程序;
处理器401,用于执行存储器403上所存放的程序时,实现如下步骤:
获得包含目标货架的待检测图像;其中,所述目标货架中陈列有物品;
对所述待检测图像进行图像处理,确定所述目标货架中所陈列的各个物品以及各个物品在所述目标货架中的第一位置;
针对每一第一位置,判断该第一位置上的物品是否与所对应目标位置上的物品相同;其中,该第一位置所对应的目标位置为:从模板图像中所确定的多个第二位置中、与该第一位置等同的第二位置;所述模板图像为:按照物品陈列标准在所述目标货架中陈列物品后所采集的包含所述目标货架的图像;所述第二位置为:所述模板图像中所陈列的物品所在的位置;
如果针对每一第一位置的判断结果均为是,判定所述目标货架中所陈列物品符合标准,否则,判定所述目标货架中所陈列物品不符合标准。
关于该方法各个步骤的具体实现以及相关解释内容可以参见上述图1所示的方法实施例,在此不做赘述。
另外,处理器401执行存储器403上所存放的程序而实现的对物品陈列进行鉴别的方法的其他实现方式,与前述方法实施例部分所提及的实现方式相同,这里也不再赘述。
可见,应用本发明实施例的方案,不需要人工观察物品陈列是否与标准一致,而是通过对待检测图像进行图像处理,确定货架上的各个物品以及对应的位置,再将每一位置上的物品与模板图像中对应位置上的物品进行比对,从而快速自动鉴别物品的陈列是否符合标准。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述图1所示实施例中所述的对物品陈列进行鉴别的方法。
可见,应用本发明实施例的方案,不需要人工观察物品陈列是否与标准一致,而是通过对待检测图像进行图像处理,确定货架上的各个物品以及对应的位置,再将每一位置上的物品与模板图像中对应位置上的物品进行比对,从而快速自动鉴别物品的陈列是否符合标准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备以及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。