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

货架识别方法、装置、存储介质及机器人与流程

2021-11-29 13:30:00 来源:中国专利 TAG:


1.本发明属于的货架识别的技术领域,尤其涉及一种货架识别方法、装置、存储介质及机器人。


背景技术:

2.近几年,智慧零售是人工智能重要的应用领域,通过计算机视觉算法进行货架检测是实现智慧零售的重要组成部分,通过算法智能检测货架可以给商超客户有效提供当前货架陈列情况,即能清晰分辨货架商品陈列摆放信息,可以识别电子价签内容。
3.目前机器人巡检商超货架可以灵活有效的对商超货架进行数据采集,并且可以有效保护顾客隐私,在兼顾算法识别有效完成人物的同时,也使得商超变得更加条理智能。
4.但是实际商超商品的复杂摆放,各种各样复杂变换的场景和光线,若想得到完整的商品陈列信息,必须首先对货架进行识别。传统是通过对货架取景照片进行图像识别,以判别出货架,当将并排的多个货架或一个大货架划分为多个并排的小货架时,传统的方法无法将并排的货架进行区分识别。


技术实现要素:

5.有鉴于此,本发明实施例提供了一种货架识别方法,旨在解决传统的技术方案中无法对并排的多个货架进行区分识别的问题。
6.本发明实施例的第一方面提供了一种货架识别方法,应用于并排的n个货架,n为大于等于2的整数,包括:
7.分别在所述n个货架的所有层板的左边缘设置锚点,在第n个货架的所有层板的右边缘设置锚点;
8.获取所述n个货架的货架图像;
9.识别所述货架图像的全部所述锚点,通过全部所述锚点划分出所述n个货架。
10.其中一实施例中,所述通过全部所述锚点划分出所述n个货架包括:
11.基于所述货架图像构建坐标系;
12.获取全部所述锚点的坐标信息;
13.根据所述全部所述锚点的坐标信息划分出所述n个货架。
14.其中一实施例中,所述根据所述全部所述锚点的坐标信息划分出所述n个货架包括:
15.将全部所述锚点的纵坐标的差值小于第一预设值的归为同一列锚点,以获取n 1列锚点;
16.将全部所述锚点的横坐标的差值小于第二预设值的归为同一行锚点,以获取k行锚点;
17.以第m列锚点和第m 1列锚点得到第m个货架的左右边缘信息,通过所述第m个货架的k行锚点得到所述第m个货架的分层信息;
18.根据所述第m个货架的左右边缘信息和所述第m个货架的分层信息划分出第m个货架;
19.其中,m包括小于等于n的正整数,k为大于1的整数,l包括小于等于k的正整数。
20.其中一实施例中,所述以第m列锚点和第m 1列锚点得到第m个货架的左右边缘信息,通过所述第m个货架的k行锚点得到所述第m个货架的分层信息包括:
21.以第m列锚点的所有锚点纵坐标的平均值为第m列锚点的纵坐标,以获取n 1列锚点的纵坐标;
22.以第m列锚点的纵坐标和第m 1列锚点的纵坐标分别为第m个货架的左边缘坐标和第m个货架的右边缘坐标;
23.以第l行锚点的所有锚点横坐标的平均值为第l行锚点的横坐标,以获取k行锚点的横坐标;
24.以第m个货架的第l行锚点的横坐标为第m个货架的第l层板坐标。
25.其中一实施例中,获取所述锚点的坐标信息包括:
26.获取所述锚点的左上角的横坐标和所述锚点的左上角的纵坐标;
27.获取所述锚点的宽度和所述锚点的高度;
28.根据所述锚点的左上角的横坐标、所述锚点的左上角的纵坐标、所述锚点的宽度以及所述锚点的高度根据预设规则计算得到所述锚点的横坐标和所述锚点的纵坐标。
29.其中一实施例中,所述识别所述货架图像的全部所述锚点,通过全部所述锚点划分出所述n个货架基于yolov5算法实现。
30.其中一实施例中,所述yolov5算法包括增加高斯白噪声、水平反转和图像数据拼接中的至少一种数据增加方式。
31.本发明实施例的第二方面提供了一种货架识别装置,应用于并排的n个货架,n为大于等于2的整数,包括:
32.设置模块,用于分别在所述n个货架的所有层板的左边缘设置锚点,在第n个货架的所有层板的右边缘设置锚点;
33.图像获取模块,用于获取所述n个货架的货架图像;以及
34.识别模块,用于识别所述货架图像的全部所述锚点,通过全部所述锚点划分出所述n个货架。
35.本发明实施例的第三方面提供了一种机器人,包括存储器、处理器、以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的货架识别方法。
36.本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储着计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的货架识别方法。
37.上述的货架识别方法通过分别在n个货架的所有层板的左边缘设置锚点,在第n个货架的所有层板的右边缘设置锚点,获取n个货架的货架图像,识别货架图像的全部锚点,通过全部锚点划分出n个货架,从而使锚点分别对应n个货架的边缘信息和层板信息,因此能够通过识别n个货架的全部锚点,对并排的多个货架进行识别和划分。
附图说明
38.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
39.图1为本发明实施例提供的货架识别方法的流程示意图;
40.图2为本发明实施例提供的货架识别装置的结构示意图;
41.图3为本发明实施例提供的机器人的结构示意图。
具体实施方式
42.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
43.请参阅图1,本发明实施例提供的一种货架识别方法的流程示意图,为了便于说明,仅示出了与本实施例相关的部分,详述如下:
44.一种货架识别方法,应用于并排的n个货架,n为大于等于2的整数,包括步骤s1至s3。
45.n个货架可以是两两相邻并的排物理上独立的货架;n个货架也可以是人为将一个整体货架划分出来的n个货架。
46.s1:分别在n个货架的所有层板的左边缘设置锚点,在第n个货架的所有层板的右边缘设置锚点。
47.货架的层板数量等于货架的层数加1,例如货架的层数为1时,则货架的层板数量为2;货架的层数为2时,则货架的层板数量为3,以此类推。n个货架所包括的所有层板的左边缘均设置有锚点,且在第n个货架的所有层板的右边缘设置锚点,因此全部锚点分别对应n个货架的边缘信息和层板信息,因此能够通过识别n个货架的全部锚点,从而根据该些全部锚点来构成出n个货架。通过设置锚点的方式,能够使后续图像识别处理能够对锚点进行特异性识别,提高了图像识别锚点的精度和降低了难度。因为锚点相对于层板来说其具有特异性,因此即使货架所在的场景复杂或光线异样时,锚点和货架本身的区别度也是比较高的,因此通过图像识别也能够容易将锚点识别出来;另外当层板的形状为不规则时也不会影响到对锚点的识别。
48.其中锚点可以全部为独立设置的具有被识别作用的标签,锚点也可以全部为商品现有的电子价签,锚点也可以部分为独立设置的具有被识别作用的标签而其余部分为商品现有的电子价签。
49.此处的n个货架的所有层板是指的有效层板,当货架的层板没有被利用,即无需统计的情况下,无需在该些层本设置锚点。
50.s2:获取n个货架的货架图像。
51.通过具有图像获取功能的装置对n个货架进行取景以获取货架图像,其中可以对n个货架进行一次性取景以获取n个货架的货架图像,也可以为对n个货架进行多次取景分别获取多个图像,然后对多个图像进行合成以得到n个货架的货架图像。
52.s3:识别货架图像的全部锚点,通过全部锚点划分出n个货架。
53.将货架图像上的全部锚点识别出来,因为锚点分别设置在了n个货架的所有层板的左边缘和第n个货架的右边缘,因此根据第一个货架的左边缘锚点和第二个货架的左边缘锚点能够确定出来第一个货架的左右边缘信息,且根据第一个货架的左边缘锚点可以确定出第一个货架的所有层板信息,依次类推可以确定出第二个至第n

1个货架的左右边缘信息和层板信息以及第n个货架的层板信息;而第n个货架的左右边缘信息通过第n个货架的左边缘锚点和第n个货架的右边缘锚点确认出来。然后可以根据第一个至第n个货架的左右边缘信息和层板信息构建划分出n个货架。
54.其中一实施例中,通过全部锚点划分出n个货架包括步骤s31和s32。
55.s31:基于货架图像构建坐标系。
56.以货架图像的左上方的第一个锚点为坐标原点(0,0)、以货架图像的左上方的第一个锚点朝向为y轴以及以货架图像的上方的第一个锚点朝右为x轴构成坐标系。
57.s32:获取全部锚点的坐标信息。
58.获取所有锚点在上述构建的坐标系中的坐标信息,锚点的坐标信息包括锚点的横坐标(y轴坐标)和纵坐标(x轴坐标)。
59.s33:根据全部锚点的坐标信息划分出n个货架。
60.根据全部锚点的坐标信息进行一定的处理,就能够获取出n个货架对应的边缘信心以及层板信息,从而划分出n个货架。
61.其中一实施例中,根据全部锚点的坐标信息划分出n个货架包括步骤s331至s334。
62.s331:将全部锚点的纵坐标的差值小于第一预设值的归为同一列锚点,以获取n 1列锚点。
63.同一列的锚点的纵坐标的理论值是相同的,但是由于锚点设置不准确或者识别存在错差的等原因,同一列的锚点的纵坐标会存在偏差,同时该偏差会小于不同列的锚点的纵坐标差值,该偏差小于第一预设值,且第一预设值小于不同列的锚点的纵坐标差值。因此将多个纵坐标的差值小于第一预设值的归为同一列锚点,以得到n 1列锚点。
64.其中第一预设值为本领域技术人员根据实际需求进行相应的设置。
65.s332:将全部锚点的横坐标的差值小于第二预设值的归为同一行锚点,以获取k行锚点。
66.同一行的锚点的横坐标的理论值是相同的,但是由于锚点设置不准确或者识别存在错差的等原因,同一行的锚点的横坐标会存在偏差,同时该偏差会小于不同行的锚点的横坐标差值,该偏差小于第二预设值,且第二预设值小于不同行的锚点的横坐标差值。因此将多个横坐标的差值小于第二预设值的归为同一行锚点,以得到k行锚点。
67.其中一具体实施例中,上述过程是基于一个货架得到的关于该个货架的k行锚点,因为不同货架可能具有不同层数,或者有些货架的某些层是不使用的,因此对于那些货架不使用的层并没有设置锚点,也无需检测。
68.其中第二预设值为本领域技术人员根据实际需求进行相应的设置。
69.s333:以第m列锚点和第m 1列锚点得到第m个货架的左右边缘信息,通过第m个货架的k行锚点得到第m个货架的分层信息。
70.第m列锚点位于第m货架的左边缘,第m 1列锚点位于第m货架的右边缘,因此通过
第m列锚点和第m 1列锚点可以得到第m个货架的左右边缘信息。
71.同时,通过第m个货架的k行锚点可以得到第m个货架的分层信息。其中,第l行锚点为第m个货架的第l层板.
72.s334:根据第m个货架的左右边缘信息和第m个货架的分层信息划分出第m个货架。
73.通过第m个货架的左右边缘信息以及第m个货架的分层信息,即可以划分出第m个货架,通过对每个货架均划分出来,即可以得到划分出来的n个货架。
74.其中,m包括小于等于n的正整数,k为大于1的整数,l包括小于等于k的正整数。
75.其中一实施例中,以第m列锚点和第m 1列锚点得到第m个货架的左右边缘信息,第m个货架的第k行锚点得到第m个货架的分层信息包括步骤s3341至s3344。
76.s3341:以第m列锚点的所有锚点纵坐标的平均值为第m列锚点的纵坐标,以获取n 1列锚点的纵坐标。
77.s3342:以第m列锚点的纵坐标和第m 1列锚点的纵坐标分别为第m个货架的左边缘坐标和第m个货架的右边缘坐标。
78.s3343:以第l行锚点的所有锚点横坐标的平均值为第k行锚点的横坐标,以获取k行锚点的横坐标。
79.s3344:以第m个货架的第l行锚点的横坐标为第m个货架的第l层板坐标。
80.以第m列锚点的纵坐标和第m 1列锚点的纵坐标分别为第m个货架的左边缘坐标和第m个货架的右边缘坐标,从而得到第m个货架的左侧边和右侧边;以第m个货架的第l行锚点的横坐标为第m个货架的第l层板坐标,从而得到第m个货架的k行层板;通过第m个货架的左侧边、右侧边、k行层板的数据构建出完整的第m个货架。
81.其中一实施例中,获取锚点的坐标信息包括步骤s321至s323。
82.s321:获取锚点的左上角的横坐标和锚点的左上角的纵坐标。
83.s322:获取锚点的宽度和锚点的高度。
84.s323:根据锚点的左上角的横坐标、锚点的左上角的纵坐标、锚点的宽度以及锚点的高度根据预设规则计算得到锚点的横坐标和锚点的纵坐标。
85.通过识别锚点的左上角的横坐标、锚点的左上角的纵坐标、锚点的宽度以及锚点的高度来与预设模型进行对比,从而识别出锚点。并且根据锚点的左上角的横坐标、锚点的左上角的纵坐标、锚点的宽度以及锚点的高度根据预设的规则获取锚点的横坐标和锚点的纵坐标。其中可以以锚点的左上角的横坐标和锚点的左上角的纵坐标分别为锚点的横坐标和纵坐标,也可以通过锚点的左上角的横坐标、锚点的左上角的纵坐标、锚点的宽度以及锚点的高度计算出锚点的其它角的坐标,然后以其它角的横坐标和纵坐标为锚点的的横坐标和纵坐标。
86.其中一实施例中,识别货架图像的全部锚点,通过全部锚点划分出n个货架基于yolov5算法实现。
87.通过yolov5算法进行数据分类和回归,在货架图像中检测出所有锚点并获取所有锚点的坐标信息。具体地,通过yolov5算法实现上述过程包括,在训练过程中,设置真实的标签数据(如真实的锚点位置坐标和锚点的类别),通过神经网络模型提取锚点的特征,然后经过一个softmax分类函数得到检测锚点框目标的类别,然后与真实标签类别进行做差求focal loss损失,从而优化检测的类别,同时,神经网络会预测一个真实锚点的位置坐
标,通过标签标注的真实位置坐标与预测出来的框求一个iou(交并比),计算giouloss,从而优化预测出来的框的位置,通过不断训练优化锚点检测的类别和位置,从而得出更加精确的锚点检测结果。
88.其中,yolov5算法使用的深度学习框架可以为pytorch的训练。
89.其中一实施例中,yolov5算法包括增加高斯白噪声、水平反转和图像数据拼接中的至少一种数据增加方式。
90.因为在实际对货架进行取景得到货架图像时,货架图像可能会因为反光或者运动取景而存在难以锚点辨析度下降的问题,通过增加高斯白噪声、水平反转和图像数据拼接中的至少一种数据增加,能够对增加对货架图像的锚点检测的鲁棒性,进而能够适应复杂的货架取景的各种场景。
91.本技术实施例还提供了一种货架识别装置,应用于并排的n个货架,n为大于等于2的整数,货架识别装置包括设置模块21、图像获取模块22以及识别模块23。
92.设置模块21,用于分别在n个货架的所有层板的左边缘设置锚点,在第n个货架的所有层板的右边缘设置锚点。
93.图像获取模块22,用于获取n个货架的货架图像。图像获取模块可以为kinect相机。
94.识别模块23,用于识别货架图像的全部锚点,通过全部锚点划分出n个货架。
95.需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
96.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能元件、电路的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能元件、电路完成,即将所述电路的内部结构划分成不同的功能元件或电路,以完成以上描述的全部或者部分功能。实施例中的各功能元件、电路可以集成在一个处理元件中,也可以是各个元件单独物理存在,也可以两个或两个以上元件集成在一个元件中,上述集成的元件既可以采用硬件的形式实现,也可以采用软件功能元件的形式实现。另外,各功能元件、电路的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中元件、电路的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
97.请参阅图3,本发明实施例的还提供了一种机器人,包括存储器、处理器、以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上列任一实施例的货架识别方法。
98.本领域技术人员可以理解,图3仅仅是机器人3的举例,并不构成对机器人3的限定,所述机器人的具体硬件、软件以及固件的具体设置方式可以有多种,所述机器人3可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入设备、输出设备、网络接入设备等。其中,上述输入设备可以包括触控板、指纹采集传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风、摄像头等,输出设备可以包括显示器、扬声器等。
99.所称处理器30可以是中央处理元件(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路
(application specific integrated circuit,asic)、现成可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件电路等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
100.所述存储器31可以是所述机器人3的内部存储元件,例如机器人3的硬盘或内存。所述存储器31也可以是所述机器人3的外部存储设备,例如所述机器人3上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器61还可以既包括所述机器人3的内部存储元件也包括外部存储设备。所述存储器31用于存储所述计算机程序以及所述机器人3所需的其他程序和数据。所述存储器31还可以用于暂时地存储已经输出或者将要输出的数据。
101.本发明实施例的还提供了一种计算机可读存储介质,所述计算机可读存储介质存储着计算机程序,所述计算机程序被处理器执行时实现上述各个货架识别方法的实施例中的步骤。
102.上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或电路、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
103.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
104.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的元件及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
105.在本发明所提供的实施例中,应该理解到,所揭露的电路/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的电路/终端设备实施例仅仅是示意性的,例如,所述电路或元件的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个元件或电路可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,电路或元件的间接耦合或通讯连接,可以是电性,机械或其它的形式。
106.所述作为分离部件说明的元件可以是或者也可以不是物理上分开的,作为元件显示的部件可以是或者也可以不是物理元件,即可以位于一个地方,或者也可以分布到多个
网络元件上。可以根据实际的需要选择其中的部分或者全部元件来实现本实施例方案的目的。
107.以上上述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

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

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

相关文献