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

教你使用TensorFlow2對識別驗證碼

開發 前端
驗證碼是根據隨機字符生成一幅圖片,然后在圖片中加入干擾象素,用戶必須手動填入,防止有人利用機器人自動批量注冊、灌水、發垃圾廣告等等 。

[[405770]]

 驗證碼是根據隨機字符生成一幅圖片,然后在圖片中加入干擾象素,用戶必須手動填入,防止有人利用機器人自動批量注冊、灌水、發垃圾廣告等等 。

數據集來源:https://www.kaggle.com/fournierp/captcha-version-2-images

圖片是5個字母的單詞,可以包含數字。這些圖像應用了噪聲(模糊和一條線)。它們是200 x 50 PNG。我們的任務是嘗試制作光學字符識別算法的模型。

在數據集中存在的驗證碼png圖片,對應的標簽就是圖片的名字。

  1. import os 
  2. import numpy as np 
  3. import pandas as pd 
  4. import cv2 
  5. import matplotlib.pyplot as plt 
  6. import seaborn as sns 
  7. # imgaug 圖片數據增強 
  8. import imgaug.augmenters as iaa 
  9. import tensorflow as tf 
  10. # Conv2D MaxPooling2D Dropout Flatten Dense BN  GAP 
  11. from tensorflow.keras.layers import Conv2D, MaxPooling2D, Dropout, Flatten, Dense, Layer, BatchNormalization, GlobalAveragePooling2D  
  12. from tensorflow.keras.optimizers import Adam 
  13. from tensorflow.keras import Model, Input  
  14. from tensorflow.keras.callbacks import EarlyStopping, ReduceLROnPlateau 
  15. # 圖片處理器 
  16. from tensorflow.keras.preprocessing.image import ImageDataGenerator 
  17. import plotly.express as px 
  18. import plotly.graph_objects as go 
  19. import plotly.offline as pyo 
  20. pyo.init_notebook_mode() 

對數據進行一個簡單的分析,統計圖像中大約出現了什么樣的符號。

  1. # 數據路徑 
  2. DIR = '../input/captcha-version-2-images/samples/samples' 
  3. # 存儲驗證碼的標簽 
  4. captcha_list = [] 
  5. characters = {} 
  6. for captcha in os.listdir(DIR): 
  7.     captcha_list.append(captcha) 
  8.     # 每張驗證碼的captcha_code 
  9.     captcha_code = captcha.split(".")[0] 
  10.     for i in captcha_code: 
  11.         # 遍歷captcha_code  
  12.         characters[i] = characters.get(i, 0) +1 
  13. symbols = list(characters.keys()) 
  14. len_symbols = len(symbols) 
  15. print(f'圖像中只使用了{len_symbols}符號'
  16.  
  17. plt.bar(*zip(*characters.items())) 
  18. plt.title('Frequency of symbols'
  19. plt.show() 

 

如何提取圖像的數據建立X,y??

  1. # 如何提取圖像 建立 model  X 的shape  1070 * 50 * 200 * 1  
  2. # y的shape 5 * 1070 * 19 
  3.   
  4. for i, captcha in enumerate(captcha_list): 
  5.     captcha_code = captcha.split('.')[0] 
  6.     # cv2.IMREAD_GRAYSCALE 灰度圖 
  7.     captcha_cv2 = cv2.imread(os.path.join(DIR, captcha),cv2.IMREAD_GRAYSCALE) 
  8.     # 縮放 
  9.     captcha_cv2 = captcha_cv2 / 255.0 
  10.     # print(captcha_cv2.shape) (50, 200)  
  11.     # 將captcha_cv2的(50, 200) 切換成(50, 200, 1) 
  12.     captcha_cv2 = np.reshape(captcha_cv2, img_shape) 
  13.     # (5,19) 
  14.     targs = np.zeros((len_captcha, len_symbols)) 
  15.      
  16.     for a, b in enumerate(captcha_code): 
  17.         targs[a, symbols.index(b)] = 1 
  18.     X[i] = captcha_cv2 
  19.     y[:, i] = targs 
  20.  
  21. print("shape of X:", X.shape) 
  22. print("shape of y:", y.shape) 

輸出如下

  1. print("shape of X:", X.shape) 
  2. print("shape of y:", y.shape) 

通過Numpy中random 隨機選擇數據,劃分訓練集和測試集

  1. # 生成隨機數 
  2. from numpy.random import default_rng 
  3.  
  4. rng = default_rng(seed=1) 
  5. test_numbers = rng.choice(1070, size=int(1070*0.3), replace=False
  6. X_test = X[test_numbers] 
  7. X_full = np.delete(X, test_numbers,0) 
  8. y_test = y[:,test_numbers] 
  9. y_full = np.delete(y, test_numbers,1) 
  10.  
  11. val_numbers = rng.choice(int(1070*0.7), size=int(1070*0.3), replace=False
  12.  
  13. X_val = X_full[val_numbers] 
  14. X_train = np.delete(X_full, val_numbers,0) 
  15. y_val = y_full[:,val_numbers] 
  16. y_train = np.delete(y_full, val_numbers,1) 

在此驗證碼數據中,容易出現過擬合的現象,你可能會想到添加更多的新數據、 添加正則項等, 但這里使用數據增強的方法,特別是對于機器視覺的任務,數據增強技術尤為重要。

常用的數據增強操作:imgaug庫。imgaug是提供了各種圖像增強操作的python庫 https://github.com/aleju/imgaug。

imgaug幾乎包含了所有主流的數據增強的圖像處理操作, 增強方法詳見github

  1. # Sequential(C, R)  尺寸增加了5倍, 
  2. # 選取一系列子增強器C作用于每張圖片的位置,第二個參數表示是否對每個batch的圖片應用不同順序的Augmenter list     # rotate=(-8, 8)  旋轉 
  3. # iaa.CropAndPad  截取(crop)或者填充(pad),填充時,被填充區域為黑色。 
  4. # px: 想要crop(negative values)的或者pad(positive values)的像素點。 
  5. # (topright, bottom, left
  6. # 當pad_mode=constant的時候選擇填充的值 
  7. aug =iaa.Sequential([iaa.CropAndPad( 
  8.     px=((0, 10), (0, 35), (0, 10), (0, 35)), 
  9.     pad_mode=['edge'], 
  10.     pad_cval=1 
  11. ),iaa.Rotate(rotate=(-8,8))]) 
  12.  
  13. X_aug_train = None 
  14. y_aug_train = y_train 
  15. for i in range(40): 
  16.     X_aug = aug(images = X_train) 
  17.     if X_aug_train is not None: 
  18.         X_aug_train = np.concatenate([X_aug_train, X_aug], axis = 0) 
  19.         y_aug_train = np.concatenate([y_aug_train, y_train], axis = 1) 
  20.     else
  21.         X_aug_train = X_aug 

讓我們看看一些數據增強的訓練圖像。

  1. fig, ax = plt.subplots(nrows=2, ncols =5, figsize = (16,16)) 
  2. for i in range(10): 
  3.     index = np.random.randint(X_aug_train.shape[0]) 
  4.     ax[i//5][i%5].imshow(X_aug_train[index],cmap='gray'

 

這次使用函數式API創建模型,函數式API是創建模型的另一種方式,它具有更多的靈活性,包括創建更為復雜的模型。

需要定義inputs和outputs

  1. #函數式API模型創建 
  2. captcha = Input(shape=(50,200,channels)) 
  3. x = Conv2D(32, (5,5),padding='valid',activation='relu')(captcha) 
  4. x = MaxPooling2D((2,2),padding='same')(x) 
  5. x = Conv2D(64, (3,3),padding='same',activation='relu')(x) 
  6. x = MaxPooling2D((2,2),padding='same')(x) 
  7. x = Conv2D(128, (3,3),padding='same',activation='relu')(x) 
  8. maxpool = MaxPooling2D((2,2),padding='same')(x) 
  9. outputs = [] 
  10. for i in range(5): 
  11.     x = Conv2D(256, (3,3),padding='same',activation='relu')(maxpool) 
  12.     x = MaxPooling2D((2,2),padding='same')(x) 
  13.     x = Flatten()(x) 
  14.     x = Dropout(0.5)(x) 
  15.     x = BatchNormalization()(x) 
  16.     x = Dense(64, activation='relu')(x) 
  17.     x = Dropout(0.5)(x) 
  18.     x = BatchNormalization()(x) 
  19.     x = Dense(len_symbols , activation='softmax' , name=f'char_{i+1}')(x) 
  20.     outputs.append(x) 
  21.      
  22. model = Model(inputs = captcha , outputs=outputs) 
  23. # ReduceLROnPlateau更新學習率 
  24. reduce_lr = ReduceLROnPlateau(patience =3, factor = 0.5,verbose = 1) 
  25. model.compile(loss='categorical_crossentropy', optimizer=Adam(learning_rate=0.0005), metrics=["accuracy"]) 
  26. # EarlyStopping用于提前停止訓練的callbacks。具體地,可以達到當訓練集上的loss不在減小 
  27. earlystopping = EarlyStopping(monitor ="val_loss",   
  28.                              mode ="min", patience = 10, 
  29.                               min_delta = 1e-4, 
  30.                              restore_best_weights = True)  
  31.  
  32. history = model.fit(X_train, [y_train[i] for i in range(5)], batch_size=32, epochs=30, verbose=1, validation_data = (X_val, [y_val[i] for i in range(5)]), callbacks =[earlystopping,reduce_lr]) 

 

下面對model進行一個測試和評估。

  1. score = model.evaluate(X_test,[y_test[0], y_test[1], y_test[2], y_test[3], y_test[4]],verbose=1) 
  2. metrics = ['loss','char_1_loss''char_2_loss''char_3_loss''char_4_loss''char_5_loss''char_1_acc''char_2_acc''char_3_acc''char_4_acc''char_5_acc'
  3.  
  4. for i,j in zip(metrics, score): 
  5.     print(f'{i}: {j}'

具體輸出如下:

  1. 11/11 [==============================] - 0s 11ms/step - loss: 0.7246 - char_1_loss: 0.0682 - char_2_loss: 0.1066 - char_3_loss: 0.2730 - char_4_loss: 0.2636 - char_5_loss: 0.0132 - char_1_accuracy: 0.9844 - char_2_accuracy: 0.9657 - char_3_accuracy: 0.9408 - char_4_accuracy: 0.9626 - char_5_accuracy: 0.9938 
  2. loss: 0.7246273756027222 
  3. char_1_loss: 0.06818050146102905 
  4. char_2_loss: 0.10664034634828568 
  5. char_3_loss: 0.27299806475639343 
  6. char_4_loss: 0.26359987258911133 
  7. char_5_loss: 0.013208594173192978 
  8. char_1_acc: 0.9844236969947815 
  9. char_2_acc: 0.9657320976257324 
  10. char_3_acc: 0.940809965133667 
  11. char_4_acc: 0.9626168012619019 
  12. char_5_acc: 0.9937694668769836 

字母1到字母5的精確值都大于

繪制loss和score

  1. metrics_df = pd.DataFrame(history.history) 
  2.  
  3. columns = [col for col in metrics_df.columns if 'loss' in col and len(col)>8] 
  4.  
  5. fig = px.line(metrics_df, y = columns) 
  6. fig.show() 

  1. plt.figure(figsize=(15,8)) 
  2. plt.plot(history.history['loss']) 
  3. plt.plot(history.history['val_loss']) 
  4. plt.title('model loss'
  5. plt.ylabel('loss'
  6. plt.xlabel('epoch'
  7. plt.legend(['train''val'], loc='upper right',prop={'size': 10}) 
  8. plt.show() 

 

  1. # 預測數據 
  2. def predict(captcha): 
  3.     captcha = np.reshape(captcha , (1, 50,200,channels)) 
  4.     result = model.predict(captcha) 
  5.     result = np.reshape(result ,(5,len_symbols)) 
  6.     # 取出最大預測中的輸出 
  7.     label = ''.join([symbols[np.argmax(i)] for i in result]) 
  8.     return label 
  9.      
  10. predict(X_test[2]) 
  11. # 25277 

下面預測所有的數據

  1. actual_pred = [] 
  2.  
  3. for i in range(X_test.shape[0]): 
  4.     actual = ''.join([symbols[i] for i in (np.argmax(y_test[:, i],axis=1))]) 
  5.     pred =  predict(X_test[i]) 
  6.     actual_pred.append((actual, pred)) 
  7. print(actal_pred[:10]) 

輸出如下:

  1. [('n4b4m''n4b4m'), ('42nxy''42nxy'), ('25257''25277'), ('cewnm''cewnm'), ('w46ep''w46ep'), ('cdcb3''edcb3'), ('8gf7n''8gf7n'), ('nny5e''nny5e'), ('gm2c2''gm2c2'), ('g7fmc''g7fmc')] 
  1. sameCount = 0 
  2. diffCount = 0 
  3. letterDiff = {i:0 for i in range(5)} 
  4. incorrectness = {i:0 for i in range(1,6)} 
  5. for real, pred in actual_pred: 
  6.     # 預測和輸出相同 
  7.     if real == pred: 
  8.         sameCount += 1 
  9.     else
  10.         # 失敗 
  11.         diffCount += 1 
  12.         # 遍歷 
  13.         incorrectnessPoint = 0 
  14.         for i in range(5): 
  15.             if real[i] != pred[i]: 
  16.                 letterDiff[i] += 1 
  17.                 incorrectnessPoint += 1 
  18.         incorrectness[incorrectnessPoint] += 1 
  19.  
  20.  
  21. x = ['True predicted''False predicted'
  22. y = [sameCount, diffCount] 
  23.  
  24. fig = go.Figure(data=[go.Bar(x = x, y = y)]) 
  25. fig.show() 

在預測數據中,一共有287個數據預測正確。

在這里,我們可以看到出現錯誤到底是哪一個index。

  1. x1 = ["Character " + str(x) for x in range(1, 6)] 
  2.      
  3. fig = go.Figure(data=[go.Bar(x = x1, y = list(letterDiff.values()))]) 
  4. fig.show() 

  

為了計算每個單詞的錯誤數,繪制相關的條形圖。

  1. x2 = [str(x) + " incorrect" for x in incorrectness.keys()] 
  2. y2 = list(incorrectness.values()) 
  3.  
  4. fig = go.Figure(data=[go.Bar(x = x2, y = y2)]) 
  5. fig.show() 

 

下面繪制錯誤的驗證碼圖像,并標準正確和錯誤的區別。

  1. fig, ax = plt.subplots(nrows = 8, ncols=4,figsize = (16,20)) 
  2. count = 0 
  3. for i, (actual , pred) in enumerate(actual_pred): 
  4.     if actual != pred: 
  5.         img = X_test[i] 
  6.         try: 
  7.             ax[count//4][count%4].imshow(img, cmap = 'gray'
  8.             ax[count//4][count%4].title.set_text(pred + ' - ' + actual) 
  9.             count += 1 
  10.         except
  11.             pass 

 

責任編輯:姜華 來源: Python之王
相關推薦

2021-06-15 06:39:43

深度學習TensorFlowKeras API

2021-06-11 05:37:20

TensorFlow2深度學習Keras API

2013-06-19 10:19:59

2020-12-29 05:33:03

Serverless驗證碼架構

2021-06-10 18:24:59

反爬蟲驗證碼爬蟲

2023-10-27 08:53:13

Python驗證碼圖片識別

2024-01-29 08:32:10

Python驗證碼識別

2014-04-24 10:09:05

驗證碼C#

2021-07-22 10:25:07

JS驗證碼前端

2020-11-16 07:28:53

驗證碼

2009-02-09 14:17:36

2009-08-11 14:05:28

JSP驗證碼

2021-01-19 10:29:34

短信驗證碼密碼

2015-09-21 15:31:05

php實現驗證碼

2017-12-21 07:38:19

2022-02-11 07:10:15

驗證碼

2015-03-23 17:58:04

驗證碼倒計時并行

2022-05-11 07:41:31

Python驗證碼

2021-09-09 08:55:50

Python項目驗證碼
點贊
收藏

51CTO技術棧公眾號

国产免费成人av| 精品婷婷伊人一区三区三| 97人人模人人爽视频一区二区| 农村黄色一级片| aaa国产精品视频| 羞羞答答一区二区| 超碰caoprom| 日韩在线观看网站| 男女性色大片免费观看一区二区| 天天干天天干天天干| 日本一区午夜艳熟免费| 亚洲人精品午夜在线观看| 日本道精品一区二区三区| av蓝导航精品导航| 99超碰在线观看| 亚欧美无遮挡hd高清在线视频| 日韩欧美美女一区二区三区| 国产成人精品视频ⅴa片软件竹菊| 超碰电影在线播放| 99re热视频这里只精品| 成人精品久久久| 日韩在线播放中文字幕| 综合国产精品| 中文字幕精品www乱入免费视频| 成年人性生活视频| 成人mm视频在线观看| 亚洲高清三级视频| 伊人久久大香线蕉午夜av| 日韩资源在线| 丰满白嫩尤物一区二区| 国产日本欧美一区| 精品人妻一区二区三区免费看 | 丝袜美腿亚洲一区| 欧美激情免费视频| 中文字幕观看av| 国产99久久| 亚洲国产精品va在看黑人| 国内av一区二区| 久久亚洲国产精品尤物| 黑丝美女久久久| 国产玉足脚交久久欧美| 调教一区二区| 亚洲欧美成aⅴ人在线观看| 神马影院午夜我不卡| 免费一级在线观看播放网址| 91在线看国产| 精品乱色一区二区中文字幕| 亚洲精品911| 国产麻豆精品久久一二三| 国产一区欧美二区三区| 中文区中文字幕免费看| 日韩av一区二| 国产精品激情自拍| 日日夜夜狠狠操| 日韩国产成人精品| 国产精品99导航| 久久久精品福利| 极品裸体白嫩激情啪啪国产精品| 欧美人与性动交| 国产一级一级片| 亚洲啪啪91| 欧美一区二区三区……| 日本视频免费观看| 蜜臀av一区二区在线免费观看| 国产精品成人品| 中文字幕人妻色偷偷久久| 蜜臀91精品一区二区三区| 国产美女精彩久久| 国产又粗又长又黄| 国产乱码精品一品二品| 9a蜜桃久久久久久免费| 天天爽夜夜爽夜夜爽| 久久亚洲影视婷婷| 亚洲高清在线观看一区| 国产原创在线观看| 亚洲综合在线观看视频| 久久久久免费看黄a片app| 无遮挡爽大片在线观看视频| 色av综合在线| 精品国产鲁一鲁一区二区三区| 亚洲1区在线观看| 日韩电影中文字幕av| 亚洲成人黄色av| 久久久久久影院| 欧美激情视频在线观看| 亚洲av中文无码乱人伦在线视色| 麻豆国产欧美一区二区三区| 99蜜桃在线观看免费视频网站| 天天摸天天干天天操| 中文字幕第一页久久| 国产精品一二三在线观看| 888av在线视频| 欧美在线视频你懂得| 爱情岛论坛亚洲自拍| 亚洲国产欧美日韩在线观看第一区 | 日本精品视频在线播放| 国产伦理吴梦梦伦理| 成人一区在线观看| 日韩电影大全在线观看| av免费在线网站| 色婷婷精品久久二区二区蜜臂av | 日韩中文理论片| 日本三级视频在线| 美女任你摸久久| 狠狠色综合色区| 国产在线高清视频| 91国产免费看| 喷水视频在线观看| 91成人精品视频| 国产成人高潮免费观看精品| 黑人精品一区二区| 一区二区中文视频| 男人靠女人免费视频网站| 成人在线精品| 亚洲社区在线观看| 日韩三级免费看| 国产一区二区中文字幕| 日韩欧美一区二区视频在线播放| av日韩国产| 日韩一区二区在线看| 国产精品www爽爽爽| 国产欧美亚洲一区| 99中文视频在线| av激情在线| 欧美日韩在线电影| 久久久久久久久久久久久久久| 激情欧美日韩| 成人动漫在线观看视频| 欧美a在线看| 欧美网站一区二区| 日韩一区二区a片免费观看| 在线看片欧美| 成人影片在线播放| 在线观看wwwxxxx| 欧美精品乱码久久久久久| 欧美日韩高清丝袜| 99亚洲视频| 国产亚洲欧美一区二区| 欧洲性视频在线播放| 欧美一区二区三区在线| 中文字幕电影av| 国产一级精品在线| 2021狠狠干| 日韩中文字幕一区二区高清99| 久久精品中文字幕免费mv| 伊人久久国产精品| 中文字幕av一区二区三区高| 国产成人av影视| jizzjizz欧美69巨大| 国产精品福利在线| porn视频在线观看| 欧美日韩你懂的| 欧美第一页在线观看| 国内精品国产三级国产a久久| 亚洲一区二区三区精品动漫| 久久精品资源| 久久精品久久久久电影| 国产美女主播在线观看| 亚洲三级视频在线观看| 青娱乐国产精品视频| 欧美一区综合| 国产亚洲精品久久飘花| 最近中文字幕免费| 成人3d动漫在线观看| 国产精品流白浆视频| 日本v片在线免费观看| 色女孩综合影院| 免费黄色激情视频| 国产成人免费视频网站| 精品少妇人欧美激情在线观看| 欧美调教视频| 国产成人精品视频在线观看| 国产精品99999| 欧美高清精品3d| 免费看一级一片| www久久久久| 欧美精品久久久久久久久25p| 午夜精品一区二区三区国产| 91手机在线播放| 天堂在线中文网官网| 日韩在线观看你懂的| 好吊色一区二区三区| 日韩欧亚中文在线| 国产视频精品免费| 不卡一卡二卡三乱码免费网站| 激情六月丁香婷婷| 91九色精品| 精品国产免费一区二区三区| av成人在线观看| 久久久久日韩精品久久久男男| 日本私人网站在线观看| 在线播放国产精品二区一二区四区| 妺妺窝人体色www在线下载| 97se亚洲国产综合自在线 | 国产精品av一区二区三区| 日韩中文字幕第一页| 欧美一区二区在线观看视频| 欧美性感一区二区三区| 欧美人与禽zozzo禽性配| 久久久91精品国产一区二区精品| 国产美女视频免费看| 另类国产ts人妖高潮视频| 大桥未久一区二区| 免费一区二区| 国产aⅴ精品一区二区三区黄| 成人免费一区| 91禁外国网站| 八戒八戒神马在线电影| 久久久国产精品不卡| 成人丝袜18视频在线观看| 国产亚洲欧美激情| 色香色香欲天天天影视综合网| 亚洲国产一区自拍| 97香蕉超级碰碰久久免费软件| 国产亚洲精品自在久久| 国精产品一区一区三区视频| 可以直接看的无码av| 日本一道本视频| 亚洲高清成人| 国产福利片一区二区| 亚洲理论电影| 国产伦精品一区二区三区免| www.久久久久爱免| 国产精品极品美女粉嫩高清在线| 九色porny丨国产首页在线| 欧美成年人网站| 久久99精品久久| 中文一区二区视频| 久草在线网址| 亚洲精品久久久久久久久久久久 | 久久精品国产亚洲AV成人婷婷| 91在线一区二区三区| 少妇精品无码一区二区| www国产精品| 亚洲毛片在线免费观看| 成人毛片在线精品国产| 91精品在线免费| 一级黄在线观看| 欧亚洲嫩模精品一区三区| 国产精品21p| 精品国产乱码久久久久久天美 | 一区二区视频欧美| 米仓穗香在线观看| 欧美一区91| 成人在线观看毛片| 欧美日韩第一区| 欧洲精品在线播放| 一区在线观看| 男人用嘴添女人下身免费视频| 亚洲高清自拍| 麻豆tv在线播放| 亚洲在线日韩| 久久久精品在线视频| 米奇777在线欧美播放| 亚洲人成色77777| 日韩vs国产vs欧美| 999在线观看| 国产在线精品免费| 麻豆av免费看| 91丝袜高跟美女视频| 一区二区黄色片| 国产精品私人影院| 91杏吧porn蝌蚪| 亚洲一区二区视频| 国产 日韩 欧美 在线| 欧美日韩在线另类| 国产女优在线播放| 91精品久久久久久久91蜜桃| 亚洲黄色在线观看视频| 亚洲精品电影久久久| 国产三级视频在线| 美女福利精品视频| 成人在线黄色电影| 国产精品av免费在线观看| 日韩美香港a一级毛片| julia一区二区中文久久94| 欧美成人基地| 一本一道久久a久久精品综合| 亚洲欧美亚洲| 东京热加勒比无码少妇| 精品写真视频在线观看| 男女性杂交内射妇女bbwxz| 久久久欧美精品sm网站| 在线观看美女av| 亚洲综合999| 成人a v视频| 日韩一区二区三区四区| 日av在线播放| 欧美大尺度激情区在线播放| 夜鲁夜鲁夜鲁视频在线播放| 成人自拍性视频| 欧美变态挠脚心| 久久国产精品免费观看| 亚洲专区一区| 国产精品igao网网址不卡| 91色porny| 欧美做爰爽爽爽爽爽爽| 欧美性猛交xxxxx免费看| 香蕉污视频在线观看| 欧美刺激午夜性久久久久久久| 九色视频在线观看免费播放| 欧美日韩成人黄色| 99热播精品免费| 就去色蜜桃综合| 午夜日韩在线| 日本一二区免费| 久久夜色精品一区| 国产精品9191| 日韩一区二区免费在线电影| 波多野结衣在线影院| 97超碰色婷婷| 天堂精品在线视频| 亚洲精品视频一二三| 香蕉成人久久| 亚洲av人人澡人人爽人人夜夜| 国产精品短视频| 亚洲第一网站在线观看| 亚洲大胆美女视频| 羞羞电影在线观看www| 国产在线高清精品| 国产精品一区二区三区av麻| 日本a视频在线观看| 国产成人免费视频一区| 97精品在线播放| 欧美日免费三级在线| 免费在线毛片| 国产69精品久久久久久| www国产精品| 日韩视频在线视频| 国产成人无遮挡在线视频| 美女视频久久久| 欧美日韩国产成人在线免费| 二区三区在线| 国产精品久久在线观看| 精品99久久| 热久久精品免费视频| 久久久.com| 99re热视频| 一区二区三区国产在线观看| 国产精品亚洲一区二区三区在线观看| 九色一区二区| 亚洲一区成人| 午夜理伦三级做爰电影| 色综合久久天天综合网| 爽爽视频在线观看| 欧洲日韩成人av| 国产99久久精品一区二区300| 久久久久久香蕉| 亚洲国产精品成人综合色在线婷婷| 99久久久久久久久| 亚洲午夜av电影| 成人在线免费| 天天综合中文字幕| 国产精品一二三区在线| 久久国产精品二区| 亚洲福利视频久久| 亚洲黄色中文字幕| 日韩国产欧美一区| 久久精品99国产精品| 日韩在线观看视频一区二区| 日韩你懂的电影在线观看| 狂野欧美性猛交xxxxx视频| 国产欧美日韩一区二区三区| 亚洲综合丁香| 国产农村妇女精品一区| 69堂亚洲精品首页| 青春草视频在线观看| 美女被啪啪一区二区| 日本视频中文字幕一区二区三区| 91麻豆精品久久毛片一级| 日韩色视频在线观看| av中文字幕在线观看第一页| 日本一区视频在线| 狠狠色综合色综合网络| 国产一级二级毛片| 亚洲另类欧美自拍| 日韩免费在线电影| 国产精品自拍片| 国产片一区二区| 精品人妻无码一区二区色欲产成人| 国内偷自视频区视频综合| 精品精品99| 潘金莲一级淫片aaaaa| 丁香五六月婷婷久久激情| 91caoporn在线| 国产精品视频福利| 日韩国产欧美在线观看| 久草免费在线观看视频| 亚洲美女视频网| 欧美亚洲黄色| 亚洲不卡中文字幕无码| 国产精品久久国产精麻豆99网站| 亚洲黄色小说网址| 国产精品视频一区二区高潮| 激情亚洲网站| 成年人二级毛片| 亚洲天堂免费观看| 伊人久久亚洲| 日韩精品视频一二三| 精品久久久久久|