【云駐共創】目標檢測算法TSD解耦分類與回歸

      網友投稿 1326 2025-03-31

      華為云AI論文精讀會2021 第七期:目標檢測算法TSD解耦分類與回歸


      目錄:

      前言和導讀

      1.論文的研究背景及成果模型

      2.剖析及算法創新點講解

      3.代碼思路講解及實操

      總結

      前言和導讀:

      目標檢測

      目標檢測是計算機視覺和數字圖像處理的一個熱門方向,廣泛應用于機器人導航、智能視頻監控、工業檢測、航空航天等諸多領域,通過計算機視覺減少對人力資本的消耗,具有重要的現實意義。因此,目標檢測也就成為了近年來理論和應用的研究熱點,它是圖像處理和計算機視覺學科的重要分支,也是智能監控系統的核心部分,同時目標檢測也是泛身份識別領域的一個基礎性的算法,對后續的人臉識別、步態識別、人群計數、實例分割等任務起著至關重要的作用。

      在計算機視覺中,目標檢測是一項將對象與背景區分開,并預測圖像中存在的對象的位置和類別的任務。當前的深度學習方法試圖將其作為分類問題或回歸問題或綜合兩者的目標檢測任務來解決。

      例如,在RCNN算法中,從輸入圖像中識別出幾個感興趣的區域,然后將這些區域分類為對象或背景,最后使用回歸模型為所標識的對象生成邊界框。

      另一方面,YOLO框架(只看一次)以不同的方式處理目標檢測,它在單個實例中獲取整個圖像,并預測這些框的邊界框坐標和類概率。

      代表性AI經典論文算法:目標檢測-TSD

      目前很多研究表明目標檢測中的分類分支和定位分支存在較大的偏差,論文從sibling head改造入手,跳出常規的優化方向,提出TSD:Revisiting the Sibling Head in Object Detector方法解決混合任務帶來的內在沖突,該方法可以靈活插入大多檢測器中,幫助通用的檢測器大幅度提升性能3%-5%,在COCO上,基于ResNet-101可以達到49.4的map,在SENet154上可以達到51.2。

      此模型基于Revisiting the Sibling Head in Object Detector 中提出的模型結構實現,該算法會載入在COCO上的預訓練模型,在用戶數據集上做遷移學習。我們提供了訓練代碼和可用于訓練的模型,用于實際場景的微調訓練。訓練后生成的模型可直接在ModelArts平臺部署成在線服務。

      目標檢測的評估手段一般使用AP指標,詳細說明請參考原論文。

      一、 論文概述

      1.1基本信息

      論文標題:Revisiting the Sibling Head in Object Detector

      論文來源:CVPR 2020

      論文鏈接:https://arxiv.org/abs/2003.07540

      該論文名為?Revisiting the Sibling Head in Object Detector,其提出基于任務間空間自適應解耦(task-aware spatial disentangl該論文名為?Revisiting the Sibling Head in Object Detector,其提出基于任務間空間自適應解耦(task-aware spatial disentanglement,TSD)的檢測算法能夠有效地減弱通用物體檢測中分類任務和回歸任務之間的潛在沖突,可以靈活插入大多檢測器中,在 COCO 和 OpenImage 上給任意 backbone 提升 3~5% 的 mAP。

      該算法也作為核心解決方案(https://arxiv.org/abs/2003.07557)幫助港中文商湯聯合實驗室取得 OpenImage Object Detection Challenge 2019 冠軍。

      1.2 研究背景(目標檢測)

      目標檢測(Object Detection)的任務是找出圖像中所有感興趣的目標(物體),確定它們的類別和位置,是計算機視覺領域的核心問題之一。由于各類物體有不同的外觀、形狀和姿態,加上成像時光照、遮擋等因素的干擾,目標檢測一直是計算機視覺領域最具有挑戰性的問題。

      計算機視覺中關于圖像識別有四大類任務:

      (1)分類-Classification:解決“是什么?”的問題,即給定一張圖片或一段視頻判斷里面包含什么類別的目標。

      (2)定位-Location:解決“在哪里?”的問題,即定位出這個目標的的位置。

      (3)檢測-Detection:解決“在哪里?是什么?”的問題,即定位出這個目標的位置并且知道目標物是什么。

      (4)分割-Segmentation:分為實例的分割(Instance-level)和場景分割(Scene-level),解決“每一個像素屬于哪個目標物或場景”的問題。

      目標檢測任務可分為兩個關鍵的子任務:目標分類和目標定位。

      目標分類給出Proposal框的confidence score,目標定位回歸出準確的bounding box.目前的主流的detector算法主要有:

      ? Two-stage detector: RCNN,Faster RCNN, Mask RCNN, Cascade RCNN

      ? One-stage detector: SSD, YOLO-vx ...

      ? Anchor Free: FCOS,

      ? Transformer

      1.3 相關工作

      1.Faster RCNN

      Faster RCNN整體結構可以分為如下四個模塊:

      A. Conv layers:提取特征圖

      B. RPN(Region Proposal Networks):生成region

      C. Roi Pooling: 得到固定大小的proposal feature map

      D. 全連接層(Sibling head) :進行全連接操作,進行分類和回歸。

      上圖是具體的網絡結構。下面對這幾個模塊分別做介紹。

      A.Conv layers

      Faster RCNN首先使用一組基礎的conv+relu+pooling層提取inputimage的feature maps,該featuremaps會用于后續的RPN層和全連接層。

      B. RPN(Region Proposal Network)

      首先將Conv layers提取的特征圖傳遞到RPN中,RPN會在這些特征映射上使用一個滑動窗口,每個窗口會生成具有不同形狀和尺寸的k個anchor box。對每個anchor,RPN都會預測兩點:

      · anchor是目標物體的概率(不考慮類別)

      · anchor經過調整能更合適目標物體的邊界框回歸量

      C. Roi Pooling

      該層收集輸入的feature maps和proposals,綜合這些信息后提取proposal?feature maps,送入后續全連接層判定目標類別。

      Roi Pooling將每個proposal對應的featuremap區域水平分為pooled_w x pooled_h的網格;對網格的每一份都進行max pooling處理。這樣處理后,即使大小不同的proposal輸出結果都是固定大小。

      D. 全連接Sibling Head

      利用proposal?feature maps計算proposal的類別,同時再次bounding box regression獲得檢測框最終的精確位置。

      經過roi pooling層之后,對特征圖進行全連接,完成兩件事情:

      ·分類:通過全連接和softmax對region proposals進行具體類別的分類

      ·回歸:再次對region proposals進行bounding box regression,獲取更高精度的rectanglebox

      1.4 主要貢獻

      ·深入研究了基于roi的檢測器中糾纏任務背后的本質障礙,揭示了制約檢測性能上限的瓶頸。

      ·提出了一種簡單的任務感知空間解纏(TSD)算子來處理復雜的任務沖突。通過任務感知的建議估計和檢測頭,生成任務特定的特征表示,消除分類和定位之間的折衷。

      ·我們進一步提出了一個漸進約束(PC)來擴大TSD與經典同輩頭之間的性能差距。

      ·我們通過深入的消融實驗,在標準的COCO基準和大規模的Openlmage數據集上驗證了我們的方法的有效性。通過與現有方法的比較,我們提出的方法使用單一模式的ResNet-101主干實現了49.4的mAP,使用重SENet154實現了51.2的mAP。

      二、算法模型剖析

      2.1 研究動機(Motivation)

      在這篇論文中,我們仔細地重新討論了anchor-based的目標探測器中的 sibling head,以尋找任務不對齊的本質。我們探討了FPN特征金字塔中各層輸出特征圖的分類和定位的空間敏感性。第一列是用于分類的空間敏感熱圖,第二列是用于定位的熱圖。越暖和顏色越好。我們也在第三欄展示了他們的3D可視化效果。很明顯,一些突出區域的特征可能具有豐富的分類信息,而邊界周圍的特征可能擅長邊界盒回歸。這種重要的任務在空間維度上的不一致極大地限制了性能的提高,無論是改進主干還是增強檢測頭。換句話說,如果一個檢測器試圖從一個相同的空間點/錨推斷分類分數和回歸結果,那么它總是會得到一個不完美的折衷結果。

      這個重要的發現促使我們重新思考兄弟頭的結構。這種問題的最優解就是通過空間解耦的方法來解決。在此基礎上,我們提出了一種新的基于任務感知的空間解糾纏(TSD)算子來解決這一障礙。

      ·分類與回歸的矛盾

      目標檢測算法中,一般網絡頂層都有全連接頭,Sibling head 分別進行物體分類與檢測框定位回歸。

      然而分類與回歸兩個不同的任務幾乎共享相同的參數,但分類與回歸所傾向的feature是不同的,比如圖像中的某些顯著區域的feature更適合分類而邊界區域更適合檢測框回歸。

      ·Misaligned sensitivity in the spatial dimension between classification and localization.

      2.2 模型總覽:TSD

      如圖為使用TSD結合Faster R-CNN算法的整體示意圖,重點學習的三部分為(a)TSD,(b)Spatial disentanglement 和(c)PC (progressive constraint)。

      a. 將圖片輸入骨干網絡提取特征

      b. 通過RPN得到響應圖

      c. 通過Sibling head生成proposal

      d. 將生成的每個proposal輸入到Spatial distanglement模塊分別得到用于分類的proposal和用于回歸的proposal,即每個proposal會生成兩個proposal,一個用于分類,另一個用于回歸

      e. 將用于分類的propostal輸入分類分支得到分類得分;將用于回歸的proposal輸入回歸分支得到回歸偏移

      f. 通過nms得到最終結果

      2.3 TSD模型與Spatial disentanglement

      TSD的全稱為task-aware spatial disentanglement,即任務感知空間解纏。TSD本質上是將分類任務和定位任務從空間上分別解析,基于經典的sibling head中的原始proposal,為兩個任務分別生成兩個獨立的proposals,這樣允許兩個任務在不影響彼此的情況下自適應地找到空間中的最佳位置。

      將proposal的ROI特征輸入到上圖b中,然后使用一個3層的全連接網絡生成兩個proposal,一個用于分類,一個用于回歸。該模塊通過下述公式學習相應的特征偏移。

      ? 回歸Proposal P =P+ΔR

      ? ΔR由三層全連接網絡回歸得到,為每個proposalР預測一個偏移:

      ·分類Proposal PC = P+ΔC

      ΔC也由三層全連接網絡回歸得到,但與FR共享第一層權重。Fc為每個proposal P預測k*k個偏移,生成一個形變的不規則的proposal Pc.

      Deformable Rol pooling:

      可以用線性插值從irregular proposal Pc得到Feature

      Progressive constraint 漸進性約束

      PC就是使得TSD和傳統ROI Pooling主干(sibling head)結果保持一定margin,使得TSD部分的回歸分類結果優于sibling head分支的結果。

      2.4 常見的損失函數(loss function)

      損失函數用來評價模型的預測值和真實值不一樣的程度,損失函數越好,通常模型的性能越好。不同的模型用的損失函數一般也不一樣。

      損失函數分為經驗風險損失函數和結構風險損失函數。經驗風險損失函數指預測結果和實際結果的差別,結構風險損失函數是指經驗風險損失函數加上正則項。

      ? Progressive constraint (PC)漸進約束:

      通過progressive constraint (PC)來增加TSD和傳統的head之間的performance margin。

      Predefined Margin Loss,比原本的Sibling Head預測的confidence和IOu高預定義的margin距離。

      為了進一步提升任務間自適應空間解耦算法的訓練,我們進一步提出漸進學術 (PC),來使得 TSD 的檢測器頭部對于分類任務和定位任務的表現要優于原始的結構。

      對于分類任務,有:

      ? For Classification Branch:

      ? For Regression Branch:

      其中 表示對于第 y 類的預測置信度, 是預定于的 margin。對于定位任務有:

      ? Overall Loss:

      是原始檢測器頭部得到的檢測框, 是 TSD 算法得到的檢測框。如果當前的 proposal 是一個負樣本,那么該 loss 會被 ignore。

      綜上,在整個訓練過程中,整體檢測器的優化為:

      在推理階段,原始的檢測器頭部不再使用。

      2.5 實驗結果

      1. COCO 2017test-dev result:

      首先將 TSD 與在不同的 level 進行任務間解耦的結構進行比較,如圖所示:

      可以看到無論是從參數量上還是從性能上,TSD 都有著明顯的優勢。

      2.使用不同的Backbone:

      3.PC的有效性

      建議使用PC來提高TSD的性能。表中報告了詳細的燒蝕情況。我們發現PC顯著提高了ap.75 1.5,而ap.5幾乎沒有受到影響。這說明PC的目標是提倡對準確的盒子進行更機密的分類和精確的回歸。即使在嚴格的測試標準下(IoU從0.5:0.95),也可以獲得1.3的AP增益。

      三、代碼復現

      3.1 復現思路

      原則是先實現,再調優以達到論文要求。

      秉承“站在巨人肩膀上”的思想,我們首先在GitHub上查找開源代碼,在開源代碼基礎上進行調優。

      商湯開源的TSD檢測代碼,是基于mmdetection目標檢測庫的。由于開源倉庫缺少我們要訓練的模型設置細節,我們在開源代碼的基礎上,參考原論文實現細節,使用八卡復現了Table 8倒數第二行的模型精度(AP-49.4 in COCO)。

      https://github.com/Sense-X/TSD 掃碼查看參考代碼倉庫

      3.2 ModelArt環境介紹

      ModelArts是面向AI開發者的一站式開發平臺,通過AI開發全流程管理助您智能、高效地創建AI模型和一鍵部署到云、邊、端。

      ModelArts不僅支持自動學習功能,還預置了多種已訓練好的模型,同時集成了Jupyter Notebook,提供在線的代碼開發環境。

      根據經驗選擇您的使用方式

      ? 如果您是業務開發者,沒有AI開發經驗,您可以使用ModelArts的自動學習功能,進行零基礎構建AI模型,詳細介紹請參見業務開發者:使用自動學習構建模型 。

      ? 如果您是AI初學者,有一定AI基礎,您可以使用自己的業務數據對ModelArts預置算法進行重訓練,從而得到新模型,詳細介紹請參見AI初學者:使用訂閱算法構建模型 。

      ? 如果您是AI工程師,熟悉代碼編寫和調測,您可以使用ModelArts提供的在線代碼開發環境,編寫訓練代碼進行AI模型的開發,詳細介紹請參見使用自定義算法在ModelArts上構建模型 和使用線上環境Notebook構建模型 。如果您更習慣使用本地PyCharm工具開發模型,建議可參考使用PyCharm ToolKit在本地進行云上訓練 ,安裝ModelArts ToolKit工具,在本地完成代碼開發后,將代碼提交至ModelArts公有云端進行訓練和推理。

      3.3 MMDetection庫介紹

      香港中文大學-商湯科技聯合實驗室開源了基于 PyTorch 的檢測庫——mmdetection。商湯科技和港中大組成的團隊在 2018年的COCO 比賽的物體檢測(Detection)項目中奪得冠軍,而 mmdetection 正是基于 COCO 比賽時的 codebase 重構。

      這個開源庫提供了已公開發表的多種視覺檢測核心模塊。通過這些模塊的組合,可以迅速搭建出各種著名的檢測框架,比如 Faster RCNN,Mask RCNN,R-FCN,RetinaNet ,Cascade R-CNN及ssd 等,以及各種新型框架,從而大大加快檢測技術研究的效率。遺憾的是現在還沒有出yolo網絡。

      mmdetection是港中文mmlab openproject的一部分。包含很多開源的目標檢測算法實現,例如Faster RCNN,Mask RCNN, RetinaNet

      它的主要特點是:·模塊化設計·高效,速度快·支持的檢測算法效果好

      3.4 復現步驟

      1.Details for Reproduction:

      ? Backbone: ResNet-101+Deformable Convolution

      ? Basic Detector: Cascade R-CNN

      ? Train:Multi-scale train, x3 epochs,lr=0.04, warmup from 0.00125,SGD(momentum=0.9,1e-4 weight decay), batchsize=32 with 16 V100.

      ? Test: Multi-scale test,Soft-NMS

      2. 使用MMDetection

      ·由于mmdetection是模塊化設計,我們只需要編輯要訓練模型的config即可。

      ·數據集準備:從coco網站https://cocodataset.org/#download下載coco2017。

      ·訓練:我們使用8卡V10o訓練,相應的batchsize設為8,learning rate設為0.02。

      mmdetection提供了tools/train.py訓練接口,此處我們使用分布式訓練腳本:

      ./tools/dist_train.sh [optional arg]

      測試: mmdetection提供了tools/test.py,以及分布式test腳本:./tools/dist_test.sh

      3.5 代碼講解

      1.Mmdetection overview

      backbone:通常是FCN網絡,用于提取功能圖,例如ResNet。

      neck:骨干和頭部之間的部分,例如FPN,ASPP。

      head:用于特定任務的部分,例如bbox預測和mask預測。

      roi extractor:用于從 feature maps中提取feature的部分,例如RoI Align。

      官方使用上述組件編寫了一些通用的檢測管道,例如“SingleStageDetector”和“ TwoStageDetector”。

      2. Mmdetection如何從config構建模塊

      ·模型: mmdet中每個模塊按backbone, neck, roi_extractor, shared_head, head, loss和detector劃分,使用裝飾器register。

      例如:

      【云駐共創】目標檢測算法TSD解耦分類與回歸

      @ROI_EXTRACTORS.register_module

      class singleRoIExtractor(nn. Module):

      因此在構建model的時候,根據config中各個模塊的type和參數,遞歸地調用各個模塊,構建模型即可。

      obj_cls = registry.get(obj_type)

      在 config/_base_中存在4中基本的組件類型,分別為:dataset(數據集), model(模型), schedule(學習率調整的粗略),default_runtime(默認運行時設置)。使用Faster R-CNN,Mask R-CNN,Cascade R-CNN,RPN,SSD中的一個可以輕松構造許多方法。來自__base__中的組件稱為promitive.

      對于同一文件夾下的所有配置,建議僅具有一個 *原始(promitive)配置。所有其他配置應從原始(promitive)*配置繼承。這樣,繼承級別的最大值為3。

      便于理解,構建模型推薦從現有的方法中繼承。

      3. Mmdetection如何train/test

      ·Mmdet使用mmcv庫的runner管理訓練流程:See apis/train.py

      ·關鍵train代碼:

      ·detector的成員函數forward_train為訓練時前傳損失計算函數

      ·關鍵inference代碼:

      · Detector的成員函數simple_test, aug_test( test with augmentation)

      4. Two-stage detector

      TwoStage: BackBone + Neck + DenseHead + RoIHead(proposals需送入RoIHead進行roiAlign,然后進行檢測)

      Two-stage 是先由算法生成一系列作為樣本的候選框,再通過卷積神經網絡進行樣本分類。

      對于Two-stage的目標檢測網絡,主要通過一個卷積神經網絡來完成目標檢測過程,其提取的是CNN卷積特征,在訓練網絡時,其主要訓練兩個部分,第一步是訓練RPN網絡,第二步是訓練目標區域檢測的網絡。網絡的準確度高、速度相對One-stage慢。

      第一,one-stage算法從網絡結構上看只是一個多分類的rpn網絡,相當于faster rcnn的第一階段。其預測結果是從feature map中anchor對應的特征中預測得到的,而two-stage會對上述結果再進行roi pooling之后進一步精細化,因此更為精準。比如,一個anchor有可能只覆蓋了一個目標的50%,但卻作為完全的正樣本,因此其預測肯定是有誤差的。

      第二,one-stage算法對小目標檢測效果較差,如果所有的anchor都沒有覆蓋到這個目標,那么這個目標就會漏檢。如果一個比較大的anchor覆蓋了這個目標,那么較大的感受野會弱化目標的真實特征,得分也不會高。two-stage算法中的roi pooling會對目標做resize, 小目標的特征被放大,其特征輪廓也更為清晰,因此檢測也更為準確。

      5.TSDSharedFCBBoxHead

      在使用mmdetection對模型進行調優的過程中總會遇到很多參數的問題,不知道參數在代碼中是什么作用,會對訓練產生怎樣的影響。

      在實驗中發現,分類任務更關注語義信息豐富的地方,而回歸任務比較關注物體的邊界處。在這樣的一種潛在的性質下,傳統的 faster RCNN 對于分類任務和回歸任務共享同一個 proposal 和特征提取器(sibling head)就會出現一些內在的矛盾影響檢測器的訓練。

      SharedFCBBoxHead這個類繼承了ConvFCBBoxHead,ConvFCBBoxHead又繼承了BBoxHead,BBoxHead繼承了nn.Module。其中BBoxHead實現了一個最基礎的roi head,只有兩個fc層,分別做分類和回歸:

      ConvFCBBoxHead在上面的基礎上多做了一件事,就是可能在roi出來的特征后不是直接做分類和回歸,一般還會再接幾層卷積或者全連接,從而增加網絡的非線性和計算量,讓性能更好。配置文件里面我們看到有個鍵值對是num_fcs=2,就是指定了有兩個共享的fc,沒有指定conv,那么就沒有額外的共享卷積了。也沒有指定分類分支和回歸分支需要額外的層。

      總結:

      TSD算子,通過學習任務感知的空間解耦來減輕 sibling head 中存在的固有沖突。特別是,TSD從共享 proposal 中衍生出兩個獨立的 proposals,并分別學習用于分類和定位的特征。此外,我們提出了一個遞進約束來進一步提升TSD的效果,從而提供額外的性能收益。沒有附加功能,這個簡單的設計可以很容易地將COCO和大型OpenImage上的大多數主骨架和模型提升3% ~ 5%,這是2019年OpenImage挑戰的第一個解決方案中的核心模型。

      該論文從一個新的角度解決分類和回歸分支的內在沖突問題,方法的創新性挺好的,通過對proposal特征的重采樣或特征變換,解耦分類和回歸任務,使得新的proposal更關注于與task-specific的特征。分類分支和回歸分支的解耦依然是目標檢測任務中非常重要的問題,值得我們更多的思考學習。

      上述算法之所以可以實現,首先需要感謝華為云ModelArts強大的硬件支持,ModelArts是面向開發者的一站式AI開發平臺,為機器學習與深度學習提供海量數據預處理及半自動化標注、大規模分布式Training、自動化模型生成,及端-邊-云模型按需部署能力,幫助用戶快速創建和部署模型,管理全周期AI工作流。最后,還要感謝華為云AI論文精讀會,提供了這樣的機會可以讓計算機視覺、自然語言處理等領域的學者,特別是學生有機會和條件去學習優秀的論文,幫助自己成長,提高自己的學科專業知識和研究能力。

      查看具體算法模型:

      https://marketplace.huaweicloud.com/markets/aihub/modelhub/detail/?id=03c7877b-d95a-404f-a4d7-51f056e2ddf 4

      華為云AI論文精讀會2021·論文算法實戰賽報名地址:https://competition.huaweicloud.com/information/1000041393/introduction

      注:本文整理自【內容共創系列】之目標檢測算法TSD解耦分類與回歸

      查看活動詳情:https://bbs.huaweicloud.com/blogs/298594

      AI 圖像處理

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel表格怎么截圖
      下一篇:用excel畫平面圖的方法教程
      相關文章
      亚洲丰满熟女一区二区v| 亚洲精品中文字幕麻豆| 亚洲毛片无码专区亚洲乱| 亚洲AV无码成人网站久久精品大| 亚洲国产成人久久综合碰| 亚洲av日韩精品久久久久久a| 亚洲人成网亚洲欧洲无码| 亚洲人成在线精品| 91在线亚洲精品专区| 亚洲资源在线视频| 亚洲国产高清在线精品一区| 91在线精品亚洲一区二区| 亚洲欧洲精品视频在线观看| 91大神亚洲影视在线| 亚洲黄色免费电影| 亚洲无限乱码一二三四区| 亚洲伊人久久精品| 亚洲中文字幕AV在天堂| 亚洲卡一卡二卡乱码新区| 亚洲日韩精品A∨片无码加勒比| 亚洲中文无码卡通动漫野外| 亚洲精品又粗又大又爽A片| 成人婷婷网色偷偷亚洲男人的天堂 | 中文字幕亚洲第一| 亚洲色无码一区二区三区| 亚洲情XO亚洲色XO无码| 亚洲欧洲成人精品香蕉网| 久久亚洲精品中文字幕无码| 亚洲一二成人精品区| 亚洲系列国产精品制服丝袜第| 亚洲电影在线免费观看| 亚洲免费观看在线视频| 久久乐国产综合亚洲精品| 亚洲成av人无码亚洲成av人| 亚洲电影日韩精品| 亚洲精品无码av人在线观看| 亚洲AV人无码激艳猛片| 亚洲码在线中文在线观看| 亚洲真人无码永久在线观看| 日韩色视频一区二区三区亚洲| 亚洲精品综合久久|