圖像識別、模式識別調研報告

整理資料看到了去年這時候寫的關於圖像識別的調研報告,測試了三種不同層次的圖像,跑出了結果,可以作爲一個參考數據,搬到CSDN上面,希望對大家有幫助。
以下內容都是去年寫的。


目前讀完了tensorflow的官方文檔,理解並跑通了三個數據集的代碼。三個數據集是三個層次:MNIST數據集是灰度圖像,不考慮結構信息,實現簡單,精度很高;SIFAR-10數據集升級到RGB圖像,考慮結構信息,用卷積神經網絡實現分類;flower數據集是對一種植物的不同類別進行分類,難度更大一點,用四層卷積神經網絡實現,由於目前的設備侷限,達到的精度還不夠理想。
計劃下一步要做的是在多GPU上面訓練,優化模型,達到更高的精度。
再實現圖片中的多實物識別,並標記準確率。

一.測試結果

1.MNIST數據集的分類

MNIST是一個入門級的計算機視覺數據集,它包含各種手寫數字圖片:它也包含每一張圖片對應的標籤,告訴我們這個是數字幾。比如,上面這四張圖片的標籤分別是5,0,4,1。
在這裏插入圖片描述
圖像在計算機中是一堆按順序排列的數字,數值爲0到255。0表示最暗,255表示最亮。你可以把這堆數字用一個長長的向量來表示。然而這樣會失去平面結構的信息。
這個是入門級的神經網絡,不考慮結構信息可以使用簡單的神經網絡算法實現高準確率的識別,準確率達到99.2%,運算時間只有幾分鐘。

2.CIFAR-10 數據集的分類

上面提到的MNIST數據集是隻有黑白顏色的灰度圖,而更普遍的圖片表達方式是RGB顏色模型,即紅(Red)、綠(Green)、藍(Blue)三原色的色光以不同的比例相加,以產生多種多樣的色光。
CIFAR-10 數據集的分類是機器學習中一個公開的基準測試問題,其任務是對一組大小爲32x32的RGB圖像進行分類,這些圖像涵蓋了10個類別:飛機, 汽車, 鳥, 貓, 鹿, 狗, 青蛙, 馬, 船以及卡車。
在CPU上面訓練,精度目前只達到65%左右。
據官方文檔,在一個GPU上經過幾個小時的訓練後,該模型最高可以達到86%的精度。

3.flower數據集分類

Flower數據集是五種不同的花卉圖片文件,分別在五個文件夾存放五種花卉的圖片。
處理過程:將所有的圖片resize成100*100,讀取圖片時將圖片依據文件夾名稱分別標記爲0、1、2、3、4。前80%爲訓練集,後20%爲驗證集。然後設計一個四層的卷積神經網絡,實現模型訓練驗證,目前一次循環要幾分鐘,循環20次達到的精度不到70%。

二.圖像識別原理

卷積神經網絡就是讓權重在不同位置共享的神經網絡。
卷積神經網絡大致就是covolutional layer, pooling layer, ReLu layer, fully-connected layer的組合,例如下圖所示的結構。
在這裏插入圖片描述

局部連接

在卷積神經網絡中,我們先選擇一個局部區域,用這個局部區域去掃描整張圖片。 局部區域所圈起來的所有節點會被連接到下一層的一個節點上。

空間共享

當filter掃到其他位置計算輸出節點yi,時,w1,w2,w3,w4,包括b0是共用的。

輸出空間表達

圖片不用向量去表示是爲了保留圖片平面結構的信息。 同樣的,卷積後的輸出若用上圖的排列方式則丟失了平面結構信息。 所以我們依然用矩陣的方式排列它們,就得到了下圖所展示的連接。

Depth維的處理

圖片的普遍表達方式是下圖這樣有3個channels的RGB顏色模型。
在這裏插入圖片描述

Zero padding

4x4的圖片被2x2的filter卷積後變成了3x3的圖片,每次卷積後都會小一圈的話,經過若干層後豈不是變的越來越小? Zero padding就可以在這時幫助控制Feature Map的輸出尺寸,同時避免了邊緣信息被一步步捨棄的問題。

形狀、概念抓取

卷積的每個filter可以探測特定的形狀。又由於Feature Map保持了抓取後的空間結構。若將探測到細小圖形的Feature Map作爲新的輸入再次卷積後,則可以由此探測到“更大”的形狀概念。

多filters

每個filter可以抓取探測特定的形狀的存在。

非線性

和前饋神經網絡一樣,經過線性組合和偏移後,會加入非線性增強模型的擬合能力。

輸出尺寸控制

現在我們知道了一個卷積層的輸出也是一個長方體。 要考慮這個輸出長方體的(width, height, depth)由哪些因素決定和控制。

矩陣乘法執行卷積

如果按常規以掃描的方式一步步計算局部節點和filter的權重的點乘,則不能高效的利用GPU的並行能力。 所以更普遍的方法是用兩個大矩陣的乘法來一次性囊括所有計算。

Max pooling

整個圖片被不重疊的分割成若干個同樣大小的小塊(pooling size)。每個小塊內只取最大的數字,再捨棄其他節點後,保持原有的平面結構得出output。

全連接層

當抓取到足以用來識別圖片的特徵後,接下來的就是如何進行分類。 全連接層(也叫前饋層)就可以用來將最後的輸出映射到線性可分空間。 通常卷積網絡的最後會將末端得到的長方體平攤(flatten)成一個長長的向量,並送入全連接層配合輸出層進行分類。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章