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

"未來"的經(jīng)典之作ViT:transformer is all you need!

共 16743字,需瀏覽 34分鐘

 ·

2021-03-11 15:02


點(diǎn)藍(lán)色字關(guān)注“機(jī)器學(xué)習(xí)算法工程師

設(shè)為星標(biāo),干貨直達(dá)!

從2020年,transformer開始在CV領(lǐng)域大放異彩:圖像分類(ViT, DeiT),目標(biāo)檢測(DETR,Deformable DETR),語義分割(SETR,MedT),圖像生成(GANsformer)等。而從深度學(xué)習(xí)暴發(fā)以來,CNN一直是CV領(lǐng)域的主流模型,而且取得了很好的效果,相比之下transformer卻獨(dú)霸NLP領(lǐng)域,transformer在CV領(lǐng)域的探索正是研究界想把transformer在NLP領(lǐng)域的成功借鑒到CV領(lǐng)域。對于圖像問題,CNN具有天然的先天優(yōu)勢(inductive bias):平移不變性(translation equivariance)和局部性(locality)。而transformer雖然不并具備這些優(yōu)勢,但是transformer的核心self-attention的優(yōu)勢不像卷積那樣有固定且有限的感受野,self-attention操作可以獲得long-range信息(相比之下CNN要通過不斷堆積Conv layers來獲取更大的感受野),但訓(xùn)練的難度就比CNN要稍大一些。

ViT(vision transformer)是Google在2020年提出的直接將transformer應(yīng)用在圖像分類的模型,后面很多的工作都是基于ViT進(jìn)行改進(jìn)的。ViT的思路很簡單:直接把圖像分成固定大小的patchs,然后通過線性變換得到patch embedding,這就類比NLP的words和word embedding,由于transformer的輸入就是a sequence of token embeddings,所以將圖像的patch embeddings送入transformer后就能夠進(jìn)行特征提取從而分類了。ViT模型原理如下圖所示,其實(shí)ViT模型只是用了transformer的Encoder來提取特征(原始的transformer還有decoder部分,用于實(shí)現(xiàn)sequence to sequence,比如機(jī)器翻譯)。下面將分別對各個部分做詳細(xì)的介紹。


Patch Embedding

對于ViT來說,首先要將原始的2-D圖像轉(zhuǎn)換成一系列1-D的patch embeddings,這就好似NLP中的word embedding。輸入的2-D圖像記為,其中分別是圖像的高和寬,而為通道數(shù)對于RGB圖像就是3。如果要將圖像分成大小為的patchs,可以通過reshape操作得到a sequence of patchs:,圖像共切分為個patchs,這也就是sequence的長度了,注意這里直接將patch拉平為1-D,其特征大小為。然后通過一個簡單的線性變換將patchs映射到大小的維度,這就是patch embeddings:,在實(shí)現(xiàn)上這等同于對進(jìn)行一個且stride為的卷積操作(雖然等同,但是ViT其實(shí)是不包含任何卷積操作的),下面是具體的實(shí)現(xiàn)代碼:

class PatchEmbed(nn.Module):
    """ Image to Patch Embedding
    """

    def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=768):
        super().__init__()
        img_size = to_2tuple(img_size)
        patch_size = to_2tuple(patch_size)
        num_patches = (img_size[1] // patch_size[1]) * (img_size[0] // patch_size[0])
        self.img_size = img_size
        self.patch_size = patch_size
        self.num_patches = num_patches

        self.proj = nn.Conv2d(in_chans, embed_dim, kernel_size=patch_size, stride=patch_size)

    def forward(self, x):
        B, C, H, W = x.shape
        # FIXME look at relaxing size constraints
        assert H == self.img_size[0and W == self.img_size[1], \
            f"Input image size ({H}*{W}) doesn't match model ({self.img_size[0]}*{self.img_size[1]})."
        x = self.proj(x).flatten(2).transpose(12)
        return x

Position Embedding

除了patch embeddings,模型還需要另外一個特殊的position embedding。transformer和CNN不同,需要position embedding來編碼tokens的位置信息,這主要是因?yàn)閟elf-attention是permutation-invariant,即打亂sequence里的tokens的順序并不會改變結(jié)果。如果不給模型提供patch的位置信息,那么模型就需要通過patchs的語義來學(xué)習(xí)拼圖,這就額外增加了學(xué)習(xí)成本。ViT論文中對比了幾種不同的position embedding方案(如下),最后發(fā)現(xiàn)如果不提供positional embedding效果會差,但其它各種類型的positional embedding效果都接近,這主要是因?yàn)閂iT的輸入是相對較大的patchs而不是pixels,所以學(xué)習(xí)位置信息相對容易很多。

  • 無positional embedding
  • 1-D positional embedding:把2-D的patchs看成1-D序列
  • 2-D positional embedding:考慮patchs的2-D位置(x, y)
  • Relative positional embeddings:patchs的相對位置

transformer原論文中是默認(rèn)采用固定的positional embedding,但ViT中默認(rèn)采用學(xué)習(xí)(訓(xùn)練的)的1-D positional embedding,在輸入transformer的encoder之前直接將patch embeddings和positional embedding相加:

# 這里多1是為了后面要說的class token,embed_dim即patch embed_dim
self.pos_embed = nn.Parameter(torch.zeros(1, num_patches + 1, embed_dim)) 

# patch emded + pos_embed
x = x + self.pos_embed

論文中也對學(xué)習(xí)到的positional embedding進(jìn)行了可視化,發(fā)現(xiàn)相近的patchs的positional embedding比較相似,而且同行或同列的positional embedding也相近:


這里額外要注意的一點(diǎn),如果改變圖像的輸入大小,ViT不會改變patchs的大小,那么patchs的數(shù)量會發(fā)生變化,那么之前學(xué)習(xí)的pos_embed就維度對不上了,ViT采用的方案是通過插值來解決這個問題:

def resize_pos_embed(posemb, posemb_new):
    # Rescale the grid of position embeddings when loading from state_dict. Adapted from
    # https://github.com/google-research/vision_transformer/blob/00883dd691c63a6830751563748663526e811cee/vit_jax/checkpoint.py#L224
    _logger.info('Resized position embedding: %s to %s', posemb.shape, posemb_new.shape)
    ntok_new = posemb_new.shape[1]
    # 除去class token的pos_embed
    posemb_tok, posemb_grid = posemb[:, :1], posemb[01:]
    ntok_new -= 1
    gs_old = int(math.sqrt(len(posemb_grid)))
    gs_new = int(math.sqrt(ntok_new))
    _logger.info('Position embedding grid-size from %s to %s', gs_old, gs_new)
    # 把pos_embed變換到2-D維度再進(jìn)行插值
    posemb_grid = posemb_grid.reshape(1, gs_old, gs_old, -1).permute(0312)
    posemb_grid = F.interpolate(posemb_grid, size=(gs_new, gs_new), mode='bilinear')
    posemb_grid = posemb_grid.permute(0231).reshape(1, gs_new * gs_new, -1)
    posemb = torch.cat([posemb_tok, posemb_grid], dim=1)
    return posemb

但是這種情形一般會造成性能少許損失,可以通過finetune模型來解決。另外最新的論文CPVT通過implicit Conditional Position encoding來解決這個問題(插入Conv來隱式編碼位置信息,zero padding讓Conv學(xué)習(xí)到絕對位置信息)。

Class Token

除了patch tokens,ViT借鑒BERT還增加了一個特殊的class token。后面會說,transformer的encoder輸入是a sequence patch embeddings,輸出也是同樣長度的a sequence patch features,但圖像分類最后需要獲取image feature,簡單的策略是采用pooling,比如求patch features的平均來獲取image feature,但是ViT并沒有采用類似的pooling策略,而是直接增加一個特殊的class token,其最后輸出的特征加一個linear classifier就可以實(shí)現(xiàn)對圖像的分類(ViT的pre-training時是接一個MLP head),所以輸入ViT的sequence長度是。class token對應(yīng)的embedding在訓(xùn)練時隨機(jī)初始化,然后通過訓(xùn)練得到,具體實(shí)現(xiàn)如下:

# 隨機(jī)初始化
self.cls_token = nn.Parameter(torch.zeros(11, embed_dim))

# Classifier head
self.head = nn.Linear(self.num_features, num_classes) if num_classes > 0 else nn.Identity()

# 具體forward過程
B = x.shape[0]
x = self.patch_embed(x)
cls_tokens = self.cls_token.expand(B, -1-1)  # stole cls_tokens impl from Phil Wang, thanks
x = torch.cat((cls_tokens, x), dim=1)
x = x + self.pos_embed

Transformer Encoder

transformer最核心的操作就是self-attention,其實(shí)attention機(jī)制很早就在NLP和CV領(lǐng)域應(yīng)用了,比如帶有attention機(jī)制的seq2seq模型,但是transformer完全摒棄RNN或LSTM結(jié)構(gòu),直接采用attention機(jī)制反而取得了更好的效果:attention is all you need!簡單來說,attention就是根據(jù)當(dāng)前查詢對輸入信息賦予不同的權(quán)重來聚合信息,從操作上看就是一種“加權(quán)平均”。attention中共有3個概念:query, key和value,其中key和value是成對的,對于一個給定的query向量,通過內(nèi)積計(jì)算來匹配k個key向量(維度也是d,堆積起來即矩陣),得到的內(nèi)積通過softmax來歸一化得到k個權(quán)重,那么對于query其attention的輸出就是k個key向量對應(yīng)的value向量(即矩陣)的加權(quán)平均值。對于一系列的N個query(即矩陣),可以通過矩陣計(jì)算它們的attention輸出:

這里的為縮放因子以避免點(diǎn)積帶來的方差影響。上述的Attention機(jī)制稱為Scaled dot product attention,其實(shí)attention機(jī)制的變種有很多,但基本原理是相似的。如果都是從一個包含個向量的sequence()通過線性變換得到:那么此時就變成了self-attention,這個時候就有個(key,value)對,那么。self-attention是transformer最核心部分,self-attention其實(shí)就是輸入向量之間進(jìn)行相互attention來學(xué)習(xí)到新特征。前面說過我們已經(jīng)得到圖像的patch sequence,那么送入self-attention就能到同樣size的sequence輸出,只不過特征改變了。

更進(jìn)一步,transformer采用的是multi-head self-attention (MSA),所謂的MSA就是采用定義h個attention heads,即采用h個self-attention應(yīng)用在輸入sequence上,在操作上可以將sequence拆分成h個size為的sequences,這里,h個不同的heads得到的輸出concat在一起然后通過線性變換得到最終的輸出,size也是


MSA的計(jì)算量是和成正相關(guān)的,所以ViT的輸入是patch embeddings,而不是pixel embeddings,這有計(jì)算量上的考慮。在實(shí)現(xiàn)上,MSA是可以并行計(jì)算各個head的,具體代碼如下:

class Attention(nn.Module):
    def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0.):
        super().__init__()
        self.num_heads = num_heads
        head_dim = dim // num_heads
    
        self.scale = qk_scale or head_dim ** -0.5

        self.qkv = nn.Linear(dim, dim * 3, bias=qkv_bias)
        self.attn_drop = nn.Dropout(attn_drop)
        self.proj = nn.Linear(dim, dim)
        # 這里包含了dropout
        self.proj_drop = nn.Dropout(proj_drop)

    def forward(self, x):
        B, N, C = x.shape
        qkv = self.qkv(x).reshape(B, N, 3, self.num_heads, C // self.num_heads).permute(20314)
        q, k, v = qkv[0], qkv[1], qkv[2]   # make torchscript happy (cannot use tensor as tuple)

        attn = (q @ k.transpose(-2-1)) * self.scale
        attn = attn.softmax(dim=-1)
        attn = self.attn_drop(attn)

        x = (attn @ v).transpose(12).reshape(B, N, C)
        x = self.proj(x)
        x = self.proj_drop(x)
        return x

在transformer中,MSA后跟一個FFN(Feed-forward network),這個FFN包含兩個FC層,第一個FC層將特征從維度變換成,后一個FC層將特征從維度恢復(fù)成,中間的非線性激活函數(shù)采用GeLU,其實(shí)這就是一個MLP,具體實(shí)現(xiàn)如下:

class Mlp(nn.Module):
    def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0.):
        super().__init__()
        out_features = out_features or in_features
        hidden_features = hidden_features or in_features
        self.fc1 = nn.Linear(in_features, hidden_features)
        self.act = act_layer()
        self.fc2 = nn.Linear(hidden_features, out_features)
        self.drop = nn.Dropout(drop)

    def forward(self, x):
        x = self.fc1(x)
        x = self.act(x)
        x = self.drop(x)
        x = self.fc2(x)
        x = self.drop(x)
        return x

那么一個完成transformer encoder block就包含一個MSA后面接一個FFN,其實(shí)MSA和FFN均包含和ResNet一樣的skip connection,另外MSA和FFN后面都包含layer norm層,具體實(shí)現(xiàn)如下:

class Block(nn.Module):

    def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,
                 drop_path=0., act_layer=nn.GELU, norm_layer=nn.LayerNorm)
:

        super().__init__()
        self.norm1 = norm_layer(dim)
        self.attn = Attention(
            dim, num_heads=num_heads, qkv_bias=qkv_bias, qk_scale=qk_scale, attn_drop=attn_drop, proj_drop=drop)
        NOTE: drop path for stochastic depth, we shall see if this is better than dropout here
        self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity()
        self.norm2 = norm_layer(dim)
        mlp_hidden_dim = int(dim * mlp_ratio)
        self.mlp = Mlp(in_features=dim, hidden_features=mlp_hidden_dim, act_layer=act_layer, drop=drop)

    def forward(self, x):
        x = x + self.drop_path(self.attn(self.norm1(x)))
        x = x + self.drop_path(self.mlp(self.norm2(x)))
        return x

ViT

對于ViT模型來說,就類似CNN那樣,不斷堆積transformer encoder blocks,最后提取class token對應(yīng)的特征用于圖像分類,論文中也給出了模型的公式表達(dá),其中(1)就是提取圖像的patch embeddings,然后和class token對應(yīng)的embedding拼接在一起并加上positional embedding;(2)是MSA,而(3)是MLP,(2)和(3)共同組成了一個transformer encoder block,共有層;(4)是對class token對應(yīng)的輸出做layer norm,然后就可以用來圖像分類。


除了完全無卷積的ViT模型外,論文中也給出了Hybrid Architecture,簡單來說就是先用CNN對圖像提取特征,從CNN提取的特征圖中提取patch embeddings,CNN已經(jīng)將圖像降采樣了,所以patch size可以為。

ViT模型的超參數(shù)主要包括以下,這些超參數(shù)直接影響模型參數(shù)以及計(jì)算量:

  1. Layers:block的數(shù)量;
  2. Hidden size D:隱含層特征,D在各個block是一直不變的;
  3. MLP size:一般設(shè)置為4D大小;
  4. Heads:MSA中的heads數(shù)量;
  5. Patch size:模型輸入的patch size,ViT中共有兩個設(shè)置:14x14和16x16,這個只影響計(jì)算量;

類似BERT,ViT共定義了3種不同大小的模型:Base,Large和Huge,其對應(yīng)的模型參數(shù)不同,如下所示。如ViT-L/16指的是采用Large結(jié)構(gòu),輸入的patch size為16x16。

模型效果

ViT并不像CNN那樣具有inductive bias,論文中發(fā)現(xiàn)如果如果直接在ImageNet上訓(xùn)練,同level的ViT模型效果要差于ResNet,但是如果在比較大的數(shù)據(jù)集上petraining,然后再finetune,效果可以超越ResNet。比如ViT在Google私有的300M JFT數(shù)據(jù)集上pretrain后,在ImageNet上的最好Top-1 acc可達(dá)88.55%,這已經(jīng)和ImageNet上的SOTA相當(dāng)了(Noisy Student EfficientNet-L2效果為88.5%,Google最新的SOTA是Meta Pseudo Labels,效果可達(dá)90.2%):


那么ViT至少需要多大的數(shù)據(jù)量才能和CNN旗鼓相當(dāng)呢?這個論文也做了實(shí)驗(yàn),結(jié)果如下圖所示,從圖上所示這個預(yù)訓(xùn)練所使用的數(shù)據(jù)量要達(dá)到100M時才能顯示ViT的優(yōu)勢。transformer的一個特色是它的scalability:當(dāng)模型和數(shù)據(jù)量提升時,性能持續(xù)提升。在大數(shù)據(jù)面前,ViT可能會發(fā)揮更大的優(yōu)勢。


此外,論文中也對ViT做了進(jìn)一步分析,如分析了不同layers的mean attention distance,這個類比于CNN的感受野。論文中發(fā)現(xiàn)前面層的“感受野”雖然差異很大,但是總體相比后面層“感受野”較小,而模型后半部分“感受野”基本覆蓋全局,和CNN比較類似,說明ViT也最后學(xué)習(xí)到了類似的范式。


當(dāng)然,ViT還可以根據(jù)attention map來可視化模型具體關(guān)注圖像的哪個部分,從結(jié)果上看比較合理:


我個人覺得ViT算是一個很好的開始,雖然ViT也有一些問題,但是至少證明了純粹的transformer在CV領(lǐng)域應(yīng)用的可能性。近期也有一些后續(xù)的改進(jìn)工作,感興趣的可以進(jìn)一步了解:

  • [DeiT] Training data-efficient image transformers & distillation through attention
  • [T2T-ViT] Tokens-to-Token ViT: Training Vision Transformers from Scratch on ImageNet
  • [CPVT] Do We Really Need Explicit Position Encodings for Vision Transformers?
  • [PVT] Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions
  • [TNT] Transformer in Transformer

參考

  1. An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
  2. timm
  3. Awesome-Visual-Transformer
  4. Do We Really Need Explicit Position Encodings for Vision Transformers?


推薦閱讀

谷歌提出Meta Pseudo Labels,刷新ImageNet上的SOTA!

大道至簡!深度解讀CVPR2021論文RepVGG!

PyTorch 源碼解讀之 torch.autograd

漲點(diǎn)神器FixRes:兩次超越ImageNet數(shù)據(jù)集上的SOTA

Transformer為何能闖入CV界秒殺CNN?

SWA:讓你的目標(biāo)檢測模型無痛漲點(diǎn)1% AP

CondInst:性能和速度均超越Mask RCNN的實(shí)例分割模型

centerX: 用新的視角的方式打開CenterNet

mmdetection最小復(fù)刻版(十一):概率Anchor分配機(jī)制PAA深入分析

MMDetection新版本V2.7發(fā)布,支持DETR,還有YOLOV4在路上!

CNN:我不是你想的那樣

TF Object Detection 終于支持TF2了!

無需tricks,知識蒸餾提升ResNet50在ImageNet上準(zhǔn)確度至80%+

不妨試試MoCo,來替換ImageNet上pretrain模型!

重磅!一文深入深度學(xué)習(xí)模型壓縮和加速

從源碼學(xué)習(xí)Transformer!

mmdetection最小復(fù)刻版(七):anchor-base和anchor-free差異分析

mmdetection最小復(fù)刻版(四):獨(dú)家yolo轉(zhuǎn)化內(nèi)幕


機(jī)器學(xué)習(xí)算法工程師


                                    一個用心的公眾號


 


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

手機(jī)掃一掃分享

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

手機(jī)掃一掃分享

分享
舉報(bào)

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 中文字幕免费MV第一季歌词| 1024国产| 日本欧美一区二区三区| 操逼第二页| 久久久精品人妻| 国内精品久久久久| 97AV视频| 成人AV午夜福利| 亚洲国产操逼| 在线看A片| 激情五月丁香五月| 国产AV中文| 一本一道波多野结衣潮喷视频| 亚洲AV无码国产精品二区| 国产在线激情| 不卡无码在线观看| 不卡三区| 少妇精品久久久久久久久久| 欧美老女人的逼| 蜜桃av秘无码一区二区三| 中文字幕日韩人妻| a在线免费| 欧美日韩国内| 青在线视频| 亚洲成人av在线播放| 丁香花在线高清完整版视频| 国产高清av| 日本黄色视频免费观看| 狠狠穞A片一區二區三區| 精品孕妇一区二区三区| 国产乱伦AV网站| 天堂中文资源在线观看| 日韩无码二级| 91在线无码精品国产三年| 欧美久久久| 人人妻人人爽人人澡人人精品| 成人小说一区二区三区| 91综合久久| 91成人视频免费观看| 久久成人在线视频| 骚逼中文字幕| 97视频| 午夜无码福利| 一区二区三区成人电影| 久在线视频| 爱爱午夜福利| 狠狠干2024| 成人性爱视频免费在线观看| 久草资源视频| 天天躁狠狠躁夜躁2024| 国产成人亚洲日韩| 俺来也俺也啪www色| 久久青青视频| 无码精品电影| 久草在线播放| 色天堂在线观看视频| 艹逼91| 久久久久亚洲AV无码专区成人| 亚洲av无码精品| 久操无码视频| 亚洲在线免费观看| 日本欧美国产| 日韩一级网站| 人人人人操| 亚洲无码一本道| 麻豆国产91在线播放| 少妇高潮喷水| 特黄色视频| 高清无码在线免费视频| 亚洲精品久久久久久久蜜桃 | 91日日夜夜| 粉嫩99精品99久久久久久夜| 国产丝袜人妖TS系列| 欧美A片免费| 十八禁网站在线播放| 五月丁香成人电影| 国产老女人操逼视频| 久久人妻视频| 亚州一级成人片| 亚洲AVwww| 亚洲久久久| 日韩欧美国产高清91| 九九国产精品| 国产va在线观看| 操逼在线免费观看| 日本A级毛片| 人妻中文在线| 亚州V| www.国产| 天天操夜夜操人人操| 一级特黄色| 日韩精品人妻中文字幕有| 乱伦视频91| 一个人看的www日本高清视频 | 北条麻妃在线中文字幕| 91丨牛牛丨国产| 玖玖av| 亚洲小穴| 婷婷综合亚洲| 人人草在线观看| 思思热思思操| 亚洲成人视频在线免费观看| 久久久成人免费视频| 国产精彩无码视频| 免费Av在线| 一级黄色免费片| 欧美性爱XXXX黑人XYX性爽| 丝袜三级片| 国产色拍| 国产一级片内射| 美女久久久久| 强伦轩一区二区三区在线观看| 一级AA视频| 大香蕉com| 性BBW| 黄色视频毛片一一| 久久怡春院| 91超碰人人| 特黄AAAAAAAA片免费直播| 超碰日逼| 777超碰| 中文无码字幕在线| 精品欧美一区二区三区久久久| 欧美日韩精品一区| 亚洲香蕉在线视频| 97人妻人人揉人人躁人人 | 天天操天天操天天操| 丁香五月天激情| 国产精品电影大全| 综合色国产精品欧美在线| AV天堂影视在线观看| 影音先锋av在线资源站| 最新中文字幕观看| 在线观看免费欧美操逼视频| 国产精品一级无码免费播放| 18成人在线观看| 特级西西444www| 亚洲成人欧美| 狠狠色五月| 91无码人妻精品1国产四虎| 精品亚洲一区二区三区四区五区| 国产一级a毛一级a毛视频在线网站) | 91成人电影在线| 91操B| 热热av| 97人妻在线| 中文字幕乱妇无码Av在线| 久久三级| 国产人妻一区二区三区欧美毛片| 天天爽天天| 日韩乱码| 午夜传媒一区二区三区| 97精品人妻一区二区三区香蕉| 国产黄色视频免费在线观看| 波多野结衣亚洲视频| 少妇高潮无码| 手机看片日韩| 77777免费观看电视剧推荐爱的教育| 亚洲AV无码国产精品| 蜜桔视频嫩草蜜桃| av大片在线观看| 亚洲精品视频在线观看免费| 国产91在线看| 3D动漫精品一区二区在线播放免费| 一级二级三级视频| 亚洲激情视频在线观看| 欧美成人在线网站| 国产高清一区| 天美果冻麻豆国产一区| 91精品人妻人人爽| 奇米狠狠777| 日韩人妻在线播放| 日韩精品在线免费| 91亚洲欧美| 西西444WWW大胆无视频软件亮点 | 我要操影院| 特级西西人体WWWWW| 99一区二区| 99热亚洲| np高辣调教视频| 九九性视频| 五月丁香婷婷在线观看| 亚洲免费看黄| 国产精品久久久久久久久久久久久| 精品久久电影| 日韩无码操逼视频| 成人AAA片| 亚洲高清在线视频| 亚洲中文自拍| 少妇高潮一区二区三区99| 99免费在线视频| 天天拍夜夜拍| 九色PORNY9l原创自拍| 中文无码熟妇人妻AV在线| 国产视频福利| AV超碰| 精品国精品自拍自在线| 国产高清成人| 好吊妞在线| 亚洲日本在线观看| 影音先锋中文字幕资源| 免费人成视频观看| 成人无码观看| 国产A片免费| 日韩无码中文字幕| 久久婷视频| 日本黄色视频。| 久久肏逼| 色秘乱码一区二区三区唱戏| 色婷婷电影| 日韩东京热中文字幕| 大香蕉伊人免费| 狠狠干2024| 九九在线观看视频| 俺也去av| 人妻少妇av中文字幕乱码牛牛| 91麻豆一区二区| 自拍偷拍视频网| 亚洲精品久久久久久久久久久| 人妻体内射精一区二区| 亚洲黄色av| 成人五月天黄色电影| 乱轮视频| 亚洲色在线观看| 夜夜骑夜夜操| 久久精品综合| 无码波多野结衣| 老熟女导航| 亚洲免费在线视频观看| 久久久桃色| 天天视频亚洲| 黄视频免费| 亚洲网站视频| 人人摸人人搞| 91国产人妻| 黄色视频毛片一一| 婷婷五月天国产| 色婷婷亚洲| 黄片精品| 精品亚洲一区二区三区四区五区| 亚洲无码电影网站| 日韩毛片在线观看| AV婷婷在线| 久久精品黄色| 久久99精品视频| 中文字幕一区三区三A片密月| 久久青娱乐| 亚洲A网| 91精品一区二区| 人妻无码蜜桃视频| 91久久午夜无码鲁丝片久久人妻| 狠狠操狠狠操狠狠操| 97精品人妻一区二区三区| 久久午夜无码鲁丝午夜精品| 超碰97老师| 国模私拍视频| 丝袜制服中文字幕无码专区| 91人人妻人人爽| 亚洲AV无一区二区三区久久| 天天干视频| 亚洲三级无码视频| 成人视频18+在线观看| seseav| 五月丁香综合久久| 超碰九色| 熟妇人妻中文AV无码| 亚洲视频在线播放| 毛片A| 色欲一区二区| 亚洲av免费在线观看| 国产一级AA大片毛片| 色婷婷在线影院| 国产特级毛片| 国产AV日韩AⅤ亚洲AV中文| 免费日韩一级| 亚洲做爱视频| 中国乱伦视频| 国内精品久久久久久久久久| 男男做受A片AAAA| 奶大丰满一乱一视频一区二区三区在 | 三级片中文字幕| 中文字幕网站在线观看| 国产av网站大全| 日韩无码AV电影| 拍拍AV| 内射老熟女| 中文字幕在线观看免费高清完整版在线观看| 成人区色情综合小说| 人人妻天天干| 日日摸日日碰| 黄色av免费看| 亚洲成a| 亚洲无码综合| 国产成人精品一区二区三区四区 | 免费操逼视频网站| 中文字幕亚洲中文字幕| 久9视频| 国产激情av| 一区二区av在线| 国产中文在线观看| 亚洲日韩中文字幕| 亚洲黄色视频免费观看| 欧美AAAAAA| 激情无码五月天| 国产丝袜人妖TS系列| 国产成人aV| 大香蕉青青| A片免费播放| 丁香婷婷男人天堂| 可以免费看的黄色视频| 免费乱伦| 国产免费国产| 91精品国产aⅴ一区二区| 婷婷激情五月| 欧美操逼大片| 一级A片| 嫩草视频在线播放| 欧美三级片在线视频| 少妇人妻偷人精品无码视频新浪| 97精品人妻一区二区三区香蕉| 国产精品AV在线| 国产福利合集| 精品国产黄色| 欧美日韩A片欧美日| 亚洲一区二区三区在线播放| 亚洲人人操| 肏屄在线观看| 久久久偷拍| 无码不卡一区| 欧美久久视频| 在线观看av网站中文字幕| 特级西西人体444www高清| 久久18| 亚洲天堂高清无码| 456亚洲影院| 精品国产一区二区三区性色AV| 毛片A级| 国产激情久久| 九色麻豆| 激情91| 麻豆秘在线观看国产| 97人妻视频| 欧美色图网址| 自拍视频在线观看| 国产熟女一区二区三区五月婷| 狠狠狠狠狠操| 欧洲精品码一区二区三区免费看| 日本韩国欧美18| 日韩成人无码AV| 人妻无码中文字幕蜜桃| 久久久久久成人电影| 午夜性爱福利视频| 国产91精品看黄网站在线观看 | 理论在线视频| 黄色www| 操b视频在线播放| 91精品丝袜久久久久久久久久粉嫩 | 亚洲AV资源| 加勒比一区二区| 东京热无码免费视频| 麻豆视屏| AV黄色在线观看| 久射精品| 91久久婷婷国产| 久操手机在线| 色综合一区二区三区| 天天操夜夜操视频免费高清| x88AV吊钟奶熟女| 日韩高清精品在线| 狠狠无码| 操逼网站在线| 俺要操| 天天色天天干天天| 亚洲精品成人av无码| 91N视频| 网址你懂得| 91巨乳| 一区二区三区四区免费观看| 午夜无码久久| 西西人体大胆ww4444| 日韩极品在线观看| 日韩欧美在线免费观看| 天天爽夜夜爽夜夜爽| 无码人妻一区二区一牛影视| 精品在线播放视频| 91成人18| 日批动态图| 欧美色小说| 久久这里只有精品9| AV在线观看黄| 极品美鮑20p| 日韩性爱一区二区| 黄色一级免费电影| 国产成人A∨| 中文在线字幕高清电视剧| 日B视频网站| 欧美黑吊大战白妞| 操b视频在线播放| 99精品久久| 激情无码一区二区三区| 99在线观看| 欧洲第一无人区观看| 欧美精品午夜福利无码| 综合一区二区三区| www.777熟女人妻| 日韩福利电影| 97资源在线视频| 国产无遮挡又黄又爽又色学生软件| 亚洲精品久久久久毛片A级绿茶 | 日韩爱爱网站| 自拍第一页| 国产一级AV国产免费| 免费在线无码视频| 99热网站| 91麻豆精品国产91久久久久久| 韩剧《邻居的妻子》电视剧| 日皮在线观看| 中文亚洲精品字幕电影| 婷婷视频在线观看| 亚洲天堂AV在线观看| 高清无码18| 91丨九色丨国产在线| 成人午夜A片| 超碰人人插| 亚洲欧美日韩在线| 九九大香蕉| 久久精品在线播放| 奇米超碰| 97热热| 日本黄色电影在线播放| 一区精品| 成年人视频免费看| 人人爱人人爽人人操| 欧美性69| 影音先锋中文字幕av| 躁BBB躁BBB躁BBBBBB| 美腿丝袜中文字幕精品| 天天干天天色天天射| 色搞搞| 五月天婷婷影院影院| 天堂AV色| 大香蕉久热| 人人摸人人看人人| 日本无码一区二区| 91人妻人人爽人人澡人人爽 | 一色综合| 懂色成人视频在线观看| 欧美天堂在线观看| 免费黄色一级视频| 99re在线| 欧美少妇视频| 东北奇淫老老妇| 北条麻妃视频在线| 亚洲黄片大全| 无码人妻一区二区三区三| 亚洲国产一区二区三区| 少妇bbb搡bbbb搡bbbb| 黄色av免费看| 亚洲va国产va天堂va久久 | 特写毛茸茸BBwBBwBBw| 久久久国产探花视频| 色777| 岛国AV免费在线| 中文字幕浅井香舞被黑人俘虏| 人人射视频| 国产精品午夜在线| 中文字幕在线免费观看| 丁香婷婷视频| 广州媚黑妇系列视频在线| 一区二区三区免费| 免费看黄片的网站| 男人插女人网站| 日本成人午夜福利| 蜜桃AV在线| 一级黄色免费片| 水多多成人网站A片| 中文字幕第一区| 国产综合一区二区| 精品人妻一区二区三区四区不卡在 | 男女视频网站在线观看| 欧美肏逼视频| 再深点好爽灬轻点久久国产| 中文色片| 人人看人人干| 日韩经典无码| 可以看的毛片| 人妻丝袜蕾丝高跟双飞| 欧美激情五月天| 西西特级WWW444无码| 狠狠干老司机| 日逼黄片| www.6969成人片亚洲| 亚洲精品观看| 天天亚洲| 泄火熟妇2-ThePorn| 激情伊人| 高清无码小视频| 欧美一在线一综合| 久久久久久久性爱| 青青在线免费视频| 人人色网站| 91久久婷婷国产麻豆精品电影.co| 日韩色综合| 日韩免费视频一区| 三级片网站国产| 超碰狠狠操| 中文三区| 欧美视频h| 精品乱子伦一区二区三区毛| 国产视频网| 伊人大综合| 91爱搞在线| 欧美老妇日韩| 成人免费无码婬片在线| 久久免费国产视频| 综合色在线| 天堂网免费视频| AV在线天堂| 国产亚洲Av| 日韩中文字幕网| 在线免费观看国产视频| 91啪啪| 蜜桃av色偷偷av老熟女| 蜜桃AV无码一区二区三区| 国产女人高潮的AV毛片| 日韩精品成人专区无码| 欧美性猛交XXXX乱大交蜜桃| 中文字幕人妻系列| 秋霞欧美在线| 亚洲无码操逼视频| 最好看的MV中文字幕国语电影| 精品久久成人| 激情免费网站| 免费看黄色大全| 91人妻人人澡人人爽人人精品| 一级A黄色片| 亚洲成人视频免费在线观看 | 精品国产久久久久| 欧美成人一区免费视频| 丰满欧美熟妇免费视频| 国产视频福利在线| 日韩欧美中文字幕公布| 亚洲日韩色色| 蜜臀AV一区二区三区免费看| 成人免费版欧美州| 国产精品93333333| 97九色| 一区二区av在线| 欧美日本激情| 激情六月婷婷| 日韩无码免费播放| 可以在线观看的AV| 2018中文字幕第一页| 日韩中文字幕成人| 亚洲中文字幕在线视频| 特级西西444www高清| 国产嫩草精品A88AV| 亚洲AV一二三区| 日本视频在线免费| 中文字幕日韩无码电影| 日本无码嫩草一区二区| 国产专区在线| 亚洲综合成人网| 黄色一级片免费| 欧洲无码一区二区三区| www.操操网| 中文字幕乱妇无码Av在线| 日韩一级在线播放| 欧美成人高清视频| 亚洲乱码一区二区三区| 热久久最新| 特级西西444WWW高清大视频| 亚洲香蕉视频| 国产艹逼| 国产色视频在线| 欧美一区二区三区不卡| 中文字幕免费观看视频| 91区视频| 人人爱人人爽人人操| 国产亚洲午夜久久久成人电影 | 超碰777| 国模一区二区| 久色91| 亚洲无| 国产精品久久7777777精品无码 | 在线黄| 99热网| 久久久久久久久久成人永久免费视频| 蜜桃视频无码区在线观看| 九九成人免费视频| 欧美日韩四区| 国产在线不卡年轻点的| 天天爱天天射| 91探花视频精选在线播放| 中国老女人操逼视频| 无码视频在线看| 一级黄色免费片| 美女高潮在线| 午夜一本道| 欧美视频在线免费| 日本成人视频在线免费播放| 天天爱天天射| 亚洲午夜视频在线观看| 日本爱爱视频免费| 国产精品无码专区AV免费播放 | 久久一级视频| 搡中国东北老女人视频| 夜夜爽妓女77777毛片A片| 欧美区亚洲区| 国产成人777777精品综合| 躁BBB躁BBB躁BBBBBB日视频| 欧美性爱免费在线视频| 在线观看免费黄| 欧美色性乐汇操日本娘们| 一区精品| 三级片久久久| 91麻豆精品传媒国产| 亚洲无码电影网站| 9色网| 波多无码在线| 日韩欧美成人在线观看| 成人免费A片在线观看直播96| 色中色AV| 九九re精品视频在线观看| 国产高潮视频在线观看| 欧美日韩国产a| 国产欧美日韩综合| 阿宾MD0165麻豆沈娜娜| 中文字幕第一页在线| 成人网站在线免费| a视频在线免费观看| www.yw尤物| 91操B| 日韩成人无码电影| 大香蕉伊人在线网| 少妇搡BBBB搡BBB搡造水多| 午夜福利1000| 成人片免费看| 日韩av中文| 国产人妻精品一二三区| 午夜福利AV在线| 97国产精品手机| 日韩欧美亚洲一区二区三区| 少妇人妻一区二区三区| 91精品少妇高潮一区二区三区不卡| 91人人妻人人做人人爽| 国产婷婷五月天| 51一区二区三区| 蜜桃久久久亚洲精| 国产91综合一区在线观看| 日本黄色影视| 日本少妇高清视频| 91热99| 2026无码视频| 中文字幕乱码免费综合久久| 亚洲无码免费视频| 91久久久久久久久18| 超碰99在线| 国内久久| 熟女探花| 在线高清无码| 大香蕉欧美| 狼人综合网| 亚洲综合在线视频| 伊人网在线视频| 欧美三级视频| 免费一级无码婬片A片AAA毛片| 日本一级特黄电影| 朝鲜性感AV在线| 强伦轩人妻一区二区三区最新版本更新内容 | 中文字幕婷婷五月天| 亚洲综合网在线观看| 一级片免费观看视频| 国产一区二区不卡视频| 99re99热| 国产老女人农村HD| 中文字幕无码影院| 亚洲精品国产精品国自产| 国产免费www| 亚洲男女免费视频| 欧美日韩精品一区二区三区视频播放| 日本精品黄色| 99久久婷婷| 高清无码二区| 北条麻妃99精品| 国产精品93333333| 午夜欧美| 国产黄色视频在线免费观看| 人人人人人操| 久久午夜夜伦鲁鲁一区二区| 一本大道东京热av无码| 国产一级内射| 国产操逼网| www.a日逼| 日韩精品你懂的| 日韩一区二区免费看| 亚洲jizzjizz| 欧美+日产+中文| 天天操超碰| 激情国产AV| 欧美人操逼视频| 欧美自拍视频在线| 亚州天堂| 久久AV影院| 国产黄在线观看| 中文无码熟妇人妻AV在线| 五月丁香色婷婷| 中文无码字幕| 综合导航无码| 人人操人人摸人人射| 亚洲最新AV在线| 水蜜桃视频在线播放| 欧美日屄视频| 在线观看www视频| 99久久婷婷| 麻豆亚洲AV成人无码久久精品| 中文字幕人妻互换av久久| 一本道中文字幕| 国产在线观看免费视频| 青娱乐AV| 欧美视频色| 狠狠色噜噜狠狠狠7777米奇网| 88AV在线观看| 日韩专区中文字幕| 美日韩一区二区三区| 国产伦精一品二品三品app| 久久久成人免费电影| 一区二区三区无码在线观看| 国产免费一区二区三区最新不卡| 另类av| 日韩三级在线免费观看| 四川BBB搡BBB爽爽爽欧美| 欧美日韩北条麻妃视频在线观看| 亚洲天堂国产| 亚洲成人免费观看| 国产一级操逼视频| 国产三级片在线视频| 欧美激情五月| 午夜艹| 国产一区免费视频| 99视频+国产日韩欧美| 色婷在线视频| 青草久久视频| 国产aⅴ激情无码久久久无码| 美女被操91| 大香伊人网| 中文人妻| 成人资源站| 久久久精品在线| 色婷视频| 久久国产激情| 欧美日韩三区| 欧美中文字幕在线观看| 国产嫩草久久久一二三久久免费观看 | 亚洲欧洲成人在线| 婷婷五月综合网| 亚洲无码中文字幕在线观看| 国产丝袜AV| 玖玖国产精品| 一区二区无码av| 中文字幕精品人妻| 伊人久久电影| 在线观看亚洲视频| 欧美性猛交一区二区三区精品| 欧美日韩中文在线观看| 日韩逼逼| 中文字幕一区二区三区日本在线| 成人精品国产| 日逼无码| 2025最新偷拍| 91一级A片在线观看| 翔田千里无码播放| 亚洲天堂AV网| 在线观看禁无码精品| 99精品视频免费观看| 免费看A级片| 99精品在线播放| 99久久夜色精品国产亚洲| 国产成人无码区亚洲A片356p| 欧美色图在线播放| 欧美国产日韩综合在线观看170| 国产一级黄色毛片| 伊人大香蕉视频在线观看| 又黄又爽的网站| 亚洲国产精品久久人人爱| 无码一区二区三区四区五区| 少妇人妻一区| 国产av网| 亚洲小视频在线播放| 国产福利视频导航| www.四虎成人网站| 国产欧美在线观看不卡| www.久久精品视频| 91人妻人人爽人人澡人人爽| 麻豆A∨在线| 91日韩在线| 中文字幕亚洲观看| 多啪啪免费视频| 三级网站免费观看| 免费一级电影| 中文字幕黑人无码| 无码秘蜜桃一区二区三区| 在线观看黄视频| 香蕉视频在线看| 91天天综合| 国产免费黄色视频网站| 无码视频久久| 日本精品无码a62v在线| 大香蕉伊人视频| 中文字幕一区二区三区人妻在线视频 | 欧美精品在线免费观看| 三级网站视频| 一级成人A片| 在线一区二区三区| 日本人妻在线播放| 大香蕉免费网站| 91丨九色丨蝌蚪丨成人| 日本在线免费观看| 777国产盗摄偷窥精品0000| 91久久久久久久18| 美女肏| 17.3c一起起草| 蜜桃视频欧美| 一本加勒比HEZYO东京热无码| 黄色视频网站在线免费观看| 日本a片| 精品蜜桃秘一区二区三区观看| 国产美女福利| 北条麻妃99| 日韩精品在线免费观看| 午夜一本道| 先锋影音在线| 免费草逼视频| 欧美www| 日日夜夜精选视频| 欧美在线一级| 99热综合| 无遮挡动态图| 在线观看免费黄色| 日日摸日日| 成人肏逼视频在线| 搡bbbb| 亚洲一区在线免费观看| 国产九色91回来了| 婷婷在线观看免费| yw在线播放| 日本黄色视频在线播放| 亚洲成人69| 国产91探花精品一区二区| 欧美成人三级在线| 亚洲一区二区在线| A级片免费看| 欧美激情片| 亚洲一级av| 亚洲成人情趣大香蕉| 亚洲操色| 米奇色色| 在线观看黄片网站| 在线看亚洲| 国产在线资源| 四虎在线视频观看96| 五月婷视频| 嫩BBB搡BBB槡BBB小号| 人人摸人人操人人摸| 亚洲天堂网在线观看视频| 欧美一级黃色A片免费看小优视频| 久久成人123| 国产AV剧情| 免费成人大片| 国产一级A片| 人妻少妇综合| 超碰人人人人人| 亚洲福利视频97| 一本一道波多野结衣潮喷视频| 99久久99久久| 日韩综合| A片黄色视频| 欧美日韩免费一区二区三区| 夫妻成人免费看片一区二区| 熟女熟妇人妻一区二区三区| 天天操夜夜撸| 2012天天夜夜| 青娱乐网站| 欧美v在线| 国产,亚洲91| 午夜做爱视频| 成人777| 亚洲天堂在线免费观看视频| 日本少妇BBW| 国产综合自拍| 国产一区二区三区四区在线观看| 色吟AV| 91大神免费在线观看| 可以免费观看的毛片| 久久久久久成人电影| 中文字幕高清无码在线播放| 免费看黄的网站在线观看| 成人免费毛片AAAAAA片| 97精品人妻一区二区三区香蕉农 | 午夜爽爽视频|