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

輕量級網(wǎng)絡(luò)論文-VoVNet詳解

共 28732字,需瀏覽 58分鐘

 ·

2022-12-04 13:16

  • 摘要

  • 1,介紹

  • 2,高效網(wǎng)絡(luò)設(shè)計的影響因素

    • 2.1,內(nèi)存訪問代價

    • 2.2,GPU計算效率

  • 3,建議的方法

    • 3.1,重新思考密集連接

    • 3.2,One-Shot Aggregation

    • 3.3,構(gòu)建 VoVNet 網(wǎng)絡(luò)

  • 4,實驗

  • 5,代碼解讀

  • 參考資料


摘要

Youngwan Lee* 作者于 2019 年發(fā)表的論文 An Energy and GPU-Computation Efficient Backbone Network for Real-Time Object Detection. 是對 DenseNet 網(wǎng)絡(luò)推理效率低的改進(jìn)版本。

因為 DenseNet 通過用密集連接,來聚合具有不同感受野大小的中間特征,因此它在對象檢測任務(wù)上表現(xiàn)出良好的性能。雖然特征重用(feature reuse)的使用,讓 DenseNet 以少量模型參數(shù)和 FLOPs,也能輸出有力的特征,但是使用 DenseNet 作為 backbone 的目標(biāo)檢測器卻表現(xiàn)出了運(yùn)行速度慢和效率低下的弊端。作者認(rèn)為是密集連接(dense connection)帶來的輸入通道線性增長,從而導(dǎo)高內(nèi)存訪問成本和能耗。為了提高 DenseNet 的效率,作者提出一個新的更高效的網(wǎng)絡(luò) VoVet,由 OSAOne-Shot Aggregation,一次聚合)組成。OSA 僅在模塊的最后一層聚合前面所有層的特征,這種結(jié)構(gòu)不僅繼承了 DenseNet 的多感受野表示多種特征的優(yōu)點(diǎn),也解決了密集連接效率低下的問題?;?VoVNet 的檢測器不僅速度比 DenseNet 快 2 倍,能耗也降低了 1.5-4.1 倍。另外,VoVNet 網(wǎng)絡(luò)的速度和效率還優(yōu)于 ResNet,并且其對于小目標(biāo)檢測的性能有了顯著提高。

1,介紹

隨著 CNN 模型:VGG、ResNetDensNet 的巨大進(jìn)步,它們開始被廣泛用作目標(biāo)檢測器的 backbone,用來提取圖像特征。

ResNetDenseNet 主要的區(qū)別在于它們聚合特征的方式,ResNet 是通過逐元素相加(element-wise add)和前面特征聚合,DenseNet 則是通過拼接(concatenation)的方式。Zhu 等人在論文32[1] 中認(rèn)為前面的特征圖攜帶的信息將在與其他特征圖相加時被清除。換句話說,通過 concatenation 的方式,早期的特征才能傳遞下去,因為它保留了特征的原始形式(沒有改變特征本身)。

最近的一些工作 [25, 17, 13] 表明具有多個感受野的抽象特征可以捕捉各種尺度的視覺信息。因為檢測任務(wù)比分類更加需要多樣化尺度去識別對象,因此保留來自各個層的信息對于檢測尤為重要,因為網(wǎng)絡(luò)每一層都有不同的感受野。因此,在目標(biāo)檢測任務(wù)上,DenseNetResNet 有更好更多樣化的特征表示。

這是不是說明對于,多標(biāo)簽分類問題,用 VoVNet 作為 backbone,效果要比 ResNet 要好。因為前者可以實現(xiàn)多感受野表示特征。

盡管使用 DenseNet 的檢測器的參數(shù)量和 FLOPs 都比 ResNet 小,但是前者的能耗能耗和速度卻更慢。這是因為,還有其他因素 FLOPs 和模型尺寸(參數(shù)量)影響能耗。

首先,內(nèi)存訪問代價 MAC 是影響能耗的關(guān)鍵因素。如圖 1(a) 所示,因為 DenseNet 中的所有特征圖都被密集連接用作后續(xù)層的輸入,因此內(nèi)存訪問成本與網(wǎng)絡(luò)深度成二次方增加,從而導(dǎo)致計算開銷和更多的能耗。

OSA和密集連接

從圖 (a) 中可以看出,DenseBlock 中的每一層的輸入都是前面所有層 feature map 的疊加。而圖 (b)只有最后一層的輸入是前面所有層 feature map 的疊加。

其次,關(guān)于 GPU 的并行計算,DenseNet 有計算瓶頸的限制。一般來說,當(dāng)操作的張量更大時,GPU 的并行利用率會更高[19,29,13]。然而,由于為了線性增加輸入通道,需要 DenseNet 采用 1×1 卷積 bottleneck 架構(gòu)來減少輸入維度和 FLOPs,這導(dǎo)致使用較小的操作數(shù)張量增加層數(shù)。作為結(jié)果就是 GPU 計算變得低效??偨Y(jié)就是,bottleneck 結(jié)構(gòu)中的 卷積會導(dǎo)致 GPU 并行利用率。

本文的目的在于將 DenseNet 改進(jìn)的更高效,同時,還保留對目標(biāo)檢測有益的連接聚合(concatenative aggregation)操作。

作者認(rèn)為 DenseNet 網(wǎng)絡(luò) DenseBlock 中間層的密集連接(dense connections)會導(dǎo)致網(wǎng)絡(luò)效率低下,并假設(shè)相應(yīng)的密集連接是多余的。

作者使用 OSA 模塊構(gòu)建了 VoVNet 網(wǎng)絡(luò),為了驗證有效性,將其作為 DSOD、RefineDet 和 Mask R-CNN 的 backbone 來做對比實驗。實驗結(jié)果表明,基于 VoVNet 的檢測器優(yōu)于 DenseNet 和 ResNet,速度和能耗都更優(yōu)。

2,高效網(wǎng)絡(luò)設(shè)計的影響因素

作者認(rèn)為,MobileNet v1 [8], MobileNet v2 [21], ShuffleNet v1 [31], ShuffleNet v2 [18], and Pelee 模型主要是通過使用 DW 卷積和 帶 卷積的 bottleneck 結(jié)構(gòu)來減少 FLOPs 和模型尺寸(參數(shù)量)。

這里我覺得作者表達(dá)不嚴(yán)謹(jǐn),因為 shufflenetv2 在論文中已經(jīng)聲明過,F(xiàn)LOPs 和模型參數(shù)量不是模型運(yùn)行速度的唯一決定因素。

實際上,減少 FLOPs 和模型大小并不總能保證減少 GPU 推理時間和實際能耗,典型的例子就是 DenseNetResNet 的對比,還有就是在 GPU 平臺上, Shufflenetv2 在同等參數(shù)條件下,運(yùn)行速度比 MobileNetv2 更快。這些現(xiàn)象告訴我們,FLOPs 和 模型尺寸(參數(shù))是衡量模型實用性(practicality)的間接指標(biāo)。為了設(shè)計更高效的網(wǎng)絡(luò),我們需要使用直接指標(biāo) FPS,除了上面說的 FLOPs 和模型參數(shù)量會影響模型的運(yùn)行速度(FPS),還有以下幾個因素。

2.1,內(nèi)存訪問代價

這個 Shufflenetv2 作者已經(jīng)解釋得很清楚了,本文的作者的描述基本和 Shufflenetv2 一致。我這里直接給結(jié)論:

  • MAC 對能耗的影響超過了計算量 FLOPs [28]。
  • 卷積層輸入輸出通道數(shù)相等時,MAC 取得最小值。
  • 即使模型參數(shù)量一致,只要 MAC 不同,那么模型的運(yùn)行時間也是不一致的(ShuffleNetv2 有實驗證明)。

論文 [28] Designing energy-efficient convolutional neural networks using energyaware pruning.

2.2,GPU計算效率

其實這個內(nèi)容和 shufflenetv2 論文中的 G3 原則(網(wǎng)絡(luò)碎片化會降低 GPU 并行度)基本一致。

為提高速度而降低 FLOPs 的網(wǎng)絡(luò)架構(gòu)基于這樣一種理念,即設(shè)備中的每個浮點(diǎn)運(yùn)算都以相同的速度進(jìn)行處理。但是,當(dāng)模型部署在 GPU 上時,不是這樣的,因為 GPU 是并行處理機(jī)制能同時處理多個浮點(diǎn)運(yùn)算進(jìn)程。我們用 GPU 計算效率來表示 GPU 的運(yùn)算能力。

  • 通過減少 FLOPs 是來加速的前提是,設(shè)備中的每個浮點(diǎn)運(yùn)算都以相同的速度進(jìn)行處理;
  • GPU 特性
    • 擅長 parallel computation,tensor 越大,GPU 使用效率越高。
    • 把大的卷積操作拆分成碎片的小操作將不利于 GPU 計算。
  • 因此,設(shè)計 layer 數(shù)量少的網(wǎng)絡(luò)是更好的選擇。MobileNet使用額外的 1x1 卷積來減少計算量,不過這不利于 GPU 計算。
  • 為了衡量 GPU 利用率,引入有一個新指標(biāo):(每秒完成的計算量 FLOPs per Second),F(xiàn)LOP/s 高,則 GPU 利用率率也高。

3,建議的方法

3.1,重新思考密集連接

1,DenseNet 的優(yōu)點(diǎn)

在計算第 層的輸出時,要用到之前所有層的輸出的 concat 的結(jié)果。這種密集的連接使得各個層的各個尺度的特征都能被提取,供后面的網(wǎng)絡(luò)使用。這也是它能得到比較高的精度的原因,而且密集的連接更有利于梯度的回傳(ResNet shorcut 操作的加強(qiáng)版)。

2,DenseNet 缺點(diǎn)(導(dǎo)致了能耗和推理效率低的):

  • 密集連接會增加輸入通道大小,但輸出通道大小保持不變,導(dǎo)致的輸入和輸出通道數(shù)都不相等。因此,DenseNet 具有具有較高的 MAC。
  • DenseNet 采用了 bottleneck 結(jié)構(gòu),這種結(jié)構(gòu)將一個 卷積分成了兩個計算(1x1+3x3 卷積),這帶來了更多的序列計算(sequential computations),導(dǎo)致會降低推理速度。

密集連接會導(dǎo)致計算量增加,所以不得不采用 卷積的 bottleneck 結(jié)構(gòu)。

圖 7 的第 1 行是 DenseNet 各個卷積層之間的相互關(guān)系的大小。第 塊代表第 層和第 層之間這個卷積權(quán)值的平均 范數(shù)(按特征圖數(shù)量歸一化后的 L1 范數(shù))的大小,也就相當(dāng)于是表征 之間的關(guān)系。

圖 2. 訓(xùn)練后的 DenseNet(頂部) 和 VoVNet(中間和底部) 中卷積層的濾波器權(quán)重的絕對值的平均值。像素塊的顏色表示的是相互連接的網(wǎng)絡(luò)層(i, j)的權(quán)重的平均 范數(shù)(按特征圖數(shù)量歸一化后的 L1 范數(shù))的值。OSA Module (x/y) 指的是 OSA 模塊由 層和 個通道組成。

Figure2

如圖 2 頂部圖所示, Hu 等人[9]通過評估每層輸入權(quán)重歸一化后的 L1 范數(shù)來說明密集連接的連通性(connectivity),這些值顯示了前面所有層對相應(yīng)層的歸一化影響,1 表示影響最大,0 表示沒有影響(兩個層之間的權(quán)重沒有關(guān)系)。

這里重點(diǎn)解釋下連通性的理解。兩層之間的輸入權(quán)重的絕對值相差越大,即 L1 越大,那么說明卷積核的權(quán)重越不一樣,前面層對后面層影響越大(connectivity),即連通性越好(大)。從實用性角度講,我們肯定希望相互連接的網(wǎng)絡(luò)層的連通性越大越好(歸一化后是 0~1 范圍),這樣我的密集連接才起作用了嘛。不然,耗費(fèi)了計算量、犧牲了效率,但是連通性結(jié)果又差,那我還有必要設(shè)計成密集連接(dense connection)。作者通過圖 2 后面的兩張圖也證明了DenseBlock 模塊中各個層之間的聯(lián)系大部分都是沒用,只有少部分是有用的,即密集連接中大部分網(wǎng)絡(luò)層的連接是無效的。

在 Dense Block3 中,對角線附近的紅色框表示中間層(intermediate layers)上的聚合處于活動狀態(tài),但是分類層(classification layer)只使用了一小部分中間特征。相比之下,在 Dense Block1 中,過渡層(transition layer)很好地聚合了其大部分輸入特征,而中間層則沒有。

Dense Block3 的分類層和 Dense Block1 的過渡層都是模塊的最后一層。

通過前面的觀察,我們先假設(shè)中間層的聚集強(qiáng)度和最后一層的聚集強(qiáng)度之間存在負(fù)相關(guān)(中間層特征層的聚合能力越好,那么最后層的聚合能力就越弱)。如果中間層之間的密集連接導(dǎo)致了每一層的特征之間存在相關(guān)性,則密集連接會使后面的中間層產(chǎn)生更好的特征的同時與前一層的特征相似,則假設(shè)成立。在這種情況下,因為這兩種特征代表冗余信息,所以最后一層不需要學(xué)習(xí)聚合它們,從而前中間層對最終層的影響變小。

因為最后一層的特征都是通過聚集(aggregated)所有中間層的特征而產(chǎn)生的,所以,我們當(dāng)然希望中間層的這些特征能夠互補(bǔ)或者相關(guān)性越低越好。因此,進(jìn)一步提出假設(shè),相比于造成的損耗,中間特征層的 dense connection 產(chǎn)生的作用有限。為了驗證假設(shè),我們重新設(shè)計了一個新的模塊 OSA,該模塊僅在最后一層聚合塊中其他層的特征(intermediate features,把中間的密集連接都去掉。

3.2,One-Shot Aggregation

為了驗證我們的假設(shè),中間層的聚合強(qiáng)度和最后一層的聚合強(qiáng)度之間存在負(fù)相關(guān),并且密集連接是多余的,我們與 Hu 等人進(jìn)行了相同的實驗,實驗結(jié)果是圖 2 中間和底部位置的兩張圖。

Figure2-middle-bottom

從圖 2(中間)可以觀察到,隨著中間層上的密集連接被剪掉,最終層中的聚合變得更加強(qiáng)烈。同時,藍(lán)色的部分 (聯(lián)系大部分不緊密的部分) 明顯減少了很多,也就是說 OSA 模塊的每個連接都是相對有用的。

從圖 2(底部)的可以觀察到,OSA 模塊的過渡層的權(quán)重顯示出與 DenseNet 不同的模式:來自淺層的特征更多地聚集在過渡層上。由于來自深層的特征對過渡層的影響不大,我們可以在沒有顯著影響的情況下減少 OSA 模塊的層數(shù),得到。令人驚訝的是,使用此模塊(5 層網(wǎng)絡(luò)),我們實現(xiàn)了 5.44% 的錯誤率,與 DenseNet-40 (模塊里有 12 層網(wǎng)絡(luò))的錯誤率(5.24%)相似。這意味著通過密集連接構(gòu)建深度中間特征的效果不如預(yù)期(This implies that building deep intermediate feature via dense connection is less effective than expected)。

One-Shot Aggregation(只聚集一次)是指 OSA 模塊的 concat 操作只進(jìn)行一次,即只有最后一層的輸入是前面所有層 feature map 的 concat(疊加)。OSA 模塊的結(jié)構(gòu)圖如圖 1(b) 所示。

Figure1

在 OSA 模塊中,每一層產(chǎn)生兩種連接,一種是通過 conv 和下一層連接,產(chǎn)生 receptive field 更大的 feature map,另一種是和最后的輸出層相連,以聚合足夠好的特征。

為了驗證 OSA 模塊的有效性,作者使用 dense block 和 OSA 模塊構(gòu)成 DenseNet-40網(wǎng)絡(luò),使兩種模型參數(shù)量一致,做對比實驗。OSA 模板版本在 CIFAR-10 數(shù)據(jù)集上的精度達(dá)到了 93.6,和 dense block 版本相比,只下降了 1.2%。再根據(jù) MAC 的公式,可知 MAC 從 3.7M 減少為 2.5M。MAC 的降低是因為 OSA 中的中間層具有相同大小的輸入輸出通道數(shù),從而使得 MAC 可以取最小值(lower boundary)。

因為 OSA 模塊中間層的輸入輸出通道數(shù)一致,所以沒必要使用 bottleneck 結(jié)構(gòu),這又進(jìn)一步提高了 GPU 利用率。

3.3,構(gòu)建 VoVNet 網(wǎng)絡(luò)

因為 OSA 模塊的多樣化特征表示和效率,所以可以通過僅堆疊幾個模塊來構(gòu)建精度高、速度快的 VoVNet 網(wǎng)絡(luò)?;趫D 2 中淺層深度更容易聚合的認(rèn)識,作者認(rèn)為可以配置比 DenseNet 具有更大通道數(shù)的但更少卷積層的 OSA 模塊。

如下圖所示,分別構(gòu)建了 VoVNet-27-slim,VoVNet-39, VoVNet-57。注意,其中downsampling 層是通過 3x3 stride=2 的 max pooling 實現(xiàn)的,conv 表示的是 Conv-BN-ReLU 的順序連接。

VoVNet網(wǎng)絡(luò)結(jié)構(gòu)概覽

VOVNet 由 5 個階段組成,各個階段的輸出特征大小依次降為原來的一半。VOVNet-27 前 2 個 stage 的連接圖如下所示。

VOVNet-27前2個stage

4,實驗

GPU 的能耗計算公式如下:

GPU能耗計算公式

實驗1:VoVNet vs. DenseNet. 對比不同 backbone 下的目標(biāo)檢測模型性能(PASCALVOC)

對比試驗

對比指標(biāo):

  • Flops:模型需要的計算量
  • FPS:模型推斷速度img/s
  • Params:參數(shù)數(shù)量
  • Memory footprint:內(nèi)存占用
  • Enegry Efficiency:能耗
  • Computation Efficiency:GPU 計算效率(GFlops/s)
  • mAP(目標(biāo)檢測性能評價指標(biāo))

現(xiàn)象與總結(jié):

  • 現(xiàn)象 1:相比于 DenseNet-67,PeleeNet 減少了 Flops,但是推斷速度沒有提升,與之相反,VoVNet-27-slim 稍微增加了Flops,而推斷速度提升了一倍。同時,VoVNet-27-sli m的精度比其他模型都高。
  • 現(xiàn)象 2:VoVNet-27-slim 的內(nèi)存占用、能耗、GPU 利用率都是最高的。
  • 結(jié)論 1:相比其他模型,VoVNet做到了準(zhǔn)確率和效率的均衡,提升了目標(biāo)檢測的整體性能

實驗2:Ablation study on 1×1 conv bottleneck.

bottleneck驗證實驗

結(jié)論 2:可以看出,1x1 bottleneck 增加了 GPU Inference 時間,降低了 mAP,盡管它減少了參數(shù)數(shù)量和計算量。

因為 1x1 bottleneck 增加了網(wǎng)路的總層數(shù),需要更多的激活層,從而增加了內(nèi)存占用。

實驗3:GPU-Computation Efficiency.

GPU計算效率對比實驗
  • 圖3(a) VoVNet 兼顧準(zhǔn)確率和 Inference 速度
  • 圖3(b) VoVNet 兼顧準(zhǔn)確率和 GPU 使用率
  • 圖3(c) VoVNet 兼顧準(zhǔn)確率和能耗
  • 圖3(d) VoVNet 兼顧能耗和 GPU 使用率

實驗室4:基于RefineDet架構(gòu)比較VoVNet、ResNet和DenseNet

Table4

結(jié)論 4:從 COCO 數(shù)據(jù)集測試結(jié)果看,相比于 ResNet,VoVnet在 Inference 速度,內(nèi)存占用,能耗,GPU 使用率和準(zhǔn)確率上都占據(jù)優(yōu)勢。盡管很多時候,VoVNet 需要更多的計算量以及參數(shù)量。

  • 對比 DenseNet161(k=48) 和 DenseNet201(k=32)可以發(fā)現(xiàn),深且”瘦“的網(wǎng)絡(luò),GPU 使用率更低。
  • 另外,作者發(fā)現(xiàn)相比于 ResNet,VoVNet 在小目標(biāo)上的表現(xiàn)更好。

實驗 5:Mask R-CNN from scratch.

通過替換 Mask R-CNN 的 backbone,也發(fā)現(xiàn) VoVNet 在Inference 速度和準(zhǔn)確率上優(yōu)于 ResNet。

mask-rcnn上的實驗結(jié)果

5,代碼解讀

雖然 VoVNet 在 CenterMask 論文[2] 中衍生出了升級版本 VoVNetv2,但是本文的代碼解讀還是針對原本的 VoVNet,代碼來源這里[3]

1,定義不同類型的卷積函數(shù)

def conv3x3(in_channels, out_channels, module_name, postfix,
            stride=1, groups=1, kernel_size=3, padding=1)
:

    """3x3 convolution with padding. conv3x3, bn, relu的順序組合
 """

    return [
        ('{}_{}/conv'.format(module_name, postfix),
            nn.Conv2d(in_channels, out_channels,
                      kernel_size=kernel_size,
                      stride=stride,
                      padding=padding,
                      groups=groups,
                      bias=False)),
        ('{}_{}/norm'.format(module_name, postfix),
            nn.BatchNorm2d(out_channels)),
        ('{}_{}/relu'.format(module_name, postfix),
            nn.ReLU(inplace=True)),
    ]

def conv1x1(in_channels, out_channels, module_name, postfix,
            stride=1, groups=1, kernel_size=1, padding=0)
:

    """1x1 convolution"""
    return [
        ('{}_{}/conv'.format(module_name, postfix),
            nn.Conv2d(in_channels, out_channels,
                      kernel_size=kernel_size,
                      stride=stride,
                      padding=padding,
                      groups=groups,
                      bias=False)),
        ('{}_{}/norm'.format(module_name, postfix),
            nn.BatchNorm2d(out_channels)),
        ('{}_{}/relu'.format(module_name, postfix),
            nn.ReLU(inplace=True)),
    ]

2,其中 OSA 模塊結(jié)構(gòu)的代碼如下。

class _OSA_module(nn.Module):
    def __init__(self,
                 in_ch,
                 stage_ch,
                 concat_ch,
                 layer_per_block,
                 module_name,
                 identity=False)
:

        super(_OSA_module, self).__init__()

        self.identity = identity # 默認(rèn)不使用恒等映射
        self.layers = nn.ModuleList()
        in_channel = in_ch
        # stage_ch: 每個 stage 內(nèi)部的 channel 數(shù)
        for i in range(layer_per_block):
            self.layers.append(nn.Sequential(
                OrderedDict(conv3x3(in_channel, stage_ch, module_name, i))))
            in_channel = stage_ch

        # feature aggregation
        in_channel = in_ch + layer_per_block * stage_ch
        # concat_ch: 1×1 卷積輸出的 channel 數(shù)
        # 也從 stage2 開始,每個 stage 最開始的輸入 channnel 數(shù)
        self.concat = nn.Sequential(
            OrderedDict(conv1x1(in_channel, concat_ch, module_name, 'concat')))

    def forward(self, x):
        identity_feat = x
        output = []
        output.append(x)
        for layer in self.layers:  # 中間所有層的順序連接
            x = layer(x)
            output.append(x)
        # 最后一層的輸出要和前面所有層的 feature map 做 concat
        x = torch.cat(output, dim=1)
        xt = self.concat(x)

        if self.identity:
            xt = xt + identity_feat

        return xt

3,定義 _OSA_stage,每個 stage 有多少個 OSA 模塊,由 _vovnet 函數(shù)的 block_per_stage 參數(shù)指定。

class _OSA_stage(nn.Sequential):
 """
 in_ch: 每個 stage 階段最開始的輸入通道數(shù)(feature map 數(shù)量)
 """

    def __init__(self,
                 in_ch,
                 stage_ch,
                 concat_ch,
                 block_per_stage,
                 layer_per_block,
                 stage_num)
:

        super(_OSA_stage, self).__init__()

        if not stage_num == 2:
            self.add_module('Pooling',
                nn.MaxPool2d(kernel_size=3, stride=2, ceil_mode=True))

        module_name = f'OSA{stage_num}_1'
        self.add_module(module_name,
            _OSA_module(in_ch,
                        stage_ch,
                        concat_ch,
                        layer_per_block,
                        module_name))
        for i in range(block_per_stage-1):
            module_name = f'OSA{stage_num}_{i+2}'
            self.add_module(module_name,
                _OSA_module(concat_ch,
                            stage_ch,
                            concat_ch,
                            layer_per_block,
                            module_name,
                            identity=True))

4,定義 VOVNet,

class VoVNet(nn.Module):
    def __init__(self, 
                 config_stage_ch,
                 config_concat_ch,
                 block_per_stage,
                 layer_per_block,
                 num_classes=1000)
:

        super(VoVNet, self).__init__()

        # Stem module --> stage1
        stem = conv3x3(3,   64'stem''1'2)
        stem += conv3x3(64,  64'stem''2'1)
        stem += conv3x3(64128'stem''3'2)
        self.add_module('stem', nn.Sequential(OrderedDict(stem)))

        stem_out_ch = [128]
        # vovnet-57,in_ch_list 結(jié)果是 [128, 256, 512, 768]
        in_ch_list = stem_out_ch + config_concat_ch[:-1]
        self.stage_names = []
        for i in range(4): #num_stages
            name = 'stage%d' % (i+2)
            self.stage_names.append(name)
            self.add_module(name,
                            _OSA_stage(in_ch_list[i],
                                       config_stage_ch[i],
                                       config_concat_ch[i],
                                       block_per_stage[i],
                                       layer_per_block,
                                       i+2))

        self.classifier = nn.Linear(config_concat_ch[-1], num_classes)

        for m in self.modules():
            if isinstance(m, nn.Conv2d):
                nn.init.kaiming_normal_(m.weight)
            elif isinstance(m, (nn.BatchNorm2d, nn.GroupNorm)):
                nn.init.constant_(m.weight, 1)
                nn.init.constant_(m.bias, 0)
            elif isinstance(m, nn.Linear):
                nn.init.constant_(m.bias, 0)

    def forward(self, x):
        x = self.stem(x)
        for name in self.stage_names:
            x = getattr(self, name)(x)
        x = F.adaptive_avg_pool2d(x, (11)).view(x.size(0), -1)
        x = self.classifier(x)
        return x

5,VoVNet 各個版本的實現(xiàn)。vovnet57 中有 4stage,每個 stage 的 OSP 模塊數(shù)目依次是 [1,1,4,3],每個 個 stage 內(nèi)部對應(yīng)的通道數(shù)都是一樣的,分別是 [128, 160, 192, 224]。每個 stage 最后的輸出通道數(shù)分別是 [256, 512, 768, 1024],由 concat_ch 參數(shù)指定。

所有版本的 vovnet 的 OSA 模塊中的卷積層數(shù)都是 5

def _vovnet(arch,
            config_stage_ch,
            config_concat_ch,
            block_per_stage,
            layer_per_block,
            pretrained,
            progress,
            **kwargs)
:

    model = VoVNet(config_stage_ch, config_concat_ch,
                   block_per_stage, layer_per_block,
                   **kwargs)
    if pretrained:
        state_dict = load_state_dict_from_url(model_urls[arch],
                                              progress=progress)
        model.load_state_dict(state_dict)
    return model

def vovnet57(pretrained=False, progress=True, **kwargs):
    r"""Constructs a VoVNet-57 model as described in 
    `"An Energy and GPU-Computation Efficient Backbone Networks"
    <https://arxiv.org/abs/1904.09730>`_.
    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
        progress (bool): If True, displays a progress bar of the download to stderr
    """

    return _vovnet('vovnet57', [128160192224], [2565127681024],
                    [1,1,4,3], 5, pretrained, progress, **kwargs)

def vovnet39(pretrained=False, progress=True, **kwargs):
    r"""Constructs a VoVNet-39 model as described in
    `"An Energy and GPU-Computation Efficient Backbone Networks"
    <https://arxiv.org/abs/1904.09730>`_.
    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
        progress (bool): If True, displays a progress bar of the download to stderr
    """

    return _vovnet('vovnet39', [128160192224], [2565127681024],
                    [1,1,2,2], 5, pretrained, progress, **kwargs)


def vovnet27_slim(pretrained=False, progress=True, **kwargs):
    r"""Constructs a VoVNet-39 model as described in
    `"An Energy and GPU-Computation Efficient Backbone Networks"
    <https://arxiv.org/abs/1904.09730>`_.
    Args:
        pretrained (bool): If True, returns a model pre-trained on ImageNet
        progress (bool): If True, displays a progress bar of the download to stderr
    """

    return _vovnet('vovnet27_slim', [648096112], [128256384512],
                    [1,1,1,1], 5, pretrained, progress, **kwargs)

參考資料

[1]

32: https://arxiv.org/abs/1801.05895

[2]

CenterMask 論文: https://link.zhihu.com/?target=https%3A//arxiv.org/pdf/1911.06667.pdf

[3]

這里: https://github.com/stigma0617/VoVNet.pytorch/blob/master/models_vovnet/vovnet.py

[4]

論文筆記VovNet(專注GPU計算、能耗高效的網(wǎng)絡(luò)結(jié)構(gòu)): https://zhuanlan.zhihu.com/p/79677425

[5]

實時目標(biāo)檢測的新backbone網(wǎng)絡(luò):VOVNet: https://zhuanlan.zhihu.com/p/393740052

瀏覽 34
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 99er在线观看| 日本三级中文字幕| 黄色小说在线播放| 免费看日韩毛片| 99精品视频在线播放免费| 日韩人妻码一区二区三区| 走光无码一区二区三区| 色婷婷官网| 亚洲无码电影在线观看| 猫咪AV成人永久网站| 免费观看操逼| 黄片高清无码在线观看| 人人摸人人操人人爱| 久久嫩草精品久久久久精| 91亚洲电影| 免费无码婬片AAAA片直播| 97精品欧美91久久久久久久| 东北奇淫老老妇| 高清的日逼| 黄色无码视频| 欧美黄色小视频| 日日夜夜AV| 精品国产va久久久久久久| 亚洲香蕉视频网站| 尤物综合网| 婷婷大香蕉| 四虎黄色| 亚洲中文娱乐| 安微妇搡BBBB搡BBBB| 国产无码观看| 亚洲加勒比久久88色综合| 国产麻豆精品ThePorn| 做爱网站| 学生妹一级J人片内射视频| 91精品国产aⅴ一区二区| 五月婷在线观看| 热久久最新| 亚洲欧洲在线播放| 国产免费成人| 中文字幕在线免费| 久久yzy| 91女人18片女毛片60分钟| 99久久婷婷| 日韩高清无码观看| www.俺去啦| 人与鲁牲交| 欧美激情内射| 亚洲性爱在线| 国产高清无码在线| 在线视频一区二区三区| ThePorn日本无码| 超碰福利在线| 一区二区三区观看| 欧美黄片一区二区| 无码秘蜜桃一区二区三区| 色综合五月婷婷| 亚洲天堂天天| 欧美色成人免费在线视频| 国产福利AV| 91免费视频在线| 色xxxx| 国产亚洲精品码| 美女极度色诱图片www视频 | 成人黄片在线免费观看| 欧美亚洲色色网视频| 亚洲视频区| 99内射| 国产美女自拍视频| 在线中文无码| 色色777| 91麻豆香蕉| 亚洲二区在线| 免费操B| 日韩在线你懂的| 激情无码在线观看| 2026AV天堂网| AV电影在线免费观看| 91久久久久久久久久久| 97资源网站| 精品国产免费观看久久久_久久天天| 91精品婷婷国产综合久久韩漫| 亚洲人成在线观看| 99青草| 中文AV在线播放| 99在线视频精品| 精品1区| 91福利在线视频| 一插综合网| 日韩高清无码片| 欧美亚洲图区| 国产乱仑视频| 久久中文娱乐网| 日韩AV无码成人精品| 大鸡巴久久久久久| 69国产成人综合久久精品欧美| 中国操逼毛片| 日韩无码1| 人人爽人人操人人爱| 久久免费毛片| 成人AV一AV二| 一级一级a免一级a做免费线看内裤| 青青草视频免费在线观看| 国产在线内射| 最新av网| www.射| 久碰人妻人妻人妻| 久久久久国产精品视频| 99人人爽| 午夜私人福利| 亚洲3p| 五月丁香激情在线| 一级AAAAA片裸体做受| 人妻18无码人伦一区二区三区精品| 免费国产精品视频| 香蕉视频啪啪啪| 超碰1999| 国产无码观看| 国产迷奸在线| 国产熟女一区| 黄色无码av| 老熟女91| 亚洲精品成AV人片天堂无码| 精品久久一区| 婷婷五月久久| 免费a片视频| 成人午夜无码视频| 韩国精品无码一区二区三区18| 婷婷精品国产a久久综合| 亚洲天堂无码在线观看| 天天视频黄| 麻豆中文字幕| 天天操天天干天天日| 欧美成人免费| A亚洲天堂| 91无码成人视频| 国产91综合一区在线观看| 欧美视频A| 伊人综合成人网| 台湾成人在线视频| 免费av播放| 国产又爽又黄免费观看| 国产欧美成人在线| 狠狠欧美| 黄片在线免费播放| 欧美成人手机在线| 亚洲欧美在线观看视频| 米奇色色| 成人黄色大片| 欧美在线观看一区| 色五月婷婷丁香五月| 久草网址| 免费av观看| 亚洲色图1| 日韩免费小视频| 亚洲成人免费观看| 国产娇小13videos糟蹋| AV片在线观看| 日韩激情在线| 国产内射视频| 中文无码精品欧美日韩| 四川BBB搡BBB爽爽爽欧美| 日韩无码黄色视频| 青青欧美| 精品综合| 亚洲欧美日韩电影| 成人AV免费在线观看| 午夜精品秘一区二区三区| 人人妻人人爽| 99精品视频北条麻妃国产版| 日本少妇BBw| 99久久国产精| 色综合欧美| 强开小嫩苞一区二区电影| 免费在线看黄网站| 黄色操逼网站| 黄色av影院| 美国熟妇| 高清无码视频免费| 中国免费XXXX18| 黄片免费视频观看| 五月色综合| 国产77777| 成人免费视频性爱| 久草大香蕉在线视频| 高潮喷水无码| 欧美婬乱片A片AAA毛片地址| www四虎com| 国产成人精品无码免费| 大鸡吧在线| 999久久久久| 久久国产日韩| 亚洲欧美成人在线视频| 欧美三级片在线视频| 国产激情精品| 伊人色女操穴综合网| 国产免看一级a一片成人aⅴ| 操b视频在线播放| 在线观看黄A片免费网站| 超碰在线69| 99在线视频免费观看| 日韩中文字幕无码| 欧美成人精品网站| 中文字幕成人在线观看| 热99re69精品8在线播放| 波多野成人无码精品69| 黄色大片AV在线| 成人三级片视频| 99久久精品国产成人一区二区 | 久久99精品久久久水蜜桃| 国产精品久久久久永久免费看| 日韩精品在线免费视频| 色婷婷电影网| 五月天婷婷影院影院| 欧美老熟女18| 成人免费版欧美州| 99热加勒比| 亚洲无码黄色片| 五月天精品视频| 男人的天堂视频网站| 黄色毛片视频| 自拍偷拍免费| 日本中文字幕在线免费观看| 免费视频无码| 制服丝袜强奸乱伦| 懂色av粉嫩AV蜜臀AV| 熟女人妻人妻の视频| 91艹逼| 日韩一区二区免费视频| 精品福利在线| 精品视频久久久久久| 波多野结衣视频免费在线观看| 亚洲高清无码视频在线| 91精品亚洲| 日韩三级片av| 伊人大香蕉网站| 麻豆黄色片| 学生妹一级J人片内射视频| 成人性爱福利视频| 日韩无码A| 六月婷婷中文字幕| 人妻熟女字幕一区二区| 91无码视频在线观看| 亚洲无码av电影| 免费人成网站| 成人久久电影| 摸BBB槡BBBB搡BBB,,,,, | 欧美日韩美女| 欧美嗯啊| 俺来了俺去了| 激情乱伦网| 自拍偷拍视频网| 亚洲午夜久久久久久久久红桃| A无码| 丁香伊人| 黄色不卡| 91性视频| 中国1级毛片| 俄罗斯老熟妇与子伦| 思思热视频在线观看| 久久国产无码| 99久久精彩视频| 亚洲色婷婷五月天| 操逼大香蕉| 久久丁香五月天| 亚洲午夜无码久久久| 农村一级婬片A片AAA毛片古装| 天天日天天爽| 西西337| 久久五月视频| 亚洲偷| 先锋资源男人站| 囯产精品久久久久久久久免费无码 | 亚洲久久久| 亚洲天堂高清无码| 60分钟上大床又黄又爽| 97精品国产| 揄拍成人国产精品视频| 一二三四区视频| 久久精品视频在线观看| 色五月视频在线| 三级片亚洲| 久久国内视频| 刘玥精品A片在线观看| 中文字幕精品在线视频| 日本一区二区在线| 成人综合激情| 欧美日日干| 欧美肏逼视频| 免看一级a一片| 欧美一级视频在线观看| 熟妇无码| 日本久久播| 国精产品久拍自产在线网站| 黑人操逼| 爱搞搞搞搞| 无码人妻精品一区二区三千菊电影| 久久久久久97电影院电影院无码| 自拍偷拍激情视频| 人人人人操| 成人无码高清在线观看| 亚洲精选中文字幕| 欧美成人无码片免费看A片秀色 | 成人91视频| 日韩色情视频| 蜜乳AV一区二区三区| 蜜臀99久久精品久久久懂爱| 午夜操| 少妇厨房愉情理伦BD在线观| 无码在线电影| 午夜亚洲福利视频| 大地影视中文第三页最新在线观看| 日韩激情| 蜜乳av红桃嫩久久| 99久久99久久| 日本精品乱伦| 撸一撸在线观看| 婷婷啪啪| 99视频在线免费播放| 欧美精品第一页| 成人AV免费| va婷婷在线免费观看| 色婷婷导航| 大香蕉电影网站| 伊人狠狠蜜桃亚洲综合| 影音先锋三级| 国产精品免费一区二区三区四区视频 | 青青草激情视频| 亚洲中文字幕播放| 91精品人妻少妇无码影院| 中文字字幕在线中文乱码更新时间 | 国产精品成人3p一区二区三区| 天天操人人| 亚洲在线观看| 日本无码网站| 91免费视频网站| 2021天天夜日| 92无码| 无码AV天堂| 操日本美女| 一级片黑人| A片黄色电影网站| 亚洲视频中文字幕| 毛茸茸BBBBBB毛茸茸| 殴美老妇BBBBBBBBB| 色中色AV| 亚洲大片| 少妇性受XXXX黑人XYX性爽| 丁香五月影院| 亚洲av色图| 伊人无码在线| 亚洲福利一区二区| 精品欧美乱码久久久久久| 亚洲欧美日韩黑料吃瓜在线观看| 色老板在线观看视频| 色婷婷亚洲精品天天综合| 91香蕉视频免费| 九九视频免费在线观看| 久久视频99| 狼友视频在线播放| 四虎亚洲无码| 六月激情婷婷| 怡春院首页| 先锋影音AV在线| 亚洲免费观看A∨中文| 99热免费观看| 中文字幕一区三区人妻视频| 欧美丰满老熟妇XXXXX性| 白丝久久| 国产91探花秘入口| 九月丁香| 色婷婷免费视频| 成人精品二区| 欧美精品无码| 亚洲AV久久无码| 中文字幕乱码中文字乱码影响大吗| 国产一区视频18| 欧美视频第一页| 日韩在线大香蕉| 成人福利网| 高清免费在线中文Av| 自拍偷拍欧美| 内射网站在线观看| 亚洲无码免费在线| 中国操逼毛片| 欧美、日韩、中文、制服、人妻 | www.天天干| 中文字幕在线观看有码| 色婷婷亚洲| 在线观看成人18| 欧美国产日韩综合在线观看170 | 日韩久久人妻| 日韩欧美综合一区| 亚洲美女免费视频| 伊人网在线免费视频| 黄色视频一级| 日韩av小说| 蜜芽无码| 伊人成人免费视频| 插逼综合网| 国产精品美女毛片j酒店| 日皮视频在线观看| 中文在线字幕免费观| 91无码视频在线观看| 国产无码中文字幕| 97精品人人A片免费看| 三级黄视频| 国产成人自拍网| 欧美精产国品一二三| 日韩中出视频| 无码中文暮| 日皮视频在线看| 亚洲欧美婷婷五月色综合| 夜夜嗨AV一区二区三区| 69国产成人精品二区| 国产熟妇码视频| 在线三级片视频| 国产高清av| 国产色呦呦| 91AV免费看| 久久人爽| www国产在线| 蜜桃视频一区二区三区| 在线观看av网站| 人成免费网站| 国产激情| 日韩在线中文字幕| 免费中文字幕日韩欧美| 亚州高清无码视频| 免费无遮挡视频网站视频| 一区二区三区高清无码| 黄色视频日本免费| 脓肿是什么原因引起的,该怎么治疗 | 久久久噜噜噜久久中文字幕色伊伊| 夜夜骑天天| 翔田千里无码| 亚洲人妻无码一区| 亚洲日韩精品欧美一区二区yw| 黄色小视频免费看| 黄色三级av| 午夜亚洲AV永久无码精品蜜芽| 久久精品成人| 北京熟妇搡BBBB搡BBBB电影| 亚洲一级黄色电影| 韩国三级av| 亚洲精品乱码在线| 国产高清无码免费| 国产区一区| 中文字幕网站在线观看| 思思99热| 欧美三p| 中文字幕一区二区蜜桃| 日本一区二区视频| 欧美不卡在线观看| 亚洲综合伊人| 久久韩国| 18禁看网站| 国产黄色视频在线观看| AV在线免费观看网址| 亚洲国产成人视频| 国产精品久久久久久久久久| 影音先锋av中文字幕| 国产女人十八水真多| 无码高清在线播放| 新妺妺窝窝777777野外| 先锋影音男人资源站| 国产一级a毛一级a| 日韩性做爰免费A片AA片| 在线不卡中文字幕| 爱操AV| 伊人春色av| 99色热视频| 免费一级A片| 久久噜噜| 懂色av蜜臀av粉嫩av分| 久久91久久久久麻豆精品| 亚洲一级AV| 翔田千里在线观看| 成人国产欧美日韩在线视频 | 秋霞午夜久久| 欧美韩日高清精彩视频| 丝袜美腿亚洲综合| 色噜噜人妻av中文字幕| 一区二区三区四区不卡| 高清无码视频在线播放| 精品蜜桃秘一区二区三区在线播放 | 2024AV在线| 激情小视频在线| 一级黄色视频网站| 四虎成人免费视频| 热re99久久精品国产99热| 五月av| 黄片久久久| 成人无码精品亚洲| 日韩中文字幕成人| 日韩天天操| 风流少妇一区二区三区91| 中文字幕亚洲专区| 人人爱人人妻人人操| 日本精品码喷水在线看| 国产免费av片| 亚洲成人无码高清| 色哥网在线一区| 日本性爱一区| 大地影视中文第三页最新在线观看| 亚洲超级高清无码第一在线视频观看 | 国产免费精彩视频| 黄色AA片| 久久综合伊人777777| 国产一级黄色大片| 中文字幕一区二区蜜桃| 麻豆av无码| 高潮AV在线观看| 国产第七页| 精品久久免费| 亚洲AV成人无码精在线| 精品成人一区二区三区| 欧美v亚洲| 亚洲无吗在线播放| 五月丁香六月| 91成人小电影| 上床视频网站| 玩弄大荫蒂视频| 欧美综合亚洲图片综合区| 91小宝寻花一区二区三区三级| 中文字幕在线观看视频免费| 日韩高潮| 婷婷深爱五月丁香网| 亚洲天堂网在线观看| 啊啊啊啊啊网站| 国内自拍视频网| 一道本视频在线| 97人人艹| 大香蕉999| 亚洲成色A片77777在线小说| 久久青青操| 成人在线18禁| 五月丁香在线观看| 欧美亚洲激情| 天天躁日日躁狠狠| 五月丁香激情在线| 亚洲成年人网| 黄片网站免费观看| 91超碰在线免费观看| 久久久久9| 亚洲福利免费观看| 亚洲天堂AV2025| 成人国产精品秘在线看| 2025中文字幕| 高清无码波多野结衣| 欧美日韩一区视频| 亚洲AV无码黑人专区| 韩国三级中文字幕HD久久精品| 成人免费无遮挡无码黄漫视频 | 尤物av| 婷婷色综合| 亚洲日韩欧美在线观看| 精品亚洲成人| 国产aaaaaaaaaaaaa| 国精久久久久| 东京热高清无码| 91欧美视频| 久久综合伊人777777| 久色亚洲| www.黄色av| 西西www444无码免费视频| 看毛片网站| 中国一级A片| 亚洲精品久久久久久久久豆丁网| 性福利导航| 男人的天堂视频在线| 少妇搡BBBB搡BBB搡打电话| 亚洲中文视频| 成人无码中文字幕| 丁香婷婷一区二区三区| 中文电视剧字幕在线播放免费视频 | 国产3p绿帽骚妻视频| 日本一级理论片在线大全| 999精品视频| 翔田千里珍藏版无码| 日韩性爱视频在线观看| 色色一区二区| aaa三级片| 欧美成人A片AAA片在线播放| 亚洲色婷婷久久精品AV蜜桃| 日韩无码人妻久久一区二区三区 | 黄色视频视频| 久久九九国产| 欧美夜夜骑| 亚久久久| 嫩BBB槡BBBB槡BBBB免费视频 | 国产视频不卡| 三浦恵子一级婬片A片| 在线观看中文字幕一区| 日韩av电影免费在线观看| 国产操逼免费看| 久久加勒比| 18禁网站在线| 日韩人妻在线观看| 日韩高清无码一区二区三区| 狠狠躁日日躁夜夜躁A片小说免费| 成人伊人综合网| 亚洲天堂三级片| 免费看黄片视频| 人人爱人人插高清| 脓肿是什么原因引起的,该怎么治疗| 男女av| 99青草| 婷婷激情久久| 亚洲AV无码乱码精| av在线免费观看网站| 要操逼网| 欧美操逼在线| 嫩BBB槡BBBB槡BBBB百度| 成人你懂的| 91精品91久久久中77777| 蜜桃久久久亚洲精| 这里只有精品91| 99re在线视频| 日韩无码视频一区| 99久久视频| 日韩福利在线观看| 神马久久午夜| 一级黄色片在线观看| 免费观看黄色电影| 艳妇乳肉豪妇荡乳AV无码福利| 国产人妖TS重口系列网站观看| 国产熟女av| 国产香蕉视频在线播放| 黄91在线观看| 一区二区三区四区在线视频| 久久婷婷精品| 黄色电影毛片| 日产久久久| 美女视频一区二区三区| 中文字幕永久在线| 成人在线免费视频| 黄色片在线免费观看| 黄色成人网站在线免费观看| 国产白丝在线观看| 夜夜爽久久精品91| 高清无码视频在线免费观看| 在线免费看AV| 蜜桃传媒一区二区亚洲| 囯产精品久久久久久久久| 婷婷亚洲色| AV无码电影| 国产日韩欧美一区二区| 九九激情| 97人妻天天摸天天爽天天| 男女日皮的视频| 亚洲不卡中文字幕| 91av免费在线观看| a片视频网站| 豆花AV在线| 黑人巨粗进入疼哭A片| 围内精品久久久久久久久久‘变脸| 欧美3p视频| 特级西西444WWW高清| 亚洲观看黄色网| 色婷婷在线综合| 成人亚洲av| 久久AV网站| 国产av黄| 黄色片国产| a免费在线观看| 青青草原视频在线| 日韩无码123| 精品人妻一区二区三区在线视频不卡 | 操美女影院| 国产一级a毛一级a毛片视频黑人 | 久久4| 美女天天肏| 精品一二三| 17c.白丝喷水自慰| 午夜丁香| A级无码| 精品国产91乱码一区二区三区| 人人爱人人插| 国产欧美日韩在线| 青娱乐亚洲| 日韩在线免费视频| 国产精品久久AV电影| 久九视频| 蜜臀av一区二区三区| A片在线免费播放| 午夜精品成人| 久久婷婷精品| 黄色视频在线观看大全| 黄色爱爱视频| 日韩在线成人中文字幕亚洲 | 影音先锋AV在线资源| 日韩黄色在线| 黄色视频网站在线观看免费| 台湾无码在线| 九色PORNY自拍视频| 国产av一级| 爱操AV| 国产三级在线| 最新AV在线播放| 日韩aaa视频| www.seses| 国产剧情一区二区| 亚洲国产成人久久| 国产av在| 国产农村妇女精品一二区| 黑人巨大精品欧美| 思思热在线观看视频| 黄片久久久| 超碰在线人人操| 久久系列| 被黑人猛躁4O次高潮| 久久夜色精品噜噜亚洲AV| 豆花网无码视频观看| 精品日韩在线视频| 免费观看黄色在线视频| 97干在线| 在线99热| 国产视频一区二区在线观看| 日韩黄色视频网站| 天天操狠狠操| 91视频一区二区| 欧美成人毛片AAAAAA| 伊人在综合| 欧美成人精品A片免费一区99 | 最好看2019中文在线播放电影| 看A片在线| 色情小电影免费网站观看网址在线播 | 人人爽人人| 高清视频一区二区| 国产av福利| 欧美日韩免费在线播放电影在线播放电影在线播放电影免费 | 亚洲无码高清电影| 日韩精品中文无码| 嫩草91| 国产又大又黄| 成人网站av| 亚洲视频在线看| 好吊视频一区二区三区| 日本黄色视频官网| 香蕉成人网站在线观看| 日韩一区二区无码视频| 日本电影一区二区三区| 51国产黑料吃瓜在线入口| 国产在线无码视频| 超碰成人免费| 婷婷色网| 国产在线一二三| 91精品久久久久久综合五月天| 成人69AV| 五月婷婷国产| 秋霞中文字幕| 在线观看免费无码视频| 欧美在线观看视频| 五月婷婷免费视频| 天天艹天天| 国产成人精品777777| 日韩亚洲欧美在线| 五月丁香婷中文| 天堂精品| 一级黄色视频日逼片| 黄色香蕉网站| 欧美黄片一区二区| 又黄又爽的网站| 国产一级a一级a免费视频| 亚洲天堂成人| 翔田千里无码精品| 久久综合伊人7777777| 黄色电影av| 中国一级黄色毛片| 成人午夜激情| 超碰人人干| 在线观看2区| 日本中文字幕在线免费观看| 日韩亚洲在线观看| 午夜久久久久久久久久久久91| 久久精品三级| 91九色丨国产丨爆乳| 夜色福利在线看| 国产一级婬乱A片| 四个熟妇搡BBBB搡BBBB| 岛国A片| 九九99久久| 特特级毛片| 无码专区在线播放| ww免费视频| 欧美一级免费观看| av天天干| 天天干夜夜操熟女| 国产AV二区| 亚洲欧美第一页| 久久国产性爱| 天天干夜夜爽| AV资源网站在线| 色黄视频在线观看| 亚洲无码高清一区| 日韩人妻一区二区三区| xxx国产精品| 中文字幕在线观看网| 亚洲自慰| aaa在线| 一区在线视频| 欧美后门菊门交4| 国产精品久久久久久久9999| 91麻豆福利视频| 欧美成人性爱网| 亚洲无码在线观看免费| 日韩国产三级| 亚洲不卡中文字幕| 日本A片视频| 日本女优婷婷青青草原| 日韩av在线看| 99精品全国免费观看| 97超碰人妻| 精品无码一区二区| 人妻无码精品蜜桃| 黄色片网站免费观看| 91精品国产偷窥一区二区| 麻豆性爱| 影音先锋色资源站| 亚洲精选一区二区三区| 九九热免费视频| 国产三级在线观看| 97性爱视频| 国产高潮白浆喷| 精品天堂| 麻豆免费版在线观看| 国产高清无码免费在线观看| 911国产精品| 囯产精品宾馆在线精品酒店| 日产久久久| 国产1级a毛a毛1级a毛1级| 国产在线视频导航| 91在线亚洲| 亚洲中文无码在线观看| 国产黄色视频在线看| 欧美日韩国产一区二区| 99视频精品视频| A片黄色视频| 精品国产欧美一区二区三区成人 | 夜夜爽夜夜爽| 91人妻人人爽人人澡| 97香蕉久久国产超碰青草专区| 天天干天天日天天操| 国产成人久久777777| 亚洲成人AV无码| 免费看无码一级A片放24小时| 亚洲av无码精品| 久久熟女| 韩国精品一区二区| 精品一区二区三区毛片| 日本黄色A片免费看| 亚洲最新中文字幕| 日本欧美久久久久免费播放网| 成年人免费公开视频| 亚洲网站免费| AV电影在线观看| 日韩一级A| 青青操久久| 91日韩欧美| 91综合色| 黑人猛躁白人BBBBBBBBB| 大香蕉中文| 亚洲视频在线观看中文字幕| 久久综合色色| 国产无套免费网站69| 91人妻人人澡人人精品| 免费的a片| 五月婷婷丁香在线| 亚洲电影在线观看| 国产欧美综合在线观看| 婷婷狠狠干| 国产激情AV| 国产在线欧美| 日韩精品人妻中文字幕第4区| 国产欧美一区二区| 91精品国产91久久久久久吃药 | 91在线观看免费视频| 青娱乐成人在线| 国产免费无码一区二区| 大香蕉玖玖| 视频一区18| 国产激情在线视频| 91亚洲精华国产精华精华液| aaa午夜| 一区二区三区免费| 日韩在线成人中文字幕亚洲 | 色墦五月丁香| 操b视频在线免费观看| 2025AV天堂网| 天天色免费视频| 无码9999| 大香伊人久久| 99久久久国产精品免费蜜臀| 偷拍-91爱爱| 国产视频网| 性爱福利导航| 台湾一区二区| www.色999| 青娱乐日韩| 波多野结衣AV在线播放|