日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

mmdetection源码笔记(二):创建网络模型之registry.py和builder.py解读(上)

發布時間:2024/8/1 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mmdetection源码笔记(二):创建网络模型之registry.py和builder.py解读(上) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言:

在上篇文章中,講了train.py訓練文件,主要是讀取命令行函數和主函數main。main主要先做了一些config,work_dir以及log等操作(這些操作都是從命令行獲得的,或者從命令行帶有的文件里得到的參數等。)。最主要的三個步驟就是調用build_detector()來創建模型,然后同樣調用build_dataset()對數據集創建模型,然后在訓練檢測器train_detector()。
注:build_dataset()和build_detector()不在同一個builder.py中實現,所以以下的builder.py實現的是build_detector(),是在mmdet/model/下的py文件。
具體詳情看

  • mmdetection源碼筆記(一):train.py解讀

本篇文章主要就是講一下,搭建模型的思路,以及registry.py和builder.py中各個函數塊的作用。

注:builder.py是在mmdet/model文件夾下,是用來創建BACKBONES、NECKS、ROI_EXTRACTORS、SHARED_HEADS、HEADS、LOSSES、DETECTORS的模型的。而關于build_dataset()(在mmdet/datasets/builder.py中),在后面講到數據集的時候再來講它。

在mmdet/utils文件夾下的registry.py為主要的實現過程,后面詳細講解。
先來看在mmdet/models文件夾下的registry.py,較簡單,代碼如下:

# -*- coding: utf-8 -*- from mmdet.utils import RegistryBACKBONES = Registry('backbone') NECKS = Registry('neck') ROI_EXTRACTORS = Registry('roi_extractor') SHARED_HEADS = Registry('shared_head') HEADS = Registry('head') LOSSES = Registry('loss') DETECTORS = Registry('detector') #類的實例化,Registry是一個類,傳入的是一個字符串。該字符串為Registry類的name屬性值

舉個例子:DETECTORS為注冊表Registry的實例化對象,DETECTORS .name = 'detector',Registry類的定義在mmdet/utils/文件中。

所以,根據上面代碼,我們就應該知道了,不止一個名為DETECTORS的注冊表Registry,后面還會有名為NECKS、ROI_EXTRACTORS 、SHARED_HEADS 、HEADS 、LOSSES 的注冊表,這些注冊表下的_module_dict屬性,則是用來存對應的相同類對象的,舉個例子:比如DETECTORS的_module_dict下就有可能有:Faster R-CNN、Cascade R-CNN、FPN、HTC等常見的檢測器。到這或許你就明白了注冊表的作用咯

而在mmdet/utils/Registry.py中,有一個類Registry的定義和一個方法:build_from_cfg()的實現。
build_from_cfg()方法的作用是從 congfig/py配置文件中獲取字典數據,創建module(其實也就是一個class類),然后將這個module添加到之前創建的注冊表Registry的屬性_module_dict中(這是一個字典,key為類名,value為具體的類),返回值是一個實例化后的類對象。

所以,可以這樣理解,從config/py配置文件中,將字典提取出來,然后為其映射成一個類,放進Registry對象的_module_dict屬性中。(具體看下面的代碼)

Registry.py文件

以下代碼分三部分

Part one:

inspect模塊是針對模塊,類,方法,功能等對象提供些有用的方法。例如可以幫助我們檢查類的內容,檢查方法的代碼,提取和格式化方法的參數等。

# -*- coding: utf-8 -*- import inspect import mmcv
Part two:

通過前面第一段的代碼段,我們知道DETECTORS = Registry('detector')
detector是干什么的 ???
其實,DETECTORS = Registry('detector') 只是注冊了一個對象名為DETECTORS ,屬性name為detector的對象。然后用屬性_module_dict 來保存config配置文件中的對應的字典數據所對應的class類(看第三部分代碼)。請看如下類Registry的定義代碼:

class Registry(object):def __init__(self, name): #此處的self,是個對象(Object),是當前類的實例,name即為傳進來的'detector'值self._name = nameself._module_dict = dict() #定義的屬性,是一個字典def __repr__(self):#返回一個可以用來表示對象的可打印字符串,可以理解為java中的toString()。format_str = self.__class__.__name__ + '(name={}, items={})'.format(self._name, list(self._module_dict.keys()))return format_str@property #把方法變成屬性,通過self.name 就能獲得name的值。def name(self):return self._name #因為沒有定義它的setter方法,所以是個只讀屬性,不能通過 self.name = newname進行修改。@propertydef module_dict(self): #同上,通過self.module_dict可以獲取屬性_module_dict,也是只讀的return self._module_dictdef get(self, key):#普通方法,獲取字典中指定key的value,_module_dict是一個字典,然后就可以通過self.get(key),獲取value值return self._module_dict.get(key, None)def _register_module(self, module_class): #關鍵的一個方法,作用就是Register a module. #在model文件夾下的py文件中,里面的class定義上面都會出現 @DETECTORS.register_module,意思就是將類當做形參, #將類送入了方法register_module()中執行。@的具體用法看后面解釋。"""Register a module.Args:module (:obj:`nn.Module`): Module to be registered."""if not inspect.isclass(module_class): #判斷是否為類,是類的話,就為True,跳過判斷raise TypeError('module must be a class, but got {}'.format(type(module_class)))module_name = module_class.__name__ #獲取類名if module_name in self._module_dict: #看該類是否已經登記在屬性_module_dict中raise KeyError('{} is already registered in {}'.format(module_name, self.name))self._module_dict[module_name] = module_class #在module中dict新增key和value。key為類名,value為類對象def register_module(self, cls): #對上面的方法,修改了名字,添加了返回值,即返回類本身self._register_module(cls)return cls
note:

@的含義:
Python當解釋器讀到@的這樣的修飾符之后,會先解析@后的內容,直接就把@下一行的函數或者類作為@后邊的函數的參數,然后將返回值賦值給下一行修飾的函數對象。
在網上看到一個這樣的例子:

def a(x):if x==2:return 4return 6 def b(x):if x==1:return 2return 3 @a @b def c():return 1

python會按照自下而上的順序把各自的函數結果作為下一個函數(上面的函數)的形參輸入,也就是a(b(c()))。


Part three:

以下我們通過配置文件cascade_rcnn_r50_fpn_1x.py進行講解 build 模型的過程。
在train中,最先執行Registry的是DETECTORS,傳入的參數是配置文件中的model字典。

#在 train.py中model = build_detector(cfg.model, train_cfg=cfg.train_cfg, test_cfg=cfg.test_cfg) #在builder.py中 def build_detector(cfg, train_cfg=None, test_cfg=None):return build(cfg, DETECTORS, dict(train_cfg=train_cfg, test_cfg=test_cfg))

所以,后面出現的參數cfg,指的就是配置文件中的model字典。下面是model字典的部分截圖。

我們繼續往下看
先看build_from_cfg()方法的參數:
Args:

  • cfg (dict): Config dict. It should at least contain the key “type”.
    這個cfg就是py配置文件中的字典。在py配置文件中,基本上dict都會有一個key為"type",當然也有不是的,不是的,這一步就不會執行,也就不會為他創建module。也就是這邊創建成module的dict,都必須有key為"type"才可以創建(這里,我們主要講的是注冊表DETECTORS,所以此時cfg對應的是配置文件中的model字典,看上面截圖)。
    舉個例子:比如type='CascadeRCNN',后面我們會知道,這個value為"CascadeRCNN"的,其實就是models文件夾中某py文件中的類名,他們通過@DETECTORS.register_module,將類名當做形參,傳入register_module。并保存下來。

  • registry (:obj:Registry): The registry to search the type from.

  • default_args (dict, optional): Default initialization arguments.

def build_from_cfg(cfg, registry, default_args=None):"""Build a module from config dict.Args:cfg (dict): Config dict. It should at least contain the key "type".registry (:obj:`Registry`): The registry to search the type from.default_args (dict, optional): Default initialization arguments.Returns:obj: The constructed object."""assert isinstance(cfg, dict) and 'type' in cfgassert isinstance(default_args, dict) or default_args is None #兩個是斷言,相當于判斷,否的話拋出異常。args = cfg.copy() #args相當于temp中間變量,是個字典。obj_type = args.pop('type') #字典的pop作用:移除序列中key為‘type’的元素,并且返回該元素的值if mmcv.is_str(obj_type): obj_type = registry.get(obj_type) #獲取obj_type的value。#如果obj_type已經注冊到注冊表registry中,即在屬性_module_dict中,則obj_type 不為Noneif obj_type is None:raise KeyError('{} is not in the {} registry'.format(obj_type, registry.name))elif not inspect.isclass(obj_type): raise TypeError('type must be a str or valid type, but got {}'.format(type(obj_type)))if default_args is not None:for name, value in default_args.items():#items()返回字典的鍵值對用于遍歷args.setdefault(name, value)#將default_args的鍵值對加入到args中,將模型和訓練配置進行整合,然后送入類中返回return obj_type(**args)

obj_type(**args),* *args是將字典unpack得到各個元素,分別與形參匹配送入函數中;看上面model的截圖,所以這邊,其實就是將除了’type’的所有字段,當做形參,送入了名為CascadeRCNN()的類中(type = ’CascadeRCNN‘)。所以字典里的key就是類中的屬性?繼續看下面。

根據Cascade R-CNN的例子,我們在models/detectors找cascade_rcnn的py文件
參考里面的參數時,直接打開對應的cascade_rcnn配置文件,在init中,里面的參數則
對應了配置文件中的字典名。下面兩個截圖分別是配置文件cascade_rcnn.py和model/detectors/cascade_rcnn.py中的類定義。


注意的是,在py配置文件中,好多py文件中都有type = ‘CascadeRCNN’,所以有些參數和屬性對不上很正常(畢竟已經設置為None了),因為這個參數可能是其他的cascade R-CNN里面的字典。
所以,我們在訓練時,測試時,就要給出配置文件,配置文件可以不同,但相同type的
detector等文件是相同的,畢竟已經將數據和實現完全的分離了。

注意:無論訓練/檢測,都會build DETECTORS;

builder.py文件

builder文件較為簡單,因為train.py中,只出現了build_detector(),所以我們先記住里面的兩個方法:build_detector和build()。

  • build_detector:是創建一個detector,方法里調用了build()方法(所有的build_xx都是直接調用build方法,所以看懂這一個也就看懂所有了)。
  • build():則是調用的Registry.py文件中的build_from_cfg()方法,這個方法我們已經在上面講過了。

import:

# -*- coding: utf-8 -*- from torch import nn from mmdet.utils import build_from_cfg #此處不會在執行registry而是直接進行sys.modules查詢得到 from .registry import (BACKBONES, NECKS, ROI_EXTRACTORS, SHARED_HEADS, HEADS,LOSSES, DETECTORS) #上面的registry是在models文件夾下,registry類的具體實現是在mmdet/utils文件夾下

只需要看一下build()的兩個參數:cfg, registry
build_detector()在train.py中的調用,我們就可以知道,cfg是py配置文件中的字典, 以registry是DETECTORS為例,cfg就是model字典 (后面注冊表為BACKBONES、NECKS等時,就是配置文件中的其他的字典了,不是model) 。

build()方法中,主干是一個判斷結構,其實就是判斷傳進來的cfg是字典列表還是單獨的字典,來分情況處理。(以注冊表DETECTORS為例,是一個單獨的字典)

  • 字典列表的話:挨個調用build_from_cfg(),將其加到注冊表******的_module_dict中,然后再返回return nn.Sequential(*modules),這個地方的作用,有待博主繼續研究一下下???
  • 字典的話:直接調用build_from_cfg(),將其添加到注冊表DETECTORS中(以DETECTORS為例)。
def build(cfg, registry, default_args=None):if isinstance(cfg, list):modules = [build_from_cfg(cfg_, registry, default_args) for cfg_ in cfg#build_from_cfg()返回值是一個帶形參的類,返回時也就完成了實例化的過程。]#所以modules就是一個class類的列表return nn.Sequential(*modules)#nn.Sequential 一個有序的容器,神經網絡模塊將按照在傳入構造器的順序依次被添加到計算圖中執行,同時以神經網絡模塊為元素的有序字典也可以作為傳入參數else:return build_from_cfg(cfg, registry, default_args) #Config dictdef build_detector(cfg, train_cfg=None, test_cfg=None):return build(cfg, DETECTORS, dict(train_cfg=train_cfg, test_cfg=test_cfg))#DETECTORS = Registry('detector'),創建一個名為DETECTORS的注冊表Registry。def build_backbone(cfg):return build(cfg, BACKBONES) def build_neck(cfg):return build(cfg, NECKS) def build_roi_extractor(cfg):return build(cfg, ROI_EXTRACTORS) def build_shared_head(cfg):return build(cfg, SHARED_HEADS) def build_head(cfg):return build(cfg, HEADS) def build_loss(cfg):return build(cfg, LOSSES)

后面的幾個build_XXXXX()的方法也就跟build_detector()相同咯。

還是以注冊表DETECTORS為例,配置文件為cascade_rcnn_r50_fpn_1x.py來講解:在model文件夾下的cascade_rcnn.py文件中,有類Cascade_RCNN()的定義,在配置文件中,對應的key被傳入類中當做屬性,這些屬性被初始化的時候,調用對應的build_XXXXX(),由此創建它們對應的注冊表。
再以NECK為例,調用build_neck(cfg);然后執行build(cfg, NECKS),這一步,形參用到NECKS,所以在Registry中,又多了一個名為NECKS的注冊表了。然后將配置文件中,字典名為neck的,然后生成一個類(類名是neck字典中的type的值,該類在model/necks文件夾下),同時將該類添加到了注冊表NECKS的_module_dict中。

#在model/detectors/cascade_rcnn.py中 if neck is not None:self.neck = builder.build_neck(neck) #再builder.py中 def build_neck(cfg):return build(cfg, NECKS) #在configs/cascade_rcnn_r50_fpn_1x.py中 neck=dict(type='FPN',in_channels=[256, 512, 1024, 2048],out_channels=256,num_outs=5),

到這,NECK的注冊和數據讀入,相信大家已經很清楚了,其他的注冊表也是類似的。

總結:

搭建模型思路:

  • 首先,創建一個名為DETECTORS的注冊表Registry。這個注冊表有屬性name='detector',和屬性_module_dict。_module_dict 是一個字典,專門用來存各個對象名和對應的對象。
  • 其次,讀取py配置文件,py配置文件是個字典,(字典里還有字典,這里面的字典,也是后面來創建模型的,道理是一樣的)。根據key為’type’的字典,創建module,對于的value為其module名,然后再model文件夾下中,已經存在了這些module的類。將字典中的其他數據,作為形參,實例化這些類。并保存這些module到屬性_module_dict中。
  • 到這,配置文件的數據,里面的字典(含有type的字典)對應著一個類,type為類名,其他字段則為其屬性(其他字段也可能是個字典,后面也有可能要再為它們搭建模型哦)。由此完成模型的搭建。

這是搭建模型的一個思路,雖然講得篇幅很大,有點亂亂的感覺,但是看懂后,就會發現很簡單。

mmdetection搭建模型用途:
mmdetection將配置文件中,字典名為:backbone、neck、roi_extractor、shared_head、head、loss、detector的字典,全部實例化成注冊表(Registry),然后這些字典里的type,都被實例化成對應的類(module),并添加到注冊表的屬性_module_dict中,其他的字段,則為這個類的屬性,由此完成模型的建立,實際上,就是將配置文件的字典數據保存到類(module)中,以便后面讀取數據,加載數據。


接下來,請看博主的下面的文章:

  • mmdetection源碼筆記(一):train.py解讀
  • mmdetection源碼筆記(二):創建網絡模型之cascade_rcnn.py的解讀(中)
  • mmdetection源碼筆記(二):cascade_rcnn.py搭建模型過程中各個module的forward()的代碼解讀(下)(待完成)
  • mmdetection源碼筆記(三):創建數據集模型之datasets/coco.py的解讀(上)
  • mmdetection源碼筆記(三):創建數據集模型之datasets/custom.py的解讀(下)
  • mmdetection源碼筆記(四):訓練模型之train_detector()的解讀
  • mmdetection源碼筆記(五):測試之test()部分的解讀

注:因為有好幾個py文件,博主也是按照自己的理解,盡量講得通俗易懂,如果有不理解的地方,底下評論。如果有錯誤的地方,還請指出學習,感激不盡。


更新2021.10.13

有大半年沒有更新博客了,這段時間一直準備春招,實習,秋招,到今天基本上可以結束坐等開獎了;
目前手里有近10個CV算法工程師意向書:字節,商湯,百度,順豐,華為,小紅書,拼多多,小馬智行,海康威視,騰訊等
接下來會花很多時間在小紅書上整理這一過程所有的經驗以及技巧,包括:豐富簡歷內容,如何打比賽(大佬止步),如何刷題,刷什么題,刷到什么程度,面試技巧,面經整理,hr面技巧,如何反問面試官,如何argue薪資等等等,大家有需要可以關注一波哈,內容保證豐富!助力大家秋招收割offer到手軟!
小紅書號:371845174(Activewaste,博客同名)

后面也會在小紅書分享好用工具,插件,裝逼神器等,手把手教學,大家關注起來哈!
另外我比較少上csdn,大家給我私信要聯系方式或者評論問問題有時沒看到(一個月沒上,200+的通知),大家直接去小紅書私信提問,或者催我撒!

總結

以上是生活随笔為你收集整理的mmdetection源码笔记(二):创建网络模型之registry.py和builder.py解读(上)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

波多野结衣小视频 | 成人午夜影院在线观看 | 久久精品激情 | 丁香激情五月 | 国产在线观看免费观看 | av综合av| 中文国产在线观看 | 在线视频a | 色香网| 久久精品99视频 | 中文字幕在线国产精品 | 在线免费视频 你懂得 | 中文字幕在线观看免费高清电影 | 日韩视频一区二区在线观看 | 免费国产一区二区视频 | 欧美成a人片在线观看久 | 欧美日性视频 | 一级成人网 | 亚洲黄色在线观看 | 中文字字幕在线 | 麻花天美星空视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲精品1234区 | 免费黄色网止 | 欧美精品黑人性xxxx | 亚洲精选国产 | 国产精品欧美 | 久久99久久99精品免视看婷婷 | 国产小视频在线免费观看 | 涩涩成人在线 | 亚洲一区在线看 | 日韩三级视频在线观看 | 国产亚洲精品无 | 四虎在线观看视频 | 亚洲一区日韩 | www.久久久.cum| 日韩av看片 | 中文字幕在线观 | 欧美日本不卡高清 | 91日韩精品视频 | 国产美女在线观看 | 国产色婷婷在线 | 日本爱爱免费 | 免费观看第二部31集 | 久久婷婷丁香 | 成人动态视频 | 欧美日韩精品在线观看视频 | 色综合天天色综合 | 欧美午夜剧场 | 欧美亚洲国产精品久久高清浪潮 | 97超碰影视 | 91大神精品视频在线观看 | 久久精品视频网站 | 免费av一级电影 | 久久五月婷婷丁香社区 | 韩国视频一区二区三区 | 婷婷六月天天 | 在线精品播放 | 国产精品自产拍在线观看网站 | 色综合久久久久综合99 | 98福利在线| 视频在线99 | 欧美日韩精品综合 | 亚洲综合婷婷 | 91精品久久久久久综合乱菊 | 国产精品96久久久久久吹潮 | 国产精品av免费 | 日批视频在线观看免费 | 精品国产福利在线 | 日韩中文字幕亚洲一区二区va在线 | 日韩区视频 | 日韩免费福利 | 中文字幕欧美日韩va免费视频 | 日韩有码在线播放 | 黄色毛片在线观看 | 丁香花中文在线免费观看 | 国产99久久久精品 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | av在线日韩 | 天天干夜夜夜 | 亚洲精品黄色 | av电影在线不卡 | 日韩在线一二三区 | 亚洲精品视频在线观看视频 | 992tv在线成人免费观看 | 欧美日韩精品在线视频 | 深爱五月网 | 天天操天天操天天操 | 国产成人久久av977小说 | 色国产精品一区在线观看 | 91av国产视频| 成人亚洲精品久久久久 | 丁香5月婷婷 | 国产96在线观看 | 国产亚洲综合在线 | 午夜精品一区二区三区在线视频 | 九九热在线免费观看 | av成人免费在线 | 日韩视频一区二区在线 | 国产成人久久精品77777综合 | 色激情五月 | 伊人日日干 | 国产亚洲视频在线免费观看 | 亚洲人片在线观看 | bbbb操bbbb| 久久黄色片 | 在线99热| 国产麻豆果冻传媒在线观看 | 天天干天天干天天 | 国产看片 色 | 中文字幕免费高清在线观看 | 黄色片网站免费 | 91在线porny国产在线看 | av成人免费在线 | 狠狠狠操 | 天天射天天干天天 | 亚洲精品国产精品久久99热 | 国产成人在线免费观看 | 极品嫩模被强到高潮呻吟91 | 亚洲午夜精品在线观看 | 国内精品久久久久 | 99久久电影 | 97免费视频在线 | 不卡中文字幕av | 综合久久网站 | 亚洲视频中文 | 欧美日韩一二三四区 | 久久电影国产免费久久电影 | 日本精品一区二区三区在线观看 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 91精品在线播放 | 久草精品视频 | 国产亚洲成av人片在线观看桃 | 九九久久久久久久久激情 | 国产性xxxx | 97偷拍在线视频 | 美女视频黄,久久 | 亚洲欧美精品在线 | 久久草 | 在线播放一区二区三区 | 中文字幕av影院 | 婷婷射五月 | 五月婷婷一区 | 97视频免费 | av 一区二区三区四区 | 91视频观看免费 | 国产青草视频在线观看 | 夜夜夜夜夜夜操 | 五月天欧美精品 | 色综合久久久 | 久久黄色精品视频 | 天天插天天射 | 亚洲国产字幕 | 亚洲视频精品在线 | 一本一道波多野毛片中文在线 | 成人免费观看网址 | 不卡的av在线| 亚洲一二三在线 | 日p视频在线观看 | 国产一二三四在线视频 | 91在线精品视频 | 亚洲小视频在线 | 在线播放视频一区 | 波多野结衣在线播放视频 | 视频二区在线 | 在线观看亚洲精品视频 | 国产精品伦一区二区三区视频 | 安徽妇搡bbbb搡bbbb | 91视频久久久 | 国产精品久久久久久久久搜平片 | 五月天九九 | 高潮久久久久久 | 色资源二区在线视频 | 天天操人人要 | 国产福利一区二区三区视频 | 成人av片免费观看app下载 | 久草9视频 | 成人a级黄色片 | 亚洲伦理一区二区 | 在线亚洲成人 | 亚洲男女精品 | 日本久久久久久科技有限公司 | 成片免费观看视频大全 | 尤物97国产精品久久精品国产 | 亚洲第一香蕉视频 | 久草视频在线资源站 | 日韩专区一区二区 | 2018好看的中文在线观看 | 中文字幕精品一区二区精品 | 91大神免费在线观看 | 一区二区中文字幕在线播放 | 一区在线播放 | 久久av免费 | 精品国产成人在线影院 | 免费a v观看| 久久视频网 | 日韩在线不卡av | 亚洲无吗视频在线 | 成人a在线观看高清电影 | 亚洲日本韩国一区二区 | 久久国产a | 久久综合狠狠综合久久激情 | 黄色毛片在线观看 | 丝袜av网站| 国产二区视频在线观看 | 激情 一区二区 | 国产精品免费在线播放 | 国产一区二区免费在线观看 | 亚洲第一av在线播放 | 国产流白浆高潮在线观看 | 欧美一区二区在线刺激视频 | 在线成人一区 | 精品国产亚洲在线 | 99re中文字幕 | 中文字幕日韩在线播放 | 国产视频在线看 | 国产免费精彩视频 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 久草色在线观看 | 伊人久久在线观看 | 日韩免费在线网站 | 亚洲天堂在线观看完整版 | 日韩欧美高清一区二区三区 | 色狠狠综合天天综合综合 | 4438全国亚洲精品观看视频 | 精品在线一区二区三区 | 在线天堂v | 国产超碰在线 | 91在线观看欧美日韩 | 成人免费看视频 | 久久人人爽人人爽人人 | 国产精品男女 | 香蕉成人在线视频 | 91伊人久久大香线蕉蜜芽人口 | 国产理论影院 | 99视频这里只有 | 精品电影一区二区 | 午夜国产福利在线观看 | 亚洲国产精品一区二区尤物区 | 97国产在线观看 | 狠狠色伊人亚洲综合网站色 | 麻豆影视在线观看 | 日本黄色大片儿 | 最近免费中文视频 | 婷婷六月天综合 | 中文字幕在线观看免费观看 | a天堂免费| 91人人揉日日捏人人看 | 亚洲午夜久久久久久久久电影网 | 亚洲精品一区二区18漫画 | 亚洲va综合va国产va中文 | 国产精品免费成人 | 亚洲做受高潮欧美裸体 | 久久综合之合合综合久久 | 一区二区三区在线电影 | 综合在线观看色 | 麻豆91网站 | 免费人成在线观看网站 | 狠狠亚洲 | www黄色av| av免费观看在线 | 成人一区电影 | 中文字幕在线观看免费观看 | 天天操天天摸天天干 | 中文字幕高清视频 | 瑞典xxxx性hd极品 | 欧美一级黄色片 | 久久电影国产免费久久电影 | 亚洲综合精品视频 | 97色视频在线 | 在线观看视频97 | 亚洲午夜精品久久久久久久久久久久 | 欧美精品国产综合久久 | 亚洲乱亚洲乱亚洲 | 国产精品永久久久久久久久久 | 欧美一级电影片 | 国产色视频网站2 | 91精品一区二区三区久久久久久 | ww视频在线观看 | 狠狠色噜噜狠狠狠 | 国产一区二区电影在线观看 | 亚洲黄色区 | 国产电影一区二区三区四区 | 国产视频在 | 国产高清免费视频 | 日本性高潮视频 | 亚洲电影av在线 | 国产看片 色 | 国产小视频福利在线 | 国产在线播放一区二区 | 日日躁天天躁 | 日日爽天天| 午夜精品福利在线 | 精品资源在线 | 免费网站黄色 | 亚洲天天干 | 日韩欧美一区二区三区在线 | 欧美综合久久久 | 日韩av电影网站在线观看 | 日韩成人黄色 | 91麻豆操 | 91成人区 | 天天操天天舔天天爽 | 欧美日韩国产一区二区三区在线观看 | 国产69精品久久app免费版 | 黄色一级大片在线观看 | 97人人精品| 久久久精品日本 | 久久久www成人免费精品 | 国产精品日韩欧美 | 91av在线国产 | 色婷婷激婷婷情综天天 | 日韩专区在线播放 | 韩国av一区二区三区在线观看 | 婷婷在线色 | 97香蕉超级碰碰久久免费软件 | 色全色在线资源网 | 97av在线视频 | 久久er99热精品一区二区 | 国产麻豆电影 | 欧美成人a在线 | 国产你懂的在线 | 国产+日韩欧美 | 在线电影日韩 | 国产午夜三级一区二区三 | 日韩视频免费看 | 亚洲精品五月天 | 国内精品免费久久影院 | 韩日电影在线 | 九九综合久久 | 欧美激情在线网站 | 亚洲男女精品 | 久久黄色a级片 | 日韩精品中文字幕在线观看 | 亚洲网久久 | 免费看的黄色网 | 五月天丁香综合 | 97人人澡人人添人人爽超碰 | 久久社区视频 | 国产一性一爱一乱一交 | 欧美在线不卡一区 | 日韩视频专区 | 九九国产精品视频 | 日日干精品 | 国外成人在线视频网站 | 网站免费黄色 | 久久久精品欧美一区二区免费 | 高清有码中文字幕 | 免费a一级 | 日韩在线视频看看 | 最新国产在线 | 国产精品免费在线观看视频 | 久久国产成人午夜av影院潦草 | 4p变态网欧美系列 | 欧美日韩在线观看视频 | 久久综合毛片 | 日韩在线大片 | 新版资源中文在线观看 | 亚洲 欧美 另类人妖 | 国产精品手机视频 | 久草在线91| 国产精品久久免费看 | 欧美日韩天堂 | av专区在线 | 欧美黑人性猛交 | 五月天久久激情 | 日韩激情精品 | 韩日精品中文字幕 | 国产美腿白丝袜足在线av | 97在线播放视频 | 激情视频国产 | 91精彩视频在线观看 | 国产在线观看黄 | 亚洲国产一区二区精品专区 | a天堂在线看 | 91理论电影 | 97精品久久人人爽人人爽 | 欧美色久 | 国产精品成人av久久 | 成人av片免费观看app下载 | 久久成人国产精品入口 | 日韩视频免费播放 | 高清国产在线一区 | 亚洲精品白浆高清久久久久久 | 国产网站在线免费观看 | 成人h动漫精品一区二 | 成人在线播放av | 99视频播放 | 色999五月色| 福利一区视频 | 色999五月色| 免费在线观看污网站 | 国产精品一区二区果冻传媒 | 99精品视频免费观看视频 | 国产高清视频免费在线观看 | www久久精品 | 人人精久 | 亚洲另类久久 | 91在线区| 亚洲国产精品va在线看 | 免费在线视频一区二区 | 国产丝袜一区二区三区 | 九九日九九操 | 久久精品男人的天堂 | 成人免费在线播放视频 | 国产 亚洲 欧美 在线 | 午夜精品一区二区三区免费视频 | 激情五月在线视频 | 免费一级片观看 | 男女视频91 | 国产黄大片在线观看 | 亚洲视频免费在线观看 | 国产午夜精品视频 | 综合影视 | 色五月成人 | 激情久久一区二区三区 | 色丁香综合| 九九热在线播放 | 在线观看成人小视频 | 九九热只有精品 | 国产黄网站在线观看 | 亚洲一级片在线观看 | 99视频精品全部免费 在线 | 免费观看的av网站 | 午夜精品区 | 久久精品波多野结衣 | 免费看搞黄视频网站 | 在线免费av播放 | 999成人 | 五月天综合网站 | 国产精品美女久久久久久久久久久 | 亚洲精品国产拍在线 | 2023国产精品自产拍在线观看 | 午夜av影院 | 国产精品乱码久久久 | 国产精品毛片一区二区 | 狠狠五月天 | 99久久精品无码一区二区毛片 | 精品国产一区在线观看 | 国产视频一区在线播放 | 国产在线一区二区三区播放 | 日韩a免费 | 日韩欧美区| 亚洲a色 | 一区二区中文字幕在线播放 | 午夜精品视频一区 | www免费在线观看 | 超碰97成人| 久久久久成人免费 | 97超碰在线视 | 在线观看a视频 | 高清中文字幕av | 在线观看免费av片 | 人人插人人爱 | 国产精品麻豆果冻传媒在线播放 | 久日精品| 国产69精品久久久久久久久久 | 麻豆视频国产在线观看 | 成人毛片一区 | 亚洲免费一级电影 | 一区二区视频在线观看免费 | 6080yy午夜一二三区久久 | 亚洲国产中文字幕在线视频综合 | 亚洲精品字幕 | 久久99国产精品久久99 | 久久精品—区二区三区 | 国产精品99久久久久人中文网介绍 | 婷婷5月色| 日韩网站在线看片你懂的 | 最新国产在线 | 一级黄毛片 | 99精品久久99久久久久 | 亚洲爱视频 | 天天综合亚洲 | 婷婷丁香激情综合 | 伊人夜夜 | 日韩视频免费在线 | 国产精品久久久久久久午夜片 | 超碰在线98 | 久草观看视频 | 911精品视频 | 日韩婷婷 | 国产精品一码二码三码在线 | 狠狠色香婷婷久久亚洲精品 | 精品国产理论 | 探花视频在线观看 | 热99久久精品 | 99热这里只有精品国产首页 | 欧美最猛性xxxxx免费 | 91自拍成人 | 亚洲成av人片一区二区梦乃 | 免费看国产曰批40分钟 | 日本中文乱码卡一卡二新区 | 99 精品 在线 | 亚州国产精品视频 | 国产精品欧美激情在线观看 | 午夜视频欧美 | 久久久久久久影视 | 精品国产精品国产偷麻豆 | 国产一区电影在线观看 | 999久久久久久 | 伊人开心激情 | 日韩精品aaa | 国产精品久久嫩一区二区免费 | 久久久蜜桃 | 亚洲乱码精品久久久 | 九九热在线观看 | www.天天射.com| 999成人精品| 亚洲草视频 | 亚洲国产高清在线观看视频 | 国产一区二区久久精品 | 91av资源网 | 视频 国产区 | 国际精品久久 | 成人一级片视频 | 欧美日韩亚洲一 | 亚洲精品乱码久久久一二三 | 国产成人久久av | 国产精品免费看 | 久久精品网站免费观看 | av天天色| 国产黄视频在线观看 | www.久久91| 天天操天天爱天天爽 | 在线v片免费观看视频 | 久久精精品视频 | 亚洲精选视频免费看 | 992tv在线成人免费观看 | 免费观看91视频大全 | 久久成人亚洲欧美电影 | 国产精品国产亚洲精品看不卡 | 成人午夜免费剧场 | 国产免费观看高清完整版 | 亚洲综合视频网 | 天堂av在线免费 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 又大又硬又黄又爽视频在线观看 | 日本99久久| 在线中文字幕电影 | 天天操夜夜操夜夜操 | 亚洲精品午夜久久久久久久 | 亚洲精品乱码久久久久久9色 | 国产日韩一区在线 | 91九色老 | 久久少妇| 日日操天天操夜夜操 | 久久精品影片 | 欧美日韩一区二区三区视频 | 午夜视频一区二区三区 | 中文字幕91视频 | 色综合久久久久综合体桃花网 | 正在播放亚洲精品 | 色综合久久久久久久 | 99色在线观看 | 国产专区精品 | www.69xx | 亚洲欧美日韩一级 | 最近中文字幕免费视频 | 99riav1国产精品视频 | ww视频在线观看 | 九九九毛片 | 亚洲视频电影在线 | 激情五月综合 | 国产精品k频道 | 久久在现视频 | 精品自拍sae8—视频 | 久操视频在线观看 | 四虎5151久久欧美毛片 | 欧美一级片免费播放 | 国产成人精品综合久久久久99 | 久久伊人婷婷 | 久久看看| 人人干干人人 | 中文字幕在线观看免费观看 | 91国内在线视频 | av电影中文字幕在线观看 | 在线观看日韩一区 | 日韩av一区二区在线 | 国内偷拍精品视频 | 黄色小网站在线 | 91在线精品视频 | 99re中文字幕| 国产成人av在线 | 久久综合之合合综合久久 | 国产一级久久 | 欧美天天综合 | 婷婷色综 | 久久99久久99精品免费看小说 | 久久国产精品一区二区三区 | 99热这里只有精品国产首页 | 国产一卡久久电影永久 | 精品在线观看一区二区三区 | 国产精华国产精品 | 手机看片国产日韩 | 久久国产精品二国产精品中国洋人 | 中文字幕av有码 | 午夜精品一二三区 | 国产在线永久 | 最新av在线网站 | 丁香六月欧美 | 日日爽夜夜操 | 日韩免费视频线观看 | 亚洲精品免费观看视频 | 免费av大全 | 色综合天天狠天天透天天伊人 | 超碰伊人网 | 国产精品美女免费 | 国产一级免费视频 | 色在线亚洲 | 99久热在线精品视频 | 国产精品久免费的黄网站 | 狠狠88综合久久久久综合网 | 久久久久免费精品 | 手机av片 | 欧美日韩中文视频 | 久久综合欧美 | av福利在线播放 | 五月天堂网 | 久久福利在线 | 日韩在线观看视频一区二区三区 | www.亚洲黄| www.久久91| 亚洲国产精品小视频 | 国产高清av免费在线观看 | 中文字幕在线免费观看视频 | 欧美午夜性生活 | www色| 国产成人精品999 | 一区二区三区免费在线观看视频 | 亚洲视频 中文字幕 | 欧美日韩国产精品一区 | av在线小说 | 欧美大片mv免费 | 亚洲精品一区二区三区四区高清 | 午夜视频一区二区 | 99精品国产免费久久久久久下载 | 夜夜干夜夜 | 一区二区三区影院 | 色吊丝在线永久观看最新版本 | 欧美天堂影院 | 六月天综合网 | 亚洲色图美腿丝袜 | 精品国产乱码久久久久久浪潮 | 色综合久久久久综合 | 久久激情五月婷婷 | 国产精品免费在线播放 | www.天天射.com| 激情五月婷婷网 | 欧美日韩亚洲在线观看 | 国内99视频 | 欧美淫aaa免费观看 日韩激情免费视频 | 久久天堂亚洲 | 色干干 | 国产精品一区二区果冻传媒 | 成人午夜剧场在线观看 | 欧美一级久久久 | 手机版av在线 | 国内精品久久久久影院日本资源 | 免费在线一区二区三区 | 欧美激情精品 | 亚州日韩中文字幕 | 日本视频不卡 | 丁香伊人网 | 日韩精品在线视频免费观看 | aaa毛片视频 | 91看片看淫黄大片 | 五月综合激情婷婷 | 成人97视频一区二区 | 日韩在线观看不卡 | 麻豆久久一区 | 91精品国产麻豆 | 久久久久久国产精品 | 九九九九热精品免费视频点播观看 | 精品国产一区二区三区不卡 | 日韩欧美国产激情在线播放 | 精品久久久久久久久久久久久久久久久久 | 久草在线免费播放 | 97成人在线免费视频 | 九色琪琪久久综合网天天 | 免费欧美精品 | 在线视频国产区 | 天天做天天爱夜夜爽 | 成年人在线观看网站 | 天天综合人人 | 三级午夜片 | 青青色影院 | 国产精品久久久毛片 | 婷婷在线免费观看 | 九九久久精品 | 色综合中文综合网 | 免费高清在线观看成人 | 亚洲伊人第一页 | mm1313亚洲精品国产 | 国产糖心vlog在线观看 | 在线观看国产日韩 | 国产色婷婷 | 欧美九九九 | 欧美黑人性爽 | 国产在线精品区 | 99国产精品久久久久久久久久 | 婷婷综合久久 | 婷婷六月中文字幕 | 日韩二区三区在线 | 日韩精品中文字幕在线播放 | 九九激情视频 | 国产一区二区三区四区在线 | 欧美日韩激情视频8区 | 91视频高清完整版 | 狠狠色丁香久久婷婷综合丁香 | 免费网站看av片 | 国产亚洲欧美在线视频 | 国产精品麻豆三级一区视频 | 午夜精品剧场 | 亚洲人在线 | 麻豆mv在线观看 | 国色综合| 欧美久草视频 | 奇米影视999| 日韩久久影院 | 麻豆国产精品视频 | www色网站 | 一区二区三区在线观看 | 中文字幕在线免费观看视频 | 久久精品视频免费播放 | 亚洲成人精品久久久 | 亚洲涩综合| 成人av视屏 | 探花视频免费在线观看 | 一本一道波多野毛片中文在线 | 日韩欧美高清免费 | 中文字幕黄色 | 国产日韩精品一区二区三区在线 | 日韩最新在线视频 | 国产成人久久av免费高清密臂 | 国产视频精品久久 | 天天视频色 | 97精品国产97久久久久久 | 成人福利av | 黄色官网在线观看 | 国产原厂视频在线观看 | 激情久久伊人 | 在线观看的a站 | 亚洲精品久久久久久久蜜桃 | 久久人人爽人人爽人人片av免费 | 日韩午夜三级 | 成人中文字幕+乱码+中文字幕 | 婷婷久久久久 | 久久视频免费在线 | 婷婷久久网站 | 国产一区二区在线免费播放 | 久草在线官网 | 欧美成人精品欧美一级乱 | 在线观看国产成人av片 | 美女视频黄色免费 | 亚洲aaa毛片| 久久五月网 | 美女搞黄国产视频网站 | 草久草久 | 狠狠撸电影 | 中文字幕乱在线伦视频中文字幕乱码在线 | 又爽又黄在线观看 | 成人av在线亚洲 | 色偷偷中文字幕 | 91九色蝌蚪视频网站 | 成人av网站在线播放 | 亚洲免费精品一区二区 | 亚洲精品永久免费视频 | 亚洲成人资源在线观看 | 在线蜜桃视频 | 最近日本字幕mv免费观看在线 | 亚洲欧美va | 国产精品免费在线视频 | 久久久久久久久久久福利 | 成人宗合网 | 激情综合六月 | 99热这里有 | 区一区二区三在线观看 | 成人精品国产 | 91精品久久久久久久久 | 五月天久久激情 | 人人射av| 久久爽久久爽久久av东京爽 | 黄色毛片观看 | 久久精品久久久久久久 | 午夜婷婷在线观看 | 欧亚久久 | 欧美性网站 | 日韩另类在线 | 成人欧美一区二区三区黑人麻豆 | 日韩理论影院 | 中午字幕在线 | 日日干日日操 | 久久免费视频这里只有精品 | 国产精品久久综合 | 精品久久久久久亚洲综合网站 | 天天人人综合 | 久久视了 | 91大神精品视频 | 中文字幕文字幕一区二区 | 国产精品一区二区三区在线免费观看 | 亚洲欧洲中文日韩久久av乱码 | 午夜美女wwww | 五月天电影免费在线观看一区 | a√天堂中文在线 | 亚洲天堂色婷婷 | 久久综合九九 | 亚洲做受高潮欧美裸体 | 成人黄色在线观看视频 | 久久久久久久国产精品 | 少妇啪啪av入口 | 欧美国产日韩一区二区 | 五月婷婷综合久久 | 国产精品日韩欧美一区二区 | 欧美精品一区二区在线播放 | 国产三级久久久 | 精品久久久久久亚洲综合网站 | 亚洲免费在线看 | 中文字幕区 | 亚洲综合国产精品 | 99免费看片 | 亚洲一区 av| 99久久综合精品五月天 | 国产精品国产三级在线专区 | 日韩欧美网站 | 欧美analxxxx| 97久久精品午夜一区二区 | 久久一精品| 永久免费精品视频 | 天天视频亚洲 | 麻豆免费在线播放 | 天天操天天色综合 | 久久av中文字幕片 | 人人草在线视频 | 中文字幕首页 | 日韩欧美在线影院 | 欧美一级电影 | 综合在线观看色 | 午夜精品影院 | 玖玖爱免费视频 | 免费三级黄色片 | 婷婷五月色综合 | 国产精品爽爽久久久久久蜜臀 | 国内精品久久久久国产 | 欧美精品生活片 | 亚洲成人免费在线观看 | 中国一级特黄毛片大片久久 | 中文字幕一二 | 欧美大片大全 | 天天综合91| av成人在线看 | 91精品国产乱码久久桃 | 蜜桃视频精品 | 麻豆视频免费在线观看 | 日本最大色倩网站www | 国产一级二级av | 婷婷在线视频观看 | 亚洲va在线va天堂 | 久久久久久综合 | 麻豆极品 | 国产成人精品日本亚洲999 | 91福利视频久久久久 | 欧美一区日韩精品 | 超碰资源在线 | 999成人国产| 久久久久久国产精品久久 | 99精品在线看 | a黄色大片| 欧美精品黑人性xxxx | 91少妇精拍在线播放 | 国产免费xvideos视频入口 | 精品久久久久久国产偷窥 | 97**国产露脸精品国产 | 91精品国产自产老师啪 | 国产一级视频在线免费观看 | 美女视频久久久 | 国产护士av | 国产日韩精品视频 | 国产一区二区免费 | 国产情侣一区 | 日韩在线 一区二区 | 中文字幕在线视频国产 | 久久精品国产一区二区电影 | 天天操天天干天天摸 | 欧美一二三区在线播放 | 日本三级国产 | 欧美日韩精品免费观看 | 久久久久久影视 | 在线91精品 | 亚洲精品免费观看 | 麻豆视频一区 | 中文在线免费观看 | 夜夜骑天天操 | 日韩欧美中文 | 久久精品爱视频 | 日本护士撒尿xxxx18 | 国产九九在线 | 青青河边草免费 | 色永久免费视频 | 99热最新网址 | 可以免费观看的av片 | 欧美一级久久久 | av在线电影网站 | 一区二区三区三区在线 | 91视频在线观看下载 | 欧美999 | 成人午夜在线观看 | 一区二区精品视频 | 亚洲欧洲av在线 | 国产成人综合在线观看 | 草莓视频在线观看免费观看 | 一区二区三区精品久久久 | 91福利在线导航 | 国产一区在线免费观看视频 | 国产经典 欧美精品 | 成人av电影在线 | 日韩成人在线一区二区 | 精品国内自产拍在线观看视频 | www.99热精品| 久久久网页 | 91看片一区二区三区 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 麻豆极品 | 97热久久免费频精品99 | 精品国产乱码一区二区三区在线 | 国产免费观看视频 | 色综合在 | 久久精品国产免费看久久精品 | 精品国产成人 | 日本精品视频一区 | 深爱五月网 | 国产高清av免费在线观看 | 久精品视频在线 | 国产不卡一二三区 | 免费午夜视频在线观看 | 亚洲精品国产精品久久99热 | 9999在线| 美女av电影| 黄色免费网战 | 毛片精品免费在线观看 | 免费在线观看成人av | 国产99久久久国产 | 波多野结依在线观看 | 久久国产精品久久w女人spa | 久久综合色综合88 | 91av综合| 午夜av在线免费 | 激情开心站 | 亚洲欧美观看 | 日韩在线网址 | 久久三级毛片 | 最新av网站在线观看 | 九色精品免费永久在线 | 日韩在线观看第一页 | 有没有在线观看av | 91精品天码美女少妇 | 亚洲激情视频在线 | 激情图片久久 | 久黄色 | 日本中文字幕在线一区 | 精品免费| 久久国内精品99久久6app | 久久精品福利视频 | 午夜久久电影网 | 亚洲女欲精品久久久久久久18 | 91久久久久久久一区二区 | 2024国产在线 | 免费在线成人av | 国产h片在线观看 | 久久色视频 | 99视频黄 | 亚洲一区日韩精品 | 国产1区2区| 久久久精品国产免费观看一区二区 | 国产黄大片在线观看 | 99热高清| 五月天综合色激情 | 97精品欧美91久久久久久 | 久久精品系列 | 国产亚洲精品久久19p | 超碰人人做 | 婷婷六月色 | 国产黄色片网站 | 中文字幕免费中文 | 久久在线免费观看 | 精品视频在线观看 | 免费日韩 精品中文字幕视频在线 | 超碰在线日本 | 奇米先锋 | 99在线视频播放 | 亚洲欧美一区二区三区孕妇写真 | 国产一级黄色电影 | 黄色网址在线播放 | 91综合色| 亚洲国产精品久久久 | 在线免费观看视频 | 亚洲精品大片www | 精品亚洲va在线va天堂资源站 |