具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明提供的方法和设备实施例,可应用于一切具有能够自动进行售卖功能的设备,例如自助售卖机、自助售卖冰箱、自助售卖冰柜等。本发明实施例提供的技术方案,结合待识别物体的采集图像和重量信息这两个方面的内容,对待识别物体的种类,即待识别物体为哪种物体进行识别。与相关技术中相比,至少不需将每个待识别物体都添加上标签,可在一定程度上减少成本的支出。此外,通过图像信息和重量信息的结合对待识别物体进行识别,可大大提高识别准确率。另外,本申请实施例中的采集单元在相邻两层承载体间的交替设置,可避免由于采集单元单纯设置在承载体的同一侧而导致的遮挡,可保证采集到有效图像。还可避免由于采集单元同时设置在承载体的两侧而导致的成本增加的问题,降低成本支出。
可以理解,本发明实施例中涉及的待识别物体可以是任何能够放置于售卖机中进行售卖的物体,如食品中的饮料、主食、副食等;生活用品中的卫生纸、面巾纸等。
本发明提供的识别方法的第一实施例,如图1所示,所述方法包括:
步骤101:通过至少两个采集单元获取针对待识别物体的多张采集图像;其中,所述至少两个采集单元中的各个采集单元对位于至少三层承载体上的待识别物体进行图像采集、且每相邻两层承载体间的采集单元交替设置;
步骤102:通过传感器获取针对待识别物体的重量信息;
步骤103:基于所述多张采集图像,获得至少一张目标图像,所述目标图像为至少包括所述待识别物体的图像;
步骤104:获得目标图像的特征图像;
步骤105:基于特征图像和重量信息,确定所述待识别物体。
执行步骤101~105的实体为任何具有自动售卖功能的设备。可以理解,步骤101和步骤102、步骤102和步骤103之间无严格的先后顺序,还可以同时进行。
上述方案中,通过图像信息和重量信息的结合对待识别物体进行识别,与相关技术中相比,至少不需为每个待识别物体添加标签,可大大减少成本支出。此外,通过图像信息和重量信息这两方面的结合,可大大提高识别准确率。
可以理解,本实施例中,预先为具有自动售卖功能的设备配置至少两个采集单元如摄像头和至少三个传感器如重量传感器。具有自动售卖功能的设备还包括用于承载(摆放)待识别物体的至少三层承载体,承载体可用于承载可售卖的商品如承载体可以为货柜层或摆货层。
先来看本申请实施例中的摄像头的设置方式。如图2(a)所示,以自动售卖功能的设备包括五层货柜层、五个摄像头为例,各层货柜层用于承载待售卖的物体。所有层货柜层之间按照从上到下的顺序按照一定间隔设置(货柜层1~货柜层5),以为待售卖的物体预留摆放空间。从图2(a)中可以看出,每层货柜层的上方均设置1个摄像头,且相邻层货柜层之间的摄像头交替设置在货柜层的两侧。如图2(a)所示,摄像头2设置在货柜层1和2之间,位于货柜层2上方的左侧;摄像头3设置在货柜层2和3之间,位于货柜层3上方的右侧;摄像头4设置在货柜层3和4之间,位于货柜层4上方的左侧;摄像头5设置在货柜层4和5之间,位于货柜层5上方的右侧。相邻两层货柜层间的摄像头进行左右两侧的交替设置,与将摄像头设置在货柜层的同一侧的方式相比,这种交替设置方式,可避免右(左)手取商品而导致的位于右(左)侧的摄像头无法拍摄到被取商品而只能拍摄到手(被取商品被手部遮挡)、无法拍摄到有效图像(包括有待取走商品的图像)的问题。与摄像头设置在货柜层的双侧的方式相比,可避免由于同时在双侧设置采集单元而导致的成本增加的问题,减少购买摄像头的成本。
此外,本申请实施例中将摄像头设置在两层货柜层之间且交替设置的方式,可弥补彼此拍摄的不足。由于设置在相邻两层货柜层间的摄像头距离该两层货柜层较近,该摄像头至少可同时拍摄拿取这两层货柜层上的商品的图像。以摄像头3为例,位于货柜层2和货柜层3之间,距离货柜层2和货柜层3较近,当用户拿走位于货柜层2的商品时如果位于货柜层左侧的摄像头2由于手的遮挡没有采集到有效图像,那么摄像头3从货柜层的右侧采集到的图像可作为有效图像,具有拍摄有效性。
对于未位于相邻两层货柜层间的摄像头,如摄像头1,其可以设置在任何能够采集到图像的位置处。例如,摄像头1设置在货柜层1的上方(如图2(a)所示),还可以设置货柜层1上方的右侧(如图2(b)所示),这种方式能够与前述的交替设置方式保持一致,多个摄像头的这种交替设置方式,可从多方位、多角度采集到有效图像;还可以设置在货柜层1的上方的左侧(图中未示意出)。
可以理解,摄像头可以选取尽可能大的广角,这样,所有摄像头均可对位于所有货柜层的取货或补货操作进行图像采集。也可以预先设置每个摄像头负责采集位于相对层承载体上的待识别物体的识别,例如,摄像头1主要对位于货柜层1上的商品进行图像采集;摄像头2主要对位于货柜层2上的商品进行图像采集,以此类推。如图2(c)所示,还可以在最底部的货柜层下方再设置一个摄像头(摄像头6),与图2(a)的摄像头1对称设置,相当于一共6个摄像头,摄像头6可从底部对用户的手进入货柜层或离开货柜层的过程进行拍摄,以确保用户成功拿取商品。
本领域技术人员应该理解,本申请实施例中的摄像头的数量可以取为任何合理的取值,不限于以上所述,只要处于相邻层的摄像头交替设置在货柜层的两侧即可,以保证对拿取或放入物体的过程进行多角度的拍摄。
再来看本申请实施例中的传感器,该传感器可以为任何能够测量重量的传感器,如重量传感器。本申请实施例中的重量传感器的设置方式可以如图2(a)所示,为每层货柜层设置一个重量传感器,该重量传感器可设置在货柜层的底面上(如图2(a)~(c)所示,从外观可看出),用于对相应层上的商品的重量进行测量。也可与为每层货柜层设置两个或两个及以上的重量传感器,位于同一层货柜层上的这些重量传感器各自进行重量的测量,以各自测量的值进行加权平均或算术平均后的值作为摆放在该层货柜层上的商品的最终重量,这种方式可保证重量测量的准确性,尽量避免由于单个重量传感器的损坏而导致的误差。此外,还可以如图2(d)所示,同一层的货柜层由两个或更多子货柜层组成,为各个子货柜层设置一个重量传感器,由于每个货柜子层具有一定厚度,还可以该重量传感器设置在货柜子层内(如图2(d)中的黑色模块所示,从外观上看不出),这种情况下,如果同一层的货柜子层的数量为S个,则相应的重量传感器也为S个。当然,各个子货柜层内也可以设置两个或更多的重量传感器,并将加权平均或算术平均值作为相应子货柜层上的重量值。货柜层或子层的多重量传感器的设置,可大大保证重量测量的准确性。
可以理解,图2(a)~(d)仅为一种具体举例而已,货柜层、重量传感器和摄像头的数量及摆放位置还可以为任何其它能够想到的形式,不限于以上所述。
在本发明一个可选的实施例中,步骤103:所述基于获取到的针对所述待识别物体的多张采集图像和重量信息,确定所述待识别物体,进一步包括:
获得第一识别结果,所述第一识别结果表征为根据多张采集图像而得到的所述待识别物体的可能种类;获得第二识别结果,所述第二识别结果表征为根据重量信息而得到的待识别物体的可能种类;根据第一识别结果和第二识别结果,确定所述待识别物体的种类。
可以理解,在上述可选实施例中,依据多张采集图像得到待识别物体可能是哪个/些物体;依据重量信息得到的待识别物体可能是哪个/些物体;对这两种可能的结果进行结合,即可确定出待识别物体最终为哪个/些物体。例如,对这两种可能的结果作交集操作,交集出的待识别物体即为在这两种可能结果中均出现的物体,确定在这两种可能结果中均出现的物体为最终需要识别出的物体。
在本发明另一个可选的实施例中,如图3所示,所述获得第一识别结果,可以为:
步骤301:基于所述多张采集图像,获得至少一张目标图像;
步骤302:将每个目标图像进行至少两个卷积层的卷积处理,得到每个目标图像在至少部分卷积层中的特征图像;
步骤303:基于至少部分卷积层的特征图像,得到多个对待识别物体的种类进行识别的识别结果;
步骤304:基于所述多个识别结果,获得第一识别结果。
步骤301~304为依据至少两个摄像头采集到的多张采集图像得到第一识别结果的过程。
其中,步骤301可视为一种预处理操作;多个摄像头针对同一次对货柜层上的至少一个物体进行拿取或放入的操作的画面而采集到的图像中,由于拿取或放入动作的不同,可能存在有采集到的图像为不合格的图像如采集到的大多数是关于手的图像,没有采集到关于拿取或放入的物体的图像。本可选方案中,通过步骤301在多张采集图像中筛选出能够有资格进行第一识别结果的识别的采集图像,也即筛选出至少包括有拿取或放入的物体的图像。
步骤302~304为对筛选出的采集图像进行特征图像的获取,并依据特征图像,得到多个可能的识别结果;再对这多个可能的识别结果进行综合判断得到第一识别结果。
在本发明另一个可选的实施例中,步骤301:所述基于所述多张采集图像,获得至少一张目标图像,可进一步包括:
所述多张采集图像中的部分采集图像由同一采集单元采集;
针对由所述同一采集单元采集的第I张采集图像,I为大于等于1的正整数,
获取第I张采集图像的各个像素点的取值;
基于各个像素点的取值,得到第I张采集图像的背景图像;
基于背景图像的各个像素点的取值,得到第I张采集图像的前景图像;
基于前景图像,确定第I张采集图像是否为目标图像。
此处,可以理解,目标图像即为有资格进行第一识别结果的识别的采集图像。针对第I张采集图像中各个像素点的取值,得到该张采集图像的背景图像,并基于背景图像的各个像素点的取值,得到第I张采集图像的前景图像,基于前景图像确定第I张采集图像是否为有资格进行第一识别结果的识别的采集图像。也就是说,本实施例中,同时基于一张采集图像的背景和前景图像确定该张采集图像是否为有资格进行第一识别结果的识别的采集图像。这种结合前景和背景图像来确定目标图像的方式,可大大提高筛选正确率,为后续的识别过程提供了更为精确的数据。
其中,针对步骤301中的进一步细化步骤:基于各个像素点的取值,得到第I张采集图像的背景图像,还可以包括:
获得第I-1张采集图像的背景图像;
依据第I-1张采集图像的背景图像的各个像素点取值和第I张采集图像的各个像素点的取值,得到第I张采集图像的背景图像。
其中,针对步骤301中的进一步细化步骤:所述基于背景图像的各个像素点的取值,得到第I张采集图像的前景图像,包括:
基于背景图像的各个像素点的取值,对背景图像进行二值化处理;
将经二值化处理的图像进行先膨胀后腐蚀操作,得到前景图像。
其中,针对步骤301中的进一步细化步骤:所述基于前景图像,确定第I张采集图像是否为目标图像,包括:
获取前景图像的各个像素点的取值及像素点的总数量;
获取像素点取值大于或等于预定值的像素点的数量;
像素点取值大于或等于预定值的像素点的数量与像素点的总数量之间的比例达到预定比例范围时,确定第I张采集图像为目标图像。
以上针对步骤301中的三个子步骤中的具体细化方法,基于图像的像素点的具体取值而进行,这种基于像素点的具体取值而进行的识别目标图像的过程,可大大提高识别目标图像的准确率,为后续的识别过程提供了更为精确的数据。
在本发明另一个可选的实施例中,步骤303:所述基于至少部分卷积层的特征图像,得到多个对待识别物体的种类进行识别的识别结果,进一步包括:
针对所述至少部分卷积层中的其中一个卷积层的特征图像,
获得为该卷积层的特征图像配置的窗口的缩放比例和各个长宽比例的组合;其中,不同大小的窗口对应着待识别物体的不同种类,所述窗口的大小至少由缩放比例和长宽比例来确定,
在缩放比例和其中一个长宽比例的组合下,
依据所述特征图像、窗口的所述缩放比例及所述长宽比例,确定窗口在采集图像中的位置;
基于窗口在采集图像中的位置,确定待识别物体的可能种类。
此处,可以理解为基于目标图像的特征图像确定待识别物体的可能种类的过程。基于来自于某个卷积层的特征图像,为该特征图像配置的窗口的缩放比例和其中一个长宽比例,确定窗口在采集图像中的位置;并依据该位置确定待识别物体的可能种类。这种结合特征图像、窗口的缩放比例和各个长宽比例确定物体的可能种类的方式,可大大提高识别准确率。
上述方案中,所述依据所述特征图像、窗口的所述缩放比例及所述长宽比例,确定窗口在采集图像中的位置,可以为:
对所述特征图像进行多次卷积处理,得到第一矩阵,所述第一矩阵的各个元素至少用于代表特征图像中的各个像素点的特征值;
基于第一矩阵的至少一个元素的取值及所述缩放比例及所述长宽比例,确定所述窗口在采集图像中的位置。
此处,通过对来自于某个卷积层的特征图像进行卷积处理而得到的第一矩阵,得到窗口在采集图像中的位置,以使得基于窗口在采集图像中的位置确定待识别物体的可能种类。这种经过多次卷积处理得到的第一矩阵更能反映出像素点的特征值,能够为物体的识别过程提供更为准确的数据,进而帮助提升识别准确率。
下面结合图4所示的应用场景来对本方案进行进一步说明。
以自助售卖机为例,自助售卖机安装自行关门的自动闭门器和用于开门的电子门锁。
用户想要购买自助售卖机内陈列的商品,用户通过智能手机等智能移动终端完成对用户信息购买信息的识别,例如用户选取要购买的商品,自助售卖机的电子门锁解锁,自助售卖机的门打开;用户拿取商品、关门,自助售卖机的自动闭门器将门闭合。
可以理解,用户拿取商品的过程均被如图4所示的至少两个摄像头采集到。在商品拿取后,三个重量传感器重新对位于对应层货柜层上的商品的重量进行称重。其中,被拿取商品所在的货柜层,位于该货柜层底部的重量传感器将检测到商品被拿取之前和拿取之后的重量将发生变化。
在实际应用中,用户的一次拿取过程可以仅拿走一个数量的商品,也可以拿走多个同一商品,还可以拿走不同商品。
依据重量传感器获得的重量值,确定一次拿取过程前后的重量变化,该变化的重量值即为该用户拿取的商品的总重量,并结合预先测得的位于摆货层上的每种商品的重量,初步估算用户拿取的商品的种类的几种组合。该初步估算结果即为根据重量传感器获得的重量变化而得到的第二识别结果。
举个例子,假定位于摆货层上的商品A、B、C和D,重量分别是200g(克)、250g、310g和200g,一次拿取过程前后的重量变化为960,根据前述方案可确定出拿走的商品可能是由2个A+1个B+1个C构成的一种组合,还可能是由2个D+1个B+1个C构成的另一种组合。最终是哪种组合还需要结合对采集图像的识别结果综合来判断。
对用户的一次拿取过程,各个摄像头在自身的采集位置处对该过程的画面进行采集,每个摄像头均得到多张采集图像。在众多的采集图像中,可能存在有拍摄效果不理想的图像例如没有拍摄到被拿走的商品的图像,这样的图像在本方案中视为不合格(无效图像),需要将合格的图像(有效图像)-包括有被拿走的商品的图像(目标图像)从众多的采集图像中筛选出来。
依次对各个摄像头采集到的所有采集图像进行目标图像的筛选。
对于其中一个摄像头采集到的第I张采集图像,因为像素点较多不利于计算速度,为加快计算速度,可将第I(I为大于等于1的正整数)张图像进行压缩,然后再对第I张采集图像进行如下处理:
第I张采集图像的像素点为L(正整数)个,分别是I(1)、I(2)、…I(L)。初始化背景图像H的所有像素(L个像素)为0,并记初始化背景图像H0。第I张采集图像的背景图像记为HI,像素点分别是HI(1)、HI(2)、…HI(L)。背景图像为HI的像素点的取值根据如下所述的方案而计算。
对第I张采集图像,其对应的背景图像HI中的各个像素点的取值根据如下公式(1)计算:HI(v)=0.5*abs(HI-1_(v)-I(v))+0.5*HI-1(v);其中,abs表示求绝对值,1≤v≤L;HI-1(v)为第I-1张的采集图像的背景图像。
对第I=1张采集图像,H1(v)=0.5*abs(H0_(v)-I(v))+0.5*H0(v);
对第I=2…L张采集图像,其对应的背景图像HI的各元素的取值参照前述对公式(1)的说明。
将第I张采集图像的背景图像HI复制一份得到图像RI,像素点分别是RI(1)、RI(2)、…RI(L)。把图像RI中大于等于第一阈值如125的像素点的值设为第一数值如255,小于第一阈值如125的像素点的值设为第二数值0,以此来进行二值化处理。接着,进行预定次数的膨胀操作和腐蚀操作,例如对RI先做图像的膨胀操作3次,再做腐蚀操作3次,膨胀操作和腐蚀操作的次数可以相同也可以不同,根据实际使用情况而定。以此得到的图像即为第I张采集图像的前景图像QI。
读取第I张采集图像的前景图像QI的各个像素点的取值,计算像素点取值大于或等于预定值如255的像素点的数量;计算QI中像素点的总数量;像素点取值大于或等于255的像素点的数量与像素点的总数量之间的比例达到预定比例范围如20%时,则认为第I张采集图像为目标图像。
前述方案为从众多的采集图像中,确定出能够有资格进行第一识别结果的采集图像-目标图像,这些图像通常是利于识别拿取的商品是哪种商品的图像。
下面内容为根据目标图像进行第一识别结果的识别过程。该识别过程的网络架构以神经网络为准,具体是基于神经网络的目标检测算法(SSD)或FasterR-CNN(快速-基于CNN的区域检测)等算法来进行。
以一张目标图像为例进行说明:
将目标图像表示为(H,W,3)的一个浮点数矩阵。其中,H、W分别为目标图像的高度、宽度;3代表红绿蓝(RGB)三个通道。
神经网络包括至少两个卷积层,本领域技术人员应该而知,卷积层间是逐层连接,即上一卷积层的输出作为下一卷积层的输入。
将目标图像依次输入各个卷积层,经过各个卷积层的卷积操作,得到不同卷积层的输出,该输出即为目标图像经过对应卷积层的卷积处理得到的特征图像。
其中,可以理解,卷积层之间可增加池化(max pooling层),用于进行降低维度的操作,以缩小计算量,使得计算速度更快。还可以增加归一化层(batch normalization),用于对图像进行归一化操作,使得维度降低,计算速度加快。
以上说明具体请参见相关技术理解,不赘述。
本领域技术人员应该而知,在SSD算法中涉及到绑定盒(窗口)的概念,其用于圈出采集图像中出现的物体。绑定盒的形状可以为长方形、正方体、六边形等。在本应用场景中,可能二种不同的商品使用同一形状和大小的绑定盒,绑定盒的形状和大小与绑定盒的长宽比例和缩放比例有关。
本方案中,可以预先定义不同形状和大小的绑定盒与不同物品之间的对应关系,例如,形状为长方形、面积为1的绑定盒可以将物品1圈出,可以将物品2圈出。形状为正方形、面积为12的绑定盒可以将物品3圈出。本方案中,如果能够获知绑定盒的形状和大小,再利用这种对应关系,就可以获知被拿取的物体是哪种物品。以下的技术方案就在于计算绑定盒的形状和大小。
本方案中,预先定义位于自助售货机中的商品可能使用的所有绑定盒的长宽比例。例如,预先定义绑定盒的M(M为正整数,视具体情况而灵活设定)个长宽比例,从所有卷积层中选出至少部分卷积层,并为选定的每个卷积层分配一个缩放比例(在0-1之间)。针对输入为目标图像Ij,经过第j个卷积层的处理,得到特征图像为Zj,记为第j个卷积层分配的缩放比例为scale,设定的第i个长宽比例为ratio_i。对ratio_i和选定的第j个卷积层做如下操作:
首先,对第j个卷积层的输出进行多次卷积处理,例如进行N=(Nclass+1)+4个卷积操作,输出为第一矩阵C,形状为(h,w,N)。其中,N为大于等于5的正整数,Nclass为大于等于1的正整数。
其中,在N个卷积操作中,前(Nclass+1)个卷积操作得到的C中的元素如C[x][y][1]~C[x][y][Nclass+1]代表着特征图像上的位置为C[x][y]的像素点其为背景或物品的概率。例如,元素C[1][5][1]代表位置为(1,5)像素点是否为背景的概率。后4个卷积操作得到的C中的元素C[x][y][Nclass+2]~C[x][y][N]用来计算绑定盒在原始图像-目标图像Ij中的位置。
其次,依据第一矩阵C的高度和宽度(h,w)和原始图像-目标图像Ij的大小(H,W),由以下公式(2)和(3)计算出C中一个元素(C[n_h][n_w])对应到原始图像的位置(img_h,img_w):
img_h=H/h*n_h+C[n_h][n_w][Nclass+2]*H*scale(2);
img_w=H/h*n_w+C[n_h][n_w][Nclass+3]*W*scale(3);
再次,将scale和ratio_i公式代入至公式(4)和公式(5),计算C中一个元素(C[n_h][n_w])对应的绑定盒的长宽:
box_H=H*scale*ratio_i+C[n_h][n_w][Nclass+4]*H*scale(4);
box_W=W*scale/ratio_i+C[n_h][n_w][Nclass+5]*W*scale(5);
最后,根据(img_h,img_w)以及box_H、box_W,计算绑定盒在原始图像中的坐标(位置):
绑定盒为四边形,其四边形形状的左上角和右下角在原始图像中的位置是:
左上角y轴坐标:img_h-box_H/2;
左上角x轴坐标:img_w-box_W/2;
右下角y轴坐标:img_h+box_H/2;
右下角x轴坐标:img_w+box_W/2;
基于绑定盒在原始图像中的位置,即可得到绑定盒在原始图像中的形状和大小,那么根据预先设定的不同形状和大小的绑定盒与物品之间的对应关系,则可得到一个识别结果:此次被拿取的可能物品是什么物品。可以理解:该识别结果是在针对第j个卷积层的输出,在绑定盒的长宽比例为其中一个长宽比例下得到的识别结果。针对第j个卷积层的输出,还需要逐一遍历其它(M-1)长宽比例,并以此计算出可能的物品的种类。
对选定的每个卷积层均进行如上所述的处理。
将针对所有选定的卷积层产生的识别结果进行非极大抑制算法(NMS)的运算,得到由摄像头采集的采集图像得到的识别结果-第一识别结果。可以理解,第一识别结果是初步估算出的用户拿取的商品的种类或种类的几种组合。
例如,通过上述方案中,得到的用户拿取的商品为由2个A+1个B+1个C构成的一种组合,还为由1个A+1个B+1个C+1个D构成的一种组合。将这个识别结果和前述的基于重量信息得到的识别结果进行综合,例如进行交集操作,得到最终的识别结果为:被用户拿取的商品为2个A、1个B、1个C,进而识别出被用户拿取的商品的种类。
上述方案中,至少存在以下有益效果:
1)应用多个摄像头,可有效解决由于用户拿取2个以上物品时多个物品可能会存在互相遮挡而导致的无法拍摄到各个被拿取物品的图像的问题;多个摄像头的设置、以及位于相邻层承载体间的摄像头的位置的交替设置,至少能够实现对各个被拿取物品的多角度、全方位的拍摄。
2)通过图像信息和重量信息的结合对待识别物体进行识别,与相关技术中相比,至少不需为每个待识别物体添加标签,可大大减少成本支出,补货简便。此外,通过图像信息和重量信息这两方面的结合,可大大提高识别准确率。此外,通过摄像头与重力传感器的结合,对被拿取或放入的物品实现双重验证,提升了商品的识别能力,能准确识别商品的数量和位置异常,对于错放商品能及时发现。
3)在利用采集图像进行被拿取物品的种类的识别之前,还需进行采集图像的筛选操作,把不合格的采集图像-不包括拿取或补入商品的图像排除掉,利用合格的采集图像进行物品种类的识别,可为识别过程提供准确的数据。
4)结合特征图像、绑定盒的缩放比例和各个长宽比例确定物体的可能种类的方式,可大大提高识别准确率。
5)在应用层面上,在识别出被拿取物品的种类后,方便识别物品的货款并可进行自动扣款,提升用户体验的效果,提供了一种全新的商品贩卖方式。
本发明实施例还提供一种识别设备700,如图5所示,所述识别设备700包括处理器701和存储介质702;其中,所述存储介质702用于存储计算机程序;
所述处理器701,用于在执行所述存储介质702存储的计算机程序时,至少执行以下步骤:
通过至少两个采集单元获取针对待识别物体的多张采集图像、以及通过传感器获取针对待识别物体的重量信息;其中,所述至少两个采集单元中的各个采集单元对位于至少三层承载体上的待识别物体进行图像采集,且每相邻两层承载体间的采集单元交替设置;
基于所述多张采集图像,获得至少一张目标图像,所述目标图像为至少包括所述待识别物体的图像;
获得目标图像的特征图像;
基于特征图像和重量信息,确定所述待识别物体。
在一个可选的方案中,所述至少三层承载体中的各层承载体上设置有至少一个重量传感器;位于同一承载体上的待识别物体的重量信息通过设置在所述同一层承载体上的至少一个重量传感器而得。
上述方案中,所述处理器701,还用于执行以下步骤:
获得第一识别结果,所述第一识别结果表征为根据多张采集图像而得到的所述待识别物体的可能种类;
获得第二识别结果,所述第二识别结果表征为根据重量信息而得到的待识别物体的可能种类;
根据第一识别结果和第二识别结果,确定所述待识别物体的种类。
上述方案中,所述处理器701,还用于执行以下步骤:
基于所述多张采集图像,获得至少一张目标图像;
将每个目标图像进行至少两个卷积层的卷积处理,得到每个目标图像在至少部分卷积层中的特征图像;
基于至少部分卷积层的特征图像,得到多个对待识别物体的种类进行识别的识别结果;
基于所述多个识别结果,获得第一识别结果。
上述方案中,所述处理器701,还用于执行以下步骤:
针对其中一个采集单元采集的第I张采集图像,I为大于等于1的正整数,
获取第I张采集图像的各个像素点的取值;
基于各个像素点的取值,得到第I张采集图像的背景图像;
基于背景图像的各个像素点的取值,得到第I张采集图像的前景图像;
基于前景图像,确定第I张采集图像是否为目标图像。
上述方案中,所述处理器701,还用于执行以下步骤:
获得第I-1张采集图像的背景图像;
依据第I-1张采集图像的背景图像的各个像素点取值和第I张采集图像的各个像素点的取值,得到第I张采集图像的背景图像。
上述方案中,所述处理器701,还用于执行以下步骤:
基于背景图像的各个像素点的取值,对背景图像进行二值化处理;
将经二值化处理的图像进行先膨胀后腐蚀操作,得到前景图像。
上述方案中,所述处理器701,还用于执行以下步骤:
获取前景图像的各个像素点的取值及像素点的总数量;
获取像素点取值大于或等于预定值的像素点的数量;
像素点取值大于或等于预定值的像素点的数量与像素点的总数量之间的比例达到预定比例范围时,确定第I张采集图像为目标图像。
上述方案中,所述处理器701,还用于执行以下步骤:
针对所述至少部分卷积层中的其中一个卷积层的特征图像,
获得为该卷积层的特征图像配置的窗口的缩放比例和各个长宽比例的组合;其中,不同大小的窗口对应着待识别物体的不同种类,所述窗口的大小至少由缩放比例和长宽比例来确定,
在缩放比例和其中一个长宽比例的组合下,
依据所述特征图像、窗口的所述缩放比例及所述长宽比例,确定窗口在采集图像中的位置;
基于窗口在采集图像中的位置,确定待识别物体的可能种类。
上述方案中,所述处理器701,还用于执行以下步骤:
对所述特征图像进行多次卷积处理,得到第一矩阵,所述第一矩阵的各个元素至少用于代表特征图像中的各个像素点的特征值;
基于第一矩阵的至少一个元素的取值及所述缩放比例及所述长宽比例,确定所述窗口在采集图像中的位置。
本发明实施例的电子设备还可以如图6所示,电子设备700包括:至少一个处理器701、存储介质702、至少一个网络接口704和用户接口703。电子设备700中的各个组件通过总线系统705耦合在一起。可理解,总线系统705用于实现这些组件之间的连接通信。总线系统705除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统705。
其中,用户接口703可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
可以理解,存储介质702可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read OnlyMemory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储介质702旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例中的存储介质702用于存储各种类型的数据以支持电子设备700的操作。这些数据的示例包括:用于在电子设备700上操作的任何计算机程序,如操作系统7021和应用程序7022。其中,操作系统7021包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序7022可以包含各种应用程序,例如媒体播放器(MediaPlayer)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序7022中。
上述本发明实施例揭示的方法可以应用于处理器701中,或者由处理器701实现。处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器701可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储介质702,处理器701读取存储介质702中的信息,结合其硬件完成前述方法的步骤。
本申请实施例还提供一种存储介质,所述存储介质可以为图5和6中的存储介质702,用于存储计算机程序,该计算机程序被执行时执行前述的识别方法。
需要说明的是,本发明实施例提供的识别设备,由于该识别设备解决问题的原理与前述的识别方法相似,因此,识别设备的实施过程及实施原理均可以参见前述识别方法的实施过程及实施原理描述,重复之处不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。