货架商品检测方法及系统
技术领域
本说明书涉及计算机领域。
背景技术
在超市等购物场景下,需要对用户购买商品的情况进行检测,由此确定用户是否从某一个货架或某一个货层中选购了商品,以及选购的数量。
因此,需要快速准确地检测货架或货层上商品的变化信息,且还要考虑对系统资源的消耗不能太大。
发明内容
本说明书提供了一种货架商品检测方法及系统,能够精确有效地确定商品的变化信息,且对系统资源的消耗较小。
本申请公开了一种货架商品检测方法,所述货架的上方设置至少一个深度摄像头,用于拍摄所述货架入口一侧的深度图像;所述货架至少有两个货层,每一货层设置至少一个普通摄像头,用于拍摄该货层中所有商品的图像;所述方法包括:
根据所述深度图像,检测用户手部相对于所述货架的位置及运动状态,当检测到用户手部进入或离开所述货架时,确定用户手部进入或离开的货层、进入该货层的第一时刻,以及离开所述货层的第二时刻;
查询所述货层相应的普通摄像头在所述第一时刻之前拍摄的所述货层的商品的第一图像,以及所述第二时刻之后拍摄的所述货层的商品的第二图像;
通过比较所述第一图像和第二图像,检测所述货层中商品的变化情况。
在一个优选例中,所述货层中商品的变化情况,是指发生变化的商品种类和相应的商品数量的变化。
在一个优选例中,所述普通摄像头是广角摄像头或鱼眼摄像头。
在一个优选例中,所述每一层货层设置多个普通摄像头,并通过将所述普通摄像头拍摄的图像进行拼接,以覆盖整个所述货层中所有商品的位置。
在一个优选例中,在所述根据所述深度图像,检测用户手部相对于所述货架的位置及运动状态的步骤之前,还包括:将所述深度摄像头拍摄到的深度图像中的每个像素与对应的货层进行关联。
在一个优选例中,所述通过比较所述第一图像和第二图像,检测货层中商品的变化情况的步骤,还包括:先分别对第一图像和第二图像进行商品识别,获得第一图像对应的第一商品信息集合,以及第二图像对应的第二商品信息集合,然后,根据所述第一商品信息集合与第二商品信息集合的差异,确定所述货层中商品的变化情况。
在一个优选例中,还包括:
在所述第二时刻之后,所述深度摄像头拍摄用户手部的第三图像,在所述第三图像中对用户的手部的商品进行识别,并判断所述识别结果与所述通过比较所述第一图像和第二图像,检测所述货层中商品的变化情况的步骤获得的检测结果是否相符。
本申请还公开了一种货架商品检测系统包括:
设置在所述货架的上方的至少一个深度摄像头,用于拍摄所述货架入口一侧的深度图像;
设置在每一货层的至少一个普通摄像头,用于拍摄该货层中所有商品的图像;
检测模块,用于根据所述深度图像,检测用户手部相对于所述货架的位置及运动状态;当检测到用户手部进入或离开所述货架时,确定用户手部进入或离开的货层、进入该货层的第一时刻,以及离开所述货层的第二时刻;
查询模块,用于查询所述货层相应的普通摄像头在所述第一时刻之前拍摄的所述货层的商品的第一图像,以及所述第二时刻之后拍摄的所述货层的商品的第二图像;
比较模块,用于通过比较所述第一图像和第二图像,检测货架中商品的变化情况。
本申请还公开了一种货架商品检测设备包括:
存储器,用于存储计算机可执行指令;以及,
处理器,用于在执行所述计算机可执行指令时实现如前文描述的方法中的步骤。
本申请还公开了一种计算机可读存储介质所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如前文描述的方法中的步骤。
本说明书实施方式中,通过深度视频图像中每个像素与货层位置之间的关联,在确定了用户的手部进出哪一层货层后,查询该货层对应的普通摄像头在用户的手部进入之前拍摄的第一图像,以及在用户的手部离开之后拍摄的第二图像,并对第一图像和第二图像进行比较,检测该货层中商品的变化情况,能够准确高效地对货架商品的信息进行检测,并且占用的系统资源较小。
本说明书中记载了大量的技术特征,分布在各个技术方案中,如果要罗列出本申请所有可能的技术特征的组合(即技术方案)的话,会使得说明书过于冗长。为了避免这个问题,本说明书上述发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均应该视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征A+B+C,在另一个例子中公开了特征A+B+D+E,而特征C和D是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征E技术上可以与特征C相组合,则,A+B+C+D的方案因技术不可行而应当不被视为已经记载,而A+B+C+E的方案应当视为已经被记载。
附图说明
图1是根据本说明书第一实施方式的货架示意图;
图2是根据本说明书第一实施方式的货架商品检测方法的流程示意图;
图3是根据本说明书第二实施方式的货架商品检测系统的结构示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
下面将结合附图对本说明书的实施方式作进一步地详细描述。
本说明书的第一实施方式涉及一种货架商品检测方法,在货架的上方设置至少一个深度摄像头,该深度摄像头用于拍摄所述货架入口一侧的深度图像。货架至少由两个货层构成,每个货层设置至少一个普通摄像头,该普通摄像头用于拍摄该货层中所有商品的图像。深度摄像头可以拍摄带有深度信息的图像,当然也可以拍摄普通图像(例如RGB图像)。可以拍摄带有深度信息的图像,深度摄像头主流有三个技术路线:单目结构光、TOF(飞行时间)和双目视觉。TOF原理是传感器发出经调制的近红外光,遇物体后反射,通过计算光线发射和反射时间差或相位差来换算被拍摄物体的距离。结构光(Structured Light)技术则要相对复杂一些,该技术将编码的光栅或线光源等投射到被测物上,根据它们产生的畸变来解调出被测物的三维信息。双目视觉则是和人眼一样用两个普通摄像头以视差的方式来计算被测物距离。普通摄像头就是用于拍摄普通图像(例如RGB图像)的摄像头。
更具体的,如图1所示,在本实施例中,设置一个深度摄像头,该深度摄像头设置于整个货架的外边侧,从上到下拍摄,用户的手部进出货架的所有空间(例如货架向外开放的一侧),均能够被该深度摄像头拍摄到。
货架分为若干层,例如,两层、三层,或更多层,图1中的货架为四层。货架通过若干个隔板分层,上一层的底板就是下一层的天花板。每一层货架(或称为“货层”)里设置一个或多个普通摄像头。
同时,将普通摄像头设置在每一层货架内部的顶端,普通摄像头的拍摄范围可以覆盖本层货架中所有商品的位置。
可选的,在一个实施例中,每层货架使用一个广角的普通摄像头,例如拍摄角度是160度的广角摄像头,或者可以使用鱼眼摄像头。
可选的,在另一个实施例中,每层货架也可以设置多个普通摄像头,通过将这些普通摄像头拍摄的图像进行拼接,以覆盖整个货层中所有商品的位置。
在本说明书的实施例中,将深度摄像头拍摄到的深度图像中的每个像素与对应的货层关联起来,由于每个货层也设置了普通摄像头,因此,进一步地与该货层的普通摄像头也关联起来。
具体的,在安装完深度摄像头之后,需要手工标定货架的顶部位置。深度摄像头拍摄的照片里可以看到每个货层的隔板,因此,标定了货架的顶部位置在深度视频图像中的深度信息,然后根据每个货层的隔板的位置,就可以自动标定每个货层在深度视频图像中的深度信息。而每个货层中还预先安装了普通摄像头,因此,可以将深度摄像头所拍摄到的用户的手部的深度信息和该深度信息所对应的货层的普通摄像头像关联起来。
进一步的,如图2所示,本实施例的货架上品检测方法包括以下步骤:
步骤110:根据所述深度图像,检测用户手部相对于所述货架的位置及运动状态;当检测到用户手部进入或离开所述货架时,确定用户手部进入或离开的货层、进入该货层的第一时刻,以及离开所述货层的第二时刻;
步骤120:查询所述货层相应的普通摄像头在所述第一时刻之前拍摄的所述货层的商品的第一图像,以及所述第二时刻之后拍摄的所述货层的商品的第二图像;
步骤130:通过比较所述第一图像和第二图像,检测所述货层中商品的变化情况。
下面对各个步骤进行详细的解释说明。
针对步骤110:
检测用户的手部相对于货架位置及运动状态,是基于深度摄像头的视频流,通过检测前景运动物体的位置,来判断用户的手部位置,同时,运用图像识别的方法获取用户的手部的前端位置,并去除衣物等干扰。运动前景检测方法现在主要有背景建模,帧差法,光流法。在本实施例中,可以采用背景自动建模方法检测用户的手部相对于货架位置和运动,这种方法更加适用于本实施例的具体场景。
具体的,上述背景建模的过程可以通过深度视频图像实现。当有用户进入摄像头范围区域,会将用户视为运动前景,同时对运动前景进行用户的手部检测,获取用户的手部区域的图像,并据此判断用户的手部前端位置,然后通过与半自动标定的货架区域做比较,判断用户的手部是否进入货架和进入哪层货架,并且,根据行为顺序判断用户的手部是进入货架还是离开货架,并记录进入该货层的第一时刻,以及离开该货层的第二时刻。
针对步骤120:
根据上述已确定的用户的手部进入的是哪层货架,可以查询该货层相应的普通摄像头,并查询由该普通摄像头在用户的手部进入该货层的第一时刻之前拍摄的所述货层的商品的第一图像,以及该普通摄像头在用户的手部离开该货层的所述第二时刻之后拍摄的所述货层的商品的第二图像。
针对步骤130:
货架或货层中商品的变化情况,是指货架或货层中,数量发生变化的商品的信息,即,发生变化的商品种类和相应的商品数量的变化,例如,罐装可乐、罐装雪碧,以及罐装美年达的数量发生变化,以及该商品数量上的变化,例如,罐装可乐减少1罐,罐装雪碧减少2罐,罐装美年达减少3罐。
可选的,在一个实施例中,可以先对第一图像和第二图像进行比较,获得第一图像和第二图像的差异部分,然后,对该差异部分进行商品识别,从而得到货层中商品的变化情况。
可选的,在另一个实施例中,也可以先分别对第一图像和第二图像进行商品识别,获得第一图像和第二图像对应的两个商品信息集合,然后,根据这两个商品信息集合的差异,确定货架中商品的变化情况。例如,通过识别,确定第一图像对应的商品信息集合为:10罐可乐,以及10罐雪碧,以及10罐美年达,第二图像中对应的商品信息集合为:9罐可乐,8罐雪碧,以及7罐美年达,根据这两个商品信息集合的差异,确定货层中商品的变化情况为:罐装可乐减少1罐,罐装雪碧减少2罐,罐装美年达减少3罐。
可选的,在一个实施例中,在第二时刻之后,深度摄像头还会拍摄用户手部的普通图像,即,第三图像,根据第三图像,对用户的手部的商品进行识别。将识别结果作为通过比较第一图像和第二图像检测商品变化情况的结果的辅助依据,判断识别结果中的商品信息是否能够与图像比较后获得的商品变化情况的结果相符。
具体的说,根据第一图像和第二图像的差别,可以获得货架中商品的变化情况。如果该商品的变化情况的可信度超过预定的阈值,则可以直接采信该商品的变化情况。反之,如果该商品的变化情况的可信度没有超过预定的阈值,则可以结合对上述第三图像进行商品识别的结果,进行二次校验。之所以对通过比较第一图像和第二图像检测获得的商品的变化情况设置可信度,并引入第三图像作为辅助依据,是因为货架上的商品可能会有互相遮挡的问题,导致部分商品看不到全貌,使检测结果不准确。
需指出,本申请的实施方式涉及到了模式识别技术。例如,对于用户的手部的识别,以及对于用户的手部的商品,即,用户手中拿的商品的识别,以及对于货架的货层中的商品的识别,等等。在本申请的实施例方式中,这些识别都可以使用卷积深度神经网实现。深度卷积神经网络本身是一种现有技术,在本发明的具体应用场景中,需要拍摄该应用场景下的大量图片进行标定,使用经标定的图片作为样本,输入深度卷积神经网络进行训练,由此训练出来的深度卷积神经网络就可以对特定的物体,例如用户的手部,或者商品进行识别了。
根据上述实施例的优点在于,使用深度摄像头对用户的手部进行检测,对于图像分析的计算量而言,是比较小的。虽然每一层货架的普通摄像头一直在处于拍摄状态,但是,并不需要对这些摄像头拍摄到的图像进行实时处理。进一步的,通过一个深度摄像头就可以覆盖整个货架的各个货层,这使得总体上图像分析的计算量较小。
本说明书的第二实施方式涉及一种货架商品检测系统,包括:
设置在所述货架的上方的至少一个深度摄像头,用于拍摄所述货架入口一侧的深度图像;
设置在每一货层的至少一个普通摄像头,用于拍摄该货层中所有商品的图像;
检测模块,用于根据所述深度图像,检测用户手部相对于所述货架的位置及运动状态;当检测到用户手部进入或离开所述货架时,确定用户手部进入或离开的货层、进入该货层的第一时刻,以及离开所述货层的第二时刻;
查询模块,用于查询所述货层相应的普通摄像头在所述第一时刻之前拍摄的所述货层的商品的第一图像,以及所述第二时刻之后拍摄的所述货层的商品的第二图像;
比较模块,用于通过比较所述第一图像和第二图像,检测货架中商品的变化情况。
第一实施方式是与本实施方式相对应的方法实施方式,第一实施方式中的技术细节可以应用于本实施方式,本实施方式中的技术细节也可以应用于第一实施方式。
需要说明的是,本领域技术人员应当理解,上述货架商品检测系统的实施方式中所示的各模块的实现功能可参照前述货架商品检测方法的相关描述而理解。上述货架商品检测系统的实施方式中所示的各模块的功能可通过运行于处理器上的程序(可执行指令)而实现,也可通过具体的逻辑电路而实现。本说明书实施例上述货架商品检测系统如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本说明书各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本说明书实施例不限制于任何特定的硬件和软件结合。
相应地,本说明书实施方式还提供一种计算机可读存储介质,其中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本说明书的各方法实施方式。计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于,相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
此外,本说明书实施方式还提供一种货架商品检测设备,其中包括用于存储计算机可执行指令的存储器,以及,处理器;该处理器用于在执行该存储器中的计算机可执行指令时实现上述各方法实施方式中的步骤。
在一个实施例中,该计算机可执行指令可以用于:
根据深度摄像头拍摄的深度图像,检测用户手部相对于所述货架的位置及运动状态,当检测到用户手部进入或离开所述货架时,确定用户手部进入或离开的货层、进入该货层的第一时刻,以及离开所述货层的第二时刻;
查询所述货层相应的普通摄像头在所述第一时刻之前拍摄的所述货层的商品的第一图像,以及所述第二时刻之后拍摄的所述货层的商品的第二图像;
通过比较所述第一图像和第二图像,检测所述货层中商品的变化情况。
在一个实施例中,该处理器可以是中央处理单元(Central Processing Unit,简称“CPU”),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,简称“DSP”)、专用集成电路(Application Specific Integrated Circuit,简称“ASIC”)等。前述的存储器可以是只读存储器(read-only memory,简称“ROM”)、随机存取存储器(randomaccess memory,简称“RAM”)、快闪存储器(Flash)、硬盘或者固态硬盘等。本发明各实施方式所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。
在本说明书提及的所有文献都被认为是整体性地包括在本说明书的公开内容中,以便在必要时可以作为修改的依据。此外应理解,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。