久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

用python搭建一個(gè)花卉識(shí)別系統(tǒng)

瀏覽:2日期:2022-06-16 11:17:00
目錄一.開源神經(jīng)網(wǎng)絡(luò)(AlexNet)1.獲取數(shù)據(jù)集2.神經(jīng)網(wǎng)絡(luò)模型3.訓(xùn)練神經(jīng)網(wǎng)絡(luò)4.對(duì)模型進(jìn)行預(yù)測(cè)二、花卉識(shí)別系統(tǒng)搭建(flask)1.構(gòu)建頁面:2.調(diào)用神經(jīng)網(wǎng)絡(luò)模型3.系統(tǒng)識(shí)別結(jié)果4.啟動(dòng)系統(tǒng):三、總結(jié)一.開源神經(jīng)網(wǎng)絡(luò)(AlexNet)1.獲取數(shù)據(jù)集

使用步驟如下:* (1)在data_set文件夾下創(chuàng)建新文件夾'flower_data'* (2)點(diǎn)擊鏈接下載花分類數(shù)據(jù)集download.tensorflow.org/example_im…* (3)解壓數(shù)據(jù)集到flower_data文件夾下* (4)執(zhí)行'split_data.py'腳本自動(dòng)將數(shù)據(jù)集劃分成訓(xùn)練集train和驗(yàn)證集val

split_data.py

import osfrom shutil import copy, rmtreeimport random def mk_file(file_path: str): if os.path.exists(file_path):# 如果文件夾存在,則先刪除原文件夾在重新創(chuàng)建rmtree(file_path) os.makedirs(file_path) def main(): # 保證隨機(jī)可復(fù)現(xiàn) random.seed(0) # 將數(shù)據(jù)集中10%的數(shù)據(jù)劃分到驗(yàn)證集中 split_rate = 0.1 # 指向你解壓后的flower_photos文件夾 cwd = os.getcwd() data_root = os.path.join(cwd, 'flower_data') origin_flower_path = os.path.join(data_root, 'flower_photos') assert os.path.exists(origin_flower_path) flower_class = [cla for cla in os.listdir(origin_flower_path) if os.path.isdir(os.path.join(origin_flower_path, cla))] # 建立保存訓(xùn)練集的文件夾 train_root = os.path.join(data_root, 'train') mk_file(train_root) for cla in flower_class:# 建立每個(gè)類別對(duì)應(yīng)的文件夾mk_file(os.path.join(train_root, cla)) # 建立保存驗(yàn)證集的文件夾 val_root = os.path.join(data_root, 'val') mk_file(val_root) for cla in flower_class:# 建立每個(gè)類別對(duì)應(yīng)的文件夾mk_file(os.path.join(val_root, cla)) for cla in flower_class:cla_path = os.path.join(origin_flower_path, cla)images = os.listdir(cla_path)num = len(images)# 隨機(jī)采樣驗(yàn)證集的索引eval_index = random.sample(images, k=int(num*split_rate))for index, image in enumerate(images): if image in eval_index:# 將分配至驗(yàn)證集中的文件復(fù)制到相應(yīng)目錄image_path = os.path.join(cla_path, image)new_path = os.path.join(val_root, cla)copy(image_path, new_path) else:# 將分配至訓(xùn)練集中的文件復(fù)制到相應(yīng)目錄image_path = os.path.join(cla_path, image)new_path = os.path.join(train_root, cla)copy(image_path, new_path) print('r[{}] processing [{}/{}]'.format(cla, index+1, num), end='') # processing barprint() print('processing done!') if __name__ == ’__main__’: main()2.神經(jīng)網(wǎng)絡(luò)模型

model.py

import torch.nn as nnimport torch class AlexNet(nn.Module): def __init__(self, num_classes=1000, init_weights=False):super(AlexNet, self).__init__()# 用nn.Sequential()將網(wǎng)絡(luò)打包成一個(gè)模塊,精簡(jiǎn)代碼self.features = nn.Sequential( # 卷積層提取圖像特征 nn.Conv2d(3, 48, kernel_size=11, stride=4, padding=2), # input[3, 224, 224] output[48, 55, 55] nn.ReLU(inplace=True), # 直接修改覆蓋原值,節(jié)省運(yùn)算內(nèi)存 nn.MaxPool2d(kernel_size=3, stride=2), # output[48, 27, 27] nn.Conv2d(48, 128, kernel_size=5, padding=2), # output[128, 27, 27] nn.ReLU(inplace=True), nn.MaxPool2d(kernel_size=3, stride=2), # output[128, 13, 13] nn.Conv2d(128, 192, kernel_size=3, padding=1), # output[192, 13, 13] nn.ReLU(inplace=True), nn.Conv2d(192, 192, kernel_size=3, padding=1), # output[192, 13, 13] nn.ReLU(inplace=True), nn.Conv2d(192, 128, kernel_size=3, padding=1), # output[128, 13, 13] nn.ReLU(inplace=True), nn.MaxPool2d(kernel_size=3, stride=2), # output[128, 6, 6])self.classifier = nn.Sequential( # 全連接層對(duì)圖像分類 nn.Dropout(p=0.5), # Dropout 隨機(jī)失活神經(jīng)元,默認(rèn)比例為0.5 nn.Linear(128 * 6 * 6, 2048), nn.ReLU(inplace=True), nn.Dropout(p=0.5), nn.Linear(2048, 2048), nn.ReLU(inplace=True), nn.Linear(2048, num_classes),)if init_weights: self._initialize_weights() # 前向傳播過程 def forward(self, x):x = self.features(x)x = torch.flatten(x, start_dim=1)# 展平后再傳入全連接層x = self.classifier(x)return x# 網(wǎng)絡(luò)權(quán)重初始化,實(shí)際上 pytorch 在構(gòu)建網(wǎng)絡(luò)時(shí)會(huì)自動(dòng)初始化權(quán)重 def _initialize_weights(self):for m in self.modules(): if isinstance(m, nn.Conv2d): # 若是卷積層nn.init.kaiming_normal_(m.weight, mode=’fan_out’, # 用(何)kaiming_normal_法初始化權(quán)重nonlinearity=’relu’)if m.bias is not None: nn.init.constant_(m.bias, 0) # 初始化偏重為0 elif isinstance(m, nn.Linear): # 若是全連接層nn.init.normal_(m.weight, 0, 0.01) # 正態(tài)分布初始化nn.init.constant_(m.bias, 0) # 初始化偏重為03.訓(xùn)練神經(jīng)網(wǎng)絡(luò)

train.py

# 導(dǎo)入包import torchimport torch.nn as nnfrom torchvision import transforms, datasets, utilsimport matplotlib.pyplot as pltimport numpy as npimport torch.optim as optimfrom model import AlexNetimport osimport jsonimport time # 使用GPU訓(xùn)練device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')with open(os.path.join('train.log'), 'a') as log: log.write(str(device)+'n') #數(shù)據(jù)預(yù)處理data_transform = { 'train': transforms.Compose([transforms.RandomResizedCrop(224), # 隨機(jī)裁剪,再縮放成 224×224 transforms.RandomHorizontalFlip(p=0.5), # 水平方向隨機(jī)翻轉(zhuǎn),概率為 0.5, 即一半的概率翻轉(zhuǎn), 一半的概率不翻轉(zhuǎn) transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]), 'val': transforms.Compose([transforms.Resize((224, 224)), # cannot 224, must (224, 224) transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])} #導(dǎo)入、加載 訓(xùn)練集# 導(dǎo)入訓(xùn)練集#train_set = torchvision.datasets.CIFAR10(root=’./data’, # 數(shù)據(jù)集存放目錄# train=True, # 表示是數(shù)據(jù)集中的訓(xùn)練集#download=True, # 第一次運(yùn)行時(shí)為True,下載數(shù)據(jù)集,下載完成后改為False#transform=transform) # 預(yù)處理過程# 加載訓(xùn)練集 #train_loader = torch.utils.data.DataLoader(train_set, # 導(dǎo)入的訓(xùn)練集# batch_size=50, # 每批訓(xùn)練的樣本數(shù)# shuffle=False, # 是否打亂訓(xùn)練集# num_workers=0) # num_workers在windows下設(shè)置為0 # 獲取圖像數(shù)據(jù)集的路徑data_root = os.path.abspath(os.path.join(os.getcwd(), '../..')) # get data root path 返回上上層目錄image_path = data_root + '/jqsj/data_set/flower_data/' # flower data_set path # 導(dǎo)入訓(xùn)練集并進(jìn)行預(yù)處理train_dataset = datasets.ImageFolder(root=image_path + '/train', transform=data_transform['train'])train_num = len(train_dataset) # 按batch_size分批次加載訓(xùn)練集train_loader = torch.utils.data.DataLoader(train_dataset,# 導(dǎo)入的訓(xùn)練集 batch_size=32, # 每批訓(xùn)練的樣本數(shù) shuffle=True,# 是否打亂訓(xùn)練集 num_workers=0)# 使用線程數(shù),在windows下設(shè)置為0 #導(dǎo)入、加載 驗(yàn)證集# 導(dǎo)入驗(yàn)證集并進(jìn)行預(yù)處理validate_dataset = datasets.ImageFolder(root=image_path + '/val',transform=data_transform['val'])val_num = len(validate_dataset) # 加載驗(yàn)證集validate_loader = torch.utils.data.DataLoader(validate_dataset,# 導(dǎo)入的驗(yàn)證集 batch_size=32, shuffle=True, num_workers=0) # 存儲(chǔ) 索引:標(biāo)簽 的字典# 字典,類別:索引 {’daisy’:0, ’dandelion’:1, ’roses’:2, ’sunflower’:3, ’tulips’:4}flower_list = train_dataset.class_to_idx# 將 flower_list 中的 key 和 val 調(diào)換位置cla_dict = dict((val, key) for key, val in flower_list.items()) # 將 cla_dict 寫入 json 文件中json_str = json.dumps(cla_dict, indent=4)with open(’class_indices.json’, ’w’) as json_file: json_file.write(json_str) #訓(xùn)練過程net = AlexNet(num_classes=5, init_weights=True) # 實(shí)例化網(wǎng)絡(luò)(輸出類型為5,初始化權(quán)重)net.to(device) # 分配網(wǎng)絡(luò)到指定的設(shè)備(GPU/CPU)訓(xùn)練loss_function = nn.CrossEntropyLoss() # 交叉熵?fù)p失optimizer = optim.Adam(net.parameters(), lr=0.0002) # 優(yōu)化器(訓(xùn)練參數(shù),學(xué)習(xí)率) save_path = ’./AlexNet.pth’best_acc = 0.0 for epoch in range(150): ########################################## train ############################################### net.train() # 訓(xùn)練過程中開啟 Dropout running_loss = 0.0# 每個(gè) epoch 都會(huì)對(duì) running_loss 清零 time_start = time.perf_counter()# 對(duì)訓(xùn)練一個(gè) epoch 計(jì)時(shí)for step, data in enumerate(train_loader, start=0): # 遍歷訓(xùn)練集,step從0開始計(jì)算images, labels = data # 獲取訓(xùn)練集的圖像和標(biāo)簽optimizer.zero_grad()# 清除歷史梯度outputs = net(images.to(device)) # 正向傳播loss = loss_function(outputs, labels.to(device)) # 計(jì)算損失loss.backward() # 反向傳播optimizer.step() # 優(yōu)化器更新參數(shù)running_loss += loss.item()# 打印訓(xùn)練進(jìn)度(使訓(xùn)練過程可視化)rate = (step + 1) / len(train_loader) # 當(dāng)前進(jìn)度 = 當(dāng)前step / 訓(xùn)練一輪epoch所需總stepa = '*' * int(rate * 50)b = '.' * int((1 - rate) * 50)with open(os.path.join('train.log'), 'a') as log: log.write(str('rtrain loss: {:^3.0f}%[{}->{}]{:.3f}'.format(int(rate * 100), a, b, loss))+'n')print('rtrain loss: {:^3.0f}%[{}->{}]{:.3f}'.format(int(rate * 100), a, b, loss), end='') print() with open(os.path.join('train.log'), 'a') as log: log.write(str(’%f s’ % (time.perf_counter()-time_start))+'n') print(’%f s’ % (time.perf_counter()-time_start)) ########################################### validate ########################################### net.eval() # 驗(yàn)證過程中關(guān)閉 Dropout acc = 0.0 with torch.no_grad():for val_data in validate_loader: val_images, val_labels = val_data outputs = net(val_images.to(device)) predict_y = torch.max(outputs, dim=1)[1] # 以output中值最大位置對(duì)應(yīng)的索引(標(biāo)簽)作為預(yù)測(cè)輸出 acc += (predict_y == val_labels.to(device)).sum().item() val_accurate = acc / val_num# 保存準(zhǔn)確率最高的那次網(wǎng)絡(luò)參數(shù)if val_accurate > best_acc: best_acc = val_accurate torch.save(net.state_dict(), save_path)with open(os.path.join('train.log'), 'a') as log: log.write(str(’[epoch %d] train_loss: %.3f test_accuracy: %.3f n’ % (epoch + 1, running_loss / step, val_accurate))+'n')print(’[epoch %d] train_loss: %.3f test_accuracy: %.3f n’ % (epoch + 1, running_loss / step, val_accurate))with open(os.path.join('train.log'), 'a') as log: log.write(str(’Finished Training’)+'n')print(’Finished Training’)

訓(xùn)練結(jié)果后,準(zhǔn)確率是94%

訓(xùn)練日志如下:

用python搭建一個(gè)花卉識(shí)別系統(tǒng)

4.對(duì)模型進(jìn)行預(yù)測(cè)

predict.py

import torch

接著對(duì)其中一個(gè)花卉圖片進(jìn)行識(shí)別,其結(jié)果如下:

用python搭建一個(gè)花卉識(shí)別系統(tǒng)

可以看到只有一個(gè)識(shí)別結(jié)果(daisy雛菊)和準(zhǔn)確率1.0是100%(范圍是0~1,所以1對(duì)應(yīng)100%)

為了方便使用這個(gè)神經(jīng)網(wǎng)絡(luò),接著我們將其開發(fā)成一個(gè)可視化的界面操作

二、花卉識(shí)別系統(tǒng)搭建(flask)1.構(gòu)建頁面:

用python搭建一個(gè)花卉識(shí)別系統(tǒng)

2.調(diào)用神經(jīng)網(wǎng)絡(luò)模型

main.py

# coding:utf-8 from flask import Flask, render_template, request, redirect, url_for, make_response, jsonifyfrom werkzeug.utils import secure_filenameimport osimport time ####################模型所需庫包import torchfrom model import AlexNetfrom PIL import Imagefrom torchvision import transformsimport matplotlib.pyplot as pltimport json # read class_indicttry: json_file = open(’./class_indices.json’, ’r’) class_indict = json.load(json_file)except Exception as e: print(e) exit(-1) # create modelmodel = AlexNet(num_classes=5)# load model weightsmodel_weight_path = './AlexNet.pth'#, map_location=’cpu’model.load_state_dict(torch.load(model_weight_path, map_location=’cpu’)) # 關(guān)閉 Dropoutmodel.eval() ###################from datetime import timedelta# 設(shè)置允許的文件格式ALLOWED_EXTENSIONS = set([’png’, ’jpg’, ’JPG’, ’PNG’, ’bmp’]) def allowed_file(filename): return ’.’ in filename and filename.rsplit(’.’, 1)[1] in ALLOWED_EXTENSIONS app = Flask(__name__)# 設(shè)置靜態(tài)文件緩存過期時(shí)間app.send_file_max_age_default = timedelta(seconds=1) #圖片裝換操作def tran(img_path): # 預(yù)處理 data_transform = transforms.Compose([transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) # load image img = Image.open('pgy2.jpg') #plt.imshow(img) # [N, C, H, W] img = data_transform(img) # expand batch dimension img = torch.unsqueeze(img, dim=0) return img @app.route(’/upload’, methods=[’POST’, ’GET’]) # 添加路由def upload(): path='' if request.method == ’POST’:f = request.files[’file’]if not (f and allowed_file(f.filename)): return jsonify({'error': 1001, 'msg': '請(qǐng)檢查上傳的圖片類型,僅限于png、PNG、jpg、JPG、bmp'}) basepath = os.path.dirname(__file__) # 當(dāng)前文件所在路徑path = secure_filename(f.filename)upload_path = os.path.join(basepath, ’static/images’, secure_filename(f.filename)) # 注意:沒有的文件夾一定要先創(chuàng)建,不然會(huì)提示沒有該路徑# upload_path = os.path.join(basepath, ’static/images’,’test.jpg’) #注意:沒有的文件夾一定要先創(chuàng)建,不然會(huì)提示沒有該路徑print(path) img = tran(’static/images’+path)###########################預(yù)測(cè)圖片with torch.no_grad(): # predict class output = torch.squeeze(model(img)) # 將輸出壓縮,即壓縮掉 batch 這個(gè)維度 predict = torch.softmax(output, dim=0) predict_cla = torch.argmax(predict).numpy() res = class_indict[str(predict_cla)] pred = predict[predict_cla].item() #print(class_indict[str(predict_cla)], predict[predict_cla].item())res_chinese = ''if res=='daisy': res_chinese='雛菊'if res=='dandelion': res_chinese='蒲公英'if res=='roses': res_chinese='玫瑰'if res=='sunflower': res_chinese='向日葵'if res=='tulips': res_chinese='郁金香' #print(’result:’, class_indict[str(predict_class)], ’accuracy:’, prediction[predict_class])##########################f.save(upload_path)pred = pred*100return render_template(’upload_ok.html’, path=path, res_chinese=res_chinese,pred = pred, val1=time.time()) return render_template(’upload.html’) if __name__ == ’__main__’: # app.debug = True app.run(host=’127.0.0.1’, port=80,debug = True)3.系統(tǒng)識(shí)別結(jié)果

用python搭建一個(gè)花卉識(shí)別系統(tǒng)

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>李運(yùn)辰-花卉識(shí)別系統(tǒng)v1.0</title> <script src='https://www.xxx.com.cn/static/js/locales/zh.js'></script> </head><body> <h1 align='center'>李運(yùn)辰-花卉識(shí)別系統(tǒng)v1.0</h1><div align='center'> <form action='' enctype=’multipart/form-data’ method=’POST’><input type='file' name='file' data-show-preview='false' /><br><input type='submit' value='上傳' /> </form><p style='size:15px;color:blue;'>識(shí)別結(jié)果:{{res_chinese}}</p></br><p style='size:15px;color:red;'>準(zhǔn)確率:{{pred}}%</p> <img src='https://www.xxx.com.cn/bcjs/{{ ’./static/images/’+path }}' alt=''/></div></body></html>4.啟動(dòng)系統(tǒng):

python main.py

用python搭建一個(gè)花卉識(shí)別系統(tǒng)

接著在瀏覽器在瀏覽器里面訪問

http://127.0.0.1/upload

出現(xiàn)如下界面:

用python搭建一個(gè)花卉識(shí)別系統(tǒng)

最后來一個(gè)識(shí)別過程的動(dòng)圖

用python搭建一個(gè)花卉識(shí)別系統(tǒng)

三、總結(jié)

ok,這個(gè)花卉系統(tǒng)就已經(jīng)搭建完成了,是不是超級(jí)簡(jiǎn)單,我也是趁著修了這個(gè)機(jī)器視覺這么課,才弄這么一個(gè)系統(tǒng),回顧一下之前的知識(shí),哈哈哈。

以上就是用python搭建一個(gè)花卉識(shí)別系統(tǒng)的詳細(xì)內(nèi)容,更多關(guān)于python 花卉識(shí)別系統(tǒng)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 欧美日韩国产在线播放 | 国产精品久久99 | 欧美日在线 | 天堂中文在线视频 | 亚洲中国字幕 | 国产精品人人做人人爽人人添 | 日韩欧美国产一区二区 | 国产精品久久久久久中文字 | 日韩在线不卡 | 国产二区精品 | 四虎影院网站 | 日本综合久久 | 中文字幕在线观看av | 天天精品 | 国产精品不卡 | 国产欧美网址 | 国产精品毛片一区二区三区 | 夫妻午夜影院 | 91看片| 精品伊人久久 | 青青草久草 | 特级a做爰全过程片 | 97国产精品视频人人做人人爱 | 成人在线免费网站 | 欧美精品欧美精品系列 | 欧美日韩一级电影 | 欧美二区视频 | 日本福利视频网 | 精品国产乱码久久久久久久软件 | 亚洲高清av| www,99热 | 中文字幕久久精品 | 日本免费网站 | 九色一区| 一区二区精品在线观看 | 久久综合狠狠综合久久综合88 | 日韩在线中文字幕 | 成人在线视频网站 | 久久久久久久久久穴 | 午夜欧美一区二区三区在线播放 | 九色av | 中文字幕日韩一区二区 | 亚洲一区二区三区在线播放 | 中文字幕精品一区二区三区精品 | 日夜夜精品视频 | 一区二区中文字幕 | 在线观看亚洲大片短视频 | 琪琪午夜伦伦电影福利片 | 成人久久久精品乱码一区二区三区 | 日韩不卡 | 久久一| 久草一区| 国产精品久久久久久婷婷天堂 | 青楼18春一级毛片 | 欧美精品一区二区三区视频 | 国产黄色一级大片 | av一级久久 | 一区| 欧美一级欧美三级在线观看 | 一区二区免费视频 | 男人的天堂久久 | 另类国产ts人妖高潮系列视频 | 一级免费毛片 | 91精品国产一区二区三区香蕉 | 一区二区三区高清不卡 | 亚洲成av人片在线观看无码 | 欧美a级成人淫片免费看 | 亚洲成人精品在线观看 | 国产精品欧美日韩 | 综合久久综合 | 中文字幕av一区 | 97高清国语自产拍 | 极品白嫩少妇无套内谢 | 日本免费一区二区视频 | 久久99精品久久久久久琪琪 | 欧美日本一区二区三区 | 久久亚洲天堂 | 久久久久久99精品 | 日韩高清在线一区 | 亚洲毛片在线 | 国产精品美女在线观看 | 欧美一区二区三区在线观看视频 | 中文字幕视频在线观看 | 久草在线视频网 | 亚洲精品午夜 | 欧美一区二区三区四区不卡 | 99久久夜色精品国产亚洲1000部 | 美女一区二区三区四区 | 亚洲视频在线观看 | 国产情品 | 午夜精品久久久久久久久 | 国产精品99 | 国产乱码精品一区二区三区中文 | 四虎av成人| 手机看片在线 | 七龙珠z普通话国语版在线观看 | 在线免费观看色视频 | 久久久久久91 | 日本一区二区成人 | 国产精品一区二区在线 | 久草热8精品视频在线观看 黄色片网站视频 | 亚洲欧美日韩精品 | 午夜日韩 | 亚洲精品美女视频 | 精品亚洲视频在线观看 | 播放一级黄色片 | 日韩中文字幕在线播放 | 国产欧美综合视频 | 精品视频久久 | 欧美午夜精品久久久 | 日韩高清中文字幕 | 欧美日韩一区二区在线 | 综合久久综合久久 | 成人av免费在线 | 国产免费一区 | porn在线| 日韩av手机在线免费观看 | 国产中文在线 | 国产精品日韩欧美一区二区三区 | 香蕉大人久久国产成人av | 91精品久久久久久久久久入口 | 日韩中文字幕在线看 | 国产成人午夜 | 日韩电影免费在线观看中文字幕 | 一级免费黄色免费片 | 午夜精品久久久久99蜜 | caoporon| 农村少妇kkkk7777| h片在线看 | 亚洲一区精品在线 | 中文字幕视频在线 | 黄色片在线免费观看 | 国产成在线观看免费视频 | 成人av一区二区三区 | 伊人福利视频 | 国产xvideos免费视频播放 | 日本a在线| 国产成人av在线播放 | 一级黄色毛片免费观看 | 男人天堂亚洲天堂 | 日韩色视频 | 在线观看免费成人av | 伊人超碰 | 欧美黄视频 | 日韩久久久一区二区 | 国产精品日韩欧美一区二区三区 | 国产午夜精品久久 | 欧美一区二区三区精品 | 久久一区二区av | 黄的视频网站 | 高清中文字幕 | 欧美日韩在线播放 | 精品国产乱码久久久久久1区2区 | 一级大片av | www国产亚洲精品久久网站 | 国产一区二区三区四区在线观看 | 黄色一级片视频 | 国产精品久久精品 | 成人精品二区 | 欧美日韩国产精品一区二区亚洲 | 私人毛片免费高清视频 | 最新中文字幕在线 | 欧美一区二区三区视频 | 一区三区视频 | 九色 在线 | 日本一级中文字幕久久久久久 | 一区二区三区国产视频 | 国产黄视频在线 | 国产精品久久久久久久7电影 | 毛片免费观看 | 妹子干综合| 欧美一区在线看 | 91精品国产99久久久久久红楼 | 国产精品网站在线看 | 国产成人一区二区三区 | 91麻豆产精品久久久久久 | 久久午夜电影 | 五月婷亚洲 | 日本黄色三级网站 | 91久久国产精品 | 欧美日韩精品一区二区三区 | 天堂在线www| 成人亚洲免费视频 | 天天操天天插 | 国产一区二区精品在线观看 | 成人久久久久久久久 | 亚洲视频在线观看网站 | 人人草天天草 | 日韩在线一区二区三区 | 国产亚洲精品久久久久久久 | 婷婷久久综合九色综合绿巨人 | 成视频年人免费看黄网站 | 九色91九色porny永久 | 精品国产91亚洲一区二区三区www | 亚洲精品国产片 | 久久在线视频 | 亚洲免费综合 | 91免费看| 久久久资源 | 国产精品久久久久久久久久免费 | 久久99精品久久久 | 国内久久精品视频 | 久久99国产精品 | 免费观看一级毛片 | 国产3区| 国产一区二区三区精品久久久 | 999视频在线 | 久久精品中文字幕 | 日本伊人网站 | 欧美另类国产 | 插插射啊爱视频日a级 | 影音先锋在线看片资源 | 这里精品 | 久久久亚洲成人 | 日本一区二区视频 | 国产视频99 | 国产欧美日韩综合精品一 | 欧美日韩亚洲国内综合网 | 国产精品www | 九九热免费精品视频 | 午夜高清视频 | 日本福利在线观看 | 久久88| 国产精品久久久久久久久久99 | 国产高清美女一级a毛片久久 | 国产精品久久久久久久久久10秀 | 一级毛片在线看aaaa | 日韩一区二区在线观看视频 | 成人av一区二区三区 | 久久福利电影 | 国产欧美在线观看 | 日韩成人精品在线 | 久草视频在线播放 | 免费黄色小视频 | 精品国产髙清在线看国产毛片 | 另类亚洲专区 | 亚洲 欧美 日韩在线 | 亚洲综合在线播放 | 亚洲 欧美日韩 国产 中文 | 国产精品久久久久久久久久久久久久久久 | 日韩中文字幕一区二区高清99 | 欧美精品一区二区三区视频 | 久久久激情视频 | 欧美片网站免费 | 四虎免看黄| 久久综合一区二区三区 | 91免费在线播放 | 精久久 | 伊人免费视频 | 久久精品久久精品国产大片 | 成人欧美一区二区三区白人 | 国产精品视频免费 | 欧美夜夜骑 | 免费视频爱爱太爽了 | 国产免费拔擦拔擦8x高清在线人 | 91精品国产综合久久国产大片 | 中文字幕在线一区二区三区 | 国产乱码精品一区二区三区av | 日韩精品www| 综合久久一区 | 99草在线视频 | 99精品视频在线观看 | 国产一级免费视频 | 黄色免费av| 亚洲天堂久 | 在线看片福利 | 一区二区三区四区av | 精品欧美 | 欧美日韩在线观看一区二区三区 | 亚洲社区在线观看 | 91偷拍精品一区二区三区 | 奇米一区二区 | 天堂中文av | 自拍偷拍在线视频 | 黄色一级片在线看 | 国产目拍亚洲精品99久久精品 | 中文字幕在线三区 | 亚洲一区二区三区免费看 | 欧美一区二区三区精品免费 | 日本不卡高字幕在线2019 | 人成亚洲 | 中文字幕国产视频 | 久久男人天堂 | 欧美一级久久 | 蜜桃精品视频在线 | 欧美激情视频一区二区三区 | 性国产xxxx乳高跟 | 羞羞视频免费网站 | 男女视频免费在线观看 | 毛片一区二区 | www国产一区 | 久久久夜夜夜 | 男人天堂av网 | 免费av毛片 | 午夜激情在线播放 | 欧美a在线 | 亚洲巨乳自拍在线视频 | 欧美日韩精品久久久 | 精品日韩在线 | 国产精品99久久久久久久久久久久 | 丁香五月亚洲综合在线 | 国产视频一区二区三区四区 | 国产综合久久久久久鬼色 | 国产女无套免费网站 | 久久这里只有精品23 | 久久久久国产一区二区三区 | 欧美国产精品久久久 | 最新黄色网址在线播放 | 伊人一区二区三区 | 免费观看视频毛片 | 日韩欧美国产网站 | 君岛美绪一区二区三区在线视频 | 久久精品在线观看视频 | 亚洲精品久久久久久一区二区 | 亚洲欧美国产一区二区 | 久久亚洲一区 | 免费一区 | 成人爽a毛片一区二区免费 亚洲自拍偷拍精品 | 成人一区二区电影 | 欧美成人精品一区二区三区 | 久久精彩 | 日韩欧美精品一区二区三区 | 婷婷丁香激情网 | 天天操天操| 女朋友的闺蜜3韩国三级 | 日韩黄视频 | 午夜精品久久久久久久久久久久 | 国产精品成人国产乱一区 | 国产精品一区二区三区在线播放 | 久久亚洲一区 | 国产成人一区 | 日韩精品在线网站 | 国产精彩视频 | 国产视频综合 | 日本在线观看视频网站 | a国产精品| 欧美日韩一区二区不卡 | 国产精品无码久久久久 | 国产艳妇av视国产精选av一区 | 欧美日韩国产高清视频 | 国产91精品一区二区绿帽 | 亚洲福利免费 | 欧美二区在线观看 | 丝袜+亚洲+另类+欧美+变态 | 最新免费av网站 | 亚洲 欧美 日韩在线 | 日韩在线精品强乱中文字幕 | 中文字幕在线播放第一页 | 亚洲精品视频在线免费播放 | 精品国产乱码久久久久久久 | 精品不卡| 国产精品夜夜春夜夜爽久久电影 | 成人做爰www免费看视频网站 | 亚洲热在线观看 | 午夜男人的天堂 | 免费a爱片猛猛 | 99re视频| 最新国产在线 | 精品美女久久久 | 三级色黄 | 久久综合久 | 欧美一区二区三区黄色 | 亚洲香蕉在线观看 | 亚洲精品久久 | av国产精品| 宅男lu666噜噜噜在线观看 | 久久久国产精品视频 | 国产97久久 | 国产中文一区二区三区 | 草草精品视频 | www婷婷| 91免费在线播放 | 久久久免费精品 | 国产一区 | 草久网| 日韩精品1区2区3区 国产精品国产成人国产三级 | 国产精品视频免费观看 | 久久久久国产成人精品亚洲午夜 | 国产午夜精品一区二区三区嫩草 | 国产69精品99久久久久久宅男 | 黄色小视频在线观看 | 一区二区三区回区在观看免费视频 | 亚洲人人 | 中文字幕av网 | 羞羞视频在线观免费观看 | 日韩成人在线播放 | 免费观看日韩一级片 | 色免费视频 | 亚洲午夜精品久久久久久app | 午夜爽| 免费av一区二区三区 | 亚洲精品一二三区 | 五月综合婷 | 天堂综合网 | 亚洲一区二区在线播放 | 欧美成人精品一区二区男人看 | 精品中文字幕在线 | 中文字幕在线第二页 | 青青草久久久 | av7777| 久久久久久久久一区二区 | 亚洲一区免费视频 | 日日夜夜免费精品视频 | 国产美女福利在线 | 日韩中文字幕在线视频 | 亚洲男人的天堂网站 | 国产精品入口麻豆www | 超碰人人艹| 91性高湖久久久久久久久网站 | 中文字幕视频网站 | 一级黄色短片 | 91成人短视频在线观看 | 亚洲精品乱码 | 国产一区二区日韩 | 午夜精品91 | 国产精品一区二 | 精品亚洲视频在线观看 | 精品久久久久久国产 | 久久九| av在线毛片 | 色伊人久久 | 久久男人的天堂 | 日本在线视 | 欧美一区二区三区视频 | 欧美永久精品 | 可以在线观看的av网站 | 91人人| 羞羞的视频网站 | 密室大逃脱第六季大神版在线观看 | 亚洲成人一区二区 | 欧美三级视频 | 女同久久另类99精品国产 | 午夜激情在线观看 | 91久久国产综合久久蜜月精品 | 久久六月 | 一区二区免费看 | 国产91在线视频 | 成人免费在线观看视频 | 国产一区二区在线视频观看 | 综合网av| 成视频年人免费看黄网站 | 欧洲精品乱码久久久久蜜桃 | 日本欧美大片 | 亚洲高清在线观看 | 欧美黄色大片网站 | 精品久久久久国产 | 99爱免费观看国语 | 天天夜夜操 | 成人在线观看网站 | 日日日日干干干干 | 国产精品久久久久无码av | 国产亚洲精品精品国产亚洲综合 | 久久夜视频 | 成人亚洲网站 | 国产成人精品免费视频大全最热 | 免费观看www免费观看 | 91精品国产aⅴ | 久久久久国产精品免费免费搜索 | 日韩中文字幕在线视频 | 欧美精品一区二区三区一线天视频 | 蜜臀在线视频 | 国产一区二区三区精品久久久 | 欧美在线观看一区 | 日本高清视频网站www | 国产区视频在线观看 | 久久久久久久久99精品 | 国产精品久久久久久久久动漫 | 美女一级 | 9久久精品| 欧美第一视频 | 精品久久久久久国产 | 男人的天堂视频 | 欧美黄色一区 | 日韩欧美在线看 | 免费亚洲网站 | 亚洲毛片网站 | 日韩欧美在线综合 | 午夜激情视频 | 亚洲一区精品在线 | 亚洲美乳中文字幕 | 精品99久久久久久 | 亚洲午夜电影 | 久久成 | 欧美性一区二区 | 国产成人免费视频网站高清观看视频 | 欧美欧美欧美 | 国产一区二区视频在线观看 | 伊人网站 | 午夜合集| 视频精品一区二区三区 | 欧美黑人一级爽快片淫片高清 | 在线观看成人 | 精品在线一区 | 91精品国产综合久久婷婷香蕉 | 亚洲毛片网站 | 日韩久久久久 | 欧美全黄 | 亚洲欧美成人影院 | 午夜在线小视频 | 欧美日韩在线视频一区 | 久久精品店 | 免费成人在线网站 | 高清国产午夜精品久久久久久 | 久久网一区二区三区 | 国产h在线| 日本一区二区不卡 | 成人av电影网址 | 欧美78videosex性欧美 | 亚洲高清在线视频 | 免费一区二区三区 | 人人干美女 | 天天射日日操 | 欧美一区二区视频 | 久久在线视频 | 国产三级在线播放 | 97精品久久 | 久久久久久久久综合 | 亚洲免费成人 | av成人免费 | 91秦先生艺校小琴 | 亚洲视频观看 | 在线播放亚洲 | 激情999| 欧美色视 | 免费观看一区二区三区毛片 | 中文字幕日韩视频 | 成人在线一区二区 | 日韩精品一区二区三区四区五区 | 看片一区| 欧美日韩国产在线看 | 欧美精品在线观看免费 | 欧美成人精品激情在线观看 | 欧美 日韩 国产 在线 | 精品国产精品 | 日韩欧美在线视频播放 | 国产在线观看一区 | 久久精品影视 | 影音在线资源 | 啪啪免费网站 | 日日夜夜精品 | 叶山小百合av一区二区 | 久久久国产精品入口麻豆 | 国产三区四区 | 中文字幕乱码一区二区三区 | 欧美黑人做爰xxxⅹ 国产精品一区二区视频 | 精品入口麻豆88视频 | 国产最新网址 | 色猫猫国产区一区二在线视频 | 国模一区二区三区 | aaa大片免费观看 | 亚洲精品一区二区三区不 | 一区二区三区有限公司 | 精品久久久久香蕉网 | 亚洲一区久久 | 亚洲一区二区三区四区的 | 亚洲精品一二区 | 区一区二区三在线观看 | 日本亚洲精品一区二区三区 | 亚洲精品久久久久久久久久久 | 亚洲精品视频在线观看网站 | av免费网 | ririsao久久精品一区 | 免费黄色片在线观看 | 一级性视频 | 亚洲卡一 | 夜夜艹 | 一区二区三区精品视频免费看 | 国产一区不卡 | 亚洲视频免费在线观看 | 中文字幕不卡在线 | 欧美高清成人 | 成人欧美一区二区三区在线观看 | 伊人精品| 一区二区日韩在线观看 | 日韩在线视频一区 | 亚洲成熟少妇视频在线观看 | 91精品综合久久久久久五月天 | 国产一区二区视频精品 | 欧美日韩国产欧美 | 美女福利视频网站 | 91大神xh98hx在线播放 | 中文字幕av在线播放 | 中文字幕乱码一区二区三区 | 日韩精品一区二区三区老鸭窝 | 视频一区二 | 国产精品毛片久久久久久久 | 91在线观 | 午夜视频在线观看网站 | 国产精品色在线网站 | 国产日韩一区二区三免费高清 | 视频一区二区三区在线观看 | 日本二区在线播放 | 亚洲成人久久久久 | 国产精品久久免费视频在线 | av大片| 国产三级电影 | 国产成人久久 | 欧美日韩国产不卡 | 中文字幕在线综合 | h网站在线观看 | 久久99久久99精品免观看粉嫩 | 国产偷录视频叫床高潮对白 | 在线精品一区 | 91久久九色| 久久免费的视频 | 免费观看一区二区三区毛片软件 | 欧美日韩免费在线 | 色综合久久久久综合99 | 国产精品一卡二卡 | 久操视频在线观看 | 国产98色在线 | 日韩 | 少妇性l交大片免费一 | 免费视频一区二区 | 久久成人在线 | 成人日批|