1、基于卷积神经网络的物品识别系统设计与实现 严圣军 吴谨 武汉科技大学信息科学与工程学院 摘 要: 为快速准确地获取未知物品的信息, 采用服务端和客户端相分离的架构, 设计并实现基于卷积神经网络的电脑端和 Android 手机端物品识别系统。首先对客户端上传的本地图片或者手机拍摄照片进行预处理, 然后利用预训练模型搭建卷积神经网络, 提取图像特征并分类, 最后将识别结果通过网络连接返回至客户端, 完成物品的识别。实验结果表明, 该系统拥有良好的在线识别能力, 这将极大地改进人们获取信息的方式, 更加方便和高效。关键词: 卷积神经网络; 移动终端; 物品识别; 预训练模型; 作者简介:严圣军, 硕
2、士生, 主研领域:图像处理。作者简介:吴谨, 教授。收稿日期:2017-01-05DESIGN AND IMPLEMENTATION OF OBJECT RECOGNITION SYSTEM BASED ON CONVOLUTIONAL NEURAL NETWORKYan Shengjun Wu Jin School of Information Science and Engineering, Wuhan University of Science and Technology; Abstract: In order to obtain the information of the unkn
3、own goods quickly, the separation of server and client architecture is adopt to design and implement a object recognition system on the computer side and Android mobile terminal based on convolution neural network. Firstly, it pre-processed the local pictures or cell phone photos uploaded from the c
4、lient side, and then built a convolutional neural network by using the pre training model to extract image features and classified them. Finally, it returned the result to the client via a network connection to complete the object recognition. The experimental results show that the system has good o
5、nline recognition ability, and this will greatly improves the way people access to information, it is more convenient and efficient.Keyword: Convolutional neural network; Mobile terminal; Object recognition; Pre-trained model; Received: 2017-01-050 引言人们每天都会从外界获取一些信息, 在认知客观世界的五大感官中, 绝大部分信息是通过我们的视觉来感知
6、的。对于生活中每天接收的图像信息, 它们可能是我们亲眼见到的, 也可能来自电脑和手机, 这些信息之中又有很多是我们不认识却又想要认识的物体, 这时往往通过主动询问、打听, 或者自己将它转化为可能的文字在网上搜索相关信息。随着智能手机的普及和人工智能的发展, 如何通过电脑或者手机随时随地获取未知物品的信息变得越来越迫切。让计算机能够像人一样分辨出看到的是什么物体, 这不是一件很容易的事。为了实现这一目标, 斯坦福大学每年都会举行一个比赛, 即大规模视觉挑战赛Image Net Large Scale Visual Recognition Challenge (以下简称 ILSVRC) 1-3,
7、国内外一些知名 IT 企业如谷歌、微软、百度等每年都有参加。他们使用一个包含了约 120 万张训练图像、5 万张验证图像和 10 万张测试图像, 分为1 000 个不同的类别的全球最大的图像识别数据集 Image Net, 来测试他们的系统算法的准确率。近几年, 随着大量样本数据的收集、硬件设备计算能力的提高和持续不断的算法改进, 识别系统的功能提高了很多, 出错率仅为约 5% (比人眼还低) 。传统的图像识别方法主要是通过提取一些人工特征点后由数学统计模型来表达此图像, 然后通过特征向量的某种相似性度量的匹配来对图像进行识别。例如, 词袋模型4-5、Fisher Vector6等。而卷积神经
8、网络7-13将特征提取、特征分类结合到一起, 并进行联合参数优化, 能取得良好的效果。在 ILSCRC-2012 比赛中, 使用卷积神经网络算法第一次实现 Top5 误差率 15.4% (Top5 误差率是指给定一张图像, 其标签不在模型认为最有可能的 5 个结果中的几率) , 当时采用传统算法的最小误差率为 26.2%。这样, 从那时候开始, CNN 成为用于图像识别使用最多的算法。包括在手写字体识别和人脸识别上等图像识别任务上也表现出优秀的性能, 其准确率接近甚至已经超过了人类。从识别算法的性能和准确性的角度考虑, 相比于其他一些机器学习的算法, 卷积神经网络能够提取像素级的图像特征, 并
9、且不需要经过很多的预处理, 这是卷积神经网络所特有的优势;从系统应用的角度考虑, 将卷积神经网络算法与 Web开发相结合, 并运用到移动端, 能使物品识别系统得到较广泛的应用, 通过手机拍照方便获取未知物品的信息, 能给人们的生活带来极大的便利。针对以上问题和分析, 本文设计和实现基于卷积神经网络的物品识别系统对电脑上、手机上保存的图片和手机摄像头拍摄的照片通过图像处理与分析, 使电脑和手机能自动识别物品, 最终将物品的名称信息显示在电脑或者手机界面上, 方便人们获取陌生物品的信息, 减少人们搜索查找物品的时间。1 物品识别系统概述本文研究的物品识别系统大体由三个部分组成:后台服务器、基于 P
10、C 浏览器平台的客户端和基于 Android 平台的客户端14。系统总体架构如图 1 所示。图 1 系统架构图 下载原图图 1 中, 左侧用户端15分为 PC 浏览器端和 Android 客户端, 主要提供给用户一个交互的界面, 从电脑上本地选择图片或者用手机拍摄照片, 最后接收服务端结果返回并展示;右侧服务端的主要功能是运行图像识别算法, 完成之后再将分类识别的结果通过网络连接返回至客户端, 实现物品的识别。2 系统设计与实现2.1 系统实现框架和功能说明系统各功能模块划分, 如图 2 所示。图 2 物品识别系统框图 下载原图(1) 后台服务器开发模块:服务器模块主要负责接收并处理用户请求,
11、 该模块细分为图片接收、图片识别和结果返回模块。对用户上传的图片数据运用算法进行识别, 返回识别的结果。(2) PC 浏览器客户端模块:PC 浏览器客户端模块主要是面向浏览器端用户的, 该模块又细分为图片选择、图片上传和信息接收模块。用户打开浏览器输入地址即可进入系统主界面, 选择本地图片, 上传到服务器进行识别, 返回识别结果并在页面中进行渲染展示。(3) Android 客户端开发开发模块:Android 客户端开发模块主要是面向移动端用户的, 通过 Cordova 对页面、样式、以及功能交互文件进行打包完成Android app。该模块又细分为图片选择、图片上传和信息接收模块, 其中图片
12、选择又有拍照获取和本地获取两个子模块。用户可以选择拍照或者直接从本地获取图片进行识别。2.2 客户端模块的设计与实现客户端模块是离用户最近的, 当用户选择软件开发的相机拍照直接获取图片, 或者选择手机里已存在的照片或从网络已下载的其他图片之后, 将图片上传到相应后台服务器, 上传成功后等待服务器回应, 经过服务器的处理、识别、数据返回后, 用户接收到返回的数据信息, 包括物品类别及识别为该类别的百分比可能性。客户端操作流程如图 3 所示。图 3 客户端流程图 下载原图2.3 服务端模块的设计与实现2.3.1 卷积神经网络简介卷积神经网络典型的结构分为四个大层次:输入图像、多个卷积-下采样层、光
13、栅化、传统的多层感知器。卷积神经网络来源于多层感知器, 同时它解决了多层感知器存在的训练参数过多等问题, 其核心出发点有三个:(1) 局部感受野:就像生活中我们一般看到一样东西也是先看到局部, 不会一下就看到物体的全部内容。每个隐层节点只连接到图像某个足够小局部的像素点上, 从而大大减少需要训练的权值参数。(2) 权值共享:可以看成是特征提取的方式。用同一个卷积核去扫描图像的每个位置, 所以权重是相同的, 从而大大减少需要训练的参数。(3) 池化:通过某种池化函数进行降采样, 既降低了图像的分辨率 (从而减少精确的位置信息) , 又不损失过多的有效信息, 极大地提高了其对图像的几何变换的无关性
14、。卷积神经网络用于图像的分类识别主要有四种操作:卷积、下采样、光栅化和多层感知器预测。本文根据以上操作搭建完成卷积神经网络结构, 并使用已训练模型参数来进行预测, 实现未知图像的识别。2.3.2 卷积神经网络结构本系统使用的神经网络是 VGG-1616, 数据集为 Image Net。VGG-16 是由牛津视觉几何组 (Visual Geometry Group) 开发的卷积神经网络结构。该网络赢得了 ILSVR (Image Net) 2014 的冠军。该模型由 13 个层加 3 个全连接层组成, 结构如图 4 所示。图 4 卷积神经网络结构图 下载原图2.3.3 服务端工作流程服务端首先对
15、输入图像进行一些预处理使其转化为指定的格式, 然后建立 VGG-16 模型, 载入训练好的 vgg16_weights 权重, 编译模型, 使输入图像数据流入模型, 最后输出该图像与权重文件中每个物品相似度, 按概率逆序排序, 取前三个概率返回给客户端。工作流程如图 5 所示。图 5 服务端实现流程图 下载原图2.4 实验和系统演示2.4.1 实验结果及分析下面对算法性能作深入分析, 与传统图像分类识别算法进行对比实验。实验对象:Caltech 101 数据集、Corel 数据集和 FMD 数据集, 其中各数据集训练样本数和测试样本数均为 50。实验环境:64 位 Windows 10 操作系
16、统、intel i5 主频 2.40 GHz 双核、内存4.00 GB、Matlab R2015b。实验对比:通过以下四种不同算法对各数据集进行图像分类实验, 得到实验结果如表 1 所示。(1) 词袋模型:提取图像的 SIFT 特征, 聚类生成视觉词典, 利用词频表示图像, 通过 SVM 进行分类。(2) Fisher 向量:通过高斯混合模型进行聚类, 通过 SVM 分类。(3) 局部聚合描述符:是 BOF 和 fisher vector 的折中, 保存每个特征点到离它最近的聚类中心的距离, 通过 SVM 分类。(4) 本文所用卷积神经网络:特征提取和分类联合参数优化。表 1 识别算法对比表
17、下载原表 下面进一步实验, 得到该系统在多个数据集下的正确识别率, 平均识别时间等, 见表 2。其中最后一个数据集搜集于淘宝网的商品图片, 以测试系统对现实中复杂图片的识别能力, 从表中能够看出, 算法在物品图片的识别正确率和识别时间上性能是很好的。表 2 各数据集下识别平均正确率和平均时间表 下载原表 2.4.2 系统界面及操作演示本系统基于电脑端和 Android 端实现了这项物品识别功能。(1) PC 端浏览器平台:首先打开浏览器, 在地址栏输入系统的域名, 进入系统主界面, 选择从本地上传图片, 点击开始识别, 等待数秒即可下载到服务器识别的结果。识别图如图 6 所示, 识别结果如图
18、7 所示。图 6 PC 端待识别图 下载原图图 7 PC 端识别结果图 下载原图(2) Android 开发平台:打开 app, 选择本机图片或者打开手机照相机拍一张照片, 等待数秒即可下载到服务器识别的结果。识别图如图 8 所示, 识别结果如图 9 所示。图 8 Android 端待识别图 下载原图图 9 Android 端识别结果图 下载原图3 结语本文探讨设计和开发基于 PC 端和移动终端的物品识别系统, 结合 Web 开发技术, 采用客户端和服务端分离的架构, 卷积神经网络算法运行在服务端, 客户端负责用户交互及信息的展示。此项目同时面向 PC 端和移动端, 用户可以随时随地上传图片进
19、行识别, 从而实现信息获取的方面化和智能化, 改进了人们认知事物的方式。参考文献1Russakovsky O, Deng J, Su H, et al.ImageN et Large scale visual recognition challengeJ.International Journal of Computer Vision, 2015, 115 (3) :211-252. 2He K, Zhang X, Ren S, et al.Spatial pyramid pooling in deep convolutional networks for visual recognition
20、J.IEEE Trans on Pattern Analysis and Machine Intelligence, 2015, 37 (9) :1904-1916. 3Hinton G E, Srivastava N, Krizhevsky A, et al.Improving neural networks by preventing coadaptation of feature detectorsJ.Computer Science, 2012, 3 (4) :212-223. 4齐梅.基于词袋模型的物体识别方法研究D.合肥工业大学, 2014. 5Lowe D G.Distincti
21、ve image features from scaleinvariant keypointsJ.International Journal on Computer Vision, 2004, 60 (2) :91-110. 6Perronnin F, Dance C.Fisher kernels on visual vocabularies for image categorizationC/Computer Vision and Pattern Recognition (CVPR) , 2007 IEEE Conference on.IEEE, 2007:1-8. 7王振, 高茂庭.基于卷
22、积神经网络的图像识别算法设计与实现J.现代计算机 (普及版) , 2015 (7) :61-66. 8蒋树强, 闵巍庆, 王树徽, 等.面向智能交互的图像识别技术综述与展望J.计算机研究与发展, 2016, 53 (1) :113-122. 9贾世杰, 杨东坡, 刘金环, 等.基于卷积神经网络的商品图像精细分类J.山东科技大学学报 (自然科学版) , 2014, 33 (6) :91-96. 10景辉芳.深度神经网络的研究及其在植物叶片图像识别中的应用D.南昌航空大学, 2016. 11王瑞.基于卷积神经网络的图像识别D.河南大学, 2015. 12许可.卷积神经网络在图像识别上的应用的研究D.浙江大学, 2012. 13范荣.基于卷积神经网络的服装种类识别J.现代计算机 (专业版) , 2016 (9) :29-32. 14潘威, 左欣, 沈构强, 等.物品识别系统的设计与实现J.科技视界, 2015 (5) :167. 15张海藩, 牟永敏.软件工程导论M.6 版.北京:清华大学出版社, 2013:55-56. 16Simonyan K, Zisserman A.Very Deep Convolutional Networks for Large-Scale Image RecognitionJ.Computer Science, 2014.