商品识别模型的动态调整方法及商品校验方法
技术领域
本公开的实施例一般涉及互联网技术领域,并且更具体地,涉及商品识别模型的动态调整方法及商品校验方法。
背景技术
智能货柜是能够根据用户出示的支付码或者其他支付凭证实现自动付货的机器。智能货柜是商业自动化的常用设备,不受时间、地点的限制,能够节省人力、方便交易,是一种全新的商业零售形式,又被称为24小时营业的微型超市。智能货柜由于操作方便,只需在一定时间内进行有限次数的补货即可实现无人看守自动售货而受到广泛的应用。
随着智能货柜的发展,能够在智能货柜上进行售卖的商品的种类也越来越多,越来越频繁,导致商品识别模型的训练周期变短,新上架商品的样本不能够充分学习,使得新上架的商品的识别准确率越来越低,如果要充分学习又需要更大的计算成本与时间成本。当智能货柜在使用过程中发生错误和故障时,交易记录难以追溯,给经营者带来很多不必要的麻烦,同时影响消费者的用户体验。
发明内容
有鉴于此,根据本公开的实施例,提供了一种能够提高新上架的商品的识别准确率,进而能够准确记录交易记录,提高用户体验的商品识别模型的动态调整方案及商品校验方案。
在本公开的第一方面,提供了一种商品识别模型的动态调整方法,包括:
获取第一训练样本集,所述第一训练样本集为当前商品识别模型的训练样本集;
获取第二训练样本集,所述第二训练样本集为新采集到的商品样本的集合;
按照预设条件从所述第一训练样本集和所述第二训练样本集中选取样本,对神经网络模型进行训练,生成商品识别模型。
如上所述的方面和任一可能的实现方式,所述第一训练样本集为第1个采样周期至第n-1个采样周期内采集的用于训练当前商品识别模型的商品样本的集合和第n个采样周期内线上采集到的商品样本集合,所述第二训练样本集为第n个采样周期内人工采集到的商品样本的集合,其中第n个采样周期为最近的采样周期。
如上所述的方面和任一可能的实现方式,所述按照预设条件从所述第一训练样本集和所述第二训练样本集中选取样本,包括:
按照所述第一训练样本集和所述第二训练样本集中样本量的反比例从所述第一训练样本集和所述第二训练样本集中选取样本。
如上所述的方面和任一可能的实现方式,所述按照预设条件从所述第一训练样本集和所述第二训练样本集中选取样本,包括:
对于每个采样周期内采集到的商品样本,选取比例值为2i/(n2+n)的样本,其中n为采样周期的个数,i为采样周期的序号。
如上所述的方面和任一可能的实现方式,所述按照预设条件从所述第一训练样本集和所述第二训练样本集中选取样本,对神经网络模型进行训练,生成商品识别模型,包括:
从所述第一训练样本集中选取标注框数量小于第一预设阈值的商品样本作为第一子样本;
从所述第一训练样本集中除所述第一子样本外的其他训练样本中按比例选取人工采集的商品样本和线上采集的商品样本,作为第二子样本,并保证所述第二子样本中的标注框数量不低于第二预设阈值;
验证所述第一子样本、所述第二子样本和所述第二训练样本集中的样本总量是否低于第三预设阈值;
响应于所述第一子样本、所述第二子样本和所述第二训练样本集中的样本总量低于第三预设阈值,利用所述第一子样本、所述第二子样本和所述第二训练样本集中的样本对神经网络模型进行训练,生成商品识别模型。
在本公开的第二方面,提供了一种商品校验方法,包括:
响应于第一触发指令,采集所述智能货柜内的货品的当前图像;
利用第一方面任一项所述的商品识别模型对所述当前图像进行处理,输出所述当前图像中的货品的当前清单,将所述当前清单加入到清单序列,所述当前清单包括货品位置、货品数量和货品类型;
将所述当前清单与前一清单进行对比,确定已售货品的位置、类型,以及剩余数量;
根据所述已售货品的位置、类型,以及剩余数量,对货品售卖报表进行更新。
如上所述的方面和任一可能的实现方式,所述响应于第一触发指令,采集所述智能货柜内的货品的当前图像,包括:
响应于接收到支付成功信息,采集所述智能货柜内的货品的当前图像。
如上所述的方面和任一可能的实现方式,所述根据所述已售货品的位置、类型,以及剩余数量,对货品售卖报表进行更新,包括:
记录当前时间点,将所述当前时间点和所述已售货品的位置、类型,以及剩余数量整合为报表信息,按时间顺序添加至货品售卖报表中。
在本公开的第三方面,提供了一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
在本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如以上所述的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
通过本公开的实施例的生成的商品识别模型,能够充分学习新采样的商品样本,从而提高新上架的商品的识别准确率,进而能够准确记录交易记录,提高用户体验。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了本公开实施例一的商品识别模型的动态调整方法的流程图;
图2示出了本公开实施例二的商品校验方法的流程图;
图3示出了本公开实施例三的商品识别模型的动态调整设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
如图1所示,为本公开实施例一的商品识别模型的动态调整方法的流程图。从图1中可以看出,本实施的商品识别模型的动态调整方法,可以包括以下步骤:
S101:获取第一训练样本集,所述第一训练样本集包括当前商品识别模型的训练样本集和线上新采集到的商品样本集合。
本实施例所提及的商品识别模型,可以用于智能货柜或网上商城等无人售货场景,利用所述商品识别模型可以对商品的信息(例如类别、型号、价格以及交易信息等)进行识别,避免发生识别错误或者无法识别的状况,影响正常的商品交易。现有技术中,商品识别模型通常是通过以现有商品为样本对神经网络模型进行学习训练得到的,而对于商品更新较快(例如新鲜水果的上架和下架)或者新商品增加(例如智能货柜的普及和规模扩大)的情形,由于现有的商品识别模型的是通过学习采集到的全部样本来训练得到的,训练成本高,花费时间长,为了缩短训练时间,降低训练成本,现有的训练样本的选取方式也有的是从样本库中按比例选取一定量的样本作为训练样本对神经网络模型进行训练,这样的选取方式,会使得样本中的新商品的占比较低,不能充分利用新商品对所述商品识别模型进行训练,从而导致商品识别模型对新商品的识别率较低,对新商品的识别也不准确,从而影响正常的商品销售。
本实施例就是为了解决这种商品识别模型对新商品的识别率较低,对新商品的识别也不准确的问题而提出的解决方案。具体地,在训练商品识别模型选取样本的过程中,通过对当前的商品识别模型采用更新的样本进行训练,来更新所述商品识别模型,以对增加新商品后的全部商品进行识别。其中,每进行一次商品更新(即增加新商品),就要进行一次采样,每次采样可以有对应的周期,该采样周期例如可以是一天、三天、一周等。在每个采样周期内对商品识别模型的训练样本进行更新。并且,对于当前的商品识别模型,其对应的是上一采样周期的训练样本。本实施例的技术方案,通过对当前采样周期的训练样本进行更新,从而对商品识别模型进行更新,生成下个采样周期内应用的商品识别模型。
具体地,在对商品识别模型的训练样本进行采样时,首先需要获取第一训练样本集,所述第一训练样本集为当前商品识别模型的训练样本集和线上新采集到的商品样本集合,即上一采样周期内采集到的商品识别模型的训练样本集,该训练样本集包括以往所有的商品识别模型的训练样本,以及线上新采集到的商品样本集合。并且,该样本集中的样本至少被学习过一次。
在本实施例中,线上新采集到的商品样本,包括APP和智能货柜等无人终端采集并回传的商品照片。线上新采集到的商品样本,主要是APP中在售的商品或者智能货柜中上架摆放的商品。由于随着产品的更新,例如季节交替时,或者商家举办的促销活动时,APP和智能货柜中的商品更新较快,线上新采集到的商品样本更多的是应季的商品或者活动商品,并且线上新采集到的商品样本的样本量较小,而当前商品识别模型的训练样本集包括历史采集的全部样本,样本量较大,线上新采集到的商品样本和当前商品识别模型的训练样本集中的样本的重复率较低,并且,线上新采集到的商品样本被学习的次数也相对较少。
S102:获取第二训练样本集,所述第二训练样本集为人工新采集到的商品样本的集合。
在本实施例中,获取第二训练样本集,所述第二训练样本集为人工新采集到的商品样本集合。新采集到的商品样本集合中包括更新的商品,即将要在智能货柜上架的新商品。这部分商品需要先经过人工标准,才能本商品识别模型识别,进而对商品识别模型进行训练。
S103:按照预设条件从所述第一训练样本集和所述第二训练样本集中选取样本,对神经网络模型进行训练,生成商品识别模型。
在获取到用于更新商品识别模型的第一训练样本集和第二训练样本集后,可以按照预设条件从所述第一训练样本集和所述第二训练样本集中选取样本,对神经网络模型进行训练,在选取样本的过程中,可以通过调整分别从所述第一训练样本集和所述第二训练样本集中选取样本的数量来使得从所述第二训练样本集中的选取的样本的占比多于从所述第一训练样本集中选取的样本。
在一些实施例中,所述第一训练样本集为第1个采样周期至第n-1个采样周期内采集的用于训练当前商品识别模型的商品样本的集合和第n个采样周期内线上采集到的商品样本集合,所述第二训练样本集为第n个采样周期内人工采集到的商品样本的集合,其中第n个采样周期为最近的采样周期。
在一些实施例中,从所述第一训练样本集和所述第二训练样本集中选取样本时,可以按照所述第一训练样本集和所述第二训练样本集中样本量的反比例从所述第一训练样本集和所述第二训练样本集中选取样本。
例如,第一训练样本集中的样本量为50000,第二训练样本集中的样本量为2000,则可以按照2000/50000的比例即1:25的比例分别从所述第一训练样本集和所述第二训练样本集中选取样本。根据需要选取的样本总量确定最终分别从所述第一训练样本集和所述第二训练样本集中选取的样本数量。当根据上述比例计算确定的从所述第二训练样本集中选取的样本数量达不到上述要求时,则其余样本可以从第一训练样本集中补足。
在一些实施例中,从所述第一训练样本集和所述第二训练样本集中选取样本时,对于每个采样周期内采集到的商品样本,选取比例值为2i/(n2+n)的样本,其中n为采样周期的个数,i为采样周期的序号。例如,当采样周期的个数为6时,对第3个采样周期内的样本,选取2*3/(62+6)=1/7的样本。这样可以使得选取的历史样本中,每个采样周期内采集到的商品样本的相接近,进而使得商品识别模型学习到的每个采样周期内的样本数量接近相同。
在一些实施例中,从所述第一训练样本集中选取标注框数量小于第一预设阈值的商品样本作为第一子样本。
具体地,在采集商品样本时,通常是采样商品图片,然后对采集到的商品图片中的特征部分和标识部分用标注框标注出来,不同的商品样本的特征数量一般不同,因此,不同商品样本的注框数量也不相同。为了控制训练样本总量,可以选取标注框数量小于第一预设阈值的商品样本作为第一子样本,例如可以选取标注框数量小于3000的商品样本作为第一子样本。
具体地,可以采用边缘检测算法来对采集到的商品图片进行区域划分,将商品图片划分为多个区域,例如将商品图片中的商品区域或商品上的图标区域用标注框标注出来。采用边缘检测算法来对采集到的商品图片进行区域划分,具体可以包括:对商品图片与高斯mask作卷积,对所述商品图片进行平滑处理;利用Sobel算子计算平滑处理后的商品图片的每个像素点的梯度;保留所述商品图片的每个像素点上梯度强度的极大值,删除其他值;设定商品图片的每个像素点上梯度强度的极大值的阈值上界和阈值下界,将梯度强度的极大值大于所述阈值上界的像素点确认为边界,将梯度强度的极大值大于所述阈值下界小于所述阈值上界的像素点确认为弱边界,将梯度强度的极大值小于所述阈值下界的像素点确认为非边界;将与所述边界相连的弱边界确认边界,将其他的若边界确认为非边界。听过上述方法,可以对商品图像进行区域划分。然后对划分出来的区域中的特征部分和标识部分用标注框标注出来。
之后,从所述第一训练样本集中除所述第一子样本外的其他训练样本中按比例选取人工采集的商品样本和线上采集的商品样本,作为第二子样本,并保证所述第二子样本中的标注框数量不低于第二预设阈值。其中,该比例值可以由经验值确定,并可以根据实际需要进行调整。
验证所述第一子样本、所述第二子样本和所述第二训练样本集中的样本总量是否低于第三预设阈值。
为了控制商品样本总量,以节约计算成本与时间成本,需要对样本总量进行验证,通常情况下,样本总量的数值不得超过360000。当然,样本总量的数值也可以根据实际需要进行调整。
响应于所述第一子样本、所述第二子样本和所述第二训练样本集中的样本总量低于第三预设阈值,利用所述第一子样本、所述第二子样本和所述第二训练样本集中的样本对神经网络模型进行训练,生成商品识别模型。
当样本总量的数值不得超过第三阈值时,利用所述第一子样本、所述第二子样本和所述第二训练样本集中的样本对神经网络模型进行训练,生成商品识别模型。在一些实施例中,上述实施例中的样本为经过图像识别处理的商品标注图像,所述标注图像中的商品通过标注框框选,并标明商品类型和图像来源。
本实施例的商品识别模型,能够充分学习新采样的商品样本,从而提高新上架的商品的识别准确率。
在上述实施例中,获取第一训练样本集和所述第二训练样本集的顺序可以不分先后。
如图2所示,为本申请实施例二的商品校验方法的流程图。本实施例的商品校验方法,包括以下步骤:
S201:响应于第一触发指令,采集所述智能货柜内的货品的当前图像。
本实施例的方法,用于对智能货柜的售卖货品进行校验。通过图像处理技术对智能货柜内的货品进行识别,判断已售卖货品的类型,并根据已售卖货品的类型和对应的时间点生成售卖报表,并当智能货柜发生故障和错误时,例如消费者支付费用后未得到货物,或者售货收益和已售货物不匹配等,通过所述售卖报表,可以逐步排查发生故障和错误的时间点以及引起该故障和错误的原因,从而对发生的错误和故障进行解决,提高消费者用户体验。
在利用本实施例的方法对智能货柜的售卖货品进行校验的过程中,需要对智能货柜内的货品进行多次图像采集,通过对比相邻两次采集到的图像,进而确定售卖的货品或者新添加到智能货柜内的货品。
具体地,针对每次的图像采集,可以是针对一个触发指令做出的动作,该触发指令例如可以是接收到用户的支付成功信息,包括人脸支付或者移动支付信息等,或者接收到智能货柜的门关闭的信息,再或者是传感器信息等。当接收到第一触发指令后,通过设置在智能货柜内的图像采集装置采集智能货柜内的当前图像。所述当前图像一般为智能货柜内的全景图像,即包含货品和摆放货品的货道在内的图像。通常情况下,智能货柜内的货品摆放遵循高货品摆放在两侧的货道,矮货品摆放在中间的货道。本实施例中的高货品是指货品高度大于预设阈值的货品,同理,矮货品是指货品高度小于预设阈值的货品。由此在图像采集过程中,图像采集设备的镜头距离货品较近,采集到的图像由于中间货品较近,两侧货品较远,使得采集到的图像呈现中间向上凸起,两侧相对凹陷的状态,因此,为了清楚地采集到智能货柜内的货品图像,需要按上述要求对智能货柜内的货品进行摆放。
S202:利用商品识别模型对所述当前图像进行处理,输出所述当前图像中的货品的当前清单,将所述当前清单加入到清单序列,所述当前清单包括货品位置、货品数量和货品类型。
本实施例中的商品识别模型可以利用实施例一中的商品识别模型。
S203:将所述当前清单与前一清单进行对比,确定已售货品的位置、类型,以及剩余数量。
在利用本实施例的方法进行货品校验时,对于采集到的货品的当前图像,可以将该货品图像与之前采集到的货品图像进行对比,确定当前图像相对于之前采集到的图像的缺失货品,以及该缺失货品的位置、类型,以及剩余数量。此外,根据实际需要,还可以确定其他信息,例如,累计销售量或者销售频率等。本实施中的货品的位置可以是货品在智能货柜内的坐标,或者货品所处的货道,货品的类型可以是货品的品牌标签或者规格。
S204:根据所述已售货品的位置、类型,以及剩余数量,对货品售卖报表进行更新。
在确定已售货品的位置、类型,以及剩余数量后,可以对智能货柜的货品售卖报表进行更新。具体地,该货品售卖报表可以是包括已售货品的位置、类型、剩余数量和售出时间在内的报表,对于每张所述的当前图像,记录当前时间点,将所述当前时间点和所述已售货品的位置、类型,以及剩余数量整合为报表信息,并按照记录的时间点的先后顺序添加至货品售卖报表中。通过该货品售卖报表可以确定某一货品售出之前的智能货柜内的货品状态和该货品售出之后的智能货柜内的货品状态,即使发生错误,也可以通过货品售出前后的记录确定售出的货品类型、位置和售出时间,同时,结合消费者的支付信息等信息对交易记录进行追溯。
本公开的实施例中,通过对智能货柜的货品进行校验,可以对交易记录进行追溯,以对发生的错误和故障进行解决,提高消费者用户体验。
此外,作为本申请的一个可选实施例,上述实施例中的根据所述已售货品的位置、类型,以及剩余数量,对货品售卖报表进行更新,可以具体为:
记录当前时间点,将所述当前时间点和所述已售货品的位置、类型,以及剩余数量整合为报表信息,按时间顺序添加至货品售卖报表中。
本实施例的方法,能够取得与上述实施例相类似的技术效果,这里不再重复赘述。
本公开还提供了一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
此外,本公开还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如以上所述的方法。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图3示出了本公开实施例三的商品识别模型的动态调整设备的结构示意图。图3示出的终端设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图3所示,计算机系统包括中央处理单元(CPU)301,其可以基于存储在只读存储器(ROM)302中的程序或者从存储部分308加载到随机访问存储器(RAM)303中的程序而执行各种适当的动作和处理。在RAM303中,还存储有系统操作所需的各种程序和数据。CPU 301、ROM 302以及RAM 303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。
以下部件连接至I/O接口305:包括键盘、鼠标等的输入部分306;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分307;包括硬盘等的存储部分308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分309。通信部分309经由诸如因特网的网络执行通信处理。驱动器310也基于需要连接至I/O接口305。可拆卸介质311,诸如磁盘、光盘、磁光盘、半导体存储器等等,基于需要安装在驱动器310上,以便于从其上读出的计算机程序基于需要被安装入存储部分308。
特别地,基于本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分309从网络上被下载和安装,和/或从可拆卸介质311被安装。在该计算机程序被中央处理单元(CPU)301执行时,执行本申请的方法中限定的上述功能。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。