嚴圣軍 吳 謹
(武漢科技大學信息科學與工程學院 湖北 武漢 430081)
基于卷積神經網絡的物品識別系統設計與實現
嚴圣軍 吳 謹
(武漢科技大學信息科學與工程學院 湖北 武漢 430081)
為快速準確地獲取未知物品的信息,采用服務端和客戶端相分離的架構,設計并實現基于卷積神經網絡的電腦端和Android手機端物品識別系統。首先對客戶端上傳的本地圖片或者手機拍攝照片進行預處理,然后利用預訓練模型搭建卷積神經網絡,提取圖像特征并分類,最后將識別結果通過網絡連接返回至客戶端,完成物品的識別。實驗結果表明,該系統擁有良好的在線識別能力,這將極大地改進人們獲取信息的方式,更加方便和高效。
卷積神經網絡 移動終端 物品識別 預訓練模型
人們每天都會從外界獲取一些信息,在認知客觀世界的五大感官中,絕大部分信息是通過我們的視覺來感知的。對于生活中每天接收的圖像信息,它們可能是我們親眼見到的,也可能來自電腦和手機,這些信息之中又有很多是我們不認識卻又想要認識的物體,這時往往通過主動詢問、打聽,或者自己將它轉化為可能的文字在網上搜索相關信息。隨著智能手機的普及和人工智能的發展,如何通過電腦或者手機隨時隨地獲取未知物品的信息變得越來越迫切。
讓計算機能夠像人一樣分辨出看到的是什么物體,這不是一件很容易的事。為了實現這一目標,斯坦福大學每年都會舉行一個比賽,即大規模視覺挑戰賽ImageNet Large Scale Visual Recognition Challenge(以下簡稱ILSVRC)[1-3],國內外一些知名IT企業如谷歌、微軟、百度等每年都有參加。他們使用一個包含了約120萬張訓練圖像、5萬張驗證圖像和10萬張測試圖像,分為1 000個不同的類別的全球最大的圖像識別數據集ImageNet,來測試他們的系統算法的準確率。近幾年,隨著大量樣本數據的收集、硬件設備計算能力的提高和持續不斷的算法改進,識別系統的功能提高了很多,出錯率僅為約5%(比人眼還低)。傳統的圖像識別方法主要是通過提取一些人工特征點后由數學統計模型來表達此圖像,然后通過特征向量的某種相似性度量的匹配來對圖像進行識別。例如,詞袋模型[4-5]、Fisher Vector[6]等。而卷積神經網絡[7-13]將特征提取、特征分類結合到一起,并進行聯合參數優化,能取得良好的效果。在ILSCRC-2012比賽中,使用卷積神經網絡算法第一次實現Top5誤差率15.4%(Top5誤差率是指給定一張圖像,其標簽不在模型認為最有可能的5個結果中的幾率),當時采用傳統算法的最小誤差率為26.2%。這樣,從那時候開始,CNN成為用于圖像識別使用最多的算法。包括在手寫字體識別和人臉識別上等圖像識別任務上也表現出優秀的性能,其準確率接近甚至已經超過了人類。從識別算法的性能和準確性的角度考慮,相比于其他一些機器學習的算法,卷積神經網絡能夠提取像素級的圖像特征,并且不需要經過很多的預處理,這是卷積神經網絡所特有的優勢;從系統應用的角度考慮,將卷積神經網絡算法與Web開發相結合,并運用到移動端,能使物品識別系統得到較廣泛的應用,通過手機拍照方便獲取未知物品的信息,能給人們的生活帶來極大的便利。
針對以上問題和分析,本文設計和實現基于卷積神經網絡的物品識別系統對電腦上、手機上保存的圖片和手機攝像頭拍攝的照片通過圖像處理與分析,使電腦和手機能自動識別物品,最終將物品的名稱信息顯示在電腦或者手機界面上,方便人們獲取陌生物品的信息,減少人們搜索查找物品的時間。
本文研究的物品識別系統大體由三個部分組成:后臺服務器、基于PC瀏覽器平臺的客戶端和基于Android平臺的客戶端[14]。系統總體架構如圖1所示。

圖1 系統架構圖
圖1中,左側用戶端[15]分為PC瀏覽器端和Android客戶端,主要提供給用戶一個交互的界面,從電腦上本地選擇圖片或者用手機拍攝照片,最后接收服務端結果返回并展示;右側服務端的主要功能是運行圖像識別算法,完成之后再將分類識別的結果通過網絡連接返回至客戶端,實現物品的識別。
2.1 系統實現框架和功能說明
系統各功能模塊劃分,如圖2所示。

圖2 物品識別系統框圖
(1) 后臺服務器開發模塊:服務器模塊主要負責接收并處理用戶請求,該模塊細分為圖片接收、圖片識別和結果返回模塊。對用戶上傳的圖片數據運用算法進行識別,返回識別的結果。
(2) PC瀏覽器客戶端模塊:PC瀏覽器客戶端模塊主要是面向瀏覽器端用戶的,該模塊又細分為圖片選擇、圖片上傳和信息接收模塊。用戶打開瀏覽器輸入地址即可進入系統主界面,選擇本地圖片,上傳到服務器進行識別,返回識別結果并在頁面中進行渲染展示。
(3) Android客戶端開發開發模塊:Android客戶端開發模塊主要是面向移動端用戶的,通過Cordova對頁面、樣式、以及功能交互文件進行打包完成Android app。該模塊又細分為圖片選擇、圖片上傳和信息接收模塊,其中圖片選擇又有拍照獲取和本地獲取兩個子模塊。用戶可以選擇拍照或者直接從本地獲取圖片進行識別。
2.2 客戶端模塊的設計與實現
客戶端模塊是離用戶最近的,當用戶選擇軟件開發的相機拍照直接獲取圖片,或者選擇手機里已存在的照片或從網絡已下載的其他圖片之后,將圖片上傳到相應后臺服務器,上傳成功后等待服務器回應,經過服務器的處理、識別、數據返回后,用戶接收到返回的數據信息,包括物品類別及識別為該類別的百分比可能性。客戶端操作流程如圖3所示。

圖3 客戶端流程圖
2.3 服務端模塊的設計與實現
2.3.1 卷積神經網絡簡介
卷積神經網絡典型的結構分為四個大層次:輸入圖像、多個卷積-下采樣層、光柵化、傳統的多層感知器。卷積神經網絡來源于多層感知器,同時它解決了多層感知器存在的訓練參數過多等問題,其核心出發點有三個:
(1) 局部感受野:就像生活中我們一般看到一樣東西也是先看到局部,不會一下就看到物體的全部內容。每個隱層節點只連接到圖像某個足夠小局部的像素點上,從而大大減少需要訓練的權值參數。
(2) 權值共享:可以看成是特征提取的方式。用同一個卷積核去掃描圖像的每個位置,所以權重是相同的,從而大大減少需要訓練的參數。
(3) 池化:通過某種池化函數進行降采樣,既降低了圖像的分辨率(從而減少精確的位置信息),又不損失過多的有效信息,極大地提高了其對圖像的幾何變換的無關性。
卷積神經網絡用于圖像的分類識別主要有四種操作:卷積、下采樣、光柵化和多層感知器預測。本文根據以上操作搭建完成卷積神經網絡結構,并使用已訓練模型參數來進行預測,實現未知圖像的識別。
2.3.2 卷積神經網絡結構
本系統使用的神經網絡是VGG-16[16],數據集為ImageNet。VGG-16是由牛津視覺幾何組(Visual Geometry Group)開發的卷積神經網絡結構。該網絡贏得了ILSVR(ImageNet)2014的冠軍。該模型由13個層加3個全連接層組成,結構如圖4所示。

圖4 卷積神經網絡結構圖
2.3.3 服務端工作流程
服務端首先對輸入圖像進行一些預處理使其轉化為指定的格式,然后建立VGG-16模型,載入訓練好的vgg16_weights權重,編譯模型,使輸入圖像數據流入模型,最后輸出該圖像與權重文件中每個物品相似度,按概率逆序排序,取前三個概率返回給客戶端。工作流程如圖5所示。

圖5 服務端實現流程圖
2.4 實驗和系統演示
2.4.1 實驗結果及分析
下面對算法性能作深入分析,與傳統圖像分類識別算法進行對比實驗。
實驗對象:Caltech 101數據集、Corel數據集和FMD數據集,其中各數據集訓練樣本數和測試樣本數均為50。
實驗環境:64位Windows 10操作系統、intel i5主頻2.40 GHz雙核、內存4.00 GB、Matlab R2015b。
實驗對比:通過以下四種不同算法對各數據集進行圖像分類實驗,得到實驗結果如表1所示。
(1) 詞袋模型:提取圖像的SIFT特征,聚類生成視覺詞典,利用詞頻表示圖像,通過SVM進行分類。
(2) Fisher向量:通過高斯混合模型進行聚類,通過SVM分類。
(3) 局部聚合描述符:是BOF和fisher vector的折中,保存每個特征點到離它最近的聚類中心的距離,通過SVM分類。
(4) 本文所用卷積神經網絡:特征提取和分類聯合參數優化。

表1 識別算法對比表
下面進一步實驗,得到該系統在多個數據集下的正確識別率,平均識別時間等,見表2。其中最后一個數據集搜集于淘寶網的商品圖片,以測試系統對現實中復雜圖片的識別能力,從表中能夠看出,算法在物品圖片的識別正確率和識別時間上性能是很好的。

表2 各數據集下識別平均正確率和平均時間表
2.4.2 系統界面及操作演示
本系統基于電腦端和Android端實現了這項物品識別功能。
(1) PC端瀏覽器平臺:首先打開瀏覽器,在地址欄輸入系統的域名,進入系統主界面,選擇從本地上傳圖片,點擊開始識別,等待數秒即可下載到服務器識別的結果。識別圖如圖6所示,識別結果如圖7所示。

圖6 PC端待識別圖

圖7 PC端識別結果圖
(2) Android開發平臺:打開app,選擇本機圖片或者打開手機照相機拍一張照片,等待數秒即可下載到服務器識別的結果。識別圖如圖8所示,識別結果如圖9所示。

圖8 Android端待識別圖

圖9 Android端識別結果圖
本文探討設計和開發基于PC端和移動終端的物品識別系統,結合Web開發技術,采用客戶端和服務端分離的架構,卷積神經網絡算法運行在服務端,客戶端負責用戶交互及信息的展示。此項目同時面向PC端和移動端,用戶可以隨時隨地上傳圖片進行識別,從而實現信息獲取的方面化和智能化,改進了人們認知事物的方式。
[1] Russakovsky O,Deng J,Su H,et al.ImageNet Large scale visual recognition challenge[J].International Journal of Computer Vision,2015,115(3):211-252.
[2] He K,Zhang X,Ren S,et al.Spatial pyramid pooling in deep convolutional networks for visual recognition[J].IEEE Trans on Pattern Analysis and Machine Intelligence,2015,37(9):1904-1916.
[3] Hinton G E,Srivastava N,Krizhevsky A,et al.Improving neural networks by preventing coadaptation of feature detectors[J].Computer Science,2012,3(4):212-223.
[4] 齊梅.基于詞袋模型的物體識別方法研究[D].合肥工業大學,2014.
[5] Lowe D G.Distinctive image features from scaleinvariant keypoints[J].International Journal on Computer Vision,2004,60(2):91-110.
[6] Perronnin F,Dance C.Fisher kernels on visual vocabularies for image categorization[C]//Computer Vision and Pattern Recognition(CVPR),2007 IEEE Conference on.IEEE,2007:1-8.
[7] 王振,高茂庭.基于卷積神經網絡的圖像識別算法設計與實現[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.
[16] Simonyan K,Zisserman A.Very Deep Convolutional Networks for Large-Scale Image Recognition[J].Computer Science,2014.
DESIGNANDIMPLEMENTATIONOFOBJECTRECOGNITIONSYSTEMBASEDONCONVOLUTIONALNEURALNETWORK
Yan Shengjun Wu Jin
(SchoolofInformationScienceandEngineering,WuhanUniversityofScienceandTechnology,Wuhan430081,Hubei,China)
In order to obtain the information of the unknown 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 client 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 online recognition ability, and this will greatly improves the way people access to information, it is more convenient and efficient.
Convolutional neural network Mobile terminal Object recognition Pre-trained model
2017-01-05。嚴圣軍,碩士生,主研領域:圖像處理。吳謹,教授。
TP391
A
10.3969/j.issn.1000-386x.2017.11.020