999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

全卷積神經網絡仿真與遷移學習

2019-10-08 06:43:30付鵬飛許斌
軟件 2019年5期
關鍵詞:人臉識別

付鵬飛 許斌

摘 ?要: 人們捕獲視圖,從視圖中提取特征并理解含義。同理,駕駛員也通過視覺實現對街景的判斷。我們期待, 有一天機器能夠通過自主計算完成同樣的工作。得益于計算機的強大處理能力,基于CNNs(Convolutional Neural Networks, 卷積神經網絡)的深度學習算法能夠很好地完成目標識別等計算機視覺任務。但在實際工業應用中,資源往往受限,較大的網絡不利于嵌入式移植。通常一個完備的CNN網絡包含卷積層、池化層和全連接層[1],本文參考文章[2]中的方法,舍去池化層和全連接層,使用卷積層代替,并對幾種網絡進行了仿真實驗及結果分析,尋找在受限平臺使用CNN網絡的方法。

關鍵詞: 人臉識別;直方圖均衡化;主成分分析;支持向量機

中圖分類號: TP391. 41 ? ?文獻標識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.05.042

本文著錄格式:付鵬飛,許斌,等. 全卷積神經網絡仿真與遷移學習[J]. 軟件,2019,40(5):216221

【Abstract】: As we know, vision is very important for human to understand the world. Similarly, drivers also use vision to anlysis street scene. What we had being expecting is that one day machine can do the same work by itself through computer vision. Thanks to the powerful processing ability of the computer, the deep learning algorithm based on CNNs (Convolutional Neural Networks) can accomplish computer vision tasks well such as object detection. However, in most industrial environment, resources are limited, and larger networks are not easy to embedded transplantation .Now, the architectures of main CNNs used for machine vision include convolution layers and pooling layers alternately and ended with several fully-connected layers [1]. In fact, we can use convolution layers to replace pooling layers, as described in paper [2]。

【Key words】: CNN; Computer vision; Transfer lEARNING; Driving assistance

0 ?引言

隨著現代社會的不斷發展,汽車已成為了人們最主要的交通工具,傳統的駕駛行為在處理很多突發情況時,完全依賴于駕駛人員在面對突發情況時的心理素質及駕駛經驗,非常容易出現危險的情形。而且長時間遠距離的駕駛,會造成駕駛員疲勞,注意力不集中,從而導致交通事故頻發。主流的汽車制造商已普遍采取了被動安全的策略,來降低事故對行人的傷害。

但是這種被動的保護措施還遠遠不夠,如果能通過技術手段,主動的輔助駕駛員采取措施,減少甚至避免人員的傷亡,這將會是一項非常具有價值和意義的工作。汽車要能夠輔助人類駕駛,首先就要求汽車能夠感知到外部的環境,理解環境的構成類型并準確定位。目前主要使用雷達和光學攝像頭等傳感設備作為傳感器,通過算法來實現對外部環境的感知。目前的基于CNN的神經網絡,具有較大的參數量,訓練過程中要消耗大量的時間,而且在實際的移植的過程時對移植系統的資源要求高,制約了CNN網絡向較小的平臺或或資源受限的平臺擴展。

汽車上很多智能部件以工控機、嵌入式環境為主,屬于資源受限平臺。盡管具有多層和復雜結構的CNN網絡具有很好的檢測精度,但是在這樣龐大的網絡在有限資源的平臺上往往效果不佳。論文[2]提出了以全卷積網絡的模型,簡化經典的CNN網絡模型,也能夠達到較高的準確率。本文使用論文[2]過實際修改、編寫、仿真分析A、B、C三種網絡結構,研究CNN網絡簡化的可能方法,研究大型的神經網絡向受限平臺遷移的可能性。

1 ?相關工作

卷積神經網絡可以簡化認為是多個卷積模塊的不斷循環運算并輸出特征圖[1]的過程,通常來說卷積模塊包含卷積運算、整流、池化三個部分。通過卷積運算把結果傳導至下一層,并且多次重復這樣的操作,如圖1所示。在整個計算過程中,圖片的大小逐步減少,卷積核的個數不斷增多,輸出尺寸較小而通道較多(較深)的特征向量圖,最后通過Softmax函數輸出數以確定目標屬于某一個物體分類的概率值。目前CNN有四個主流的模型AlexNet[3]、VGGNet[4]、GoogleNet[5]、ResNet[6]模型。盡管不同結構的神經網絡,在卷積核大小的選取,卷積核的組合方式,以及向前傳播的連接方法會有不同。但總體來看其主要的結構還是如圖1所示,通過卷積模塊數量的堆疊而把網絡推向更深,通過更深的網絡學習出特征圖。更深網絡意味著具有更多的參數,需要占用更多的資源,越不利于向受限平臺的移植。

參考文獻[2]中提出了一種基于全卷積網絡結構的方法,去掉了池化層、全連接層,相比VGGNet,GoogleNet,ResNet采用了較少的深度,以實現模型的精簡。這種思路非常有利于在受限平臺下的嵌入式移植,有利于在特定工作環境下的高效運行。參考文獻[2]方法包含表1-6中所示的A,B,C,Model Stride-CNN-C,ConvPool-CNN-C network,All-CNN-C一共6種模型。本論文通過python編程實現了參考論文中所描述的方法,在數據集CIFAR-10上訓練它們,并在數據集CIFAR-10上進行測試,完成圖像分類。隨后嘗試了基于CIFAR-10數據集訓練的全卷積網絡模型的遷移學習,把學習到的模型應用于CIFAR-100數據集的小子集class1和class2,分析結果,以嘗試在受限平臺下基于CNN算法的輕量化、專門化研究。

2 ?實驗操作

仿真所使用的系統環境Intel Xeon E5-2665@ 2.4 GHz x 32 CPU,64 GB內存,256 GB SSD,1個Nvidiz TITAN Xp GPU獨立顯卡和Ubuntu 16.04 64 bit操作系統。使用pyton3.6.6版本安裝了Anaconda 3-5.2,pip 10.0.1,pytorch 0.4.1.post2,CUDA 9.0.176系統。在上述環境中完成了以下工作:

1)參考論文中提到的方法,通過python編寫的實現代碼[7-8],包含A,B,C,Stride-CNN-C,ConvPool-CNN-C network,All-CNN-C一共6種模型

2)在CIFAR-10數據集上訓練模型A

3)在CIFAR-10數據集上訓練模型B

4)在CIFAR-10數據集上訓練模型C

5)在CIFAR-10數據集上訓練模型Strided- CNN-C

6)在CIFAR-10數據集上訓練模ConvPool- CNN-C

7)在CIFAR-10數據集上訓練模型All-CNN-C

8)在CIFAR-10數據集上訓練模型All-CNN-C

9)在CIFAR-10數據集上訓練模型All-CNN-C

10)在CIFAR-10子數據集1上使用遷移學習訓練All-CNN-C,固定前面層的參數只訓練全連接層參數

11)在CIFAR-10子數據集2上使用遷移學習訓練All-CNN-C,固定前面層的參數只訓練全連接層參數

12)在CIFAR-10子數據集1上使用遷移學習訓練All-CNN-C,訓練全部層參數

13)在CIFAR-10子數據集2上使用遷移學習訓練All-CNN-C,訓練全部層參數

3 ?模型結構

模型A是一個包含8個中間層的結構(除去輸入層和輸出層),采用了5*5和3*3的卷積核,采用了3*3的最大值池化操作,采用了邊界填充方法,通道數由輸入的RGB的3通道,加深至96,192通道,最后減少至10通道輸出,A模型的特點是層數較少,保留了最大池化層,移除了全連接層用全局池化來代替。模型B和模型A較為類似,比模型A多了兩層1*1卷積運算,達到了10個中間層,保留了最大池化層,移除了全連接層用全局池化來代替。模型C和模型B較為類似,層數和結構一致,只是卷積核大小的選擇,以及填充的數量上有變化。模型Strided-CNN-C在模型C的基礎上移除了最大池化層,微調了滑動步長,保持10個中間層。 模型ConvPool-CNN-C在模型C的基礎上增加了兩個3*3的卷積層,整個模型變得更深達到了12個中間層。模型 All-CNN-C是在模型C的基礎上去除了最大池化層,微調了滑動步長,保持有10個中間層。模型 All-CNN-C形式很簡潔,沒有池化層和全連接層,整個模型是一個全卷積網絡構架。6個模型全部采用了dropout的正則化方法,減少過擬合。

兩個遷移學習的模型是使用的All-CNN-C的模型(全連接層訓練feature extractor和全部參數訓練fine tuning)。所有的模型都是使用的線性整流激活函數(ReLU),用于文獻[2]中提到的在每一卷積層之后進行非線性計算。Kaiming法向函數用于初始化每一個卷積層的參數。Dropout技術用于對模型的正則化,對輸入圖片用20% dropping 概率,在池化層后面或者被卷積所替代的池化層后面采用50%的dropping概率。2個1*1卷積層用于代替常用的全連接層,最后一個卷積層直接用全局平局池化(global average pooling)輸出至每一個softmax函數用于分類。

文中的6個模型相比VGGNet[4]、GoogleNet[5]、ResNet[6]幾個主流模型,其特點在于層數較少,卷積核大小相對固定,也沒有復雜的跳層連接,舍去了池化層和全連接層。整體結構相對簡潔,是一個由全卷積網絡構成的結構。其中有一個新穎點是在最開始的輸入層也采用20%dropout正則化方法,減少過擬合。這樣的模型結構利于理解,訓練時間也較端,單個模型在幾個小時之內就可以訓練完成。

4 ?超參數設置及權重初始化

本文訓練模型時是采用的是隨機梯度下降(SGD)的方法優化模型,設置了0.9的動量,每一個batch的大小是32個樣本圖片,損失函數使用的是Softmax函數。模型A、B、C、Strided-CNN-C、ConvPool-CNN-C、All-CNN-C的權重衰減率為0.001,初始學習率為0.001,一共迭代350輪,分別在[200, 250, 300]輪時以0.1的比率減小學習率。數據集CIFAR-10包含50000張訓練樣本圖片,10000張測試樣本圖片,共計60000張圖片,10種分類,每種分類包含6000張圖片,圖片為32*32的彩色圖片。本文在使用數據集CIFAR-10訓練模型時,將50000個訓練樣本拆分成了兩部分,其中49000張樣本圖片用于訓練, 余下的1000張樣本圖片用于驗證,10000張測試樣本圖片用于測試。數據集CIFAR-100也包含50000張訓練樣本圖片和10000張測試樣本圖片,但該數據集有100種分類,每種分類包含600張圖片,圖片也是32*32的彩色圖片,在本實驗中使用CIFAR-100數據集主要是為了進行遷移學習訓練,選用了其中的2個子數據集,分別為class1和class2,每個子數據集中包含5000張訓練樣本圖片和1000張測試樣本圖片,且每個子數據集只包含10種分類。本實驗將5000個訓練樣本分成了兩部分,其中4900個樣本用于訓練, 余下的100個樣本用于驗證,1000個測試樣本還是用于測試。更多的細節可以參看表7。

驗證是在訓練過程中進行的,如果在驗證時發現預測準確率不高,則需要調整初始學習率、權重衰減率等參數,比如在驗證時發現準確率提高得很慢,可以嘗試減小或增大初始學習率,學習率較大時,會導致在優化權重及偏重等參數時,參數的改變較大,這樣就可能會出現躍過全局或局部最優點,從而比較難于收斂;如果學習率較小時,會導致在優化權重及偏重等參數時,參數的改變較小,這樣可能會出現訓練得比較慢,需要較長時間才會收斂到較好的全局最優點或局部最優點。另外在加載數據集時,也需要對數據利用訓練集數據的均值和方差進行正則化處理,以使數據盡量圍繞中心分布,避免出現狹長的山谷狀分布,如果出現這種山谷狀分布,以某個設定的學習率訓練模型時,會導致在窄的方向上很容易躍過全局或局部最優點,而在狹長的方向上卻要很久才能達到全局或局部最優點,從而使整個訓練過程收斂得很慢,甚至很難達到預期效果。測試是在整個訓練都完成后才進行的,用于檢驗模型訓練的效果。

在CIFAR-100數據集的數據集1和數據集2子集上實現和訓練了兩種遷移學習模型。每個子集有5000個訓練樣本和1000個測試樣本。訓練樣本被分成兩部分,一部分是前4900個樣本用于訓練,另一部分是剩下的100個樣本用于驗證。兩種轉移學習模型都是基于All-CNN-C模型,并且使用訓練完成的All-CNN-C模型的參數,來幫助在新的數據集上訓練。第一個使用已經訓練好的All-CNN-C模型作為特征提取器。它凍結了前8個卷積層,并在CIFAR-100數據集的兩個子集上重新訓練了最后一個卷積層。第二個使用已經訓練好的模型All-CNN- C作為fine tuning。它使用已經訓練好的參數作為初始參數,使用CIFAR-100數據集子集進行新的訓練并重新計算出全部的參數。由于數據集CIFAR-100的子集class1和class2也具有與CIFAR-10相同的10個類,這意味著兩個轉移學習模型可以與全CNN-C共享相同的網絡結構,并且不再需要修改最后的卷積層。

5 ?實驗分析

從表8可以看出,精簡之后的全卷積網絡(前面6個模型),依然達到了較高的檢測精度,從CIFAR-100數據集的檢測結果顯示完全不比一些復雜的結構差太多。至2014年由VGG開始提出的觀點,CNN網絡越深對檢測結果越有利,在避免梯度消失的情況下,整個深度學習的研究方向是朝著更深網絡結構前進。誠然隨著網絡加深,檢測的結果也隨之提升,但是龐大網絡需要耗費大量的計算資源,訓練時間和檢測速度回會變慢,這對于嵌入式的移植往往是不利的。采用論文[2]的方法,發現一些精簡的模型也能帶來不錯的效果,為嵌入式移植提供了另外一種思路。雖然筆者實際仿真后的結論和論文[2]中的結論有一些微小的差距,其檢測精度比參考論文中的結論稍微低一點,但總體很接近,詳情可以參看表8。有可能筆者還需要在超參數選擇、初始權重設置等方面需要多做嘗試和優化。 All-CNN-C基于CIFAR-100子數據1和子數據集2的檢測結果優于論文[2]中的結果。考慮到CIFAR-100中子數據集1和子數據集2相比論文中的全部CIFAR-100數據要小得多,所以不太適合直接進行比較。

All-CNN-C模型在數據集CIFAR-100的子數據集1和子數據集2上進行遷移學習訓練時,使用了在數據集CIFAR-10上訓練好的All-CNN-C模型參數來初始化新的All-CNN-C模型,然后用這個初始化好的新All-CNN-C模型分別訓練了兩個遷移學習模型,第一個是特征提取器(feature extractor),即固定住除最后一個分類層外的其它卷積層,只用新數據集訓練最后的分類層,第二個是使用新數據集調校(fine tuning)所有層的參數,實驗結果表面,第二個調校模型的準確率明顯優于第一個特征提取模型。可見對于特有應用環境下,使用當前環境特有的數據采用fine tuning類型的遷移學習的方法進行訓練,能夠更好的提升當前特定環境下檢測的準確性。這十分有利于通用模型向專有工業領域應用擴展,在通用模型基礎上使用 fine tuning遷移學習,以實現通用模型向某一領域的更好的擴展,提升某一個特定環境下檢測的準確率。

6 ?結論

雖然全卷積網絡結構非常簡單,但是從實驗結果來看依然表現得不錯,在CIFAR-100數據集上達到了很好的精度。池化和全連接也許并不是CNN網絡中最必須的結構。由此看來CNN未來的發展的趨勢有可能在保證精度的情況下模型變得更加簡單,以便于在不同環境下的應用。通過遷移學習的方法能夠避免從零開始訓練模型,共享一些權重參數,也能夠訓練特定環境下的數據以提升在這個環境下的檢測的準確性。在受限平臺如單片機、工控機,不通網絡環境或者緊急情況需要依賴本地資源計算的場景,非常適用精簡模型。更精簡、更具有針對性樣本資料訓練,也許能夠帶領CNN網絡進入更廣闊的工程應用領域。

參考文獻

[1] Murphy J. An Overview of Convolutional Neural Network Architectures for Deep Learning [J]. 2016.

[2] Springenberg J T, Dosovitskiy A, Brox T, et al. Striving for simplicity: The all convolutional net [J]. arXiv preprint arXiv:1412.6806, 2014.

[3] Krizhevsky A, Sutskever I, Hinton G E. Imagenet classi-fication with deep convolutional neural networks[C]//Adv-ances in neural information processing systems. 2012: 1097- 1105.

[4] Simonyan K, Zisserman A. Very deep convolutional net-works for large-scale image recognition [J]. ArXiv preprint arXiv: 1409.1556, 2014.

[5] Szegedy C, Liu W, Jia Y, et al. Going deeper with convo-lutions[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2015: 1-9.

[6] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.

[7] https://pytorch.org/docs/stable/

[8] https://github.com/pytorch/vision/blob/master/torchvision/datasets/cifar.py

猜你喜歡
人臉識別
人臉識別 等
作文中學版(2022年1期)2022-04-14 08:00:34
揭開人臉識別的神秘面紗
學生天地(2020年31期)2020-06-01 02:32:06
人臉識別技術的基本原理與應用
電子制作(2019年14期)2019-08-20 05:43:34
人臉識別技術在高速公路打逃中的應用探討
基于(2D)2PCA-LBP 的人臉識別方法的研究
電子制作(2017年17期)2017-12-18 06:40:55
淺談人臉識別技術
人臉識別在高校安全防范中的應用
電子制作(2017年1期)2017-05-17 03:54:46
巡演完美收官 英飛拓引領人臉識別新潮流
人臉識別在Android平臺下的研究與實現
基于Metaface字典學習與核稀疏表示的人臉識別方法
主站蜘蛛池模板: 久久香蕉国产线看精品| 国产成人禁片在线观看| 国产情精品嫩草影院88av| аⅴ资源中文在线天堂| 99成人在线观看| 香蕉eeww99国产在线观看| 国产乱人伦偷精品视频AAA| 国产精品午夜福利麻豆| 毛片网站在线看| V一区无码内射国产| 亚洲人成影院在线观看| 免费在线成人网| 国产日韩丝袜一二三区| 中文字幕免费视频| 久久这里只有精品国产99| 亚洲成a人片| 99在线视频免费| 国产福利拍拍拍| 亚洲免费三区| 欧美精品综合视频一区二区| 色天天综合久久久久综合片| 国产成年无码AⅤ片在线| 91精品啪在线观看国产91九色| 欧美激情综合| 欧类av怡春院| 欧美综合成人| 亚洲系列无码专区偷窥无码| 久久毛片网| 91久久夜色精品国产网站| 97久久精品人人| 亚洲国产精品无码久久一线| 日韩无码精品人妻| 国产精品页| AV无码无在线观看免费| 国产一级小视频| 日本欧美精品| a在线观看免费| 色婷婷久久| 国产自在自线午夜精品视频| 欧美一级高清片欧美国产欧美| 狠狠干欧美| 久久永久精品免费视频| 欧美一级高清免费a| 青青草国产在线视频| 国产精品永久免费嫩草研究院| 97久久精品人人做人人爽| 香蕉99国内自产自拍视频| 国产黄色免费看| 丝袜国产一区| 日韩久草视频| 久久精品人人做人人| 国产精品视频系列专区| 在线毛片网站| 国产91在线|日本| 亚洲Aⅴ无码专区在线观看q| 精品伊人久久久大香线蕉欧美| 欧美α片免费观看| 日韩精品一区二区三区免费在线观看| 精品91视频| 国产精品嫩草影院视频| 亚洲黄色成人| 欧美啪啪视频免码| 色综合五月| 国产一级α片| 亚洲国内精品自在自线官| 日韩精品久久无码中文字幕色欲| 亚洲国产中文在线二区三区免| 欧美一级高清片欧美国产欧美| 亚洲精品无码AⅤ片青青在线观看| 无码久看视频| 国产一级毛片高清完整视频版| 亚洲第一成年免费网站| 91丨九色丨首页在线播放 | 欧美精品在线观看视频| 中国国产一级毛片| 亚洲Va中文字幕久久一区 | 一本色道久久88综合日韩精品| 久久精品一卡日本电影 | 国产网友愉拍精品| 中文字幕乱妇无码AV在线| 97成人在线视频| 美女一级免费毛片|