天天看點

基于卷積神經網絡的以圖搜圖算法實作

                                                基于卷積神經網絡的以圖搜圖算法實作

       如果用這個名稱去搜尋論文,一定有不少。為什麼了,因為從原理上來看,卷積神經網絡就非常适合找圖檔的相似的地方。想想看,許多大牛、小牛、微牛的文章都是說如何從mnist中、從CIFA10中、從CIFA100中去找到相似的圖檔。那麼,反過來想一想,如果那麼複雜的資料卷積神經網絡都能夠去處理,那麼對于這種相對來說,比較簡單的“以圖搜圖”的需求,應該更容易來解決。這裡的神經網絡解決這個問題,還是嘗試得到一種較為通用的問題解決方法。

        零、資料集的建立

        基于之前的一些項目,我建立這樣的資料集: 

        訓練資料:

基于卷積神經網絡的以圖搜圖算法實作
基于卷積神經網絡的以圖搜圖算法實作
基于卷積神經網絡的以圖搜圖算法實作

       測試資料

基于卷積神經網絡的以圖搜圖算法實作
基于卷積神經網絡的以圖搜圖算法實作

      我認為,在本項目中."花紋"這個特征是比較重要的。因為顔色不是重點。在訓練的時候,因為圖像是可以被選擇的,傾向于采用比較小的,能夠完全展示一個單元的圖像來做訓練;在測試的時候,沒有具體要求。

       以前對手寫體采用的投影的方法,在解決這個問題的時候不适合,因為這些圖像沒有展現出突出的投影差異;而如果采用"哈希感覺"的方法,也是不适合的。因為這些圖像中可能存在重複的單元。、

       如果采取之前對手寫體的識别方法,結果如下

   交叉訓練,特征次元5,神網層數80

平均正确率0.250000,最低正确率0.000000

交叉訓練,特征次元5,神網層數100

平均正确率0.221591,最低正确率0.000000

交叉訓練,特征次元5,神網層數120

平均正确率0.267045,最低正确率0.000000

交叉訓練,特征次元5,神網層數140

平均正确率0.204545,最低正确率0.000000

交叉訓練,特征次元5,神網層數160

平均正确率0.159091,最低正确率0.000000

交叉訓練,特征次元10,神網層數20

平均正确率0.306818,最低正确率0.000000

交叉訓練,特征次元10,神網層數40

平均正确率0.323864,最低正确率0.000000

交叉訓練,特征次元10,神網層數60

交叉訓練,特征次元10,神網層數80

平均正确率0.295455,最低正确率0.000000

交叉訓練,特征次元10,神網層數100

平均正确率0.278409,最低正确率0.000000

交叉訓練,特征次元10,神網層數120

交叉訓練,特征次元10,神網層數140

平均正确率0.193182,最低正确率0.000000

交叉訓練,特征次元10,神網層數160

平均正确率0.227273,最低正确率0.000000

交叉訓練,特征次元15,神網層數20

平均正确率0.363636,最低正确率0.125000

交叉訓練,特征次元15,神網層數40

平均正确率0.289773,最低正确率0.000000

交叉訓練,特征次元15,神網層數60

交叉訓練,特征次元15,神網層數80

平均正确率0.284091,最低正确率0.000000

交叉訓練,特征次元15,神網層數100

平均正确率0.244318,最低正确率0.000000

交叉訓練,特征次元15,神網層數120

平均正确率0.232955,最低正确率0.000000

交叉訓練,特征次元15,神網層數140

交叉訓練,特征次元15,神網層數160

交叉訓練,特征次元20,神網層數20

交叉訓練,特征次元20,神網層數40

交叉訓練,特征次元20,神網層數60

交叉訓練,特征次元20,神網層數80

交叉訓練,特征次元20,神網層數100

平均正确率0.329545,最低正确率0.000000

交叉訓練,特征次元20,神網層數120

交叉訓練,特征次元20,神網層數140

交叉訓練,特征次元20,神網層數160

平均正确率0.238636,最低正确率0.000000

這個結果是非常的爛了,其原因和前面我提到的應該是喲關系的。

是以,隻有gaobor或者類似nns的這種方法,才可能去解決問題。

        一、利用mlp和gabor特征來解決問題;(gabor是否更好了?這裡前面給出的就是對比結果)

         在圖像進行中,gabor函數是一個用于邊緣提出的線性濾波器。其頻率和方向非常類似人的視覺系統。是以非常适合紋理表達和分離。在空間域中,一個二維gabor濾波器是一個由正弦平面波調制的高斯核函數。

       生物實驗發現gabor濾波器能夠很好地近似單細胞的感受野函數等。

        一般來說,gabor濾波的方法是:不同紋理一般具有不同的中心頻率和帶寬,根據這些頻率和帶寬可以設計一組gabor濾波器對紋理圖像進行過濾,每個gabor濾波器隻允許于其頻率相應的紋理順利通過,。從各個濾波器的輸出結果中分析和提出紋理特征,用于之後的分類和分割任務。

         具體步驟:

         1、将輸入的圖像分為3*3和4*4

         2、建立gabor濾波器組,選擇4個尺度、6個方向,共24個濾波器;

         那麼具體的過程,目前的代碼是無法完成的。

        gabor特征隻有對于對于實際生活中出現的圖像,有比較好的原子區分能力,得到類似cnns的這種結構。

        這裡比較關鍵的一個問題就是“什麼事gabor特征,那個數值是需要最後來使用的”。中間我做出了一些解決的方法,效果是有的,但是不是非常好。

        二、訓練卷積神經網絡來解決問題;

        三、小結和反思

        為什麼要寫這樣的一篇文章。因為經過一段時間關于神經網絡和卷積神經網絡的學習之後,我一直在尋找神經網絡的實際應用。相比較于之前研究學習過的其它技術,卷積神經網絡具有以下特點:

        1、原理比較複雜;

        2、工具比較難找;

        3、參數調整比較複雜;

        4、調試需要大量時間,因為一次訓練就需要大量資源。

        這幾點就決定了卷積神經網絡的研究需要較多的時間,是以學習也花了很長的時間。那麼在使用這個方面,也是隻能跑一跑mnist和CIFA10之類的東西。如果想要最終利用于驗證碼識别的話,還有較長一段路需要來走。這個中間,我就需要有一個自己的項目來填補空白。

        這裡我選擇的是“以圖搜圖”的需求。這個需求在現實中,也是比較常見的。之前的思路也隻能是類似于手寫體識别一樣,通過采集投影特征,進行距離運算等。現在,因為對卷積神經網絡的初步研究,我認識到了,對于這樣的圖像來說,哪些特征是最重要的、哪種訓練方法是最可行的。

        是以我将這個“自我項目”分為兩個部分,一個部分是用gabor+mlp來實作,一個部分是用卷積神經網絡來實作。對待于前者,無論是gabor還是mlp都已經有代碼積累;而卷積神經網絡,目前還沒有比較系統的解決方法,并且是否選擇lanet5的實作?這些都需要驗證!我認為,通過這個自我項目,能夠把對神經網絡的了解和應用向前推進一大步!

        我計劃利用一周的時間将這些完成,如果這些都完成之後,就應該反思積累,哪些是影響整體項目的關鍵節點,是資料集的建立?是資料結構的細節?還是訓練?最後顯示的界面如何來做?把這些做好,理清産學研之間的關系,為未來增加效益!

        此外,神經網絡的程式往往都比較複雜,如何将這種程式也好,需要對能夠允許的代碼的充分了解和應用。

來自為知筆記(Wiz)

目前方向:圖像拼接融合、圖像識别

聯系方式:[email protected]

繼續閱讀