一种超市智能售货系统技术方案

技术编号:21548589 阅读:24 留言:0更新日期:2019-07-06 21:51
本发明专利技术公开了一种超市智能售货系统,针对于传统结账过程中人工扫描商品过于耗时的问题进行改进,将商品录入过程提前到购物者取货时,从而去掉结账时扫描商品的时间消耗,大幅度的提高了结账速度,提高了顾客的购物体验。本发明专利技术利用模式识别算法对购物者选货的过程中的动作进行识别并计数,对客户取放商品时商品的图片进行识别来获取商品种类,对顾客进行人脸识别并在人脸识别不理想的时候使用人体图像识别来获取顾客的身份,对顾客的异常行为识别来判断是否有偷盗行为。本系统能够在不降低顾客购物体验的前提下实现自动统计功能。本发明专利技术涉及顾客的购物记账过程而不改变超市的原有组织结构,从而便于与现有超市组织架构无缝对接。

A Supermarket Intelligent Sales System

【技术实现步骤摘要】
一种超市智能售货系统
本专利技术涉及计算机视觉监控
,目标检测、目标跟踪和模式识别领域,具体涉及用于对基于监控摄像头的货架前的个体进行检测、跟踪和动作识别的领域。
技术介绍
传统超市模式下结账是由人工扫描商品进行,这种模式非常容易造成拥堵,导致大量购物者排队在结账处,整个结账过程受到收银处的空间限制以及收银员的人数限制无法大幅度增加,因此由于传统收银模式的限制,结账拥堵无法避免;现有的顾客通过自主扫描商品结账的方式虽然能够将扫描商品的时间减少,但是出门仍然需要人工检查商品,仍然会造成拥堵。分析拥堵的原因,最耗时的工序是录入商品的过程,因此将商品录入过程提前到购物者取货时,能够将最耗时的过程提前并且能够并行操作,从而大幅度的提高了结账速度,提高了顾客的购物体验。本专利技术所提出的系统就是利用监控摄像头在购物者选货的过程中进行识别并计数,从而提高了结账速度,通过对顾客的取货和放回商品的过程进行识别来进行取货数量的加减,通过在客户取放商品时对商品进行识别来得到商品类型,通过对顾客的异常行为识别来判断是否有偷盗行为,从而在不降低顾客在选货过程的购物体验的前提下实现自动统计功能。本专利技术涉及顾客的购物记账过程而不改变超市的原有组织结构,从而便于与现有超市组织架构无缝对接。
技术实现思路
本专利技术所要解决的技术问题是为了克服传统超市模式下结账速度慢的情况,提出了一种超市智能售货系统。使用监控摄像头来完成顾客购物行为的识别以及商品的识别。本专利技术解决其技术问题所采用的技术方案是:一种超市智能售货系统,基于固定在超市内以及货架上的监控摄像头所摄的视频图像作为输入。包括图像预处理模块,目标检测模块,购物动作识别模块,产品识别模块,个体识别模块,识别结果处理模块。所述的图像预处理模块对监控摄像头所摄的视频图像进行预处理,首先对输入的图像中可能含的噪声进行去噪处理,然后对去噪后的图像进行光照补偿,然后对光照补偿后的图像进行图像增强,最后将图像增强后的数据传递给目标检测模块;所述的目标检测模块,对接收到的图像进行目标检测,分别检测出当前视频图像中的人体整体区域、人脸面部区域、手部区域和产品区域,然后将手部区域和产品区域发送给购物动作识别模块,把人体图像区域和人脸面部区域发送给个体识别模块,把产品区域传递给产品识别模块;所述的购物动作识别模块对接收到的手部区域信息进行静态动作识别,找到抓握视频的起始帧,然后持续的对动作进行识别直到找到放下物品的动作作为结束帧,然后对视频使用动态动作识别分类器进行识别,识别出当前动作是取出物品、放回物品、取出又放回、已取出物品未放回或者是可疑偷窃。然后将识别结果发送给识别结果处理模块,将只有抓握动作的视频和只有放下动作的视频发送给识别结果处理模块;所述的产品识别模块对接收到的产品区域的视频进行识别,识别出当前被移动的是哪一种产品,然后将识别结果发送给识别结果处理模块,产品识别模块也可以随时增加或删除某个产品;所述的个体识别模块对接收到的人脸区域和人体区域进行识别,结合人脸区域和人体区域信息,用于识别出当前个体是整个超市内的哪一位个体,然后将识别结果发送给识别结果处理模块;所述的识别结果处理模块对接收到的识别结果进行整合,根据个体识别模块传递来的顾客的ID确定当前购物信息对应的顾客,根据产品识别模块传递来的识别结果来确定当前顾客的购物动作对应的产品,根据购物动作识别模块传递来的识别结果来确定当前购物动作是否对购物车进行修改。从而得到当前顾客的购物清单。对购物动作识别模块识别的可疑偷窃行为发出警报。所述的图像预处理模块,其方法是:在初始化阶段该模块不工作;在检测过程中:第一步,对监控摄像头所摄的监控图像进行均值去噪,从而得到去噪后的监控图像;第二步,对去噪后的监控图像进行光照补偿,从而得到光照补偿后的图像;第三步,将光照补偿后的图像进行图像增强,将图像增强后的数据传递给目标检测模块。所述的监控摄像头所摄的监控图像进行均值去噪,其方法是:设监控摄像头所摄的监控图像为Xsrc,因为Xsrc为彩色RGB图像,因此存在Xsrc-R,Xsrc-G,Xsrc-B三个分量,对于每一个分量Xsrc′,分别进行如下操作:首先设置一个3×3维的窗口,考虑该图像Xsrc′的每个像素点Xsrc′(i,j),以该点为中心点的3×3维矩阵所对应的像素值分别为[Xsrc′(i-1,j-1),Xsrc′(i-1,j),Xsrc′(i-1,j+1),Xsrc′(i,j-1),Xsrc′(i,j),Xsrc′(i,j+1),Xsrc′(i+1,j-1),Xsrc′(i+1,j),Xsrc′(j+1,j+1)]进行从大到小排列,取其排在中间的值为去噪后图像Xsrc″在像素(i,j)所对应滤波后值赋值给Xsrc″(i,j);对于Xsrc′的边界点,会出现其3×3维的窗口所对应的某些像素点不存在的情况,那么只需计算落在窗口内存在的像素点的中间值即可,若窗口内为偶数个点,将排在中间两个像素值的平均值作为该像素点去噪后的像素值赋值给Xsrc″(i,j),从而,新的图像矩阵Xsrc″即为Xsrc在当前RGB分量的去噪后的图像矩阵,对于Xsrc-R,Xsrc-G,Xsrc-B在三个分量分别进行去噪操作后,将得到的Xsrc-R″,Xsrc-G″,Xsrc-B″分量,将这三个新的分量整合成一张新的彩色图像XDen即为去噪后所得的图像。所述的对去噪后的监控图像进行光照补偿,设去噪后的监控图像XDen,因为XDen为彩色RGB图像,因此XDen存在RGB三个分量,对于每一个分量XDen′,分别进行光照补偿,然后将得到的Xcpst′整合得到彩色RBG图像Xcpst,Xcpst即为XDen光照补偿后的图像,对每一个分量XDen′分别进行光照补偿的步骤为:第一步,设XDen′为m行n列,构造XDen′sum和NumDen为同样m行n列的矩阵,初始值均为0,步长窗口大小为l,其中函数min(m,n)表示取m和n的最小值,表示取整数部分,sqrt(l)表示l的平方根,若l<1则l=1;第二步,设XDen左上角坐标为(1,1),从坐标(1,1)开始,根据窗口大小为l和步长s确定每一个候选框,该候选框为[(a,b),(a+l,b+l)]所围成的区域,对于XDen′在候选框区域内所对应的图像矩阵进行直方图均衡化,得到候选区域[(a,b),(a+l,b+l)]的均衡化后的图像矩阵XDen″,然后XDen′sum对应的[(a,b),(a+l,b+l)]区域的每一个元素计算XDen′sum(a+iXsum,b+jXsum)=XDen′sum(a+iXsum,b+jXsum)+XDen″(iXsum,jXsum),其中(iXsum,jXsum)为整数且1≤iXsum≤l,1≤jXsum≤l,并将NumDen对应的[(a,b),(a+l,b+l)]区域内的每一个元素加1;最后,计算其中(iXsumNum,jXsumNum)为XDen对应的每一个点,从而得到Xcpst即为对当前分量XDen′进行光照补偿。所述的根据窗口大小为l和步长s确定每一个候选框,其步骤为:设监控图像为m行n列,(a,b)为选定的区域的左上角坐标,(a+l,b+l)为选定区域的右下角坐标,该区域由[(a,本文档来自技高网...

【技术保护点】
1.一种超市智能售货系统,其特征在于,基于固定在超市内以及货架上的监控摄像头所摄的视频图像作为输入;由如下6个功能模块构成:图像预处理模块,目标检测模块,购物动作识别模块,产品识别模块,个体识别模块,识别结果处理模块;这6个功能模块各自的实现方法如下:图像预处理模块对监控摄像头所摄的视频图像进行预处理,首先对输入的图像中可能含的噪声进行去噪处理,然后对去噪后的图像进行光照补偿,然后对光照补偿后的图像进行图像增强,最后将图像增强后的数据传递给目标检测模块;目标检测模块对接收到的图像进行目标检测,分别检测出当前视频图像中的人体整体区域、人脸面部区域、手部区域和产品区域,然后将手部区域和产品区域发送给购物动作识别模块,把人体图像区域和人脸面部区域发送给个体识别模块,把产品区域传递给产品识别模块;购物动作识别模块对接收到的手部区域信息进行静态动作识别,找到抓握视频的起始帧,然后持续的对动作进行识别直到找到放下物品的动作作为结束帧,然后对视频使用动态动作识别分类器进行识别,识别出当前动作是取出物品、放回物品、取出又放回、已取出物品未放回或者是可疑偷窃;然后将识别结果发送给识别结果处理模块,将只有抓握动作的视频和只有放下动作的视频发送给识别结果处理模块;产品识别模块对接收到的产品区域的视频进行识别,识别出当前被移动的是哪一种产品,然后将识别结果发送给识别结果处理模块,产品识别模块也可以随时增加或删除某个产品;个体识别模块对接收到的人脸区域和人体区域进行识别,结合人脸区域和人体区域信息,用于识别出当前个体是整个超市内的哪一位个体,然后将识别结果发送给识别结果处理模块;识别结果处理模块对接收到的识别结果进行整合,根据个体识别模块传递来的顾客的ID确定当前购物信息对应的顾客,根据产品识别模块传递来的识别结果来确定当前顾客的购物动作对应的产品,根据购物动作识别模块传递来的识别结果来确定当前购物动作是否对购物车进行修改;从而得到当前顾客的购物清单;对购物动作识别模块识别的可疑偷窃行为发出警报。...

【技术特征摘要】
1.一种超市智能售货系统,其特征在于,基于固定在超市内以及货架上的监控摄像头所摄的视频图像作为输入;由如下6个功能模块构成:图像预处理模块,目标检测模块,购物动作识别模块,产品识别模块,个体识别模块,识别结果处理模块;这6个功能模块各自的实现方法如下:图像预处理模块对监控摄像头所摄的视频图像进行预处理,首先对输入的图像中可能含的噪声进行去噪处理,然后对去噪后的图像进行光照补偿,然后对光照补偿后的图像进行图像增强,最后将图像增强后的数据传递给目标检测模块;目标检测模块对接收到的图像进行目标检测,分别检测出当前视频图像中的人体整体区域、人脸面部区域、手部区域和产品区域,然后将手部区域和产品区域发送给购物动作识别模块,把人体图像区域和人脸面部区域发送给个体识别模块,把产品区域传递给产品识别模块;购物动作识别模块对接收到的手部区域信息进行静态动作识别,找到抓握视频的起始帧,然后持续的对动作进行识别直到找到放下物品的动作作为结束帧,然后对视频使用动态动作识别分类器进行识别,识别出当前动作是取出物品、放回物品、取出又放回、已取出物品未放回或者是可疑偷窃;然后将识别结果发送给识别结果处理模块,将只有抓握动作的视频和只有放下动作的视频发送给识别结果处理模块;产品识别模块对接收到的产品区域的视频进行识别,识别出当前被移动的是哪一种产品,然后将识别结果发送给识别结果处理模块,产品识别模块也可以随时增加或删除某个产品;个体识别模块对接收到的人脸区域和人体区域进行识别,结合人脸区域和人体区域信息,用于识别出当前个体是整个超市内的哪一位个体,然后将识别结果发送给识别结果处理模块;识别结果处理模块对接收到的识别结果进行整合,根据个体识别模块传递来的顾客的ID确定当前购物信息对应的顾客,根据产品识别模块传递来的识别结果来确定当前顾客的购物动作对应的产品,根据购物动作识别模块传递来的识别结果来确定当前购物动作是否对购物车进行修改;从而得到当前顾客的购物清单;对购物动作识别模块识别的可疑偷窃行为发出警报。2.根据权利要求1所述的一种超市智能售货系统,其特征在于所述的图像预处理模块的具体实现方法为:在初始化阶段该模块不工作;在检测过程中:第一步,对监控摄像头所摄的监控图像进行均值去噪,从而得到去噪后的监控图像;第二步,对去噪后的监控图像进行光照补偿,从而得到光照补偿后的图像;第三步,将光照补偿后的图像进行图像增强,将图像增强后的数据传递给目标检测模块;所述的监控摄像头所摄的监控图像进行均值去噪,其方法是:设监控摄像头所摄的监控图像为Xsrc,因为Xsrc为彩色RGB图像,因此存在Xsrc-R,Xsrc-G,Xsrc-B三个分量,对于每一个分量Xsrc′,分别进行如下操作:首先设置一个3×3维的窗口,考虑该图像Xsrc′的每个像素点Xsrc′(i,j),以该点为中心点的3×3维矩阵所对应的像素值分别为[Xsrc′(i-1,j-1),Xsrc′(i-1,j),Xsrc′(i-1,j+1),Xsrc′(i,j-1),Xsrc′(i,j),Xsrc′(i,j+1),Xsrc′(i+1,j-1),Xsrc′(i+1,j),Xsrc′(j+1,j+1)]进行从大到小排列,取其排在中间的值为去噪后图像Xsrc″在像素(i,j)所对应滤波后值赋值给Xsrc″(i,j);对于Xsrc′的边界点,会出现其3×3维的窗口所对应的某些像素点不存在的情况,那么只需计算落在窗口内存在的像素点的中间值即可,若窗口内为偶数个点,将排在中间两个像素值的平均值作为该像素点去噪后的像素值赋值给Xsrc″(i,j),从而,新的图像矩阵Xsrc″即为Xsrc在当前RGB分量的去噪后的图像矩阵,对于Xsrc-R,Xsrc-G,Xsrc-B在三个分量分别进行去噪操作后,将得到的Xsrc-R″,Xsrc-G″,Xsrc-B″分量,将这三个新的分量整合成一张新的彩色图像XDen即为去噪后所得的图像;所述的对去噪后的监控图像进行光照补偿,设去噪后的监控图像XDen,因为XDen为彩色RGB图像,因此XDen存在RGB三个分量,对于每一个分量XDen′,分别进行光照补偿,然后将得到的Xcpst′整合得到彩色RBG图像Xcpst,Xcpst即为XDen光照补偿后的图像,对每一个分量XDen′分别进行光照补偿的步骤为:第一步,设XDen′为m行n列,构造XDen′sum和NumDen为同样m行n列的矩阵,初始值均为0,步长窗口大小为l,其中函数min(m,n)表示取m和n的最小值,表示取整数部分,sqrt(l)表示l的平方根,若l<1则l=1;第二步,设XDen左上角坐标为(1,1),从坐标(1,1)开始,根据窗口大小为l和步长s确定每一个候选框,该候选框为[(a,b),(a+l,b+l)]所围成的区域,对于XDen′在候选框区域内所对应的图像矩阵进行直方图均衡化,得到候选区域[(a,b),(a+l,b+l)]的均衡化后的图像矩阵XDen″,然后XDen′sum对应的[(a,b),(a+l,b+l)]区域的每一个元素计算XDen′sum(a+iXsum,b+jXsum)=XDen′sum(a+iXsum,b+jXsum)+XDen″(iXsum,jXsum),其中(iXsum,jXsum)为整数且1≤iXsum≤l,1≤jXsum≤l,并将NumDen对应的[(a,b),(a+l,b+l)]区域内的每一个元素加1;最后,计算其中(iXsumNum,jXsumNum)为XDen对应的每一个点,从而得到Xcpst即为对当前分量XDen′进行光照补偿;所述的根据窗口大小为l和步长s确定每一个候选框,其步骤为:设监控图像为m行n列,(a,b)为选定的区域的左上角坐标,(a+l,b+l)为选定区域的右下角坐标,该区域由[(a,b),(a+l,b+l)]表示,(a,b)的初始值为(1,1);当a+l≤m时:b=1;当b+l≤n时:选定的区域为[(a,b),(a+l,b+l)];b=b+s;内层循环结束;a=a+s;外层循环结束;上述过程中,每次选定的区域[(a,b),(a+l,b+l)]均为候选框;所述的对于XDen′在候选框区域内所对应的图像矩阵进行直方图均衡化,设候选框区域为[(a,b),(a+l,b+l)]所围成的区域,XDen″即为XDen′在[(a,b),(a+l,b+l)]区域内的图像信息,其步骤为:第一步,构造向量I,I(iI)为XDen″中像素值等于iI的个数,0≤iI≤255;第二步,计算向量第三步,对于XDen″上的每一个点(iXDen,jXDen),其像素值为XDen″(iXDen,jXDen),计算X″Den(iXDen,jXDen)=I′(X″Den(iXDen,jXDen));待XDen″图像内的所有像素点值都计算并更改后直方图均衡化过程结束,XDen″内保存的即为直方图均衡化的结果;所述的将光照补偿后的图像进行图像增强,设光照补偿后的图像为Xcpst,其对应的RGB通道分别为XcpstR,XcpstG,XcpstB,对Xcpst图像增强后得到的图像为Xenh;对其进行图像增强的步骤为:第一步,对于Xcpst的所有分量XcpstR,XcpstG,XcpstB计算其按指定尺度进行模糊后的图像;第二步,构造矩阵LXenhR,LXenhG,LXenhB为与XcpstR相同维度的矩阵,对于图像Xcpst的RGB通道中的R通道,计算LXenhR(i,j)=log(XcpstR(i,j))-LXcpstR(i,j),(i,j)的取值范围为图像矩阵中所有的点,对于图像Xcpst的RGB通道中的G通道和B通道采用与R通道同样的算法得到LXenhG和LXenhR;第三步,对于图像Xcpst的RGB通道中的R通道,计算LXenhR中所有点取值的均值MeanR和均方差VarR(注意是均方差),计算MinR=MeanR-2×VarR和MaxR=MeanR+2×VarR,然后计算XenhR(i,j)=Fix((LXcpstR(i,j)-MinR)/(MaxR-MinR)×255),其中Fix表示取整数部分,若取值<0则赋值为0,取值>255则赋值为255;对于RGB通道中的G通道和B通道采用与R通道同样的算法得到XenhG和XenhB,将分别属于RGB通道的XenhR、XenhG、XenhB整合成一张彩色图像Xenh;所述的对于Xcpst的所有分量XcpstR,XcpstG,XcpstB计算其按指定尺度进行模糊后的图像,对于RGB通道中的R通道XcpstR,其步骤为:第一步,定义高斯函数G(x,y,σ)=k×exp(-(x2+y2)/σ2),σ为尺度参数,k=1/∫∫G(x,y)dxdy,则对于XcpstR的每一个点XcpstR(i,j)计算,其中表示卷积运算,对于距离边界低于尺度σ的点,只计算XcpstR与G(x,y,σ)对应部分的卷积,Fix()表示取整数部分,若取值<0则赋值为0,取值>255则赋值为255;对于RGB通道中的G通道和B通道采用与R通道同样的算法更新XcpstG和XcpstG。3.根据权利要求1所述的一种超市智能售货系统,其特征在于所述的目标检测模块的具体实现方法为:在初始化过程中,使用带有已标定人体图像区域、人脸面部区域、手部区域和产品区域的图像对目标检测算法进行参数初始化;在检测过程中,接收图像预处理模块所传递来的图像,然后对其进行处理,对每一帧图像使用目标检测算法进行目标检测,得到当前图像的人体图像区域、人脸面部区域、手部区域和产品区域,然后将手部区域和产品区域发送给购物动作识别模块,把人体图像区域和人脸面部区域发送给个体识别模块,把产品区域传递给产品识别模块;所述的使用带有已标定人体图像区域、人脸面部区域、手部区域和产品区域的图像对目标检测算法进行参数初始化,其步骤为:第一步,构造特征抽取深度网络;第二步,构造区域选择网络,第三步,根据所述的构造特征抽取深度网络中所使用的数据库中的每一张图像X和对应的人工标定的每个人体区域然后通过ROI层,其输入为图像X和区域输出为7×7×512维度的;第三步,构建坐标精炼网络;所述的构造特征抽取深度网络,该网络为深度学习网络结构,其网络结构为:第一层:卷积层,输入为768×1024×3,输出为768×1024×64,通道数channels=64;第二层:卷积层,输入为768×1024×64,输出为768×1024×64,通道数channels=64;第三层:池化层,输入第一层输出768×1024×64与第三层输出768×1024×64在第三个维度上相连接,输出为384×512×128;第四层:卷积层,输入为384×512×128,输出为384×512×128,通道数channels=128;第五层:卷积层,输入为384×512×128,输出为384×512×128,通道数channels=128;第六层:池化层,输入第四层输出384×512×128与第五层384×512×128在第三个维度上相连接,输出为192×256×256;第七层:卷积层,输入为192×256×256,输出为192×256×256,通道数channels=256;第八层:卷积层,输入为192×256×256,输出为192×256×256,通道数channels=256;第九层:卷积层,输入为192×256×256,输出为192×256×256,通道数channels=256;第十层:池化层,输入为第七层输出192×256×256与第九层192×256×256在第三个维度上相连接,输出为96×128×512;第十一层:卷积层,输入为96×128×512,输出为96×128×512,通道数channels=512;第十二层:卷积层,输入为96×128×512,输出为96×128×512,通道数channels=512;第十三层:卷积层,输入为96×128×512,输出为96×128×512,通道数channels=512;第十四层:池化层,输入为第十一层输出96×128×512与第十三层96×128×512在第三个维度上相连接,输出为48×64×1024;第十五层:卷积层,输入为48×64×1024,输出为48×64×512,通道数channels=512;第十六层:卷积层,输入为48×64×512,输出为48×64×512,通道数channels=512;第十七层:卷积层,输入为48×64×512,输出为48×64×512,通道数channels=512;第十八层:池化层,输入为第十五层输出48×64×512与第十七层48×64×512在第三个维度上相连接,输出为48×64×1024;第十九层:卷积层,输入为48×64×1024,输出为48×64×256,通道数channels=256;第二十层:池化层,输入为48×64×256,输出为24×62×256;第二十一层:卷积层,输入为24×32×1024,输出为24×32×256,通道数channels=256;第二十二层:池化层,输入为24×32×256,输出为12×16×256;第二十三层:卷积层,输入为12×16×256,输出为12×16×128,通道数channels=128;第二十四层:池化层,输入为12×16×128,输出为6×8×128;第二十五层:全连接层,首先将输入的6×8×128维度的数据展开成6144维度的向量,然后输入进全连接层,输出向量长度为768,激活函数为relu激活函数;第二十六层:全连接层,输入向量长度为768,输出向量长度为96,激活函数为relu激活函数;第二十七层:全连接层,输入向量长度为96,输出向量长度为2,激活函数为soft-max激活函数;所有卷积层的参数为卷积核kernel大小=3,步长stride=(1,1),激活函数为relu激活函数;所有池化层均为最大池化层,其参数为池化区间大小kernel_size=2,步长stride=(2,2);设设该深度网络为Fconv27,对于一幅彩色图像X,经过该深度网络所得到的特征图集合用Fconv27(X)表示,该网络的评价函数为对(Fconv27(X)-y)计算其交叉熵损失函数,收敛方向为取最小值,y输入对应的分类;数据库为在自然界采集的包含路人及非路人的图像,每张图像为768×1024维度的彩色图像,按照图像中是否包含行人分成两类,迭代次数为2000次;在训练结束后,取第一层到第十七层为特征抽取深度网络Fconv,对于一幅彩色图像X,经过该深度网络所得到的输出用Fconv(X)表示;所述的构造区域选择网络,接收Fconv深度网络提取出512个48×64特征图集合Fconv(X),然后第一步经过卷积层得到Conv1(Fconv(X)),该卷积层的参数为:卷积核kernel大小=1,步长stride=(1,1),输入为48×64×512,输出为48×64×512,通道数channels=512;然后将Conv1(Fconv(X))分别输入到两个卷积层(Conv2-1和Conv2-2),Conv2-1的结构为:输入为48×64×512,输出为48×64×18,通道数channels=18,该层得到的输出为Conv2-1(Conv1(Fconv(X))),再对该输出使用激活函数softmax得到softmax(Conv2-1(Conv1(Fconv(X))));Conv2-2的结构为:输入为48×64×512,输出为48×64×36,通道数channels=36;该网络的损失函数有两个:第一个误差函数loss1为对Wshad-cls⊙(Conv2-1(Conv1(Fconv(X)))-Wcls(X))计算softmax误差,第二个误差函数loss2为对Wshad-reg(X)⊙(Conv2-1(Conv1(Fconv(X)))-Wreg(X))计算smoothL1误差,区域选择网络的损失函数=loss1/sum(Wcls(X))+loss2/sum(Wcls(X)),sum(·)表示矩阵所有元素之和,收敛方向为取最小值,Wcls(X)和Wreg(X)分别为数据库图像X对应的正负样本信息,⊙表示矩阵按照对应位相乘,Wshad-cls(X)和Wshad-reg(X)为掩码,其作用为选择Wshad(X)中权值为1的部分进行训练,从而避免正负样本数量差距过大,每次迭代时重新生成Wshad-cls(X)和Wshad-reg(X),算法迭代1000次;所述的构造特征抽取深度网络中所使用的数据库,对于数据库中的每一张图像,第一步:人工标定每个人体图像区域、人脸面部区域、手部区域和产品区域,设其在输入图像的中心坐标为(abas_tr,bbas_tr),中心坐标在纵向距离上下边框的距离为lbas_tr,中心坐标在横向距离左右边框的距离为wbas_tr,则其对应于Conv1的位置为中心坐标为半长为半宽为表示取整数部分;第二步:随机生成正负样本;所述的随机生成正负样本,其方法为:第一步,构造9个区域框,第二步,对于数据库的每一张图像Xtr,设Wcls为48×64×18维度,Wreg为48×64×36维度,所有初始值均为0,对Wcls和Wreg进行填充;所述的构造9个区域框,这9个区域框分别为:Ro1(yRo,yRo)=(xRo,yRo,64,64),Ro2(xRo,yRo)=(xRo,yRo,45,90),Ro3(xRo,yRo)=(xRo,yRo,90,45),Ro4(xRo,yRo)=(xRo,yRo,128,128),Ro5(xRo,yRo)=(xRo,yRo,90,180),Ro6(xRo,yRo)=(xRo,yRo,180,90),Ro7(xRo,yRo)=(xRo,yRo,256,256),Ro8(xRo,yRo)=(xRo,yRo,360,180),Ro9(xRo,yRo)=(xRo,yRo,180,360),对于每一个区域块,Roi(xRo,yRo)表示对于第i个区域框,当前区域框的中心坐标(xRo,yRo),第三位表示中心点距离上下边框的像素距离,第四位表示中心点距离左右边框的像素距离,i的取值从1到9;所述的对Wcls和Wreg进行填充,其方法为:对于每一个人工标定的人体区间,设其在输入图像的中心坐标为(abas_tr,bbas_tr),中心坐标在纵向距离上下边框的距离为lbas_tr,中心坐标在横向距离左右边框的距离为wbas_tr,则其对应于Conv1的位置为中心坐标为半长为半宽为对于左上角右下角坐标所围成的区间内的每个点(xCtr,yCtr):对于i取值从1到9:对于点(xCtr,yCtr),其在数据库图像的映射区间为左上角点(16(xCtr-1)+1,16(yCtr-1)+1)右下角点(16xCtr,16yCtr)所围成的16×16区间,对于该区间的每一个点(xOtr,yOtr):计算(xOtr,yOtr)所对应区域Roi(xOtr,yOtr)与当前人工标定的区间的重合率;选择当前16×16区间内重合率最高的点(xIoUMax,yIoUMax),若重合率>0.7,则Wcls(xCtr,yCtr,2i-1)=1,Wcls(xCtr,yCtr,2i)=0,该样本为正样本,Wreg(xCtr,yCtr,4i-3)=(xOtr-16xCtr+8)/8,Wreg(xCtr,yCtr,4i-2)=(yOtr-16yCtr+8)/8,Wreg(xCtr,yCtr,4i-2)=Down1(lbas_tr/Roi的第三位),Wreg(xCtr,yCtr,4i)=Down1(wbas_tr/Roi的第四位),Down1(·)表示若值大于1则取值为1;若重合率<0.3,则Wcls(xCtr,yCtr,2i-1)=0,Wcls(xCtr,yCtr,2i)=1;否则Wcls(xCtr,yCtr,2i-1)=-1,Wcls(xCtr,yCtr,2i)=-1;若当前人工标定的人体区域没有重合率>0.6的Roi(xOtr,yOtr),则选择重合率最高的Roi(xOtr,yOtr)对Wcls和Wreg赋值,赋值方法与重合率>0.7的赋值方法相同;所述的计算(xOtr,yOtr)所对应区域Roi(xOtr,yOtr)与当前人工标定的区间的重合率,其方法为:设人工标定的人体区间在输入图像的中心坐标为(abas_tr,bbas_tr),中心坐标在纵向距离上下边框的距离为lbas_tr,中心坐标在横向距离左右边框的距离为wbas_tr,设Roi(xOtr,yOtr)的第三位为lOtr,第四位为wOtr,若满足|xOtr-abas_tr|≤lOtr+lbas_tr-1并且|yOtr-bbas_tr|≤wOtr+wbas_tr-1,说明存在重合区域,重合区域=(lOtr+Ibas_tr-1-|xOtr-abas_tr|)×(wOtr+wbas_tr-1-|yOtr-bbas_tr|),否则重合区域=0;计算全部区域=(2lOtr-1)×(2wOtr-1)+(2abas_tr-1)×(2wbas_tr-1)-重合区域;从而得到重合率=重合区域/全部区域,|·|表示取绝对值;所述的Wshad-cls(X)和Wshad-reg(X),其构造方法为:对于该图像X,其对应的正负样本信息为Wcls(X)和Wreg(X),第一步,构造Wshad-cls(X)与和Wshad-reg(X),Wshad-cls(X)与Wcls(X)维度相同,Wshad-reg(X)与Wreg(X)维度相同;第二步,记录所有正样本的信息,对于i=1到9,若Wcls(X)(a,b,2i-1)=1,则Wshad-cls(X)(a,b,2i-1)=1,Wshad-cls(X)(a,b,2i)=1,Wshad-reg(X)(a,b,4i-3)=1,Wshad-reg(X)(a,b,4i-2)=1,Wshad-reg(X)(a,b,4i-1)=1,Wshad-reg(X)(a,b,4i)=1,正样本一共选择了sum(Wshad-cls(X))个,sum(·)表示对矩阵的所有元素求和,若sum(Wshad-cls(X))>256,随机保留256个正样本;第三步,随机选择负样本,随机选择(a,b,i),若Wcls(X)(a,b,2i-1)=1,则Wshad-cls(X)(a,b,2i-1)=1,Wshad-cls(X)(a,b,2i)=1,Wshad-reg(X)(a,b,4i-3)=1,Wshad-reg(X)(a,b,4i-2)=1,Wshad-reg(X)(a,b,4i-1)=1,Wshad-reg(X)(a,b,4i)=1,若已选中的负样本数量为256-sum(Wshad-cls(X))个,或者虽然负样本数量不足256-sum(Wshad-cls(X))个但是在20次生成随机数(a,b,i)内都无法得到负样本,则算法结束;所述的ROI层,其输入为图像X和区域其方法为:对于图像X通过特征抽取深度网络Fconv所得到的输出Fconv(X)的维度为48×64×512,对于每一个48×64矩阵VROI_I的信息(一共512个矩阵),提取VROI_I矩阵中左上角右下角所围成的区域,表示取整数部分;输出为roiI(X)维度为7×7,则步长对于iROI=1:到7:对于jROI=1到7:构造区间roiI(X)(iROI,jROI)=区间内最大点的值;当512个48×64矩阵全部处理结束后,将输出拼接得到7×7×512维度的输出参数表示对于图像X,在区域框范围内的ROI;所述的构建坐标精炼网络,其方法为:第一步,扩展数据库:扩展方法为对于数据库中的每一张图像X和对应的人工标定的每个区域其对应的ROI为若当前区间为人体图像区域则BClass=[1,0,0,0,0],BBox=[0,0,0,0],若当前区间为人脸面部区域则BClass=[0,1,0,0,0],BBox=[0,0,0,0],若当前区间为手部区域则BClass=[0,0,1,0,0],BBox=[0,0,0,0],若当前区间为产品区域则BClass=[0,0,0,1,0],BBox=[0,0,0,0];随机生成取值在-1到1之间随机数arand,brand,lrand,wrand,从而得到新的区间表示取整数部分,该区间的BBox=[arand,brand,lrand,wrand],若新的区间与的重合率>0.7则BClass=当前区域的BClass,若新的区间与的重合率<0.3,则BClass=[0,0,0,0,1],二者均不满足,则不赋值;每个区间最多生成10个正样本区域,设生成Num1个正样本区域,则生成Num1+1个负样本区域,若负样本区域不够Num1+1个,则扩大arand,brand,lrand,wrand的范围,直到找到足够多的负样本数为止;第二步,构建坐标精炼网路:对于数据库中的每一张图像X和对应的人工标定的每个人体区域其对应的ROI为将将7×7×512维度的ROI展开成25088维向量,然后经过两个全连接层Fc2,得到输出Fc2(ROI),然后将Fc2(ROI)分别通过分类层FClass和区间微调层FBBox,得到输出FClass(Fc2(ROI))和FBBox(Fc2(ROI)),分类层FClass为全连接层,其输入向量长度为512,输出向量长度为5,区间微调层FBBox为全连接层,其输入向量长度为512,输出向量长度为4;该网络的损失函数有两个:第一个误差函数loss1为对FClass(Fc2(ROI))-BClass计算softmax误差,第二个误差函数loss2为对(FBBox(Fc2(ROI))-BBox)计算欧氏距离误差,则该精炼网络的整体损失函数=loss1+loss2,算法迭代过程为:首先迭代1000次收敛误差函数loss2,然后迭代1000次收敛整体损失函数;所述的两个全连接层Fc2,其结构为:第一层:全连接层,输入向量长度为25088,输出向量长度为4096,激活函数为relu激活函数;第二层:全连接层,输入向量长度为4096,输出向量长度为512,激活函数为relu激活函数;所述的对每一帧图像使用目标检测算法进行目标检测,得到当前图像的人体图像区域、人脸面部区域、手部区域和产品区域,其步骤为:第一步,将输入图像Xcpst分割成768×1024维度的子图;第二步,对于每一个子图Xs:第2.1步,使用在初始化时构造的特征抽取深度网络Fconv进行变换,得到512个特征子图集合Fconv(Xs);第2.2步,对Fconv(Xs)使用区域选择网络中第一层Conv1、第二层Conv2-1+softmax激活函数和Conv2-2进变换,分别得到输出softmax(Conv2-1(Conv1(Fconv(Xs))))和Conv2-2(Conv1(Fconv(Xs))),然后根据输出值得到该区间内的所有的初步候选区间;第2.3步,对于当前帧图像的所有子图的所有的初步候选区间:第2.3.1步,根据其当前候选区域的得分大小进行选取,选取最大的50个初步候选区间作为候选区域;第2.3.2步,调整候选区间集合中所有的越界候选区间,然后剔除掉候选区间中重叠的框,从而得到最终候选区间;第2.3.3步,将子图Xs和每一个最终候选区间输入到ROI层,得到对应的ROI输出,设当前的最终候选区间为(aBB(1),bBB(2),lBB(3),wBB(4)),然后计算FBBox(Fc2(ROI))得到四位输出(OutBB(1),OutBB(2),OutBB(3),OutBB(4))从而得到更新后的坐标(aBB(1)+8×OutBB(1),bBB(2)+8×OutBB(2),lBB(3)+8×OutBB(3),wBB(4)+8×OutBB(4));然后计算FClass(Fc2(ROI))得到输出,若输出第一位最大则当前区间为人体图像区域,若输出第二位最大则当前区间为人脸面部区域,若输出第三位最大则当前区间为手部区域,若输出第四位最大则当前区间为产品区域,若输出第五位最大则当前区间为负样本区域并删除该最终候选区间;第三步,更新所有子图的精炼后的最终候选区间的坐标,更新的方法为设当前候选区域的坐标为(TLx,TLy,RBx,RBy),其对应的子图的左上角坐标为(Seasub,Sebsub),更新后的坐标为(TLx+Seasub-1,TLy+Sebsub-1,RBx,RBy);所述的将输入图像Xcpst分割成768×1024维度的子图,其步骤为:设分割的步长为384和512,设窗口大小为m行n列,(asub,bsub)为选定的区域的左上角坐标,(a,b)的初始值为(1,1);当asub<m时:bsub=1;当bsub<n时:选定的区域为[(asub,bsub),(asub+384,bsub+512)],将输入图像Xcpst上该区间所对应的图像区域的信息复制到新的子图中,并附带左上角坐标(asub,bsub)作为位置信息;若选定区域超出输入图像Xcpst区间,则将超出范围内的像素点对应的RGB像素值均赋值为0;bsub=bsub+512;内层循环结束;asub=asub+384;外层循环结束;所述的根据输出值得到该区间内的所有的初步候选区间,其方法为:第一步:对于softmax(Conv2-1(Conv1(Fconv(Xs))))其输出为48×64×18,对于Conv2-2(Conv1(Fconv(Xs))),其输出为48×64×36,对于48×64维空间上的任何一点(x,y),softmax(Conv2-1(Conv1(Fconv(Xs))))(x,y)为18维向量II,Conv2-2(Conv1(Fconv(Xs)))(x,y)为36维向量IIII,若II(2i-1)>II(2i),对于i取值从1到9,lOtr为Roi(xOtr,yOtr)的第三位,wOtr为Roi(xOtr,yOtr)的第四位,则初步候选区间为[II(2i-1),(8×IIII(4i-3)+x,8×IIII(4i-2)+y,lOtr×IIII(4i-1),wOtr×IIII(4i))],其中第一位II(2i-1)表示当前候选区域的得分,第二位(8×IIII(4i-3)+x,8×IIII(4i-2)+y,IIII(4i-1),IIII(4i))表示当前候选区间的中心点为(8×IIII(4i-3)+x,8×IIII(4i-2)+y),候选框的半长半宽分别为lOtr×IIII(4i-1)和wOtr×IIII(4i));所述的调整候选区间集合中所有的越界候选区间,其方法为:设监控图像为m行n列,对于每一个候选区间,设其[(ach,bch)],候选框的半长半宽分别为lch和wch,若ach+lch>m,则然后更新其ach=a′ch,lch=l′ch;若bch+wch>n,则然后更新其bch=b′ch,wch=w′ch;所述的剔除掉候选区间中重叠的框,其步骤为:若候选区间集合不为空:从候选区间集合中取出得分最大的候选区间iout:计算候选区间iout与候选区间集合中的每一个候选区间ic的重合率,若重合率>0.7,则从候选区间集合删除候选区间ic;将候选区间iout放入输出候选区间集合;当候选区间集合为空时,输出候选区间集合内所含的候选区间即为剔除掉候选区间中重叠的框后所得到的候选区间集合;所述的计算候选区间iout与候选区间集合中的每一个候选区间ic的重合率,其方法为:设候选区间ic的坐标区间为中心点[(aic,bic)],候选框的半长半宽分别为lic和wic,候选区间ic的坐标区间为中心点[(aiout,bicout)],候选框的半长半宽分别为liout和wiout;计算xA=max(aic,aiout);yA=max(bic,biout);xB=min(lic,liout),yB=min(wic,wiout);若满足|aic-aiout|≤lic+liout-1并且|bic-biout|≤wic+wiout-1,说明存在重合区域,重合区域=(lic+liout-1-|aic-aiout|)×(wic+wiout-1-|bic-biout|),否则重合区域=0;计算全部区域=(2lic-1)×(2wic-1)+(2liout-1)×(2wiout-1)-重合区域;从而得到重合率=重合区域/全部区域。4.根据权利要求1所述的一种超市智能售货系统,其特征在于所述的购物动作识别模块的具体实现方法为:在初始化时,首先使用标准的手部动作图像对静态动作识别分类器进行初始化,从而使静态动作识别分类器能够识别出手的抓握、放下动作;然后使用手部动作视频对动态动作识别分类器进行初始化,从而使动态动作识别分类器能够识别出手的取出物品、放回物品、取出又放回、已取出物品未放回或者是可疑偷窃;在检测过程中:第一步,对接收到的每一个手部区域信息使用静态动作识别分类器进行识别,识别方法为:设每一次输入的图像为Handp1,输出为StaticN(Handp1)为3位向量,若第一位最大则识别为抓握,若第二位最大则识别为放下,若第三位最大则识别为其他;第二步,当识别到抓握动作后,对当前抓握动作对应区域进行目标跟踪,若当前手部区域的下一帧跟踪框所对应的使用静态动作识别分类器的识别结果为放下动作时,目标跟踪结束,将当前得到的从识别到抓握动作为视频开始、识别到放下动作为视频结束,从而得到手部动作的连续视频,将该视频标记为完整视频;若跟踪过程中跟踪丢失,则将当前得到的从识别到抓握动作为视频开始、从跟踪丢失前的图像作为视频结束,从而得到只有抓握动作的视频,则将该视频标记为只有抓握动作的视频;当识别到放下动作,并且该动作不在目标跟踪所得到的图像中,说明该动作的抓握动作丢失,则以当前图像对应的手部区域为视频结束,使用目标跟踪方法从当前帧开始向前进行跟踪,直到跟踪丢失,则丢失帧的下一帧作为视频的起始帧,将该视频标记为只有放下动作的视频;第三步,将第二步所得到的完整视频使用动态动作识别分类器进行识别,识别方法为:设每一次输入的图像为Handv1,输出为DynamicN(Handv1)为5位向量,若第一位最大则识别为取出物品,若第二位最大则识别为放回物品,若第三位最大则识别为取出又放回,若第四位最大则识别为已取出物品未放回,若第五位最大则识别为可疑偷窃的动作,然后将该识别结果发送给识别结果处理模块,将只有抓握动作的视频和只有放下动作的视频发送给识别结果处理模块,将完整视频和只有抓握动作的视频发送给产品识别模块和个体识别模块;所述的使用标准的手部动作图像对静态动作识别分类器进行初始化,其方法为:第一步,整理视频数据:首先,选取大量的人在超市里购物的视频,这些视频包含取出物品、放回物品、取出又放回、已取出物品未放回和可疑偷窃的动作;人工对每一段视频片段进行截取,以人手碰到商品为起始帧,以人手离开商品为结束帧,然后对于视频的每一帧使用目标检测模块提取其手部区域,然后将手部区域的每一帧图像缩放为256×256的彩色图像,将缩放后视频放入手部动作视频集合,并标记该视频为取出物品、放回物品、取出又放回、已取出物品未放回和可疑偷窃的动作中的一种;对于类别为取出物品、放回物品、取出又放回、已取出物品未放回的每一个视频,将该视频的第一帧放入手部动作图像集合并标记为抓握动作,将该视频的最后一帧放入手部动作图像集合并标记为放下动作,从该视频除第一帧和最后一针外随机取一帧放入手部动作图像集合...

【专利技术属性】
技术研发人员:刘昱昊
申请(专利权)人:上海海事大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1