国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

一文讀懂Faster RCNN

共 14954字,需瀏覽 30分鐘

 ·

2021-09-26 11:54

來源:信息網(wǎng)絡(luò)工程研究中心

本文約7500字,建議閱讀10+分鐘 
本文從四個切入點為你介紹Faster R-CNN網(wǎng)絡(luò)。


經(jīng)過R-CNN和Fast RCNN的積淀,Ross B. Girshick在2016年提出了新的Faster RCNN,在結(jié)構(gòu)上,F(xiàn)aster RCNN已經(jīng)將特征抽取(feature extraction),proposal提取,bounding box regression(rect refine),classification都整合在了一個網(wǎng)絡(luò)中,使得綜合性能有較大提高,在檢測速度方面尤為明顯。


目錄


1 Conv layers
2 Region Proposal Networks(RPN)

- 2.1 多通道圖像卷積基礎(chǔ)知識介紹
- 2.2 anchors
- 2.3 softmax判定positive與negative
- 2.4 bounding box regression原理
- 2.5 對proposals進行bounding box regression
- 2.6 Proposal Layer
3 RoI pooling
- 3.1 為何需要RoI Pooling
- 3.2 RoI Pooling原理
4 Classification
5 Faster RCNN訓(xùn)練

- 5.1 訓(xùn)練RPN網(wǎng)絡(luò)
- 5.2 通過訓(xùn)練好的RPN網(wǎng)絡(luò)收集proposals
- 5.3 訓(xùn)練Faster RCNN網(wǎng)絡(luò)
Questions and Answer


圖1 Faster RCNN基本結(jié)構(gòu)(來自原論文)


依作者看來,如圖1,F(xiàn)aster RCNN其實可以分為4個主要內(nèi)容:

  1. Conv layers。作為一種CNN網(wǎng)絡(luò)目標檢測方法,F(xiàn)aster RCNN首先使用一組基礎(chǔ)的conv+relu+pooling層提取image的feature maps。該feature maps被共享用于后續(xù)RPN層和全連接層。
  2. Region Proposal Networks。RPN網(wǎng)絡(luò)用于生成region proposals。該層通過softmax判斷anchors屬于positive或者negative,再利用bounding box regression修正anchors獲得精確的proposals。
  3. Roi Pooling。該層收集輸入的feature maps和proposals,綜合這些信息后提取proposal feature maps,送入后續(xù)全連接層判定目標類別。
  4. Classification。利用proposal feature maps計算proposal的類別,同時再次bounding box regression獲得檢測框最終的精確位置。

所以本文以上述4個內(nèi)容作為切入點介紹Faster R-CNN網(wǎng)絡(luò)。

圖2展示了python版本中的VGG16模型中的faster_rcnn_test.pt的網(wǎng)絡(luò)結(jié)構(gòu),可以清晰的看到該網(wǎng)絡(luò)對于一副任意大小PxQ的圖像:

  • 首先縮放至固定大小MxN,然后將MxN圖像送入網(wǎng)絡(luò);
  • 而Conv layers中包含了13個conv層+13個relu層+4個pooling層;
  • RPN網(wǎng)絡(luò)首先經(jīng)過3x3卷積,再分別生成positive anchors和對應(yīng)bounding box regression偏移量,然后計算出proposals;
  • 而Roi Pooling層則利用proposals從feature maps中提取proposal feature送入后續(xù)全連接和softmax網(wǎng)絡(luò)作classification(即分類proposal到底是什么object)。


圖2 faster_rcnn_test.pt網(wǎng)絡(luò)結(jié)構(gòu) (pascal_voc/VGG16/faster_rcnn_alt_opt/faster_rcnn_test.pt)


本文不會討論任何關(guān)于R-CNN家族的歷史,分析清楚最新的Faster R-CNN就夠了,并不需要追溯到那么久。實話說我也不了解R-CNN,更不關(guān)心。有空不如看看新算法。

新出爐的pytorch官方Faster RCNN代碼導(dǎo)讀:

捋一捋pytorch官方FasterRCNN代碼

https://zhuanlan.zhihu.com/p/31426458




1 Conv layers


Conv layers包含了conv,pooling,relu三種層。以python版本中的VGG16模型中的faster_rcnn_test.pt的網(wǎng)絡(luò)結(jié)構(gòu)為例,如圖2,Conv layers部分共有13個conv層,13個relu層,4個pooling層。這里有一個非常容易被忽略但是又無比重要的信息,在Conv layers中:

  1. 所有的conv層都是:kernel_size=3,pad=1,stride=1
  2. 所有的pooling層都是:kernel_size=2,pad=0,stride=2

為何重要?在Faster RCNN Conv layers中對所有的卷積都做了擴邊處理( pad=1,即填充一圈0),導(dǎo)致原圖變?yōu)?(M+2)x(N+2)大小,再做3x3卷積后輸出MxN 。正是這種設(shè)置,導(dǎo)致Conv layers中的conv層不改變輸入和輸出矩陣大小。如圖3:


圖3 卷積示意圖


類似的是,Conv layers中的pooling層kernel_size=2,stride=2。這樣每個經(jīng)過pooling層的MxN矩陣,都會變?yōu)?M/2)x(N/2)大小。綜上所述,在整個Conv layers中,conv和relu層不改變輸入輸出大小,只有pooling層使輸出長寬都變?yōu)檩斎氲?/2。

那么,一個MxN大小的矩陣經(jīng)過Conv layers固定變?yōu)?M/16)x(N/16)!這樣Conv layers生成的feature map中都可以和原圖對應(yīng)起來。

2 Region Proposal Networks(RPN)


經(jīng)典的檢測方法生成檢測框都非常耗時,如OpenCV adaboost使用滑動窗口+圖像金字塔生成檢測框;或如R-CNN使用SS(Selective Search)方法生成檢測框。而Faster RCNN則拋棄了傳統(tǒng)的滑動窗口和SS方法,直接使用RPN生成檢測框,這也是Faster R-CNN的巨大優(yōu)勢,能極大提升檢測框的生成速度。


圖4 RPN網(wǎng)絡(luò)結(jié)構(gòu)


上圖4展示了RPN網(wǎng)絡(luò)的具體結(jié)構(gòu)??梢钥吹絉PN網(wǎng)絡(luò)實際分為2條線,上面一條通過softmax分類anchors獲得positive和negative分類,下面一條用于計算對于anchors的bounding box regression偏移量,以獲得精確的proposal。而最后的Proposal層則負責(zé)綜合positive anchors和對應(yīng)bounding box regression偏移量獲取proposals,同時剔除太小和超出邊界的proposals。其實整個網(wǎng)絡(luò)到了Proposal Layer這里,就完成了相當于目標定位的功能。

2.1 多通道圖像卷積基礎(chǔ)知識介紹


在介紹RPN前,還要多解釋幾句基礎(chǔ)知識,已經(jīng)懂的看官老爺跳過就好。

  1. 對于單通道圖像+單卷積核做卷積,第一章中的圖3已經(jīng)展示了;
  2. 對于多通道圖像+多卷積核做卷積,計算方式如下:


圖5 多通道卷積計算方式


如圖5,輸入有3個通道,同時有2個卷積核。對于每個卷積核,先在輸入3個通道分別作卷積,再將3個通道結(jié)果加起來得到卷積輸出。所以對于某個卷積層,無論輸入圖像有多少個通道,輸出圖像通道數(shù)總是等于卷積核數(shù)量!

對多通道圖像做1x1卷積,其實就是將輸入圖像于每個通道乘以卷積系數(shù)后加在一起,即相當于把原圖像中本來各個獨立的通道“聯(lián)通”在了一起。

2.2 anchors


提到RPN網(wǎng)絡(luò),就不能不說anchors。所謂anchors,實際上就是一組由rpn/generate_anchors.py生成的矩形。直接運行作者demo中的generate_anchors.py可以得到以下輸出:

[[ -84.  -40.   99.   55.] [-176.  -88.  191.  103.] [-360. -184.  375.  199.] [ -56.  -56.   71.   71.] [-120. -120.  135.  135.] [-248. -248.  263.  263.] [ -36.  -80.   51.   95.] [ -80. -168.   95.  183.] [-168. -344.  183.  359.]]

其中每行的4個值 表矩形左上和右下角點坐標。9個矩形共有3種形狀,長寬比為大約為 三種,如圖6。實際上通過anchors就引入了檢測中常用到的多尺度方法。


圖6 anchors示意圖


注:關(guān)于上面的anchors size,其實是根據(jù)檢測圖像設(shè)置的。在python demo中,會把任意大小的輸入圖像reshape成800x600(即圖2中的M=800,N=600)。再回頭來看anchors的大小,anchors中長寬1:2中最大為352x704,長寬2:1中最大736x384,基本是cover了800x600的各個尺度和形狀。

那么這9個anchors是做什么的呢?借用Faster RCNN論文中的原圖,如圖7,遍歷Conv layers計算獲得的feature maps,為每一個點都配備這9種anchors作為初始的檢測框。這樣做獲得檢測框很不準確,不用擔(dān)心,后面還有2次bounding box regression可以修正檢測框位置。


圖7


解釋一下上面這張圖的數(shù)字。

  1. 在原文中使用的是ZF model中,其Conv Layers中最后的conv5層num_output=256,對應(yīng)生成256張?zhí)卣鲌D,所以相當于feature map每個點都是256-dimensions
  2. 在conv5之后,做了rpn_conv/3x3卷積且num_output=256,相當于每個點又融合了周圍3x3的空間信息(猜測這樣做也許更魯棒?反正我沒測試),同時256-d不變(如圖4和圖7中的紅框)
  3. 假設(shè)在conv5 feature map中每個點上有k個anchor(默認k=9),而每個anhcor要分positive和negative,所以每個點由256d feature轉(zhuǎn)化為cls=2?k scores;而每個anchor都有(x, y, w, h)對應(yīng)4個偏移量,所以reg=4?k coordinates
  4. 補充一點,全部anchors拿去訓(xùn)練太多了,訓(xùn)練程序會在合適的anchors中隨機選取128個postive anchors+128個negative anchors進行訓(xùn)練(什么是合適的anchors下文5.1有解釋)

注意,在本文講解中使用的VGG conv5 num_output=512,所以是512d,其他類似。

其實RPN最終就是在原圖尺度上,設(shè)置了密密麻麻的候選Anchor。然后用cnn去判斷哪些Anchor是里面有目標的positive anchor,哪些是沒目標的negative anchor。所以,僅僅是個二分類而已!

那么Anchor一共有多少個?原圖800x600,VGG下采樣16倍,feature map每個點設(shè)置9個Anchor,所以:


其中ceil()表示向上取整,是因為VGG輸出的feature map size= 50*38。


圖8 Gernerate Anchors


2.3 softmax判定positive與negative


一副MxN大小的矩陣送入Faster RCNN網(wǎng)絡(luò)后,到RPN網(wǎng)絡(luò)變?yōu)?M/16)x(N/16),不妨設(shè) W=M/16,H=N/16。在進入reshape與softmax之前,先做了1x1卷積,如圖9:


圖9 RPN中判定positive/negative網(wǎng)絡(luò)結(jié)構(gòu)


該1x1卷積的caffe prototxt定義如下:

layer {  name: "rpn_cls_score"  type: "Convolution"  bottom: "rpn/output"  top: "rpn_cls_score"  convolution_param {    num_output: 18   # 2(positive/negative) * 9(anchors)    kernel_size: 1 pad: 0 stride: 1  }}

可以看到其num_output=18,也就是經(jīng)過該卷積的輸出圖像為WxHx18大?。ㄗ⒁獾诙麻_頭提到的卷積計算方式)。這也就剛好對應(yīng)了feature maps每一個點都有9個anchors,同時每個anchors又有可能是positive和negative,所有這些信息都保存WxHx(9*2)大小的矩陣。為何這樣做?后面接softmax分類獲得positive anchors,也就相當于初步提取了檢測目標候選區(qū)域box(一般認為目標在positive anchors中)。

那么為何要在softmax前后都接一個reshape layer?其實只是為了便于softmax分類,至于具體原因這就要從caffe的實現(xiàn)形式說起了。在caffe基本數(shù)據(jù)結(jié)構(gòu)blob中以如下形式保存數(shù)據(jù):

blob=[batch_size, channel,height,width]


對應(yīng)至上面的保存positive/negative anchors的矩陣,其在caffe blob中的存儲形式為[1, 2x9, H, W]。而在softmax分類時需要進行positive/negative二分類,所以reshape layer會將其變?yōu)閇1, 2, 9xH, W]大小,即單獨“騰空”出來一個維度以便softmax分類,之后再reshape回復(fù)原狀。貼一段caffe softmax_loss_layer.cpp的reshape函數(shù)的解釋,非常精辟:


"Number of labels must match number of predictions; ""e.g., if softmax axis == 1 and prediction shape is (N, C, H, W), ""label count (number of labels) must be N*H*W, ""with integer values in {0, 1, ..., C-1}.";

綜上所述,RPN網(wǎng)絡(luò)中利用anchors和softmax初步提取出positive anchors作為候選區(qū)域(另外也有實現(xiàn)用sigmoid代替softmax,輸出[1, 1, 9xH, W]后接sigmoid進行positive/negative二分類,原理一樣)。

2.4 bounding box regression原理


如圖9所示綠色框為飛機的Ground Truth(GT),紅色為提取的positive anchors,即便紅色的框被分類器識別為飛機,但是由于紅色的框定位不準,這張圖相當于沒有正確的檢測出飛機。所以我們希望采用一種方法對紅色的框進行微調(diào),使得positive anchors和GT更加接近。


圖10


對于窗口一般使用四維向量 表示,分別表示窗口的中心點坐標和寬高。對于圖 11,紅色的框A代表原始的positive Anchors,綠色的框G代表目標的GT,我們的目標是尋找一種關(guān)系,使得輸入原始的anchor A經(jīng)過映射得到一個跟真實窗口G更接近的回歸窗口G',即:

  • 給定anchor 
  • 尋找一種變換F,使得:,其中。



圖11


那么經(jīng)過何種變換F才能從圖10中的anchor A變?yōu)镚'呢?比較簡單的思路就是:

  • 先做平移:


  • 再做縮放:


觀察上面4個公式發(fā)現(xiàn),需要學(xué)習(xí)的是這四個變換。當輸入的anchor A與GT相差較小時,可以認為這種變換是一種線性變換, 那么就可以用線性回歸來建模對窗口進行微調(diào)(注意,只有當anchors A和GT比較接近時,才能使用線性回歸模型,否則就是復(fù)雜的非線性問題了)。

接下來的問題就是如何通過線性回歸獲得 了。線性回歸就是給定輸入的特征向量X, 學(xué)習(xí)一組參數(shù)W, 使得經(jīng)過線性回歸后的值跟真實值Y非常接近,即Y=WX。對于該問題,輸入X是cnn feature map,定義為Φ;同時還有訓(xùn)練傳入A與GT之間的變換量,即。輸出是四個變換。那么目標函數(shù)可以表示為:


其中是對應(yīng)anchor的feature map組成的特征向量, 是需要學(xué)習(xí)的參數(shù),是得到的預(yù)測值(*表示 x,y,w,h,也就是每一個變換對應(yīng)一個上述目標函數(shù))。為了讓預(yù)測值與真實值差距最小,設(shè)計L1損失函數(shù):



函數(shù)優(yōu)化目標為:


為了方便描述,這里以L1損失為例介紹,而真實情況中一般使用soomth-L1損失。

需要說明,只有在GT與需要回歸框位置比較接近時,才可近似認為上述線性變換成立。

說完原理,對應(yīng)于Faster RCNN原文,positive anchor與ground truth之間的平移量 
 與尺度因子 如下:


對于訓(xùn)練bouding box regression網(wǎng)絡(luò)回歸分支,輸入是cnn feature Φ,監(jiān)督信號是Anchor與GT的差距 ,即訓(xùn)練目標是:輸入 Φ的情況下使網(wǎng)絡(luò)輸出與監(jiān)督信號盡可能接近。那么當bouding box regression工作時,再輸入Φ時,回歸網(wǎng)絡(luò)分支的輸出就是每個Anchor的平移量和變換尺度,顯然即可用來修正Anchor位置了。

2.5 對proposals進行bounding box regression


在了解bounding box regression后,再回頭來看RPN網(wǎng)絡(luò)第二條線路,如圖12。


圖12 RPN中的bbox reg


先來看一看上圖11中1x1卷積的caffe prototxt定義:

layer {  name: "rpn_bbox_pred"  type: "Convolution"  bottom: "rpn/output"  top: "rpn_bbox_pred"  convolution_param {    num_output: 36   # 4 * 9(anchors)    kernel_size: 1 pad: 0 stride: 1  }}

可以看到其 num_output=36,即經(jīng)過該卷積輸出圖像為WxHx36,在caffe blob存儲為[1, 4x9, H, W],這里相當于feature maps每個點都有9個anchors,每個anchors又都有4個用于回歸的變換量。

回到圖8,VGG輸出 50*38*512 的特征,對應(yīng)設(shè)置 50*38*k 個anchors,而RPN輸出:

  1. 大小為50*38*2k 的positive/negative softmax分類特征矩陣;
  2. 大小為 50*38*4k 的regression坐標回歸特征矩陣。

恰好滿足RPN完成positive/negative分類+bounding box regression坐標回歸。

2.6 Proposal Layer


Proposal Layer負責(zé)綜合所有  變換量和positive anchors,計算出精準的proposal,送入后續(xù)RoI Pooling Layer。還是先來看看Proposal Layer的caffe prototxt定義:

layer {  name: 'proposal'  type: 'Python'  bottom: 'rpn_cls_prob_reshape'  bottom: 'rpn_bbox_pred'  bottom: 'im_info'  top: 'rois'  python_param {    module: 'rpn.proposal_layer'    layer: 'ProposalLayer'    param_str: "'feat_stride': 16"  }}

Proposal Layer有3個輸入:positive vs negative anchors分類器結(jié)果rpn_cls_prob_reshape,對應(yīng)的bbox reg的 變換量rpn_bbox_pred,以及im_info;另外還有參數(shù)feat_stride=16,這和圖4是對應(yīng)的。

首先解釋im_info。對于一副任意大小PxQ圖像,傳入Faster RCNN前首先reshape到固定MxN,im_info=[M, N, scale_factor]則保存了此次縮放的所有信息。然后經(jīng)過Conv Layers,經(jīng)過4次pooling變?yōu)閃xH=(M/16)x(N/16)大小,其中feature_stride=16則保存了該信息,用于計算anchor偏移量。


圖13


Proposal Layer forward(caffe layer的前傳函數(shù))按照以下順序依次處理:

  1. 生成anchors,利用對所有的anchors做bbox regression回歸(這里的anchors生成和訓(xùn)練時完全一致)
  2. 按照輸入的positive softmax scores由大到小排序anchors,提取前pre_nms_topN(e.g. 6000)個anchors,即提取修正位置后的positive anchors;
  3. 限定超出圖像邊界的positive anchors為圖像邊界,防止后續(xù)roi pooling時proposal超出圖像邊界(見文章底部QA部分圖21);
  4. 剔除尺寸非常小的positive anchors;
  5. 對剩余的positive anchors進行NMS(nonmaximum suppression)
  6. Proposal Layer有3個輸入:positive和negative anchors分類器結(jié)果rpn_cls_prob_reshape,對應(yīng)的bbox reg的(e.g. 300)結(jié)果作為proposal輸出。

之后輸出proposal=[x1, y1, x2, y2],注意,由于在第三步中將anchors映射回原圖判斷是否超出邊界,所以這里輸出的proposal是對應(yīng)MxN輸入圖像尺度的,這點在后續(xù)網(wǎng)絡(luò)中有用。另外我認為,嚴格意義上的檢測應(yīng)該到此就結(jié)束了,后續(xù)部分應(yīng)該屬于識別了。

RPN網(wǎng)絡(luò)結(jié)構(gòu)就介紹到這里,總結(jié)起來就是:

生成anchors -> softmax分類器提取positvie anchors -> bbox reg回歸positive anchors -> Proposal Layer生成proposals

3 RoI pooling


而RoI Pooling層則負責(zé)收集proposal,并計算出proposal feature maps,送入后續(xù)網(wǎng)絡(luò)。從圖2中可以看到Rol pooling層有2個輸入:

  1. 原始的feature maps
  2. RPN輸出的proposal boxes(大小各不相同)


3.1 為何需要RoI Pooling


先來看一個問題:對于傳統(tǒng)的CNN(如AlexNet和VGG),當網(wǎng)絡(luò)訓(xùn)練好后輸入的圖像尺寸必須是固定值,同時網(wǎng)絡(luò)輸出也是固定大小的vector or matrix。如果輸入圖像大小不定,這個問題就變得比較麻煩。有2種解決辦法:

  1. 從圖像中crop一部分傳入網(wǎng)絡(luò);
  2. 將圖像warp成需要的大小后傳入網(wǎng)絡(luò)。


圖14 crop與warp破壞圖像原有結(jié)構(gòu)信息


兩種辦法的示意圖如圖14,可以看到無論采取那種辦法都不好,要么crop后破壞了圖像的完整結(jié)構(gòu),要么warp破壞了圖像原始形狀信息。

回憶RPN網(wǎng)絡(luò)生成的proposals的方法:對positive anchors進行bounding box regression,那么這樣獲得的proposals也是大小形狀各不相同,即也存在上述問題。所以Faster R-CNN中提出了RoI Pooling解決這個問題。不過RoI Pooling確實是從Spatial Pyramid Pooling發(fā)展而來,但是限于篇幅這里略去不講,有興趣的讀者可以自行查閱相關(guān)論文。

3.2 RoI Pooling原理


分析之前先來看看RoI Pooling Layer的caffe prototxt的定義:

layer {  name: "roi_pool5"  type: "ROIPooling"  bottom: "conv5_3"  bottom: "rois"  top: "pool5"  roi_pooling_param {    pooled_w: 7    pooled_h: 7    spatial_scale: 0.0625 # 1/16  }}

其中有新參數(shù)pooled_w和pooled_h,另外一個參數(shù)spatial_scale認真閱讀的讀者肯定已經(jīng)知道知道用途。RoI Pooling layer forward過程:

  • 由于proposal是對應(yīng)MxN尺度的,所以首先使用spatial_scale參數(shù)將其映射回(M/16)x(N/16)大小的feature map尺度;
  • 再將每個proposal對應(yīng)的feature map區(qū)域水平分為pooled_w x pooled_h 的網(wǎng)格;
  • 對網(wǎng)格的每一份都進行max pooling處理。

這樣處理后,即使大小不同的proposal輸出結(jié)果都是 pooled_w x pooled_h 固定大小,實現(xiàn)了固定長度輸出。


圖15 proposal示意圖


4 Classification


Classification部分利用已經(jīng)獲得的proposal feature maps,通過full connect層與softmax計算每個proposal具體屬于那個類別(如人,車,電視等),輸出cls_prob概率向量;同時再次利用bounding box regression獲得每個proposal的位置偏移量bbox_pred,用于回歸更加精確的目標檢測框。Classification部分網(wǎng)絡(luò)結(jié)構(gòu)如圖16。


圖16 Classification部分網(wǎng)絡(luò)結(jié)構(gòu)圖


從RoI Pooling獲取到7x7=49大小的proposal feature maps后,送入后續(xù)網(wǎng)絡(luò),可以看到做了如下2件事:

  1. 通過全連接和softmax對proposals進行分類,這實際上已經(jīng)是識別的范疇了;
  2. 再次對proposals進行bounding box regression,獲取更高精度的rect box。

這里來看看全連接層InnerProduct layers,簡單的示意圖如圖17:


圖17 全連接層示意圖


其計算公式如下:



其中W和bias B都是預(yù)先訓(xùn)練好的,即大小是固定的,當然輸入X和輸出Y也就是固定大小。所以,這也就印證了之前Roi Pooling的必要性。到這里,我想其他內(nèi)容已經(jīng)很容易理解,不在贅述了。

5 Faster RCNN訓(xùn)練


Faster R-CNN的訓(xùn)練,是在已經(jīng)訓(xùn)練好的model(如VGG_CNN_M_1024,VGG,ZF)的基礎(chǔ)上繼續(xù)進行訓(xùn)練。實際中訓(xùn)練過程分為6個步驟:

  1. 在已經(jīng)訓(xùn)練好的model上,訓(xùn)練RPN網(wǎng)絡(luò),對應(yīng)stage1_rpn_train.pt
  2. 利用步驟1中訓(xùn)練好的RPN網(wǎng)絡(luò),收集proposals,對應(yīng)rpn_test.pt
  3. 第一次訓(xùn)練Fast RCNN網(wǎng)絡(luò),對應(yīng)stage1_fast_rcnn_train.pt
  4. 第二訓(xùn)練RPN網(wǎng)絡(luò),對應(yīng)stage2_rpn_train.pt
  5. 再次利用步驟4中訓(xùn)練好的RPN網(wǎng)絡(luò),收集proposals,對應(yīng)rpn_test.pt
  6. 第二次訓(xùn)練Fast RCNN網(wǎng)絡(luò),對應(yīng)stage2_fast_rcnn_train.pt

可以看到訓(xùn)練過程類似于一種“迭代”的過程,不過只循環(huán)了2次。至于只循環(huán)了2次的原因是應(yīng)為作者提到:"A similar alternating training can be run for more iterations, but we have observed negligible improvements",即循環(huán)更多次沒有提升了。接下來本章以上述6個步驟講解訓(xùn)練過程。

下面是一張訓(xùn)練過程流程圖,應(yīng)該更加清晰:



5.1 訓(xùn)練RPN網(wǎng)絡(luò)


在該步驟中,首先讀取RBG提供的預(yù)訓(xùn)練好的model(本文使用VGG),開始迭代訓(xùn)練。來看看stage1_rpn_train.pt網(wǎng)絡(luò)結(jié)構(gòu),如圖19。


圖19 stage1_rpn_train.pt(考慮圖片大小,Conv Layers中所有的層都畫在一起了,如紅圈所示,后續(xù)圖都如此處理)


與檢測網(wǎng)絡(luò)類似的是,依然使用Conv Layers提取feature maps。整個網(wǎng)絡(luò)使用的Loss如下:

上述公式中 i 表示anchors index,表示positive softmax probability,
代表對應(yīng)的GT predict概率(即當?shù)趇個anchor與GT間IoU>0.7,認為是該anchor是positive,;反之IoU<0.3時,認為是該anchor是negative,;至于那些0.3<IoU<0.7的anchor則不參與訓(xùn)練);t代表predict bounding box,t* 代表對應(yīng)positive anchor對應(yīng)的GT box??梢钥吹剑麄€Loss分為2部分:

  1. cls loss,即rpn_cls_loss層計算的softmax loss,用于分類anchors為positive與negative的網(wǎng)絡(luò)訓(xùn)練;
  2. reg loss,即rpn_loss_bbox層計算的soomth L1 loss,用于bounding box regression網(wǎng)絡(luò)訓(xùn)練。注意在該loss中乘了  ,相當于只關(guān)心positive anchors的回歸(其實在回歸中也完全沒必要去關(guān)心negative)。

由于在實際過程中,差距過大,用參數(shù)λ平衡二者(如,時設(shè)置 ),使總的網(wǎng)絡(luò)Loss計算過程中能夠均勻考慮2種Loss。這里比較重要是 使用的soomth L1 loss,計算公式如下:


了解數(shù)學(xué)原理后,反過來看圖18:

  1. 在RPN訓(xùn)練階段,rpn-data(python AnchorTargetLayer)層會按照和test階段Proposal層完全一樣的方式生成Anchors用于訓(xùn)練;
  2. 對于rpn_loss_cls,輸入的rpn_cls_scors_reshape和rpn_labels分別對應(yīng) 與 ,參數(shù)隱含在的caffe blob的大小中;
  3. 對于rpn_loss_bbox,輸入的rpn_bbox_pred和rpn_bbox_targets分別對應(yīng) t 與 t* ,rpn_bbox_inside_weigths對應(yīng) ,rpn_bbox_outside_weigths未用到(從smooth_L1_Loss layer代碼中可以看到),而同樣隱含在caffe blob大小中。

這樣,公式與代碼就完全對應(yīng)了。特別需要注意的是,在訓(xùn)練和檢測階段生成和存儲anchors的順序完全一樣,這樣訓(xùn)練結(jié)果才能被用于檢測!

5.2 通過訓(xùn)練好的RPN網(wǎng)絡(luò)收集proposals


在該步驟中,利用之前的RPN網(wǎng)絡(luò),獲取proposal rois,同時獲取positive softmax probability,如圖20,然后將獲取的信息保存在python pickle文件中。該網(wǎng)絡(luò)本質(zhì)上和檢測中的RPN網(wǎng)絡(luò)一樣,沒有什么區(qū)別。


圖20 rpn_test.pt


5.3 訓(xùn)練Faster RCNN網(wǎng)絡(luò)


讀取之前保存的pickle文件,獲取proposals與positive probability。從data層輸入網(wǎng)絡(luò)。然后:

  1. 將提取的proposals作為rois傳入網(wǎng)絡(luò),如圖21藍框;
  2. 計算bbox_inside_weights+bbox_outside_weights,作用與RPN一樣,傳入soomth_L1_loss layer,如圖21綠框。

這樣就可以訓(xùn)練最后的識別softmax與最終的bounding box regression了。


圖21 stage1_fast_rcnn_train.pt


之后的stage2訓(xùn)練都是大同小異,不再贅述了。Faster R-CNN還有一種end-to-end的訓(xùn)練方式,可以一次完成train,有興趣請自己看作者GitHub吧。

rbgirshick py-faster-rcn:
github.com/rbgirshick/py-faster-rcnn


Q&A


此篇文章初次成文于2016年內(nèi)部學(xué)習(xí)分享,再后來經(jīng)多次修正和完善成為現(xiàn)在的樣子。感謝大家一直以來的支持,現(xiàn)在總結(jié)常見疑問回答如下:

  • 為什么Anchor坐標中有負數(shù)?

回顧anchor生成步驟:首先生成9個base anchor,然后通過坐標偏移在50*38 大小的 1/16下采樣FeatureMap每個點都放上這9個base anchor,就形成了 50*38*k 個anhcors。至于這9個base anchor坐標是什么其實并不重要,不同代碼實現(xiàn)也許不同。

顯然這里面有一部分邊緣anchors會超出圖像邊界,而真實中不會有超出圖像的目標,所以會有clip anchor步驟。


圖21 clip anchor


  • Anchor到底與網(wǎng)絡(luò)輸出如何對應(yīng)?

VGG輸出 50*38*512 的特征,對應(yīng)設(shè)置 50*38*k 個anchors,而RPN輸出 50*38*2k 的分類特征矩陣和 50*38*4k 的坐標回歸特征矩陣。


圖22 anchor與網(wǎng)絡(luò)輸出如何對應(yīng)方式


其實在實現(xiàn)過程中,每個點的 2k 個分類特征與 4k 回歸特征,與 k 個anchor逐個對應(yīng)即可,這實際是一種“人為設(shè)置的邏輯映射”。當然,也可以不這樣設(shè)置,但是無論如何都需要保證在訓(xùn)練和測試過程中映射方式必須一致。

  • 為何有ROI Pooling還要把輸入圖片resize到固定大小的MxN?

由于引入ROI Pooling,從原理上說Faster R-CNN確實能夠檢測任意大小的圖片。但是由于在訓(xùn)練的時候需要使用大batch訓(xùn)練網(wǎng)絡(luò),而不同大小輸入拼batch在實現(xiàn)的時候代碼較為復(fù)雜,而且當時以Caffe為代表的第一代深度學(xué)習(xí)框架也不如Tensorflow和PyTorch靈活,所以作者選擇了把輸入圖片resize到固定大小的800x600。這應(yīng)該算是歷史遺留問題。

另外很多問題,都是屬于具體實現(xiàn)問題,真誠的建議讀者閱讀代碼自行理解。

拓展


1. 檢測算法的評價指標:
請問目標檢測中的detection performance一般是指那個指標,還是一個統(tǒng)稱?
https://www.zhihu.com/question/288198143/answer/482600906
Faster RCNN在文字檢測中的應(yīng)用:CTPN
https://zhuanlan.zhihu.com/p/34757009
2. Faster RCNN在高德導(dǎo)航中的應(yīng)用:
機器學(xué)習(xí)在交通標志檢測與精細分類中的應(yīng)用
https://mp.weixin.qq.com/s/IJUMCOBhgXHv7VC1YT4q_g

本文章只是介紹和分析原論文的思路,原文和代碼怎么說我就怎么寫,所以不涉及改進等內(nèi)容。如對FasterRCNN論文和原代碼有意見,建議向原作者詢問,謝謝。

轉(zhuǎn)自:一文讀懂Faster RCNN - 白裳的文章 - 知乎 
https://zhuanlan.zhihu.com/p/31426458

編輯:黃繼彥


瀏覽 68
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 操逼视频看看| 国产视频一区二区在线观看| 99re视频在线播放| 99青草在线视频| 国产一区二区三区免费| 亚洲欧美日韩色图| 中文字幕AV一区| 正在播放无码| 日韩一级黄片| 国产三级自拍视频| 日本成人无码| 久久久久99精品成人片三人毛片 | 在线黄网站| 高清无码在线视频| 中文字幕乱码人妻二区三区| 91精品国产综合久久久蜜臀主演 | 91外围女视频| 国产色av| 国产精品久久久久久久久夜色| 色吊丝中文字幕| 91精品国产乱码久久| 青青草成人免费在线视频| 91av电影| 人人操在线观看| 欧美第二页| 欧美亚洲国产视频| 四川BBB操BBB| 色综合五月| 91无码人妻| 精品少妇人妻| 97色色超碰| 国产高清成人| 中文无码不卡| sm视频网站| 亚洲一级免费在线观看| 亚洲日韩在线视频| 国产艹逼| 日韩欧美中文在线| 国产内射无码| 日韩无码影视| 国产成人免费看| 日韩中文字幕专区| 97色情| AV无码毛片| 一见钟情的韩国电影| 国产高清精品软件丝瓜软件| 久久99精品久久久水蜜桃| 丰满岳乱妇一区二区三区全文阅读| 国产精品宾馆在线| 特级西西人体www高清大胆| 国产91探花| 狠狠撸天天日| 亚洲无码精品视频| 中文字幕三区| 亚洲福利片| 在线无码视频播放| 热99视频| 精品无码久久久| 激情久久av| 色综合色综合色综合| 无码中文综合成熟精品AV电影 | 地表最强网红八月未央道具大秀| 亚洲无码成人AV| 欧美精品毛片| 黑人无码一二三四五区| 国产系列每日更新| 中文字幕精品无码亚| 久操国产| 插插菊花综合网| 97午夜| 三级片视频网址| 人妻少妇一区二区| 欧美五月在线网址| 91熟女视频| 一区二区AV| 足交在线观看| 日日摸日日碰| 久久午夜无码鲁丝片| 超碰最新在线| 99黄色| 日韩无码操逼视频| 精品成人视频| 91精品人妻少妇无码影院| 男人天堂新地址| 大香蕉五月丁香| 在线视频福利导航| 中文字幕免费无码| 俺来也俺去也www色官| 国产精品一区二区三区不卡 | 久久黄色网络| 乱码中文字幕日韩欧美在线| 欧美一级片| 青娱乐青青草| 影音先锋亚洲无码| 综合一区二区| 日本精品人妻无码77777| 国产高清视频在线观看| 一本道高清无码视频| 天天做天天爱天天爽| 一级黄色a片| 激情综合五月| 九九热免费视频| 日韩爱爱网| 日韩三级在线观看| 男女啪啪动态图| 91禁樱桃在线| 做爱无码| 在线无码av| 欧美大屌视频| www.色五月| 高清无码视频在线免费观看| 在线看黄片| 天天爽视频| 黑人丰满大荫蒂| 在线天堂视频| 操嫩逼| 久久久影院| 色婷婷丁香| 欧美在线观看视频| 一见钟情的韩国电影| 国产欧美一区二区三区视频| 色999在线播放视频| 亚洲一级免费免费在线观看| 九九久久国产精品| 大地8免费高清视频观看大全 | 亚洲第一成年人网站| 四虎成人在线| 日本白浆| a√天堂中文在线8| 豆花天天吃最新视频| 男女啊啊啊| 91久久久久国产一区二区| 亚洲精品911| 精品人妻一区二区蜜桃视频| 男男做受A片AAAA| 国内成人精品| 免费无码视频在线观看| 99re视频在线观看| 国产一区二区三区18| 天天搞天天曰在线观看| 亚洲乱码一区| 激情青青草| 一本色道无码人妻精品| 视色AV| 狠狠热视频| 久久人人超碰| 国产69页| 色777| 91成人一区二区三区| 91亚洲精品视频| 神马午夜精品96| 欧亚无码| 国产和日韩中文字幕| 日韩在线1| 亚洲视频99| 日本久久久久| 韩国成人无码| 国产精品不卡一区二区三区| 久久黄视频| 欧美大屌视频| 天天爽日日澡AAAA片| 日韩在线不卡| 日韩老熟妇| 97性爱视频| 一本一道波多野结衣潮喷视频 | 五月天无码免费视频| 蜜桃传媒在线播放| 日本欧美在线播放中文| 三级片网站视频| 青草国产| 成人无码中文字幕| 亚洲韩国中文字幕| 日韩va亚洲va欧美va高清| 俺去啦俺去也| 91精品视频网| 精东影业AV无码精品| 激情视频在线免费观看| 欧美一级特黄A片免费看视频小说| 国产免费无码| 伊人成人视频在线观看| 黄色一级片免费在线观看| 日韩高潮| 亚洲午夜精品成人毛片| 欧美一级精品| 大荫蒂HD大荫蒂视频| 天天日日天天| 韩国三级中文字幕HD久久精品| 人妻懂色av粉嫩av浪潮av| 欧美成人免费观看| 大香蕉大香蕉视频网| 婷婷久草网| 午夜视频无码| 韩国成人精品三级| 男女日皮的视频| 四川乱子伦95视频国产| 怡春院免费视频| 激情小说亚洲图片:伦| 人妻少妇精品视频一区二区三区| 黄色电影av| 大香蕉婷婷五月天| 爱爱黄色视频| 超碰97免费| 久久久国产精品人人片| 伊人色综合网| 色视频在线播放| AV网站免费观看| 国产一级无码| 2012天天夜夜| 黄色爱爱视频| 国产视频一二三| 欧美亚洲日韩中文字幕| 女生被操网站| 久久国产热在8| 热re99久久精品国产99热| 久久伊人综合| 亚洲精品国产成人综合久久久久久久久| 亚洲综合电影| 日韩无码人妻一区二区三区| 波多野结衣av一区| 影音先锋麻豆| 曰韩毛片| 人人爱人人操| 丁香视频在线观看| 18禁污网站| 91人人妻人人澡| 9999久久久久| 亚洲色婷婷久久精品AV蜜桃| 国产九九九视频| 国产伦精一品二品三品app| 国产无码高潮在线| 国产和日韩中文字幕| 91人人妻人人| 大香蕉啪啪视频| 国产乱伦网| AV你懂得| 偷拍视频图片综合网| 天天爽天天日| 99re久久| 国产二区视频| 在桌下含她的花蒂和舌头H视频 | 精品福利视频导航| 91香蕉在线观看视频在线播放| 欧美MV日韩MV国产网站| 狠狠躁18三区二区一区免费人| 亚洲中文字幕免费观看| 欧美成人性爱网址| www,色婷婷| 91网站免费在线观看| 毛片二区| 思思热精品在线| 亚洲香蕉视频网站| 婷婷俺也去| 久久人人爱| 欧美级毛片高潮| 好好的日视频| 毛片中文字幕| 国产传媒在线观看| 日产久久久| 国产1级片| jizz在线观看| 成人网站在线看| 一区二区三区高清不卡| 毛片黄色视频| 偷拍综合| 婷婷玖玖| 台湾精品无码| 西西444www| 黄色电影天堂网站| 欧美日韩一区视频| 成人午夜无码福利视频| 91少妇精品| 亚州无码精品| 国产九色| 四虎无码丰满人妻| 亚州无码精品| 91精品导航| 91迷奸| 蜜臀成人片| 另类老妇videos另类| 黑人av在线| 久久中文字幕无码| 美女极度色诱图片www视频| 黄色小视频免费看| 3D动漫精选啪啪一期二期三期| 老女人网站| 国产黄色网页| 久久久综合网| 人人看人人爱| www.亚洲天堂| 一本久久综合亚洲鲁鲁五月天| JULIA超乳JULIA无码| 五月丁香五月婷婷| 亚洲日本中文字幕在线观看| 性爱视频免费| 蜜柚av| 加勒比国产在线| 大黑人荫蒂BBBBBBBBB| 亚洲九九| 欧美日韩国产成人电影| 91超碰在线免费观看| 亚洲第一色在线| 操逼激情网| 激情视频网| 久久高潮| 日韩人妻无码一区二区三区| 成人一级精品| 精品人妻一区二区免费蜜桃| 高清视频一区二区| 日韩不卡高清在线观看视频| 人妻丝袜无码视频专区| 中文字幕精品无码亚| av天堂资源| 日韩AV免费在线| 午夜成人爽| 国产精品无码在线播放| 午夜18视频在线观看| 日韩干| 国产精品93333333| 欧美色视频网| 日韩精品成人片| 色欲av在线| 一级a一级a爰片免费免免中国A片 一级一级a免一级a做免费线看内裤 | 精品国产91乱码一区二区三区| 无码九九九| 国产AV黄片| 国产亚洲欧美一区二区| 狠狠干综合网| 殴美老妇BBBBBBBBB| 激情五月天激情网| 青草国产| 东京热网站在线观看| 69久久久| 中文免费高清在线观看视频| 久久这里只有精品9| 精品欧美无人区乱码毛片| 蜜桃精品一区二区| 小黄片免费| 国产成人精品亚洲男人的天堂| 人妻人人骑| 日本欧美久久久久免费播放网| 丰滿人妻-区二区三区| 欧美三级在线视频| 欧美最猛黑A片黑人猛交蜜桃视频| 黄色影院在线观看| 美日韩A片| 国产草草| 免费无码在线看| ThePorn-成人网站入口| 成人自拍视频| 老太婆擦BBBB撩BBBB| 国产AV天堂| 久久黄色视屏| 天天日天天色| 中国美女一级黄片| 成人在线中文字幕| 欧美一区二区三区系列电影| 亚洲无码视频免费在线观看| 午夜成人精品一区二区三区| 在线观看无码高清| 国产成人电影一区二区| 欧美婷婷五月天| 伊人综合成人网| 午夜色婷婷| 亚洲精品在| 色婷婷综合激情| 国产成人高清在线| 免费一级A片在线播放| 91蜜桃传媒| 亚洲激情视频在线观看| 香蕉A片| 日本高清无码在线| 亚洲无人禁区| jizz在线观看| www人人操| 日韩午夜成人电影| 99久久久久久久久久| 日本A片免费看| 男女啪网站| 91蝌蚪在线| 亚洲jiZZjiZZ日本少妇| 91三级视频| 大香蕉大香蕉免费网| 亚洲AV高清无码| 午夜激情国产| 国产精品扒开腿做爽爽爽A片唱戏| 日韩无码精品一区| 99婷婷| 人人干视频| 成人喷水亚洲一区无码| 熟妇槡BBBB槡BBBB图| 成人一级精品| 激情人妻AV| 男人天堂无码av| 国产成人a亚洲精品无码| 五月天在线电影| 西西444www无码精品| 久久国产日韩| AAA片| 婷婷五月天激情电影| 91免费在线| 在线国产福利| 三级片在线看片AV| 免费一级A片在线播放| 亚洲最新无码视频| 人人妻人人爽人人澡人人精品| 2026AV天堂网| 亚洲无码电影网| 日本爱爱免费播放视频| 日韩无码第一页| 波多野结衣亚洲视频| 丁香婷婷五月综合影院| 网址你懂得| 国产主播一区二区| 日韩欧美中文字幕在线观看| 黄片日逼视频| 欧美日韩免费在线播放电影在线播放电影在线播放电影免费 | 91三级片在线播放| 亚洲51| 亚洲欧美国产高清vA在线播放| 黄色A片约| 亚洲无码一二三| 成人亚洲性情网站www在线| 国产在线一区二区三区| 国精品无码人妻一区二区三区| 一级成人片| 日本一级婬片免费放| 午夜国产精品AV| 操日本美女| 婷婷热| 亚洲最大成人网站| 69成人视频| 成人欧美一区二区三区白人| 国产成人无码永久免费| 欧美亚洲在线观看| 91久久精品无码一区二区三区| 看黄片com| 欧美XXXXBBBB| 亚洲综合图区| 欧美在线| 99热加勒比| 视频一区二区三区免费| 成人丁香五月天| 国产三级黄色视频| 欧美在线v| 久久精品无码一区二区无码性色 | 亚洲AV成人无码一区二区三区| 蜜臀AⅤ在线| 69成人免费视频| 欧美在线视频你懂的| 91青青| 婷婷五月天基地| 亚洲成人性爱在线| 免费看欧美成人A片无码| 影音先锋国产av| 亚洲无码A片在线| 亚洲精品中文字幕无码| 日韩中文字幕av在线| 中国免费视频高清观看| 亚洲精品无码电影| www.欧美视频| 欧美激情视频在线| 日韩中文字幕久久| www.日逼| 中文字幕日本电影| 免费AV大全| 久久天堂AV综合合色蜜桃网| 日韩aaaa| 亚洲色五月| 免费在线观看无码视频| 国产黄色a片| 免费无码在线观看| 家庭乱伦AV| 日本天天色| 有码中文字幕| 肏逼视频网站| 9I成人免费版视频| 亚洲日本黄色网址| 精品999| 亚洲无码一区在线| 中文字幕视频在线免费观看| 97人人插| 亚洲中文字墓| 男人操女人视频网站| 国产激情视频在线观看| 国产精品77777| 欧美AAAAAAAA| 亚洲吹箫| 免费的A片| 日韩熟妇视频| 一级a一级a爱片兔兔软件| 91久色| 在线无码电影| 先锋影音AV资源站| 女人的天堂AAA| 日韩中文字幕电影| 欧美精品一卡二卡| 欧美国产日韩视频| 成人黄色免费视频| 91人妻无码精品蜜桃| 97国产精品视频人人做人人爱| 国产日本在线视频| 黄页网站在线免费观看| www.日本黄色视频| 五月天激情av| 综合欧美国产视频二区| 亚洲高清无码一区| 中文字幕熟女| 久久久精品在线| 日本女优婷婷青青草原| 操逼网站大全| 久操视频免费在线观看| 51成人精品午夜福利| 人人摸人人爱| 99自拍| 97亚洲综合| 五月丁香婷婷在线观看| 亚洲AV成人片色在线观看麻豆| 亚洲小说区图片区| 美日韩一区二区三区| 伊人免费视频在线观看| mm131亚洲国产精品久久| 色久在线| 波多野结衣一区二区三区在线观看| 日韩不卡中文字幕| 精品國產一區二區三區久久蜜月| 成人在线中文字幕| 91人妻无码精品一区二区| 天天干天天日蜜臀色欲av| 国产传媒在线| 亚洲国产精品二二三三区| 动漫人物插画动漫人物的视频软件 | 色婷婷18正码国产| 91美女操逼视频| 天堂一区| 福利导航网| 91超碰久久在线| 国产精品在线看| 天天插天天爽| 久精品视频| 亚洲小视频在线| 日韩区一中文字幕a∨| 日韩视频网址| 久久人人做| 99色热| 丰满岳乱妇一区二区三区全文阅读| 狠狠噜噜| 无码不卡一区| 国产激情视频在线| 国产欧美精品一区二区| 欧一美一色一伦一A片| 97超碰中文字幕| 在线观看无码AV| 操逼国产| 中文字幕第五页| 国产精品无码7777777| 日韩精品成人片| 男人天堂资源网| 黄色成人视频网站在线观看| 五月激情综合| 久久永久视频| 91三级片网站| 欧美三级欧美一级| 国产黄色AV片| 91精品无码| 亚洲天堂视频在线| 久在线视频| 男人天堂免费视频| 日逼高清无码| 黄色一级生活片| 人人妻人人爽| 激情91| 国产午夜精品电影| 日韩欧美第一页| 欧美后门菊门交3p、| 日韩在线综合网| 麻豆黄网| 成人一区二区三区| 亚洲久久无码| 91人妻在线视频| 中文字幕无码日韩| 五月婷在线观看| 青青草网站在线观看| 思思精品在线| 人人摸人人操人人摸| 亚洲一级无码| 中文字幕偷拍| 日精品| 久草精品视频| A片大香蕉| 日韩亚洲精品中文字幕| 天天干婷婷五月天| 你懂的在线视频观看| 国产欧美综合在线三区| 色色色综合| 51妺嘿嘿午夜福利| 国产黄色精品视频| 牛牛免费视频| 日韩欧美国产精品综合嫩V| 久久婷婷网站| 麻豆午夜福利视频| 久久久精品少妇| 综合网视频| 国产精品一麻了麻了| 美女被操网站| 九九热在线观看| 天美精东蜜桃91| 操逼网首页| 亚洲精品69| 亚洲AV无码专区在线播放中文| 伊人成人片| 五十路熟妇| 能看的操逼网站| 插逼视频国产| 大屌色片| 亚洲激情在线| 天天爽日日澡AAAA片| a天堂视频| 中文字幕亚洲区| 91网站免费在线观看| 黄色国产AV| 91一级特黄大片| 色哟哟在线观看| 100国产精品人妻无码| 亚洲瑟瑟| 大香蕉大香蕉免费网| av色图| 亚欧在线视频| 五月天亚洲激情| 最美孕交vivoestv另类| 日韩性爱视频| 免费A级毛片| 91青青| 欧美色婷婷| 五月天福利视频| 国产黄在线观看| 人妻少妇一区二区三区| 日韩av毛片| 少妇超碰| 肏逼视频网站| 西西人体大胆裸体A片| av在线免费观看网址| 欧美自拍视频在线| 免费啪啪网| 69亚洲精品| 黄色电影天堂网| 亚洲少妇熟女| 国产成人无码一区二区在线观看| 国产在线看| 亚洲成人午夜电影| 噜噜色小说| 午夜丁香婷婷| 99精品视频在线免费观看| 国产欧美综合三级伦| 一级一级a免一级a做免费线看内裤| 簧片网站免费| 日本亚洲视频| 在线黄网站| WWW亚洲视频| 成人免费高清| 大香蕉电影网站| 91偷拍与自偷拍精品无码| 国产成人免费观看视频| 婷婷五月激情小说| 九九伊人大香蕉| 16一17女人毛片| 国产精品九九视频| 欧美三级性爱视频| 中文无码毛片| 国产一区二区三区四区五区六区七区| 翔田千里av在线| 中文字幕在线无码观看| 亚洲波多野结衣| 天天操天天干天天| 99re这里只有精品6| 免费在线观看Av| 成人精品一区日本无码网站suv/| 日韩无码1| 91天天| 老司机精品| 精品码A片18| 欧美A黄片| 国产精品无码中文在线| 欧美精品福利| 欧美深夜福利| 日一日射一射| 东京热小视频| 无码一道本一区二区无码| 黄色A片在线观看| 久久久久久久免费视频| 色播五月婷婷| 精品中文字幕在线观看| 91人妻无码一区二区三区| 无码熟妇| 日韩在线免费视频| 88AV视频| 人人草人人搞| 亚洲内射网| 日日骚亚洲| 国产视频精品一区二区三区| 免费在线观看视频a| 91AV在线免费观看| 亚洲激情无码视频| 影音av资源| 国产三级在线观看视频| 日本综合在线| av三级片在线观看| 久热在线| 一级黄色A片| 按摩忍不住BD中文字幕| 91精品国产成人www| 青草香蕉视频| 日本白嫩的BBw| 大香蕉在线视频网| 亚洲视频五区| 婷婷丁香一区二区三区| 日韩无码精品电影| 91久久香蕉囯产熟女线看蜜桃| 亚洲成人av在线观看| 日韩无码播放| 人妻少妇精品| 成人做爰免费网站2023| 成人免看一级a一片| 91综合色| 91日韩高清| 成人一区在线观看| 成人免费视频国产在线观看| 无码爱爱| 四虎一区二区| www.婷婷五月天| 蜜桃视频一区二区三区| 日本无码久久嗯啊流水| 国产一级A片在线观看| 黄色小说在线看| 日韩高清欧美| 人人草在线观看| 囯产精品久久久久久久| AV三级片在线观看| 插逼综合网| 女神思瑞精品一区二区三区| 97精品人妻麻豆一区二区| 日韩欧美性爱视频| 噜噜影院| 91成人看片| 一级欧美视频| 51妺妺嘿嘿午夜成人A片| 成人免费观看的毛视频| 亚洲色视频在线观看| 西西888WWW大胆视频| 人人摸在线视频| 俺来俺也去www色在线观看| 777视频在线观看| 青青久操| 婷婷综合| 欧美成人性爱网址| 9l人人澡人人妻人人精品| 国产一区二区三区免费观看| 香蕉视频一区| 五月香婷婷| 日韩人妻无码专区| 就去色色五月丁香婷婷久久久 | 久久亚洲av| 日韩成人无码一区二区| 亚洲一级片| 国产高清在线免费观看AV片| 久久久久亚洲精品| 久久久五月| av在线资源网| 插菊综合网| 成人片天天看片欧美一级| 国产香蕉在线播放| 黄色一级大片在线免费看产| 欧美大骚逼| 亚洲最大无码| 亚洲色情电影| 蝌蚪九色啦403| 爱射网| 国产成人精品无码区在线| 爱逼av| 大鸡巴在线观看| 午夜福利手机在线| 五月一区| 精品动漫一区二区三区| 中文字幕四区| 日本久久电影| 亚洲图片激情乱伦小说| 青青草原视频在线免费观看| japanese在线观看| 欧美日韩一二| 成人免费视频18| 欧美18禁黄免费网站| 星空AV| 色综合大香蕉| 国产又爽又黄在线看视频| 婷婷一区二区| 日韩操大屌| 日本无码视频在线| 一本到无码| 不卡视频在线| 久久夜色视频网| 色噜噜狠狠一区二区三区300部| 欧美日韩在线看| 欧美动态视频| 婷婷伊人綜合中文字幕小说| 亚洲色情在线播放| 99久热在线精品| 欧美Aⅴ| 操逼视频国产| 日本不卡一区二区三区四区 | 激情一区二区| 日韩高清无码免费看| 国产成人一区二区无码| 国产一区二区三区在线观看免费视频免费视频免费视频 | 黄色福利视频在线观看| 精品久久99| 国产高清不卡| www超碰在线| 7x7x7x人成免费观学生视频| 亚洲va欧洲va国产va不卡| 国产成人一区二区三区| 在线一级A片| 久久婷婷五月丁香| 国产精品成人在线观看| 麻豆精品久久久久久久99蜜桃| 无套免费视频欧美| 日韩无码一二三区| 欧美日韩一二| 狠狠干狠狠干| 粉嫩小泬BBBB免费看| 青青草逼视频| 国产亚洲激情| 亚洲国产成人精品女人久久久| 大香蕉电影网站| 色诱AV| 中文字幕亚洲日韩| 国产成人a亚洲精品www| 蜜桃视频com.www| www.A片| 婷婷久久综合| 激情五月天av| 国产黄色视频在线观看免费| 亚洲成人无码电影| 97热| 亚洲男女网站| 极品少妇AV| 特级丰满少妇免费观看| 欧美不卡在线观看| 免费看国产黄色视频| 你懂的视频| 亚洲精品视频在线观看免费| 成人爱爱免费视频| 久久久婷婷婷| 狼人狠干| 自拍视频一区| 久久久久无码精品亚洲日韩| 国产日韩性爱视频| 日本黄色A片免费看| 欧美超碰在线| 亚洲欧美日韩黑料吃瓜在线观看| 你懂的在线免费观看| 国产av毛片| 在线播放中文字幕| 日本中文字幕在线免费观看| 一级黄色视频免费看| 91在线观看高清18| 爱爱爱爱网| 伊人成年网| 国产操| 免费观看黄色在线视频| 激情丁香婷婷| 青娱乐精品| 9999re| 日韩中文字幕在线观看视频| 亚洲成人影片| 操逼黄视频| 亚洲日本高清| 国产免费AV片在线无码免费看| 亚洲视频在线观看网站| 国产精品香蕉| 玩弄大乳乳妾高潮乳喷视频| 女女久久| 免费的毛片| 加勒比在线视频| 九九久久免费视频| 先锋影音资源av| 特猛特黄AAAAAA片| 春色AV| 免费看黄色大片| 欧美日韩V| 尤物com| 另类av| 欧美精品不卡| 天堂中文资源在线| 亚洲一区二区网站| 熟女老阿V8888AV| 亚洲天堂网在线观看| 伊人av网| 日韩性爱小视频| 欧美日韩免费| 日韩久久婷婷| 国产在线视频你懂的|