日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从零开始AlignedReID_05

發(fā)布時間:2024/1/1 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从零开始AlignedReID_05 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

模型訓(xùn)練

前言

經(jīng)過前面的內(nèi)容,所有需要的模塊都介紹過了,那么接下來就是模型的訓(xùn)練與測試。
模型的訓(xùn)練可以大致分為以下幾個過程:

  • 數(shù)據(jù)預(yù)處理
    • 初始化數(shù)據(jù)集
    • 數(shù)據(jù)增強
    • 導(dǎo)入數(shù)據(jù)
  • 模型加載
  • 損失函數(shù)加載
  • 優(yōu)化器加載
  • 模型訓(xùn)練
  • 模型測試
  • 保存模型
    那么是整個實現(xiàn)過程,下面所有代碼均在AlignedReID目錄下,train_models.py文件中。

加載頭文件

#-*-coding:utf-8-*- from __future__ import absolute_importimport os import sys import os.path as osp import time import datetime import argparse import numpy as npimport torch import torch.nn as nn import torch.backends.cudnn as cudnn from torch.utils.data import DataLoader import torchvision.transforms as T from torch.optim import lr_scheduler# 導(dǎo)入自己創(chuàng)建的工具 import models from losses.tripletloss import TripletAlignedReIDloss,DeepSupervision from data_process import dataset_manager from data_process.data_loader import ImageDataset from utils.util import AverageMeter,Logger,save_checkpoint from utils.optimizers import init_optim from utils.samplers import RandomIdentitySampler from utils import re_ranking from utils.eval_metrics import evaluate

設(shè)置相關(guān)配置項

# 0.設(shè)置一些常見的選項 parser = argparse.ArgumentParser(description='Train AlignedReID with cross entropy loss and triplet hard loss') # Datasets # path parser.add_argument('--root', type=str, default='/home/user/桌面/code/data', help="root path to data directory") # dataset name parser.add_argument('-d', '--dataset', type=str, default='market1501',choices=dataset_manager.get_names()) # 多線程 4個 parser.add_argument('-j', '--workers', default=4, type=int,help="number of data loading workers (default: 4)") # image height parser.add_argument('--height', type=int, default=256,help="height of an image (default: 256)") # image weight parser.add_argument('--width', type=int, default=128,help="width of an image (default: 128)") # split-id 默認(rèn)為0 parser.add_argument('--split-id', type=int, default=0, help="split index")# Optimization options parser.add_argument('--labelsmooth', action='store_true', help="label smooth") # 默認(rèn)使用adam優(yōu)化 parser.add_argument('--optim', type=str, default='adam', help="optimization algorithm (see optimizers.py)") # 總共300epoch parser.add_argument('--max-epoch', default=300, type=int,help="maximum epochs to run") parser.add_argument('--start-epoch', default=0, type=int,help="manual epoch number (useful on restarts)") # batch size parser.add_argument('--train-batch', default=32, type=int,help="train batch size") parser.add_argument('--test-batch', default=32, type=int, help="test batch size") # 學(xué)習(xí)率初始值 parser.add_argument('--lr', '--learning-rate', default=0.0002, type=float,help="initial learning rate") # 步長 parser.add_argument('--stepsize', default=150, type=int,help="stepsize to decay learning rate (>0 means this is enabled)") # 學(xué)習(xí)率衰減系數(shù) parser.add_argument('--gamma', default=0.1, type=float,help="learning rate decay") parser.add_argument('--weight-decay', default=5e-04, type=float,help="weight decay (default: 5e-04)")# triplet hard loss parser.add_argument('--margin', type=float, default=0.3, help="margin for triplet loss") parser.add_argument('--num-instances', type=int, default=4,help="number of instances per identity") parser.add_argument('--htri-only', action='store_true', default=False,help="if this is True, only htri loss is used in training") # Architecture parser.add_argument('-a', '--arch', type=str, default='resnet50', choices=models.get_names())# Miscs parser.add_argument('--print-freq', type=int, default=10, help="print frequency") parser.add_argument('--seed', type=int, default=1, help="manual seed") parser.add_argument('--resume', type=str, default='', metavar='PATH') parser.add_argument('--evaluate', action='store_true', help="evaluation only") # 每20個epoch執(zhí)行一次測試 parser.add_argument('--eval-step', type=int, default=20,help="run evaluation for every N epochs (set to -1 to test after training)") parser.add_argument('--start-eval', type=int, default=0, help="start to evaluate after specific epoch") parser.add_argument('--save-dir', type=str, default='log') parser.add_argument('--use_cpu', action='store_true', help="use cpu") # 默認(rèn)使用gup-0 parser.add_argument('--gpu-devices', default='0', type=str, help='gpu device ids for CUDA_VISIBLE_DEVICES') parser.add_argument('--reranking',action= 'store_true', help= 'result re_ranking')parser.add_argument('--test_distance',type = str, default='global', help= 'test distance type') parser.add_argument('--unaligned',action= 'store_true', help= 'test local feature with unalignment')args = parser.parse_args()

主函數(shù)main()

# 主函數(shù) def main():# 判斷是否有GPUuse_gpu = torch.cuda.is_available()# 使用cpu則Gpu關(guān)if args.use_cpu:use_gpu = False# 節(jié)省內(nèi)存pin_memory =True if use_gpu else False# 日志輸出if not args.evaluate:sys.stdout = Logger(osp.join(args.save_dir, 'log_train.txt'))else:sys.stdout = Logger(osp.join(args.save_dir, 'log_test.txt'))print("==========\nArgs:{}\n==========".format(args))# 使用GPU的一些設(shè)置if use_gpu:print("Currently using GPU {}".format(args.gpu_devices))os.environ['CUDA_VISIBLE_DEVICES'] = args.gpu_devicescudnn.benchmark = True# 確定隨機(jī)初始化seedtorch.cuda.manual_seed_all(args.seed)else:print("Currently using CPU (GPU is highly recommended)")# 1. 數(shù)據(jù)預(yù)處理# 1.1 初始化數(shù)據(jù)集print("Initializing dataset {}".format(args.dataset))dataset = dataset_manager.init_img_dataset(root=args.root, name=args.dataset)# 1.2 data augmentation# 訓(xùn)練集和測試集采用的方式不同# 測試集不需要數(shù)據(jù)增強 僅需要修改圖片格式# 這里把圖片轉(zhuǎn)成的256,128 且為tensortransform_train = T.Compose([T.Resize((args.height,args.width)),T.RandomHorizontalFlip(),T.ToTensor(),T.Normalize(mean=[0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225]),])transform_test = T.Compose([T.Resize((args.height,args.width)),T.ToTensor(),T.Normalize(mean=[0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225]),])# 1.3讀入圖片數(shù)據(jù)trainloader = DataLoader(ImageDataset(dataset.train,transform=transform_train),sampler=RandomIdentitySampler(dataset.train,num_instances=args.num_instances),batch_size=args.train_batch,num_workers=args.workers,pin_memory=pin_memory,# 丟掉不滿足一個batch的數(shù)據(jù)drop_last=True,)queryloader = DataLoader(ImageDataset(dataset.query,transform=transform_test),# shuffle =False 不打亂順序batch_size=args.test_batch,shuffle=False,num_workers=args.workers,pin_memory=pin_memory,drop_last=False,)galleryloader = DataLoader(ImageDataset(dataset.gallery, transform=transform_test),batch_size=args.test_batch, shuffle=False, num_workers=args.workers,pin_memory=pin_memory, drop_last=False,)# 2.加載模型print("Initializing model: {}".format(args.arch))model = models.init_model(name=args.arch,num_classes = dataset.num_train_pids,loss={'softmax','metric'},aligned =True,use_gpu=use_gpu)print("Model size: {:.5f}M".format(sum(p.numel() for p in model.parameters()) / 1000000.0))# 3.加載損失函數(shù)if args.labelsmooth:# overfitcriterion_class = nn.CrossEntropyLabelSmooth(num_classes=dataset.num_train_pids, use_gpu=use_gpu)else:# 交叉熵?fù)p失(分類)criterion_class = nn.CrossEntropyLoss()# 三元損失(度量)criterion_metric = TripletAlignedReIDloss(margin=args.margin)# 4.加載模型優(yōu)化器# 這里對模型的優(yōu)化器進(jìn)行了重構(gòu) 可以根據(jù)參數(shù)調(diào)用不同的優(yōu)化器# args.optim 決定使用的優(yōu)化器# model.parameters()對所有的參數(shù)進(jìn)行更新 model.conv1對模型的第一層進(jìn)行更新# args.lr 初始學(xué)習(xí)率# args.wight_decay模型正則化參數(shù)optimizer = init_optim(args.optim,model.parameters(),args.lr,args.weight_decay)# 根據(jù)需求選擇不同調(diào)整學(xué)習(xí)率方法# 學(xué)習(xí)率的衰減 避免模型震蕩if args.stepsize > 0:scheduler = lr_scheduler.StepLR(optimizer,step_size=args.stepsize,gamma=args.gamma)start_epoch = args.start_epoch# 是否需要恢復(fù)模型if args.resume:print("Loading checkpoint from '{}'".format(args.resume))checkpoint = torch.load(args.resume)model.load_state_dict(checkpoint['state_dict'])start_epoch = checkpoint['epoch']# 使用并行庫if use_gpu:model = nn.DataParallel(model).cuda()# 測試if args.evaluate:print("Evaluate only")# resnet50,query, testtest(model, queryloader, galleryloader, use_gpu)return 0# 5.模型訓(xùn)練start_time = time.time()train_time = 0best_rank1 = -np.infbest_epoch = 0print("==> Start training")# 5.1 從開始的epoch,到結(jié)束的epoch開始循環(huán)for epoch in range(start_epoch, args.max_epoch):start_train_time = time.time()# 5.2 調(diào)用訓(xùn)練函數(shù)進(jìn)行訓(xùn)練train(epoch, model, criterion_class, criterion_metric, optimizer, trainloader, use_gpu)# 計算了一下訓(xùn)練的時間train_time += round(time.time() - start_train_time)# 學(xué)習(xí)率衰減if args.stepsize > 0: scheduler.step()# 測試if (epoch + 1) > args.start_eval and args.eval_step > 0 and (epoch + 1) % args.eval_step == 0 or (epoch + 1) == args.max_epoch:print("==> Test")rank1 = test(model, queryloader, galleryloader, use_gpu)is_best = rank1 > best_rank1if is_best:best_rank1 = rank1best_epoch = epoch + 1if use_gpu:state_dict = model.module.state_dict()else:state_dict = model.state_dict()# 6.保存模型save_checkpoint({'state_dict': state_dict,'rank1': rank1,'epoch': epoch,}, is_best, osp.join(args.save_dir, 'checkpoint_ep' + str(epoch + 1) + '.pth.tar'))print("==> Best Rank-1 {:.1%}, achieved at epoch {}".format(best_rank1, best_epoch))elapsed = round(time.time() - start_time)elapsed = str(datetime.timedelta(seconds=elapsed))train_time = str(datetime.timedelta(seconds=train_time))print("Finished. Total elapsed time (h:m:s): {}. Training time (h:m:s): {}.".format(elapsed, train_time))

訓(xùn)練函數(shù)train()

def train(epoch, model, criterion_class, criterion_metric, optimizer, trainloader, use_gpu):# 確定模型實在訓(xùn)練模式model.train()losses = AverageMeter()batch_time = AverageMeter()data_time = AverageMeter()xent_losses = AverageMeter()global_losses = AverageMeter()local_losses = AverageMeter()end = time.time()# 使用trainloader迭代器吐數(shù)據(jù)for batch_idx, (imgs, pids, _) in enumerate(trainloader):if use_gpu:imgs, pids = imgs.cuda(), pids.cuda()# measure data loading timedata_time.update(time.time() - end)# [32,751],[32,128,8],[32,2048]outputs, global_features, local_features = model(imgs)# `htri`: triplet loss with hard positive/negative mining [4]if args.htri_only:# isinstance() 函數(shù)來判斷一個對象是否是一個已知的類型,類似 type() tuple 元組 數(shù)組if isinstance(global_features, tuple):global_loss, local_loss = DeepSupervision(criterion_metric, global_features, pids, local_features)else:global_loss, local_loss = criterion_metric(global_features, pids, local_features)else:if isinstance(outputs, tuple):# `xent`: cross entropy + label smoothing regularizerxent_loss = DeepSupervision(criterion_class, outputs, pids)else:xent_loss = criterion_class(outputs, pids)if isinstance(global_features, tuple):global_loss, local_loss = DeepSupervision(criterion_metric, global_features, pids, local_features)else:global_loss, local_loss = criterion_metric(global_features, pids, local_features)# 計算損失loss = xent_loss + global_loss + local_loss# 清空優(yōu)化器梯度optimizer.zero_grad()# 反向傳播loss.backward()# 更新模型參數(shù)optimizer.step()batch_time.update(time.time() - end)end = time.time()losses.update(loss.item(), pids.size(0))xent_losses.update(xent_loss.item(), pids.size(0))global_losses.update(global_loss.item(), pids.size(0))local_losses.update(local_loss.item(), pids.size(0))if (batch_idx+1) % args.print_freq == 0:print('Epoch: [{0}][{1}/{2}]\t''Time {batch_time.val:.3f} ({batch_time.avg:.3f})\t''Data {data_time.val:.3f} ({data_time.avg:.3f})\t''Loss {loss.val:.4f} ({loss.avg:.4f})\t''CLoss {xent_loss.val:.4f} ({xent_loss.avg:.4f})\t''GLoss {global_loss.val:.4f} ({global_loss.avg:.4f})\t''LLoss {local_loss.val:.4f} ({local_loss.avg:.4f})\t'.format(epoch+1, batch_idx+1, len(trainloader), batch_time=batch_time,data_time=data_time,loss=losses,xent_loss=xent_losses, global_loss=global_losses, local_loss = local_losses))

測試函數(shù)test()

def test(model, queryloader, galleryloader, use_gpu, ranks=[1, 5, 10, 20]):batch_time = AverageMeter()# 和model.train相對 表示不使用BatchNormalization和Dropout,保證BN和dropout不變化model.eval()# 反向傳播時都不會自動求導(dǎo)。volatile可以實現(xiàn)一定速度的提升,并節(jié)省一半的顯存,因為其不需要保存梯度with torch.no_grad():# 1.queryloader處理# list列表數(shù)據(jù)類型,列表是一種可變序列qf, q_pids, q_camids, lqf = [], [], [], []# 從迭代器中取數(shù)據(jù)for batch_idx, (imgs, pids, camids) in enumerate(queryloader):# 轉(zhuǎn)化為cuda模式if use_gpu: imgs = imgs.cuda()end = time.time()global_features, local_features = model(imgs)batch_time.update(time.time() - end)# 將GPU上的tensor轉(zhuǎn)化為cpu上從而進(jìn)行一些只能在cpu上進(jìn)行的運算global_features = global_features.data.cpu()local_features = local_features.data.cpu()# 添加到列表qf.append(global_features)lqf.append(local_features)q_pids.extend(pids)q_camids.extend(camids)# torch.cat是將兩個張量(tensor)拼接在一起 #按維數(shù)0(行)拼接qf = torch.cat(qf, 0)lqf = torch.cat(lqf,0)q_pids = np.asarray(q_pids)q_camids = np.asarray(q_camids)print("Extracted features for query set, obtained {}-by-{} matrix".format(qf.size(0), qf.size(1)))# 2.galleryloader處理gf, g_pids, g_camids, lgf = [], [], [], []end = time.time()for batch_idx, (imgs, pids, camids) in enumerate(galleryloader):if use_gpu: imgs = imgs.cuda()end = time.time()features, local_features = model(imgs)batch_time.update(time.time() - end)features = features.data.cpu()local_features = local_features.data.cpu()gf.append(features)lgf.append(local_features)g_pids.extend(pids)g_camids.extend(camids)gf = torch.cat(gf, 0)lgf = torch.cat(lgf,0)g_pids = np.asarray(g_pids)g_camids = np.asarray(g_camids)print("Extracted features for gallery set, obtained {}-by-{} matrix".format(gf.size(0), gf.size(1)))print("==> BatchTime(s)/BatchSize(img): {:.3f}/{}".format(batch_time.avg, args.test_batch))# feature normlizationqf = 1. * qf / (torch.norm(qf, 2, dim = -1, keepdim=True).expand_as(qf) + 1e-12)gf = 1. * gf / (torch.norm(gf, 2, dim = -1, keepdim=True).expand_as(gf) + 1e-12)m, n = qf.size(0), gf.size(0)# 求距離a^2+b^2-2*a*bdistmat = torch.pow(qf, 2).sum(dim=1, keepdim=True).expand(m, n) + \torch.pow(gf, 2).sum(dim=1, keepdim=True).expand(n, m).t()distmat.addmm_(1, -2, qf, gf.t())distmat = distmat.numpy()if not args.test_distance== 'global':print("Only using global branch")from utils.distance import low_memory_local_distlqf = lqf.permute(0,2,1)lgf = lgf.permute(0,2,1)local_distmat = low_memory_local_dist(lqf.numpy(),lgf.numpy(),aligned= not args.unaligned)if args.test_distance== 'local':print("Only using local branch")distmat = local_distmatif args.test_distance == 'global_local':print("Using global and local branches")distmat = local_distmat+distmatprint("Computing CMC and mAP")cmc, mAP = evaluate(distmat, q_pids, g_pids, q_camids, g_camids)print("Results ----------")print("mAP: {:.1%}".format(mAP))print("CMC curve")for r in ranks:print("Rank-{:<3}: {:.1%}".format(r, cmc[r - 1]))print("------------------")if args.reranking:if args.test_distance == 'global':print("Only using global branch for reranking")distmat = re_ranking(qf,gf,k1=20, k2=6, lambda_value=0.3)else:local_qq_distmat = low_memory_local_dist(lqf.numpy(), lqf.numpy(),aligned= not args.unaligned)local_gg_distmat = low_memory_local_dist(lgf.numpy(), lgf.numpy(),aligned= not args.unaligned)local_dist = np.concatenate([np.concatenate([local_qq_distmat, local_distmat], axis=1),np.concatenate([local_distmat.T, local_gg_distmat], axis=1)],axis=0)if args.test_distance == 'local':print("Only using local branch for reranking")distmat = re_ranking(qf,gf,k1=20,k2=6,lambda_value=0.3,local_distmat=local_dist,only_local=True)elif args.test_distance == 'global_local':print("Using global and local branches for reranking")distmat = re_ranking(qf,gf,k1=20,k2=6,lambda_value=0.3,local_distmat=local_dist,only_local=False)print("Computing CMC and mAP for re_ranking")cmc, mAP = evaluate(distmat, q_pids, g_pids, q_camids, g_camids, use_metric_cuhk03=args.use_metric_cuhk03)print("Results ----------")print("mAP(RK): {:.1%}".format(mAP))print("CMC curve(RK)")for r in ranks:print("Rank-{:<3}: {:.1%}".format(r, cmc[r - 1]))print("------------------")return cmc[0]

開啟訓(xùn)練

if __name__ == "__main__":main()

訓(xùn)練結(jié)果

截取的某一次的訓(xùn)練過程如下圖:

保存的模型:

最終識別率:
可以看到在第240個epoch的時候,rank-1可以達(dá)到89.4.

總結(jié)

以上是生活随笔為你收集整理的从零开始AlignedReID_05的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

中文字幕视频一区 | 中文在线www | 激情在线五月天 | 国产高清视频网 | 午夜av影院| 欧美激情精品一区 | 成人一级在线 | av经典在线| 精品国产综合区久久久久久 | 午夜男人影院 | 国产精品成人国产乱一区 | 久久免费精彩视频 | 中文字幕免费一区二区 | 国产资源站 | av黄色大片 | 国产免费亚洲 | www.狠狠插.com | 97电影网手机版 | 久久久久久综合 | 91av在线免费视频 | 五月综合婷 | 91精品国产综合久久婷婷香蕉 | 日韩电影在线一区 | 国产中文字幕视频在线观看 | 色天天久久| 免费a网| 久久久精品福利视频 | 日本中文字幕电影在线免费观看 | 亚洲日本欧美在线 | 久久精品一区二区三 | 欧美在线一 | 在线精品视频免费播放 | 免费看成人 | 在线看av的网址 | 综合网久久 | 国产免费又粗又猛又爽 | 中文字幕电影高清在线观看 | 国产激情电影综合在线看 | 狂野欧美激情性xxxx欧美 | 国产精品久久久777 成人手机在线视频 | 精品亚洲欧美一区 | 久久免费视频7 | 欧美日产在线观看 | 免费一级片视频 | 在线看片一区 | 久久与婷婷 | 精品福利在线 | 国产精品免费观看在线 | 欧美极品裸体 | 免费色网| av电影免费 | 99精品欧美一区二区 | 免费看污网站 | av播放在线 | 麻豆视频免费版 | aaa日本高清在线播放免费观看 | 亚洲一级片免费观看 | www久久精品| 国产精品免费久久久久久 | 欧美调教网站 | 毛片一二区 | 国产热re99久久6国产精品 | 成人在线一区二区三区 | 国产裸体永久免费视频网站 | 三三级黄色片之日韩 | 国产美女视频免费观看的网站 | 日韩免费观看高清 | 成年人国产在线观看 | 欧美动漫一区二区三区 | 黄色成人av | 国产原厂视频在线观看 | 国产一区二区在线影院 | 日日干天天爽 | 成人黄色大片在线免费观看 | 最新日韩电影 | 99国产精品一区 | 69绿帽绿奴3pvideos | 日韩在线播放视频 | 青草视频免费观看 | 国内久久精品 | 97成人超碰 | 美女网站在线看 | 欧美日韩国产色综合一二三四 | 日韩手机在线观看 | 狠狠色狠狠色综合日日小说 | 久久另类小说 | 日韩在线免费视频 | 999成人 | 亚洲综合色视频 | 日本中文字幕系列 | 亚洲精品美女久久久 | 欧美日本在线视频 | 国内视频在线观看 | 高清中文字幕 | 中文字幕 91| 国精产品一二三线999 | 精品国产乱码久久久久久1区2匹 | 五月天狠狠操 | 成人一级在线观看 | 在线免费观看视频一区二区三区 | av电影中文 | 九色在线| 91视频免费视频 | a视频在线观看免费 | 国产一二三四在线观看视频 | 2024国产精品视频 | 一区二区三区日韩视频在线观看 | 91成人免费看片 | 中文字幕日韩av | 91av久久 | 日本激情视频中文字幕 | 成年人看片 | 玖玖视频免费在线 | 久久九九国产视频 | 啪啪动态视频 | 亚洲少妇天堂 | 国内精品亚洲 | 成人影视片 | 中文字幕a∨在线乱码免费看 | 狠狠色香婷婷久久亚洲精品 | 久久久久国产精品午夜一区 | 六月丁香综合 | 国产精品视频最多的网站 | 91亚色免费视频 | 国产理论影院 | 日日夜夜av | 精品久久久久久国产偷窥 | 五月婷激情 | 中文字幕一区二区三区四区 | 免费观看www视频 | 超级碰碰碰视频 | aav在线| 久久美女高清视频 | 中文字幕电影高清在线观看 | 少妇激情久久 | 日韩一区二区三区高清免费看看 | 国产日韩精品久久 | 亚洲精品美女视频 | 天天操天天是 | 国产69精品久久久久久久久久 | 日韩r级电影在线观看 | 国产精品永久免费视频 | 久久高清免费视频 | 国产最新91 | 在线观看免费高清视频大全追剧 | 日一日操一操 | 欧美一区二区三区四区夜夜大片 | 97视频在线免费观看 | 日韩一区视频在线 | 激情五月网站 | 日韩精品一区二区三区免费观看视频 | 欧美黄色成人 | 日韩免费一级电影 | 五月婷婷丁香六月 | 综合激情网 | 98精品国产自产在线观看 | 99热99 | 日韩av手机在线看 | av 一区二区三区四区 | 在线观看av国产 | 亚洲在线日韩 | 国产一区二区久久久久 | 人人涩 | 欧美一区二区三区在线观看 | 亚洲欧美日韩一级 | 国产精品久久久777 成人手机在线视频 | 黄色1级毛片 | www.香蕉| 奇米影视777四色米奇影院 | 91九色视频在线观看 | 免费av黄色 | 国产精品一区二区av影院萌芽 | 国产一区二区在线播放视频 | 91精品免费看| 天堂av一区二区 | 色多多视频在线观看 | 99在线精品视频在线观看 | 99久久精品免费看国产免费软件 | 视频在线在亚洲 | 国产精品资源在线观看 | 国产日韩欧美在线观看视频 | 韩国精品在线观看 | 日韩美女久久 | 亚洲国产欧美一区二区三区丁香婷 | av电影不卡 | 久久久精品免费观看 | 超碰在线观看99 | 国产精品99久久久久久小说 | 日韩精品中文字幕在线不卡尤物 | av一区在线播放 | 午夜久久影视 | 久久xxxx| 奇米网网址 | 91色网址 | 中文字幕有码在线观看 | 在线观看黄av | 国产小视频福利在线 | 精品一区 精品二区 | 欧美日韩国产精品一区二区三区 | 午夜18视频在线观看 | av资源免费在线观看 | 在线亚洲播放 | 在线观看国产永久免费视频 | 99热9 | 99r在线视频| 久草免费新视频 | 操一草| 91.麻豆视频 | 日本精品小视频 | 中文字幕在线观看免费 | 免费在线观看不卡av | 久久99国产精品免费 | 精品日韩在线一区 | 国色综合| 免费日韩一级片 | 国产精品美女久久久久久 | 久久影视网 | 日韩精品一区二区三区外面 | 亚洲资源| 日日干网 | 国产123区在线观看 国产精品麻豆91 | 国产福利在线免费观看 | 欧美在线视频a | 黄色毛片视频免费观看中文 | 波多野结衣一区三区 | 欧美一区影院 | 人人草在线视频 | 久久精品网站免费观看 | 欧美日韩精品在线一区二区 | 亚洲午夜在线视频 | 免费黄色a网站 | 久久免费片 | 久久人人97超碰精品888 | 亚洲一级电影 | 日本久久99| 一级性视频 | avwww在线 | 在线精品视频免费播放 | 婷婷六月在线 | 丁香九月婷婷综合 | a级国产乱理伦片在线观看 亚洲3级 | 激情网站网址 | 国产视频1区2区 | 中文字幕在线观看资源 | 亚洲精品456在线播放第一页 | 国产黄色片在线 | 亚洲第一av在线 | 久在线观看视频 | 国产成人精品av | 国产精品 亚洲精品 | 日本女人在线观看 | 亚洲午夜在线视频 | 日韩动漫免费观看高清完整版在线观看 | 免费网址在线播放 | 日韩激情免费视频 | 天天看天天操 | 午夜婷婷在线播放 | 999精品网 | 久久精品99国产国产 | 视频一区视频二区在线观看 | 欧美影片| 黄网站免费大全入口 | 免费成人看片 | 久久久精品一区二区 | av一区二区三区在线播放 | 免费福利在线视频 | 九精品| 亚洲精品美女久久久久网站 | av亚洲产国偷v产偷v自拍小说 | 久久精品国产一区 | 国产视频资源 | 中文字幕中文字幕在线中文字幕三区 | 992tv又爽又黄的免费视频 | 国产日韩欧美视频在线观看 | 久久欧美在线电影 | 九九亚洲精品 | 97天天干 | 综合久久久久久久久 | 在线观看中文字幕一区二区 | 91系列在线观看 | 国际精品网 | 国产精品午夜在线 | 国产精品一区二区62 | 久久天堂精品视频 | 久久网页 | 在线观看视频日韩 | 超级碰视频 | 黄色小网站在线 | 7777xxxx| 亚洲一二三在线 | 欧美在线视频免费 | 在线观看视频亚洲 | 国产欧美日韩视频 | 日本系列中文字幕 | 四虎国产精品永久在线国在线 | 蜜桃视频精品 | 亚洲精品在线网站 | 免费观看xxxx9999片 | 黄色av一区二区三区 | 久久国内免费视频 | 欧美日韩免费观看一区二区三区 | 五月激情婷婷丁香 | 99精品国产视频 | 99久久精品国产网站 | 日韩中文在线观看 | 中文字幕一区二 | 日韩欧美国产免费播放 | 国产精品一区二区久久国产 | 日日夜夜天天操 | 91高清视频 | 91av色| 少妇性xxx | 8x成人免费视频 | 99视频在线看| 亚洲精品播放 | www.亚洲| 亚洲人成人在线 | 九九热在线视频免费观看 | 五月天网站在线 | 婷婷色综合 | 狠狠狠色狠狠色综合 | 中文字幕av一区二区三区四区 | 亚洲成人麻豆 | 午夜三级影院 | 国产成人精品综合 | 亚洲综合爱 | 一本一本久久a久久精品综合 | av中文字幕亚洲 | 韩日电影在线观看 | 亚洲精品国产精品国自产在线 | 中日韩免费视频 | 午夜在线观看一区 | 在线视频 日韩 | 狠狠色噜噜狠狠狠狠 | 丁香花中文在线免费观看 | 玖玖精品在线 | 中文字幕在线电影 | 日本久久久久 | 四虎在线永久免费观看 | 日韩中文字幕一区 | 五月天伊人 | 日韩精品一区二区在线观看视频 | 成人免费观看a | av在观看 | 99视频黄 | 91视频免费网站 | 丁香婷婷成人 | 91网免费看 | 亚洲国产日韩一区 | 黄色软件视频网站 | 美女久久视频 | 天天干 天天摸 天天操 | 一区在线观看 | 99精品国自产在线 | 丁香婷婷在线观看 | 在线观看国产 | 免费合欢视频成人app | 国产在线a不卡 | 在线免费观看视频一区二区三区 | 99草视频在线观看 | 天天av资源 | 成人黄色av网站 | 国产精品一区二区久久 | 一区二区三区日韩在线观看 | 亚洲国产精品免费 | 欧洲一区精品 | 丁香婷婷综合色啪 | 久亚洲精品 | 日日干夜夜爱 | 2019中文| h网站免费在线观看 | 久久人人爽人人 | 亚洲欧洲成人精品av97 | 九九免费观看视频 | 欧美成人日韩 | 五月婷婷六月丁香激情 | 日韩18p| 久久精品韩国 | 久久久视屏 | 人人爽人人爽人人片 | 亚洲美女精品视频 | 国产糖心vlog在线观看 | 一区二区伦理电影 | 久久婷综合 | 精品在线观看一区二区三区 | 91电影福利 | 色美女在线 | 国产一级在线播放 | 成人黄色国产 | 国产精品黄色 | 超碰在线个人 | 国产免费成人av | 91精品国产欧美一区二区 | 午夜影院三级 | 日女人免费视频 | 最新av免费在线 | 最近更新好看的中文字幕 | 丁香六月网 | 午夜免费视频网站 | 精品国产乱码久久久久 | av看片网 | 久久婷婷丁香 | 免费在线观看不卡av | 中文字幕在线观 | 久久久久久久久福利 | 国产美女精品视频免费观看 | 国产精品区一区 | 六月丁香在线视频 | 精品一区二区久久久久久久网站 | 久久国产区 | 欧美一级爽 | 国产91在线观 | 国产精品成久久久久三级 | 中文字幕激情 | 欧美日韩午夜爽爽 | 亚洲久草在线 | 摸阴视频 | 国产精品第7页 | 欧美成人精品在线 | 免费国产在线视频 | 五月亚洲综合 | 午夜精品一区二区三区视频免费看 | 8x成人免费视频 | 在线欧美小视频 | 黄av资源 | 国产视频二区三区 | 激情丁香5月 | 福利视频精品 | av手机版| 波多野结衣资源 | 免费h精品视频在线播放 | 久久精品免费 | 一区二区三区免费在线观看 | 国产精品免费久久 | 在线视频一二三 | 成人av网站在线观看 | 天天干天天想 | 在线观看国产麻豆 | 久久久不卡影院 | 国产免费三级在线观看 | 97超碰人人爱 | 国产黄网站在线观看 | 丁香九月激情综合 | 久久久www成人免费精品张筱雨 | 国产日产精品一区二区三区四区 | 91pony九色丨交换 | 91成人网页版 | 久久伊人五月天 | 91av亚洲| 一二三精品视频 | 日韩剧情 | 精品国产一区二区三区久久 | 日韩特黄av| 一区二区三区久久 | 亚洲黄色在线看 | 免费黄色小网站 | 四虎8848免费高清在线观看 | www.国产毛片 | 一区二区精品久久 | 99视频精品全部免费 在线 | 国产精品永久免费视频 | 色橹橹欧美在线观看视频高清 | 久久久久久久久久久久亚洲 | 成人sm另类专区 | 色99中文字幕 | 日韩综合一区二区三区 | 国产自在线观看 | 五月婷婷在线观看视频 | 黄污污网站 | 久久婷婷久久 | 麻豆国产精品视频 | 日韩免费福利 | 国产一区二区在线免费视频 | 日韩免费视频一区二区 | 免费观看v片在线观看 | 国产精品永久免费视频 | 久久日本视频 | 成人免费在线视频观看 | 欧美日韩不卡在线 | 日本在线观看视频一区 | 久久精品com| 久久九九精品 | 不卡的av在线播放 | 波多野结衣在线播放视频 | 天天综合久久综合 | 天天干夜夜夜 | 日本久草电影 | 久久免费看毛片 | 国产美女视频网站 | 97偷拍在线视频 | 99综合电影在线视频 | 最新色站 | 国产精品福利午夜在线观看 | 日本久久电影网 | 911精品视频 | 在线免费观看羞羞视频 | www色,com | 亚洲成人二区 | 粉嫩av一区二区三区四区 | 97超碰在线久草超碰在线观看 | 国产永久免费观看 | 国产视频亚洲精品 | 亚洲五月婷婷 | 精品福利在线视频 | www国产亚洲精品久久网站 | 国产老熟 | 中文av日韩 | 国产91电影在线观看 | 免费男女羞羞的视频网站中文字幕 | 一区二区精品国产 | 国产精品一区二区三区在线 | 日韩系列| 国产91精品一区二区 | 福利网在线 | 91污在线 | 亚洲国产精品电影在线观看 | 国产一区久久久 | 99热这里只有精品8 久久综合毛片 | 伊人婷婷久久 | 97超碰福利久久精品 | 亚洲精品美女在线观看播放 | 亚洲免费在线观看视频 | 激情伊人五月天 | av中文字幕不卡 | 久久成人国产精品一区二区 | 毛片网站免费在线观看 | 久久天堂网站 | 久久丁香网 | 丁香电影小说免费视频观看 | 国产精品美女网站 | 日本成人中文字幕在线观看 | av网站地址 | 日韩精品短视频 | 99久久精品国产免费看不卡 | 久久久久国产精品厨房 | 亚洲国产成人精品在线观看 | 日韩mv欧美mv国产精品 | 婷婷色5月| 天天看天天干 | 欧美日韩中文另类 | a黄色一级片 | 日韩精品一区电影 | 丁香婷婷激情国产高清秒播 | 六月天综合网 | 国产精品av免费在线观看 | 免费在线成人 | 久久国产精品视频观看 | av日韩精品 | 国产精品69av | 久久精品永久免费 | 午夜黄网 | 精品久久一| 一区二区三区国产欧美 | 天天综合网久久 | 国产夫妻自拍av | 免费看片黄色 | 欧美性大战 | 看av免费 | 黄色午夜网站 | 五月婷婷色播 | 91精品婷婷国产综合久久蝌蚪 | 伊人五月天 | 在线看的毛片 | 中国一级片视频 | a视频免费看 | av不卡免费在线观看 | 久久久久久久久久久免费视频 | 欧美色综合天天久久综合精品 | 欧洲激情综合 | 天干啦夜天干天干在线线 | 色哟哟国产精品 | 国产日韩精品在线 | 久久婷婷色| 国产无遮挡又黄又爽馒头漫画 | 精品一区欧美 | 国产在线观看你懂得 | 亚洲国产精品小视频 | 国产福利精品视频 | 少妇bbw搡bbbb搡bbbb | 欧美日韩免费一区二区 | 国产精品久久久久久高潮 | 久久精品一区二区三区中文字幕 | 在线观看精品 | 日本黄色黄网站 | 96国产在线 | 456成人精品影院 | 国产九九九九九 | 91资源在线观看 | 国产综合在线观看视频 | 亚洲日本va午夜在线电影 | 久久激情综合网 | 黄色免费看片网站 | 欧美激情视频久久 | 99视频在线免费播放 | 99精品视频在线观看 | 亚洲 欧洲 国产 日本 综合 | 久久视频免费在线观看 | www.玖玖玖 | 国产99区| 国产又粗又猛又爽又黄的视频免费 | 亚洲五月综合 | 久久婷婷国产色一区二区三区 | 国产精品久久一区二区三区, | 99精品久久99久久久久 | 色综合天天射 | 亚洲成人在线免费 | 中文永久免费观看 | 色播激情五月 | 成人在线免费av | 国产中文字幕在线视频 | 亚洲有 在线 | 亚洲综合五月天 | 美女黄网站视频免费 | 91黄色免费看 | 久久午夜免费视频 | 最新午夜 | 久久久久免费精品国产 | 青青草国产精品 | 国产免费一区二区三区网站免费 | 色网站黄 | 国内精品一区二区 | 久久久伦理 | 热久久免费视频精品 | 日韩成人免费在线观看 | 一区免费视频 | 91夫妻自拍 | 日韩精品在线播放 | 日韩高清片 | 色欧美成人精品a∨在线观看 | 亚洲久在线 | 四虎免费av | 最近免费中文字幕 | 黄色小说在线免费观看 | 久久国产精品99久久久久久老狼 | 国产精品video爽爽爽爽 | 日本高清中文字幕有码在线 | 精品视频99| 欧美一级免费在线 | 日韩在线观看视频一区二区三区 | 欧美性黄网官网 | 亚洲伦理一区二区 | 国产黄色精品 | 欧美老少交| 日韩免费精品 | 国产久草在线 | 国产福利a | 国产成人一区二区三区 | 18久久久久久 | 91av社区| 国产亚洲激情视频在线 | 黄网站色视频 | 成人黄色电影免费观看 | 黄色av成人在线 | 奇米影视777四色米奇影院 | 久久久久久久久久国产精品 | 三级av免费看 | 久草在线费播放视频 | 婷婷福利影院 | 四虎国产免费 | 亚洲精品免费在线视频 | 精品电影一区 | 不卡视频在线看 | 伊人婷婷色 | 五月激情在线 | 欧美日韩视频网站 | 18网站在线观看 | 在线视频一区二区 | 国产高清不卡av | 欧美一级电影片 | 国产一区成人在线 | 一级片黄色片网站 | 天天爱综合 | 久久免费黄色大片 | 91亚洲国产成人久久精品网站 | 日韩在线免费视频 | 国产视频在线观看免费 | 中文字幕在线观看不卡 | 亚洲精品在线观看网站 | 中文字幕一区二区三区四区久久 | 中文字幕成人 | 亚洲精品国产精品久久99 | 国产96在线观看 | 亚洲免费a| 国产成人精品一区二区在线观看 | 久久久久久99精品 | 欧美一级黄色网 | 国产一级片毛片 | 人人干天天射 | 中文字幕麻豆 | 国产精品一区专区欧美日韩 | 国产精品一区二区三区四区在线观看 | 久久亚洲综合国产精品99麻豆的功能介绍 | 亚洲dvd | 国产激情免费 | 在线播放 日韩专区 | 91亚洲网站 | 亚洲电影网站 | 日韩欧美专区 | 天天操狠狠操夜夜操 | 久久精品99久久 | 97在线免费视频观看 | 国产精品视频999 | 二区三区在线观看 | 亚洲一级黄色 | 久久免费黄色大片 | 午夜精品久久久 | 综合影视 | 日韩免费在线视频 | 最近最新最好看中文视频 | 97精品国产97久久久久久久久久久久 | 日韩在线大片 | 久久69精品 | 精品亚洲视频在线观看 | 五月婷色 | 9992tv成人免费看片 | 成人网色 | 国产在线播放一区二区三区 | 午夜私人影院久久久久 | av黄色免费网站 | 又黄又刺激的视频 | 69av在线播放 | 久久福利| 在线涩涩 | 免费精品在线观看 | 国产精品高清av | 波多野结衣视频一区 | 免费av免费观看 | 午夜精品福利影院 | 成人天堂网 | 在线观看视频黄色 | 中文字幕资源站 | 亚洲精品男女 | 国产精品久久久久久久久久白浆 | 丝袜足交在线 | 国产亚洲精品久久19p | 日韩电影中文字幕在线 | 99热在线精品观看 | 国产成人在线观看 | 亚洲综合射 | freejavvideo日本免费| 在线中文字幕av观看 | 国产亚洲精品久久久久秋 | 亚洲精品一区中文字幕乱码 | av免费电影网站 | 久久久久久久久久电影 | 91看片在线免费观看 | 亚洲成av人影院 | 中字幕视频在线永久在线观看免费 | 亚洲免费色 | 二区视频在线 | 色噜噜狠狠色综合中国 | 国产69精品久久99的直播节目 | 久久99久国产精品黄毛片入口 | 91成人免费| 三级黄色在线观看 | 久久精品第一页 | 99视频+国产日韩欧美 | 国产日韩视频在线播放 | 一区二区三区免费在线观看 | 日韩电影中文字幕在线 | 欧美午夜视频在线 | 久久精品美女视频 | 久久综合九色综合网站 | 91高清在线 | 免费男女羞羞的视频网站中文字幕 | 久久免费视频3 | 欧美激情操 | 麻豆传媒电影在线观看 | av专区在线 | 国产精品久久久免费看 | 久久久高清免费视频 | av在线免费观看网站 | 色多多视频在线 | 日韩毛片精品 | 在线国产激情视频 | 成人av电影网址 | 国产精品99久久久久的智能播放 | 欧美一级片免费在线观看 | www.亚洲精品视频 | 中文字幕一区二区三区久久蜜桃 | 玖玖玖国产精品 | 综合激情av | 亚洲精品视频中文字幕 | 天天操夜夜逼 | 久热超碰 | 麻豆极品 | 99re亚洲国产精品 | 成人性生爱a∨ | 丁香九月激情 | 丁香婷婷色综合亚洲电影 | 色综合天| 日韩在线网 | 久久网页 | 日本精品一区二区三区在线观看 | 天天爱综合 | 久99久中文字幕在线 | 91精品免费视频 | 国产成人精品久 | 五月婷亚洲| 国产视频欧美视频 | 国产精品一区在线观看你懂的 | a在线观看视频 | 日韩性xxx| 亚洲美女精品视频 | 久久艹人人 | 奇米网8888 | 婷婷综合久久 | 午夜精品久久久久久久久久久久久久 | 五月天九九 | 亚洲精品视频免费 | 色插综合| 亚洲一区二区三区毛片 | 成人黄色av免费在线观看 | 久久久精品影视 | 在线日韩| 中文字幕中文 | 国内精品在线看 | 久久久免费毛片 | 国产视频日韩视频欧美视频 | 色婷婷播放 | 久久五月天婷婷 | 国模一二三区 | 亚洲理论影院 | 日韩av中文在线 | 一区二区三区在线观看免费 | 97超碰国产精品女人人人爽 | 成年人电影免费看 | 亚洲欧美视频在线播放 | 日韩黄色网络 | 国产一区二区在线播放 | 波多野结衣精品 | 亚洲码国产日韩欧美高潮在线播放 | 人人草人人草 | 国产精品麻豆视频 | 免费日韩高清 | av在线com | 国产精品久久综合 | 91热在线 | 日本精品视频免费 | 久久久久成人精品免费播放动漫 | 天天草天天干天天 | 九色最新网址 | 中文字幕免费高清av | 国产无区一区二区三麻豆 | 成人免费xyz网站 | wwwav视频 | 成人久久18免费网站 | 欧美一级视频免费看 | 国产黄在线 | 操久| 欧美综合色 | 欧美一区免费在线观看 | 久久久国产高清 | 色婷婷欧美 | 亚洲人成人在线 | 97在线免费观看视频 | 日韩精品久久一区二区 | 在线观看自拍 | 久久99热这里只有精品 | 亚洲人成综合 | 91亚洲在线观看 | 日韩精品久久中文字幕 | 亚洲精品在线观看不卡 | 亚洲精品在线视频 | 亚洲综合网站在线观看 | 亚洲a成人v | 在线观看片 | 欧美日韩在线观看视频 | 91亚洲精品久久久久图片蜜桃 | 色综合久久综合网 | 成人免费视频网站在线观看 | 色插综合 | 亚洲aⅴ一区二区三区 | 亚洲一区天堂 | 亚洲精品九九 | 国产亚洲综合精品 | 国产在线1区 | 久久视频免费观看 | 99热精品在线 | 国产又粗又硬又长又爽的视频 | 午夜精品一区二区三区在线播放 | 人人看人人艹 | 视频91 | 午夜久久久久久久久久影院 | 日韩色一区二区三区 | 欧美日韩高清一区二区 国产亚洲免费看 | 狠狠狠狠狠狠 | 国产精品人成电影在线观看 | 手机看片国产 | 成人在线免费观看网站 | www.久久久| 久久综合五月 | 亚洲欧美日韩在线一区二区 | 精品久久一 | 五月天色中色 | 区一区二在线 | 91一区二区三区久久久久国产乱 | 天天射网 | 欧美日韩xx| 在线观看资源 | 91chinese在线 | 久久精品一二三区白丝高潮 | 日韩va欧美va亚洲va久久 | 开心激情综合网 | 中文字幕在线观看资源 | 日韩av高清 | 正在播放五月婷婷狠狠干 | 婷婷久久一区二区三区 | 蜜桃视频精品 | 国产成人黄色 | 91麻豆产精品久久久久久 | 国产精品露脸在线 | 久草在线免费资源 | 波多野结衣亚洲一区二区 | 99欧美精品 | 国产精品99精品 | 欧美视频在线观看免费网址 | av3级在线| 免费观看黄色12片一级视频 | 一区二区欧美在线观看 | 韩国av一区二区三区在线观看 | 久久久久久久久久久久影院 | 91在线播 | 亚洲电影av在线 | 久久成人人人人精品欧 | 六月色播 | 日韩在线在线 | 国产精品第一页在线观看 | 在线成人免费 | 久99久中文字幕在线 | www.天天色 | 91av视频在线免费观看 | 欧美-第1页-屁屁影院 | 免费裸体视频网 | 日本中文字幕免费观看 | 99久久精品国产一区二区成人 | 国产亚洲视频中文字幕视频 | 亚洲精品中文字幕视频 | 午夜视频欧美 | 国产123区在线观看 国产精品麻豆91 | 日本黄色免费观看 | 九九热中文字幕 | www四虎影院 | 久久精品电影院 | 国产高清免费在线播放 | 27xxoo无遮挡动态视频 | 在线看不卡av | 992tv在线观看 | 国产精品视频免费观看 | 91自拍视频在线观看 | 免费精品在线视频 | 又大又硬又黄又爽视频在线观看 | 欧美日韩午夜 | 中文字幕在线观看一区二区三区 | 久久伊人操 | 97国产视频 | 午夜影院一级片 | 久久精品视频日本 | 欧美性生活免费看 | 午夜 在线 | 成人免费在线观看入口 | 欧美日韩伦理一区 | 97免费在线视频 | 九九久久久久99精品 | 1024手机基地在线观看 | 欧美综合在线视频 | 亚洲人成精品久久久久 | 日本久久久久久科技有限公司 | 99热九九这里只有精品10 | 91日韩在线专区 | 免费在线播放av电影 | 午夜10000 | 91av在线精品 | 在线中文字幕观看 | 精品电影一区二区 | 天天曰夜夜操 | 亚洲黄网站 | 精品免费国产一区二区三区四区 | 伊人成人激情 | 亚洲 欧美 精品 | 国产精品99久久久久人中文网介绍 | 色婷婷久久久综合中文字幕 | 91av亚洲 | 国产精品视频不卡 | av看片网址 | 国产精品美女久久久久久 | 精品999在线观看 | 久久色中文字幕 | 一区二区三区在线电影 | 国产精品观看视频 | 久久亚洲综合色 | 日韩欧美视频免费观看 | 国内小视频| 在线视频欧美日韩 | 美女免费视频一区二区 | 人人讲 | 精品国产一二三四区 | 精品天堂av |