基于深度学习的商品识别方法研究
2018-10-09梅啟成吕文阁
梅啟成,吕文阁
(广东工业大学机电工程学院,广东广州 510006)
0 引言
目前,商品识别技术里非常成熟的是条码识别技术,商品信息通过编码器储存在条码上,并被解码器识别,但是条码本身会存在局限性,如信息容量有限、条码印刷质量和商品运输过程的损坏。于是人们引入了无线射频识别技术(RFID),RFID是通过无线电信号识别特定目标并读写相关数据,而无需机械或者光学接触。RFID电子标签上会储存唯一的ID码,并提供详细的商品信息,电子标签附着在商品上,将储存的数据通过无线电信号调成的电磁场传送出去,数米之内都可以识别。具有数据读写方便、穿透性、记忆容量大等优点[1]。计算机视觉技术应用到商品识别也得到了很好的发展,主要是通过提取商品包装图像上独特的特征来识别。基于特征的图像匹配技术以SIFT/SURF特征点为典型代表,通过提取待检图像和模板图像上的特征点,并经过一系列误匹配点剔除操作,达到两幅图像精确匹配,实现图像识别。完成超市货架商品智能化管理[2-3]。人工智能和深度学习在各个方面都得到井喷式发展,曾志[4]提出一种基于图像内容的多特征融合的深度学习分类算法,实现大型网络购物网站的商品图像的分类。
随着消费升级趋势的到来,社会人口结构的变化,近几年便利店的销售额增速喜人,而商超的销售额增速明显放缓。同时便利店的用人和房租成本都在上升,利润被压榨,传统的便利店缺乏对数据的收集和有效分析。于是将商品识别技术应用至无人零售领域(如小型便利店)有很大的发展空间。经过一定阶段调研,发现小型便利店的商品种类不多、体积不大、单店总商品数不多,满足顾客日常零食饮水等基本需求即可。采用成熟的条码技术非常省成本,顾客调整商品条码和扫码器位置,完成扫码结算工作,但是顾客不熟悉使用扫码器和商品包装变形导致条码难识别等问题,会影响支付时间和购物体验。目前使用基于RFID技术的无人便利店方案也很多,每个商品上均人工需要贴上RFID标签,标签成本、贴标时间成本和人力成本相对于小型便利店来说很高了。当然还是有采用计算机视觉和深度学习技术相结合的技术方案,比如亚马逊的无人便利店项目,不过是针对大型商超,技术要求高,运营成本高,明显不合算。所以本文作者在无人零售领域的小型无人便利店场景下,应用计算机视觉和深度学习技术的研究,消费者挑选商品后放置在结算台处,结算台正上方部署摄像头获取商品图像,上传至云端或者本地服务器,通过已训练好的模型来商品识别。训练模型阶段可在实验室环境下使用大量商品图像来进行深度学习训练。
1 深度学习概述
深度学习是一种特征学习方法,通过将原始数据由低层次的简单非线性模型向高层次的抽象模型转换[5-6]。标准神经网络是由基本神经元组成,神经元接收到来自N个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值与神经元的阈值进行比较,然后通过激活函数处理以产生神经元的输出[7]。
基本神经元结构如图1所示,其中x1、x2表示输入向量,w1、w2为权重,b为偏置,σ(z)为激活函数,a为输出。多层感知机(MLP)是典型模型。
图1 基本神经元的网络结构
卷积神经网络(CNN)是从标准神经网络发展而来的,广泛应用在图像领域。手写数字识别准确率逐渐趋近于人类识别准确率,2012年图像分类大赛ImageNet竞赛中采用卷积神经网络对100万张图像进行分类,准确率大幅提高至84.7%[8]。CNN模型引入了很多实用策略,如卷积、池化、Dropout等,用以提高模型的容错等性能,其中卷积和池化是现有的CNN模型中必备的策略。卷积(Convolution)操作过程是:人工设定一个过滤器(或者叫内核),通过这个过滤器从神经网络当前层的左上角移动至右下角,并且在移动中计算窗口内的加权和。在CNN模型中做卷积操作的时候,会初始化多个过滤器,提取到图像的不同特定信息,如颜色、深浅、轮廓等,得到不同的输出数据。如图2所示不同卷积内核对同一幅图像卷积操作的效果,其中(a)、(d)是商品原图,(b)、(e)是两个同尺寸3×3不同结构的卷积内核,(c)、(f)分别是原图(a)或(d)与内核(b)、(c)卷积操作后的图像。
图2 不同过滤器卷积处理的效果
卷积操作之后往往会加上池化(Pooling)处理,池化操作的前向传播过程也是通过移动一个类似过滤器的结构完成。不过窗口内的运算,不是采用加权和,而是采用最大值或者平均值运算。原始输入图像可能很大,相邻像素间具有相似性,故存在冗余像素信息,池化操作就是对相邻的像素进行“融合”。池化操作可以非常有效地缩小图像的尺寸,从而减少最后全连接层的参数,使用池化层可以加快计算速度,也有防止过拟合问题的作用。在后续发展中,由于神经网络模型的层数逐渐增多,卷积层和池化层合并称为卷积层。池化操作常用的有最大池化和平均值池化。最大值池化操作如图3所示,上一层输入图像中的窗口中x1至x9九个数的最大值是下一层图像中f1的值,其中内核尺寸为3×3。
图3 最大值池化操作
典型的卷积神经网络模型有:LeNet-5,AlexNet,GoogleNet等。2012年在ImageNet竞赛中使用的卷积神经网络刷新了图像分类的记录,这个CNN模型就是AlexNet模型。AlexNet整个网络模型结构共有8层网络(模型的层数较多,池化层不计入总层数),前5层是卷积层,后3层是全连接层,最后一个全连接层的输出是softmax[9]。基本结构如表1所示。
表1 AlexNet模型配置表
2 商品识别实验
2.1 实验流程
采用AlexNet神经网络模型,对该模型进行简单调整,把在ImageNet竞赛上训练好的网络参数用于商品识别网络的初始化参数,然后用标注的商品图像对神经网络权重使用反向传播和随机梯度下降法(Stochastic Gradient Descent,SGD)进行调整,直到该模型达到一定准确率。实验流程如图4所示。
2.2 数据获取
首先,确定商品图片的收集范围。经过一段时间的实地调研当地周围数个小型零售店,统计和整理这些零售店的热卖商品,选择其中50种零食饮料等商品作为商品识别实验的原始数据。
其次,搭建获取商品图片的硬件平台。为了尽可能贴近无人超市实现自动识别商品的固定场景,搭建了一个由相机、光源、置物台和支架组成的视觉平台,相机和光源固定在置物台的正上方,置物台就是顾客放置商品的识别结算台,置物台选用黑色或者白色等单一色,商品和置物台颜色差尽可能大。
再次,选择商品的最大特征面。最大特征面也就是最能突出该商品特征的面,一般会有正反两个面,某些商品只有一个最能突出商品那就只拍摄这一面的图像。尽可能地模拟顾客放置商品在结算台上各种位置,调整商品最大面在摄像机视野中的位置,一种商品每个最大面都拍摄50张图片。有正反面的就拍摄正面50张、反面50张,该商品共拍摄100张图像;只有正面的就拍摄正面50张,该商品共拍摄50张图像。
最后,选取的50种商品按照以上方式拍摄商品图像,作为商品图像的原始数据。
图4 实验流程图
图5 单张图像的预处理过程
2.3 数据预处理
先是ROI提取。提取出商品图像内商品轮廓所在区域,即感兴趣区域(Region of Interest,ROI)。单张图像的预处理过程如图5所示。拍摄单张商品原始图像(图5(a)),原始图像尺寸为640×480,RGB彩色,采用OTSU阈值处理得到阈值图像(图5(b)),对阈值图像进行膨胀和开运算等形态学处理后,寻找图像内面积最大的轮廓,就得到了原图像中商品轮廓的正矩形框,即ROI区域(图5(c)中白色正矩形框)。后是统一尺寸。对正矩形框四边向外扩大一定像素(在不超过原图像边界的情况下),得到扩大的正矩形框(图5(d)中白色组线条的正矩形框,细线条矩形框是ROI区域),在原图像内截取该正矩形框形成矩形图像(图5(e))。对矩形图像进行边界扩展操作后,得到长宽相等的新图像(图5(f)),并将新图像缩放至尺寸为300×300的商品图像(图5(g))。
图6 数据扩充方式
2.4 数据扩充并划分数据集
每类商品的所有图像均经过上一节数据预处理后,还要经过数据扩充处理,比如镜像翻转(水平、垂直)、多角度旋转(顺时针、逆时针)等图像数据扩充方法,保证数据的相对平衡,图像数据扩充方式如图6所示。最后达到每类商品每个特征面有1000张尺寸为300×300的图像。最后将预处理好的图像数据随机分为训练集和测试集。
2.5 结果与应用
搭建实验平台获取商品图像,利用OpenCV视觉库对商品图像进行数据预处理和数据扩充,利用TensorFlow深度学习框架对该神经网络模型进行迭代训练。使用训练集来训练神经网络模型,使用测试集来评估模型的准确率。针对模型外参数,比如学习率、迭代次数等参数时,采用多折交叉验证法,将数据预处理阶段划分的训练集再拆分为实际训练集和交叉验证集。通过观察这些参数的不同效果。利用交叉验证,最终确定了初始学习率为0.000 1,迭代次数为20万次。
经过一系列的处理和训练,得到了一定准确率和稳定性的神经网络模型和参数,采用测试集验证,最终得到了平均90%的准确性。该商品识别模型封装为可调用的程序模块,在小型便利店本地摄像头拍摄商品图像,通过计算机上已训练模型来识别商品;或者本地摄像头获取商品图像后,上传至云端通过已训练模型进行识别。完成便利店对顾客已挑选商品的识别和结算工作。
3 结论
随着消费升级趋势的到来,社会人口结构的变化,无人零售行业会得到极大的发展,对商品识别技术的需求也越来越高。由最初的人工识别、条码识别、到无人RFID电子标签识别和深度学习识别,每一次技术的突破都意味着在商品流通和交易环节中,商品识别的安全性和便捷性需求不断提高。最近几年深度学习的强劲表现证明了该项技术在图像分类领域有着极大的优势。本文提出的基于深度学习的商品识别方法,突破了基于商品包装上的条码或者特定标签的局限,利用商品本身的特征来识别该商品。实验表明,利用深度学习构造的深度神经网络模型,对商品图像识别的分类具有良好的效果。