亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

基于ResNet的人臉表情識(shí)別實(shí)戰(zhàn):從FER2013訓(xùn)練到部署

基于ResNet的人臉表情識(shí)別實(shí)戰(zhàn):從FER2013訓(xùn)練到部署 簡介面向Python期末大作業(yè)的人臉表情識(shí)別項(xiàng)目基于ResNet搭建覆蓋圖像讀取、數(shù)據(jù)預(yù)處理、模型訓(xùn)練與效果評(píng)估的完整流程適合需要完成課程設(shè)計(jì)或入門深度學(xué)習(xí)的Python開發(fā)者參考。壓縮包共103個(gè)文件約54.11MB核心為19個(gè)py源碼文件32個(gè)png、14個(gè)jpg等圖片構(gòu)成表情樣本集3個(gè)hdf5文件提供預(yù)訓(xùn)練權(quán)重可直接加載模型進(jìn)行測(cè)試另有xml配置文件、mp4演示視頻、md說明文檔和gif效果圖方便按需查閱。目前已有135人學(xué)習(xí)下載。源碼經(jīng)過本機(jī)調(diào)試可運(yùn)行附帶的說明文檔能幫助理清數(shù)據(jù)集組織方式與訓(xùn)練流程訓(xùn)練好的權(quán)重文件讓不熟悉訓(xùn)練細(xì)節(jié)的同學(xué)也能直接體驗(yàn)人臉表情識(shí)別效果而完整源碼又適合深入分析ResNet各層結(jié)構(gòu)與分類原理。整體難度適中既能支撐期末答辯也可作為K12階段接觸人工智能的實(shí)踐素材。1. 基于ResNet的人臉表情識(shí)別為什么是期末大作業(yè)里最穩(wěn)的選型每年期末都會(huì)看到一批人臉表情識(shí)別選題涌上來選型卻總在第一步翻車有人拿VGG在48×48的小圖上硬撐三天出不了能看的Loss有人自研CNN在驗(yàn)證集上過擬合到懷疑人生?;赗esNet做表情識(shí)別之所以穩(wěn)是因?yàn)樗选吧疃取焙汀翱捎?xùn)性”同時(shí)給了你——?dú)埐钸B接讓梯度回傳不再玄學(xué)ResNet18在小數(shù)據(jù)集上就能壓得住數(shù)據(jù)量和算力都在一臺(tái)普通筆記本可承受范圍內(nèi)。這套方案本身是一份期末大作業(yè)的完整打包源碼、數(shù)據(jù)集加說明文檔適合正在趕進(jìn)度、想用最少踩坑把項(xiàng)目跑通的同學(xué)。下面按“數(shù)據(jù)處理→模型訓(xùn)練→部署推理→問題排查”的順序拆開講每個(gè)環(huán)節(jié)都給能直接復(fù)現(xiàn)的代碼和參數(shù)。2. 把FER2013數(shù)據(jù)處理成ResNet能吃的格式讀取、增強(qiáng)與標(biāo)簽映射2.1 FER2013的CSV結(jié)構(gòu)一行一圖一標(biāo)簽FER2013是表情識(shí)別最常見的公開數(shù)據(jù)集存儲(chǔ)方式有點(diǎn)反直覺它不是一個(gè)圖片文件夾而是一個(gè)CSV文件每一行是一張48×48的灰度圖。第一列是emotion標(biāo)簽第二列是pixels第三列是Usage用來標(biāo)記這張圖屬于訓(xùn)練集還是測(cè)試集。pixels這一列是把48×48灰度值按行展開成2304個(gè)數(shù)字用空格分隔。做這個(gè)項(xiàng)目時(shí)第一步就是先把這三列拆明白不然后面讀數(shù)據(jù)全是坑。常見做法是先用Pandas讀進(jìn)來看一眼Training、PublicTest、PrivateTest各自的數(shù)量。需要特別留意的是FER2013默認(rèn)切分是Training約28709張、PublicTest約3589張、PrivateTest約3589張。期末大作業(yè)里我一般用Training做訓(xùn)練、PrivateTest做驗(yàn)證PublicTest可以直接并入訓(xùn)練集讓ResNet18多看到約12%的數(shù)據(jù)這個(gè)操作對(duì)最后兩三個(gè)百分點(diǎn)的準(zhǔn)確率是有實(shí)際幫助的。import pandas as pd df pd.read_csv(fer2013.csv) print(df[Usage].value_counts()) # 按 Usage 切分Training 訓(xùn)練PrivateTest 驗(yàn)證PublicTest 并入訓(xùn)練 train_df df[df[Usage] Training] val_df df[df[Usage] PrivateTest] extra_df df[df[Usage] PublicTest] train_df pd.concat([train_df, extra_df], ignore_indexTrue) print(train_df.shape, val_df.shape)這段代碼的邏輯是先打印三個(gè)子集的樣本數(shù)確認(rèn)數(shù)據(jù)量然后分別篩出訓(xùn)練、驗(yàn)證和可擴(kuò)充部分最后把PublicTest拼進(jìn)訓(xùn)練集。參數(shù)說明ignore_indexTrue是讓合并后的索引重新編號(hào)否則后面按索引取樣本時(shí)train_df和val_df的索引會(huì)重疊容易在自定義Dataset里張冠李戴val_df保持原樣不動(dòng)是為了讓驗(yàn)證集獨(dú)立于任何訓(xùn)練數(shù)據(jù)衡量到的準(zhǔn)確率才真實(shí)。切分完建議順手打印一下每個(gè)類別的樣本數(shù)FER2013的類別分布很不均勻這個(gè)信息后面做數(shù)據(jù)增強(qiáng)和類別加權(quán)時(shí)要用。2.2 數(shù)據(jù)增強(qiáng)參數(shù)翻轉(zhuǎn)、裁剪與歸一化表情識(shí)別一個(gè)容易被低估的點(diǎn)是數(shù)據(jù)增強(qiáng)。FER2013只有三萬多張灰度小圖ResNet18參數(shù)量一千多萬直接硬訓(xùn)十有八九過擬合。我一般會(huì)在訓(xùn)練側(cè)用RandomHorizontalFlip、RandomAffine和RandomCrop三件套驗(yàn)證側(cè)只做歸一化和縮放堅(jiān)決不做隨機(jī)變換——這是必須遵守的約定否則驗(yàn)證集就失去了評(píng)估意義。具體參數(shù)上有講究。RandomHorizontalFlip的概率設(shè)0.5水平翻轉(zhuǎn)不會(huì)改變表情語義能把數(shù)據(jù)多樣性直接翻倍RandomAffine的degrees設(shè)10translate設(shè)0.1scale設(shè)0.9到1.1之間輕微旋轉(zhuǎn)和縮放模擬拍攝角度差異。注意角度不要設(shè)太大旋轉(zhuǎn)超過15度后人臉特征會(huì)明顯失真表情識(shí)別不是對(duì)旋轉(zhuǎn)很魯棒的任務(wù)這個(gè)是我調(diào)參數(shù)調(diào)出來的血淚經(jīng)驗(yàn)。from torchvision import transforms train_transform transforms.Compose([ transforms.ToPILImage(), transforms.RandomHorizontalFlip(p0.5), transforms.RandomAffine(degrees10, translate(0.1, 0.1), scale(0.9, 1.1)), transforms.RandomCrop(48, padding4), transforms.ToTensor(), transforms.Normalize(mean[0.5], std[0.5]) ]) val_transform transforms.Compose([ transforms.ToPILImage(), transforms.ToTensor(), transforms.Normalize(mean[0.5], std[0.5]) ])關(guān)鍵點(diǎn)在于Normalize的mean和std都填0.5。因?yàn)镕ER2013是單通道灰度圖所以mean和std是長度為1的列表不是ImageNet預(yù)訓(xùn)練常用的三通道寫法[0.485, 0.456, 0.406]。RandomCrop的padding4表示先把圖擴(kuò)邊到52×52再隨機(jī)裁回48×48等效于做了8像素范圍內(nèi)的平移增強(qiáng)這個(gè)操作對(duì)緩解過擬合很有效。如果你的數(shù)據(jù)集不是48×48需要把RandomCrop和模型輸入尺寸一起改成目標(biāo)值兩者必須保持一致這也是新手最容易埋下的隱患。2.3 自定義Dataset類的完整代碼FER2013的CSV格式?jīng)Q定了不能用torchvision的ImageFolder直接讀必須寫一個(gè)自定義Dataset。這個(gè)類要做三件事從DataFrame里取到pixels字符串、轉(zhuǎn)成48×48的numpy數(shù)組、再套上對(duì)應(yīng)的transform。代碼本身不復(fù)雜但邊界條件多寫的時(shí)候容易漏。from torch.utils.data import Dataset import numpy as np class Fer2013Dataset(Dataset): def __init__(self, df, transformNone): self.df df.reset_index(dropTrue) self.transform transform self.label_map {0: angry, 1: disgust, 2: fear, 3: happy, 4: sad, 5: surprise, 6: neutral} def __len__(self): return len(self.df) def __getitem__(self, idx): row self.df.iloc[idx] label int(row[emotion]) pixels np.array(row[pixels].split(), dtypenp.uint8) image pixels.reshape(48, 48) if self.transform: image self.transform(image) return image, label核心邏輯在__getitem__里pixels列用split()按空格拆成字符串列表再轉(zhuǎn)成uint8數(shù)組并reshape成48×48。dtype必須用np.uint8而不是默認(rèn)的int64否則后面ToTensor會(huì)把輸入值域理解錯(cuò)int64數(shù)組在部分PyTorch版本里甚至?xí)苯訄?bào)類型錯(cuò)誤。label_map這個(gè)字典是給最終推理時(shí)把數(shù)字標(biāo)簽翻譯成可讀字符串用的訓(xùn)練階段不參與計(jì)算但建議提前定義好后面畫混淆矩陣和報(bào)告寫分析都要用到。數(shù)據(jù)集這一層是整個(gè)流程的底座如果這里出了問題后面訓(xùn)練的模型全部白搭。建議在寫訓(xùn)練代碼之前單獨(dú)跑一段驗(yàn)證取Dataset的前5個(gè)樣本打印image.shape和label確認(rèn)輸出是torch.Size([1, 48, 48])和整型標(biāo)簽再繼續(xù)。這一步只花兩分鐘能省掉后面排查半天數(shù)據(jù)加載問題的痛苦。3. ResNet18搭建與訓(xùn)練核心代碼和參數(shù)設(shè)定3.1 為什么期末大作業(yè)選ResNet18而不是ResNet50選ResNet18而不是ResNet50核心不是玄學(xué)是成本和收益的權(quán)衡。ResNet18的參數(shù)量大約1120萬ResNet50大約2550萬后者在ImageNet這種千萬級(jí)數(shù)據(jù)集上確實(shí)更強(qiáng)但表情識(shí)別只有三萬多張訓(xùn)練圖深度加深帶來的收益會(huì)被過擬合抵消。更現(xiàn)實(shí)的是訓(xùn)練時(shí)間一臺(tái)普通筆記本CPU訓(xùn)練ResNet18一個(gè)epoch大約3到4分鐘ResNet50要翻倍期末大作業(yè)通常沒有那么多時(shí)間反復(fù)調(diào)參。實(shí)際操作上不管用torchvision自帶的resnet18還是自己實(shí)現(xiàn)都要做三處改動(dòng)第一層卷積的in_channels從3改成1適配灰度圖conv1的kernel_size從7×7改成3×3stride改成1因?yàn)?8×48的輸入圖用stride2的7×7卷積會(huì)直接丟掉一半信息最后的全連接層輸出改成7對(duì)應(yīng)7類表情。這三處改完剩下的殘差塊結(jié)構(gòu)原樣保留。import torch.nn as nn from torchvision import models def build_resnet18(num_classes7): model models.resnet18(pretrainedFalse) model.conv1 nn.Conv2d(1, 64, kernel_size3, stride1, padding1, biasFalse) model.fc nn.Linear(model.fc.in_features, num_classes) return modelpretrainedFalse這里值得專門說。torchvision的resnet18默認(rèn)帶有ImageNet預(yù)訓(xùn)練權(quán)重輸入是三通道RGB而我們的數(shù)據(jù)是單通道灰度圖直接加載會(huì)出現(xiàn)第一層通道數(shù)不匹配。pretrainedFalse讓模型從頭初始化配合前面對(duì)conv1的修改訓(xùn)練時(shí)不會(huì)報(bào)維度錯(cuò)誤。如果真想用遷移學(xué)習(xí)需要另外處理權(quán)重復(fù)制這個(gè)我在最后一部分單獨(dú)講。改完conv1之后模型的第一個(gè)卷積輸出仍然是64個(gè)通道殘差塊不需要任何額外調(diào)整這個(gè)改動(dòng)是侵入性最小的。3.2 訓(xùn)練主循環(huán)與超參數(shù)設(shè)定訓(xùn)練主循環(huán)是整套代碼里最不值得自己造輪子的部分。常見做法就是標(biāo)準(zhǔn)PyTorch循環(huán)每個(gè)epoch遍歷訓(xùn)練DataLoader計(jì)算Loss、反向傳播、更新權(quán)重然后跑一遍驗(yàn)證集計(jì)算準(zhǔn)確率。不需要自己寫分布式、混合精度這些東西期末大作業(yè)用不上加了還容易出環(huán)境兼容問題。import torch import torch.nn as nn from torch.utils.data import DataLoader device torch.device(cuda if torch.cuda.is_available() else cpu) model build_resnet18().to(device) criterion nn.CrossEntropyLoss() optimizer torch.optim.Adam(model.parameters(), lr1e-3, weight_decay1e-4) train_dataset Fer2013Dataset(train_df, transformtrain_transform) val_dataset Fer2013Dataset(val_df, transformval_transform) train_loader DataLoader(train_dataset, batch_size128, shuffleTrue, num_workers2) val_loader DataLoader(val_dataset, batch_size128, shuffleFalse, num_workers2) for epoch in range(30): model.train() train_loss 0.0 for images, labels in train_loader: images, labels images.to(device), labels.to(device) optimizer.zero_grad() outputs model(images) loss criterion(outputs, labels) loss.backward() optimizer.step() train_loss loss.item() * images.size(0) model.eval() correct 0 total 0 with torch.no_grad(): for images, labels in val_loader: images, labels images.to(device), labels.to(device) outputs model(images) _, predicted torch.max(outputs, 1) total labels.size(0) correct (predicted labels).sum().item() print(fEpoch {epoch1:02d} | Loss {train_loss / len(train_dataset):.4f} | Acc {correct / total:.4f})這里的超參數(shù)是權(quán)衡過的。batch_size設(shè)128是因?yàn)镕ER2013單張圖只有48×48×1顯存占用很小6GB顯存的顯卡毫無壓力如果CPU訓(xùn)練建議降到32或64減少每批次計(jì)算峰值。Adam的學(xué)習(xí)率1e-3是經(jīng)驗(yàn)?zāi)J(rèn)值weight_decay設(shè)1e-4做L2正則對(duì)壓制過擬合很關(guān)鍵。30個(gè)epoch是基線配置實(shí)際訓(xùn)練中盯著驗(yàn)證集準(zhǔn)確率如果10個(gè)epoch后還在漲就繼續(xù)連續(xù)4個(gè)epoch不再提升就該考慮早?;蛘呓祵W(xué)習(xí)率了。參數(shù)取值說明batch_size128GPU可放寬CPU建議3264lr1e-3Adam默認(rèn)經(jīng)驗(yàn)值配合調(diào)度器動(dòng)態(tài)調(diào)整weight_decay1e-4L2正則系數(shù)過擬合時(shí)優(yōu)先調(diào)大到1e-3epochs30基線配置按驗(yàn)證集表現(xiàn)提前停或延長3.3 學(xué)習(xí)率調(diào)整與模型保存訓(xùn)練到后半程固定學(xué)習(xí)率容易在Loss曲面底部來回震蕩。我一般會(huì)在第15個(gè)epoch之后把學(xué)習(xí)率降到原來的十分之一讓權(quán)重在更小的步長下微調(diào)。常見做法是用ReduceLROnPlateau它會(huì)監(jiān)控驗(yàn)證集Loss連續(xù)不下降就自動(dòng)降學(xué)習(xí)率省去手動(dòng)判斷的麻煩。from torch.optim.lr_scheduler import ReduceLROnPlateau scheduler ReduceLROnPlateau(optimizer, modemin, factor0.1, patience3) # 每個(gè)epoch驗(yàn)證結(jié)束后調(diào)用 scheduler.step(val_loss)保存模型這里有個(gè)經(jīng)典誤區(qū)只保存state_dict而不是整個(gè)model對(duì)象。state_dict是權(quán)重的純字典形式體積小、加載快、跨機(jī)器兼容性好整個(gè)model序列化會(huì)把類的定義路徑也存進(jìn)去換目錄或者換環(huán)境立刻報(bào)錯(cuò)。保存時(shí)把驗(yàn)證集準(zhǔn)確率最高的那份單獨(dú)命名為best_model.pth覆蓋保存這樣訓(xùn)練后期即使過擬合加重手里永遠(yuǎn)握著最佳版本算是有后悔藥。best_acc 0.0 # 每個(gè)epoch驗(yàn)證結(jié)束后 if acc best_acc: best_acc acc torch.save(model.state_dict(), best_model.pth)加載時(shí)用同一個(gè)build_resnet18函數(shù)先實(shí)例化模型再load_state_dict。注意要先把模型to(device)再加載否則CPU和GPU之間的權(quán)重device不匹配會(huì)報(bào)錯(cuò)。如果是訓(xùn)練中斷后續(xù)訓(xùn)只加載權(quán)重還不夠——optimizer的state_dict也要一起保存和加載因?yàn)锳dam的動(dòng)量信息丟失后重啟訓(xùn)練前幾個(gè)epoch的效果會(huì)明顯變差。提示進(jìn)程被殺或斷電時(shí)best_model.pth里保存的是最近一次驗(yàn)證集最優(yōu)的權(quán)重。重新啟動(dòng)直接加載這個(gè)文件繼續(xù)調(diào)參不需要從頭重跑能省下大量時(shí)間。4. 訓(xùn)練完怎么用圖片推理與攝像頭實(shí)時(shí)識(shí)別4.1 單張圖片推理代碼訓(xùn)練完成后最直接的驗(yàn)證方式是拿一張沒見過的圖片跑前向推理。這個(gè)流程每一步都有對(duì)應(yīng)的坑讀圖→轉(zhuǎn)灰度→縮放48×48→歸一化→進(jìn)模型→取softmax最大值對(duì)應(yīng)的類別。OpenCV的imread默認(rèn)讀出來是BGR三通道必須先用cvtColor轉(zhuǎn)成灰度否則通道數(shù)對(duì)不上模型輸入。import cv2 import torch def predict_image(model, image_path, device): model.eval() img cv2.imread(image_path) gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) resized cv2.resize(gray, (48, 48)) tensor torch.from_numpy(resized).unsqueeze(0).unsqueeze(0).float() / 255.0 tensor (tensor - 0.5) / 0.5 tensor tensor.to(device) with torch.no_grad(): output model(tensor) prob torch.softmax(output, dim1) pred torch.argmax(prob, dim1).item() label_map {0: angry, 1: disgust, 2: fear, 3: happy, 4: sad, 5: surprise, 6: neutral} return label_map[pred], prob[0, pred].item()這里有一個(gè)容易翻車的細(xì)節(jié)訓(xùn)練時(shí)Normalize用的是mean0.5、std0.5推理時(shí)也必須做一模一樣的歸一化不能只除以255就進(jìn)模型。很多人在這里忘了減均值除標(biāo)準(zhǔn)差導(dǎo)致推理結(jié)果和驗(yàn)證集準(zhǔn)確率對(duì)不上還以為是模型壞了。tensor從H×W變成1×1×H×W第一個(gè)unsqueeze(0)模擬batch維度第二個(gè)模擬channel維度因?yàn)榛叶葓D只有一個(gè)通道。softmax概率值同時(shí)返回方便在界面上顯示置信度答辯展示時(shí)比只給一個(gè)標(biāo)簽更有說服力。4.2 用OpenCV做攝像頭實(shí)時(shí)表情識(shí)別攝像頭實(shí)時(shí)識(shí)別是答辯時(shí)最出效果的部分。核心是用OpenCV的VideoCapture讀每一幀用Haar級(jí)聯(lián)檢測(cè)人臉并框出ROI把ROI縮放到48×48送進(jìn)模型再把預(yù)測(cè)結(jié)果畫在框上。人臉檢測(cè)用的xml文件在OpenCV安裝目錄里自帶不需要額外下載。import cv2 import torch model build_resnet18() model.load_state_dict(torch.load(best_model.pth, map_locationcpu)) model.eval() cap cv2.VideoCapture(0) face_cascade cv2.CascadeClassifier(cv2.data.haarcascades haarcascade_frontalface_default.xml) label_map {0: angry, 1: disgust, 2: fear, 3: happy, 4: sad, 5: surprise, 6: neutral} while True: ret, frame cap.read() if not ret: break gray cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) faces face_cascade.detectMultiScale(gray, scaleFactor1.1, minNeighbors5, minSize(48, 48)) for (x, y, w, h) in faces: roi gray[y:yh, x:xw] roi cv2.resize(roi, (48, 48)) tensor torch.from_numpy(roi).unsqueeze(0).unsqueeze(0).float() / 255.0 tensor (tensor - 0.5) / 0.5 with torch.no_grad(): output model(tensor) pred torch.argmax(output, dim1).item() prob torch.softmax(output, dim1)[0, pred].item() cv2.rectangle(frame, (x, y), (xw, yh), (0, 255, 0), 2) cv2.putText(frame, f{label_map[pred]} {prob:.2f}, (x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2) cv2.imshow(FER, frame) if cv2.waitKey(1) 0xFF ord(q): break cap.release() cv2.destroyAllWindows()detectMultiScale的三個(gè)核心參數(shù)直接決定檢測(cè)靈敏度。scaleFactor1.1表示每次搜索窗口縮小10%越接近1越慢但越準(zhǔn)minNeighbors5表示一個(gè)候選框至少要有5個(gè)鄰近框確認(rèn)才算人臉調(diào)小會(huì)出更多誤檢調(diào)大容易漏檢測(cè)minSize(48, 48)直接過濾掉比訓(xùn)練圖還小的框因?yàn)檫@種框即使檢測(cè)到了縮放進(jìn)模型后也丟光了細(xì)節(jié)。這一段的實(shí)際體驗(yàn)對(duì)答辯很關(guān)鍵建議提前在教室或?qū)嶒?yàn)室的光照條件下跑一遍確認(rèn)能穩(wěn)定識(shí)別而不是到答辯現(xiàn)場才第一次試。5. 避坑指南訓(xùn)練過程中的5個(gè)常見翻車現(xiàn)場5.1 過擬合Loss下降但驗(yàn)證集準(zhǔn)確率不動(dòng)現(xiàn)象訓(xùn)練集Loss每輪都在降驗(yàn)證集準(zhǔn)確率在60%上下原地踏步甚至往下掉。原因FER2013只有三萬多張圖ResNet18的擬合能力太強(qiáng)模型開始背誦訓(xùn)練樣本而不是學(xué)習(xí)表情的通用特征。這是小數(shù)據(jù)集配深網(wǎng)絡(luò)最典型的癥狀。解決三步走。第一確認(rèn)數(shù)據(jù)增強(qiáng)有沒有實(shí)際作用到訓(xùn)練集很多人把增強(qiáng)寫在transform里卻在Dataset構(gòu)造時(shí)忘了傳進(jìn)去。第二增大weight_decay從1e-4加到1e-3給權(quán)重更強(qiáng)的正則約束。第三在最后一層全連接前加一個(gè)nn.Dropout(p0.3)。我自己的經(jīng)驗(yàn)是增大weight_decay比加Dropout效果來得更快同時(shí)訓(xùn)練Loss會(huì)略微抬高這是正常的說明過擬合被壓住了。5.2 數(shù)據(jù)不平衡個(gè)別類別準(zhǔn)確率低得離譜現(xiàn)象訓(xùn)練完成看分類報(bào)告angry和disgust的F1分?jǐn)?shù)明顯低于happy和neutral單獨(dú)抽這幾類樣本測(cè)試準(zhǔn)確率不到40%。原因FER2013類別分布本來就不均勻disgust類只有大約600張訓(xùn)練樣本而happy有7000多張模型天然傾向預(yù)測(cè)占比大的類別少數(shù)類被犧牲掉。解決最有效的是在Loss層面做類別加權(quán)。torch.nn.CrossEntropyLoss自帶weight參數(shù)傳入與各類別樣本數(shù)倒數(shù)成比例的權(quán)重向量即可。另一個(gè)辦法是用WeightedRandomSampler做訓(xùn)練集采樣讓每個(gè)epoch中少數(shù)類被重復(fù)采樣到接近多數(shù)類的數(shù)量這樣不用改Loss就能讓模型在訓(xùn)練時(shí)看到均衡的類別比例。這兩種方法可以同時(shí)用期末作業(yè)里選用一種就能看到明顯改善。5.3 灰度圖和三通道維度不匹配現(xiàn)象DataLoader跑起來第一輪就報(bào)錯(cuò)RuntimeError提示channel維度不匹配expected 3 got 1或者反過來在推理時(shí)報(bào)expected 1 got 3。原因模型第一層卷積的輸入通道寫的還是3但FER2013的數(shù)據(jù)是單通道灰度圖。反過來如果你推理時(shí)用cv2.imread直接讀彩色圖送進(jìn)模型也會(huì)出現(xiàn)同樣的維度沖突。解決模型搭建時(shí)就要統(tǒng)一把conv1.in_channels改成1這是第一步。第二個(gè)容易忽略的是訓(xùn)練和推理的預(yù)處理必須完全一致如果訓(xùn)練用灰度圖推理就不能傳彩色圖。遇到這類錯(cuò)誤優(yōu)先檢查模型定義和transform不要先懷疑數(shù)據(jù)本身。5.4 顯存不足或者CPU訓(xùn)練慢到崩潰現(xiàn)象訓(xùn)練到一半進(jìn)程直接崩掉提示CUDA out of memory或者CPU訓(xùn)練一個(gè)epoch要十幾分鐘整個(gè)流程根本跑不完。原因batch_size太大把顯存擠爆或者num_workers設(shè)置不當(dāng)導(dǎo)致內(nèi)存開銷過高。學(xué)生筆記本往往是4GB顯存或干脆只有集顯本來負(fù)擔(dān)就重。解決batch_size降到32甚至16并確認(rèn)模型和訓(xùn)練數(shù)據(jù)都在cuda上而沒有跑偏。如果CPU訓(xùn)練num_workers設(shè)成0可以避免多進(jìn)程加載帶來的額外內(nèi)存開銷。更狠一點(diǎn)的辦法是先把預(yù)處理后的48×48圖存成npy數(shù)組訓(xùn)練時(shí)直接讀npy省掉每次CSV字符串解析的耗時(shí)實(shí)測(cè)CPU訓(xùn)練能提速20%以上。5.5 加載模型時(shí)key不匹配現(xiàn)象加載best_model.pth時(shí)報(bào)錯(cuò)提示Missing key(s)和Unexpected key(s)比如fc.weight和conv1.weight對(duì)不上。原因兩個(gè)常見來源。一是模型實(shí)例化時(shí)改了結(jié)構(gòu)但保存的權(quán)重來自改結(jié)構(gòu)之前的模型二是環(huán)境A和B里的模型類定義不一致比如一臺(tái)機(jī)器用的全連接層輸出是7類另一臺(tái)改成了別的數(shù)值。解決先打印模型每一層名字和權(quán)重形狀檢查conv1和fc是否和構(gòu)造時(shí)一致。保存和加載必須用同一個(gè)build_resnet18函數(shù)不要手動(dòng)New一個(gè)結(jié)構(gòu)后再load。另外torch.load時(shí)加map_locationcpu即使權(quán)重是在GPU上訓(xùn)練的也能在無GPU的機(jī)器上加載不會(huì)因?yàn)閐evice不匹配報(bào)錯(cuò)這是最實(shí)用的一個(gè)技巧。6. 讓準(zhǔn)確率再進(jìn)一步遷移學(xué)習(xí)與混淆矩陣分析6.1 用torchvision預(yù)訓(xùn)練權(quán)重做遷移學(xué)習(xí)如果驗(yàn)證集準(zhǔn)確率卡在65%左右上不去一個(gè)可嘗試的提升手段是用ImageNet預(yù)訓(xùn)練權(quán)重做遷移學(xué)習(xí)。但這里的坑很明確ImageNet是三通道彩色圖FER2013是單通道灰度圖直接加載會(huì)通道數(shù)不匹配。常見做法是把灰度圖復(fù)制成三通道然后加載預(yù)訓(xùn)練模型再凍結(jié)前幾層只微調(diào)后面幾層。from torchvision import models model models.resnet18(pretrainedTrue) model.conv1 nn.Conv2d(1, 64, kernel_size3, stride1, padding1, biasFalse) # 復(fù)制權(quán)重新conv1每個(gè)輸出通道取原權(quán)重在輸入通道維度的均值 with torch.no_grad(): model.conv1.weight.copy_(model.conv1.weight.mean(dim1, keepdimTrue)) model.fc nn.Linear(512, 7)權(quán)重復(fù)制這里用取均值的方法原conv1權(quán)重形狀是[64, 3, 7, 7]在輸入通道維度求均值后變成[64, 1, 7, 7]keepdimTrue保持維度數(shù)不變。但說實(shí)話FER2013和ImageNet的域差距很大預(yù)訓(xùn)練權(quán)重的收益沒有目標(biāo)檢測(cè)任務(wù)里那么明顯我從65%提到68%左右提升有限。如果你時(shí)間緊先做好數(shù)據(jù)增強(qiáng)和正則也足夠交差遷移學(xué)習(xí)是加分項(xiàng)而不是必選項(xiàng)。6.2 混淆矩陣的繪制與報(bào)告引用期末大作業(yè)的說明文檔里準(zhǔn)確率一個(gè)數(shù)字說服力有限混淆矩陣是答辯時(shí)最直觀展示模型短板的東西。它一眼就能看出模型把難過誤判成了中性還是把恐懼誤判成了驚訝。繪制方法是在驗(yàn)證集上收集所有預(yù)測(cè)結(jié)果和真實(shí)標(biāo)簽用sklearn生成矩陣再用seaborn畫成熱力圖。from sklearn.metrics import confusion_matrix import matplotlib.pyplot as plt import seaborn as sns y_true, y_pred [], [] model.eval() with torch.no_grad(): for images, labels in val_loader: images, labels images.to(device), labels.to(device) outputs model(images) _, predicted torch.max(outputs, 1) y_true.extend(labels.cpu().numpy()) y_pred.extend(predicted.cpu().numpy()) cm confusion_matrix(y_true, y_pred) labels [angry, disgust, fear, happy, sad, surprise, neutral] plt.figure(figsize(10, 8)) sns.heatmap(cm, annotTrue, fmtd, xticklabelslabels, yticklabelslabels) plt.xlabel(Predicted) plt.ylabel(True) plt.tight_layout() plt.savefig(confusion_matrix.png, dpi150)這段代碼里y_true和y_pred要全部收集完再統(tǒng)一算一次混淆矩陣不能在每個(gè)batch里分別算再相加因?yàn)榛煜仃嚤举|(zhì)是全量預(yù)測(cè)結(jié)果的計(jì)數(shù)。annotTrue會(huì)在每個(gè)格子顯示數(shù)字fmtd表示用整數(shù)格式顯示否則seaborn默認(rèn)用科學(xué)計(jì)數(shù)法。混淆矩陣放進(jìn)報(bào)告時(shí)記得在下方配一段簡短分析指出哪兩類最容易混淆比如sad和neutral再解釋這個(gè)結(jié)果和人類認(rèn)知的一致性。只貼圖不解釋的扣分概率很高這段文字是評(píng)分時(shí)的實(shí)際加分項(xiàng)。最后說說我的習(xí)慣。做這個(gè)項(xiàng)目時(shí)我在訓(xùn)練完成后會(huì)留著最后一版模型和第一版模型的準(zhǔn)確率對(duì)比寫報(bào)告時(shí)把每次調(diào)參改了什么、驗(yàn)證集漲了多少點(diǎn)逐條列出來這份過程記錄比最后的準(zhǔn)確率數(shù)字更能體現(xiàn)工作量。答辯時(shí)被問到“你怎么知道這是過擬合”直接把自己記錄里訓(xùn)練Loss下降、驗(yàn)證Acc停滯的曲線拿出來講比背概念有說服力得多。這個(gè)基于ResNet的表情識(shí)別項(xiàng)目真正值錢的不是那幾行模型代碼而是你有沒有把數(shù)據(jù)、訓(xùn)練、推理這條鏈路上的每個(gè)環(huán)節(jié)都走通并且把原理說清楚。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美性第一页| 欧美日本视频一区| 婷婷伊人网| 91肉丝| 青娱乐手机日韩在线视频| 婷婷综合五月| 国产高清MV操逼视频| 人妻少妇精品视频一区二区三区| 99re99视频在线免费观看| 农村妇女一级二级三级视频| 8050午夜少妇无码| 色狠狠 - 百度| a'v在线资源| 亚洲凸凹超碰成人| 99re免费视频精品全部| 国产精品成人AV片免费看网站 | 国产精品白领在线观看| 97神马久久| 日日橹狠狠爱欧美超碰| 九九视品黄色| www四虎| 啪啪综合网| 久久激情综合| 你懂得91| 91精品国产麻豆国产自产在| 国产精品自在自拍视频| www.黄色在线| 婷婷五月av| 九九色逼| 色呦呦、国产精品| 黄色二级片网站| 天综合网| 97日视频| 天天操福利视频综合网站| 69久久| 亚洲人妻色图| 翔田千里AV无码秘 三区| 妇女一区二区三区| 婷婷超| 大香蕉日韩| 美女91在线| 99精彩视频| 精品人人插人人操| 人妻嗯啊啊在线播放| 久99| 99色婷婷中文字幕乱色| 狠狠躁日日躁夜夜躁A| 天堂麻豆天美| 久久精品男人的天堂| 91在线丝袜| 久久精品国产97欧美精品亚洲 | 国产一区在线看| 91美| 玖玖爱免费观看视频| 亚洲乱码尤物193YW| 国产高清成人传媒影视| 人妻AV在线| 91在线美女| 免费人人搞97| 天天综合网网欲色| 日韩无码黄色片| 久久婷婷亚洲| 色网亚洲人| 欧美 亚洲精品首页| 黑人精品XXX一区一二区| 精品国产人成在线| 99久久久无码| 九一亚洲国产免费| 都市久久精品激情亚洲| 亚av顶级裸体一区二区三区四区五区| 亚洲成人一区二区精品| 三级色影综合网| 亚洲自拍另类丝袜综合| 丁香五月天激情| 国产精品高潮久久久无码| 超碰98综合网| 日韩强奸av| 欧美午夜色妇色鬼| 淫纸中9区| 射丝袜高跟鞋99| 中文字幕123| 亚欧色图在线激情| 久久精品国产亚洲AV高清演员表| 婷婷久久久| 懂色AV中文| 久久久久熟女| 狠狠色丁香| 大屁股国产在线视频| 亚洲熟女人妻中文字幕一区二区| 95自拍视频在线观看| 午夜免费视频1000| 亚洲一二三四区在线免费看视频| 色哟哟AⅤ| 99人人干| 五月天亚洲网| 国产亚洲精品美女久久久| 8050午夜少妇无码| 岛国人妻少妇av在线观看| 青青草原香蕉日本Ap| 素人一区二区三区日韩| baisiav| 亚州欧美综合| 插日本熟女视频| 91夜夜蜜桃臀1区2区3区| 96精品久久久久久久久久| 欧美日本国产日韩激情视频| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 五月婷婷大香蕉| 午夜无码熟妇丰满人妻| 思思热影视| 欧美伦乱爱| 日韩一级欧美一级国产一级台湾 | 蜜臀久久99精品久久久久| 99热这里只有精品地址| 九一国产精品| 色色丁香| 一级毛片电影免费看| 久久久久久国产精品| 成人情色综合网| 国产大学生高潮在线播放| 日本道日本道中文字幕日本道最新日本道在线观看 | 国产精品不卡少妇白| 最新日韩黄片| 精人妻一区二区三区| 爽 好舒服 无码刺激久久| 97在线青| 国产成人久久久精品免费AV| 9久久精品| 欧美日韩99精品麻豆传媒| 亚洲91网| 久久久噜噜噜久久久| 高清国产精品福利网站| 蜜臀th| 18禁美女裸体无遮挡啪啪| 日韩人妻精品中文字幕| 日本中文字幕在线电影| 亚洲人妻精品一区二区| 天天影视网综合少妇| 国内一区二区免费| 日本99一区二区| 国产51色综合久久免费| 久久久涩| 91在线视频免费中出| 超碰97亚洲| 蜜臀久久99精品久久久久久成人小说 | 丰满美女一级毛片在线播放| AV男人天堂网| 91人妻视频在线| 国产一区二区在线播放量| 国产亚洲色婷婷99精品91| 亚洲国产一区二区入口| 91美女小视频| 免费网站观看www在线观| 日韩乱伦AⅤ| 亚洲极品| 九九热超碰97亚洲最新香蕉 | 欧美第一页| 亚洲精品视频在线| 亚洲 欧美 制服 另类 自拍| 久久久女人| 厕所偷拍在线| 亚洲性爱无码乱伦av| 99re视频在线播放青草| 久久久久深夜无码| 久久理论字幕视频| 国产女人操逼视频| 搡老女人911熟妇老熟女| 丁香五月天久久精品视频一区二区三区| 成人美女av| 91亚洲网| 婷婷五月天色网| caopeng97人妻| 天堂精品在线| 久草婷婷| 亚洲欧洲综合视频在线| 91精品国产日韩欧美综合| 亚州欧美另类| 嗯嗯啊啊的视频| 97精品视频免费| 男人的天堂2010| 色官网在线| 亚洲熟女精品| 影视综合无码少妇| 一级黄色视频网| 国产午夜精品在线观看| 麻豆 美女 丝袜 人妻 中文| 99re黄| 国产精品一区二区麻豆| 亚州高清av| 亚州色图狠狠干| 中文字幕一区 二区三四五 区日 日骚 | 久久激情视频| 久久一级无码精品毛片6| 美女操逼A A| 极品销魂美女一区二区 | 日日噜噜夜夜狠狠视频无| 97综合| 国产精品一区二区三区四区五区| 另类欧美| 日本 情色 1区2区3区| baiduhicn.com。| 日本一区二区电影网站| 蜜桃传媒一区二区亚洲| 2020视频1区2区3区| 日本3级一区二区免费| 爱丝福利| 超碰 欧美| 欧美色老汉| 人妻美腿丝袜日韩| 久久精品女同亚洲女同13| 亚洲资源网| 欧日韩在线观看| 96国产污污污丝袜| 中国熟女91| 亚洲色综网| 亚洲,欧美,综合网| 亚洲色交| 黄色操人| 日韩一级成人毛片免费观看| 99久久9| 亚洲欧洲另类| 97青青操视频| 99热18这里只有精品| 国产一| 大香蕉日亚洲日本亚大| 久久二| 婷婷超| 成人午夜高潮av猛片| 日韩激情无码影院| 久久无码成人| 国产一区二区三区精品观看啪| 蜜乳性色无码专日粉嫩骚逼AV| 日韩免费性爱视频在线观看| 五月丁香啪啪啪| 精品人妻二区三区| 东京热99999| 亚洲熟女av中文字幕| 91女在线观看| 亚洲污污网站| 亚洲色婷婷久久91| 精品国产精品一区二区| 啊啊啊com| 高清肉丝中文无码| 国产精品国产精品国产| 久久精品国产亚洲AV高清演员表| 久久人妻视频| 亚洲熟女乱色一区二区三区久久久| wuyechaopeng| 日韩欧无码一区二区三区免费不卡| 日韩高清黄片| 狠狠色婷婷7777久| 色偷偷2020免费视频播放| 亚洲一区二区在线观看91| 欧美色视频在线| 婷婷丁香五月激情啪啪| 国产女同性恋视频| 啪啪视频免费在线观看| 欧美三级中文字幕hd| 久久精品人体| 人妻精品一区二区| 久久人人爽人人爽人人片Ⅴ| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 手机av亚洲丝袜美腿日韩第一页二页| 国产又黄又爽| 91站街按摩店老熟女熟女| 2025亚洲男人天堂| 超碰美国| 国产18精品亚洲精品| 日韩AV色图| 中字乱伦AV| 精品然女一区二区| yw尤物av无码点击进入麻豆| 6080yy午夜理论三级一区二区三区无码 | 91性片| 日本国产高清色www视频在线| 国产丝袜美女诱惑| 国产三级片在线观看| 天天躁日日躁AAA片李宗瑞| 韩国女主播青草在线| 超碰地址久久| 婷婷久久五月| 亚洲天堂久久| 欧美系列在线一区二区| 综合亚洲网| 成视频在线观看免费看| 9久9久9久9久视频网站| 国产精品久久久久久 百度| 人妻一区二区三区| 看免费的黄片| 91久久18禁| 国产无码久久高清| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 97av,com| 精品一区二区成人动漫| 天天大干大香蕉| 污污汅18禁网站在线永久免费观看 | 69人妻精品丰满熟女区| 中国一级操逼视频| 麻豆成人av| 八戒无码国产午夜福利| 久超碰这里只有精品| 久久久无码av精| 亚洲欧美日韩国产丝袜自拍中文| 看黄片视频免费| 久偷拍欧美日韩三区| 国产无码精品高清| 丁香五月天激情网站| 九九九九九九免费视频| 99精彩视频| 亚洲色宗合| 肉丝网站91| 国产亚洲女v在线观看| 综合网97| 久久天堂婷婷网| 免费A片三p视频| 91撸色网 玖玖网 欧美| www.99中文字幕| 亚洲伊人久久精品影院| julia高潮后不停追击中出| 91亚洲综合在线| ss久久| 3028国产精品| 超碰97 线线 在现| 色97综合中文字幕| 丰满人妻一区二区三区在线| 青娱乐欧美激情一区二区| 日韩中文9| 久久久爆乳翘臀一线天伦理视频| 日韩免费三级黄片电影| 天天搞欧美| 亚州操操穴网| 无码国产精品久久久久| 校园春色综合网| 国产精品久久久九九九| 婷婷五月天AV| 免费伦费视频在线观看| 91老女人| 欧美日韩97在线| 欧美中文字幕男人天堂久久精品| 欧美日韩国产三级黄色| 婷婷午夜清品久久久久久久性色视频观| 天天综合网国产| 久久激情亚洲精品无码?V| 91综合网在线| 污电影在线观看| 加勒比无码一区二区三区| 国产超碰AV在线精品| 激情内射| 超碰在线综合97| 香港成人一级视频在线青青草| 超碰成人免费| 性色av蜜臀av色欲aV| 中文字幕99999| 超碰97首页| 色好看av| 67194无码不卡| 久久五月视频| 亚洲欧美日韩精品久| ,成人免费啪啪视频| 啪啪啪综合| 欧美青青视频| 歐美性天天| 99国内精品| 91操操| 欧美黄色片AAAAA| 福利操逼| 国产精品亚洲无码| 熟女这里只有精品6| 久久神马| 国产精品成久久久久午夜午夜| 91亚洲网站| 97久操| 男人天堂最新手机版在线青青草| 久久精品成人一区二区三区蜜臀 | 377p欧洲日本亚洲大胆| 国产一区二区三区白丝| 操逼天美3区| 欧美日韩国产另类综合| 综合国产影视三级| 亚洲1区2区三区高清中文字幕| 午夜福利1区2区3区| 亚洲美女av无码| 久久精品熟女亚洲AV麻豆软件| 亚洲区 欧美区| 99热线麻豆| 久久风骚城市| 一级AAA片一区二区三区| 夜夜精品视频一区二区| 国产免费内射视频| 女沟厕偷窥piss小便| 日韩欧无码一区二区三区免费不卡| 人妻少妇久久中文字幕一区二区 麻豆| 97在线视频免费观看| 精品综合久久久久久五月天| 香蕉久久AⅤ...| 高清无码 国产精品| 懂色AV蜜臀无码精品APP| 一区二区三区精品视频| 婷婷五月丁香五月| 青青草伊人久久| 欧美变态激情网| 色呦色呦色精品| 天天性射网| 久久久四区| 秋霞午夜成人福利片片| 欧美性爱91| 黄色一级视| 天天摸,夜夜摸| 婷婷伊人一区| 99热18这里只有精品| 国产精品一区在线播放| 蜜臀久久99精品久久久电影| 日韩欧美午夜视频在线| 丝袜美腿诱惑亚洲欧美视频在线观看| 大香蕉 222| 91男同| 97资源久久| 国产又黄又爽又刺激久久久久久| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 玖玖在线视频| 亚洲男人的天堂网| 狠狠操狠狠操操| 欧美一级久久久久久久大片动画| 婷色五月天| 日本男人插女人的逼黄色| 超碰吊日色| 色哟哟AⅤ| 成人AV在线电影| 精品免费国产二区三区| 欧美性性性| av网站在线看| 日本一级一级一级一级| 青青草女人天天干| 亚洲丝袜二区在线| 日韩无码三级影院| 精品夜夜澡人妻无码| 九九九九免费高| 2017天天插| 家庭乱伦性爱av| 67194国产| 亚洲男人天堂视频| 18禁无码永久免费无限制| 九九在线精品| 91欧| 国产69精品久久久久99尤物| 精品十三区| 夜夜欢天天干| 五月婷婷性爱| 亚洲视频精选| 日本精品成人无码| 一本色道久久综合狠狠操| 都市久久精品激情亚洲| 少妇一区二区三区在线观看| 淫荡网址| 热热色青青草| AV免费在线播放一区| 青青草五月天| 国产成人自拍视频视频| 色综合20p| 老熟女搡BBBB搡BBBB视频| 日韩精品一区二区三区四虎影视| 蜜臀久久99精品久久久久电影| 国产51色综合久久免费| 色亚州人久干视频在线观看免费版| 免费?级毛片无码?∨蜜芽试看| 无码一区二区三区四区五区六区七区八区九区十区视频 | 精品美女少妇一区二区| 欧美一级A片在线看视频性色| 熟女精品va中文字幕| 99国产精品在线观看| 成人性爱免费播放| 欧美三级一级| 国产日比| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 91亚洲黑人| 亚洲欧美999| 天天干一区二区| 在线亚洲欧美| 精产国品一区二三产品| 天堂а√在线最新版在线| 综合91网| 2010男人的天堂| 亚洲日韩天堂| 久久綜合很很很| 久草视频在线视频在线视频在线观看| nuu12国产麻豆精品| 欧美人人AAA| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | BBBBB97COM| 日韩pv中文| 综合伊人网12色| 久久精品国产99国产精品亚洲| 久久综合国产精品国产| 91欧| 97久久精品国产| 欧美日韩操操操| 精品九区| 国产精品密臀网在线观看| 成年人一级黄色毛片大全在线观看| 久久国产精品视频| 色999偷自拍拍| 粉嫩不卡一区二区性爱| 草草草草视频| 欧美日韩人妻婷婷一区| 大香蕉婷婷| 麻豆久久精品亚洲精品88 | 欧美日韩国产中文精品字幕自在自线 | 大二网站亚洲| 亚洲97资源| 嗯啊免费视频| 国产做?爰片久久毛片?片美国| 特色a在线上| 色拍偷亚洲| 青青草九九九九九| 日韩,欧美,中文在线| 97久久网| 9 1果冻精品视频| 国产精品网站www| 91久久久久久| 欧美性爱系列| 久久国产乱子伦精品免费女人| 久草免费在线视频| 91激情国产| a人欧美综合天堂麻豆| 成功精品影院| 强奸a片网| 国产成年精品高清在线观看91| 国产激情在线| 97欧美色| 亚洲超碰综合网| 国精品一区二区三| 久久色人体| 日韩中文字幕二区| 91社区拍啪人妻| www.亚洲黄色| 国产精品点击进入在线影院高清 | 色五月婷婷色| 丁香五月激情综合国产| 久久性爱网站| 91操人| 成人一级性爱| 老子午夜伦不卡影院| 嗯嗯啊啊好爽| 五十路熟女人妻一区二区在线观看| 东京热AV男人的天堂| 91色综合色| 五毛骚逼极品美女怕怕| 91路www| 日影院久久婷婷夜夜网| 亚州熟妇精品| 日本精品久久久久久久| 人妻天天爽| 97超碰精品成| 亚州Av天美传媒| 夜夜夜夜爽| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 中文字幕天天天天天| 国产欧美一区二区| 极品粉嫩一区二区| 大香蕉国产中文自拍| 97久久精品亚洲中六字幕| yazhousetuoumei| 97超碰逼| 青青草日韩免费观看高清在线| 日本孕妇孕交| 久久精品无码熟妇一区二区三区视频导航 | 99国产精品视频尤物| 青娱乐大香蕉| 亚州综合图片| 999九九九九国产动| 亚洲人精品久久久| 欧美色图20p| 狠狠操使劲操| 久久综合18p| 真实高潮91| 东京成人一区| 囯产精品强| 日本2020一区二区| 国产精品白丝| 久久riav中文精品| 操美女高潮抽搐白浆| 婷婷激情啪啪| 9久久美女首页| 熟女高潮精品一区二区| 亚洲熟妇一,二,三期| 天天操人人操狠狠插| 亚洲乱码国产乱码精网站| 婷婷激情综合网| 任我爽视频在线观看| 国产美女91视频| 男人的天堂三级| 大香蕉中文在线| 一级特黄aaa大片在线观看成人一级片在线观看 | 人妻干天天| 手机在线播放国产福利| 日本色婷婷| 极品内射| 国产精品乱码久久久久| 狠狠中文字幕| 久久婷婷一区二| 亚洲色图自拍| AAAA级日本片免费视频| 亚州操逼网| 91最新综合| 91白嫩| 强奸乱伦大香蕉| 亚洲 欧美都市激情| 成人久久久精品| 91免费看一区二区三区| 激情综合婷婷| 强奸熟女一区二区三区 | 日本91白丝| 国产丸一视频| 欧美十八禁视频| 熟妇在线视频一区二区| 99久在线精品99re8| 成人无码在线超碰网| 一区二区三区精品黑丝白丝酒店对鸡 | 91人妻超碰| 亚洲综人网| 久草国产在线视频| 大香蕉在线视频重口味毛片在线| 亚洲资源站| 精品国产片亚洲一区| 嗯嗯啊啊好大好爽| 亚洲欧美另类小说| 五月丁香成人网| 日本天天干天天日一区| 无码天天操| 国产美女口爆吞精| 岛国在线免费视频| 国产精品 午夜福利| 色99999| 大香蕉碰碰| 91天天综合日韩欧美| 日本色色网| 九久久精| 99无码精品| 中文字幕人妻丝袜乱一区三区| 青青操轻轻| 国产精品色约约| 欧美人与性动交a美精品| 天天看特黄的免费网站| 亚洲图片色图欧美另类| 国产青青美女玩逼视频| 黄色在线网站| 碰人碰碰人人开房人肉| 国模吧 一区二区三区| AV天黑人| 国产这里只有精品| 亚州综合色| 厕所偷拍在线| 中文字幕一区二区免费在线| 亚洲熟女乱综合一区二区三区| 国产精品嫩草影院免费| 偷拍亚洲熟女视频播放| 亚洲一二三| 人人干人人操人人..com| 97在线日韩中文字幕| 日本99久久| 天天综合97| av情色影音| 高清国产成人无码| 超碰偷拍| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 色在线视频导航| 九热大香蕉| 福利伊人玖玖国产| 欧美碰碰综合色| 国精品一区二区三| 成人性爱av| 乱操9999| 骚乳在线| 国产亚洲日本精品在线| 九九九九九精品视频| 久草婷婷| 国产又色又爽又舒服的三级视频| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 欧美大干日韩| 蜜臀av在线播放一区二区三区| 日韩操p| 欧美亚洲在线| 色婷婷综合久久久久中文一区二区| 乱伦av国产| 国产久久久| 国产精品国产| 不卡超碰护士AV在线免费播放| blacked精品一区国产| 人妻精品一区二区| 成人在线午夜视频一区| 天天综合亚在线| 艹少妇网站| 9色国产精品一区粉嫩| 中文字幕精品三级久久久| 伊人五月天青青草婷婷| 日韩黄色成人性爱| 粉嫩av久久一区二区三区| 欧美色另类| 欧美性视频二区三区| 少妇蜜汁| 日日日日日| 亚州AV无码国产精品| 翔田千里爆乳巨臀无码| 超碰人妻久久| 亚洲区小说| 91欧美丨精品丨入口| 爆乳免费黄网站| 五月丁香婷婷综合| 精品性爱一二三区| 国产家庭乱伦性爱视频| 超碰色综合| 色综合大香蕉| 丝袜美腿91| 91美女視頻| 日韩精品第3页| 中文字幕丝袜人妻| 日韩人妻少妇中文字幕| 日本久久99| 欧美啪啪女女| 久久香蕉国产线看观看猫咪av| 国产日韩在线播放av| 超碰日韩人妻| 日韩精品中文字幕人妻| 校园春色五月天| 在线视频资源| 视频二区美腿制服人妻欧美| 久久超碰天天| 加勒比无码毛片| 香蕉国产97| 好爽要喷了| 爱丝福利| 色香网| 国产美女高潮视频| 78精品在线| 91黄站| 91人妻在线视频| 特色a在线上| 啊啊啊无码| 熟妇乱伦一区二区| 蜜乳AV免费观看| 国产精品日韩在线一区| 91在线秘 男同| 欧美日产国产在线成人第一区| av网站在线观看了| 亚洲天堂7777| 国产精品视频精品一二| 91一起操| 天天日日舔舔| 久久精品老司| 一区二区亚州激情久婷婷欧美| 久久 久久国内精品亚洲| 少妇久久久免费| 可乐操亚洲蜜911| 日韩综合色图| 精品人妻一区二区三区四区石在线| 国产久久免费精品视频| 乱伦Av网| 九九色综合| 国产久久一区二区三区野外在线| 无码人妻丰满熟妇奶水区毛片| 欲色影视综合吧| 中国熟女91| 精品传媒在线一区| 色欲久久久久综合网| 日本精品无码三级网站| 91久久久久久| 久久水蜜臀亚洲AV无码精品| 色色青青久久| 午夜毛片亚洲精品片国产久久久| 日韩福利综合一区| 日韩成人大片一区二区| 麻豆精品久久久久久久| 国产性爱欧美性爱在线 | 亚洲色婷婷| 麻豆精品A片免费观看| 人人摸人人舔一区二区| 激情小说亚洲色图| 人妻 中文 日韩| 67914亚洲精品| 欧天美中出| 国产又粗又长视频| 天天激情干| 丁香五月激情网| 男人网站婷婷| 亚洲美女AV无码| 日本www操操操| 人妻夜夜爽天天爽麻豆三区网站| 中字一区| 18禁无码永久免费无限制| 国产小u女在线观看| 成人久久无码www| 欧美综合1性辶| 啪啪AV导航| 丰满翘臀美女影院视频| 91痴汉| 乱伦图一区| 亚洲s在线观看| 91综合天天| 日本视频在线观看污污污| 蜜桃精品一区二区三区ww| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 干美女人妻| 高清无码一区二区三区| 日韩pv中文| 一区二区三区麻豆| 亚洲国产午夜真人一级片中文字幕精品黄网站| 歐美一級亂黃99在綫精品| 中文字幕成人乱码熟女精品国50| 黄色大香焦1级‘′‘| 日韩三级在线观看mp4| 欧美综合另类| 日本在线一二| 久久久极品| 人人射人人操人人摸| 亚洲少妇色图自慰直播| 欧美成年人性爱视频免费观看| 天天弄天天操| 91精品导航| 91九色精品熟女内射| 91熟女视频网| 一级啊性爱在线视频| 色在线69堂| 亚洲精美粉嫩嫩泬在线观看| 色色综合97| 九月丁香婷婷色| 亚洲少妇色图自慰直播| 亚洲一区操| 99re9这里只有精品| 色综合国产在线观看| 亚洲91亚洲| 亚洲熟伦熟妇AV无码春色| 亚洲s在线观看| 亚洲欧美国产va在线播放频| 国产性刺激| 亚欧无码线免费观看视频| 欧美成人精品一区二区三区| 日韩免费在线观看不卡| 久草精品国产蜜臀| 免费一级精品啪啪视频| 亚洲性少妇| av天堂手机版追回| 啊啊啊啊好疼| 午夜精品一区二区三区三上悠亚| 91情色| 吉田爱美AV在线| 在线观看高清AV| 天天操天天7| 亚洲av无码成人精品国产| 人人澡人人干| 嗯嗯啊啊操死我| 美国精品国产精品| 黑人综合色| 亚洲成人av色网| 中文字幕天堂在线| 国产精品丝袜久久亚洲不卡| 欧美精品久久久久久久久88| 人妻第一页| 麻豆久久久久久久久丝袜| av天堂精品久久| 女人天堂网| 熟女日韩| 先锋色眉乱伦资源| 大香蕉伊人75| 色五月第四色| 再深点灬舒服灬太大了好硬好爽| 超碰97亚洲| 久久伦理视频久久大香蕉视频| 在线观看黄色电话| 国产精品午夜AV完会免费| 操一区| 丁香六月婷婷| 久久精品国产亚洲AV高清演员表 | 色吧五月| 九九视频黄色片| 中文字幕熟女人妻丝袜丝| 麻豆视频test| 人人操人人叉人人插人人| 啊啊啊啊操死我| 欧美91精彩| 嗯嗯啊中文字幕| 亚洲国产尤物yw在线观看| 九九九九九九九九九国产精品| 黄色高清久久无码依人| 中文字幕一区二区三区视频播放| 日韩一级久久毛片| 丁香六月激情综合| 大学生美女口爆| 日本性爱网址| 啊啊啊啊啊操我视频| 99999久久精| 爽 好舒服 无码刺激久久| 丰满精品人妻少妇久久字幕| 欧美老妇曰批的视频| 日本 欧美 国产一区| 人妻 欧美亚洲| 夜夜狼人妻| 色墦五月丁香| 岛国视频免费在线观看| 测评在线观看AV| 全国男人天堂网| 欧美日韩另类字幕中文| 久久一区,青青青青草视频在线播放| 丰满人妻一区二区三区大胸懂色| 看免费一级在线播放毛片| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 日本精品性生活久久久| 久久99国产综合精品女同| 色噜噜狠狠色综合日日| av日韩手机在线影视| 八戒午夜福利理论片| 老司机福利青青草| 一起草在线视频| 成人草草视频| 四虎精品一区| 97就爱干| 伊人aaa| 久久久久9999妇女| 欧美老妇综合网| 中文字幕一区二区三区蜜臀| 国产成人亚洲精品自产在线| 五月婷色| 天天爽天天操| 99爱爱| 大香蕉久久| 九月色婷婷| 婷婷激情五月综合| 天天爽天天干| 色色99| 91粉芽高清在线一区二区| 色婷婷激情| 99激情| 久久精品欧美一区蜜桃| 啊啊啊啊啊啊啊国| 午夜呻吟欧美| 91天美传媒精品| 久久、1234| 97超碰免费人人性爱| 夜夜 中文视频rt| 97超碰免费生活| 美女骚尻视频| 欧美后入式| 国产sv美女内射| 国产精品久久久久久久久久久久久久吹 | 六九九九| 欧美制服另类丝袜| 天天综和| 天天激色| 新怡红院| 久久国产成人精品国产成人亚洲| a亚洲欧美色欲| 成人性爱AV在线免费观看| 天天操天天射天天日| 国产成人免费观看在线视频| 亚洲AV无码乱码在线观看性色| 久久久久久人妻| 色一射色一射| 午夜后入| 久久线上视频免费看| 国产一级高清免费观看| 欧洲亚洲国产综合在线| 日本欧美亚洲高清在线看| 丁香六月啪啪| 老师充足的奶水小说| 男人天堂网手机版婷婷| 97资源久久| 波多野结衣一级视频| 欧美日韩中文亚洲v在线综合| 亚洲国产精品久久久久久久久久| 天天日日日射| 亚洲校园激情| 欧美 精品国产制服第一页| 极品美女福利在线观看| 大香蕉免费中文| 97精品国产手机| 91亚洲网站| 亚洲第一免费视频| 天天插天天射| 国产亚洲精品美女| 超碰美国| 三级网色| 亚洲最大黄网| 蜜臀网址在线| 91影库| 久久黄色网址| 啊啊啊好疼| 欧美成人性爱视频在线播放| 亚洲图片偷拍视频区| 午夜性| 欧美亚洲手机在线| 超碰成人最新最好看| 夜夜爽妓女| a啊啊啊啊啊啊啊啊一区二区| 东京热视频网| 天天添天天干电影| 欧美色图片欧美色图| 免费自拍三级综合| 欧美天天插| 天堂av最新电影网| 手机在线播放国产福利| WWW4虎| 东京热综合久久一区二区| 国产高清MV操逼视频| 日韩/97| 凹凸精品熟女在线观看| 女人被添高潮免费视频| AV99热18这里只有精品| 性无码专区2020| 亚洲nv男人的天堂网| 欧美97se| 午夜福利视频在线一区| 新视频sss国产| 综合av社区| 啊啊啊好舒服视频| 成人5码视频| 麻豆精品天美| 97久久国产精品女不卡| 亚洲无码一二三区| 狠狠热这里都是精品| 国产又黄又爽| 99热| 99999国产| 国产 丝袜 欧美中文 另类| 人妻黑丝袜电影| 国产一级高跟丝袜| 人人澡综合涩| 久操操AV电影| 久久欧洲| 亚洲欧美色图小说| 国产农村妇女精品一| 84YTCOM性无码| www四虎| 欧美激情久操网| 精精夜夜| 韩国三级一线观看久| 蜜桃久久久久久久| 美日韩男女操屄视频| 午夜福利久久久噜久噜久久综合| 天天综合亚洲综合| 青青草在线视频人人想人人上| 国产一区二区二区按摩精品啪视频| 亚洲熟妇自偷自拍另欧美| 国产剧情在线| 射丝袜高跟鞋99| 午夜福利一区二区影院| 天美传媒AV国产在线| 亚洲中文国际强奸字幕| 天天日熟妇| 欧美日韩99| 熟妇色99| 天天日日日射| 手机在线中文字幕国产| 久久久久婷婷精品av电影| 91站街按摩店老熟女熟女| 国产精品久久久久婷婷二区次| 91黑丝露脚| 亚洲 无码 偷拍| 亚洲AV无码久久精品蜜桃小说| 日韩丰满熟妇| 日韩欧美中文字幕搭讪巨乳美人妻视频| 丁香五月色| 蜜臀久久99精品久久久| 美骚妇av高清在线| 色久桃花影院在线观看| 欧美色九九| 九九十八精品| 午夜福利视频在线一区| 中文字幕在线免费观看| 蜜臀久久99精品久久久久免费观| 思思热久久成人| 91日韩网站| 日本天堂网| 啪啪啪精品视频| 九九热九九| 久久久99999久网站| 丁香婷婷久久| 伊人网免费视频| 青青草日韩免费观看高清在线| 性爱综合网| 97人人夜夜精品视频| 国语精品对白| 中国黑人三级片网站上区| 日韩乱插| 国产黄色在线播放观看| 精品少妇高潮久久| 97色欧州| 久久伊人大香蕉| 74成人在线| 99热伊人| 爱妻综合网| 北京专精特新企业招聘信息| 首页中文字幕中文字幕免费| 国产老太乱伦一区| 日韩有码回春沙龙第一页| 亚洲成人一二三区| 91人妻Pr| 尤物黄色在线观看网站| 夜色91| 深夜激情| 国产在线精品电影观看| 97亚洲国产影视| 不卡免费av在线播放| 欧美午夜视频免费观看| 啊啊啊想要| 清纯唯美亚洲另类| 综合九九| 欧美暴力猛交| 国产四虎在线| 色色激情五月天| 国产区性爱在线视频秋霞豆| 国产v片在线免费观看| 人妻天堂网| 欧美日韩亚洲少妇寂寞影院正在播放 | 亚洲色久| 秋霞免费AV| av网站在线观看了| 夜夜嗨视频| 中国一区二区亚洲人妻| 日韩在线地址一| 97超碰中文在线| 99热这里都是精品| 精品少妇人妻一区二区三区| 加勒比日本在线| xxx亚洲午夜天堂| 亚洲国产精品乱码在线观看| 天天爽天天操| 久热久| 亚洲欧美经典一区二区| 久久99午夜精品一区人妻| 蜜桃视频成a人v在线| 国产特级毛片AAAAAA高潮流水| 精品日韩人妻视频| 成人毛片免费| 秋霞 色色| 凹凸视频在线一区二区| 天天草天天日| 热思思免费视频| 俺去啦俺来也久久综合| 豆花视频操逼网址| 亚洲啪AⅤ永久无码| 黄片免费视频2019| 99e久久国产精品| 九九视频黄色片| 家庭乱伦国产| 黑人狂躁日本妞一区二区三区| 国产精品点击进入在线影院| 国产精品网址| 国产综合网站在线播放| 性爱乱伦网址| 国产精品秘 福利姬在线观看| 日本色婷婷| 伊人久久88国产女| 插入综合网| 日韩少妇丰满亚洲| 亚av顶级裸体一区二区三区四区五区| 九九热在线精品视频| 欧美高潮| 中国熟妇| 亚洲无码 国产无码| 久久精品日韩| 1769精品一区二区三区|