发明内容
鉴于上述问题,本发明实施例提供了售货机器人的商品摆放判断方法,可以在售货机器人中商品摆放变动完成后,判断商品是否还符合摆放规则。
根据本发明实施例的一个方面,提供了一种售货机器人的商品摆放判断方法,包括:
在第一时间,通过视觉采集器获取第一鱼眼图像,所述第一鱼眼图像中包括第一对象的图像;其中,所述第一对象包括一个或多个商品;
确定所述第一对象的位置信息和类别信息;
根据所述第一对象的类别信息,确定在所述第一时间时所述第一对象中商品的总数量和类别数量;
在第二时间,通过视觉采集器获取第二鱼眼图像,所述第二鱼眼图像中包括第二对象的图像;其中,所述第二对象包括一个或多个商品;
确定所述第二对象的位置信息和类别信息;
根据所述第二对象的类别信息,确定在所述第二时间时所述第二对象中商品的总数量和类别数量;
根据商品摆放规则、可摆放商品的最大类别数量、所述第一对象中商品的总数量和类别数量和所述第二对象中商品的总数量和类别数量,判断所述售货机器人的商品摆放是否符合摆放规则。
在一种可选的方式中,所述确定所述第一对象的位置信息和类别信息包括:
根据所述第一鱼眼图像确定所述第一对象中每个商品在竖直平面内的检测框;
确定所述检测框的左上角坐标;
识别所述第一鱼眼图像中每个商品的类别,得到所述第一对象的类别信息;
根据所述每个商品的类别确定所述检测框的宽度和高度;
根据所述检测框的左上角坐标、所述检测框的宽度和高度,得到所述第一对象的位置信息。
在一种可选的方式中,所述确定所述第二对象的位置信息和类别信息包括:
根据所述第二鱼眼图像确定所述第二对象中每个商品在竖直平面内的检测框;
确定所述检测框的左上角坐标;
识别所述第二鱼眼图像中每个商品的类别,得到所述第二对象的类别信息;
根据所述每个商品的类别确定所述检测框的宽度和高度;
根据所述检测框的左上角坐标、所述检测框的宽度和高度,得到所述第二对象的位置信息。
在一种可选的方式中,所述根据商品摆放规则、可摆放商品的最大类别数量、所述第一对象中商品的总数量和类别数量和所述第二对象中商品的总数量和类别数量,判断所述售货机器人的商品摆放是否符合摆放规则,包括:
根据所述第一对象中商品的总数量、第一对象中商品的类别数量和可摆放商品的最大类别数量,判断在第一时间所述售货机器人中商品摆放状态,以及根据所述第二对象中商品的总数量、第二对象中商品的类别数量和可摆放商品的最大类别数量,判断在第二时间所述售货机器人中商品摆放状态;其中,所述商品摆放状态包括全部商品为空、部分商品为空和所有商品均不空;
获取导致所述售货机器人商品变动的方式;其中,所述商品变动的方式包括补货和消费者拿出商品又放回商品;
根据所述在第一时间所述售货机器人中商品摆放状态、所述在第二时间所述售货机器人中商品摆放状态、所述导致所述售货机器人商品变动的方式,从第一数据库中确定所需执行的判断方法;其中,所述第一数据库包括所述在第一时间所述售货机器人中商品摆放状态、所述在第二时间所述售货机器人中商品摆放状态、所述导致所述售货机器人商品变动的方式和判断方法的对应关系,所述判断方法包括根据所述商品摆放规则设定的一个或多个判断步骤,或者直接获得判断摆放错误的结果;
根据所述所需执行的判断方法进行判断。
在一种可选的方式中,所述根据所述商品摆放规则设定的一个或多个判断步骤,包括:
根据所述第二对象的位置信息和类别信息,判断位于同一列的商品是否属于同一类别;
根据每一列商品的第二对象的类别信息,判断商品摆放是否为U型摆放;
根据第二对象的类别信息,判断透明商品两侧的商品颜色是否符合摆放规则;
根据第二对象的类别信息从第二数据库获取第二对象中每两类商品之间的外观相似度,根据所述外观相似度判断第二对象的商品中是否存在外观相似度高于阈值的两类商品;其中,所述第二数据库包括不同类别商品之间的外观相似度。
在一种可选的方式中,所述透明商品根据第三数据库中存储的商品类别和透明属性确定。
在一种可选的方式中,所述第一时间为所述售货机器人的柜门打开前的时间,所述第二时间为所述售货机器人的柜门打开又关闭后的时间。
在一种可选的方式中,所述方法还包括:
根据本发明实施例的另一方面,提供了一种售货机器人的商品摆放判断装置,包括:
第一获取模块,用于在第一时间,通过视觉采集器获取第一鱼眼图像,所述第一鱼眼图像中包括第一对象的图像;其中,所述第一对象包括一个或多个商品;
第一确定模块,用于确定所述第一对象的位置信息和类别信息;
第二确定模块,用于根据所述第一对象的类别信息,确定在所述第一时间时所述第一对象中商品的总数量和类别数量;
第二获取模块,用于在第二时间,通过视觉采集器获取第二鱼眼图像,所述第二鱼眼图像中包括第二对象的图像;其中,所述第二对象包括一个或多个商品;
第三确定模块,用于确定所述第二对象的位置信息和类别信息;
第四确定模块,用于根据所述第二对象的类别信息,确定在所述第二时间时所述第二对象中商品的总数量和类别数量;
判断模块,用于根据商品摆放规则、可摆放商品的最大类别数量、所述第一对象中商品的总数量和类别数量和所述第二对象中商品的总数量和类别数量,判断所述售货机器人的商品摆放是否符合摆放规则。
根据本发明实施例的另一方面,提供了一种售货机器人,包括:机器人本体、视觉采集器、处理器、存储器、通信接口和通信总线;
所述机器人本体用于放置商品;
所述视觉采集器用于获取第一鱼眼图像和第二鱼眼图像;
所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上所述的方法的操作。
根据本发明实施例的另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令在售货机器人上运行时,使得售货机器人执行如上所述的方法的操作。
本发明实施例通过视觉采集器获取商品摆放变动前和变动后的鱼眼图像,识别出鱼眼图像中商品的位置信息和类别信息,得到变动前和变动后商品的总数量、类别和类别数量,根据商品摆放规则、可摆放商品的最大类别数量、变动前商品的总数量和类别数量、变动后商品的总数量和类别数量,判断售货机器人的商品摆放是否符合摆放规则。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种售货机器人的商品摆放判断方法。如图1所示,该方法包括以下步骤:
步骤11:在第一时间,通过视觉采集器获取第一鱼眼图像,所述第一鱼眼图像中包括第一对象的图像;其中,所述第一对象包括一个或多个商品;
步骤12:确定所述第一对象的位置信息和类别信息;
步骤13:根据所述第一对象的类别信息,确定在所述第一时间时所述第一对象中商品的总数量和类别数量;
步骤14:在第二时间,通过视觉采集器获取第二鱼眼图像,所述第二鱼眼图像中包括第二对象的图像;其中,所述第二对象包括一个或多个商品;
步骤15:确定所述第二对象的位置信息和类别信息;
步骤16:根据所述第二对象的类别信息,确定在所述第二时间时所述第二对象中商品的总数量和类别数量;
步骤17:根据商品摆放规则、可摆放商品的最大类别数量、所述第一对象中商品的总数量和类别数量和所述第二对象中商品的总数量和类别数量,判断所述售货机器人的商品摆放是否符合摆放规则。
其中,所述第一时间为所述售货机器人的柜门打开前的时间,所述第二时间为所述售货机器人的柜门打开又关闭后的时间。本发明实施例中,售货机器人的柜门打开和关闭包括两种情况:工作人员补货,或者消费者消费时拿出又放回商品。本发明实施例的方法主要针对售货机器人中的一层货柜,因视觉采集器一般也仅能采集一层的商品图像。视觉采集器采用鱼眼镜头。
本发明实施例中,商品的摆放规则包括:
1、对整个货柜中的每一层设定一个基本规则:U型摆放;
2、将透明商品优先摆放在不受影响的位置,将摆放在透明商品两侧的商品进行颜色筛选,例如从透明商品往其两侧依次摆放深色商品和浅色商品;
3、将货柜中商品外观相似度高于阈值H的商品分层摆放,不摆在货柜的同一层中;
4、一列只摆放同种商品,不能在一列中混合其他种商品。
如下图2a到2b所示,增加了两瓶饮品,需要判断增加饮品后的图2b中商品摆放是否符合规则。本发明实施例通过对上述商品的摆放规则进行分析,并结合可能出现商品位置变动的两个场景进行商品摆放规则的判断。通过检测识别货柜打开前和关闭后的货柜每层的商品信息(商品位置,类别,数量)来判断货柜内商品位置和数量变化后是否还符合货柜中的商品摆放规则。
具体的,当对货柜进行补货时,货柜打开关闭前后的情况可能为:货柜该层为“空”时,表明货柜中该层一个商品也没有;货柜该层为“部分空”时,表明货柜该层中有个别类的商品已经被拿空;货柜该层为“都不空”时,表明货柜该层中商品没有一个是被拿空的,但是每种商品数量都已经达到需要补货的标准。如表1所示:
表1补货时货柜状态
货柜打开前 |
空 |
部分空 |
都不空 |
货柜关闭后 |
满 |
满 |
满 |
当消费者拿出商品又放回商品时,货柜打开关闭前后的情况可能为:货柜该层为“部分空”时,表明货柜该层中有个别类的商品已经被拿空;货柜该层为“都不空”时,表明货柜该层中商品没有一个是被拿空的,但是每种商品数量都已经达到需要补货的标准。如表2所示:
表2消费者拿出商品又放回商品时货柜状态
货柜打开前 |
部分空 |
都不空 |
货柜关闭后 |
部分空or都不空 |
部分空or都不空 |
当货柜关闭后,若判断货柜内商品摆放情况不符合摆放规则,则可提示商品摆放异常,提醒上货员、用户重新摆放商品;若符合摆放规则可提示无摆放错误,也可以不予提示。
具体的,如图3所示,步骤12可通过如下方式实现:
步骤121:根据所述第一鱼眼图像确定所述第一对象中每个商品在竖直平面内的检测框;
其中,检测框如图4所示。
步骤122:确定所述检测框的左上角坐标;
例如,商品A的检测框的左上角坐标c1为(x1,y1)。其中x代表鱼眼镜头俯视拍照做得到的图像所在平面内的横向坐标,y代表该平面内的纵向坐标。
当然,也可以确定检测框的左下角坐标、右上角坐标或者右下角坐标,只要可以用于确认商品位置的坐标均可。
步骤123:识别所述第一鱼眼图像中每个商品的类别,得到所述第一对象的类别信息;
步骤123并不一定在步骤122之后执行,也可以在步骤121之前、步骤122之前、和步骤121同时或者和步骤122同时执行。第一对象的类别信息包括商品A、商品B、商品C、商品D、商品E、商品F等。例如,A为A牌矿泉水,B为B牌橙汁,C为C牌可乐,D为D牌维生素功能饮料,E为E牌酸奶,F为F牌牛奶。则本步骤可确定商品的类别class_1,例如商品A的类别class_1=A。
步骤124:根据所述每个商品的类别确定所述检测框的宽度和高度;
可预先测量好每类商品的宽度和高度,存储于数据库中。当商品的类别确定后,就可以直接从数据库获取商品的宽度和高度作为其检测框的宽度和高度。例如,商品A的检测框的宽度为w1,高度为h1。
步骤125:根据所述检测框的左上角坐标、所述检测框的宽度和高度,得到所述第一对象的位置信息。
例如,得到第一对象中商品A的位置loc_1(x1,y1,w1,h1)。
如图5所示,步骤15可通过如下方式实现:
步骤151:根据所述第二鱼眼图像确定所述第二对象中每个商品在竖直平面内的检测框;
其中,检测框如图4所示。
步骤152:确定所述检测框的左上角坐标;
例如,商品A的检测框的左上角坐标c2为(x2,y2)。当然,也可以确定检测框的左下角坐标、右上角坐标或者右下角坐标,只要可以用于确认商品位置的坐标均可。
步骤153:识别所述第二鱼眼图像中每个商品的类别,得到所述第二对象的类别信息;
步骤153并不一定在步骤152之后执行,也可以在步骤151之前、步骤152之前、和步骤151同时或者和步骤152同时执行。本步骤可确定商品的类别class_2,例如商品A的类别class_2=A。
步骤154:根据所述每个商品的类别确定所述检测框的宽度和高度;
例如,商品A的检测框的宽度为w2,高度为h2。
步骤155:根据所述检测框的左上角坐标、所述检测框的宽度和高度,得到所述第二对象的位置信息。
例如,得到第二对象中商品A的位置loc_2(x2,y2,w2,h2)。
步骤13中,根据货柜打开前,根据货柜中该层的每个商品信息(位置loc_1(x1,y1,w1,h1),类别class_1),可以得到该层货柜中所有商品数量num_1,该层货柜中有几种商品num_class_1。
步骤16中,货柜打开又关闭后,根据货柜中该层的商品信息(位置loc_2(x2,y2,w2,h2),类别class_2),可以得到该层货柜中所有商品数量num_2,该层货柜中有几种商品num_class_2。
如图6所示,步骤17可通过如下方式实现:
步骤171:判断商品变动前和变动后的摆放状态。
根据所述第一对象中商品的总数量、第一对象中商品的类别数量和可摆放商品的最大类别数量,判断在第一时间所述售货机器人中商品摆放状态,以及根据所述第二对象中商品的总数量、第二对象中商品的类别数量和可摆放商品的最大类别数量,判断在第二时间所述售货机器人中商品摆放状态;其中,所述商品摆放状态包括全部商品为空、部分商品为空和所有商品均不空;
根据货柜打开前该层货柜中所有商品数量num_1,该层货柜中有几种商品num_class_1,以及该层货柜中最多可以放几种商品max_num_class来判断货柜中的商品状态;根据货柜打开又关闭后该层货柜中所有商品数量num_2,该层货柜中有几种商品num_class_2以及该层货柜中最多可以放几种商品max_num_class来判断货柜中的商品状态,如下所示:
货柜打开前:
if num_1=0:
货柜中商品个数为0,货柜为空
else:
货柜中商品不为空
if num_class_1<max_num_class:
货柜商品为部分空
else:
货柜商品为都不空
货柜打开后:
if num_2=0:
货柜中商品个数为0,货柜为空
else:
货柜中商品不为空
if num_class_2<max_num_class:
货柜商品为部分空
else:
货柜商品为都不空
货柜满的情况属于都不空的一种,无需单独判断。
步骤172:获取导致商品变动的方式。
本步骤可以是在步骤171之前执行。
获取导致所述售货机器人商品变动的方式;其中,所述商品变动的方式包括补货和消费者拿出商品又放回商品。商品变动的方式可以通过柜门开启前的用户信息识别获取,例如消费者购买商品时会扫描购买二维码开门,此时可得知是消费者拿出商品又放回商品的方式,补货需要工作人员刷相应的卡或者补货二维码经过授权后才可以开门,此时可得知是补货的方式。
步骤173:确定判断方法。
根据所述在第一时间所述售货机器人中商品摆放状态、所述在第二时间所述售货机器人中商品摆放状态、所述导致所述售货机器人商品变动的方式,从数据库中确定所需执行的判断方法;其中,所述数据库包括所述在第一时间所述售货机器人中商品摆放状态、所述在第二时间所述售货机器人中商品摆放状态、所述导致所述售货机器人商品变动的方式和判断方法的对应关系,所述判断方法包括根据所述商品摆放规则设定的一个或多个判断步骤,或者直接获得判断摆放错误的结果;
其中,根据上述商品摆放规则,所述根据所述商品摆放规则设定的一个或多个判断步骤,包括:
a、根据所述第二对象的位置信息和类别信息,判断位于同一列的商品是否属于同一类别;
本步骤根据柜门打开又关闭后货柜中商品的位置loc_2(x2,y2,w2,h2)和类别class_2,来判断一列商品是否为同一类别。
b、根据每一列商品的第二对象的类别信息,判断商品摆放是否为U型摆放;
本步骤根据货柜中的每一层商品每一列的类别class_2(商品A、B、C、D、E、F),判断商品摆放是否符合U型摆放:如图4所示,当式1的条件成立时,则说明商品摆放符合U型摆放。
(HA>HB)&&(HB>HC)&&(HF>HE)&&(HE>HD)
其中,H为商品高度,例如HA为商品A的高度,由人工进行测量并存储于数据库,识别出商品类别后可直接从数据库获取HA。
c、根据第二对象的类别信息,判断透明商品两侧的商品颜色是否符合摆放规则;
本步骤根据class_2来判断透明商品两侧的商品颜色是否符合摆放规则。其中,所述透明商品根据数据库中存储的商品类别和透明属性确定。例如图4中所示:当关门后检测到的商品B为透明类商品时,此时判断商品A的颜色是否可以放在商品B的左侧,如果A为浅色商品,则A不能摆放于B的左侧,反之若A为深色商品则可以。
d、根据第二对象的类别信息从数据库获取第二对象中每两类商品之间的外观相似度,根据所述外观相似度判断第二对象的商品中是否存在外观相似度高于阈值的两类商品;其中,所述数据库包括不同类别商品之间的外观相似度。
本步骤根据class_2,检测识别货柜一层中商品外观相似度是否有高于阈值H的商品。
例如,可通过表3和表4确定判断方法:
表3当为货柜进行补货时的判断方法
货柜打开前 |
空 |
部分空 |
都不空 |
货柜关闭后 |
满 |
满 |
满 |
执行的判断 |
a、b、c、d |
a、b、c |
a |
表4当消费者拿出商品又放回商品时的判断方法
步骤174:根据所述所需执行的判断方法进行判断。
例如,当为货柜进行补货时,判断货柜打开前为空,货柜关闭后为满,则此时依次执行a、b、c、d步骤进行判断。
本发明实施例通过视觉采集器获取商品摆放变动前和变动后的鱼眼图像,识别出鱼眼图像中商品的位置信息和类别信息,得到变动前和变动后商品的总数量、类别和类别数量,根据商品摆放规则、可摆放商品的最大类别数量、变动前商品的总数量和类别数量、变动后商品的总数量和类别数量,判断售货机器人的商品摆放是否符合摆放规则。
如图7所示,本发明实施例提供了一种售货机器人的商品摆放判断装置70,包括:
第一获取模块71,用于在第一时间,通过视觉采集器获取第一鱼眼图像,所述第一鱼眼图像中包括第一对象的图像;其中,所述第一对象包括一个或多个商品;
第一确定模块72,用于确定所述第一对象的位置信息和类别信息;
第二确定模块73,用于根据所述第一对象的类别信息,确定在所述第一时间时所述第一对象中商品的总数量和类别数量;
第二获取模块74,用于在第二时间,通过视觉采集器获取第二鱼眼图像,所述第二鱼眼图像中包括第二对象的图像;其中,所述第二对象包括一个或多个商品;
第三确定模块75,用于确定所述第二对象的位置信息和类别信息;
第四确定模块76,用于根据所述第二对象的类别信息,确定在所述第二时间时所述第二对象中商品的总数量和类别数量;
判断模块77,用于根据商品摆放规则、可摆放商品的最大类别数量、所述第一对象中商品的总数量和类别数量和所述第二对象中商品的总数量和类别数量,判断所述售货机器人的商品摆放是否符合摆放规则。
第一确定模块72进一步用于:
根据所述第一鱼眼图像确定所述第一对象中每个商品在竖直平面内的检测框;
确定所述检测框的左上角坐标;
识别所述第一鱼眼图像中每个商品的类别,得到所述第一对象的类别信息;
根据所述每个商品的类别确定所述检测框的宽度和高度;
根据所述检测框的左上角坐标、所述检测框的宽度和高度,得到所述第一对象的位置信息。
判断模块77进一步用于:
根据所述第一对象中商品的总数量、第一对象中商品的类别数量和可摆放商品的最大类别数量,判断在第一时间所述售货机器人中商品摆放状态,以及根据所述第二对象中商品的总数量、第二对象中商品的类别数量和可摆放商品的最大类别数量,判断在第二时间所述售货机器人中商品摆放状态;其中,所述商品摆放状态包括全部商品为空、部分商品为空和所有商品均不空;
获取导致所述售货机器人商品变动的方式;其中,所述商品变动的方式包括补货和消费者拿出商品又放回商品;
根据所述在第一时间所述售货机器人中商品摆放状态、所述在第二时间所述售货机器人中商品摆放状态、所述导致所述售货机器人商品变动的方式,从第一数据库中确定所需执行的判断方法;其中,所述第一数据库包括所述在第一时间所述售货机器人中商品摆放状态、所述在第二时间所述售货机器人中商品摆放状态、所述导致所述售货机器人商品变动的方式和判断方法的对应关系,所述判断方法包括根据所述商品摆放规则设定的一个或多个判断步骤,或者直接获得判断摆放错误的结果;
根据所述所需执行的判断方法进行判断。
其中,所述根据所述商品摆放规则设定的一个或多个判断步骤,包括:
根据所述第二对象的位置信息和类别信息,判断位于同一列的商品是否属于同一类别;
根据每一列商品的第二对象的类别信息,判断商品摆放是否为U型摆放;
根据第二对象的类别信息,判断透明商品两侧的商品颜色是否符合摆放规则;
根据第二对象的类别信息从第二数据库获取第二对象中每两类商品之间的外观相似度,根据所述外观相似度判断第二对象的商品中是否存在外观相似度高于阈值的两类商品;其中,所述第二数据库包括不同类别商品之间的外观相似度。
其中,所述透明商品根据第三数据库中存储的商品类别和透明属性确定。
其中,所述第一时间为所述售货机器人的柜门打开前的时间,所述第二时间为所述售货机器人的柜门打开又关闭后的时间。
所述装置70还包括:提示模块,用于若判断所述售货机器人的商品摆放不符合摆放规则,则提示商品摆放异常。
本发明实施例还提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令在售货机器人上运行时,使得售货机器人执行上述任意方法实施例的操作。
图8示出了本发明售货机器人实施例的结构示意图。如图8所示,该售货机器人100可以包括:机器人本体101、视觉采集器、处理器(processor)102、通信接口(Communications Interface)104、存储器(memory)106、以及通信总线108。
其中:所述机器人本体101用于放置商品;所述视觉采集器用于获取第一鱼眼图像和第二鱼眼图像;处理器102、通信接口104、以及存储器106通过通信总线108完成相互间的通信。通信接口104,用于与其它设备通信。处理器102,用于执行程序110,具体可以执行上述用于任意方法实施例中的相关步骤。
具体地,程序110可以包括程序代码,该程序代码包括计算机操作指令。
处理器102可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。售货机器人包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器106,用于存放程序110。存储器106可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
本发明实施例还提供了一种智能货柜的商品摆放方法,本发明实施例的智能货柜的商品摆放方法应用于带鱼眼镜头的智能货柜。如图9所示,智能货柜的商品摆放方法包括:
步骤S11:通过扫描商品二维码识别商品类别;
其中,用户将商品置于扫码装置前,从而使智能货柜进行二维码扫描。商品二维码和类别的对应关系预先存储于数据库,扫描二维码后从数据库获取商品类别。
步骤S12:根据所述商品类别以及商品摆放规则,确定所述商品的适宜摆放位置;
步骤S13:提示用户根据确定的商品适宜摆放位置进行商品摆放。
商品需要满足如下摆放规则:
1.根据预设的摆放规则对智能货柜中的商品从中间向外围进行U型摆放。
其中,中间和外围是依据鱼眼镜头俯视拍摄时的视角。在本发明实施例中,对整个智能货柜中的每一层设定一个基本规则:U型摆放。具体地,计算鱼眼镜头离商品顶部平面的垂直距离,将商品进行高矮分类;将高类别商品放置在接近视角边缘处,将矮类别商品放置在靠近视角中间的位置处,相邻两类商品的高度差为较高类商品露出预设高度。商品摆满货柜的一层后,如图10所示,以消费者的视角从侧面看,是一个中间低两边高的轮廓图,但并不是完全左右对称的,因为不同种类商品高度不同。U型摆放规则可以解决高类商品遮挡住高矮类商品造成的误检漏检问题。
在本发明实施例中,根据鱼眼镜头的视角参数和智能货柜每层用于摆放商品的尺寸,来计算出商品高类别的上限高度。当商品高度超出这个高度时,该商品超出高度限制,不能摆放在智能货柜中。如图10所示为求商品高度上限,可以根据鱼眼图像视角边缘一个商品高度为例,由鱼眼镜头离商品顶部距离s和该商品在智能货柜中的摆放位置w求出镜头离该商品顶部平面的垂直距离h:h2=s2+w2。其中,鱼眼图像视角边缘可以为货柜一层中边缘的四个角落,求出该四个角落的四个商品的高度后,取最大值为商品上限:h_limit=max{h1,h2,h3,h4}。
商品高矮之间的差距按照如上方法计算,可定义两类高度差h_d为在镜头视角中刚好露出高商品瓶身1/5部分。
此外,还可以通过商品本身高度进行放置建议。商品本身的高度可以通过商品类别获取。数据库预先存储商品类别和对应的商品高度。根据商品高度确定该商品可以摆放的列。例如,高度在第一范围内的商品建议放置于第一列和第六列,高度在第二范围内的商品建议放置于第二列和第五列,高度在第三范围内的商品建议放置于第三列和第四列。
2.根据所述摆放规则将透明商品摆放在靠近中央的位置。
在本发明实施例中,商品按照U型摆放规则摆放的大前提下,为了解决透明商品后的商品颜色干扰的问题,需要将透明商品优先摆放在不受影响的位置,也即靠近中央的位置。具体地,将商品分为浅色商品和深色商品;将浅色商品摆放在所述透明商品的远离鱼眼镜头的一侧(均从鱼眼镜头的俯视角度看),将所述深色商品摆放在所述透明商品的靠近鱼眼镜头的一侧。即在鱼眼镜头的视角下,对摆放在透明商品后面的商品进行颜色筛选,干扰较严重的深色商品不摆放在透明商品后面。其中,浅色颜色包括:白色、锡白色、鹅黄色、淡粉色、果绿色、粉绿色、淡蓝色以及淡紫色等。深色颜色包括:黑色、深蓝、墨绿、正红、紫色、咖啡色等。
关于识别浅色商品和深色商品,可以通过计算颜色参数的方式确定,例如计算商品中液体部分的颜色的g值=R*0.299+G*0.587+B*0.114,g值高于某一预设阈值,则该商品为浅色商品,反之则为深色商品。
3.根据所述摆放规则将外观相似度高于参考阈值的商品分层摆放。
具体地,应用深度学习分类算法获取两种商品的相似度;将所述相似度与所述阈值进行比较;如果所述相似度大于所述阈值,则将两种商品摆放在不同的层。
在本发明实施例中,首先获取两种所述商品的特征均值,然后根据两种商品的特征均值计算该两种商品的相似度。即判断商品相似度可以用深度学习分类算法对同种类单个商品多个面的照片进行特征值提取,将提取后的特征进行方差计算。具体地,在减少背景干扰的固定场景中,采集所述商品的1张俯视图图片和4个侧面的侧视图图片,以该5个图片作为该商品的特征的标准图片。然后,将5张所述图片分别输入到深度学习分类算法模型进行特征提取,分别输出5张所述图片的特征向量V={v1,v2,v3,v4,v5};计算5张所述图片的所述特征向量的平均值,作为所述商品的特征均值,商品的特征均值V_mean=V/5。
获得商品的特征均值后,应用以下关系式计算两种所述商品的相似度:
Similarity2=(V_mean_A2+V_mean_B2)/2,
其中,Similarity为两种所述商品的相似度,V_mean_A为商品A的特征均值,V_mean_B为商品B的特征均值。当相似度Similarity大于阈值H,则视为两种商品相似度过高,摆放时将该两种商品分层摆放。
在本发明实施例中,阈值的选取可以根据实际测试结果来定,当智能货柜中两种商品非常容易识别错误时,可以计算该两种商品的相似度作为一个关于阈值相似度选取的参考。也可以遍历计算所有商品之间的相似度,对结果进行排序降序,取相似度前10%的相似度均值,作为阈值的参考。
本发明实施例将智能货柜中商品外观相似度高于阈值H的商品分层摆放,不摆在货柜的同一层中,从而避免由于镜头畸变和商品相似度高引起的商品误检问题,提高货柜中商品的检测识别率。
在本发明实施例中,确保用户在智能货柜中能够轻易确认智能货柜中是否有自己想要的商品以及顺利的拿到自己想要的商品,本发明实施例的商品摆放方法还包括:同一列只摆放同一种商品,不能在一列中混合其他种商品。
本发明实施例根据智能货柜中的环境以及智能货柜中的商品识别技术,通过分析鱼眼镜头的视角畸变规律以及智能货柜中商品的种类,设定几个摆放规则来达到提高视觉算法准确率和提高用户体验的目的。通过对鱼眼镜头的视角畸变规律进行分析发现,镜头边缘的畸变程度比视角中间畸变程度大,所以摆放规则应该让摆放在视角边缘的商品尽可能露出更多的商品特征,减少遮挡,提高算法对商品检测识别的准确率。当商品处在镜头边缘和次边缘时,如图11中a中的百岁山41和后面的芬达橙味汽水42,由于百岁山的颜色是透明的,在鱼眼镜头的视角下,百岁山被后面的芬达汽水改变了颜色,对目标检测造成了影响,本发明实施例的商品摆放方法能够尽可能的减少这种影响。另外,当商品外形非常相似时,比如图11中b中的王老吉43和可口可乐4,通过设定摆放规则,让b中两个外观非常相似的商品分布在商品的不同层摆放,从而减少对商品的误检情况。商品摆放规则应该考虑用户买商品的消费习惯,能够让用户清晰的了解智能货柜中售卖的商品,方便用户拿取到自己想要的商品。
本发明实施例能够提高对商品检测识别的准确率,从而使商品摆放符合摆放规则,提高用户体验。
图12示出了本发明实施例的智能货柜的商品摆放装置的结构示意图,如图12所示,该智能货柜的商品摆放装置包括:
扫描模块51:通过扫描商品二维码识别商品类别;
确定模块52:根据所述商品类别以及商品摆放规则,确定所述商品的适宜摆放位置;
提示模块53:提示用户根据确定的商品适宜摆放位置进行商品摆放。
本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的智能货柜的商品摆放方法。
图13示出了本发明设备实施例的结构示意图,本发明具体实施例并不对设备的具体实现做限定。例如该设备为智能货柜,或者智能货柜上的计算装置。
如图13所示,该设备可以包括:处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。
其中:处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。处理器602,用于执行程序610,具体可以执行上述智能货柜的商品摆放方法实施例中的相关步骤。
具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
处理器602可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器606,用于存放程序610。存储器606可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。