亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Caffe網(wǎng)絡(luò)模型的Faster R-CNN算法推理過程的解析

        2018-02-09 17:54:28郭葉軍汪敬華
        現(xiàn)代計算機(jī) 2018年1期
        關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò)維度

        郭葉軍,汪敬華

        (1.英特爾亞太研發(fā)有限公司,上海 200241;2.上海工程技術(shù)大學(xué),上海 201620)

        0 引言

        Faster R-CNN是用深度學(xué)習(xí)來進(jìn)行目標(biāo)檢測的算法[1],并在PASCAL VOC目標(biāo)檢測競賽[2]中取得了很好的成績。從理論研究的角度來解析這個算法,存在不易描述清楚的理論問題;而從源代碼的角度來講述該算法,則又拘泥于編程細(xì)節(jié),因此,從算法對應(yīng)的網(wǎng)絡(luò)模型出發(fā),明確網(wǎng)絡(luò)模型中每一層的輸入輸出,并概述其功能,就能把握算法的整體思路,為后續(xù)的深入研究奠定基礎(chǔ)。

        眾所周知,有監(jiān)督的深度學(xué)習(xí)算法包括兩個方面:一是前饋(forward)的推理過程(inference),根據(jù)輸入和網(wǎng)絡(luò)模型參數(shù),得到輸出;二是反饋(backward)的訓(xùn)練過程(train),根據(jù)輸入和預(yù)期的輸出,調(diào)整網(wǎng)絡(luò)模型參數(shù)。本文僅關(guān)注推理過程,因為理解了推理過程,也就容易理解訓(xùn)練過程。提出Faster R-CNN算法的作者,在其GitHub主頁[3]中提供了基于Caffe網(wǎng)絡(luò)模型[4]的代碼,其中也包括一個demo示例程序,其網(wǎng)址見文獻(xiàn)[6],通過分析這個demo,來解析這個算法。

        1 算法解析

        1.1 算法的網(wǎng)絡(luò)模型

        目標(biāo)檢測,是指在一張圖像上,找出所有的目標(biāo),以及這些目標(biāo)的具體位置。由于無法預(yù)知目標(biāo)在圖像的具體位置,因此,最初始想法就是遍歷圖像中所有可能位置的候選區(qū)域,對每個候選區(qū)域(Region of Inter?est,簡稱RoI),通過特征提取等方法分析是否屬于某個目標(biāo)類別。但是,RoI過多會導(dǎo)致算法效率低而無法實用,因此,有很多后續(xù)研究關(guān)注如何減少候選區(qū)域[7]。Faster R-CNN算法的網(wǎng)絡(luò)模型如圖1所示,通過RPN(Region Proposal Network)來生成所有的候選區(qū)域RoI。

        圖1 Faster R-CNN算法的網(wǎng)絡(luò)模型

        在Faster R-CNN算法中,待檢測圖像沒有固定的尺寸要求,作為輸入圖像只需要長寬等比例縮放到一定范圍即可,因此可以避免失真。RoI Pooling層用來將一定范圍內(nèi)的尺寸轉(zhuǎn)換為固定尺寸,以滿足后續(xù)全連接網(wǎng)絡(luò)層的要求。待檢測圖像首先通過深度神經(jīng)網(wǎng)絡(luò)來生成圖像特征,這些特征既被候選的RPN使用,又被后續(xù)的檢測過程使用,因此,實現(xiàn)了兩個不同目的的特征共享,這就是圖中被稱為共享神經(jīng)網(wǎng)絡(luò)的原因。

        1.2 目標(biāo)位置(Bounding Box)

        目標(biāo)檢測,需要確定目標(biāo)所在的位置,因此神經(jīng)網(wǎng)絡(luò)的輸出應(yīng)包含目標(biāo)的位置信息,被稱為Bounding Box,簡稱BBox。在Faster R-CNN算法中,BBox被拆分成兩部分:初始位置(矩形位置信息xa,ya,ha,wa共四個值,記為 PriorBox)和調(diào)整參數(shù)(tx,ty,tw 和 th四個參數(shù),記為BoxDelta)。神經(jīng)網(wǎng)絡(luò)是如何知道Prior?Box和BoxDelta的物理意義呢?這是因為在訓(xùn)練網(wǎng)絡(luò)時,訓(xùn)練數(shù)據(jù)就是建立在這些概念之上,網(wǎng)絡(luò)經(jīng)過訓(xùn)練后,這些物理意義就被內(nèi)化在網(wǎng)絡(luò)中了。結(jié)合PriorBox和BoxDelta,可以算出調(diào)整后的新矩形位置,這個新矩形就是目標(biāo)所在的更精確的位置,即BBox。這個思路,在RPN和結(jié)果整合層都被用到。在文獻(xiàn)[1]中用如下公式表示它們之間的關(guān)系:

        其中xa,ya,ha,wa表示PriorBox的中心點坐標(biāo)和高寬,tx,ty,tw 和 th是調(diào)整參數(shù),而 x,y,h和 w 則是BBox的中心點坐標(biāo)和高寬。

        在RPN生成RoIs時,PriorBox是預(yù)先定義的an?chor;在結(jié)果整合層,PriorBox是RoIs。而BoxDelta則是網(wǎng)絡(luò)的中間輸出。都將在后面詳述。

        1.3 共享卷積神經(jīng)網(wǎng)絡(luò)

        卷積神經(jīng)網(wǎng)絡(luò)在圖像識別中表現(xiàn)絕佳[8-9],已是非?;A(chǔ)的概念,這里需要強(qiáng)調(diào)的是,卷積神經(jīng)網(wǎng)絡(luò)對輸入圖像的尺寸沒有要求,可以是任意大小。所以,雖然在Caffe網(wǎng)絡(luò)模型[4]描述中,第一層接受的輸入是1×3×224×224,實際上,也可輸入 1×3×600×800的圖像,其中,1表示一幅彩色圖像,3表示圖像中有三個通道(channel),分別是紅綠藍(lán)三色信號通道,而600×800則是圖像的高和寬,這也是在demo[6]中作為Faster RCNN算法輸入的圖像尺寸。圖1所示的共享卷積神經(jīng)網(wǎng)絡(luò)來源自VGG16模型[5],最后的輸出數(shù)據(jù)維度是1×512×38×50,表示有 512個 feature map,每個 feature map的 size是 38×50。

        1.4 生成候選區(qū)域的RPN(Region Proposal Net-work)

        RPN的網(wǎng)絡(luò)模型詳細(xì)如圖2所示,其輸入數(shù)據(jù)是來自共享卷積網(wǎng)絡(luò)的輸出,維度是1×512×38×50,首先經(jīng)過一個卷積層rpn_conv和一個relu層,然后,分為兩條支路。這里的rpn_conv卷積層的kernel size是3,output number是512,對應(yīng)文獻(xiàn)[1]中圖3的3×3的滑動窗口,只是輸出的不是論文中的256-d數(shù)據(jù),而是512維的數(shù)據(jù)。

        下面一條支路經(jīng)過rpn_bbox_pred卷積層后,變成的維度是 1×36×38×50,表示 feature map的 size是 38×50,一共36個feature map??疾烊我庖粋€feature map中的單個元素,其值最終可以對應(yīng)著原始圖像中的某個區(qū)域;正是原始圖像中的這個區(qū)域中的像素,決定了feature map中的這個元素的值。將這個區(qū)域進(jìn)行縮放和偏移,根據(jù)事先在訓(xùn)練之前就定義好的規(guī)則,我們得到了9個新的區(qū)域,這些新的區(qū)域就被稱為anchor。所以,38×50大小的 feature map就對應(yīng)著 9×38×50個anchor。由于每個anchor有四個調(diào)整參數(shù),因此就對應(yīng)著 4×9×38×50個調(diào)整參數(shù),剛好和feature map的數(shù)量對應(yīng)起來。因此,36個feature map在這里被賦予了具體的物理意義,對應(yīng)著9個anchor的調(diào)整參數(shù),而每個anchor有4個調(diào)整參數(shù)。

        上面一條支路經(jīng)過rpn_cls_score卷積層后,維度變成了 1×18×38×50,相同的,這里的 18個 feature map也被賦予了具體的物理意義,對應(yīng)著9個anchor的得分,每個anchor有2個得分,分別是存在目標(biāo)和不存在目標(biāo)的得分,顯然,這兩個得分的概率之和應(yīng)該是1,所以,后面加了rpn_cls_prob層做softmax。在rpn_cls_prob前后還各有一個Reshape層主要是為了使得數(shù)據(jù)格式符合相關(guān)層的要求,做簡單的shape變化,并不涉及到具體的數(shù)據(jù)拷貝,為圖示簡潔,這兩個Reshape層并沒有畫出。

        圖2 RPN的網(wǎng)絡(luò)模型

        最后,在proposal層中,首先根據(jù)調(diào)整參數(shù)來調(diào)整anchor得到新矩形位置,為了避免新區(qū)域過小,或者超過了原圖范圍,proposal層還有一個輸入im_info用來傳入原圖尺寸。從這里我們可以看出,新矩形位置是基于原圖坐標(biāo)的,而不是基于某個feature map尺寸的。再結(jié)合 NMS(Non-Max Suppress)算法,根據(jù)得分概率和新矩形的重疊情況,給出最有可能性存在目標(biāo)的160個候選區(qū)域,稱為RoIs,每個候選區(qū)域除了矩形的四邊坐標(biāo)外,還有一個id(在這個demo中被置為0,并沒有被實際用到),因此是5維的,所以,最后輸出的RoI維度是160×5。其中,160是在確定網(wǎng)絡(luò)結(jié)構(gòu)模型參數(shù)的時候,事先確定的。

        1.5 候選區(qū)域的池化層(RoIPooling)

        RoI Pooling層如圖3所示,有兩個輸入,分別是來自共享卷積網(wǎng)絡(luò)的圖像特征數(shù)據(jù)和來自RPN的RoIs。由于RPN產(chǎn)生的RoI是基于原圖坐標(biāo),而RoI Pooling層處理的是卷積后的圖像特征數(shù)據(jù),其大小已經(jīng)發(fā)生了變化,不再是原圖分辨率,因此,通過層參數(shù)spatial_scale來調(diào)整RoI坐標(biāo),使之符合卷積后數(shù)據(jù)的尺寸要求。在網(wǎng)絡(luò)模型參數(shù)確定后,這個參數(shù)可以事先計算得到。

        RoI Pooling層的參數(shù)還包括pooled_w和pooled_h,指的是每個RoI區(qū)域應(yīng)該分成pooled_w×pooled_h個子區(qū)域,對每個子區(qū)域采用max pooling。所以,在本例子中,對于輸入的512個feature map,每個feature map中有160個RoI,一共會產(chǎn)生160×512×7×7個數(shù)據(jù)。一旦明確模型參數(shù)后,無論輸入的圖像尺寸如何變化,這些數(shù)字都不再變化。因此,RoI Pooling層的輸出維度是固定的,所以,滿足后續(xù)全連接網(wǎng)絡(luò)的固定輸入維度的要求。從這里輸出的四個維度,我們還可以有一個推論,也就是faster rcnn在推理過程中,在Caffe框架下,每次只能處理一張圖片,因為Caffe的數(shù)據(jù)結(jié)構(gòu)最多就是四個維度,在這里都已經(jīng)被使用,已經(jīng)無法容納諸如圖片個數(shù)等額外信息了。

        圖3 RoI Pooling層

        1.6 全連接網(wǎng)絡(luò)

        全連接網(wǎng)絡(luò)如圖4所示,輸入來自RoI Pooling層,經(jīng)過兩個全連接層(Fully Connected)和RELU層(FC6,RELU6,F(xiàn)C7和 RELU7),演變?yōu)?160×4096的數(shù)據(jù),然后分成兩路。其中一路在經(jīng)過全連接層bbox_pred,產(chǎn)生維度為160×84的輸出,其中160還是對應(yīng)著160個RoI,而84則對應(yīng)著每個RoI的21個分類(本例子的識別目標(biāo)分20類,再加上背景一共21類)的位置調(diào)整參數(shù)。另外一路經(jīng)過全連接層cls_score產(chǎn)生維度為160×21的數(shù)據(jù),表示160個ROI中每個ROI對應(yīng)著21個分類的可能性得分,顯然,所有可能性相加應(yīng)該為1,所以,后續(xù)緊跟著cls_probe層做softmax。這里的輸出,邏輯上和RPN網(wǎng)絡(luò)中的rpn_cls_prob和rpn_bbox_pred是非常類似的。

        1.7 結(jié)果整合層

        結(jié)果整合層并不在Caffe網(wǎng)絡(luò)模型文件中體現(xiàn),而是在demo最后用Python代碼完成,非常類似于RPN網(wǎng)絡(luò)中的proposal層,只是初始位置從事先可以靜態(tài)計算的anchor變成了動態(tài)計算得到的RoIs。首先根據(jù)調(diào)整參數(shù)bbox_pred來調(diào)整RoIs得到新矩形位置,再結(jié)合NMS算法,根據(jù)得分概率和新矩形的重疊情況,給出本圖像中的目標(biāo)位置和目標(biāo)類別。

        2 結(jié)語

        圖4 全連接網(wǎng)絡(luò)

        本文從Faster R-CNN算法的網(wǎng)絡(luò)模型出發(fā),針對重要的網(wǎng)絡(luò)層,分析它們的輸入輸出,包括數(shù)據(jù)維度格式和對應(yīng)的物理意義,也簡單介紹了每一層的主要參數(shù)和功能。這樣,更容易理解Faster R-CNN算法的關(guān)鍵技術(shù),為后續(xù)的進(jìn)一步研究打下堅實的基礎(chǔ)。

        [1]Shaoqing Ren,Kaiming He,Ross Girshick,Jian Sun.Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,vol.39,no.6,1137-1149.

        [2]Mark Everingham,S.M.Ali Eslami,Luc Van Gool,Christopher K.I.Williams,John Winn,Andrew Zisserman.The PASCAL Visual Object Classes Challenge:A Retrospective[J].International Journal of Computer Vision,2015,98-136.[3]https://github.com/rbgirshick/py-faster-rcnn.

        [4]Y.Jia,E.Shelhamer,J.Donahue,S.Karayev,J.Long,R.Girshick,S.Guadarrama,T.Darrell.Caffe:Convolutional Architecture for Fast Feature embedding[J].Proceedings of the 22nd ACM International Conference on Multimedia,2014,675-678.

        [5]K.Simonyan,A.Zisserman.Very Deep Convolutional Networks for Large-Scale Image Recognition[C].International Conference on Learning Representations,2015.

        [6]https://github.com/rbgirshick/py-faster-rcnn/blob/master/models/pascal_voc/VGG16/faster_rcnn_alt_opt/faster_rcnn_test.pt.

        [7]R.Girshick.Fast R-CNN[J].Proceedings of IEEE International Conference on Computer Vision,2015,1440-1448.

        [8]許可.卷積神經(jīng)網(wǎng)絡(luò)在圖像識別上的應(yīng)用的研究[D].杭州:浙江大學(xué),2012.

        [9]A.Krizhevsky,I.Sutskever,G.Hinton.Imagenet Classification with Deep Convolutional Neural Networks[J].Proceedings of Neural Information Processing Systems,2012,1097-1105.

        猜你喜歡
        卷積神經(jīng)網(wǎng)絡(luò)維度
        基于3D-Winograd的快速卷積算法設(shè)計及FPGA實現(xiàn)
        淺論詩中“史”識的四個維度
        中華詩詞(2019年7期)2019-11-25 01:43:00
        神經(jīng)網(wǎng)絡(luò)抑制無線通信干擾探究
        電子制作(2019年19期)2019-11-23 08:42:00
        從濾波器理解卷積
        電子制作(2019年11期)2019-07-04 00:34:38
        基于傅里葉域卷積表示的目標(biāo)跟蹤算法
        光的維度
        燈與照明(2016年4期)2016-06-05 09:01:45
        “五個維度”解有機(jī)化學(xué)推斷題
        基于神經(jīng)網(wǎng)絡(luò)的拉矯機(jī)控制模型建立
        復(fù)數(shù)神經(jīng)網(wǎng)絡(luò)在基于WiFi的室內(nèi)LBS應(yīng)用
        基于支持向量機(jī)回歸和RBF神經(jīng)網(wǎng)絡(luò)的PID整定
        国产精品多人P群无码| 亚洲国产精品久久精品 | 亚洲国产精品高清在线| 久久伊人少妇熟女大香线蕉| 国内老熟妇对白xxxxhd| 久久精品—区二区三区无码伊人色| 毛片av中文字幕一区二区| 开心五月骚婷婷综合网| 真实的国产乱xxxx在线| 少妇久久久久久被弄到高潮| 亚洲精品中文字幕无乱码麻豆 | 99久久精品日本一区二区免费| 国产在线手机视频| 欧洲AV秘 无码一区二区三| 国产高清在线精品一区二区三区| 无码人妻丰满熟妇区免费| 亚洲avav天堂av在线网爱情| 亚洲av无码成人精品区在线观看| 无码一区二区三区在| 亚洲成人一区二区三区不卡| 无码区a∨视频体验区30秒| 少妇的丰满3中文字幕| 插入中文字幕在线一区二区三区| 99久久99久久久精品蜜桃| 夜鲁很鲁在线视频| 国产高清吃奶成免费视频网站 | 国产免费播放一区二区| 亚洲免费一区二区av| 亚洲乱码中文字幕久久孕妇黑人| 美女高潮无遮挡免费视频| 亚洲天堂免费av在线观看| 亚洲精品成人无百码中文毛片| 55夜色66夜色国产精品视频| 亚洲日韩中文字幕在线播放| 亚洲中文字幕乱码在线观看| 久久久中日ab精品综合| 亚洲精品国产美女久久久| 日韩国产自拍成人在线| 国产精品美女久久久网av| 永久免费不卡在线观看黄网站| 蜜桃视频免费在线视频|