基于图像识别技术的卷烟零售数据采集方法

2021-11-22 09:15梁冬陈智斌农英雄潘剑汪倍贝
中国烟草学报 2021年5期
关键词:关键点卷烟摄像头

梁冬,陈智斌,农英雄,潘剑,汪倍贝

广西中烟工业有限责任公司,南宁市西乡塘区北湖南路28号 530001

卷烟零售数据是烟草行业的重要信息,通过卷烟零售数据可以进行精准销量预测,有效指导营销和供应链协同工作,从而减少库存积压,降低成本,提升行业的经营和管理水平。目前卷烟零售数据采集方式主要是使用POS 零售终端、市场人员到店采集等人工采集方式,其中POS 零售终端存在问题是零售户未养成规范扫码的习惯,同时POS 零售终端软硬件的故障影响零售户使用,导致零售户的配合度不高[1];市场人员到店采集数据存在问题是人力成本较高,采集数据的覆盖率较低,且准确率难以保证。因此,人工采集数据的方法难以满足行业对更高质量数据的需求,亟需构建一种自动化采集卷烟零售数据的方法。

目前,自动化数据采集技术主要有RFID 技术、重力识别技术和图像识别技术等。其中RFID 技术在物流和仓储方面有较多应用,可提高物流和仓储的管理效率[2-4],但由于使用RFID 技术需要为每个卷烟商品贴上RFID 标签,这会较大增加零售户的工作量,实际操作中难以实施;重力识别技术是自动零售和无人零售自动化采集数据的重要方式,可通过商品的不同重量识别商品型号,但由于卷烟商品的重量需符合一定规格[5-6],导致大部分卷烟商品的重量相近,使用重力识别技术难以区分;图像识别技术近年来发展迅速,准确率有了较大提升[7-10],目前已广泛应用在零售、安防、教育和交通等行业,适用于卷烟零售场景的数据采集。因此,本文研究基于图像识别技术建立一种采集数据的方法,实现卷烟零售数据的自动化采集。

1 总体结构与图像采集

1.1 系统结构

数据采集系统结构主要分为本地端的采集设备和云端的存储数据库,其中本地端采集设备包含有RGBD 深度摄像头、高清彩色摄像头、本地计算平台等,云端存储数据库为MySQL 关系型数据库,系统结构如图1 所示。图中摄像头采用顶式安装方式,以减少对消费者的影响,将结算台上表面做为卷烟的识别区,当卷烟放到识别区时识别卷烟的牌号。RGBD深度摄像头是横向100°、纵向75°的主动式双目摄像头,用于采集消费者行为图像数据;高清彩色摄像头配备长焦镜头,用于采集清晰的卷烟图像数据;本地计算平台CPU 型号为i7-8700,并配备1080Ti GPU。工作时,本地计算平台通过以太网获取RGBD 深度摄像头和卷烟摄像头采集的图像,经过实时处理后输出结构化的卷烟零售数据,并将该卷烟零售数据上传到云端存储数据库完成数据存储。

图1 数据采集方法的系统结构图Fig. 1 System structure of data collection method

1.2 算法结构

数据采集由人体检测与跟踪算法、卷烟检测和识别算法、人体关键点检测算法和消费者行为识别算法四种算法协同构成,各算法的结构关系如图2 所示。

图2 数据采集方法的算法结构图Fig. 2 Algorithm structure of data collection method

(1)人体检测与跟踪算法:实时接收RGBD 深度摄像头的Depth 图像,基于深度图实现顶式视角下的人体检测和跟踪,输出人体ID 和头顶点的位置,稳定跟踪消费者在购买卷烟期间的行动轨迹。

(2)卷烟检测与识别算法:实时接收RGB 高清摄像头的图像,检测卷烟在图像中的位置和姿态,将卷烟局部图像截取出来后通过姿态信息完成卷烟的姿态矫正,并对矫正后的卷烟图片完成牌号识别,输出卷烟的位置和ID。由卷烟检测与识别算法的结果产生两种卷烟事件,分别是卷烟出现事件与卷烟消失事件。其中卷烟出现事件定义为上一次识别结果中没有出现该卷烟,而当前识别结果中出现该卷烟;卷烟消失事件定义为上一次识别结果中出现该卷烟,而当前识别结果中没有出现该卷烟。

(3)人体关键点检测算法:当发生卷烟事件时,接收RGBD 深度摄像头的RGB 图像,检测顶式视角下的人体关键点,将其中的人体的头顶点和人手点位置输出,作为消费者行为识别算法的数据输入。

(4)消费者行为识别算法:当事件发生时,先接收人体检测与跟踪算法和人体关键点检测算法输出的头顶点位置信息,通过空间位置关系实现两者的关联,关联后将人体关键点检测出来的人手位置信息绑定到对应的人体ID 上;其次,将人体ID 对应的人手位置和卷烟位置通过空间位置关系进行关联,如果存在关联关系,则认为是该人手发生了拿取或放回卷烟事件,将此时的人体ID、卷烟ID 和事件ID 作为结果输出。

1.3 图像采集

在多个卷烟零售店部署数据采集方法的本地端采集设备,使用RGBD 深度摄像头采集5000 张包含消费者进入时刻、到收银台时刻、拿取卷烟时刻等各时刻的RGBD 图像,采集完成后对图像进行人体关键点标注,形成人体关键点检测数据集Dp;使用高清彩色摄像头采集5000 张卷烟在售卖时的图像,包含有105 种来自于不同卷烟品牌的卷烟牌号,采集完成后对图像进行卷烟位置、姿态和牌号标注,形成卷烟数据集Dc;联合使用RGBD 深度摄像和高清彩色摄像头采集300 个消费者购买卷烟的视频片段,其中发生拿取行为451 次、放回行为143 次和购买行为308次,对消费者行为和卷烟牌号进行记录,形成消费者行为数据集Dv。

2 算法设计

2.1 基于深度图的实时人体跟踪算法

稳定的人体跟踪算法使消费者在购买卷烟期间保持同一个身份ID,是消费者连续行为识别的基础,整个算法包含图像预处理、人体头顶候选点查找、人体头顶候选点匹配三个部分。

2.1.1 图像预处理

令Id为从RGBD 摄像头获取的深度图像,将Id减去背景深度图Ib,生成前景深度图If。将If通过深度摄像头和地面的空间位置关系转换到地面坐标系下,生成的前景高度图Ih。为减少噪声,采用中值滤波对Ih进行滤波,生成去噪后的高度图Ihm。在高度图Ihm中过滤掉高于2.5 m 的物体,即把Ihm中高于2.5 m 的高度值设置为0,生成目标高度图Iho,到此完成图像预处理,其过程结果如图3 所示。

图3 图像预处理过程结果Fig. 3 Results of image preprocessing

2.1.2 人体头顶候选点查找

从目标高度图Iho中搜索局部极大值点,生成P1点集,搜索规则是该点的高度值大于8 邻域各点的高度值。对P1点集进行空间聚类,生成P2点集,聚类规则是计算P1点集中所有两点组合(p1i,p1j)的3维空间距离d1ij,将d1ij小 于阈值T1的点归为同一类,归类完成后选择该类中高度值最大的点代表这一类。以P2点集的每个点作为中心点,采用Meanshift 算法在Iho上生成P3点集。对P3点集进行空间聚类,生成P4点集,聚类规则与P2点集的聚类规则一致。对P4点集进行筛选,生成P5人体头顶候选点集,筛选规则是以P4点集的每个点作为中心点,在Iho上向水平和垂直方向延伸10 cm,满足至少在一个方向上高度落差不超过10 cm。各点集处理结果如图4 所示。

图4 点集处理结果Fig. 4 Results of point sets processing

2.1.3 人体头顶候选点匹配

2.2 人体关键点检测算法

人体在顶式视角下有7 个较为关键的点,分别是头顶点、左右肩点、左右肘点和左右手点,这些点做为消费者行为识别算法的信息输入,帮助完成消费者的行为识别。顶式视角下的7 点式人体关键点检测示例如图5 所示。

图5 人体关键点检测示例Fig. 5 Example of human keypoints detection

目前常用的关键点检测算法有Openpose[11]、Alphapose[12]、Densepose[13]和CenterNet[14]等,其中基于CenterNet 的人体关键点检测算法在保持精度的同时有更好的实时性,因此本研究基于CenterNet 设计顶式视角下的人体关键点检测模型。检测模型主干网络选择DLA34[15],在其基础上增加跳跃连接,同时把DLA34 在上采样阶段的卷积层替换成可变形卷积层,最后在输出的特征图上直接回归出人体中心点热力图、人体中心点局部偏差、人体包围框尺寸和人体关键点相对中心点偏移量四类信息。检测模型应用时,通过人体关键点相对中心点的偏移量即可确定人体关键点的位置,但由于其位置精度有限,为了进一步提升关键点的位置精度,检测模型在输出的特征图上增加了人体关键点热力图和人体关键点局部偏差两类信息,检测模型的结构如图6所示。检测模型应用时,先通过人体关键点相对中心点的偏移量确定人体的初始关键点,其次利用人体关键点热力图及其局部偏差可以确定精准的人体关键点,由于精准的人体关键点是独立的,没有和人体实例关联,因此需将精准人体关键点与其最近的初始人体关键点进行绑定。绑定时,精准人体关键点应位于人体包围框内。绑定完成后,精准人体关键点和人体实例完成关联,将关联好的精准人体关键点做为检测结果输出。

图6 人体关键点检测模型结构Fig. 6 Structure of human keypoints detection model

2.3 卷烟检测与识别算法

卷烟检测完成卷烟的位置和姿态检测,其中卷烟的姿态用卷烟的4 个角点P1(x1,y1),P2(x2,y2),P3(x3,y3),P4(x4,y4) 来 表 示, 且 满足x1≤x2≤x3≤x4。与人体关键点检测类似,基于CenterNet 来设计卷烟的检测模型。卷烟识别选择Darknet53[16]作为特征提取模型,将Darknet53 最后一个平均池化层的输出作为卷烟的特征向量,该向量是1024 维。在进行卷烟牌号识别时,先采用卷烟检测模型完成卷烟在图像中位置和姿态检测,其次利用卷烟姿态信息矫正卷烟的姿态,从而生成卷烟的正向图像,然后采用Darknet53 网络提取出卷烟正向图像的特征向量,最后计算待识别卷烟的特征向量与卷烟特征库的每个向量的欧式距离并选择其中最小的距离值,判断该距离值是否小于阈值,如小于则判定这两个特征属于同一卷烟牌号,否则认为当前卷烟是未知的卷烟牌号。卷烟检测与识别算法的算法流程如图7所示。

图7 卷烟检测与识别算法流程Fig. 7 The flow of cigarette detection and recognition algorithm

2.4 消费者行为识别算法

数据采集方法定义了消费者的三种行为,分别是拿取卷烟、放回卷烟和购买卷烟行为。其中拿取卷烟行为定义为发生卷烟消失事件时,消费者的手处于卷烟消失的位置;放回卷烟行为定义为发生卷烟出现事件时,消费者的手处于在卷烟出现的位置;购买卷烟行为定义为消费者离开零售店时,对于同一个卷烟商品,消费者的拿取行为次数与放回行为次数的差值为1。以下以拿取卷烟行为为例说明消费者行为识别算法的流程:

(1)消费者伸手从卷烟识别区拿取卷烟的过程中,当卷烟被消费者的手遮挡时,触发卷烟消失事件,如图8(a)所示。保存卷烟发生消失事件时的中心点位置Pc(xc,yc)和其牌号Bc,同时保存RGBD 深度摄像头对应时刻的RGB 图像和Depth 图像,记为Irgb和Idepth,其中Irgb如图8(b)所示;

图8 消费者拿取行为示例Fig. 8 Example of consumer pick-up behavior

(2)使用人体关键点检测算法检测人体在Irgb的关键点位置,记头顶点为Ph(xh,yh)、左手点为P1(x1,y1)和右手点为Pr(xr,yr);

(3)使用人体检测与跟踪算法在Idepth上获取跟踪结果的头顶点列表和人体编号列表,分别记为记为Lh,Lid;

式中d为P1(x1,y1)在Idepth上的深度值。

(6)将点P' l(x1,y1,Zl)通过深度摄像头和高清彩色摄像头的空间位置关系[R|T],转成高清彩色摄像头三维坐标系下的坐标点Pk(xk,yk,Zk),转换关系如下式(2)所示:

(7)通过高清彩色摄像头内参cu',cv',fx',fy'将Pk(xk,yk,Zk)转换到高清彩色摄像头平面坐标系下的点Po(xo,yo),转化关系如下式(3)所示:

(9)重复(5)-(8)步骤判断右手点Pr(xr,yr)是否有发生拿取卷烟行为。

3 结果与讨论

3.1 人体跟踪算法测试与结果

在数据集Dv上测试人体跟踪算法的性能,结果显示:在本地计算平台的CPU 单核上运行帧率达到40 FPS;在300 个消费者购买卷烟的视频片段中,消费者人体ID 在购买卷烟期间始终保持一致,跟踪结果全部正确。

3.2 人体关键点检测算法测试与结果

从人体关键点检测数据集Dp中随机选择4000 张作为训练集,余下1000 张作为测试集。设置学习率1.25e-4,批处理大小为32,在深度学习服务器上训练140 epochs,并在epochs 为90,120 时将学习率下降10 倍。训练模型过程中采用随机裁剪、随机翻转和图像缩放等数据增强方法,以获得更好的训练效果。训练完成后,在测试集上对人体关键点检测模型进行准确率评估,结果如表1 所示。

表1 人体关键点检测结果Tab. 1 Detection results of human key points

3.3 卷烟检测与识别算法测试与结果

(1)卷烟检测模型训练与测试结果。从卷烟数据集Dc中随机选择4000 张作为卷烟检测模型的训练集,余下1000 张作为测试集。训练方式和人体关键点类似,训练完成后在1000 张测试集上对卷烟检测模型进行准确率评估,结果显示:卷烟位置检测的AP 为95.6%,卷烟关键点检测的AP 为93.4%。

(2)卷烟识别模型训练与测试结果。在卷烟数据集Dc中利用卷烟位置信息,将卷烟局部图像从原始图像中截取出来,并利用卷烟的姿态信息通过平面射影变换矫正卷烟姿态,生成有12552 张卷烟正向图像的数据集Dr。从Dr中随机选择10000 张作为卷烟识别模型的训练集,其余作为测试集。由于卷烟正反面的特征差异,训练时将卷烟的正反面分为两种类型。设置学习率为1e-3,动量为0.9,批处理大小为32,在深度学习服务器上训练20000 轮次。训练完成后在2552 张测试集上进行模型准确率测试,结果显示卷烟识别模型的准确率为99.7%。

3.4 消费者行为识别算法测试与结果

在Dv数据集上对消费者行为识别方法进行测试,测试时忽略卷烟牌号和人体跟踪ID 的正确性,结果如表2 所示。消费者拿取行为示例如图8 所示。

表2 消费者行为识别结果Tab. 2 Results of custom behavior recognition

3.5 数据采集方法整体测试与结果

记一次正确的卷烟零售数据采集为:在消费者行为识别中,人体跟踪ID、卷烟ID 和事件ID 同时正确,则数据采集的准确率为: 正确计数/(正确计数+错误计数)×100%。在Dv数据集上对数据采集方法进行测试,结果显示:在594 次消费者拿取和返回行为数据中,正确采集的计数为568 次,准确率为95.6%。

4 结论

(1)本研究基于图像识别技术实现了一种自动化采集卷烟零售数据的方法,该方法的采集准确率达到95.6%,可为烟草行业提供高质量的卷烟零售数据,为烟草行业进一步提升经营管理水平奠定基础。同时,由于数据采集方法在本地和云端存储的是结构化的卷烟零售数据,不识别消费者的生物特征,不存在个人隐私风险,是一种安全有效的数据采集方法。

(2)本研究中将多个神经网络模型运行于本地计算平台,导致本地计算平台对GPU 有较高的要求,成本较大,不利于大规模推广。下一步可通过将识别模型进行云服务化和对模型进行压缩,降低对GPU的要求,达到降低本地计算平台成本的目的,为规模推广奠定基础。此外,本研究中要求卷烟识别区为非透明背景,这一定程度上限制了场景的使用范围,因此如何解决透明背景对采集方法的准确率影响还需进一步研究。

猜你喜欢
关键点卷烟摄像头
浙江首试公路非现场执法新型摄像头
聚焦金属关键点
摄像头连接器可提供360°视角图像
肉兔育肥抓好七个关键点
奔驰360°摄像头系统介绍
医联体要把握三个关键点
卷烟包装痕迹分析
锁定两个关键点——我这样教《送考》
我国卷烟需求预测研究述评
卷烟引燃倾向测试方法的研究与改进