人妻精品在线观看一区二区三区,蜜臀av精品一区二区三区网站,中文一区二区三区亚洲欧美,熟女人妇精品一区二区,人妻av在线观看视频,欧美日韩国产三级精品网站,黄色免费网站直接进入,超碰公开福利正在播放,国产毛片乡下农村妇女毛片

YOLOv5全面解析教程①:網(wǎng)絡結構逐行代碼解讀

來源:CSDN博客 | 2022-12-16 11:07:29 |

撰文 |?Fengwen, BBuf

本教程涉及的代碼在:


(資料圖)

https://github.com/Oneflow-Inc/one-yolov5

教程也同樣適用于 Ultralytics/YOLOv5,因為 One-YOLOv5 僅僅是換了一個運行時后端而已,計算邏輯和代碼相比?Ultralytics/YOLOv5 沒有做任何改變,歡迎 star 。詳細信息請看:一個更快的YOLOv5問世,附送全面中文解析教程

1

引言

YOLOv5針對不同大?。╪, s, m, l, x)的網(wǎng)絡整體架構都是一樣的,只不過會在每個子模塊中采用不同的深度和寬度,分別應對yaml文件中的depth_multiple和width_multiple參數(shù)。

還需要注意一點,官方除了n, s, m, l, x版本外還有n6, s6, m6, l6, x6,區(qū)別在于后者是針對更大分辨率的圖片比如1280x1280,?當然結構上也有些差異,前者只會下采樣到32倍且采用3個預測特征層 , 而后者會下采樣64倍,采用4個預測特征層。

本章將以YOLOv5s為例,

從配置文件models/yolov5s.yaml

(https://github.com/Oneflow-Inc/one-yolov5/blob/main/models/yolov5s.yaml)到models/yolo.py (https://github.com/Oneflow-Inc/one-yolov5/blob/main/models/yolo.py)

源碼進行解讀。

2

yolov5s.yaml文件內容

nc:?80??#?number?of?classes?數(shù)據(jù)集中的類別數(shù)depth_multiple:?0.33??#?model?depth?multiple??模型層數(shù)因子(用來調整網(wǎng)絡的深度)width_multiple:?0.50??#?layer?channel?multiple?模型通道數(shù)因子(用來調整網(wǎng)絡的寬度)#?如何理解這個depth_multiple和width_multiple呢?它決定的是整個模型中的深度(層數(shù))和寬度(通道數(shù)),具體怎么調整的結合后面的backbone代碼解釋。anchors:?#?表示作用于當前特征圖的Anchor大小為?xxx#?9個anchor,其中P表示特征圖的層級,P3/8該層特征圖縮放為1/8,是第3層特征??-?[10,13,?16,30,?33,23]??#?P3/8,?表示[10,13],[16,30],?[33,23]3個anchor??-?[30,61,?62,45,?59,119]??#?P4/16??-?[116,90,?156,198,?373,326]??#?P5/32#?YOLOv5s?v6.0?backbonebackbone:??#?[from,?number,?module,?args]??[[-1,?1,?Conv,?[64,?6,?2,?2]],??#?0-P1/2???[-1,?1,?Conv,?[128,?3,?2]],??#?1-P2/4???[-1,?3,?C3,?[128]],???[-1,?1,?Conv,?[256,?3,?2]],??#?3-P3/8???[-1,?6,?C3,?[256]],???[-1,?1,?Conv,?[512,?3,?2]],??#?5-P4/16???[-1,?9,?C3,?[512]],???[-1,?1,?Conv,?[1024,?3,?2]],??#?7-P5/32???[-1,?3,?C3,?[1024]],???[-1,?1,?SPPF,?[1024,?5]],??#?9??]#?YOLOv5s?v6.0?headhead:??[[-1,?1,?Conv,?[512,?1,?1]],???[-1,?1,?nn.Upsample,?[None,?2,?"nearest"]],???[[-1,?6],?1,?Concat,?[1]],??#?cat?backbone?P4???[-1,?3,?C3,?[512,?False]],??#?13???[-1,?1,?Conv,?[256,?1,?1]],???[-1,?1,?nn.Upsample,?[None,?2,?"nearest"]],???[[-1,?4],?1,?Concat,?[1]],??#?cat?backbone?P3???[-1,?3,?C3,?[256,?False]],??#?17?(P3/8-small)???[-1,?1,?Conv,?[256,?3,?2]],???[[-1,?14],?1,?Concat,?[1]],??#?cat?head?P4???[-1,?3,?C3,?[512,?False]],??#?20?(P4/16-medium)???[-1,?1,?Conv,?[512,?3,?2]],???[[-1,?10],?1,?Concat,?[1]],??#?cat?head?P5???[-1,?3,?C3,?[1024,?False]],??#?23?(P5/32-large)???[[17,?20,?23],?1,?Detect,?[nc,?anchors]],??#?Detect(P3,?P4,?P5)??]

3

anchors 解讀

YOLOv5 初始化了 9 個 anchors,分別在三個特征圖 (feature map)中使用,每個 feature map 的每個 grid cell 都有三個 anchor 進行預測。分配規(guī)則:

尺度越大的 feature map 越靠前,相對原圖的下采樣率越小,感受野越小, 所以相對可以預測一些尺度比較小的物體(小目標),分配到的 anchors 越小。

尺度越小的 feature map 越靠后,相對原圖的下采樣率越大,感受野越大, 所以可以預測一些尺度比較大的物體(大目標),所以分配到的 anchors 越大。

即在小特征圖(feature map)上檢測大目標,中等大小的特征圖上檢測中等目標, 在大特征圖上檢測小目標。

4

backbone & head?解讀

[from, number, module, args] 參數(shù)

四個參數(shù)的意義分別是:

第一個參數(shù) from :從哪一層獲得輸入,-1表示從上一層獲得,[-1, 6]表示從上層和第6層兩層獲得。

第二個參數(shù) number:表示有幾個相同的模塊,如果為9則表示有9個相同的模塊。

第三個參數(shù) module:模塊的名稱,這些模塊寫在common.py中。

第四個參數(shù) args:類的初始化參數(shù),用于解析作為 moudle 的傳入?yún)?shù)。

下面以第一個模塊Conv 為例介紹下common.py中的模塊

Conv 模塊定義如下:

class?Conv(nn.Module):????#?Standard?convolution????def?__init__(self,?c1,?c2,?k=1,?s=1,?p=None,?g=1,?act=True):??#?ch_in,?ch_out,?kernel,?stride,?padding,?groups????????"""????????@Pargm?c1:?輸入通道數(shù)????????@Pargm?c2:?輸出通道數(shù)????????@Pargm?k?:?卷積核大小(kernel_size)????????@Pargm?s?:?卷積步長?(stride)????????@Pargm?p?:?特征圖填充寬度?(padding)????????@Pargm?g?:?控制分組,必須整除輸入的通道數(shù)(保證輸入的通道能被正確分組)????????"""????????super().__init__()????????#?https://oneflow.readthedocs.io/en/master/generated/oneflow.nn.Conv2d.html?highlight=Conv????????self.conv?=?nn.Conv2d(c1,?c2,?k,?s,?autopad(k,?p),?groups=g,?bias=False)????????self.bn?=?nn.BatchNorm2d(c2)????????self.act?=?nn.SiLU()?if?act?is?True?else?(act?if?isinstance(act,?nn.Module)?else?nn.Identity())????def?forward(self,?x):????????return?self.act(self.bn(self.conv(x)))????def?forward_fuse(self,?x):????????return?self.act(self.conv(x))

比如上面把width_multiple設置為了0.5,那么第一個 [64, 6, 2, 2] 就會被解析為 [3,64*0.5=32,6,2,2],其中第一個 3 為輸入channel(因為輸入),32 為輸出channel。

關于調整網(wǎng)絡大小的詳解說明

在yolo.py (https://github.com/Oneflow-Inc/one-yolov5/blob/main/models/yolo.py)的256行 有對yaml 文件的nc,depth_multiple等參數(shù)讀取,具體代碼如下:

anchors,?nc,?gd,?gw?=?d["anchors"],?d["nc"],?d["depth_multiple"],?d["width_multiple"]

"width_multiple"參數(shù)的作用前面介紹args參數(shù)中已經(jīng)介紹過了,那么"depth_multiple"又是什么作用呢?

在yolo.py (https://github.com/Oneflow-Inc/one-yolov5/blob/main/models/yolo.py) 的257行有對參數(shù)的具體定義:

n?=?n_?=?max(round(n?*?gd),?1)?if?n?>?1?else?n??#?depth?gain?暫且將這段代碼當作公式(1)

其中 gd 就是depth_multiple的值,n的值就是backbone中列表的第二個參數(shù):

根據(jù)公式(1)很容易看出 gd 影響 n 的大小,從而影響網(wǎng)絡的結構大小。

后面各層之間的模塊數(shù)量、卷積核大小和數(shù)量等也都產生了變化,YOLOv5l 與 YOLOv5s 相比較起來訓練參數(shù)的大小成倍數(shù)增長,

其模型的深度和寬度也會大很多,這就使得 YOLOv5l 的精度值要比 YOLOv5s 好很多,因此在最終推理時的檢測精度高,但是模型的推理速度更慢。

所以 YOLOv5 提供了不同的選擇,如果想要追求推理速度可選用較小一些的模型如 YOLOv5s、YOLOv5m,如果想要追求精度更高對推理速度要求不高的可以選擇其他兩個稍大的模型。

如下面這張圖:

yolov5模型復雜度比較圖

5

Conv模塊解讀

網(wǎng)絡結構預覽

下面是根據(jù)yolov5s.yaml

(https://github.com/Oneflow-Inc/one-yolov5/blob/main/models/yolov5s.yaml)?繪制的網(wǎng)絡整體結構簡化版。

yolov5s網(wǎng)絡整體結構圖

詳細的網(wǎng)絡結構圖:

https://oneflow-static.oss-cn-beijing.aliyuncs.com/one-yolo/imgs/yolov5s.onnx.png

通過export.py導出的onnx格式,并通過 https://netron.app/ 網(wǎng)站導出的圖片(模型導出將在本教程的后續(xù)文章單獨介紹)。

模塊組件右邊參數(shù) 表示特征圖的的形狀,比如 在 第 一 層( Conv )輸入 圖片形狀為 [ 3, 640, 640] ,關于這些參數(shù),可以固定一張圖片輸入到網(wǎng)絡并通過yolov5s.yaml?

(https://github.com/Oneflow-Inc/one-yolov5/blob/main/models/yolov5s.yaml)?的模型參數(shù)計算得到,并且可以在工程models/yolo.py(https://github.com/Oneflow-Inc/one-yolov5/blob/main/models/yolo.py) 通過代碼進行print查看,詳細數(shù)據(jù)可以參考附件表2.1。

6

yolo.py模塊解讀

文件地址(https://github.com/Oneflow-Inc/one-yolov5/blob/main/models/yolo.py)

文件主要包含三大部分: Detect類、?Model類和 parse_model 函數(shù)

可以通過 python models/yolo.py --cfg yolov5s.yaml運行該腳本進行觀察

7

parse_model函數(shù)解讀

def?parse_model(d,?ch):??#?model_dict,?input_channels(3)????"""用在下面Model模塊中????解析模型文件(字典形式),并搭建網(wǎng)絡結構????這個函數(shù)其實主要做的就是:?更新當前層的args(參數(shù)),計算c2(當前層的輸出channel)?=>??????????????????????????使用當前層的參數(shù)搭建當前層?=>??????????????????????????生成?layers?+?save????@Params?d:?model_dict?模型文件?字典形式?{dict:7}??[yolov5s.yaml](https://github.com/Oneflow-Inc/one-yolov5/blob/main/models/yolov5s.yaml)中的6個元素?+?ch????#Params?ch:?記錄模型每一層的輸出channel?初始ch=[3]?后面會刪除????@return?nn.Sequential(*layers):?網(wǎng)絡的每一層的層結構????@return?sorted(save):?把所有層結構中from不是-1的值記下?并排序?[4,?6,?10,?14,?17,?20,?23]????"""????LOGGER.info(f"\n{"":>3}{"from":>18}{"n":>3}{"params":>10}??{"module":<40}{"arguments":<30}")????#?讀取d字典中的anchors和parameters(nc、depth_multiple、width_multiple)????anchors,?nc,?gd,?gw?=?d["anchors"],?d["nc"],?d["depth_multiple"],?d["width_multiple"]????#?na:?number?of?anchors?每一個predict?head上的anchor數(shù)?=?3????na?=?(len(anchors[0])?//?2)?if?isinstance(anchors,?list)?else?anchors??#?number?of?anchors????no?=?na?*?(nc?+?5)??#?number?of?outputs?=?anchors?*?(classes?+?5)?每一個predict?head層的輸出channel?????#?開始搭建網(wǎng)絡????#?layers:?保存每一層的層結構????#?save:?記錄下所有層結構中from中不是-1的層結構序號????#?c2:?保存當前層的輸出channel????layers,?save,?c2?=?[],?[],?ch[-1]??#?layers,?savelist,?ch?out????# enumerate()?函數(shù)用于將一個可遍歷的數(shù)據(jù)對象(如列表、元組或字符串)組合為一個索引序列,同時列出數(shù)據(jù)和數(shù)據(jù)下標,一般用在 for 循環(huán)當中。????for?i,?(f,?n,?m,?args)?in?enumerate(d["backbone"]?+?d["head"]):??#?from,?number,?module,?args????????m?=?eval(m)?if?isinstance(m,?str)?else?m??#?eval?strings????????for?j,?a?in?enumerate(args):????????????#?args是一個列表,這一步把列表中的內容取出來????????????with?contextlib.suppress(NameError):????????????????args[j]?=?eval(a)?if?isinstance(a,?str)?else?a??#?eval?strings????????????????#?將深度與深度因子相乘,計算層深度。深度最小為1. ????????n?=?n_?=?max(round(n?*?gd),?1)?if?n?>?1?else?n??#?depth?gain????????????????#?如果當前的模塊m在本項目定義的模塊類型中,就可以處理這個模塊????????if?m?in?(Conv,?GhostConv,?Bottleneck,?GhostBottleneck,?SPP,?SPPF,?DWConv,?MixConv2d,?Focus,?CrossConv,?????????????????BottleneckCSP,?C3,?C3TR,?C3SPP,?C3Ghost,?nn.ConvTranspose2d,?DWConvTranspose2d,?C3x):????????????# c1:?輸入通道數(shù) c2:輸出通道數(shù)????????????c1,?c2?=?ch[f],?args[0]?????????????#?該層不是最后一層,則將通道數(shù)乘以寬度因子?也就是說,寬度因子作用于除了最后一層之外的所有層????????????if?c2?!=?no:??#?if?not?output????????????????# make_divisible的作用,使得原始的通道數(shù)乘以寬度因子之后取整到8的倍數(shù),這樣處理一般是讓模型的并行性和推理性能更好。????????????????c2?=?make_divisible(c2?*?gw,?8)????????????#?將前面的運算結果保存在args中,它也就是這個模塊最終的輸入?yún)?shù)。????????????args?=?[c1,?c2,?*args[1:]]?????????????#?根據(jù)每層網(wǎng)絡參數(shù)的不同,分別處理參數(shù)?具體各個類的參數(shù)是什么請參考它們的__init__方法這里不再詳細解釋了????????????if?m?in?[BottleneckCSP,?C3,?C3TR,?C3Ghost,?C3x]:????????????????#?這里的意思就是重復n次,比如conv這個模塊重復n次,這個n?是上面算出來的?depth?????????????????args.insert(2,?n)??#?number?of?repeats????????????????n?=?1????????elif?m?is?nn.BatchNorm2d:????????????args?=?[ch[f]]????????elif?m?is?Concat:????????????c2?=?sum(ch[x]?for?x?in?f)????????elif?m?is?Detect:????????????args.append([ch[x]?for?x?in?f])????????????if?isinstance(args[1],?int):??#?number?of?anchors????????????????args[1]?=?[list(range(args[1]?*?2))]?*?len(f)????????elif?m?is?Contract:????????????c2?=?ch[f]?*?args[0]?**?2????????elif?m?is?Expand:????????????c2?=?ch[f]?//?args[0]?**?2????????else:????????????c2?=?ch[f]????????#?構建整個網(wǎng)絡模塊?這里就是根據(jù)模塊的重復次數(shù)n以及模塊本身和它的參數(shù)來構建這個模塊和參數(shù)對應的Module????????m_?=?nn.Sequential(*(m(*args)?for?_?in?range(n)))?if?n?>?1?else?m(*args)??#?module????????#?獲取模塊(module type)具體名例如 models.common.Conv , models.common.C3 , models.common.SPPF 等。??????? t = str(m)[8:-2].replace("__main__.", "")??#? replace函數(shù)作用是字符串"__main__"替換為"",在當前項目沒有用到這個替換。????????np?=?sum(x.numel()?for?x?in?m_.parameters())??#?number?params????????m_.i,?m_.f,?m_.type,?m_.np?=?i,?f,?t,?np??#?attach?index,?"from"?index,?type,?number?params????????LOGGER.info(f"{i:>3}{str(f):>18}{n_:>3}{np:10.0f}??{t:<40}{str(args):<30}")??#?print????????"""????????如果x不是-1,則將其保存在save列表中,表示該層需要保存特征圖。????????這里?x?%?i?與?x?等價例如在最后一層?:?????????f?=?[17,20,23]?,?i?=?24?????????y?=?[?x?%?i?for?x?in?([f]?if?isinstance(f,?int)?else?f)?if?x?!=?-1?]????????print(y)?#?[17,?20,?23]?????????#?寫成x % i 可能因為:i - 1 =?-1 % i (比如 f =?[-1],則?[x % i for x in f]?代表?[11]?)????????"""????????save.extend(x?%?i?for?x?in?([f]?if?isinstance(f,?int)?else?f)?if?x?!=?-1)??#?append?to?savelist????????layers.append(m_)????????if?i?==?0:?#?如果是初次迭代,則新創(chuàng)建一個ch(因為形參ch在創(chuàng)建第一個網(wǎng)絡模塊時需要用到,所以創(chuàng)建網(wǎng)絡模塊之后再初始化ch)????????????ch?=?[]????????ch.append(c2)????#?將所有的層封裝為nn.Sequential?,?對保存的特征圖排序????return?nn.Sequential(*layers),?sorted(save)

8

Model類解讀

class?Model(nn.Module):????#?YOLOv5?model????def?__init__(self,?cfg="[yolov5s.yaml](https://github.com/Oneflow-Inc/one-yolov5/blob/main/models/yolov5s.yaml)",?ch=3,?nc=None,?anchors=None):??#?model,?input?channels,?number?of?classes????????super().__init__()????????#?如果cfg已經(jīng)是字典,則直接賦值,否則先加載cfg路徑的文件為字典并賦值給self.yaml。????????if?isinstance(cfg,?dict):?????????????self.yaml?=?cfg??#?model?dict????????else:??#?is?*.yaml??加載yaml模塊????????????import?yaml??#?for?flow?hub?????????????self.yaml_file?=?Path(cfg).name????????????with?open(cfg,?encoding="ascii",?errors="ignore")?as?f:????????????????self.yaml?=?yaml.safe_load(f)??#?model?dict??從yaml文件中加載出字典????????#?Define?model????????# ch:?輸入通道數(shù)。?假如self.yaml有鍵‘ch’,則將該鍵對應的值賦給內部變量ch。假如沒有‘ch’,則將形參ch賦給內部變量ch????????ch?=?self.yaml["ch"]?=?self.yaml.get("ch",?ch)??#?input?channels????????#?假如yaml中的nc和方法形參中的nc不一致,則覆蓋yaml中的nc。????????if?nc?and?nc?!=?self.yaml["nc"]:????????????LOGGER.info(f"Overriding?model.yaml?nc={self.yaml["nc"]}?with?nc={nc}")????????????self.yaml["nc"]?=?nc??#?override?yaml?value????????if?anchors:?#?anchors??先驗框的配置????????????LOGGER.info(f"Overriding?model.yaml?anchors?with?anchors={anchors}")????????????self.yaml["anchors"]?=?round(anchors)??#?override?yaml?value????????#?得到模型,以及對應的保存的特征圖列表。????????????self.model,?self.save?=?parse_model(deepcopy(self.yaml),?ch=[ch])??#?model,?savelist????????self.names?=?[str(i)?for?i?in?range(self.yaml["nc"])]??#?default?names?初始化類名列表,默認為[0,1,2...]????????????????#?self.inplace=True??默認True??節(jié)省內存????????self.inplace?=?self.yaml.get("inplace",?True)????????#?Build?strides,?anchors??確定步長、步長對應的錨框????????m?=?self.model[-1]??#?Detect()????????if?isinstance(m,?Detect):?#?檢驗模型的最后一層是Detect模塊????????????s?=?256??#?2x?min?stride????????????m.inplace?=?self.inplace????????????#?計算三個feature?map下采樣的倍率??[8,?16,?32]????????????m.stride?=?flow.tensor([s?/?x.shape[-2]?for?x?in?self.forward(flow.zeros(1,?ch,?s,?s))])??#?forward????????????#?檢查anchor順序與stride順序是否一致?anchor的順序應該是從小到大,這里排一下序????????????check_anchor_order(m)??#?must?be?in?pixel-space?(not?grid-space)????????????#?對應的anchor進行縮放操作,原因:得到anchor在實際的特征圖中的位置,因為加載的原始anchor大小是相對于原圖的像素,但是經(jīng)過卷積池化之后,特征圖的長寬變小了。????????????m.anchors?/=?m.stride.view(-1,?1,?1)????????????self.stride?=?m.stride????????????self._initialize_biases()?#?only?run?once??初始化偏置?????????#?Init?weights,?biases????????#?調用oneflow_utils.py下initialize_weights初始化模型權重????????initialize_weights(self)????????self.info()?#?打印模型信息????????LOGGER.info("")????#?管理前向傳播函數(shù)????def?forward(self,?x,?augment=False,?profile=False,?visualize=False):????????if?augment:#?是否在測試時也使用數(shù)據(jù)增強??Test?Time?Augmentation(TTA)????????????return?self._forward_augment(x)??#?augmented?inference,?None????????return?self._forward_once(x,?profile,?visualize)??#?single-scale?inference,?train????#?帶數(shù)據(jù)增強的前向傳播????def?_forward_augment(self,?x):????????img_size?=?x.shape[-2:]??#?height,?width????????s?=?[1,?0.83,?0.67]??#?scales????????f?=?[None,?3,?None]??#?flips?(2-ud,?3-lr)????????y?=?[]??#?outputs????????for?si,?fi?in?zip(s,?f):????????????xi?=?scale_img(x.flip(fi)?if?fi?else?x,?si,?gs=int(self.stride.max()))????????????yi?=?self._forward_once(xi)[0]??#?forward????????????#?cv2.imwrite(f"img_{si}.jpg",?255?*?xi[0].cpu().numpy().transpose((1,?2,?0))[:,?:,?::-1])??#?save????????????yi?=?self._descale_pred(yi,?fi,?si,?img_size)????????????y.append(yi)????????y?=?self._clip_augmented(y)??#?clip?augmented?tails????????return?flow.cat(y,?1),?None??#?augmented?inference,?train????#?前向傳播具體實現(xiàn)????def?_forward_once(self,?x,?profile=False,?visualize=False):????????"""????????@params?x:?輸入圖像????????@params?profile:?True?可以做一些性能評估????????@params?feature_vis:?True?可以做一些特征可視化????????"""????????#?y:?存放著self.save=True的每一層的輸出,因為后面的特征融合操作要用到這些特征圖????????y,?dt?=?[],?[]??#?outputs????????#?前向推理每一層結構???m.i=index???m.f=from???m.type=類名???m.np=number?of?params????????for?m?in?self.model:????????????#?if?not?from?previous?layer???m.f=當前層的輸入來自哪一層的輸出??s的m.f都是-1????????????if?m.f?!=?-1:??#?if?not?from?previous?layer????????????????x?=?y[m.f]?if?isinstance(m.f,?int)?else?[x?if?j?==?-1?else?y[j]?for?j?in?m.f]??#?from?earlier?layers????????????if?profile:????????????????self._profile_one_layer(m,?x,?dt)????????????x?=?m(x)??#?run????????????y.append(x?if?m.i?in?self.save?else?None)??#?save?output????????????if?visualize:????????????????feature_visualization(x,?m.type,?m.i,?save_dir=visualize)????????return?x????#?將推理結果恢復到原圖圖片尺寸(逆操作)????def?_descale_pred(self,?p,?flips,?scale,?img_size):????????#?de-scale?predictions?following?augmented?inference?(inverse?operation)????????"""用在上面的__init__函數(shù)上????????將推理結果恢復到原圖圖片尺寸??Test?Time?Augmentation(TTA)中用到?????????de-scale?predictions?following?augmented?inference?(inverse?operation)????????@params?p:?推理結果????????@params?flips:????????@params?scale:????????@params?img_size:????????"""????????if?self.inplace:????????????p[...,?:4]?/=?scale??#?de-scale????????????if?flips?==?2:????????????????p[...,?1]?=?img_size[0]?-?p[...,?1]??#?de-flip?ud????????????elif?flips?==?3:????????????????p[...,?0]?=?img_size[1]?-?p[...,?0]??#?de-flip?lr????????else:????????????x,?y,?wh?=?p[...,?0:1]?/?scale,?p[...,?1:2]?/?scale,?p[...,?2:4]?/?scale??#?de-scale????????????if?flips?==?2:????????????????y?=?img_size[0]?-?y??#?de-flip?ud????????????elif?flips?==?3:????????????????x?=?img_size[1]?-?x??#?de-flip?lr????????????p?=?flow.cat((x,?y,?wh,?p[...,?4:]),?-1)????????return?p????#?這個是TTA的時候對原圖片進行裁剪,也是一種數(shù)據(jù)增強方式,用在TTA測試的時候。????def?_clip_augmented(self,?y):????????#?Clip?YOLOv5?augmented?inference?tails????????nl?=?self.model[-1].nl??#?number?of?detection?layers?(P3-P5)????????g?=?sum(4?**?x?for?x?in?range(nl))??#?grid?points????????e?=?1??#?exclude?layer?count????????i?=?(y[0].shape[1]?//?g)?*?sum(4?**?x?for?x?in?range(e))??#?indices????????y[0]?=?y[0][:,?:-i]??#?large????????i?=?(y[-1].shape[1]?//?g)?*?sum(4?**?(nl?-?1?-?x)?for?x?in?range(e))??#?indices????????y[-1]?=?y[-1][:,?i:]??#?small????????return?y????#?打印日志信息??前向推理時間????def?_profile_one_layer(self,?m,?x,?dt):????????c?=?isinstance(m,?Detect)??#?is?final?layer,?copy?input?as?inplace?fix????????o?=?thop.profile(m,?inputs=(x.copy()?if?c?else?x,),?verbose=False)[0]?/?1E9?*?2?if?thop?else?0??#?FLOPs????????t?=?time_sync()????????for?_?in?range(10):????????????m(x.copy()?if?c?else?x)????????dt.append((time_sync()?-?t)?*?100)????????if?m?==?self.model[0]:????????????LOGGER.info(f"{"time?(ms)":>10s}?{"GFLOPs":>10s}?{"params":>10s}??module")????????LOGGER.info(f"{dt[-1]:10.2f}?{o:10.2f}?{m.np:10.0f}??{m.type}")????????if?c:????????????LOGGER.info(f"{sum(dt):10.2f}?{"-":>10s}?{"-":>10s}??Total")????#?initialize?biases?into?Detect(),?cf?is?class?frequency????def?_initialize_biases(self,?cf=None):?????????#?https://arxiv.org/abs/1708.02002?section?3.3????????#?cf?=?flow.bincount(flow.tensor(np.concatenate(dataset.labels,?0)[:,?0]).long(),?minlength=nc)?+?1.????????m?=?self.model[-1]??#?Detect()?module????????for?mi,?s?in?zip(m.m,?m.stride):??#?from????????????b?=?mi.bias.view(m.na,?-1).detach()??#?conv.bias(255)?to?(3,85)????????????b[:,?4]?+=?math.log(8?/?(640?/?s)?**?2)??#?obj?(8?objects?per?640?image)????????????b[:,?5:]?+=?math.log(0.6?/?(m.nc?-?0.999999))?if?cf?is?None?else?flow.log(cf?/?cf.sum())??#?cls????????????mi.bias?=?flow.nn.Parameter(b.view(-1),?requires_grad=True)????#??打印模型中最后Detect層的偏置biases信息(也可以任選哪些層biases信息)????def?_print_biases(self):????????"""????????打印模型中最后Detect模塊里面的卷積層的偏置biases信息(也可以任選哪些層biases信息)????????"""????????m?=?self.model[-1]??#?Detect()?module????????for?mi?in?m.m:??#?from????????????b?=?mi.bias.detach().view(m.na,?-1).T??#?conv.bias(255)?to?(3,85)????????????LOGGER.info(????????????????("%6g?Conv2d.bias:"?+?"%10.3g"?*?6)?%?(mi.weight.shape[1],?*b[:5].mean(1).tolist(),?b[5:].mean()))????def?_print_weights(self):????????"""????????打印模型中Bottleneck層的權重參數(shù)weights信息(也可以任選哪些層weights信息)????????"""????????for?m?in?self.model.modules():????????????if?type(m)?is?Bottleneck:????????????????LOGGER.info("%10.3g"?%?(m.w.detach().sigmoid()?*?2))??#?shortcut?weights????????# fuse()是用來進行conv和bn層合并,為了提速模型推理速度。????def?fuse(self):??#?fuse?model?Conv2d()?+?BatchNorm2d()?layers????????"""用在detect.py、val.py????????fuse?model?Conv2d()?+?BatchNorm2d()?layers????????調用oneflow_utils.py中的fuse_conv_and_bn函數(shù)和common.py中Conv模塊的fuseforward函數(shù)????????"""????????LOGGER.info("Fusing?layers...?")????????for?m?in?self.model.modules():????????????#?如果當前層是卷積層Conv且有bn結構,?那么就調用fuse_conv_and_bn函數(shù)講conv和bn進行融合,?加速推理????????????if?isinstance(m,?(Conv,?DWConv))?and?hasattr(m,?"bn"):????????????????m.conv?=?fuse_conv_and_bn(m.conv,?m.bn)??#?update?conv????????????????delattr(m,?"bn")??#?remove?batchnorm??移除bn?remove?batchnorm????????????????m.forward?=?m.forward_fuse??#?update?forward?更新前向傳播?update?forward?(反向傳播不用管,?因為這種推理只用在推理階段)????????self.info()??#?打印conv+bn融合后的模型信息????????return?self????#?打印模型結構信息?在當前類__init__函數(shù)結尾處有調用????def?info(self,?verbose=False,?img_size=640):??#?print?model?information????????model_info(self,?verbose,?img_size)????def?_apply(self,?fn):????????#?Apply?to(),?cpu(),?cuda(),?half()?to?model?tensors?that?are?not?parameters?or?registered?buffers????????self?=?super()._apply(fn)????????m?=?self.model[-1]??#?Detect()????????if?isinstance(m,?Detect):????????????m.stride?=?fn(m.stride)????????????m.grid?=?list(map(fn,?m.grid))????????????if?isinstance(m.anchor_grid,?list):????????????????m.anchor_grid?=?list(map(fn,?m.anchor_grid))????????return?self

9

Detect類解讀

class?Detect(nn.Module):????"""????Detect模塊是用來構建Detect層的,將輸入feature?map?通過一個卷積操作和公式計算到我們想要的shape,?為后面的計算損失或者NMS后處理作準備????"""????stride?=?None??#?strides?computed?during?build????onnx_dynamic?=?False??#?ONNX?export?parameter????export?=?False??#?export?mode????def?__init__(self,?nc=80,?anchors=(),?ch=(),?inplace=True):??#?detection?layer????????super().__init__()????????#??nc:分類數(shù)量????????self.nc?=?nc??#?number?of?classes??????????#??no:每個anchor的輸出數(shù)????????self.no?=?nc?+?5??#?number?of?outputs?per?anchor????????#?nl:預測層數(shù),此次為3????????self.nl?=?len(anchors)??#?number?of?detection?layers????????#??na:anchors的數(shù)量,此次為3????????self.na?=?len(anchors[0])?//?2??#?number?of?anchors????????#??grid:格子坐標系,左上角為(1,1),右下角為(input.w/stride,input.h/stride)????????self.grid?=?[flow.zeros(1)]?*?self.nl??#?init?grid????????self.anchor_grid?=?[flow.zeros(1)]?*?self.nl??#?init?anchor?grid????????#?寫入緩存中,并命名為anchors????????self.register_buffer("anchors",?flow.tensor(anchors).float().view(self.nl,?-1,?2))??#?shape(nl,na,2)????????#?將輸出通過卷積到?self.no?*?self.na?的通道,達到全連接的作用????????self.m?=?nn.ModuleList(nn.Conv2d(x,?self.no?*?self.na,?1)?for?x?in?ch)??#?output?conv????????self.inplace?=?inplace??#?use?inplace?ops?(e.g.?slice?assignment)????def?forward(self,?x):????????z?=?[]??#?inference?output????????for?i?in?range(self.nl):????????????x[i]?=?self.m[i](x[i])??#?conv????????????bs,?_,?ny,?nx?=?x[i].shape??#?x(bs,255,20,20)?to?x(bs,3,20,20,85)????????????x[i]?=?x[i].view(bs,?self.na,?self.no,?ny,?nx).permute(0,?1,?3,?4,?2).contiguous()????????????if?not?self.training:??#?inference????????????????if?self.onnx_dynamic?or?self.grid[i].shape[2:4]?!=?x[i].shape[2:4]:????????????????????#?向前傳播時需要將相對坐標轉換到grid絕對坐標系中????????????????????self.grid[i],?self.anchor_grid[i]?=?self._make_grid(nx,?ny,?i)????????????????y?=?x[i].sigmoid()????????????????if?self.inplace:????????????????????y[...,?0:2]?=?(y[...,?0:2]?*?2?+?self.grid[i])?*?self.stride[i]??#?xy????????????????????y[...,?2:4]?=?(y[...,?2:4]?*?2)?**?2?*?self.anchor_grid[i]??#?wh????????????????else:??#?for?YOLOv5?on?AWS?Inferentia?https://github.com/ultralytics/yolov5/pull/2953????????????????????xy,?wh,?conf?=?y.split((2,?2,?self.nc?+?1),?4)??#?y.tensor_split((2,?4,?5),?4)??????????????????????xy?=?(xy?*?2?+?self.grid[i])?*?self.stride[i]??#?xy????????????????????wh?=?(wh?*?2)?**?2?*?self.anchor_grid[i]??#?wh????????????????????y?=?flow.cat((xy,?wh,?conf),?4)????????????????z.append(y.view(bs,?-1,?self.no))????????return?x?if?self.training?else?(flow.cat(z,?1),)?if?self.export?else?(flow.cat(z,?1),?x)????????#?相對坐標轉換到grid絕對坐標系????def?_make_grid(self,?nx=20,?ny=20,?i=0):????????d?=?self.anchors[i].device????????t?=?self.anchors[i].dtype????????shape?=?1,?self.na,?ny,?nx,?2??#?grid?shape????????y,?x?=?flow.arange(ny,?device=d,?dtype=t),?flow.arange(nx,?device=d,?dtype=t)???????????????yv,?xv?=?flow.meshgrid(y,?x,?indexing="ij")????????grid?=?flow.stack((xv,?yv),?2).expand(shape)?-?0.5??#?add?grid?offset,?i.e.?y?=?2.0?*?x?-?0.5????????anchor_grid?=?(self.anchors[i]?*?self.stride[i]).view((1,?self.na,?1,?1,?2)).expand(shape)????????return?grid,?anchor_grid

10

附件

表2.1 yolov5s.yaml解析表

(https://github.com/Oneflow-Inc/one-yolov5/blob/main/models/yolov5s.yaml)

層數(shù)formmouduleargumentsinputoutput
0-1Conv[3, 32, 6, 2, 2][3, 640, 640][32, 320, 320]
1-1Conv[32, 64, 3, 2][32, 320, 320][64, 160, 160]
2-1C3[64, 64, 1][64, 160, 160][64, 160, 160]
3-1Conv[64, 128, 3, 2][64, 160, 160][128, 80, 80]
4-1C3[128, 128, 2][128, 80, 80][128, 80, 80]
5-1Conv[128, 256, 3, 2][128, 80, 80][256, 40, 40]
6-1C3[256, 256, 3][256, 40, 40][256, 40, 40]
7-1Conv[256, 512, 3, 2][256, 40, 40][512, 20, 20]
8-1C3[512, 512, 1][512, 20, 20][512, 20, 20]
9-1SPPF[512, 512, 5][512, 20, 20][512, 20, 20]
10-1Conv[512, 256, 1, 1][512, 20, 20][256, 20, 20]
11-1Upsample[None, 2, "nearest"][256, 20, 20][256, 40, 40]
12[-1, 6]Concat[1][1, 256, 40, 40],[1, 256, 40, 40][512, 40, 40]
13-1C3[512, 256, 1, False][512, 40, 40][256, 40, 40]
14-1Conv[256, 128, 1, 1][256, 40, 40][128, 40, 40]
15-1Upsample[None, 2, "nearest"][128, 40, 40][128, 80, 80]
16[-1, 4]Concat[1][1, 128, 80, 80],[1, 128, 80, 80][256, 80, 80]
17-1C3[256, 128, 1, False][256, 80, 80][128, 80, 80]
18-1Conv[128, 128, 3, 2][128, 80, 80][128, 40, 40]
19[-1, 14]Concat[1][1, 128, 40, 40],[1, 128, 40, 40][256, 40, 40]
20-1C3[256, 256, 1, False][256, 40, 40][256, 40, 40]
21-1Conv[256, 256, 3, 2][256, 40, 40][256, 20, 20]
22[-1, 10]Concat[1][1, 256, 20, 20],[1, 256, 20, 20][512, 20, 20]
23-1C3[512, 512, 1, False][512, 20, 20][512, 20, 20]
24[17, 20, 23]Detect[80, [[10, 13, 16, 30, 33, 23], [30, 61, 62, 45, 59, 119], [116, 90, 156, 198, 373, 326]], [128, 256, 512]][1, 128, 80, 80],[1, 256, 40, 40],[1, 512, 20, 20][1, 3, 80, 80, 85],[1, 3, 40, 40, 85],[1, 3, 20, 20, 85]

11

參考文章

https://zhuanlan.zhihu.com/p/436891962?ivk_sa=1025922q

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

https://www.it610.com/article/1550621248474648576.htm

其他人都在看

OneFlow-ONNX v0.6.0正式發(fā)布

下載量突破10億,MinIO的開源啟示錄

關于ChatGPT的一切;CUDA入門之矩陣乘

李白:你的模型權重很不錯,可惜被我沒收了

單RTX3090訓練YOLOv5s,時間減少11個小時

比快更快,開源Stable Diffusion刷新作圖速度

OneEmbedding:單卡訓練TB級推薦模型不是夢

歡迎Star、試用OneFlow最新版本:GitHub - Oneflow-Inc/oneflow: OneFlow is a deep learning framework designed to be user-friendly, scalable and efficient.OneFlow is a deep learning framework designed to be user-friendly, scalable and efficient. - GitHub - Oneflow-Inc/oneflow: OneFlow is a deep learning framework designed to be user-friendly, scalable and efficient.https://github.com/Oneflow-Inc/oneflow/

關鍵詞: 網(wǎng)絡結構

欧美情色大片在线观看| 亚洲乱码精品中文字幕| 综合久久国产中文人妻少妇在线| 国产免费三级三级三级| 国产精品亚洲在线播放| 国产精品乱码在线观看| 你在线上av中文字幕| 久久久精品久久久久久69| av一区中文字幕在线| 久久久精品久久久99| 韩国三级一区二区在线观看| 超碰97在线视频观看| 黄色十八禁精品无遮挡| 人妻一区二区免费播放| 最新中文字幕av大全| 国产在线观看青青草视频| 神马不卡午夜在线观看| 国产精品特级露脸AV毛片| 国产一区二区成人av| 欧美 自拍 丝袜 人妻| 天海翼一区二区三区免费| 成年网站在线视频免费| xxx日韩欧美黄色a| 99re这里只有精品在线| 福利国产在线观看永久免费| 成人黄色免费观看网址| 最新中文在线乱码av| 欧美日韩乱码视频在线免费观看| 国产免费九九久久精品a级| 人妻中出中文字幕在线| 国产亚洲欧美日韩三级| 黄色av网站手机在线播放| 青青草原免费体验视频| 乱文丝袜乱文丝袜美腿视频| 青青草原精品免费在线视频| jizz视频在线观看| 欧美特级特黄a大片免费| 日韩中文字幕人妻诱惑| 天海翼一区二区三区免费| 欧美性色黄大片人与善| 国产丝袜另类精品综合| 欧美日韩一区二区三区性| 性感丝袜短裙美女啪啪啪| 中文字幕综合av一区二区三区| 国产成人乱色视频网站| 美女黄a视频大全在线免费观看| 成人国产精品av在线| 97人妻免费公开视频| 黄色av网站手机在线播放| 青青在线观看国产免费视频| av在线男人社区日韩| 欧美日韩一区三区不卡在线| 高跟丝袜诱惑后入av| 免费av在线网站中文字幕| 99久久无码精品区二区毛片| 国产小视频在线观看你懂得| 中文字幕人妻A片免费看| 免费成人三级在线观看| av在线中文字幕播放| 能效等级一级二级三级| 日韩一区二区三区人妻| 欧美久久久久久久久久久久久| 轻轻插青青草视频在线播放| 男人和女人逼逼的视频| 免费激情视频在线观看| 人妻一区二区免费播放| 精品国产久久三级av| 大阴茎疯狂抽插美女视频播放| 亚洲在线视频中文字幕| 抽搐高潮痉挛白浆无码av| 亚洲中文字幕一区二区三区av | 国产亚洲精品线视频在线| 国产精品一二av在线| 国产自拍av在线观看| 久久久久这里只出精品| 中文字幕在线视频亚洲| 伊人丝袜人妻中文字幕| 最新中文字幕av网站| 亚洲黄色av中文字幕| 欧美高潮呻吟久久av无| 91自拍免费在线视频| 欧美一区2区三区在线播放| 成人av综合网中文字幕| 日韩美女美女黄色黄色片| 国产福利在线播放视频| 在线观看黄色播放网站| 亚洲美女乱1区2区3区| 亚洲人妻av一区二区| 黄色免费网址在线播放| 一区二区三区在线网址| 国产乱人视频免费观看| 少妇极品一区二区三区| 97超碰人妻福利在线| 亚洲av成人噜噜网站| 熟女阿av一区二区三| 男人女人40分钟视频| 久久香蕉国产熟女线看| 国产精品一级二级三级四级| 日韩人妻少妇二三四区| 日韩精品中文字幕人妻| 亚洲乱熟女一区二区三区com| 99久久精品婷婷久久久久久| 欧美精品免费在线播放| 最新在线一区二区三区| 亚洲自拍偷拍 欧美激情| 人妻一区二区免费播放| 亚洲区域一区二区三区| 激情av一区av二区| 久久亚洲国产精品成人| av一区中文字幕在线| av在线中文字幕资源网| 韩国三级一区二区在线观看 | 久久久久久4久久久8| 狠狠久久亚洲美洲专区| 欧美成人性做爰77777| 青青免费在线播放av| 亚洲一区二区三区成人在线| 国产成人免费在线观看av| 2023国产精品自拍视频| 免费观看国产精品黄色| 国产精品久久久久久96| 精品国产99国产精品亚洲| 欧美日韩激情午夜看片| 亚洲三级黄色在线观看| 一区二区三区蜜桃在线观看| 国产亲乱的性视频网站| 亚洲精品 乱码久久久久久| 91国产自拍在线视频| 久久久精品久久久99| 中国黄色靠逼大片大黑逼| 国产精品美女自在线观看免费| 亚洲天堂中文av网站| 白乳房天天官网性插视频| 亚洲午夜av久久久精品| 欧美一区二区三区99| 国产一级视频在线观看免费| 人妻久久一区二区三区精品99| 国内揄拍国内精品人妻迷| 97超碰人妻福利在线| 黄色网页在线免费观看| 亚洲av色在线观看国产| 自拍偷拍色亚洲欧美色| av中文在线中文av| 中文乱码在线观看视频| 三级国产精品久久久99| 99久久国产综合精品五月天| 国产麻豆精品福利在线观看| 中文字幕在线乱码观看| 亚洲精品自产拍在线观看动漫| 国产免费无码午夜福利蜜臀| 在线成人免费观看视频网址| 黄色传媒在线免费观看| 国外成人免费激情在线视频| 亚洲综合色区另类av| 国产成人亚洲综合av| 草草视频免费在线观看| 亚洲中文字幕一区二区三区av| 午夜精彩视频网站免费观看| 大象焦伊人久久综合网色视| 国产精品成人中文字幕| 青青草久久久久综合精品| 亚洲综合国产乱码成人| 欧美 自拍 丝袜 人妻| 91国产自拍在线视频| 国产熟女熟妇一区二区三区av| 熟女一区二区三区播放| 免费成人三级在线观看| 91精品久久久久久久久| 污污污黄视频免费观看| 免费一级av高潮喷水片特| 人妻av蜜臀一区二不卡| 中文字幕日本在线观看视频| 久久人妻日韩一二三区| 免费人成在线观看视频高潮| 久久99久久精品免观看吃奶 | 国产精品99久久啊免费黑人| 久久精品女人av一区二区| 人妻熟女一区二区91| 国产哟av精品色哟哟| 欧美一区久久人妻中文字幕| 国产三区四区在线视频| 国产aV无码片毛片一级韩国 | 日韩熟女中文字幕一区| 日韩综合在线超乳人妻一区| 5060午夜看片免费| 国产草草视频在线观看| 亚洲中文字幕乱码免费播放| 99视频精品视频观看| 精品日本一区二区三区四区| 专想操B的猛男操骚妇B| 免费一级av高潮喷水片特| 亚洲精品中文字幕午夜| 蜜臀成人av在线观看| 成人在线视频免费播放| 成人黄色免费在线网站| 97精品日韩在线视频| 国内精品人妻久久激情| 好吊色欧美一区二区三区四区 | 人妻精品在线观看视频| 欧美在线视频午夜精品| 亚洲精品中文字幕午夜| 国外成人免费激情在线视频| 国产自拍视频在线免费| 国产熟妇一区二区三区四区| 伊人网av中文字幕精品在线| 久久精品国产高潮av| 免费女女同黄毛片av网站| 91人妻精品一区二区三区不| av人妻一区二区三区| 国产偷拍自拍熟女视频| 色94色一区二区三区| 国产免费av国片精品| 中文字幕在线亚洲视频| 丝袜制服诱惑人妻av| 亚洲乱熟女一区二区三区com| 精品无人区麻豆乱码久久久| 精品人妻av在线观看| 试婚99天视频免费完整版观看| 久久亚洲一区二区夜夜嗨 | 日韩中文字幕人妻一区| 色偷偷av一区二区三区| 在线播放亚洲一级特黄片| 精品无人区一区二区三区av| 色偷偷av一区二区三区| 大鸡巴操小嫩逼免费全裸| 人妻一区二区三区精品免费| 国产免费九九久久精品a级| 制服 丝袜 欧美 国产精品| 中文字幕人妻丝袜成熟乱三区| 成年人黄视频免费观看网站| 亚洲成人日韩免费在线播放| 亚洲国产一区二区久久| 国产乱码伦人偷精品视频| 亚洲乱女色熟一区二区三区| 日韩欧美国产精品综合| 欧美成人动漫在线观看| 一边吃扎一边插逼逼视频| 午夜免费在线观看小视频| av黄色资源中文字幕| 国内欧美一区一区三区| 免费一级av高潮喷水片特| 99九九99久久精品| 超碰97在线视频观看| 久久香蕉亚洲欧美av精品| 久久亚洲精品色噜噜狠狠| 成人在线播放亚洲一区| 国产精品丝袜制服在线| 亚洲乱码精品中文字幕| 久久91丨国产人妻熟女| 白白色发布在线播放国产| 美女自拍偷拍亚洲一区| 在线观看的资源网97| 一级一看免费完整版毛片| 午夜精品福利一区二区蜜股av | 欧美一区二区三区中文字幕| 韩国三级一区二区在线观看| 国产 剧情 在线 精品| 亚洲欧美综合国产精品一| 欧美日韩在线精品激情| 国产精品国产三级国产普通话一| 日韩成人av在线二区| 外国大片在线免费观看| 国产伦理小视频在线观看| 国产成人黄色精品视频| 美女自拍偷拍亚洲一区| 亚洲 中文 字幕 人妻| av大全一区二区三区| 中文字幕乱码人妻久久精品| 国产日韩精品在线欧美| 日韩综合在线超乳人妻一区| 蜜桃臀美女福利xxoo| 人妻互换精品一区二区| 亚洲国产免费视频网站| 青青成人免费在线视频| 国产sese在线播放| 免费人成在线观看视频高潮 | 在线观看资源青青国产视频| 中文字幕在线视频首页| 男人插女人逼有声视频| 亚洲综合国产乱码成人 | 亚洲综合图片一区二区三区 | 在线播放亚洲一级特黄片| 黄色免费网址在线播放| 91黄页网站在线观看| 中文字幕乱码中文字幕| 91人人妻人人做人人爱| 噜噜av在线免费观看| 高颜值美女视频在线观看| 国产AV躁一二三区免费播放| 成人啪精品视频网站午夜| 蜜桃臀美女福利xxoo| 国产成人av在线精品| 国产性感美女在线免费观看| 午夜秋霞在线免费观看| 久久久久这里只出精品| 熟女人妻专区中文字幕| 精色av中文字幕在线| 无码国模大尺度自拍视频在线看| 午夜精品久久久在线观看| 国产亚洲av久久精品| 国产成人av在线精品| 翔田千里精品久久一区二| 国产 丝袜 欧美中文 另类| 97视频在线观看免费播放| 久久99只有这里有精品| 99人妻精品一区二区三区| 人妻中出中文字幕在线| 国产免费综合视频在线观看| 欧美一级内射视频在线播放| 久久久久久久久久久亚洲| 欧美一区二区在线观看网站| 国产性感美女在线免费观看| 男女av一区二区三区| 最新中文字幕av大全| 青青河边草观看完整版高清| 国产免费在线视频观看| 自拍人妻欧美亚洲第三| 久久久久这里只出精品| 日韩av三级在线网站| 亚洲熟女一区二区三区观看| 超级碰碰在线视频国产| 亚洲视频国产精品你懂得| av激情韩国在线播放| 久久99久久精品免观看吃奶| 亚洲 一区 二区三区| 一区二区三区国产欧美| 国产精品久久久久久av色| 国产精品永久免费自在线观看| 草草视频免费在线观看| 九九久久99最新精品| 国产视频免费在线播放| 欧美成人网另类套图超市| 欧洲一区二区三区在线播放 | 成人在线播放亚洲一区| 亚洲丝袜av在线观看| 99久久精品婷婷久久久久久| 午夜秘密播放器在线观看视频 | 人妻精品在线观看视频| 青青青国产免费观看视频| 直接免费观看黄色的网站| 国产aV无码片毛片一级韩国| 国产精品久久久久精品| 97国产视频在线免费观看| 国产99在线视频免费| 91超碰在线免费视频| av在线一区二区三区不卡| 久久久精品久久久99| 免费国产草莓视频在线观看黄 | 91成人资源在线观看| 国产精品久久久久久av色| 青青视频在线观看播放观看| 亚洲成人制服丝袜av| 国产精品成人中文字幕| 成人夜间视频免费在线观看| 人妻一区二区在线免费播放| 精品人妻少妇av一区二区| 亚洲国产精品黑丝美女| 欧美激情1区2区3区4区| 久久久久久噜噜噜久久久精品| 久久亚洲一区二区夜夜嗨 | 国产av自拍资源网址| 24小时在线免费观看高清视频 | 性感美女肉色丝袜诱惑| 精品视频在线观看91| av天堂午夜精品蜜臀| 自拍偷自拍亚洲精品10p| 大象焦伊人久久综合网色视| 97久久久久久久久久久| 青青青草原成人在线视频| 国产日产欧产精品精乱了派| 国产又粗又黄在线播放| 超碰人妻免费一区二区| 午夜精品182视频国产| 在线免费观看青青草av| 噜噜av在线免费观看| 精品国产三级av在线| 国产一级视频在线观看免费| 国产人妻一区二区免费播放| 激情av一区av二区| 欧美激情1区2区3区4区| 国产精品每日更新av| 亚洲中文字幕乱码免费播放| 能效等级一级二级三级 | 蜜桃av精品视频一区二区三区| 欧美情色大片在线观看| 97在线视频中文字幕| 成人免费av网址在线观看| 在线欧美三级在线高清观| 美女伸开双腿让男人桶视频| 欧美情色一区二区三区| 国产a久久观看免费视频| 国产高清在线免费观看不卡av| 国产 中文字幕 乱码 在线| 成人免费视频免费在线观看| 97超碰超碰在线观看| 亚洲熟女区一区二区三| 在线成人av一区二区| 91色乱码一区二区三| 成人黄动漫在线观看网站| 久久黃色特三片視頻視頻視視頻| 亚洲乱码精品中文字幕| 熟女少妇久久中文字幕| 婷婷色综合一区二区久久久| 欧洲一区二区三区在线播放| 成人黄色av免费网站| 国产中文精品久高清在线不| 丁香婷婷久久久久成人天堂国产| 超caopor在线公开视频| 五十路熟女人妻在线网观看| 香蕉免费一区二区三区在线观看| 亚洲精品专区一区二区| 亚洲综合色区另类av| 欧美生活一区二区三区| 在线成人免费观看视频网址| 老熟女 一区二区三区| 人妻中出中文字幕在线| 国产自拍视频在线免费| 内射中文字幕在线观看| 岛国av久热中文字幕| xxx日韩欧美黄色a| 国产人妻一区二区免费播放| 国产av 一区二区三区四区| 国产精品一区二区精品视频| 国内一区二区三区视频在线播放 | 日韩中文字幕在线av| 24小时在线免费观看高清视频| 国产精品99久久啊免费黑人| 欧美青青一区二区三区| 精品久久久人妻中文字幕| 老熟女 一区二区三区| 国产精品精品久久久18| 国产精品久久久久久96| 国产一区二区在线观播放| 日本一区二区三级在线观看| 黑丝美女的骚逼尖叫高潮声| 大奶少妇白虎高潮流视频| 亚洲欧美一级久久精品| 五十路熟女人妻在线网观看 | 久久亚洲一区二区夜夜嗨| 亚洲欧美精品丝袜中文字幕| 欧美日韩在线精品激情| 黑人黄色特级猛男人男人区| 亚洲激情av一区二区三区| 人妻少妇精品一区二区| 撒玛利亚女孩在线观看免费全集| 国内精品伊人久久久久av| 人妻在卧室被老板疯狂进入| 欧洲乱码在线观看视频| 亚洲熟女久久一区二区| 欧美日韩精品欧美日韩| 亚洲欧洲自拍拍偷第二页| 91国产自拍在线播放| xxx日韩欧美黄色a| 国产精品久久久久久码| 国产福利精品久久av| 免费a站网址在线观看| 成人国产麻豆一区二区| 国产高清免费不卡av| 99久久麻豆99久久免费| 欧美日韩精品欧美日韩| 亚洲综合色在线一区二区| 快速播放国产精品视频| 正在播放99精品视频在线播放 | 精品日韩欧美人妻系列| 最新中文字幕av大全| 青青草原国产在线免费观看| 成人极品av免费观看| 亚洲一区二区三区桃乃木香奈| 亚洲在线欧美一区二区三区| 久久福利视频在线播放| 大香视频依人在线中文字幕| 亚洲一区在线人妻视频| 国产又粗又长又黄又大的视频| 91精品国产人妻国产在线| 超碰97国产在线免费观看| 丝袜熟女av一区二区三区| av黄色资源中文字幕| 欧美一区二区三区四区在线观看| 亚洲精品自产拍在线观看动漫| 中文字慕人妻一区二区在线视频| 午夜性生大片免费在线观看| 日韩精品人妻av中文字幕| 国产欧美精选自拍视频| 久久精品视频在线看24| 国产精品中文av在线播放| 久久综合中文字幕日韩精品| 成人黄动漫在线观看网站| 亚洲真人丝袜av一区二区| 亚洲成人av区一区二区三区四| 日韩在线不卡一区在线观看| 亚洲 欧美 日韩成人| 色婷婷一区二区三区四区在线| 日本一卡视频在线观看免费| 少妇的诱惑免费观看完整版中文| 久久久久精品久久久久久| 欧美在线免费在线视频| 尤物欧美一区二区三区| 最新免费av在线观看| 黄色传媒在线免费观看| 成人在线观看免费视频播放| av在线观看亚洲中文| 国产美女扒开粉嫩尿口网站| 在线人妻av播放观看| 在线观看国产视频播放| 白浆熟女精品国产91| 国产传媒一区二区三区四区五区| av中文字幕官网天堂| 日韩欧美久久一区二区| 1024日韩人妻区二区| 国产黄色片三级三级三级| 亚洲综合色区另类av| 国产亚洲欧美日韩精品| 国产欧美亚洲日本网站| 亚洲欧美综合国产精品一| 成人黄动漫在线观看网站| 欧美在线1区2区3区| 日韩中文字幕人妻诱惑| 久久99亚洲精品久久频| 日本青草视频在线观看| 欧美成人天天综合在线视色| 欧美日韩久久综合一区二区| 国内欧美一区一区三区| 蜜臀成人av在线观看| 2023国产精品自拍视频| 亚洲一区在线人妻视频| 六年级小女生光滑的小嫩逼| 国产精品色图在线观看| 亚洲一区在线人妻视频| 亚洲精品中文字幕一二| 轻轻插青青草视频在线播放| 成年av网站18不禁| 黄色免费网址在线播放| 曰本在线精品一区二区三区| 国产精品精品免费视频| 97国产视频在线观看| 国产福利精品久久av| 蜜臀成人av在线观看| 国产国拍成人精品视频| 黄色av网站手机在线播放| 国产精品高潮呻吟在线观看| 国产情侣免费观看视频| 欧美在线观看亚洲精品| 草草视频免费在线观看| 久久久久人妻一区精品在线观看| 午夜激情免费视频成人| 国产在线观看青青草视频| 国内精品视频免费播放| 国产免费黄色av 网站| 亚洲精品乱码久久久久久久久| 亚洲无av在线中文字幕男男| 在线观看午夜看亚太视频| 欧美日韩国产三级在线| 人妻一区二区在线免费播放| 蚂蚁三级成人av在线| 丰满熟女一区二区三区在线播放| 夜夜骚av一区二区三区啊| 久久久久99精品成人| 成人午夜精品一区二区三区| 欧美特级特黄a大片免费| 成人24小时免费视频| 精品久久久人妻中文字幕| 国产AV躁一二三区免费播放| 在线观看午夜看亚太视频| 在线国产视频精品视频| 黄色av网站 亚洲精品| 欧美日韩精品成人在线| 欧美午夜理论在线观看| 超污短视频网站在线观看| 亚洲av丝袜诱惑在线| 国产情侣免费观看视频| 成人av在线av在线| 日本免费一区二区三区中文字幕| 超碰在线最新地址97| 国产欧美一区二区精品性| 国产三级欧美系列日韩系列| 91丨九色丨韩国人妖| 中文字幕在线亚洲视频| 91成人精品亚洲国产| 亚洲综合国产一区二区三区| 国产精品髙潮呻吟久久av| 亚洲欧美另类视频一区蜜臀| 二区三区免费在线观看| 污污污黄视频免费观看| 亚洲自拍偷拍 欧美激情| 久久婷婷香蕉国产精品| 黄色免费网址在线播放| 美女网站免费非常非常黄的| 99精品人妻一区二区三蜜桃| 国产黄色片久久久久久久| 制服丝袜 日韩 国产| 久久久99人妻一区二区三区| 国产精品中文字幕av在线| 久久激情四射视频一区| 欧美女奴靠bb唆大鸡巴群交| 成人黄色免费观看网址| 爆乳美女粉嫩阴蒂被插视频| 日韩中文字幕在线av| 一区二区三区国产欧美| 久久夜色精品国产亚洲av老牛| 亚洲一区美腿丝袜在线播放| 熟女人妻中文字幕在线看| 在线观看不卡一区二区三区| 日韩丝袜诱惑网站大全| 成年人黄视频免费观看网站| 国产精品亚洲在线播放| 青草青青青青青青操死你| 午夜草草视频在线观看| 免费精品国偷自产在线洗澡| 国产成人不卡在线视频| 六年级小女生光滑的小嫩逼| av黄色资源中文字幕| 丰满人妻视频一区二区| 五十路熟女人妻在线网观看 | 亚洲真人丝袜av一区二区| 大阴茎疯狂抽插美女视频播放| 久久久久人妻一区精品在线观看| 午夜免费在线观看小视频| 国产精品网站调教美女| 国产 丝袜 欧美中文 另类| 欧美一区久久人妻中文字幕| 亚洲欧美一区二区三区黑人| av资源在线中文天堂| 国产精品露脸对白播放| 美女国产高潮福利片在线看| 久久久精品久久久久久69| 中文字幕在线乱码观看| 黄黄的小视频免费在线播放| 青青草原国产视频在线观看| 直接免费观看黄色的网站 | av中文字幕一二三四| 久久久99人妻一区二区三区| 精品熟女一区二区三区免费视频 | 青青青青免费观看视频| 青娱乐成人免费公开视频| 黄视频网站免费观看视频| 人妻在卧室被老板疯狂进入| 精色av中文字幕在线| 99久久国产综合精品五月天| 97超碰人妻福利在线| xxx日韩欧美黄色a| 国产无码精品久久久久久久| 国产欧美日韩精品一区二区三区| 欧美不卡一区二区三区视频| 欧美国产中文一区二区三区| 欧美一区二区免费在线观看| 高颜值美女视频在线观看| 激情五月婷亚洲蜜臀av| 久久亚洲精品色噜噜狠狠| 免费国产草莓视频在线观看黄| 国内偷拍中文字幕蜜臀| 欧美性少妇一区二区三区| 久久久久久久久久久亚洲| 久亚洲国产精品蜜臀尤物| 久久精品国产亚洲av热黑人| 国产成人免费a在线资源| 欧美激情1区2区3区4区| 色综合久久88色综合天| 国产视频午夜在线播放| av黄色资源中文字幕| 性做久久久久久久毛片| 日韩av一区二区三区四| 久久香蕉国产熟女线看| 中文字幕日韩在线久久| 在线人妻av播放观看| 轻轻插青青草视频在线播放| 中文字幕乱码日韩在线观看| 韩国三级一区二区在线观看| 激情视频 超黄 在线免费| 掰开我的大黑逼快来操我| 香蕉免费一区二区三区在线观看| 在线国产视频精品视频| 久久久久久久久99密月| 国产一级黄色性生活片| 日本美女丝袜天天看人体| 久久热视频在线免费观看| 91精品久久久久久久久| 久久久久久精品久久久久久| 1024日韩人妻区二区| 国产福利在线播放视频| 亚洲三级一区二区三区四区| 麻豆av国语对白麻豆| 成人精品国产一级二级| 97超碰人妻在线观看| 国产老人一区av二三区| 69久久久久久人妻白浆| 国产女老师的诱惑在线播放观看 | 精久久中文字幕人妻最新| 色婷婷综合精品久久久| 99er在线免费视频| 人妻在线免费观看二区| 国产性感美女在线免费观看 | 国产自拍av在线观看| 欧美日韩三级在线观看| 超碰97在线视频观看| 成人h色视频在线观看| 色婷婷综合精品久久久| 国产精彩自拍视频在线观看| 亚洲在线视频中文字幕| 日韩精品乱码av在线播放| 日韩av中文在线免费观看| 免费在线观看亚州av| 国产高清在线免费观看不卡av| 99精品人妻一区二区三蜜桃| 日本青草视频在线观看| 青草视频在线观看亚洲| 国产精品自拍首页视频| 日韩 制服 丝袜 中文| 永久免费在线观看视频网站| 成人黄色在线免费播放| 久久99只有这里有精品| 男生把小鸡鸡插到大美女的屁股| 亚洲一级av对白刺激| 国产高清在线免费观看不卡av| av天堂午夜精品蜜臀| 国产一级黄色性生活片| 97成人在线视频免费观看| 人人妻人人做人人妻av| 一区二区三区蜜桃在线观看| 精品99在线免费视频| 中文字幕乱码亚洲三区| 一边吃扎一边插逼逼视频| 蜜臀久久99精品久久宅男| 亚洲熟妇色自偷自拍另类图片| 性感美女一区二区三区| 久久国产麻豆免费播放| 我的女人呻吟噢噢噢哦哦哦哦| 日韩av三级在线网站| 亚洲综合国产一区二区三区| 99精品人妻一区二区三蜜桃| 国产成人精品欧美日韩网站| 五十路熟女人妻在线网观看| 欧美国产中文一区二区三区| 94精品视频在线播放| 国产成人av午夜精品免费| 国产午夜精品自拍视频| 亚洲成人av区一区二区三区四| av中文字幕人妻丝袜| 直接免费观看黄色的网站| 成人免费在线视频亚洲| 521a成v精品视频在线播放| 绝美人妻一区二区在线观看| 国产精品丝袜熟女一二三| 久久久久久久亚洲综合| 国产性一交一乱―色―情人| 久久精品国产v日韩v亚洲| 日韩欧美人妻激情一区| 成人av无码区二区三区| 人妻丰满熟妇久久久久| 青青艹视频在线免费观看| 午夜精品182视频国产| 青青青草青在线视频免费观看了| 91福利国产成人精品播放| 亚洲福利视频免费播放| 色一情一区二区三区精品| 亚洲中文字幕日韩av| 黄色mv在线免费观看| 国产不卡亚洲免费av| 九九久久99最新精品| 日韩 国产 欧美 在线 一区| 精品久久久中文字幕人妻| 超碰人人爱人人爽人人av| 国产精品久久久久九九九九| 97人妻免费在线视频| 香蕉免费一区二区三区在线观看| 丝袜美腿在线观看一区| 国产精品露脸对白播放| 成人永久免费激情视频在线 | 中文字幕乱码亚洲三区| 最新欧美69堂在线视频| 亚洲av成人噜噜网站| 成人24小时免费视频| 91色乱码一区二区三| 熟妇人妻av一区二区三| 日韩欧美国产精品综合| 久久久久99精品成人| 亚洲国产精品免费线观看视频| 小美女操老头和动物操逼| 伊人网av中文字幕精品在线| 国产精久久久久久一区二区三区| 国产日韩亚洲精品av| 熟妇久久久人妻中文字幕| 久久久久久久九九九b热| 亚洲av专区在线观看国产| 国产午夜高潮熟女精品| 成人刺激视频免费观看| 性感丝袜美女写真视频| 欧美激情一区二区三区成人| 亚洲国产成人精品久久久久| 中文字幕精品乱码久久久久| 精品视频在线观看91| 亚洲国产99精品国自产| 亚洲乱码国产一区二区| 青青青青在线播放视频| 美女胸18下看禁止免费视频| 亚洲欧洲日产日韩激情| 黑人黄色特级猛男人男人区| 91公开在线免费视频| 中文乱码在线观看视频| 久久久久人妻一区精品在线观看| 91亚洲精品久久久久蜜桃| 91最新国产在线播放| 超碰97国产在线免费观看| 青青草原网址在线观看| 69人妻精品久久久久88| 国内一区二区三区视频在线播放| 老熟女老熟妇一区二区| 青青青青免费观看视频| av黄色资源中文字幕| 青青青色视频在线观看| 亚洲av日韩精品久久| 可以看手机在线黄色视频网| 人妻中文字幕永久在线| 激情福利视频在线观看| 综合人妻一区二区三区| 91丨九色丨韩国人妖| 青娱乐 青青青操 天天日| 91最新黄色免费网站| 欧美国产日韩另类系列| 国产亚洲欧美日韩三级| 久久天天躁狠狠躁夜夜av| 一区二区在线播放三区| 欧洲美女一区二区三区| 日日摸夜夜添夜夜添破第一次| 青青草原网址在线观看| 亚洲国产日韩精品欧美| 911精品在线免费观看| 亚洲一区二区在线视频播放| 2023国产精品自拍视频| 国产真实乱子伦清晰对白| 欧美久久久久久久久久久久久| 日韩激情中文字幕在线| 饥渴少妇高潮露脸嗷嗷叫| 成人激情自拍图片视频| 综合人妻一区二区三区| 久久综合久久狠狠综合| 久久人人爽人人爽人人片669| 亚洲人妻一区二区91| 白乳房天天官网性插视频| 白乳房天天官网性插视频| 国产精彩自拍视频在线观看| 日本伦理色呦呦在线观看| 鸿观全集在线观看视频| 国产综合日韩精品欧美| 亚洲一区二区在线视频播放 | 色老久久精品偷偷鲁一区| 男生把小鸡鸡插到大美女的屁股| 亚洲乱码在线免费观看| 2023国产精品自拍视频| 国产成年免费观看视频| 欧美日韩一区 二区 三区| 国产精品一级二级盗摄羞羞| 精色av中文字幕在线| 日韩不卡毛片午夜在线看片?| 激情福利视频在线观看| 自拍亚洲一区欧美另类| 日韩一区二区人妻9999| 日本一区二区三区人妻| 老师美女脱了内裤露屁股| 国产精品露脸自拍av| 国产福利精品久久av| 国产羞羞黄色av网站| 夜夜骚av一区二区三区啊| 又色又爽又黄又视频毛片| 成人国产一区二区在线| 性感丝袜短裙美女啪啪啪| 欧洲一区二区三区在线播放 | 国产理论亚洲天堂av| av资源中文在线天堂播放| 明日花绮罗人妻大乳av| 男人插女人逼免费视频| 久久婷婷亚洲国产综合蜜臀| 男人女人40分钟视频| 国产成人乱码一区二区三区在线| 24小时在线播放免费观看| 黄色av在线免费播放| 国产 剧情 在线 精品| 久久久久久精品久久久久久| 中文字幕免费av在线| 91国产激情视频在线观看| 国产精品久久人妻互换| 久久一区二区三区av| 97久久久久久久久久久| 自拍偷拍亚洲综合在线| av在线观看亚洲中文| 69人妻精品久久久久88| 超视在线免费观看视频| 国产性一交一乱―色―情人| 国产精品一区二区精品视频| av在线男人社区日韩| 青青青青娱乐在线观看| 波多野吉衣久久久久久| 久久人妻一区二区精选| 亚洲欧美综合国产精品一| 国产精品入口蜜臀人妻| 伊人丝袜人妻中文字幕| 久久婷婷色香五月综合激激情| 国产av中文字幕乱码| 日韩美女美女黄色黄色片| 日本丝袜美腿在线观看| 男人天堂中文字幕av| 久久激情四射视频一区| 最新免费av在线观看| 国产乱人视频免费观看| 好吊色欧美一区二区三区四区| 欧美黄色一级一区二区三区| 色av色婷婷91人妻久久久| 亚洲精品国产精品乱码不卡| 中文字幕在线日韩第一精品| 日本欧美一区二区视频| 国产哟av精品色哟哟| 91成人精品亚洲国产| 久草视频这里只有精品| 欧美一区2区三区在线播放| 久久人妻日韩一二三区| 大阴茎疯狂抽插美女视频播放| 日韩丝袜诱惑网站大全| 婷婷月色一区二区三区| 中国黄色靠逼大片大黑逼| 国产麻豆精品在线视频| 人妻少妇亚洲自拍av| 日韩人妻久久中文字幕| 国产精品成人自拍视频| 亚洲熟女久久一区二区| 国产乱精品一区二区视频了 | 黄色av网站手机在线播放| 国内精品视频免费播放| 91在线国产视频播放| 欧美一区二区三区中文字幕| 成人激情自拍图片视频| 国产自拍偷拍在线免费| 国产美女学生在线观看| 79久久久久久久久久| 精品国产久久三级av| 啊哈怎么被那么多男生操| 中文字幕乱码激情av| 成人夜间视频免费在线观看| 中文字幕乱码在线观看| 又色又爽又黄又视频毛片| 美女制服丝袜高跟诱惑| 亚洲av丝袜诱惑在线| 粉嫩av蜜乳av蜜臀av| 亚洲一区二区三区18| 国产av 一区二区三区四区| 国产精品亚洲av二区三| 99久久国产综合精品五月天| 3p少妇欧美一区二区三区| 高潮喷水波多野结衣在线观看| 亚洲午夜精品久久久久久人妖| 美女胸18下看禁止免费视频| 三级国产精品久久久99| 人妻av蜜臀一区二不卡| 嗯疼轻点视频免费观看视频| 三级成人一区二区三区| 中文字幕在线日韩第一精品| 亚洲欧美丝袜美腿 综合| 制服 丝袜 欧美 国产精品| 人妻精品系列一区二区三区| 中文字幕国产av中文| 青青热久免费精品视频| 中文乱码在线观看视频| 人妻巨乳中文字幕亚洲在线| 亚洲一区二区在线看看| 日韩熟女人妻国产av| 成人在线视频播放 亚洲| 自拍 偷拍 亚洲 欧美| 5060午夜看片免费| 国产精品美女自在线观看免费| 美女网站免费非常非常黄的| 国产成人免费a在线资源| 外国大片在线免费观看| 日韩美女美女黄色黄色片| 人妻少妇激情综合小视频| 波多野吉衣久久久久久| 中文字幕乱码人妻久久精品| 亚洲国产精品美女papa| 欧美国产中文一区二区三区| 成人在线观看免费视频播放| 午夜精品福利一区二区蜜股av | 国产 剧情 在线 精品| 亚洲不伦丝袜人妻在线| 久久久久精品久久久久久| 中文字幕人妻免费网站| 真人视频在线免费观看| 噜噜噜色综合久久天天综合| 久久99只有这里有精品| 女人日男人30分钟视频| 亚洲中文字幕乱码免费播放| 国产传媒一区二区三区四区五区| 国产亲乱的性视频网站| 日本视频在线一区二区三区| 国产性一交一乱―色―情人| 亚州精品一区二区@v| 三级成人一区二区三区| 猫咪av成人永久网站网址| 伊人视频在线免费观看| 久久久久久久98亚洲精品| 高颜值美女视频在线观看 | 久久av成人中文字幕| 中文乱码字幕视频观看网站免费| 亚洲综合图片一区二区三区| 日日摸日日碰天天爽歪歪| 国产欧美一区二区精品性| 精品一片二片三片在线| 久久久综合亚洲av家庭乱搞| 最新成人精品视频在线| 亚洲熟女久久一区二区| 国产成人在线视频播放| 免费国产一区二区三区久久久久久| 丝袜熟女av一区二区三区| 精品人妻av在线观看| 免费在线观看亚州av| 亚洲国产99精品国自产| 欧美成人网另类套图超市| 日韩欧美少妇一区二区三区| 精品熟女一区二区三区免费视频 | 国产成人叼嘿视频在线观看| 男人添女人下边视频免费| 国产小视频在线观看你懂得| 麻豆国产成人av在线| 成年av网站18不禁| 免费亚洲一区二区三区| 国产精品一级二级盗摄羞羞| 日本国产一区二区在线观看| 国产精品久久久久久久久91| 最大的黄色亚洲网站在线观看| 国产网红主播在线观看视频| 欧美一区二区三区啪啪另类| 97超碰在线播放视频| 久久久亚洲裙底偷窥综合| 欧美激情一区二区二区| 人妻在卧室被老板疯狂进入| 亚洲 欧美 日韩成人| 国产日韩制服丝袜第一页| 国产精品丝袜久久久久久久久| 97人妻超碰在线免费视频| 成人在线视频播放 亚洲| 日韩不卡毛片午夜在线看片?| 精品国产专区91精品| 色婷婷一区二区三区四区在线| 超污短视频网站在线观看| 中文字幕在线日韩第一精品| 夜精品一区二区无码A片| jizz视频在线观看| 人妻系列av无码专区免费| 国内自拍视频在线观看h| 91自拍免费在线视频| 性做久久久久久久毛片| 两鸡巴日一个骚逼浪的视频| 午夜在线观看视频你懂的| 在线观看国产精品av| 国产aV无码片毛片一级韩国| 95国产成人精品视频| 国产成人不卡在线视频| 最新欧美69堂在线视频| 大香视频依人在线中文字幕| 免费av在线网站中文字幕| 亚洲sm一区二区三区| 久久婷婷亚洲国产综合蜜臀| 91在线精品免费视频| 97人在线看视频在线观看| 欧美网址一区二区三区| 中文字幕人妻A片免费看| 久久婷婷香蕉国产精品| 日本中文字幕乱码免费视频| 亚洲在线欧美一区二区三区| 久久久99人妻一区二区三区| VA乱伦无码视频免费播放| 久久夜色精品国产亚洲av老牛| 熟妇久久久人妻中文字幕| 久久久综合亚洲av家庭乱搞| 亚洲激情av一区二区三区| 99久久久精品免费看国产| 国产日韩精品在线欧美| 成人在线一区二区三区av| 午夜精品福利一区二区蜜股av | 在线中文字幕有码视频| 大鸡巴操小嫩逼免费全裸| 99人妻精品一区二区三区| 青青操新免费观看视频| 国产羞羞黄色av网站| 久久福利视频在线播放| 成年av网站18不禁| 国产熟妇一区二区三区四区| 91超碰在线免费视频| 成人免费在线视频亚洲| 美女观看网站免费不卡视频| 中文字幕中文av在线精品| 青草视频在线观看亚洲| 好吊色欧美一区二区三区四区| 国产很黄很色精品久久久 | 亚洲成人av免费在线播放| 欧美在线1区2区3区| 成年av网站18不禁| 日韩国产精品99久久久久久| 欧美网址一区二区三区| 日韩国产精品99久久久久久| 最新中文在线乱码av| 中文字幕乱码中文字幕| 亚洲熟女区一区二区三| 网友自拍人妻在线视频| 99久久在线免费观看| 久久乐国产精品亚洲综合| 美女在线观看免费在线观看| 精久久中文字幕人妻最新| 97人在线看视频在线观看| 97超频精品在线观看| 国产欧美精选自拍视频| 亚洲三级视频一区二区三区| 最近中文字幕免费mv在线直播| 亚洲成人久久精品国产| 国产 剧情 在线 精品| 国产黄色片三级三级三级| 久久91丨国产人妻熟女| 日本人妇十八禁在线观看| 青青草原网址在线观看| 亚洲欧美精品丝袜中文字幕| 亚洲熟女区一区二区三| 91在线国产视频观看| 久久精品国产v日韩v亚洲| 亚洲成人久久精品国产| 久久精品人妻免费观看| 久久久久久久亚洲综合| 国产一区二区三区在线h| 91人人妻人人做人人爱| 丝袜制服诱惑人妻av| 久久99久国产精品66| 国产亚洲成人精品视频| 成人在线免费播放视频| 在线播放99国产视频| 欧美成人精品一级在线观看| 少妇人妻av毛片在线看| av在线观看亚洲中文| 黑丝美女的骚逼尖叫高潮声| 欧美激情1区2区3区4区| 在线播放亚洲一级特黄片| 久久久久久久综合精品| 亚洲国产精品黑丝美女| 丝袜熟女av一区二区三区| 99re这里有精品免费视频| 亚洲欧洲自拍拍偷第二页| 欧美一区二区三区资源| 亚洲av无码一区二区三区免看| 激情伦理一区二区三区| 美女扒开胸罩露出奶头免费| 青青青青娱乐在线观看| 国产很黄很色精品久久久| 亚洲熟女区一区二区三| 国产97视频免费在线观看| 911精品在线免费观看| 99久久国产综合精品五月天| 国产 欧美 日韩在线视频| 亚洲国产精品免费线观看视频| 成人精品国产一级二级| 中文字幕人妻A片免费看| 国模午夜写真福利在线| 中文字幕在线午夜人妻| 日韩欧美国产精品综合| 狠狠久久亚洲美洲专区| 国产高清三级在线精品福利| 青青艹视频在线免费观看| 午夜男女爽爽爽爽爽爽爽| 欧美日韩午夜精品不卡综合| 77成人在线免费视频| 青青精品视频在线免费观看| 午夜日韩私人大片中国黄页网| av在线中文字幕资源网| 久久99av无色码人妻蜜柚| 亚洲国产欧美精品在线| 性做久久久久久久毛片| 上海性战旗袍丝袜女郎| 亚洲不伦丝袜人妻在线| 老熟女 一区二区三区| 91在线视频网站总站| 中文字幕在线视频首页| 亚洲一级av对白刺激| 成年人免费看国产黄色片| 国产亚洲欧美日韩精品| 在线看片免费人成视久网| 国产乱精品一区二区视频了 | xxx日韩欧美黄色a| 人妻av在线中文字幕| 中文乱码在线观看视频| 欧美一区久久人妻中文字幕| 青青草原精品免费在线视频| 97色老99久久九九爱精品| 日韩中文字幕人妻一区| 日韩在线不卡一区在线观看| 国产精品中文av在线播放| 欧美熟妇一级二级三级a| 国内揄拍国内精品人妻迷| 国产哟av精品色哟哟| 国内网友自拍视频在线| 久久亚洲一区二区夜夜嗨| 国产精品亚洲av三区色| 国产乱码伦人偷精品视频| 亚洲熟妇色自偷自拍另类图片| 97国产视频在线观看| 青青青爽综合在线视频| 国产一区二区在线观播放| 人妻丝袜一区二区三区| 97国产视频在线免费观看| 国产va欧美va精品va综| 青草视频中文字幕在线观看| 亚洲一二三区精品在线观看| 欧美一区二区三区中文字幕| 久久精品人妻系列av| 自拍亚洲一区欧美另类| 国产亚洲欧美日韩精品| 啊啊啊啊插进去你好骚视频| 一区二区三区 日韩 av| av中文字幕每日更新| 国产精品18久久久久久二百| 亚洲中文字幕乱码免费播放| 国产18精品乱码在线看| 成人免费三级在线观看| 中文字幕人妻系列在线视频| 人妻中文字幕免费av| 久久综合熟女中文字幕| 久久久久久人妻精品一区| 国产一级视频在线观看免费| 国产自拍免费精品视频| 欧美日韩三级在线观看| 国产精品中文字幕av在线| 精品一片二片三片在线| 丰满熟女一区二区三区在线播放| 国产福利在线播放视频| 巨乳人妻中文字幕精品在线| 一区二区三区国产欧美| 国产偷拍自拍熟女视频| 中文字幕精品久久久乱码乱码| 国产精品人妻中文字幕| 视频一区二区三区 在线| 日韩国产在线不卡av| 久久婷婷色香五月综合激激情 | 粉嫩av蜜乳av蜜臀av| 美女观看网站免费不卡视频| 亚洲一区二区三区成人在线| 粉嫩av一区在线观看| 国内精品视频免费播放| 亚洲欧美丝袜美腿 综合| 国产对白av一区二区| 国内网友自拍视频在线| 91精品国产人妻国产在线| 国产日韩欧美精品久久| 99久久国产综合精品五月天| 中文字幕久久人妻综合 | 欧美日韩乱码视频在线免费观看| 精品人妻久久久久一区二| 久久久亚洲裙底偷窥综合| 草草视频免费在线观看| 国产成人不卡在线视频| 人妻丰满熟妇久久久久| 男人操女人逼视频免费观看| 超碰在线97青青草原| 青青青色视频在线观看| 青青免费在线播放av| 91青青视频在线观看| 青草青青青青青青操死你| 人妻少妇激情综合小视频| 91av在线观看蜜臀| 亚洲 自拍 露出 极品| 亚洲精品国产精品乱码不卡| 精品国产99国产精品亚洲| 99热精品素人在线国产丝袜| 黄腔女兵最经典十句话| 欧美精品网站在线视频| 久久久精品久久久99| 国产自拍免费精品视频| 中文字幕久久久2029| carpon视频在线观看| 精品人妻伦一二二区久久| 亚洲一级二级三级国产av| 久久久久久4久久久8| 一本92午夜免费不卡福利片 | 久久久久人妻一区精品在线观看| 爆乳美女粉嫩阴蒂被插视频| 国内精品伊人久久久久av| 日韩午夜在线视频不卡片| 男人和女人逼逼的视频| 18成人黄色在线观看| av天堂中文字幕精品| 国产高清av一区二区在线观看| 久久国产精品9999p| 男人把女人捅到爽歪歪黄| 国产视频二区在线观看| 女女同性女同区二区日韩| 亚洲国内av不卡在线| 26uuu亚洲综合色欧美| 丝袜制服诱惑人妻av| 蜜臀久久99精品久久宅男| 中文字幕在线日韩第一精品| 国产aV无码片毛片一级韩国 | 超碰人人爱人人爽人人av| 中文字幕在线观看地址av| 91在线成人在线视频| 97资源超碰在线中文| 国产av中文字幕乱码| 久久人人妻人人做人人爽| 99九九久久国产精品| 国产精品网站调教美女| 久久久久久人妻精品一区| av中文字幕一二三四| 久久久久亚洲av一区二区三区| 国产精久久久久久一区二区三区| 国产精品久久久久九九九九| 午夜在线观看视频你懂的| 青青草日韩av在线播放| 在线亚洲视频中文字幕| 国产一区二区在线观播放| 一边吃扎一边插逼逼视频| 日韩熟女少妇一区二区三区| 自拍 偷拍 亚洲 欧美| 99视频精品视频观看| 性感美女肉色丝袜诱惑| 国产理论视频在线观看| 丝袜熟女av一区二区三区| 男人和女人的性生活视频| 国产午夜精品自拍视频| 中文字幕在线观看地址av| 国产又粗又黄在线播放| 国产亚洲成人精品视频| 精品无人区麻豆乱码久久久| 色偷偷av一区二区三区| 欧美一区二区三区99| 亚洲av日韩精品久久| 黄色美女在线观看日韩| 亚洲一区美腿丝袜在线播放| 国产一区二区三区亚洲一区 | 青青视频在线观看播放观看| 精久久中文字幕人妻最新| 成年人黄色片视频网站| 日韩三级黄色免费网站| 亚洲一区二区三区成人在线| 亚洲 中文 字幕 人妻| 欧美 日韩 一区二区三区| 亚洲福利视频免费播放| 亚洲 人妻 有码 在线| 97精品日韩在线视频| 日本一区二区不卡精品| 我的放荡丝袜美腿老师| 成人在线视频播放 亚洲| 久久综合久久狠狠综合| 97超碰人妻福利在线| av中文字幕官网天堂| 久久久21精品久久久| 欧美日韩精品成人在线| 人人妻人人做人人妻av| 91国产激情视频在线观看| 99久久在线免费观看| 综合人妻一区二区三区| 成年人免费看国产黄色片| 欧美日韩久久综合一区二区| 成人夜间视频免费在线观看| 中文字幕中文av在线精品| 国产a三级三级三级精品91区| 成年人黄视频免费观看网站| 亚洲中文字幕一区二区三区av| 欧美激情1区2区3区4区| 好想被狂操在线无码视频| 亚洲欧美人妻最新网址| 亚洲av成人噜噜网站| 欧美成人网另类套图超市 | 国产成人在线视频播放| 91偷拍老熟女露脸合集| 自拍视频在线观看青青网| 精品国产三级av在线| 久久久久久噜噜噜久久久精品| 亚洲欧美一区二区三区黑人| 激情视频网站在线观看| 青青草原国产视频在线观看| 高潮毛片遮挡免费高清| 青青色在线视频观看免费| 国产青青草在线观看视频| 国产极品粉嫩交性大片| 97久久公开视频在线| 国内一区二区三区视频在线播放| 青青青爽综合在线视频| 黄色一级片久久久免费观看| 久久久免费一区二区三区| 青青青视频自偷自拍视频1| 欧美一区二区三区再线播放| 人妻熟女欧美一区二区| 国产综合日韩精品欧美| 欧美在线观看亚洲精品| 国产高清三级在线精品福利| 老女人av一区二区三区| 久久精品国产亚州av| 熟女麻豆一区二区三区四区| 97资源超碰在线中文| 日本一本久a久久精品综合| 亚洲高跟丝袜在线观看| japanese少妇av| 欧美日韩精品欧美日韩| 国产高清三级在线精品福利| 大岛优香中文字幕av人妻| 青草青青青青青青操死你| 超碰在线最新地址97| av中文在线中文av| 欧美激情视频一区二区三区| 91/日韩/精品/乱码| 精品无人区一区二区三区av| 国产亚洲精品高清一区| 能看国产小视频的网站| 国产 丝袜 欧美中文 另类| 日韩乱码中文字幕有码视频| 超级碰碰在线视频国产| 成人极品av免费观看| 亚洲情色一区二区三区四区五区| 99久久国产综合精品五月天| 日本中文字幕乱码免费视频| 国产免费黄色av 网站| 亚洲av色在线观看国产| 欧美成人精品一级在线观看| 国产高清在线免费观看不卡av| 国模午夜写真福利在线| 久久人人妻人人做人人爽| 情趣丝袜美腿写真图片| 在线观看黄色播放网站| 欧美午夜理论在线观看| 成人极品av免费观看| 欧美视频精品综合在线| 91亚洲精品久久久久蜜桃| 亚洲综合色在线一区二区| 亚洲第一区二区在线观看| 国产美女视频免费观看网| 成人激情自拍图片视频| 得得的爱在线视频免费观看 | 在线观看国产精品av| 国产免费无码午夜福利蜜臀| 熟女麻豆一区二区三区四区| 精品一区二区三区四区在线播放| 蜜臀av在线观看免费| 欧美女奴靠bb唆大鸡巴群交| 91亚洲精品久久久久蜜桃| 日韩欧美成人精品视频在线| 欧美国产精品久久综合| 欧美一区二区三区伦理国产| 99视频精品视频观看| 女人嫩水逼让大鸡巴操免费看 | 激情福利视频在线观看| 美女国产高潮福利片在线看| 亚洲丝袜av在线观看| 国产成人黄色精品视频| 亚洲自拍一区在线观看| 我的放荡丝袜美腿老师| 亚洲精选清纯唯美自拍偷拍| 欧美一区二区三区再线播放| 香蕉免费一区二区三区在线观看 | 国产视频二区在线观看| 精品国产久久三级av| 韩国性感美女直播热舞| av在线亚洲国产精品婷婷| 亚洲av综合av成人av在线| 我想听大香蕉大家大香蕉| 国产精品成人免费av| 青青青视频自偷自拍视频1| 久久人妻日韩一二三区| 免费播放黄色操逼乱操逼| 99爱精品视频在线视频| 大奶少妇白虎高潮流视频| 欧美日韩午夜精品不卡综合| 熟女人妻中文字幕免费观看| 黄色av在线观看网址| 美女精品一区二区三区免费观看| 最新午夜在线观看视频| 一区二区三区 日韩 av| 欧美中文字幕乱码在线播放| 久久久久久久久99密月| 国产精品特级露脸AV毛片| 在线成人免费观看视频网址| 欧美日韩亚洲在线另类| 超碰人人爱人人爽人人av| 成人免费三级在线观看| 黄色美女在线观看日韩| 日本青草视频在线观看| 亚洲激情视频在线观看视频| 91成人精品亚洲国产| 成人av在线视频资源| 免费av在线网站中文字幕| 91国产自拍在线播放| 国产精品久久久久久永久牛牛| 亚洲中文自拍另类av| 91自拍免费在线视频| 很黄很色的视频免费在线观看| 成人国产精品av在线| 成人极品av免费观看| 国产免费午夜福利视频| 久久国产麻豆免费播放| 青青艹视频在线免费观看| 熟女少妇久久中文字幕| 国产自拍偷拍在线免费| 免费a站网址在线观看| 国产亚洲欧美日韩中文在线蜜臀| 成人在线视频免费播放| 成人精品国产一级二级| 99国产小视频在线播放| 熟女一区二区三区播放| 中文字幕在线午夜人妻| 国产亚洲欧美日韩三级| 成人亚洲精品777777| 日韩在线不卡一区在线观看| 亚洲在线视频中文字幕| 精久久中文字幕人妻最新| 你懂得在线免费观看99| 在线成人av一区二区| 熟女阿av一区二区三| 绝美人妻一区二区在线观看| 99爱精品视频在线视频| 精品国产污污污的网站| 人妻又爱又澡人人添人人爽| 搬开女人下面使劲插视频| 超长假大鸡巴从肛门捅到胃视频| 人妻熟女一区二区91| 99久久国产综合精品五月天| 亚洲一级av对白刺激| 亚洲av专区在线观看国产 | av一区二区三区看片| av中文字幕一区在线| 青青成人免费在线视频| 日韩欧美群交P内射捆绑| 成人啪精品视频网站午夜| 24小时在线播放免费观看| 国产欧美精品免费观看久| 91色乱码一区二区三| 亚洲精品你懂的在线观看| 国产欧美日韩综合精品一区| 国产精品96乱子一级视频| 一区二区在线观看免费不卡| 视频一区二区三区 在线| 神马不卡午夜在线观看| 丰满美女一区二区三区| 久久婷婷香蕉国产精品| 日本性感丝袜女秘书诱惑| 国产精品96乱子一级视频| 国内自拍 都市激情 人妻| 亚洲综合色区另类av| 日韩人妻熟女中文字幕的视频| 伊人av超碰伊人久久久| 欧美激情一区二区三区成人| 翔田千里精品久久一区二| 久久精品中文字幕乱码视频| 午夜18在线观看视频| 激情视频网站在线观看| 亚洲熟女一区二区三区观看 | 99九九久久国产精品| 人妻系列av无码专区免费| 青娱乐 青青青操 天天日| av一区中文字幕在线| 久久久久久久久99密月| 521a成v精品视频在线播放| av中文字幕官网天堂| 成人免费三级在线观看| 日本人妇十八禁在线观看| 久久久免费久久久精品| 外国大片在线免费观看| 美女主播性感丝袜热舞| 人妻av蜜臀一区二不卡| 亚洲黄色资源在线浏览| xxx日韩欧美黄色a| 我想听大香蕉大家大香蕉| 亚洲情色一区二区三区四区五区| 欧美精品免费在线播放| 久久国产精品av大全| 人妻中文字幕永久在线| 超碰97国产在线免费观看| 久久精品人妻免费观看| 久久福利视频在线播放| 最新国产网友自拍视频在线| 成人av无码区二区三区|