《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于深度學習的圖像分類搜索系統
基于深度學習的圖像分類搜索系統
2019年電子技術應用第12期
張 璘,楊豐墑
廈門理工學院 光電與通信工程學院,福建 廈門361024
摘要: 圖像分類是根據圖像的信息將不同類別的圖像區分開來,是計算機視覺中重要的基本問題,也是圖像檢測、圖像分割、物體跟蹤、行為分析等其他高層視覺任務的基礎。深度學習是機器學習研究中的一個新的領域,其動機在于建立、模擬人腦進行分析學習的神經網絡,它模仿人腦的機制來解釋數據,例如圖像、聲音和文本。該系統基于Caffe深度學習框架,首先對數據集進行訓練分析構建深度學習網絡,提取數據集圖像特征信息,得到數據對應的分類模型,然后以bvlc-imagenet訓練集模型為基礎,對目標圖像進行擴展應用,實現“以圖搜圖”Web應用。
中圖分類號: TN919.8;TP389.1
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190639
中文引用格式: 張璘,楊豐墑. 基于深度學習的圖像分類搜索系統[J].電子技術應用,2019,45(12):51-55.
英文引用格式: Zhang Lin,Yang Fengshang. Image classification search system based on deep learning method[J]. Application of Electronic Technique,2019,45(12):51-55.
Image classification search system based on deep learning method
Zhang Lin,Yang Fengshang
School of Opto-Electronic and Communication Engineering,Xiamen University of Technology,Xiamen 361024,China
Abstract: Image classification is to distinguish different types of images based on image information. It is an important basic issue in computer vision, and is also the fundamental for image detection, image segmentation, object tracking and behavior analysis. Deep learning is a new field in machine learning research. Its motivation is to simulate the neural network of the human brain for analytical learning. Like the human brain, deep learning can interpret the data of images, sounds and texts. The system is based on the Caffe deep learning framework. Firstly, the data set is trained and analyzed, and a model based on deep learning network is built to obtain the image feature information and corresponding data classification. Then the target image is expanded based on the bvlc-imagenet training set model. And finally,"search an image with an image" Web application is achieved.
Key words : image classification;depth learning;Caffe framework;convolution neural network

0 引言

    Caffe(Convolutional Architecture for Fast Feature Embedding)是由伯克利大學的賈楊清等人開發的一個開源的深度學習框架[1],采用高效的C++語言實現,并內置有Python和MATLAB接口,以供開發人員開發和部署以深度學習為核心算法的應用。本文從基本的深度學習概念出發,以mnist手寫識別數據集為基礎,通過Caffe框架設計的LeNet卷積網絡對數據集進行訓練分析,提取目標圖像特征信息,訓練出一個模型進行測試以及網絡結構的圖解[2]。為了更好地展示深度學習的應用效果,使用bvlc_reference_caffenet.caffemodel來作為基本模型進行圖片識別分類,實現了一個簡單的“以圖搜圖”Web應用。

1 深度學習的介紹

    深度學習的概念由HINTON G E等人于2006年提出[3],基于深度置信網絡(DBN)提出非監督貪心逐層訓練算法,多非線性層級系統有效解決了深度學習在訓練過程中的過擬合問題,通過在圖像層次稀疏表示中引入圖像顯著信息,加強了圖像特征的語義信息,得到圖像顯著特征表達。

1.1 卷積過程

    對于一維信號,卷積定義為:

rgzn3-gs1-2.gif

其中,f表示Mr×Nc的二維圖像矩陣,g表示Nr×Nc的二維圖像矩陣,卷積結果y的大小為(Mr+Nr-1)×(Mc+Nc-1),即0≤m<Mr+Nr-1,0≤n<Mc+Nc-1。以具體圖像處理為例,卷積過程其實還是基于一個固定的矩陣,將另外一個矩陣一格一格掃過去得到數值的和,如圖1所示。

rgzn3-t1.gif

    如果輸入的圖像是6×6的一組矩陣,其前3×3格的數據經過權值weight的加權求和后可以得到429,得到第一個卷積后的數據;輸入矩陣每次運算向后移動一小格,并與權值weight進行加權求和,掃完整個數據可以得到一個4×4的數據,卷積的結果是維數降低了,如圖2所示。

rgzn3-t2.gif

1.2 卷積核

    卷積核為圖1中3×3矩陣的數量,因為有時要提取的特征非常多且廣泛,所以需要用更多不同的矩陣來掃(多掃幾遍),那么矩陣的個數就是卷積核個數。

    輸出的矩陣公式為:

     rgzn3-gs3.gif

    當使用n個不同權重的矩陣卷積6×6矩陣時,可以將6×6的一個矩陣轉變成n個4×4的矩陣,即6×6-->n×4×4的矩陣。

1.3 池化(pooling)

    池化與卷積非常相似,簡單來說就是下采樣,都是使用一個矩陣與另一個矩陣的加權和得到最后的數據。池化與卷積最大的不同是卷積重復使用一個數據,而池化是每個數據只加權求和使用一次。當原來的矩陣是m×m、采樣窗口是n×n時,卷積能夠取得(m-n+1)×(m-n+1)的矩陣結果,而池化在不重復使用數據加權求和的情況下,一共只能采樣(m/n)×(m/n)的結果矩陣。之所以這么做,是因為即使做完了卷積,圖像仍然很大(因為卷積核比較小),所以為了降低數據維度,就進行下采樣。之所以能這么做,是因為即使減少了許多數據,特征的統計屬性仍能夠描述圖像,而且由于降低了數據維度,有效地避免了過擬合[4-5]。池化的過程如圖3所示,原始圖片大小是12×12 維度,對其進行下采樣,采樣窗口為10×10,通過池化將其下采樣成為一個2×2大小的特征圖。

rgzn3-t3.gif

1.4 訓練流程

    訓練的主要流程是訓練卷積神經網絡(CNN)的某一個卷積層時,實際上是在訓練一系列的濾波器(filter)。簡單來說,訓練CNN在相當意義上是在訓練每一個卷積層的濾波器,讓這些濾波器組對特定的模式特征有較高的激活,從而達到CNN網絡的分類/檢測等目的[6]。因此,在相當程度上,構建卷積神經網絡的任務就在于構建這些濾波器,也就是改變濾波器矩陣的值,即改變權值weight,用來識別特定的特征[7]。這個過程叫做訓練,圖4是深度學習訓練流程圖。

rgzn3-t4.gif

    其中weight權值即圖4中的W0、W1、W2,其值由初始權值隨著學習訓練的過程由損失函數來控制和調整,從而達到學習的目的。

2 LeNet卷積網絡的mnist手寫識別模型

2.1 訓練過程

    由LECUN Y等人于1998年提出的LeNet網絡[8]是最早的卷積神經網絡之一,它在手寫數字的識別問題中取得成功。本文使用的mnist圖片數據來源于官網http://yann.lecun.com/exdb/mnist/,數據分成了訓練集(60 000張共10類)和測試集(共10 000張10類),每個類別放在一個單獨的文件夾里,并將所有的圖片都生成txt列表清單(train.txt和test.txt)[9]

    環境說明:采用VMware Workstation14下的Linux(Ubuntu16.04)操作系統系統,Python環境:Anaconda2.7,Caffe 以及Caffe所需要的Opencv(3.4)支持。環境搭建如圖5所示。

rgzn3-t5.gif

2.2 測試結果

    本文使用mnist官方提供的測試集對訓練好的模型進行訓練,每類數字有1 000張共10個分類10 000張圖片,判斷正確結果較多,因此這里跳過了判斷正確結果的輸出,圖6依次為0~9的測試出錯結果:頭頂標記為模型對圖片預測分類的結果。

rgzn3-t6.gif

    從測試的結果可以看出:

    (1)測試大概10 000張圖片,共用時不到10 s(僅使用CPU運算,且不同性能計算機用時差異較大,僅作參考),其中判斷錯誤數量為80張左右,正確率大概有99.2%,每張的測試時間不到1 ms。

    (2)分析輸出的錯誤圖像判斷結果,可知有些錯誤原因是手寫字跡潦草、部分較為模糊、手寫有歧義(即使人為判斷也無法準確斷定數字具體分類)。

    (3)部分的測試結果在人眼識別過程中沒有太大的問題,在字跡方面也算可以清晰顯示出數字的具體信息,而此模型卻給出了一個錯誤的結果。這些識別結果只顯示了概率最大的分類,可能在識別的部分特征過于相似,導致并不能得到最好的分類結果,這應該屬于深度學習的訓練缺陷的一部分,原因是由于訓練集的質量和數量決定的。

3 圖片識別的一個簡單應用:以圖搜圖

    百度上線了其最新的搜索功能——“識圖”,該功能基于相似圖片識別技術,讓用戶通過上傳本地圖片或者輸入圖片的URL地址后,根據圖像特征進行分析,進而從互聯網中搜索出與此相似的圖片資源及信息內容。根據前面的深度學習圖片分類的學習結果,設計出一款類似百度“識圖”的應用。

3.1 總體設計思路

    使用Web前端獲取用戶所上傳(POST)的圖片文件或者URL,服務器接收到用戶圖片后調用bvlc模型進行處理,載入模型識別出圖片分類信息,后臺根據這個分類信息使用requests爬蟲庫搜索Bing上相似的圖片,獲取到相關的圖片鏈接并傳給前端瀏覽器,瀏覽器根據所給的圖片鏈接進行訪問請求,并顯示在用戶瀏覽界面中,從而達到以圖搜圖的功能。處理流程圖如圖7所示。

rgzn3-t7.gif

3.2 模型框架說明

    后臺服務器Django:Django是一個開放源代碼的Web應用框架,由Python寫成,較適合中等規模的Web項目,本圖片搜索系統是基于Django搭建并部署Web應用。

    Web前端框架Bootstrap:Bootstrap是當前比較流行的前端框架,起源于推特,提供了簡潔的層疊樣式表和HTML規則,以及更為完善的人性化網站風格。根據此框架能夠較好較快地搭建前端Web UI界面,且很符合該圖片展示模塊的風格。

    搜索分類依據bvlc模型:該模型由Caffe團隊使用imagenet圖片集迭代訓練30多萬次而成,共有1 000種的分類,是一個可應用級別的model。此次分析圖片的具體分類就是通過這個模型得到分類的關鍵字。

3.3 搜圖流程

    前端界面:這里提供了兩種圖片的上傳方式,即圖片的本地文件以及圖片的URL地址,選擇上傳一張小貓圖片,如圖8所示。

rgzn3-t8.gif

    后臺分類:后臺將圖片載入bvlc模型進行運算,如圖9展示的是第一個卷積層的卷積核與進行第一次卷積后的圖片。

rgzn3-t9.gif

    最終后臺經過分析特征得到圖片分類的概率分布圖,如下結果最可能的分類為283,再通過查找label文件得到283類為label:n02123394 Persian cat,如圖10所示。

rgzn3-t10.gif

    也可以查看前5個最有可能的分類結果:

    [(0.99606931,′n02123394 Persian cat′),

    (0.0019333176,′n02127052 lynx,catamount′),

    (0.0013805312,′n02123159 tiger cat′),

    (0.00041564793,′n02123045 tabby,tabby cat′),

    (8.5782471e-05,′n02124075 Egyptian cat′)]

    更多圖片搜索的實現:得到關鍵字后,通過requests爬蟲庫爬取Bing圖片(https://cn.bing.com/images),對網頁HTML源碼進行分析,因此得到了一個API接口:https://cn.bing.com/images/async?q={%s}&mmasync=1。

    該接口提供一個搜索關鍵詞的參數代替URL中的%s,因而得到想要的圖片數據,再使用xpath:’//*[@id="mmComponent_images_1"]/ul/li/div/div/div/div[1]/ul/li[2]/text()’,從而提取到想要的圖片地址以及圖片源信息。獲得圖片的URL信息后,后臺系統會整理好數據以JSON方式傳送給瀏覽器,瀏覽器便可依據此地址展示給用戶更多的相似圖片。

    前端圖片展示頁面:第一張圖片為搜索的原圖以及其分類的信息,其他圖片為向用戶提供的更多相似圖片的結果,并且有查看大圖(view)和下載功能(download),如圖11所示。

rgzn3-t11.gif

4 結論

    圖片識別分類系統在應用級別的構建需要大量圖片作為訓練的基礎,不斷迭代學習才能得到一個較好的模型。本文使用的模型為Caffe官方提供的bvlc_reference_caffenet.caffemodel,使用的訓練集imagenet數據集是一個強大的模型。但若以人工智能應用部署在計算機視覺領域上還遠遠不夠,仍需要更多的大數據作為基礎。同時,即使有這樣一個強大模型在實際應用中,還需要動態一步步地修正和完善其模型與參數配置,這點現在的Caffe還無法很好地給出解決方案。本文最終的圖片搜索應用功能依賴于識別的分類結果,本質上還是為以分類關鍵詞搜圖作為結果,若是相同分類的不同圖片,搜到的結果可能相似度過高,不夠智能化。可參考的解決方案是使用多個訓練模型分析所選圖片的各方面信息,如色調、風格、其他分類等綜合結果,再加以搜索會更加智能化,但同時對訓練的數據集和訓練網絡的學習效率會有更高的要求。

參考文獻

[1] Jia Yangqing,SHELHAMER E,DONAHUE J,et al.Caffe:convolutional architecture for fast feature embedding[C].ACM International Conference on Multimedia ACM,2014:675-678.

[2] 王茜,張海仙.深度學習框架Caffe在圖像分類中的應用[J].現代計算機(專業版),2016(5):72-75,80.

[3] HINTON G E,OSINDERO S,THE Y W.A fast learning algorithm for deep belief nets[J].Neural Computation,2006,18(7):1527-1554.

[4] 魏正.基于Caffe平臺深度學習的人臉識別研究與實現[D].西安:西安電子科技大學,2015.

[5] 許少尉,陳思宇.基于深度學習的圖像分類方法[J].電子技術應用,2018,44(6):116-119.

[6] 張順,龔怡宏,王進軍.深度卷積神經網絡的發展及其在計算機視覺領域的應用[J].計算機學報,2017,42(3):453-462.

[7] 孫志軍,薛磊,許陽明,等.深度學習研究綜述[J].計算機應用研究,2012,29(8):2806-2810.

[8] LECUN Y,BOTTOU L,BENGIO Y,et al.Gradient-based learning applied to document recognition[J].Proceedings of the IEEE,1998,86(11):2278-2324.

[9] 黃睿,陸許明,鄔依林.基于Ten-sorFlow深度學習手寫體數字識別及應用[J].電子技術應用,2018,44(10):6-10.



作者信息:

張  璘,楊豐墑

(廈門理工學院 光電與通信工程學院,福建 廈門361024)

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美aⅴ99久久黑人专区| 久久综合伊人77777尤物| 亚洲女性裸体视频| 亚洲国产三级网| 国语精品一区| 国产欧美91| 国产精品人人爽人人做我的可爱 | 亚洲激情图片小说视频| 国产一区二区视频在线观看| 国产九区一区在线| 国产精品日韩在线播放| 国产精品国色综合久久| 欧美性大战xxxxx久久久| 欧美色区777第一页| 欧美久久综合| 欧美日韩国产一区二区三区| 欧美日韩国产大片| 欧美日韩一区二区国产| 欧美日本网站| 欧美日韩中文另类| 欧美日韩亚洲一区二区三区| 欧美日韩一区二区三区在线看| 欧美日韩另类一区| 欧美视频一区二区三区…| 欧美日韩精品不卡| 欧美日韩另类综合| 欧美亚洲成人网| 国产伦精品一区二区三区高清版| 国产欧美日韩免费看aⅴ视频| 国产性色一区二区| 一区二区三区无毛| 91久久精品国产91久久性色| 99re在线精品| 亚洲一区二区三区四区五区午夜| 亚洲欧美久久| 亚洲国产女人aaa毛片在线| 亚洲国产精品悠悠久久琪琪| 亚洲伦理中文字幕| 亚洲自拍偷拍福利| 欧美有码在线观看视频| 久热re这里精品视频在线6| 欧美岛国激情| 欧美午夜视频一区二区| 国产精品一区二区你懂得 | 性久久久久久久久| 久久久久高清| 欧美精品在线观看一区二区| 国产精品观看| 国产一区二区电影在线观看| 亚洲国产成人91精品| aa成人免费视频| 亚洲欧美视频一区| 亚洲人永久免费| 亚洲女优在线| 麻豆九一精品爱看视频在线观看免费| 欧美日韩国产综合新一区| 国产视频一区在线| 亚洲国产日韩欧美一区二区三区| 夜夜躁日日躁狠狠久久88av| 性色av香蕉一区二区| 日韩视频不卡中文| 欧美一二三视频| 欧美福利精品| 国产日韩欧美综合一区| 亚洲欧洲在线观看| 欧美亚洲免费高清在线观看| 亚洲美洲欧洲综合国产一区| 欧美在线视频免费播放| 欧美3dxxxxhd| 国产精品一区视频网站| 91久久精品一区二区别| 午夜精品久久久久久久99樱桃| 亚洲精品日韩欧美| 欧美在线三区| 欧美视频在线视频| 在线精品在线| 亚洲深夜福利在线| 亚洲国产免费看| 欧美一区二区免费视频| 欧美日韩精品一区二区天天拍小说 | 欧美一区在线直播| 亚洲一区二区黄色| 免费成人在线视频网站| 国产麻豆精品在线观看| 亚洲免费大片| 亚洲精品1区| 久久久久在线观看| 国产精品美女在线观看| 亚洲日本在线视频观看| 亚洲国产精品久久人人爱蜜臀 | 欧美成人免费全部| 国产一区二区电影在线观看| 亚洲一区二区av电影| 一本到高清视频免费精品| 免费观看在线综合色| 国产亚洲欧美一区二区| 亚洲一本大道在线| 亚洲视频一区二区免费在线观看| 免费观看成人www动漫视频| 国产一区二区无遮挡| 亚洲欧美日韩精品久久| 亚洲一级在线| 欧美日韩综合网| 亚洲精品在线三区| 亚洲日本在线观看| 久久综合狠狠| 国产主播在线一区| 午夜视频在线观看一区| 欧美亚洲一区二区在线观看| 国产精品成av人在线视午夜片| 亚洲精品自在久久| 99精品热视频| 欧美韩国在线| 亚洲高清视频在线| 亚洲欧洲另类| 欧美成人激情视频| 在线看国产日韩| 最近看过的日韩成人| 久久一区二区精品| 黑人极品videos精品欧美裸| 欧美一级专区免费大片| 久久爱另类一区二区小说| 国产欧美一区二区三区久久| 亚洲制服av| 欧美一二三区精品| 国产农村妇女精品| 欧美与黑人午夜性猛交久久久| 久久国产精彩视频| 国产亚洲一区二区三区| 欧美一区二区视频在线观看2020| 欧美中文字幕在线| 国产欧美在线观看一区| 亚洲综合视频在线| 久久成人羞羞网站| 国产亚洲一区二区三区| 亚洲福利视频网站| 欧美成人免费小视频| 亚洲精品美女91| 亚洲一区999| 国产精品日韩电影| 亚洲一区二区日本| 欧美一区二区三区四区在线观看地址 | 99热免费精品| 午夜精品久久久久久久久久久 | 亚洲激情av| 一区二区三区四区精品| 国产精品草莓在线免费观看| 亚洲欧美网站| 久久婷婷国产麻豆91天堂| 亚洲第一久久影院| 一区二区三欧美| 国产精品盗摄一区二区三区| 亚洲综合精品自拍| 久久五月婷婷丁香社区| 亚洲娇小video精品| 亚洲网站啪啪| 国产亚洲欧洲997久久综合| 亚洲成在人线av| 欧美人交a欧美精品| 亚洲一区二区在| 麻豆久久精品| 一区二区免费在线视频| 欧美在线视频在线播放完整版免费观看 | 午夜精品久久| 韩日在线一区| 亚洲性视频网站| 国产亚洲精品综合一区91| 亚洲人成绝费网站色www| 欧美视频精品在线| 欧美在线观看网站| 欧美伦理一区二区| 亚洲欧美影院| 欧美黄免费看| 午夜国产精品视频| 欧美国产日产韩国视频| 亚洲免费在线电影| 欧美国产三区| 亚洲欧美中文日韩在线| 欧美成人黄色小视频| 午夜精品国产| 欧美日韩精品久久久| 久久精品国产精品亚洲精品| 欧美日韩亚洲网| 亚洲国产精彩中文乱码av在线播放| 欧美日韩在线精品| 亚洲国产成人91精品| 国产精品午夜国产小视频| 亚洲人成网站影音先锋播放| 国产精品网红福利| aa亚洲婷婷| 激情综合久久| 性欧美长视频| 日韩视频精品在线| 美女图片一区二区| 午夜激情综合网| 国产精品theporn| 亚洲精品免费观看| 国产综合香蕉五月婷在线| 亚洲午夜精品国产| 亚洲成人在线视频播放|