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

?

基于ARM手寫(xiě)數(shù)字識(shí)別系統(tǒng)*

2018-11-09 02:49:34黃盼盼夏志勇
山西電子技術(shù) 2018年5期
關(guān)鍵詞:手寫(xiě)樹(shù)莓攝像頭

楊 迪,黃盼盼,夏志勇,沈 森

(河南科技大學(xué)信息工程學(xué)院,河南 洛陽(yáng) 471003)

0 引言

數(shù)字是人們?nèi)粘I钪惺褂妙l率極高的符號(hào),而手寫(xiě)數(shù)字更是出現(xiàn)在賬單,考試等各生活場(chǎng)景。若是可以實(shí)現(xiàn)自動(dòng)化手寫(xiě)數(shù)字的識(shí)別,則可以大大改善人工識(shí)別的效果。在實(shí)際應(yīng)用中要實(shí)現(xiàn)手寫(xiě)數(shù)字的自動(dòng)識(shí)別卻有著許多影響精度難點(diǎn)。本文選用神經(jīng)網(wǎng)絡(luò)為識(shí)別算法,結(jié)合攝像頭采集圖像,達(dá)到設(shè)備能自動(dòng)識(shí)別手寫(xiě)數(shù)字的目的。神經(jīng)網(wǎng)絡(luò)法在訓(xùn)練時(shí)期消耗大量的資源與時(shí)間,利用計(jì)算機(jī)的CPU與GPU資源共同協(xié)調(diào)運(yùn)算,完成訓(xùn)練過(guò)程。神經(jīng)網(wǎng)絡(luò)有著很高的學(xué)習(xí)性、抗干擾性等優(yōu)點(diǎn)。在實(shí)際測(cè)試中利用神經(jīng)網(wǎng)絡(luò)法對(duì)于手寫(xiě)數(shù)字識(shí)別的準(zhǔn)確率很高。

1 原理概述

卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行手寫(xiě)數(shù)字識(shí)別,有著更高的精度,容錯(cuò)度、學(xué)習(xí)能力以及適應(yīng)性[1]。

1.1 學(xué)習(xí)框架TensorFlow

TensorFlow可以利用計(jì)算機(jī)的計(jì)算資源,進(jìn)行多線程、多任務(wù)的神經(jīng)網(wǎng)絡(luò)訓(xùn)練任務(wù)[2]。并且可以結(jié)合NVIDA提供的CUDA運(yùn)算平臺(tái)來(lái)調(diào)計(jì)算機(jī)的GPU資源進(jìn)行數(shù)據(jù)計(jì)算,從而提高神經(jīng)網(wǎng)絡(luò)的訓(xùn)練與計(jì)算時(shí)間。

1.2 數(shù)據(jù)集MNIST

MNIST是一個(gè)擁有大量手寫(xiě)數(shù)字模版的手寫(xiě)數(shù)字?jǐn)?shù)據(jù)集[3]。該數(shù)據(jù)集總共包羅有60000個(gè)用于訓(xùn)練集和10000個(gè)用于測(cè)試的測(cè)試集的示例。每一張圖片是28×28個(gè)灰度像素值組成的矩陣,都對(duì)應(yīng)著一個(gè)標(biāo)簽,也就是圖片上的數(shù)字。

1.3 利用Softmax進(jìn)行手寫(xiě)數(shù)字分類(lèi)

識(shí)別手寫(xiě)數(shù)字問(wèn)題可歸為一個(gè)十分類(lèi)的問(wèn)題,通過(guò)設(shè)計(jì)一個(gè)可靠的網(wǎng)絡(luò),輸入圖片在目標(biāo)分類(lèi)上的概率最大就可以實(shí)現(xiàn)分類(lèi)要求[4]。MNIST的每一張圖片是一張手寫(xiě)的阿拉伯?dāng)?shù)字表示0-9中的一個(gè)。為了得到某個(gè)圖片屬于某一個(gè)分類(lèi)的得分值e,可以用下面的方法來(lái)得到:

ei=∑Wi,j·xj+bi

.

(1)

公式(1)表示了輸入的帶分析圖片x是數(shù)字i的類(lèi)別的得分值ei,其中Wi表示網(wǎng)絡(luò)層中的權(quán)重值,j代表給定圖片x像素引用于像素求和,bi代表數(shù)字i類(lèi)的偏置量。得到了得分值,就可以利用softmax把得分值轉(zhuǎn)化為概率pi:

pi=softmax(e)

.

(2)

通過(guò)softmax得到輸入圖片在每一個(gè)目標(biāo)分類(lèi)的概率值,假設(shè)所有輸出的概集為P。找到最大的概率值p=max(P),那么p所對(duì)應(yīng)的類(lèi)就是模型的所屬類(lèi)別。

2 系統(tǒng)描述

較比于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)方法而言,卷積神經(jīng)網(wǎng)絡(luò),則是在它的基礎(chǔ)上加上卷積層與池化層,這樣讓圖片的特征更加突出。

2.1 圖像預(yù)處理

圖像預(yù)處理是手寫(xiě)數(shù)字分類(lèi)的第一步,輸入的標(biāo)準(zhǔn)是28x28的圖片數(shù)據(jù),因此卷積神經(jīng)網(wǎng)絡(luò)無(wú)法直接處理攝像頭采集到的數(shù)據(jù),故先利用opencv對(duì)數(shù)據(jù)預(yù)處理。

2.1.1 Opencv簡(jiǎn)介

Opencv是一個(gè)集成了眾多機(jī)器視覺(jué)相關(guān)算法的開(kāi)源軟件庫(kù),提供源碼編譯,可在多個(gè)平臺(tái)運(yùn)行。Opencv-Python是opencv的ptyhon語(yǔ)言版,我們可以通過(guò)python的pip工具安裝opencv庫(kù),也可以通過(guò)編譯源碼安裝。

2.1.2 圖像采集與預(yù)處理

利用opencv-python可以調(diào)用攝像頭采集數(shù)據(jù),在采集到圖像后要先對(duì)圖像進(jìn)行預(yù)處理,得到符合設(shè)計(jì)模型的圖像輸入。具體步驟如下:

1) Opencv-python提供了VideoCapture()來(lái)打開(kāi)默認(rèn)攝像頭,利用read()函數(shù)可以讀取每一幀的數(shù)據(jù)。

2) 轉(zhuǎn)化灰度圖:轉(zhuǎn)換代碼如下:

gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)

3) 閾值分割:閾值分割即通過(guò)一個(gè)特定的閾值對(duì)圖像的的像素值進(jìn)行二值化。

opencv-python提供了threhold對(duì)圖像進(jìn)行閾值分割。

4) 尋找輪廓:輪廓可當(dāng)作邊界上連在一起的曲線,判定是否有相同的顏色。Opencv-python提供了findContours函數(shù)來(lái)查找圖像的輪廓。找到圖像的輪廓后用drawContours()來(lái)畫(huà)出輪廓,用外接矩形來(lái)表示。

5) 切割圖形:利用python提供的切片方法對(duì)圖像切割。我們的模型是針對(duì)MNIST提供的28x28的圖像進(jìn)行訓(xùn)練,Opencv-python提供了resize()函數(shù)來(lái)對(duì)圖像大小進(jìn)行調(diào)整。

2.2 神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)與實(shí)現(xiàn)

在這一步要實(shí)現(xiàn)數(shù)字的識(shí)別分類(lèi),我們將卷積神經(jīng)網(wǎng)絡(luò)同softmax模型結(jié)合,便于分類(lèi),也提高了識(shí)別精度。

2.2.1 Softmax分類(lèi)

利用tensorflows可以構(gòu)造簡(jiǎn)單的softmax模型進(jìn)行分類(lèi)任務(wù),把輸入圖像看為一個(gè)28×28=784的向量,通過(guò)MNIST數(shù)據(jù)集我們可以得到一個(gè)[60000,784]的張量。在它的第一個(gè)維度可以得到數(shù)據(jù)集中具體一張圖片,通過(guò)的第二個(gè)維度用來(lái)找到每張圖片中的一個(gè)像素點(diǎn)。定義輸入X為一組大小為784的一維矩陣,定義一個(gè)W矩陣為:W=[784,10],同時(shí)定義B=[10],剛可以得到softmax的計(jì)算表達(dá)式:

Y=softmax(W*X+B)

.

(3)

通過(guò)該式可以得到一個(gè)大小為十的一維數(shù)組Y,其中每個(gè)元素就代表了輸入X在各個(gè)分類(lèi)中的概率值。利用交叉熵來(lái)計(jì)算網(wǎng)絡(luò)的損失,將得到的損失值用梯度下降算法來(lái)調(diào)整W與B矩陣中的參數(shù)數(shù)值,從而達(dá)到訓(xùn)練模型提高精度的目的。上述模型經(jīng)過(guò)10 000次訓(xùn)練,經(jīng)測(cè)試,得用softmax模型的精度為92.6%。

2.2.2 卷積神經(jīng)網(wǎng)絡(luò)(CNN)分類(lèi)實(shí)現(xiàn)

Softmax構(gòu)建的模型可以達(dá)到92.6%的精度,利用卷積神經(jīng)網(wǎng)絡(luò)來(lái)處理會(huì)對(duì)于圖片的初始特征提取更加的明顯。

在整個(gè)網(wǎng)絡(luò)中,構(gòu)建了兩個(gè)卷積層,在這兩個(gè)卷積層我們使用Max Pooling作為池化函數(shù),并加上ReLU函數(shù)。使用大小為5×5的卷積核。通過(guò)卷積層可以把原始數(shù)據(jù)對(duì)應(yīng)到特征空間中,而在卷積層后是全連接層,該層可以把特征加權(quán),從而將前層輸出映射到樣本的標(biāo)記空間中去。在網(wǎng)絡(luò)訓(xùn)練中可能出現(xiàn)過(guò)擬合現(xiàn)象,在全連接層后面加上Dropout層減輕參數(shù)的靈敏。在網(wǎng)絡(luò)的最后,使用softmax模型,將前層的輸出轉(zhuǎn)化為每一分類(lèi)的概率[5]。

通過(guò)TensorFlow構(gòu)建模型后,PC電腦對(duì)于模型進(jìn)行訓(xùn)練與分析通過(guò)該模型進(jìn)行40 000次的訓(xùn)練后,得到的模型精度為98.05%。該精度大致滿足要求。

圖1 卷積網(wǎng)絡(luò)訓(xùn)練結(jié)果

3 開(kāi)發(fā)環(huán)境與硬件系統(tǒng)

3.1 軟件環(huán)境

以ARM內(nèi)核的單片機(jī)有STM32、BCM2837等,可以看到基于ATMEGA328P的Arduino平臺(tái)與基于BCM2837的樹(shù)莓派平臺(tái)較其它單片機(jī)提供了更多種開(kāi)發(fā)語(yǔ)言的有效支持。而且樹(shù)莓派可以運(yùn)行Linux/Windows操作系統(tǒng),提供了Python語(yǔ)言的支持[6]。

故本文采用搭載Cortex-A7的ARM處理器的樹(shù)莓派3b為平臺(tái)進(jìn)行開(kāi)發(fā)。

3.2 硬件系統(tǒng)

本系統(tǒng)涉及到的硬件有主控制芯片、SD卡、攝像頭、顯示屏以及用于輔助開(kāi)發(fā)的網(wǎng)絡(luò)模塊、USB鍵盤(pán)與鼠標(biāo)。在系統(tǒng)工作時(shí),SD卡用于存儲(chǔ)樹(shù)莓派的系統(tǒng)數(shù)據(jù)與用到的應(yīng)用程序,樹(shù)莓派的操作系統(tǒng)約占用了3G的空間,為保證有足夠的空間進(jìn)行開(kāi)發(fā)與測(cè)試。故選用容量為8G的內(nèi)存卡。識(shí)別時(shí)的數(shù)據(jù)流向如圖2所示。

圖2 識(shí)別時(shí)的數(shù)據(jù)流向

3.3 器件選取

攝像頭:輸出分辨率大于28×28即可,可以選用的攝像頭有CSI(COMS Sensor,Video Encoder)接口的攝像頭,以USB為接口的攝像頭。經(jīng)比較,最后選用的是樹(shù)莓派所配套的USB攝像頭。

顯示屏:樹(shù)莓派提供了豐富的顯示設(shè)備供使用,可以通過(guò)HDMI連接支持HDMI視頻接口的顯示器。選用了3.5寸大小的電阻屏,它的分辨率為480×320,可支持觸控。

4 系統(tǒng)的調(diào)試結(jié)果與分析

通過(guò)搭建完整的工作系統(tǒng),對(duì)攝像頭實(shí)際采集圖像數(shù)據(jù)處理,來(lái)識(shí)別采集到的手寫(xiě)的數(shù)字內(nèi)容對(duì)比于攝像頭采集的圖像,系統(tǒng)大多能夠準(zhǔn)確的識(shí)別出數(shù)字的內(nèi)容,但是也存在部分錯(cuò)誤識(shí)別現(xiàn)象。總體識(shí)別效果良好。

圖3 識(shí)別結(jié)果

5 結(jié)束語(yǔ)

本文所論述的理論與方法能夠有效地識(shí)別手寫(xiě)數(shù)字圖像,但是經(jīng)過(guò)測(cè)試,在嵌入式平臺(tái)雖然能夠運(yùn)行模型并且有效果識(shí)別,但是速率不高,系統(tǒng)整體對(duì)于干擾的抵抗力比較低。所以模型的簡(jiǎn)化與速率改良與系統(tǒng)適應(yīng)性改良是今后的主要方向。

猜你喜歡
手寫(xiě)樹(shù)莓攝像頭
手寫(xiě)比敲鍵盤(pán)更有助于學(xué)習(xí)和記憶
浙江首試公路非現(xiàn)場(chǎng)執(zhí)法新型攝像頭
攝像頭連接器可提供360°視角圖像
我手寫(xiě)我心
抓住身邊事吾手寫(xiě)吾心
基于樹(shù)莓派的騎行智能頭盔設(shè)計(jì)
電子制作(2019年11期)2019-07-04 00:34:32
基于集成學(xué)習(xí)的MINIST手寫(xiě)數(shù)字識(shí)別
電子制作(2018年18期)2018-11-14 01:48:08
基于樹(shù)莓派的遠(yuǎn)程家居控制系統(tǒng)的設(shè)計(jì)
電子制作(2017年17期)2017-12-18 06:40:43
響應(yīng)面法優(yōu)化紅樹(shù)莓酒發(fā)酵工藝
奔馳360°攝像頭系統(tǒng)介紹
万盛区| 溧水县| 荔波县| 亚东县| 天祝| 石城县| 高淳县| 潞西市| 吉林市| 施甸县| 盘山县| 宿松县| 崇阳县| 中江县| 侯马市| 淄博市| 江津市| 安化县| 荆州市| 明溪县| 乐业县| 麻栗坡县| 小金县| 古田县| 丹东市| 安康市| 东莞市| 汶上县| 巴中市| 柳林县| 防城港市| 正镶白旗| 吴忠市| 永丰县| 沙田区| 邵阳县| 神木县| 张掖市| 新源县| 酉阳| 敦化市|