精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

深入淺出孿生神經網絡,手把手教你搭建起來 原創

發布于 2024-8-15 15:10
瀏覽
0收藏

使用孿生神經網絡在PyTorch中實現簽名驗證的方法,以及在數據有限的情況下如何高效訓練模型。

在深度學習的領域里,神經網絡幾乎能處理各種任務,但通常需要依賴于海量數據來達到最佳效果。然而,對于像面部識別和簽名驗證這類任務,我們不可能總是有大量的數據可用。由此產生了一種新型的神經網絡架構,稱為孿生網絡。

孿生神經網絡能夠基于少量數據實現精準預測。本文介紹孿生神經網絡的基本概念,教讀者如何用PyTorch來搭建一個簽名驗證系統。

1 孿生神經網絡概述

孿生神經網絡由兩個或若干個結構和參數完全相同的子網絡構成,這些子網絡在更新參數時同步進行。

這種網絡通過分析輸入樣本的特征向量來評估它們的相似度,這一特性讓其在眾多應用領域中發揮著重要作用。

傳統神經網絡一般被訓練用于識別多個不同的類別。當數據集中需要添加或移除類別時,這些網絡通常需要經過調整和重新訓練,這個過程不僅耗時,而且通常需要大量的數據支持。

而孿生網絡專注于學習樣本之間的相似性,能夠輕松識別圖像是否相似。這種能力使孿生網絡在處理新類別數據時,無需重新訓練即可進行有效的分類,提供了一種靈活且高效的解決方案。

1.1 優劣勢

優勢:

  • 對類別失衡的適應能力更強:通過一次性學習,孿生網絡僅需少量樣本即可有效識別圖像類別,具有良好的魯棒性和適應性。
  • 與頂級分類器的協同效應:由于其獨特的學習機制,與傳統分類方法相比,孿生網絡與最佳分類器(如GBM和隨機森林)的結合能夠帶來更佳的性能表現。
  • 學習語義相似性:孿生網絡專注于深層特征的嵌入學習,將相同類別或概念的樣本聚集在一起,從而能夠捕捉和學習它們之間的語義相似性。

劣勢:

  • 訓練耗時較長:孿生網絡采用成對學習機制,需要綜合考慮所有可用信息,因此其訓練過程比逐點學習的分類網絡更為耗時。
  • 缺乏概率輸出:孿生網絡的訓練過程專注于成對比較,它不提供預測結果的概率值,而是直接輸出各類別之間的相對距離。

1.2 孿生網絡中使用的損失函數

深入淺出孿生神經網絡,手把手教你搭建起來-AI.x社區

在孿生網絡的訓練過程中,由于采用的是成對學習方式,傳統的交叉熵損失函數不再適用。目前,主要有兩種損失函數用于訓練這類網絡:

1)三元組損失

三元組是一種特殊的損失函數,它通過比較基線(錨點)輸入與正樣本(真實輸入)和負樣本(虛假輸入)之間的差異來工作。其目標是最小化錨點與正樣本之間的距離,同時最大化錨點與負樣本之間的距離,從而確保網絡能夠準確區分不同類別的樣本。

深入淺出孿生神經網絡,手把手教你搭建起來-AI.x社區

在上述方程中,α是控制間隔的參數,用于調整相似樣本對與不相似樣本對之間的距離差異;f(A)、f(P)、f(N)分別代表錨點、正樣本和負樣本的特征嵌入。

訓練時,將由錨點圖像、負樣本圖像和正樣本圖像組成的三元組作為單一樣本輸入到模型中。這樣做的目的是確保錨點與正樣本圖像之間的距離小于錨點與負樣本圖像之間的距離。

2)對比損失

對比損失是當前非常流行的損失函數,它基于距離而非傳統的錯誤預測來計算損失。該損失函數主要應用于特征嵌入的學習,目標是優化樣本點在歐幾里得空間(Euclidean space)的分布:對于相似的樣本點,我們希望它們之間的距離盡可能地小,以便能夠準確捕捉它們之間的相似性;對于不相似的樣本點,則希望它們之間的距離足夠大,以便于區分差異。

深入淺出孿生神經網絡,手把手教你搭建起來-AI.x社區

定義Dw是歐幾里得距離(Euclidean distance):

深入淺出孿生神經網絡,手把手教你搭建起來-AI.x社區

Gw是網絡對一張圖像的輸出結果。

2 孿生網絡在簽名驗證領域的應用

孿生網絡具有優秀的相似性比較能力,常被應用于需要驗證身份的系統中,例如面部識別和簽名驗證。

接下來,將在PyTorch框架下構建一個基于孿生神經網絡的簽名驗證系統,實現高精度的身份驗證功能。

深入淺出孿生神經網絡,手把手教你搭建起來-AI.x社區

2.1 數據集和數據集預處理

使用ICDAR 2011數據集進行簽名驗證,該數據集收錄了荷蘭用戶的簽名樣本,包括真實和偽造的簽名。數據集分為訓練和測試部分,每個部分都有用戶的真實與偽造簽名文件夾。數據集的標簽信息以CSV文件的形式提供。

深入淺出孿生神經網絡,手把手教你搭建起來-AI.x社區

ICDAR 數據集中的簽名

在把這些原始數據輸入神經網絡之前,需要將圖像轉換為張量,并整合CSV中的標簽。這可以通過PyTorch的自定義數據集類實現,以下是代碼示例。

#數據預處理和加載
class SiameseDataset():
    def __init__(self,training_csv=None,training_dir=None,transform=None):
        # used to prepare the labels and images path
        self.train_df=pd.read_csv(training_csv)
        self.train_df.columns =["image1","image2","label"]
        self.train_dir = training_dir    
        self.transform = transform

    def __getitem__(self,index):
        # 獲取圖像路徑
        image1_path=os.path.join(self.train_dir,self.train_df.iat[index,0])
        image2_path=os.path.join(self.train_dir,self.train_df.iat[index,1])
        # Loading the image
        img0 = Image.open(image1_path)
        img1 = Image.open(image2_path)
        img0 = img0.convert("L")
        img1 = img1.convert("L")
        # 應用圖像變換
        if self.transform is not None:
            img0 = self.transform(img0)
            img1 = self.transform(img1)
        return img0, img1 , th.from_numpy(np.array([int(self.train_df.iat[index,2])],dtype=np.float32))
    def __len__(self):
        return len(self.train_df)

預處理數據集后,需要在PyTorch框架中使用Dataloader類來加載這些數據。為了適應計算需求,通過transforms函數對圖像進行尺寸調整,將其高度和寬度統一縮減至105像素。

# 從原始圖像文件夾加載數據集
siamese_dataset = SiameseDataset(training_csv,training_dir,
                                        transform=transforms.Compose([transforms.Resize((105,105)),
                                                                      transforms.ToTensor()
                                                                      ])
                                       )

2.2 神經網絡架構

現在在PyTorch中創建一個神經網絡。

#創建孿生網絡
class SiameseNetwork(nn.Module):
    def __init__(self):
        super(SiameseNetwork, self).__init__()
        # 設置CNN層序列
        self.cnn1 = nn.Sequential(
            nn.Conv2d(1, 96, kernel_size=11,stride=1),
            nn.ReLU(inplace=True),
            nn.LocalResponseNorm(5,alpha=0.0001,beta=0.75,k=2),
            nn.MaxPool2d(3, stride=2),
            
            nn.Conv2d(96, 256, kernel_size=5,stride=1,padding=2),
            nn.ReLU(inplace=True),
            nn.LocalResponseNorm(5,alpha=0.0001,beta=0.75,k=2),
            nn.MaxPool2d(3, stride=2),
            nn.Dropout2d(p=0.3),

            nn.Conv2d(256,384 , kernel_size=3,stride=1,padding=1),
            nn.ReLU(inplace=True),
            
            nn.Conv2d(384,256 , kernel_size=3,stride=1,padding=1),
            nn.ReLU(inplace=True),
            nn.MaxPool2d(3, stride=2),
            nn.Dropout2d(p=0.3),
        )
        # 定義全連接層
        self.fc1 = nn.Sequential(
            nn.Linear(30976, 1024),
            nn.ReLU(inplace=True),
            nn.Dropout2d(p=0.5),
            
            nn.Linear(1024, 128),
            nn.ReLU(inplace=True),
            
            nn.Linear(128,2))
        
    def forward_once(self, x):
        # 前向傳播
        output = self.cnn1(x)
        output = output.view(output.size()[0], -1)
        output = self.fc1(output)
        return output

    def forward(self, input1, input2):
        # 輸入1的前向傳播
        output1 = self.forward_once(input1)
        # 輸入2的前向傳播
        output2 = self.forward_once(input2)
        return output1, output2

在代碼實現中,構建了這樣的神經網絡結構:首層卷積層配備了96個11x11大小的卷積核,步長為1像素,用于處理105x105像素的輸入簽名圖像。緊接著的第二層卷積層,以第一層的輸出(經過響應歸一化和池化處理)為輸入,使用256個5x5大小的卷積核進行特征提取。

第三層和第四層卷積層之間不涉及任何池化或歸一化操作。第三層使用384個3x3大小的卷積核,直接連接到第二層卷積層的輸出(該輸出已經經過歸一化、池化和dropout處理)。第四層卷積層則包含256個3x3大小的卷積核。這樣的設計使網絡能夠學習到較少的低級特征,以適應更小的感受野,同時捕捉到更多的高級或抽象特征。

網絡中的第一層全連接層包含1024個神經元,而第二層全連接層則有128個神經元。

通過限制兩個網絡共享相同的權重,實現了使用單一模型連續處理兩張圖像的策略。這種方法不僅節省了內存空間,還提升了計算效率。具體操作中,對這兩張圖像計算損失值,并執行反向傳播來更新權重。

2.3 損失函數

對于這項任務,使用對比損失函數來學習特征嵌入,其目標是讓相似的樣本點在歐幾里得空間中的距離盡可能小,而不相似的樣本點則保持較大的距離。以下是在PyTorch框架中實現對比損失函數的方法。

class ContrastiveLoss(torch.nn.Module):
    """
    Contrastive loss function.
    Based on:
    """

    def __init__(self, margin=1.0):
        super(ContrastiveLoss, self).__init__()
        self.margin = margin

    def forward(self, x0, x1, y):
        # 歐幾里得距離
        diff = x0 - x1
        dist_sq = torch.sum(torch.pow(diff, 2), 1)
        dist = torch.sqrt(dist_sq)

        mdist = self.margin - dist
        dist = torch.clamp(mdist, min=0.0)
        loss = y * dist_sq + (1 - y) * torch.pow(dist, 2)
        loss = torch.sum(loss) / 2.0 / x0.size()[0]
        return loss

2.4 訓練網絡

孿生網絡的訓練過程如下:

  • 初始化網絡、損失函數和優化器。
  • 通過網絡傳遞圖像對的第一張圖像。
  • 通過網絡傳遞圖像對的第二張圖像。
  • 使用第一張和第二張圖像的輸出計算損失。
  • 將損失反向傳播以計算模型的梯度。
  • 使用優化器更新權重。
  • 保存模型。

# 聲明孿生網絡
net = SiameseNetwork().cuda()
# 聲明損失函數
criterion = ContrastiveLoss()
# 聲明優化器
optimizer = th.optim.Adam(net.parameters(), lr=1e-3, weight_decay=0.0005)
#訓練模型
def train():
    loss=[] 
    counter=[]
    iteration_number = 0
    for epoch in range(1,config.epochs):
        for i, data in enumerate(train_dataloader,0):
            img0, img1 , label = data
            img0, img1 , label = img0.cuda(), img1.cuda() , label.cuda()
            optimizer.zero_grad()
            output1,output2 = net(img0,img1)
            loss_contrastive = criterion(output1,output2,label)
            loss_contrastive.backward()
            optimizer.step()    
        print("Epoch {}\n Current loss {}\n".format(epoch,loss_contrastive.item()))
        iteration_number += 10
        counter.append(iteration_number)
        loss.append(loss_contrastive.item())
    show_plot(counter, loss)   
    return net
#將設備設置為cuda
device = torch.device('cuda' if th.cuda.is_available() else 'cpu')
model = train()
torch.save(model.state_dict(), "model.pt")
print("Model Saved Successfully")

該模型在Google Colab上訓練了20個周期,持續一個小時,以下是隨時間變化的損失圖:

深入淺出孿生神經網絡,手把手教你搭建起來-AI.x社區

2.5 測試模型

在測試數據集上測試我們的簽名驗證系統。

  • 使用Pytorch的DataLoader類加載測試數據集
  • 傳遞圖像對和標簽
  • 找到圖像之間的歐幾里得距離
  • 根據歐幾里得距離輸出結果

# 加載測試數據集
test_dataset = SiameseDataset(training_csv=testing_csv,training_dir=testing_dir,
                                        transform=transforms.Compose([transforms.Resize((105,105)),
                                                                      transforms.ToTensor()
                                                                      ])
                                       )

test_dataloader = DataLoader(test_dataset,num_workers=6,batch_size=1,shuffle=True)
#測試網絡
count=0
for i, data in enumerate(test_dataloader,0): 
  x0, x1 , label = data
  concat = torch.cat((x0,x1),0)
  output1,output2 = model(x0.to(device),x1.to(device))

  eucledian_distance = F.pairwise_distance(output1, output2)
    
  if label==torch.FloatTensor([[0]]):
    label="Original Pair Of Signature"
  else:
    label="Forged Pair Of Signature"
    
  imshow(torchvision.utils.make_grid(concat))
  print("Predicted Eucledian Distance:-",eucledian_distance.item())
  print("Actual Label:-",label)
  count=count+1
  if count ==10:
     break

預測結果如下,

深入淺出孿生神經網絡,手把手教你搭建起來-AI.x社區


本文轉載自??AI科技論談??,作者: AI科技論談

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
已于2024-8-15 17:34:53修改
收藏
回復
舉報
回復
相關推薦
国产日产欧美一区二区| 国产精品美女在线观看| 日韩少妇一区二区| 欧美美女日韩| 国产精品成人午夜| 韩国一区二区三区美女美女秀| 精品成人av一区二区在线播放| 欧美精品一区二区久久| 日韩亚洲欧美在线| 熟妇人妻va精品中文字幕| 韩国中文字幕在线| 91丨porny丨中文| 91精品视频在线播放| 久久草视频在线| 天天av综合| 亚洲日本欧美日韩高观看| 亚洲av毛片在线观看| 色戒汤唯在线观看| 一区二区三区欧美| 天天综合色天天综合色hd| 丰满人妻一区二区三区免费视频 | 中文字幕日本一区二区| 悠悠色在线精品| 五月天色一区| 色鬼7777久久| 成人av电影免费在线播放| 国产日韩视频在线观看| 成人毛片在线播放| 极品中文字幕一区| 欧美成人精品不卡视频在线观看| 免费黄在线观看| 一区二区三区日本久久久 | 精品一级毛片| 日韩精品在线观看网站| 国产精九九网站漫画| 亚洲国产91视频| 欧美在线观看一区| 久久久久狠狠高潮亚洲精品| japanese色国产在线看视频| 亚洲精选免费视频| 中文字幕99| 生活片a∨在线观看| 91老司机福利 在线| 黄色小网站91| 免费看日韩av| 国产激情精品久久久第一区二区| 国产精品日韩av| 中文字幕人妻一区二| 欧美日韩大片免费观看| 亚洲精品一区二区三区影院| 香蕉视频xxxx| 日本在线视频一区二区三区| 欧美一区二区视频免费观看| 天堂视频免费看| 男人亚洲天堂| 欧美日韩精品三区| 永久免费的av网站| av在线亚洲一区| 91精品国产色综合久久ai换脸| 日本国产一级片| 国产精区一区二区| 日韩美女主播在线视频一区二区三区| 色婷婷综合在线观看| 久久丁香四色| 亚洲国产古装精品网站| 亚洲精品女人久久久| 亚洲专区视频| 最近2019中文字幕mv免费看| 老司机成人免费视频| 欧美成人69av| 久久青草精品视频免费观看| 九九热在线视频播放| 久久精品毛片| 国产乱肥老妇国产一区二| 国产精品久久久久久久久久久久久久久久| 久久精品久久综合| 亚洲一区二区久久久久久| 性猛交富婆╳xxx乱大交天津| 成人手机电影网| 欧美日韩亚洲一区二区三区在线观看| yourporn在线观看视频| 亚洲欧美日韩在线播放| 麻豆tv在线播放| 男人最爱成人网| 欧美精品一卡二卡| 99re这里只有| 日韩在线高清| 欧美激情一区二区三级高清视频| 亚州国产精品视频| 免费人成黄页网站在线一区二区| 91免费在线视频网站| 天堂网2014av| 最新热久久免费视频| 日韩成人三级视频| 国产一区一一区高清不卡| 欧美一区二区三区免费在线看| 性农村xxxxx小树林| 日本成人小视频| 久久久女人电视剧免费播放下载| youjizz在线视频| 国产一二精品视频| 欧美久久电影| 国产99re66在线视频| 岛国av一区二区| 一区二区三区网址| 成人黄色一区二区| 福利视频在线播放| 亚洲小说欧美激情另类| 四虎永久在线精品无码视频| 高清一区二区中文字幕| 亚洲精品日韩欧美| avtt天堂在线| 琪琪一区二区三区| 久久国产精品一区二区三区四区 | 久久草在线视频| 久久久精品网站| 黄色片视频免费| 国产69精品久久久久777| 亚洲精品日韩成人| 女生影院久久| 日韩精品免费在线播放| 久久久久久久蜜桃| 九色|91porny| 国产一区二区三区黄| 怡红院在线播放| 欧美三级电影网站| 白丝女仆被免费网站| 激情综合中文娱乐网| 国产欧美精品一区二区三区-老狼| 亚洲欧美综合一区二区| 亚洲国产婷婷综合在线精品| 国产黄色一区二区三区 | 国产91综合一区在线观看| 亚洲一区高清| 巨胸喷奶水www久久久免费动漫| 白嫩白嫩国产精品| 欧美日韩一区中文字幕| 自拍偷拍亚洲天堂| 亚洲激情不卡| 鬼打鬼之黄金道士1992林正英| 青青影院在线观看| 欧美日韩一区高清| 四季av中文字幕| 蜜桃视频在线观看一区| 日本一区二区三区四区高清视频 | 一区视频在线看| 成人av男人的天堂| 中文字幕伦理免费在线视频 | 亚洲天堂网2018| 午夜免费一区| 亚洲a区在线视频| 含羞草www国产在线视频| 欧美日韩国产大片| 糖心vlog免费在线观看| 国内外成人在线视频| 女女同性女同一区二区三区按摩| 亚洲免费一区| 久久综合九色九九| 亚洲大尺度网站| 亚洲18色成人| 国产精品无码一区二区三区| 久久久国产亚洲精品| 日本一区二区久久精品| 欧美成人福利| 九九久久综合网站| 日本xxxxwww| 日韩欧美在线一区| 久久视频一区二区三区| 国产在线精品一区二区三区不卡 | 九色综合日本| 免费高清视频在线一区| 深夜精品寂寞黄网站在线观看| 91欧美日韩麻豆精品| 一区二区三区四区在线免费观看 | 国产精品久久777777换脸| 亚洲精品国产品国语在线app| 精品少妇一区二区三区视频免付费 | 国产亚洲一区二区三区在线播放 | 欧美1区2区视频| 国产99在线免费| 自拍在线观看| www高清在线视频日韩欧美| 精品国产无码AV| 欧美日韩午夜激情| 欧美肥妇bbwbbw| 99久久久免费精品国产一区二区| 激情网站五月天| 婷婷久久国产对白刺激五月99| 成人资源av| 亚洲爱爱视频| 欧美第一淫aaasss性| 精品成人一区二区三区免费视频| 91超碰这里只有精品国产| 日韩成人免费在线观看| 国产精品污www在线观看| 免费欧美一级片| 久久男女视频| 成年在线观看视频| 黄色不卡一区| 国产亚洲第一区| 色999久久久精品人人澡69| 97视频免费看| 97影院秋霞午夜在线观看| 亚洲人成网站在线播| 亚洲国产精品久久人人爱潘金莲 | www日本在线| 欧美写真视频网站| 日本网站在线免费观看| 日韩理论片一区二区| a级在线观看视频| 国产成人免费高清| 最新国产黄色网址| 日韩精品一卡二卡三卡四卡无卡| 青青草国产免费| 亚洲精品二区三区| 日韩欧美三级一区二区| 久久综合五月婷婷| 亚洲一区二区三区香蕉| 福利一区在线| 日韩免费在线播放| 91白丝在线| 欧美激情国产高清| 18videosex性欧美麻豆| 亚洲国产中文在线| 久久久久久com| 国产精品久久久久久福利| 国产一级揄自揄精品视频| 亚欧洲精品视频| 亚洲成人黄色网址| 精品人妻无码一区二区色欲产成人 | 少妇高潮久久久久久潘金莲| 欧洲亚洲精品视频| 日韩电影在线观看中文字幕| 亚洲乱码精品久久久久.. | 亚洲av电影一区| 亚洲第一视频在线观看| 99久久国产免费| 91精品婷婷国产综合久久 | 亚洲国产免费av| 亚洲av永久无码国产精品久久 | 黄频在线免费观看| 欧美xxxx在线观看| 亚洲精品国产一区二| 日韩精品一区二区三区三区免费| 国产视频一区二区三| 91精品国产91久久久久久最新毛片| 中文字幕日韩国产| 欧美日韩精品福利| 亚洲天堂中文网| 欧美日韩综合不卡| 91国内精品视频| 91精品国产综合久久久久久漫画| 亚洲综合精品国产一区二区三区| 欧美日本在线看| 国产乱淫a∨片免费观看| 欧美一区二区三级| 黄色片一区二区| 日韩精品小视频| 国产在线视频你懂得| 中文字幕精品久久| av片在线观看永久免费| 欧美激情按摩在线| 毛片无码国产| 国产精自产拍久久久久久| 精品久久亚洲| 精品综合久久久| 欧美日韩激情| 亚洲AV无码成人精品一区| 欧美日韩免费| 国产精品宾馆在线精品酒店| 日韩经典一区二区| 中文字幕55页| 91色在线porny| 污污视频网站在线免费观看| 亚洲日本va| 日韩精品一区二区三区老鸭窝| 亚洲AV午夜精品| 亚洲欧美日韩在线高清直播| 一区二区高清不卡| 欧美激情中文网| 校园春色亚洲色图| 亚洲一区制服诱惑| 加勒比久久高清| 亚洲欧美日韩国产yyy| 韩国一区二区三区在线观看| 丝袜老师办公室里做好紧好爽 | 97欧美在线视频| 日本精品久久久久久久久久| 久久精品日韩欧美| 中文字幕一区二区在线观看视频| 成人av午夜电影| 91精品久久久久久久久久久久| 国产精品超碰97尤物18| www.av麻豆| 欧美精品xxxxbbbb| 午夜视频在线播放| 久久亚洲精品视频| 成人影院大全| 99久re热视频这里只有精品6| 色综合综合色| 精品少妇人欧美激情在线观看| 日韩av午夜在线观看| 蜜臀aⅴ国产精品久久久国产老师| 国产欧美日韩视频在线观看| 久久免费播放视频| 欧美精品自拍偷拍动漫精品| 欧美套图亚洲一区| 久久久久久久久电影| 国产极品嫩模在线观看91精品| 国产伦精品一区二区三区四区视频 | 又污又黄的网站| 欧美性猛交xxx| 亚洲成a人片在线| 日韩视频免费在线| 欧美亚洲大片| 久久久婷婷一区二区三区不卡| 欧美.www| 中文av字幕在线观看| 久久精品亚洲乱码伦伦中文 | 日本在线观看网站| 日韩av手机在线观看| 操欧美女人视频| 最新视频 - x88av| 美女视频网站久久| 亚洲v国产v欧美v久久久久久| 亚洲成在人线免费| 精品人妻一区二区三区蜜桃| 日韩中文字幕国产精品| 三上悠亚亚洲一区| 久久久综合香蕉尹人综合网| 伊人久久大香线蕉av超碰演员| 在线看免费毛片| 国产女主播一区| 国产男人搡女人免费视频| 日韩大片免费观看视频播放| 波多野结依一区| 国产精品视频免费一区| 亚洲破处大片| 午夜xxxxx| 亚洲欧美日韩久久精品| 国产精品高潮呻吟久久久| 日韩中文字幕av| 日韩色性视频| 中文字幕一区二区三区四区五区人| 毛片基地黄久久久久久天堂| 亚洲精品成人av久久| 精品视频999| 秋霞午夜理伦电影在线观看| 川上优av一区二区线观看| 小小影院久久| 曰本三级日本三级日本三级| 亚洲精品视频在线看| 亚洲高清视频在线播放| 欧美交受高潮1| 欧洲精品一区| 久久久久免费精品| 国产精品网友自拍| 国产毛片在线视频| 欧美多人爱爱视频网站| 国产一区在线电影| 99福利在线观看| 亚洲国产激情av| 99国产精品99| 国外色69视频在线观看| 自拍视频一区| 亚洲娇小娇小娇小| 亚洲免费观看视频| 特级丰满少妇一级aaaa爱毛片| 国产成人a亚洲精品| 日韩久久电影| 人妻av一区二区三区| 天天综合色天天| 番号集在线观看| 91在线看网站| 销魂美女一区二区三区视频在线| 微拍福利一区二区| 在线播放91灌醉迷j高跟美女| 成人影院在线播放| 日本不卡一区二区三区视频| 美女视频黄免费的久久 | 色综合天天综合狠狠| 91这里只有精品| 国产精品一区二区免费| 久色成人在线| 黄页网站免费观看| 亚洲视频免费一区| 日韩欧美一级| 久热免费在线观看| 亚洲欧美电影院| 男人av在线| 成人免费视频视频在| 天堂va蜜桃一区二区三区漫画版| 色欲人妻综合网| 亚洲天堂一区二区三区| 日韩精品三级| 又色又爽又高潮免费视频国产| 日韩美女视频一区二区| 天堂8在线视频| 97视频中文字幕| 毛片av一区二区三区|