掌桥专利:专业的专利平台
掌桥专利
首页

一种货柜内商品的识别方法及装置

文献发布时间:2023-06-19 11:35:49


一种货柜内商品的识别方法及装置

技术领域

本发明实施例涉及智能货柜技术领域,尤其涉及一种货柜内商品的识别方法及装置。

背景技术

目前在市面上有着广泛应用的智能售货柜,无需售货人员,即可自动售卖。这种智能售货柜一般包括四到五层货架(每层高度可相等或不等),用来放置零售商品,且每层顶部均有一个鱼眼摄像头,用于确定用户购买的商品。一种方式是通过每次顾客关门后拍摄的商品照片,使用目标检测技术计算其中各种类型的商品分别有多少个,并与上次关门后计算出的商品个数进行比较,即可得出本次顾客购买的商品种类与个数并进行自动结算。智能售货柜中存在商品的外形差异虽然较大,但是商品的顶部差异却不大的情况。然而,由于鱼眼摄像头只能拍摄到商品的顶部,因此会导致商品的类别难以区分。

现阶段,通常采用的方法是在同一个柜子(或柜子的同一层)中不上架相似的商品。这样,如果检测出了属于某些相似的商品,则只需要把它们的类别都改为该货架层设定的商品类别即可。然而,这种处理方式会降低智能售货柜内商品的多样性和商品上货组合的灵活性。

综上,目前亟需一种货柜内商品的识别方法,用以提高识别货柜内商品的商品类型的效率、准确性,并提高货柜内商品的多样性和商品上货组合的灵活性。

发明内容

本发明实施例提供了一种货柜内商品的识别方法及装置,用以提高识别货柜内商品的商品类型的效率、准确性,并提高货柜内商品的多样性和商品上货组合的灵活性。

第一方面,本发明实施例提供了一种货柜内商品的识别方法,所述货柜内设置有至少一层货架,每层货架的顶部设置有图像采集装置,每层货架设置有多个货道,同一货道上的各商品属于同一类型,所述方法包括:

获取针对任一货架层的鱼眼图像;

对所述鱼眼图像进行目标检测,确定出所述鱼眼图像中各商品的商品类型和各商品所在的货道;

统计位于同一货道且属于同一商品类型的商品的数量;

将数量最多的商品类型确定为所述同一货道上的各商品的商品类型。

上述技术方案中,货柜内设置有至少一层货架,每层货架的顶部设置有图像采集装置,每层货架设置有多个货道,同一货道上的各商品属于同一类型。获取针对任一货架层的鱼眼图像,并对鱼眼图像进行目标检测,确定出鱼眼图像中各商品的商品类型和各商品所在的货道。再统计位于同一货道且属于同一商品类型的商品的数量,并将数量最多的商品类型确定为同一货道上的各商品的商品类型。由于每层货架设置有多个货道,不同的货道所设置的商品类型各不相同,且同一货道上的各商品属于同一类型,因此在统计位于同一货道且属于同一商品类型的商品的数量后,可以将同一货道上数量最多的商品类型确定为该货道上各商品的商品类型,如此可以及时准确地识别出货柜内各商品的商品类型,从而可以提高识别货柜内商品的商品类型的效率、准确性,并可以提高货柜内商品的多样性和商品上货组合的灵活性,进而可以解决现有技术中存在由于同一个柜子(或柜子的同一层)中不上架相似的商品导致货柜内商品的多样性和商品上货组合的灵活性降低的问题。

可选地,所述对所述鱼眼图像进行目标检测,确定出所述鱼眼图像中各商品所在的货道,包括:

对所述鱼眼图像进行目标检测,确定出所述鱼眼图像中各商品的初始位置信息;

对所述各商品的初始位置信息进行修正,得到所述各商品的修正位置信息;

根据所述各商品的修正位置信息,确定所述各商品所属的货道。

上述技术方案中,由于该处理方式仅对各商品的初始位置信息(即中心坐标)进行修正,因此相比对各商品的所有位置都进行修正,该处理方式所耗费的计算量更少,如此可以提高数据处理的效率,从而可以提高针对货柜内商品的商品类型的识别效率。

可选地,所述根据所述各商品的修正位置信息,确定所述各商品所属的货道,包括:

根据所述各商品的修正位置信息中第一方向的坐标值,对所述各商品进行排序;

将第i个商品在所述第一方向的第一坐标值,与第i-1个商品在所述第一方向的第二坐标值进行比较,确定所述第i个商品是否属于所述第i-1个商品所在货道;

其中,所述第i-1个商品在排序上位于所述第i个商品之前。

上述技术方案中,通过将第i个商品在第一方向的第一坐标值,与第i-1个商品在第一方向的第二坐标值进行比较,可以及时准确地确定出第i个商品属于哪个货道,从而可以及时准确地识别出第i个商品的商品类型。

可选地,所述将第i个商品在所述第一方向的第一坐标值,与第i-1个商品在所述第一方向的第二坐标值进行比较,确定所述第i个商品是否属于所述第i-1个商品所在货道,包括:

若确定所述第一坐标值与所述第二坐标值的差值小于间距阈值,则确定所述第i个商品属于所述第i-1个商品所在货道。

上述技术方案中,若确定第一坐标值与第二坐标值的差值小于间距阈值,则可以准确地确定第i个商品与第i-1个商品属于同一货道,从而可以及时准确地识别出第i个商品的商品类型。

可选地,在与第i-1个商品在所述第一方向的第二坐标值进行比较之前,还包括:

确定所述第i-1个商品所在货道的各商品的数量小于预设的货道商品数。

上述技术方案中,若确定第i-1个商品所在货道的各商品的数量小于预设的货道商品数时,就可以直接将第i个商品在第一方向的第一坐标值,与第i-1个商品在第一方向的第二坐标值进行比较。若确定第i-1个商品所在货道的各商品的数量小于预设的货道商品数,需要新增一个与第i-1个商品所在货道相邻的货道。如此,可以确保识别第i个商品的商品类型的准确性。

可选地,所述方法还包括:

若所述第一坐标值与所述第二坐标值的差值不小于所述间距阈值,则确定所述第i个商品不属于所述第i-1个商品所在货道,并新增一个与所述第i-1个商品所在货道相邻的货道,并将所述第i个商品确定为新增货道中位于起始位置的商品。

上述技术方案中,若确定第一坐标值与第二坐标值的差值不小于间距阈值,则可以准确地确定第i个商品与第i-1个商品不属于同一货道,以此将该第i个商品放在与第i-1个商品所在货道相邻的货道。如此,基于第i个商品所属的货道,就可以及时识别出第i个商品的商品类型。

可选地,所述方法还包括:

若确定货架层中的货道数量大于所述货架层所能容纳的货道数量阈值,则将货道间距最小的两个货道合并为一个货道。

上述技术方案中,在确定货架层中的货道数量大于货架层所能容纳的货道数量阈值时,可以将货道间距最小的两个货道合并为一个货道,如此可以确保针对货柜内商品的识别结果符合业务规则,并可以提高识别货柜内商品的商品类型的准确性。

可选地,所述对所述各商品的初始位置信息进行修正,得到所述各商品的修正位置信息,包括:

对所述鱼眼图像进行霍夫圆变换处理,得到所述鱼眼图像的中心位置和球面半径;

根据所述中心位置和所述球面半径,建立球面模型;

基于所述球面模型,确定所述鱼眼图像中各商品的初始位置在球面上的球面坐标点;

按照双经度坐标转换规则,对所述鱼眼图像中各商品的球面坐标点进行转换处理,得到所述鱼眼图像中各商品的双经度坐标;

基于坐标矫正规则,对所述鱼眼图像中各商品的双经度坐标进行处理,得到所述各商品的修正位置信息。

上述技术方案中,通过基于霍夫圆变换、双经度坐标转换规则以及坐标矫正规则对各商品的初始位置信息进行修正处理,可以及时准确地得到各商品的修正位置信息,从而可以为后续确定各商品所属的货道提供支持。

第二方面,本发明实施例还提供了一种货柜内商品的识别装置,所述货柜内设置有至少一层货架,每层货架的顶部设置有图像采集装置,每层货架设置有多个货道,同一货道上的各商品属于同一类型,所述装置包括:

获取单元,用于获取针对任一货架层的鱼眼图像;

处理单元,用于对所述鱼眼图像进行目标检测,确定出所述鱼眼图像中各商品的商品类型和各商品所在的货道;统计位于同一货道且属于同一商品类型的商品的数量;将数量最多的商品类型确定为所述同一货道上的各商品的商品类型。

可选地,所述处理单元具体用于:

对所述鱼眼图像进行目标检测,确定出所述鱼眼图像中各商品的初始位置信息;

对所述各商品的初始位置信息进行修正,得到所述各商品的修正位置信息;

根据所述各商品的修正位置信息,确定所述各商品所属的货道。

可选地,所述处理单元具体用于:

根据所述各商品的修正位置信息中第一方向的坐标值,对所述各商品进行排序;

将第i个商品在所述第一方向的第一坐标值,与第i-1个商品在所述第一方向的第二坐标值进行比较,确定所述第i个商品是否属于所述第i-1个商品所在货道;

其中,所述第i-1个商品在排序上位于所述第i个商品之前。

可选地,所述处理单元具体用于:

若确定所述第一坐标值与所述第二坐标值的差值小于间距阈值,则确定所述第i个商品属于所述第i-1个商品所在货道。

可选地,所述处理单元还用于:

在与第i-1个商品在所述第一方向的第二坐标值进行比较之前,确定所述第i-1个商品所在货道的各商品的数量小于预设的货道商品数。

可选地,所述处理单元还用于:

若所述第一坐标值与所述第二坐标值的差值不小于所述间距阈值,则确定所述第i个商品不属于所述第i-1个商品所在货道,并新增一个与所述第i-1个商品所在货道相邻的货道,并将所述第i个商品确定为新增货道中位于起始位置的商品。

可选地,所述处理单元还用于:

若确定货架层中的货道数量大于所述货架层所能容纳的货道数量阈值,则将货道间距最小的两个货道合并为一个货道。

可选地,所述处理单元具体用于:

对所述鱼眼图像进行霍夫圆变换处理,得到所述鱼眼图像的中心位置和球面半径;

根据所述中心位置和所述球面半径,建立球面模型;

基于所述球面模型,确定所述鱼眼图像中各商品的初始位置在球面上的球面坐标点;

按照双经度坐标转换规则,对所述鱼眼图像中各商品的球面坐标点进行转换处理,得到所述鱼眼图像中各商品的双经度坐标;

基于坐标矫正规则,对所述鱼眼图像中各商品的双经度坐标进行处理,得到所述各商品的修正位置信息。

第三方面,本发明实施例提供一种计算设备,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行上述第一方面任意所述的货柜内商品的识别方法。

第四方面,本发明实施例提供一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述第一方面任意所述的货柜内商品的识别方法。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种系统架构的示意图;

图2为本发明实施例提供的一种货柜内商品的识别方法的流程示意图;

图3a为本发明实施例提供的一种球面模型的结构示意图;

图3b为本发明实施例提供的一种鱼眼图像上的像素点与球面上对应点之间的关系的坐标示意图;

图3c为本发明实施例提供的一种正畸后的像素点的坐标示意图;

图4为本发明实施例提供的一种货柜内商品的识别装置的结构示意图;

图5为本发明实施例提供的一种计算设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

图1为本发明实施例提供的一种系统架构。如图1所示,该系统架构可以为服务器100,包括处理器110、通信接口120和存储器130。

其中,通信接口120用于与终端设备进行通信,收发该终端设备传输的信息,实现通信。

处理器110是服务器100的控制中心,利用各种接口和线路连接整个服务器100的各个部分,通过运行或执行存储在存储器130内的软件程序/或模块,以及调用存储在存储器130内的数据,执行服务器100的各种功能和处理数据。可选地,处理器110可以包括一个或多个处理单元。

存储器130可用于存储软件程序以及模块,处理器110通过运行存储在存储器130的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器130可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据业务处理所创建的数据等。此外,存储器130可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

需要说明的是,上述服务器100为一种独立于货柜外的远程服务器,货柜内的处理装置可以与该服务器100进行远程交互。即,该货柜内的处理装置在对采集好的图像进行预处理后,可以将预处理的图像发送给远程的数据中心的服务器,在远程的数据中心的服务器中对图像进行识别和正畸处理。或者,本发明实施例可以不需要该远程服务器100,可以通过货柜内设置的处理装置对采集好的图像进行识别和正畸处理。上述图1所示的结构仅是一种示例,本发明实施例对此并不作限定。

基于上述描述,图2示例性的示出了本发明实施例提供的一种货柜内商品的识别方法的流程,该流程可以由货柜内商品的识别装置执行。

如图2所示,该流程具体包括:

步骤201,获取针对任一货架层的鱼眼图像。

步骤202,对所述鱼眼图像进行目标检测,确定出所述鱼眼图像中各商品的商品类型和各商品所在的货道。

步骤203,统计位于同一货道且属于同一商品类型的商品的数量。

步骤204,将数量最多的商品类型确定为所述同一货道上的各商品的商品类型。

上述步骤201和步骤202中,该货柜内设置有至少一层货架,每层货架的顶部设置有图像采集装置,每层货架设置有多个货道,同一货道上的各商品属于同一类型。通过每层货架设置的图像采集装置拍摄该层货架的各商品,即可采集到货柜内中各层货架的鱼眼图像。针对任一货架层的鱼眼图像,通过对鱼眼图像进行目标检测,即可确定出鱼眼图像中各商品的商品类型和各商品所在的货道。具体地,先对鱼眼图像进行目标检测,确定出鱼眼图像中各商品的初始位置信息。再对各商品的初始位置信息进行修正,得到各商品的修正位置信息。之后根据各商品的修正位置信息,就可以及时准确地确定出各商品所属的货道。由于该处理方式仅对各商品的初始位置信息(即中心坐标)进行修正,因此相比对各商品的所有位置都进行修正,该处理方式所耗费的计算量更少,如此可以提高数据处理的效率,从而可以提高针对货柜内商品的商品类型的识别效率。

其中,根据各商品的修正位置信息,确定出各商品所属的货道。即,根据各商品的修正位置信息中第一方向的坐标值,对各商品进行排序。再将第i个商品在第一方向的第一坐标值,与第i-1个商品在第一方向的第二坐标值进行比较,以便通过确定第一坐标值与第二坐标值的差值是否小于间距阈值来确定第i个商品是否属于第i-1个商品所在货道。如此,可以及时准确地确定出第i个商品属于哪个货道,从而可以及时准确地识别出第i个商品的商品类型。其中,第i-1个商品在排序上位于第i个商品之前。若确定第一坐标值与第二坐标值的差值小于间距阈值,则确定第i个商品属于第i-1个商品所在货道。若确定第一坐标值与第二坐标值的差值不小于间距阈值,则确定第i个商品不属于第i-1个商品所在货道,并新增一个与第i-1个商品所在货道相邻的货道,并将第i个商品确定为新增货道中位于起始位置的商品。如此,基于第i个商品所属的货道,就可以及时识别出第i个商品的商品类型。此外,在新增货道后,如果确定货架层中的货道数量大于货架层所能容纳的货道数量阈值,则需要将货道间距最小的两个货道合并为一个货道,如此可以确保针对货柜内商品的识别结果符合业务规则,并可以提高识别货柜内商品的商品类型的准确性。其中,间距阈值可以根据实际应用场景或根据技术人员的经验或根据技术人员所做的实验结果等进行设置,本发明实施例对此并不作限定。

需要说明的是,若确定第i-1个商品所在货道的各商品的数量小于预设的货道商品数时,就可以直接将第i个商品在第一方向的第一坐标值,与第i-1个商品在第一方向的第二坐标值进行比较。若确定第i-1个商品所在货道的各商品的数量小于预设的货道商品数,需要新增一个与第i-1个商品所在货道相邻的货道。如此,可以确保识别第i个商品的商品类型的准确性。

此外,下面对各商品的初始位置信息进行修正,得到各商品的修正位置信息的过程进行描述。该过程具体为:

首先对鱼眼图像进行霍夫圆变换处理,得到鱼眼图像的中心位置和球面半径,并根据中心位置和球面半径,建立球面模型。再基于球面模型,确定鱼眼图像中各商品的初始位置在球面上的球面坐标点,并按照双经度坐标转换规则,对鱼眼图像中各商品的球面坐标点进行转换处理,得到鱼眼图像中各商品的双经度坐标。然后,基于坐标矫正规则,对鱼眼图像中各商品的双经度坐标进行处理,得到各商品的修正位置信息。如此,通过基于霍夫圆变换、双经度坐标转换规则以及坐标矫正规则对各商品的初始位置信息进行修正处理,可以及时准确地得到各商品的修正位置信息,从而可以为后续确定各商品所属的货道提供支持。

上述步骤203和步骤204中,在确定出鱼眼图像中各商品的商品类型和各商品所在的货道后,即可统计位于同一货道且属于同一商品类型的商品的数量,并将数量最多的商品类型确定为同一货道上的各商品的商品类型。具体地,在确定出鱼眼图像中各商品的商品类型和各商品所在的货道后,检查每一个货道,并对于每个货道,按照该货道中的商品类型,统计每种商品类型下的各商品的数量。在统计出各种商品类型所拥有的商品数量后,可以将商品数量少的商品类型修改为商品数量多的商品类型,以便确保该货道中的各商品的商品类型符合该货道所设置的商品类型要求。基于此,即可及时准确地确定出货柜内每个商品的商品类型。

需要说明的是,对于静态智能货柜,静态智能货柜中每层都会分割为6至7个给货道,以便使得商品排列整齐美观,并且规定单一货道只会上货同一种类的商品。根据这一规定,就可以利用整个货道上所有商品识别的结果,来一起用于单个商品的类别判断。即,如果单个商品的类别难以确定,就观察该货道上其他商品的类别进行参考,一条货道上总有些位置的商品更容易识别出的。

然而,由于鱼眼图像是鱼眼镜头拍摄的,因此会存在一定的畸变,尤其是越靠近边缘的货道越是呈现“弧形”,所以并不能非常简单地通过各商品的中心坐标信息,判断各商品是否属于同一货道。但是,如果能够对鱼眼图像进行正畸,纠正接近边缘处的圆弧形畸变,并将其改为呈直的货道排布,这样就能够比较容易划分货道。

有鉴于此,下面对本发明实施例中货柜内商品的识别的实施过程进行具体描述。

Step1:基于用户对智能货柜的操作,采集智能货柜内各层的鱼眼图像。

示例性地,用户在需要购买智能货柜内的商品时,通过使用终端设备以扫描二维码(智能货柜的外壁上设置有二维码)的方式进入到与智能货柜对应的应用程序中,应用程序在用户登录成功时获取用户的身份信息,并对用户的身份信息进行识别,在确认用户的身份信息后允许用户打开智能货柜的柜门。或者,通过智能货柜的外壁上设置的图像采集设备获取用户的人脸图像,并对用户的人脸图像进行识别,在确认用户的身份信息后允许用户打开智能货柜的柜门。然后,用户开启智能货柜的柜门,并在取走想要购买的商品后关闭智能货柜的柜门(或者未取走任何商品关闭智能货柜的柜门)。在检测到用户关闭智能货柜的柜门后,鱼眼摄像头采集智能货柜内各层中全部商品的鱼眼图像。通过对本次关闭智能货柜的柜门后各层中全部商品的鱼眼图像以及与本次相邻的上一次关闭智能货柜的柜门后各层中全部商品的鱼眼图像进行处理,确定出用户本次购买的商品的商品类型、商品数量,并基于用户本次购买的商品的商品类型、商品数量进行自动结算。

或者,在检测到用户开启智能货柜的柜门后,鱼眼摄像头采集一次智能货柜内各层中全部商品的鱼眼图像,并在检测到用户关闭智能货柜的柜门后,鱼眼摄像头采集一次智能货柜内各层中全部商品的鱼眼图像。通过对开启智能货柜的柜门后各层中全部商品的鱼眼图像以及关闭智能货柜的柜门后各层中全部商品的鱼眼图像进行处理,确定出用户本次购买的商品的商品类型、商品数量,并基于用户本次购买的商品的商品类型、商品数量进行自动结算。

需要说明的是,在用户通过使用终端设备以扫描二维码的方式进入到与智能货柜对应的应用程序时,倘若用户未注册过,应用程序会提醒用户进行注册,并在注册成功后基于用户的授权获取用户的身份信息。其中,应用程序会提醒用户进行绑定免密支付等,以便用户在购买商品后,智能货柜基于用户本次购买的商品的商品类型、商品数量进行自动结算。

Step2:对集智能货柜内每层的鱼眼图像进行目标检测,确定出每层的鱼眼图像中各商品的中心坐标、商品类型。

将每层的鱼眼图像输入到多目标检测模型进行识别,识别出鱼眼图像中各商品的边界框、商品类型,并对鱼眼图像中各商品的边界框进行处理,确定出鱼眼图像中各商品的中心坐标。其中,多目标检测模型是基于鱼眼图像样本集对预设的目标检测模型进行训练确定的。

此外,在基于鱼眼图像样本集对预设的目标检测模型进行训练确定多目标检测模型时。首先获取大量的鱼眼图像样本集,该鱼眼图像样本可以为同一商品形成的鱼眼图像,或者可以为两种不同商品形成的鱼眼图像,或者也可以为两种以上不同商品混合形成的鱼眼图像等,本发明实施例对此并不作限定。再对鱼眼图像样本集中的各商品的商品类型进行标注,得到标注后的鱼眼图像样本集,并对标注后的鱼眼图像样本集进行向量化处理,得到标注后的鱼眼图像样本集对应的样本向量集。之后将标注后的鱼眼图像样本集对应的样本向量集输入到预设的目标检测模型进行训练,得到多目标检测模型。其中,预设的目标检测模型可以为YOLOv3(You only look once version 3,目标检测算法)、YOLACT(You OnlyLook At CoefficienTs,目标检测算法)、Mask R-CNN(Mask Region-ConvolutionalNeural Network,目标检测算法)等。

Step3:对鱼眼图像中各商品的中心坐标进行正畸处理,得到正畸后的各商品的中心坐标。

由于鱼眼图像是鱼眼镜头拍摄的,因此会存在一定的畸变,尤其是越靠近边缘的货道越是呈现“弧形”,所以并不能非常简单地通过各商品的中心坐标信息,判断各商品是否属于同一货道。但是,如果能够对鱼眼图像进行正畸,纠正接近边缘处的圆弧形畸变,并将其改为呈直的货道排布,这样就能够比较容易划分货道。

此外,对鱼眼图像进行正畸可以有多种方法,比如有“双经度正畸法”、“经纬映射正畸法”、“投影旋转矩阵正畸法”等。其中,按正畸后的图像是否可视化,可分为“虚”、“实”两类。“实”方法是通过正畸算法将原鱼眼图像转化为可视化的正图像;“虚”方法是通过正畸算法只矫正原鱼眼图像中各商品被识别处的坐标,不转化为可视化的正图像。本发明实施例采用“虚”方法对原鱼眼图像中各商品的检测框的坐标进行矫正,即“先检测后正畸”,这种方法比直接对原鱼眼图像进行正畸要快的多,因为“实”方法对整个鱼眼图像进行正畸就需要计算整个鱼眼图像上的每个像素点正畸的位置,而采用“虚”方法只需要对检测出来的各商品的检测框的中心坐标进行计算即可,如此可以减少鱼眼图像正畸所耗费的计算量,从而可以提高数据处理的效率。

具体地,本发明实施例采用“双经度正畸法”对多目标检测模型在鱼眼图像上检测到的各商品的bbox(bounding-box,边界框)的中心坐标进行矫正。根据鱼眼摄像头拍摄到的鱼眼图像,能够观察到成像区域是一个大致完整的圆心,要对鱼眼图像中各商品的边界框的中心坐标进行正畸,就需要首先找到成像区域的圆心中心坐标(即鱼眼镜头的光学中心),因为该圆心中心坐标并不一定在鱼眼图像的集合中心点,因此需要去定位寻找。本发明实施例使用霍夫圆变换对鱼眼图像进行处理,确定鱼眼图像的中心坐标(即鱼眼镜头的光学中心)和球面半径,建立如图3a所示的球面模型。其中,使用霍夫圆变换可以找到鱼眼图像上各种能够形成接近圆形的轨迹,即,根据成像区域的大致半径、大致中心位置进行筛选,即可找到所需要的圆,进而找到圆心。此外,如果有时候找不到合适的圆,也可以通过灰度图的像素点分数,划分一个阈值将成像区域(分数一般较高)的中心点获取到。

在找到成像区域的圆心中心坐标后,即可根据球面模型建立鱼眼图像上的像素点与球面上对应点之间的关系(比如图3b所示的点p

通过正交投影,球面上的点p(x,y,z)在鱼眼图像上映射为点p

其中,(x

由于x

当投影模型为半球面时,以2R作为正畸后图像的行列像素数目,横向经度与纵向经度均为0~π。因此球面上的点p的双经度坐标(α,β)与正畸后的图像上点p′的坐标(u,v)关系为:

根据球面上的坐标点p与鱼眼图像点p

基于上述公式,即可从鱼眼图像上的点p

如此,基于上述方法,即可计算出智能货柜中每层的鱼眼图像中各商品的检测框的正畸中心坐标。

Step4:对正畸后的各商品的中心坐标进行聚类处理,确定出鱼眼图像中各商品所属的货道。

示例性地,在实际业务场景中,除相似商品外,多目标检测模型对其它商品分类的准确率都很高。因此,为了减少多目标检测模型在难分类商品间的误判,最大限度地提高商品类别分类的准确率,本发明实施例制定了3条业务规则,即:一条货道只能放同一类商品;一层只有M条货道;一条货道最多放L个商品等。基于这些规则,在多目标检测模型对鱼眼图像中各商品进行检测分类完成后,先对正畸后的各商品的检测框的中心坐标进行聚类处理。再将聚类在同一条货道上同属HardGroup集(难分类商品组,或称为相似商品组)的所有检测框的类别,按照这些检测框中类别占比多的类进行修正。例如,在正畸后的各商品的中心坐标进行聚类完成后,某条货道上同属难分类商品组的检测框有5个。其中,“零度可乐”有3个,“青岛王子1”有2个,那么就将原“青岛王子1”的检测框的类别修正为“零度可乐”。如此,就可以通过中心坐标聚类,纠正多目标检测模型对难分类商品组的分类错误,从而可以进一步提高智能货柜中各商品的类别的识别准确率。

对于中心坐标聚类,首先是按照从小到大的顺序对智能货柜中任一层的鱼眼图像中各商品的检测框的正畸中心坐标进行排序,得到排序后的各检测框的正畸中心坐标。再按照各检测框的正畸中心坐标的顺序,依次遍历各检测框的正畸中心坐标,在遍历到当前检测框A的正畸中心坐标时,计算出当前检测框A的正畸中心坐标的横坐标与前一个检测框B的正畸中心坐标的横坐标之差的绝对值。若该绝对值小于预设的间距阈值INTERVAL_THRESHOLD,则将当前检测框A聚类到检测框B所在的货道上。若该绝对值大于等于预设的间距阈值,则新增一个与检测框B所在的货道相邻的货道,并将当前检测框A设置为该新增货道上的第一个检测框。其中,在该绝对值小于预设的间距阈值且检测框B所在的货道上的商品个数大于该货道所能容纳的最大商品数L,则新增一个与检测框B所在的货道相邻的货道,并将当前检测框A设置为该新增货道上的第一个检测框。

需要说明的是,在本发明的另一种实施方式中,可以在遍历到当前检测框A的正畸中心坐标时,计算出当前检测框A的正畸中心坐标与前一个检测框B的正畸中心坐标之间的距离值。通过将该距离值与设置的间距阈值进行比较,来确定当前检测框A是否属于检测框B所在的货道。若该距离值小于设置的间距阈值,则将当前检测框A聚类到检测框B所在的货道上。若该距离值大于等于设置的间距阈值,则新增一个与检测框B所在的货道相邻的货道,并将当前检测框A设置为该新增货道上的第一个检测框。其中,在该距离值小于设置的间距阈值且检测框B所在的货道上的商品个数大于该货道所能容纳的最大商品数L,则新增一个与检测框B所在的货道相邻的货道,并将当前检测框A设置为该新增货道上的第一个检测框。

此外,如果新增货道后,导致智能货柜中该层货架的货道数大于该层货架能容纳的最大货道数M,就将该层货架的各货道中间距最小的两条货道合并聚类为一条货道。基于上述方法进行循环,直至遍历完鱼眼图像中的所有检测框为止。在遍历完鱼眼图像中的所有检测框后,检查中心坐标聚类所确定的各个货道,对各个货道中同属HardGroup集(难分类商品组,或称为相似商品组)的所有检测框进行分类计数。针对每个货道,将该货道中类别占比少的检测框的类别修正为类别占比多的检测框的类别。需要说明的是,在对各个货道中同属HardGroup集的所有检测框进行分类计数后,针对任一货道,倘若该货道中出现类别占比相同的检测框的类别,则可以将该货道中位置最好的检测框的类别确定为该货道所对应的检测框类别(即商品类型)。

其中,中心坐标聚类的算法为:

Input:img(一张鱼眼图像),bbox_arr[N,6](鱼眼图像中每个bbox的中心坐标,类别,置信度),HardGroup集(相似商品组),INTERVAL_THRESHOLD(间距阈值),L(每个货道能容纳的最大物品数),M(每层货架能容纳的最大货道数)。

Output:bbox_arr_Undisort[N,6](聚类后的bbox,主要对属于难分类集的样本进行类别调整)。

示例性地,下面以智能货柜中程序处理鱼眼图像的方式对本发明实施例中货柜内商品的识别的实施过程进行描述。

步骤1:确定正畸后的各商品的检测框的中心坐标。

racks=[],intervals=[],labels=[],uc=[],vc=[],i=0,j=0,k=0,(0≤i≤M-1,0≤j≤L-1),racks[i][j]=bbox_arr[0,0:3],labels[i]=bbox_arr[0,4]。

基于中心坐标正畸法对各检测框的中心坐标进行正畸处理,得到正畸后的各检测框的中心坐标,即(uc[i][j],vc[i][j])。例如,uc_last_bbox=uc[i][j],vc_last_bbox=vc[i][j],rack_last_bbox=i,item_last_bbox=j。

步骤2:聚类正畸后的各检测框的中心坐标。

从0~N-1遍历所有bbox,获取第k个bbox的中心坐标以及类别。

计算第k个bbox的中心坐标的横坐标与前一个bbox(last_bbox)的中心坐标的横坐标的差值,即计算intervals[i]=|uc_k-uc[i][j]|。

if intervals[i]

将第k个bbox聚类到racks[i]轨道,并用此bbox的信息更新last_bbox。

j++。

if j>L:

新增一个货道racks[i+1],并将第k个bbox记为新货道的racks[i+1][0]。

else:

新增一个货道racks[i+1],并将第k个bbox记为新货道的racks[i+1][0]。

if len(racks)>M:

将intervals[i]中间距最小的两个货道进行合并。

步骤3:检测框的类别修正。

检测中心坐标聚类所确定的所有货道,对每个货道上同属HardGroup集的检测框进行分类计数,将类别占比少的检测框的类别bbox_arr[k][5]修正为类别占比多的检测框的类别。

步骤4:返回bbox_arr。

需要说明的是,由于不同的货道所设置的商品类型各不相同,且同一货道上的各商品属于同一类型。因此,本发明还可以通过一种实施方式来实现对货柜内商品的商品类型的准确识别。即,可以通过设置有不同颜色的隔板来隔离开不同的货道,也就是说,通过不同颜色的隔板来区分不同的货道。比如,假设有三个货道,第一个货道和第二个货道之间设置红色的隔板,第二个货道和第三个货道之间设置蓝色的隔板。且第一个货道放置可乐,第二个货道放置橙汁,第三个放置椰奶。基于此,即可区分出不同的货道,以便根据不同的货道确定出该货道所对应的商品类型,从而可以识别出该货道内各商品的商品类型。或者,可以通过在各货道的上方悬挂有不同颜色的标志物来隔离开货道,也就是说,通过不同颜色的标志物来区分不同的货道。比如,假设有三个货道,第一个货道上方悬挂红色的标志物,第二个货道上方悬挂蓝色的标志物,第三个货道上方悬挂绿色的标志物。且第一个货道放置可乐,第二个货道放置橙汁,第三个放置椰奶。基于此,即可区分出不同的货道,以便根据不同的货道确定出该货道所对应的商品类型,从而可以识别出该货道内各商品的商品类型。当然,也可以采用其它方式来区分不同的货道,本发明实施例对此并不作限定。基于此,即可通过不同颜色的隔板或不同颜色的标志物,准确地识别出不同的货道,也就可以识别出该货道内各商品的商品类型。

上述实施例表明,获取针对任一货架层的鱼眼图像,并对鱼眼图像进行目标检测,确定出鱼眼图像中各商品的商品类型和各商品所在的货道。再统计位于同一货道且属于同一商品类型的商品的数量,并将数量最多的商品类型确定为同一货道上的各商品的商品类型。其中,货柜内设置有至少一层货架,每层货架的顶部设置有图像采集装置,每层货架设置有多个货道,同一货道上的各商品属于同一类型。由于每层货架设置有多个货道,不同的货道所设置的商品类型各不相同,且同一货道上的各商品属于同一类型,因此在统计位于同一货道且属于同一商品类型的商品的数量后,可以将同一货道上数量最多的商品类型确定为该货道上各商品的商品类型,如此可以及时准确地识别出货柜内各商品的商品类型,从而可以提高识别货柜内商品的商品类型的效率、准确性,并可以提高货柜内商品的多样性和商品上货组合的灵活性,进而可以解决现有技术中存在由于同一个柜子(或柜子的同一层)中不上架相似的商品导致货柜内商品的多样性和商品上货组合的灵活性降低的问题。

基于相同的技术构思,图4示例性的示出了本发明实施例提供的一种货柜内商品的识别装置,该装置可以执行货柜内商品的识别方法的流程。其中,所述货柜内设置有至少一层货架,每层货架的顶部设置有图像采集装置,每层货架设置有多个货道,同一货道上的各商品属于同一类型。

如图4所示,该装置包括:

获取单元401,用于获取针对任一货架层的鱼眼图像;

处理单元402,用于对所述鱼眼图像进行目标检测,确定出所述鱼眼图像中各商品的商品类型和各商品所在的货道;统计位于同一货道且属于同一商品类型的商品的数量;将数量最多的商品类型确定为所述同一货道上的各商品的商品类型。

可选地,所述处理单元402具体用于:

对所述鱼眼图像进行目标检测,确定出所述鱼眼图像中各商品的初始位置信息;

对所述各商品的初始位置信息进行修正,得到所述各商品的修正位置信息;

根据所述各商品的修正位置信息,确定所述各商品所属的货道。

可选地,所述处理单元402具体用于:

根据所述各商品的修正位置信息中第一方向的坐标值,对所述各商品进行排序;

将第i个商品在所述第一方向的第一坐标值,与第i-1个商品在所述第一方向的第二坐标值进行比较,确定所述第i个商品是否属于所述第i-1个商品所在货道;

其中,所述第i-1个商品在排序上位于所述第i个商品之前。

可选地,所述处理单元402具体用于:

若确定所述第一坐标值与所述第二坐标值的差值小于间距阈值,则确定所述第i个商品属于所述第i-1个商品所在货道。

可选地,所述处理单元402还用于:

在与第i-1个商品在所述第一方向的第二坐标值进行比较之前,确定所述第i-1个商品所在货道的各商品的数量小于预设的货道商品数。

可选地,所述处理单元402还用于:

若所述第一坐标值与所述第二坐标值的差值不小于所述间距阈值,则确定所述第i个商品不属于所述第i-1个商品所在货道,并新增一个与所述第i-1个商品所在货道相邻的货道,并将所述第i个商品确定为新增货道中位于起始位置的商品。

可选地,所述处理单元402还用于:

若确定货架层中的货道数量大于所述货架层所能容纳的货道数量阈值,则将货道间距最小的两个货道合并为一个货道。

可选地,所述处理单元402具体用于:

对所述鱼眼图像进行霍夫圆变换处理,得到所述鱼眼图像的中心位置和球面半径;

根据所述中心位置和所述球面半径,建立球面模型;

基于所述球面模型,确定所述鱼眼图像中各商品的初始位置在球面上的球面坐标点;

按照双经度坐标转换规则,对所述鱼眼图像中各商品的球面坐标点进行转换处理,得到所述鱼眼图像中各商品的双经度坐标;

基于坐标矫正规则,对所述鱼眼图像中各商品的双经度坐标进行处理,得到所述各商品的修正位置信息。

基于相同的技术构思,本发明实施例还提供了一种计算设备,如图5所示,包括至少一个处理器501,以及与至少一个处理器连接的存储器502,本发明实施例中不限定处理器501与存储器502之间的具体连接介质,图5中处理器501和存储器502之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。

在本发明实施例中,存储器502存储有可被至少一个处理器501执行的指令,至少一个处理器501通过执行存储器502存储的指令,可以执行前述的货柜内商品的识别方法中所包括的步骤。

其中,处理器501是计算设备的控制中心,可以利用各种接口和线路连接计算设备的各个部分,通过运行或执行存储在存储器502内的指令以及调用存储在存储器502内的数据,从而实现数据处理。可选的,处理器501可包括一个或多个处理单元,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理下发指令。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。在一些实施例中,处理器501和存储器502可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。

处理器501可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合货柜内商品的识别实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器502可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器502是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器502还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

需要说明的是,上述计算设备可以设置在货柜内,该货柜内的图像采集装置在采集好图像后,可以将采集好的图像发送给处理器501进行识别和正畸处理,以便可以及时准确地识别出货柜内各商品的商品类型。或者,该货柜内也存在处理装置(包括处理器和存储器等),但是该处理器只负责对采集好的图像进行简单的预处理(比如对采集好的图像进行封装处理或者对采集好的图像进行格式转换处理等),并不对采集好的图像进行识别和正畸处理,而是通过和远程的服务器进行交互来完成对采集好的图像进行识别和正畸处理。即,该处理器对采集好的图像进行简单的预处理后,将预处理好的图像发送给远程的数据中心的服务器,在远程的数据中心的服务器中对图像进行识别和正畸处理,以便可以及时准确地识别出货柜内各商品的商品类型。

基于相同的技术构思,本发明实施例还提供了一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述货柜内商品的识别方法的步骤。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

相关技术
  • 一种货柜内商品的识别方法及装置
  • 一种集装箱小商品专用推货板装置
技术分类

06120112985443