鱼眼图像的商品检测方法、装置、计算机设备和存储介质与流程

文档序号:16899557发布日期:2019-02-19 17:50阅读:251来源:国知局
鱼眼图像的商品检测方法、装置、计算机设备和存储介质与流程

本发明涉及检测技术领域,特别是涉及一种基于鱼眼图像的商品检测方法、装置、计算机设备和存储介质。



背景技术:

近些年随着深度学习技术的火热发展,商品检测算法也从基于手工特征的传统算法转向了基于深度神经网络的检测技术。在实际工业应用中,由于计算复杂度的限制,更多的使用单步(one-stage)的检测算法。

然而,目前的商品检测算法一般是用来处理分析常规摄像头的自然图像,针对特定鱼眼镜头的检测分析很少。同时,固定场景的商品检测问题的特定属性也未被考虑。

由于鱼眼镜头的特殊性质,在不同成像位置,相同商品在不同视角会呈现不同特点。由于模型大小,计算量的限制,使用通用单步(one-stage)目标检测算法(例如ssd,yolov2/v3)会存在计算复杂度高、检测精度低等问题。



技术实现要素:

本发明实施例提供一种鱼眼图像的商品检测方法,旨在解决以上问题。

本发明实施例是这样实现的,一种鱼眼图像的商品检测方法,所述方法包括:

采集商品图像数据,并对所述商品图像数据进行筛选,建立商品训练图像集;

对所述商品训练图像集进行数据扩充处理;

在检测网络中,去除yolov2/v3检测层目标代价项;

根据所述yolov2/v3检测层特点,对每个网格位置设置不同的位置和种类卷积系数,分类部分使用s型函数代替归一化指数函数,检测网络对s型函数输出非最大项做抑制处理;

基于当前鱼眼图像的不同位置,选择不同候选框子集,其中,同一候选框只有一个商品;

基于异常状态代价函数,在所述鱼眼图像输出状态异常时,位置和种类项置零,优化异常状态项,并完成商品检测。

本发明实施例还提供了一种鱼眼图像的商品检测装置,所述装置包括:

训练集建立单元,用于采集商品图像数据,并对所述商品图像数据进行筛选,建立商品训练图像集;

数据扩充单元,用于对所述商品训练图像集进行数据扩充处理;

第一处理单元,用于在检测网络中,去除yolov2/v3检测层目标代价项;

第二处理单元,用于根据所述yolov2/v3检测层特点,对每个网格位置设置不同的位置和种类卷积系数,分类部分使用s型函数代替归一化指数函数,检测网络对s型函数输出非最大项做抑制处理;

选择单元,用于基于当前鱼眼图像的不同位置,选择不同候选框子集,其中,同一候选框只有一个商品;以及

优化单元,用于基于异常状态代价函数,在所述鱼眼图像输出状态异常时,位置和种类项置零,优化异常状态项,并完成商品检测。

本发明实施例还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述鱼眼图像的商品检测方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述鱼眼图像的商品检测方法的步骤。

本发明实施例中,通过采集商品图像数据,并对所述商品图像数据进行筛选,建立商品训练图像集,并对所述商品训练图像集进行数据扩充处理;在检测网络中,去除yolov2/v3检测层目标代价项;并根据所述yolov2/v3检测层特点,对每个网格位置设置不同的位置和种类卷积系数,分类部分使用s型函数代替归一化指数函数,检测网络对s型函数输出非最大项做抑制处理;基于异常状态代价函数,在所述鱼眼图像输出状态异常时,位置和种类项置零,优化异常状态项,进而对商品进行检测;本发明通过对商品检测框架的调整,使得商品检测性能和训练效率均有不同程度的提升,同时,所用算法计算简单、检测精度高,可广泛应用于使用鱼眼镜头进行机器视觉自动结算的智能零售柜。

附图说明

图1是本发明实施例提供的鱼眼图像的商品整体检测框架系统的示意图;

图2是本发明实施例提供的一种鱼眼图像的商品检测方法的实现流程图;

图3是本发明实施例提供的另一种鱼眼图像的商品检测方法的实现流程图;

图4是本发明实施例提供的又一种鱼眼图像的商品检测方法的实现流程图;

图5是本发明实施例提供的一种鱼眼图像的商品检测装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。

为了进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,根据如下实施例,对本发明实施例提供的鱼眼图像的商品检测方法进行详细说明。

本发明提供的鱼眼图像的商品检测方法,通过对商品训练图像集进行数据扩充处理;并在检测网络中,去除yolov2/v3检测层目标代价项,以及根据所述yolov2/v3检测层特点,对每个网格位置设置不同的位置和种类卷积系数,分类部分使用s型函数代替归一化指数函数,检测网络对s型函数输出非最大项做抑制处理等对商品;本发明通过对商品检测框架的调整,使得商品检测性能和训练效率均有不同程度的提升,可广泛应用于使用鱼眼镜头进行机器视觉自动结算的智能零售柜。

图1示出了本发明的鱼眼图像的商品整体检测框架系统结构,通过将给定检测图像通过主干结构,通过加入数个的检测层用作多尺度检测,并行的在池化层后加入两个不同的线性层用作异常状态判断和起雾判断;故而通过单一网络即可同时完成商品检测和状态判断两个功能。

图2示出了本发明实施例提供的一种鱼眼图像的商品检测方法的实现流程,详述如下:

在步骤s201中,采集商品图像数据,并对所述商品图像数据进行筛选,建立商品训练图像集。

在本发明实施例中,如图3所示,所述步骤s201,具体包括:

在步骤s301中,将包含商品列表且无相似互斥商品的图像作为正样本数据,并将不包括相似互斥商品的图像作为负样本数据,获得第一商品图像数据。

在本发明实施例中,正样本为含有需检测商品的实拍鱼眼图像,负样本为该鱼眼拍摄环境拍摄的其他不与当前商品集相似的商品图像;正负样本的涉及可以让神经网络更好的学习出当前需检测商品的更准确的实际特征描述。

在步骤s302中,对3d商品进行建模,模拟拍摄环境渲染生成虚拟图像,以获得第二商品图像数据。

在本发明实施例中,所述对3d商品进行建模,具体包括:对商品在3d数据采集仪中做扫描,重建出实际形状,再通过表面贴图,构建完整的商品3d模型。有了该3d模型和鱼眼镜头畸变参数,则可以虚拟生成该商品在柜子中鱼眼图像拍摄的图像。在商品姿态各异,拍摄数目相对受限时,可通过这些3d模型虚拟生成数据作为商品检测补充数据集使用,提供检测精度。

在步骤s303中,将典型目标检测训练集以及部分产生误检的筛选图像,作为第三商品图像数据。

在本发明实施例中,典型目标检测训练集(coco,openimage,widerface等)是用作常规通用目标检测算法评估的通用公开数据集,在此不再一一赘述。

在步骤s304中,对所述第一商品图像数据、第二商品图像数据、第三商品图像数据进行筛选,建立商品训练图像集。

在实际应用中,实际训练做数据载入时,上述三种数据按不同概率进行选择。载入是指在训练更新模型时,批量载入(load)数据用作神经网络参数更新。这些图像数据正向通过神经网络,然后通过反向回馈,通过这种机制,可以更新所有神经网络参数值;然而,一般训练图像数目会按照2:1:1比例组成,当训练图像远小于负样本自然图像时,会对训练图像重复多次以满足数据比例。

在步骤s202中,对所述商品训练图像集进行数据扩充处理。在本发明实施例中,如图4所示,所述步骤s202,具体包括:

在步骤s401中,对所述商品训练图像做平移、或旋转、或颜色扰动扩充处理。

在步骤s402中,对部分所述商品训练图像做轻量的模糊噪声处理。

在步骤s403中,对部分所述商品训练图像做轻量的扩散起雾模拟处理。

在步骤s404中,当外部环境过亮时,对部分所述商品训练图像做轻量的高光模拟处理。

在步骤s405中,对部分所述商品训练图像加入高颜色、模糊,或起雾处理,并加入异常标签。

在步骤s203中,在检测网络中,去除yolov2/v3检测层目标代价项。

在本发明实施例中,去除yolov2/v3[2]检测层目标(objectness)代价项,由于用此项判断所有商品的目标属性,在轻量级主干(backbone)结构中难度很大。因为计算量的限制,轻量级主干结构输出维数一般不高。要在这个维度评价一个区域是不是全部数百种待检测商品中的一种,一般很难简单给出。相对而言,仅仅判断是不是其中一种会简单很多。轻量级主干结构有mobilenetv1/v2,shufflenet等,一般计算量较小。

在本发明实施例中,在backbone结构中,图像会不停降采样,例如,14x14大小512维度,7x7大小1024维度。检测层(detectionlayer)可以是yolov2的单一层,即在backbone最后,也可能是yolov3多尺度提取2-3层(例如7x7位置接一个检测层,7x7,14x14特征合并后接一个检测层)。设置多层一般是由于目标大小差异较大,在网络跟前面一些加入检测层可以检出部分小目标。

在本发明实施例中,yolov2检测层会定义代价函数,例如框定位精度的损失(loss_xy),该位置是目标的损失(loss_objectness),和目标分类准确的损失(lossclass),可以参考ssd方案,去除了目标损失那一项;同时,分类损失用sigmoid代替softmax。

在步骤s204中,根据所述yolov2/v3检测层特点,对每个网格位置设置不同的位置和种类卷积系数,分类部分使用s型函数代替归一化指数函数,检测网络对s型函数输出非最大项做抑制处理。

在本发明实施例中,使用yolov2/v3的检测层特点,对每个网格(grid)位置有不同的位置(loc.)和种类(class)卷积系数,分类部分使用s型(sigmoid)函数代替归一化指数函数(softmax),由于假设同一候选框(anchor)只有一个商品,检测网络对sigmoid函数输出非最大项做抑制。

在实际应用中,假设主干层输出7x7x512,假设anchor_size=k,物品20种,检测层输出为7x7xkx(4+20),其中4为位置参数,20为种类参数。一般检测层卷积核为1x1,故而要学习一个(512x(kx(4+20))的矩阵的卷积参数。由于鱼眼图像中心和四周差异很大,故而,可以根据区域离图像中心不同,分成数个区域,每个区域优化一组不同的参数。

在实际应用中,softmax对各类概率和为1,s型输出均为[-1,1]的数。如上述例子,共有49xk个备选框,对每个框有一个各商品s型响应输出(20维向量),当假设商品互斥,可以选择响应值最高的商品类别作为该备选框输出,后续再对49xk空间位置不同的备选框根据空间位置做抑制。

进一步,基于焦点损失代价函数,对负样本数据进行平衡处理。使用焦点损失(focalloss)代价函数解决负样本数据不平衡问题,是一个通用正负样本不平衡解决方案,通过修改分类损失函数,降低简单易分损失实现,具体可参见现有技术。

在步骤s205中,基于当前鱼眼图像的不同位置,选择不同候选框子集,其中,同一候选框只有一个商品。

在本发明实施例中,基于位置与商品的anchor选择:对图像不同位置,选择不同anchor子集,对不同商品的不同形状特点,预设其对应可选择anchor列表;比如定义了16x16,32x32,64x64不同的候选框,可以根据商品大小性质,选择部分候选框;同时,在图像中央区域,选择更大的一些候选框子集(例如32x32和64x64),在边缘部分,选择更小的一部分候选框子集(例如16x16和32x32)。

在步骤s206中,基于异常状态代价函数,在所述鱼眼图像输出状态异常时,位置和种类项置零,优化异常状态项,并完成商品检测。

在本发明实施例中,加入异常状态代价函数,在图像输出状态异常时(例如摄像头遮挡,严重起雾,自动白平衡,自动对焦,自动曝光(3a)存在异常时,loc./class项置零,优化异常状态项;比如定义binaryloss函数(例如binarycrossentropy),使得估计状态(0,1)和实际状态(0或1)解决。

进一步,使用单周期学习率(onecyclelearningrate,clr)优化训练过程学习率选择,较新的通用优化选择策略,调整训练中调整更新学习率和momentum(动量)值。

本发明实施例提供的鱼眼图像的商品检测方法,通过采集商品图像数据,并对所述商品图像数据进行筛选,建立商品训练图像集,并对所述商品训练图像集进行数据扩充处理;在检测网络中,去除yolov2/v3检测层目标代价项;并根据所述yolov2/v3检测层特点,对每个网格位置设置不同的位置和种类卷积系数,分类部分使用s型函数代替归一化指数函数,检测网络对s型函数输出非最大项做抑制处理;基于异常状态代价函数,在所述鱼眼图像输出状态异常时,位置和种类项置零,优化异常状态项,进而对商品进行检测;本发明通过对商品检测框架的调整,使得商品检测性能和训练效率均有不同程度的提升,可广泛应用于使用鱼眼镜头进行机器视觉自动结算的智能零售柜。

下面以具体应用例对上述的方法做进一步说明。

具体发明实施实例:使用鱼眼摄像头监控的机器视觉的智能零售无人冰柜。

1.对冰柜的每层货价,使用鱼眼摄像头监控每层货架上的商品种类和数量;

2.用户身份验证后,开始开门购物。用户关门后,智能柜上锁,摄像头开始拍摄图片;

3.将每个摄像头拍摄的图片,进行智能目标检测并送进训练后可用作推断的神经网络模型中,得到检测结果;

4.将检测结果送入本发明整体检测框架系统中,检测所有商品,标出检测框,然后计数累加得到剩余商品总数。

5.对比上一次交易剩余商品的种类和数量,得出本次交易用户购物商品和数量。

本发明在对现有的商品检测框架修改后,可在计算量相对较低情况下,提升商品检测精度。

图5示出了本发明实施例提供的一种鱼眼图像的商品检测装置500,详述如下:

鱼眼图像的商品检测装置500包括:训练集建立单元501、数据扩充单元502、第一处理单元503、第二处理单元504、选择单元505以及优化单元506。

训练集建立单元501,用于采集商品图像数据,并对所述商品图像数据进行筛选,建立商品训练图像集。

在本发明实施例中,训练集建立单元501用于采集商品图像数据,并对所述商品图像数据进行筛选,建立商品训练图像集;其中,所述采集商品图像数据,并对所述商品图像数据进行筛选,建立商品训练图像集,具体包括:将包含商品列表且无相似互斥商品的图像作为正样本数据,并将不包括相似互斥商品的图像作为负样本数据,获得第一商品图像数据;对3d商品进行建模,模拟拍摄环境渲染生成虚拟图像,以获得第二商品图像数据;将典型目标检测训练集以及部分产生误检的筛选图像,作为第三商品图像数据;对所述第一商品图像数据、第二商品图像数据、第三商品图像数据进行筛选,建立商品训练图像集。

数据扩充单元502,用于对所述商品训练图像集进行数据扩充处理。

在本发明实施例中,数据扩充单元502用于对所述商品训练图像集进行数据扩充处理;其中,对所述商品训练图像集进行数据扩充处理,具体包括:对所述商品训练图像做平移、或旋转、或颜色扰动扩充处理;对部分所述商品训练图像做轻量的模糊噪声处理;对部分所述商品训练图像做轻量的扩散起雾模拟处理;当外部环境过亮时,对部分所述商品训练图像做轻量的高光模拟处理;部分所述商品训练图像加入高颜色、模糊,或起雾处理,并加入异常标签。

第一处理单元503,用于在检测网络中,去除yolov2/v3检测层目标代价项。

在本发明实施例中,第一处理单元503用于在检测网络中,去除yolov2/v3检测层目标代价项;其中,yolov2检测层会定义代价函数,例如框定位精度的损失(loss_xy),该位置是目标的损失(loss_objectness),和目标分类准确的损失(lossclass),可以参考ssd方案,去除了目标损失那一项;同时,分类损失用sigmoid代替softmax。

第二处理单元504,用于根据所述yolov2/v3检测层特点,对每个网格位置设置不同的位置和种类卷积系数,分类部分使用s型函数代替归一化指数函数,检测网络对s型函数输出非最大项做抑制处理。

在本发明实施例中,第二处理单元504用于根据所述yolov2/v3检测层特点,对每个网格位置设置不同的位置和种类卷积系数,分类部分使用s型函数代替归一化指数函数,检测网络对s型函数输出非最大项做抑制处理;使用yolov2/v3的检测层特点,对每个网格(grid)位置有不同的位置(loc.)和种类(class)卷积系数,分类部分使用s型(sigmoid)函数代替归一化指数函数(softmax),由于假设同一候选框(anchor)只有一个商品,检测网络对sigmoid函数输出非最大项做抑制。

选择单元505,用于基于当前鱼眼图像的不同位置,选择不同候选框子集,其中,同一候选框只有一个商品。

在本发明实施例中,选择单元505用于基于当前鱼眼图像的不同位置,选择不同候选框子集,其中,同一候选框只有一个商品;基于位置与商品的anchor选择:对图像不同位置,选择不同anchor子集,对不同商品的不同形状特点,预设其对应可选择anchor列表;比如定义了16x16,32x32,64x64不同的候选框,可以根据商品大小性质,选择部分候选框;同时,在图像中央区域,选择更大的一些候选框子集(例如32x32和64x64),在边缘部分,选择更小的一部分候选框子集(例如16x16和32x32)。

优化单元506,用于基于异常状态代价函数,在所述鱼眼图像输出状态异常时,位置和种类项置零,优化异常状态项,并完成商品检测。

在本发明实施例中,优化单元506用于基于异常状态代价函数,在所述鱼眼图像输出状态异常时,位置和种类项置零,优化异常状态项,并完成商品检测;加入异常状态代价函数,在图像输出状态异常时(例如摄像头遮挡,严重起雾,自动白平衡,自动对焦,自动曝光(3a)存在异常时,loc./class项置零,优化异常状态项;比如定义binaryloss函数(例如binarycrossentropy),使得估计状态(0,1)和实际状态(0或1)解决。

本发明实施例提供的鱼眼图像的商品检测装置,通过采集商品图像数据,并对所述商品图像数据进行筛选,建立商品训练图像集,并对所述商品训练图像集进行数据扩充处理;在检测网络中,去除yolov2/v3检测层目标代价项;并根据所述yolov2/v3检测层特点,对每个网格位置设置不同的位置和种类卷积系数,分类部分使用s型函数代替归一化指数函数,检测网络对s型函数输出非最大项做抑制处理;基于异常状态代价函数,在所述鱼眼图像输出状态异常时,位置和种类项置零,优化异常状态项,进而对商品进行检测;本发明通过对商品检测框架的调整,使得商品检测性能和训练效率均有不同程度的提升,可广泛应用于使用鱼眼镜头进行机器视觉自动结算的智能零售柜。

本发明实施例还提供了一种计算机设备,该计算机设备包括处理器,处理器用于执行存储器中存储的计算机程序时实现上述各个方法实施例提供的鱼眼图像的商品检测方法的步骤。

本发明的实施例还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被上述处理器执行时实现上述各个方法实施例提供的鱼眼图像的商品检测方法的步骤。

示例性的,计算机程序可以被分割成一个或多个模块,一个或者多个模块被存储在存储器中,并由处理器执行,以完成本发明。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机装置中的执行过程。例如,所述计算机程序可以被分割成上述各个方法实施例提供的鱼眼图像的商品检测方法的步骤。

本领域技术人员可以理解,上述计算机装置的描述仅仅是示例,并不构成对计算机装置的限定,可以包括比上述描述更多或更少的部件,或者组合某些部件,或者不同的部件,例如可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个用户终端的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

所述计算机设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1