国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識別教學(xué)實驗

2017-09-08 02:00:32祝世平周富強魏新國溫思寒
電氣電子教學(xué)學(xué)報 2017年4期
關(guān)鍵詞:圖像識別卷積界面

祝世平, 周富強, 魏新國, 溫思寒

(北京航空航天大學(xué) 儀器科學(xué)與光電工程學(xué)院, 北京 100191)

基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識別教學(xué)實驗

祝世平, 周富強, 魏新國, 溫思寒

(北京航空航天大學(xué) 儀器科學(xué)與光電工程學(xué)院, 北京 100191)

圖像識別是“圖像處理”教學(xué)中的重要內(nèi)容。本文在Linux環(huán)境下使用iTorch notebook可視化界面利用卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)mnist手寫數(shù)字體的準(zhǔn)確識別,并詳細(xì)介紹卷積神經(jīng)網(wǎng)絡(luò)的原理,給出直觀的實驗結(jié)果。教學(xué)實踐表明,通過具有應(yīng)用性和趣味性的實驗可以提高學(xué)生的積極性,加深對課程理論的認(rèn)知,培養(yǎng)其分析問題和解決問題的能力。

圖像識別;卷積神經(jīng)網(wǎng)絡(luò);iTorch

0 引言

圖像識別是“數(shù)字圖像處理”課程的重要內(nèi)容,隨著圖像處理技術(shù)的迅速發(fā)展,圖像識別技術(shù)的應(yīng)用領(lǐng)域越來越廣泛[1]。其中,好的識別技術(shù)是關(guān)鍵所在,怎么樣提高識別率和識別的速度意義重大,直接關(guān)系到圖像識別的實用性和安全性。目前,圖像識別方法大多采用人工方式提取特征,不僅費時費力,而且提取困難;而深度學(xué)習(xí)是一種非監(jiān)督學(xué)習(xí),學(xué)習(xí)過程中可以不知道樣本的標(biāo)簽值,整個過程無需人工參與也能提取到好的特征。作為實現(xiàn)深度學(xué)習(xí)的一項重要技術(shù),卷積神經(jīng)網(wǎng)絡(luò)(CNN)成功訓(xùn)練了首個深層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),已在圖像識別、語音識別等領(lǐng)域取得卓越成績[2]。另外,在Google公司的alphGo運用深度學(xué)習(xí)的方法戰(zhàn)勝圍棋高手李世石后,人們對深度學(xué)習(xí)的好奇掀起了高潮,故為了更好地滿足學(xué)生的求知欲,激發(fā)學(xué)生的積極性,本課程設(shè)計了基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識別實驗,并在iTorch notebook可視化界面下訓(xùn)練MNIST手寫數(shù)據(jù)集,測試其識別準(zhǔn)確度。通過直觀的實驗結(jié)果,使學(xué)生在實驗中達(dá)到以下鍛煉:

(1)熟悉Linux開發(fā)環(huán)境,并掌握對Torch,iTorch的安裝及使用;

(2)了解深度學(xué)習(xí),并理解卷積神經(jīng)網(wǎng)絡(luò)的概念,掌握其實現(xiàn)流程;

(3)更加深刻的理解圖像識別的原理,并對卷積神經(jīng)網(wǎng)絡(luò)技術(shù)在圖像識別上的應(yīng)用有所掌握。

另外,實驗提供的可視化平臺,使學(xué)生可以更直觀地對程序進行調(diào)試及運行,提高了其動手實踐和分析與解決問題的能力。

1 實驗環(huán)境配置

本實驗使用的 iTorch notebook 是一個通過Web界面實現(xiàn)交互的shell,其中iTorch 是 Torch 的 iPython 內(nèi)核。

首先,我們需要一臺配置好Python和Torch7的Linux系統(tǒng),再針對iTorch notebook配置iTorch,iTorch是Torch里面的一個包,它能很輕松地顯示圖片、視頻和音頻等等,但是需要和ipython搭配使用,故需要安裝iPython。

打開終端,輸入:

wget http://ipython.scipy.org/dist/ipython-0.8.4.tar.gz

下載完畢后,輸入解壓縮命令:tar zxvf ipython-0.8.4.tar.gz

切換到解壓縮的目錄:cd ipython-0.8.4

輸入命令安裝:python setup.py install

但此時還是無法使用,需要我們再安裝ipython-notebook,安裝命令如下:sudo apt-get install ipython-notebook

然后,在終端輸入:itorch notebook,在瀏覽器中便會彈出iTorch notebook的Web界面,如圖1所示。

圖1 iTorch notebook的Web界面

點擊右上角的new notebook建立一個新的筆記本,界面如圖2所示。

圖2 建立新筆記本

并在In[]:命令行輸入命令測試,便輸出如下圖3的界面。

圖3 命令測試結(jié)果

由圖3可看出,該界面能夠直觀顯示出我們的輸入,并能分層次輸入,便于學(xué)生對程序更好的調(diào)試及理解。

另外,由于本次實驗需要對圖像進行顯示,故需要安裝image庫,在運行itorch notebook 前在終端鍵入:luarocks install image進行安裝。

最后,本文是針對MNIST數(shù)據(jù)庫中的數(shù)字進行訓(xùn)練及識別,故需要對其進行安裝,在運行itorch notebook前在終端鍵入:luarocks install mnist完成安裝。

MNIST是一個手寫數(shù)字?jǐn)?shù)據(jù)庫,它有60000個訓(xùn)練樣本集和10000個測試樣本集。它是NIST數(shù)據(jù)庫的一個子集。數(shù)據(jù)庫存儲并不是標(biāo)準(zhǔn)的圖像格式,這些圖像數(shù)據(jù)都保存在二進制文件中,所有的圖片都經(jīng)過了尺寸標(biāo)準(zhǔn)化和中心化,圖片的大小固定為28×28。

2 實驗設(shè)計

為了加強學(xué)生對卷積神經(jīng)網(wǎng)絡(luò)在圖像識別的理解和應(yīng)用,提高學(xué)生運用卷積神經(jīng)網(wǎng)絡(luò)等深度學(xué)習(xí)方法來解決實際生活中圖像識別的能力,本實驗要求學(xué)生自行搭建程序運行所需環(huán)境,熟悉對Linux系統(tǒng)的使用,并給出已經(jīng)訓(xùn)練好的訓(xùn)練集,讓學(xué)生自己對測試集中的數(shù)據(jù)進行測試,給出其準(zhǔn)確度,并隨機顯示圖片驗證其正確性。

同時,為了讓學(xué)生更快速的進入實驗狀態(tài),發(fā)揮自己的動手實踐能力,我們給出卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),并給出該識別過程中最主要的模型建立流程。

2.1 卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)

卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Networks)是一種為了處理二維輸入數(shù)據(jù)而特殊設(shè)計的多層人工神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)中的每層都由多個二維平面組成,而每個平面由多個獨立的神經(jīng)元組成[3-5]。

如圖4示,這是一個簡單的卷積神經(jīng)網(wǎng)絡(luò) CNN。

圖4 簡單的CNN

輸入圖像通過和三個可訓(xùn)練的濾波器和可加偏置進行卷積,卷積后在C1層產(chǎn)生三個特征映射圖。然后特征映射圖中每組的四個像素再進行求最大值,加權(quán)值,加偏置,通過一個ReLu函數(shù)得到三個S2層的特征映射圖。這些映射圖再經(jīng)過濾波得到C3層。這個層級結(jié)構(gòu)再和S2一樣產(chǎn)生S4。最終,這些像素值被光柵化,并連接成一個向量輸入到傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),得到輸出。

一般地,C層為特征提取層,每個神經(jīng)元的輸入與前一層的局部感受野相連,并提取該局部的特征,一旦該局部特征被提取后,它與其他特征間的位置關(guān)系也隨之確定下來;S層是特征映射層,網(wǎng)絡(luò)的每個計算層由多個特征映射組成,每個特征映射為一個平面,平面上所有神經(jīng)元的權(quán)值相等。特征映射結(jié)構(gòu)采用影響函數(shù)核小的sigmoid函數(shù)作為卷積網(wǎng)絡(luò)的激活函數(shù),使得特征映射具有位移不變性。

此外,由于一個映射面上的神經(jīng)元共享權(quán)值,因而減少了網(wǎng)絡(luò)自由參數(shù)的個數(shù),降低了網(wǎng)絡(luò)參數(shù)選擇的復(fù)雜度。卷積神經(jīng)網(wǎng)絡(luò)中的每一個特征提取層(C-層)都緊跟著一個用來求局部平均與二次提取的計算層(S-層),這種特有的兩次特征提取結(jié)構(gòu)使網(wǎng)絡(luò)在識別時對輸入樣本有較高的畸變?nèi)萑棠芰Α?/p>

2.2 模型建立流程

基于深度學(xué)習(xí)的圖像識別模型流程主要是:把圖像輸入到神經(jīng)網(wǎng)絡(luò)中,利用深度學(xué)習(xí)的前向傳播和反向傳播誤差等算法來最小化損失函數(shù),更新權(quán)值后,得到一個較優(yōu)的識別模型,然后利用此模型對新的圖像來進行識別。

在該基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識別實驗中,最核心的部分就是此模型的建立。

首先,我們需要首先建立一個容器用來存放各種模塊:

model = nn.Sequential()

然后,放入一個reshape模塊。因為mnist庫的原始圖片是儲存為1列728個像素的。我們需要把它們變成1通道28×28的一個方形圖片。

model:add(nn.Reshape(1, 28, 28))

接下來要把圖片的每個像素除以256再乘以3.2,也就是把像素的取值歸一化到0至3.2之間。

model:add(nn.MulConstant(1/256.0×3.2))

然后是第一個卷積層,它的參數(shù)按順序分別代表:輸入圖像是1通道,卷積核數(shù)量20,卷積核大小5×5,卷積步長1×1,圖像留邊0×0。

model:add(nn.SpatialConvolutionMM(1, 20, 5, 5, 1, 1, 0, 0))

一個池化層,它的參數(shù)按順序分別代表:池化大小2×2,步長2×2,圖像留邊0×0。

model:add(nn.SpatialMaxPooling(2, 2 , 2, 2, 0, 0))

再接一個卷積層和一個池化層,由于上一個卷積層的核的數(shù)量是20,所以這時輸入圖像的通道個數(shù)為20。

model:add(nn.SpatialConvolutionMM(20, 50, 5, 5, 1, 1, 0, 0))

model:add(nn.SpatialMaxPooling(2, 2 , 2, 2, 0, 0))

在接入全連接層之前,我們需要把數(shù)據(jù)重新排成一列,所以有需要一個reshape模塊。

model:add(nn.Reshape(4×4×50))

這個參數(shù)為什么是4×4×50,即800呢?原因是:我們的輸入是1通道28×28的圖像,經(jīng)過第一個卷積層之后變成了20通道24×24的圖像。又經(jīng)過池化層,圖像尺寸縮小一半,變?yōu)?0通道12×12。通過第二個卷積層,變?yōu)?0通道8×8的圖像,又經(jīng)過池化層縮小一半,變?yōu)?0通道4×4的圖像。所以這其中的像素一共有4×4×50=800個。

接下來是第一個全連接層。輸入為4×4×50=800,輸出為500。

model:add(nn.Linear(4×4×50, 500))

兩個全連接層之間有一個ReLU激活層。

model:add(nn.ReLU())

然后是第二個全連接層,輸入是500,輸出是10,也就代表了10個數(shù)字的輸出結(jié)果,哪個節(jié)點的響應(yīng)高,結(jié)果就定為對應(yīng)的數(shù)字。

model:add(nn.Linear(500, 10))

最后是一個LogSoftMax層,用來把上一層的響應(yīng)歸一化到0至1之間。

model:add(nn.LogSoftMax())

至此,模型的建立就完成了。我們還需要一個判定標(biāo)準(zhǔn)。由于我們這一次是要解決分類問題,一般使用nn.ClassNLLCriterion這種類型的標(biāo)準(zhǔn)(Negative Log Likelihood)。

criterion = nn.ClassNLLCriterion()

到這里,網(wǎng)絡(luò)模型的部分就都已經(jīng)完成了,其具體流程圖如下圖5。

圖5 網(wǎng)絡(luò)模型流程圖

3 實驗結(jié)果

本次實驗最終確定神經(jīng)網(wǎng)絡(luò)的迭代次數(shù)(iteration)為30,其正確率如圖6所示,可達(dá)到98%以上,相比較其他算法,錯誤率大大減少,且由觀察可知,只需迭代30次,準(zhǔn)確率便可穩(wěn)定,縮短了訓(xùn)練時間,提高了運行速度。

圖6 6次迭代圖像識別正確率

針對訓(xùn)練好的模型,我們從測試集中隨機選取圖片進行驗證,其結(jié)果示于圖7和8,無論什么形式的手寫體,該算法都能夠?qū)ζ湔_的識別。

圖7圖像識別算例1測試結(jié)果 圖8 圖像識別算例2測試結(jié)果

4 結(jié)語

本文詳細(xì)討論了基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識別實驗的原理和流程,并以iTorch noteboook的可視化界面直觀的顯示出其準(zhǔn)確性。而且,通過讓學(xué)生自行搭建程序運行所需環(huán)境,自行編程對測試集中的數(shù)據(jù)進行測試,并隨機顯示圖片驗證其正確性,大大提高了學(xué)生的編程能力,加深了學(xué)生對深度學(xué)習(xí)的了解,讓學(xué)生更加全面的理解卷積神經(jīng)網(wǎng)絡(luò)在圖像識別中的應(yīng)用。

[1] 鄧柳, 汪子杰. 基于深度卷積神經(jīng)網(wǎng)絡(luò)的車牌識別研究[J]. 成都:計算機應(yīng)用研究, 2016, 33(3): 930-932.

[2] 徐彩云. 圖像識別技術(shù)研究綜述[J]. 菏澤:電腦知識與技術(shù), 2013, 9(10): 2446-2447.

[3] 盧宏濤, 張秦川. 深度卷積神經(jīng)網(wǎng)絡(luò)在計算機視覺中的應(yīng)用研究綜述[J]. 南京:數(shù)據(jù)采集與處理, 2016, 31(1): 1-17.

[4] 張文達(dá), 許悅雷, 倪嘉成, 馬時平, 史鶴歡. 基于多尺度分塊卷積神經(jīng)網(wǎng)絡(luò)的圖像目標(biāo)識別算法[J]. 成都:計算機應(yīng)用, 2016, 36(4): 1033-1038.

[5] 范哲意, 曾亞軍, 蔣姣, 翁澍沁, 劉志文. 視頻人臉識別實驗平臺的設(shè)計與實現(xiàn)[J]. 北京:實驗技術(shù)與管理, 2016, 33(3): 159-161, 165.

Image Recognition Teaching Experiment Based on Convolutional Neural Network

ZHU Shi-ping, ZHOU Fu-qiang, WEI Xin-guo, WEN Si-han

(SchoolofInstrumentationScienceandOptoelectronicsEngineering,BeihangUniversity,Beijing100191,China)

Image recognition is the important content of Image Processing course. In this paper, under the environment of Linux, we realize the accurate handwritten digit recognition from the data of mnist by using a visual interface called itorch notebook, introduce the principle of the convolutional neural network in detail, and give an intuitive experimental results. The teaching experience shows that such kind of experiment which embodies interestingness and practical application has the advantage of increasing the students′ interest in the course, deepen the cognition of curriculum theory and cultivate their ability to analyze and solve problems.

image recognition; convolutional neural network; iTorch

2016-07-05;

2016-11- 11

北京航空航天大學(xué)儀器科學(xué)與光電工程學(xué)院教改項目

祝世平(1970-),男,副教授,主要從事圖像處理教學(xué)和視頻壓縮、計算機視覺、機器視覺在精密測量中的應(yīng)用等方面的研究,E-mail:spzhu@163.com

G426

A

1008-0686(2017)04-0124-04

猜你喜歡
圖像識別卷積界面
基于3D-Winograd的快速卷積算法設(shè)計及FPGA實現(xiàn)
國企黨委前置研究的“四個界面”
基于Resnet-50的貓狗圖像識別
電子制作(2019年16期)2019-09-27 09:34:50
高速公路圖像識別技術(shù)應(yīng)用探討
從濾波器理解卷積
電子制作(2019年11期)2019-07-04 00:34:38
圖像識別在物聯(lián)網(wǎng)上的應(yīng)用
電子制作(2018年19期)2018-11-14 02:37:04
圖像識別在水質(zhì)檢測中的應(yīng)用
電子制作(2018年14期)2018-08-21 01:38:16
基于傅里葉域卷積表示的目標(biāo)跟蹤算法
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
人機交互界面發(fā)展趨勢研究
兰溪市| 贞丰县| 句容市| 天长市| 巴彦淖尔市| 金沙县| 瑞昌市| 奉节县| 棋牌| 文成县| 琼结县| 同心县| 桐乡市| 新余市| 乌鲁木齐县| 肇州县| 凌源市| 临西县| 永寿县| 什邡市| 徐州市| 隆化县| 丹寨县| 寿宁县| 扎鲁特旗| 岫岩| 上虞市| 大关县| 如东县| 白银市| 屏山县| 营口市| 习水县| 建平县| 广饶县| 长沙县| 金沙县| 荔波县| 潜江市| 凌海市| 玉树县|