久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

基于CNN深度學(xué)習(xí)的人體姿態(tài)與動(dòng)作識(shí)別系統(tǒng)原理與實(shí)戰(zhàn)

基于CNN深度學(xué)習(xí)的人體姿態(tài)與動(dòng)作識(shí)別系統(tǒng)原理與實(shí)戰(zhàn) 簡(jiǎn)介面向計(jì)算機(jī)相關(guān)專業(yè)畢業(yè)設(shè)計(jì)的人體姿態(tài)與動(dòng)作識(shí)別項(xiàng)目提供基于CNN深度學(xué)習(xí)的完整Python實(shí)現(xiàn)與項(xiàng)目說明文檔。這份代碼源自大四高分畢業(yè)設(shè)計(jì)評(píng)審均分達(dá)到96.5分所有程序均經(jīng)運(yùn)行驗(yàn)證非常適合正在完成畢業(yè)設(shè)計(jì)、課程設(shè)計(jì)或期末大作業(yè)的學(xué)生也適合對(duì)深度學(xué)習(xí)實(shí)戰(zhàn)感興趣的初學(xué)者進(jìn)階學(xué)習(xí)。壓縮包共6個(gè)文件以5個(gè)Python腳本為主另附1份Markdown項(xiàng)目說明整體大小僅7KB結(jié)構(gòu)清晰且便于快速定位關(guān)鍵模塊。源碼模塊覆蓋動(dòng)作數(shù)據(jù)采集、模型訓(xùn)練、模型測(cè)試與實(shí)時(shí)姿態(tài)檢測(cè)等完整流程項(xiàng)目說明對(duì)運(yùn)行方式與處理邏輯進(jìn)行梳理可幫助讀者理解CNN模型的構(gòu)建思路并能在此基礎(chǔ)上修改擴(kuò)展實(shí)現(xiàn)更多自定義功能。目前已有206人學(xué)習(xí)下載如遇運(yùn)行問題可私聊獲取遠(yuǎn)程教學(xué)支持可有效降低上手難度輔助順利完成項(xiàng)目部署與答辯展示。1. 基于CNN深度學(xué)習(xí)識(shí)別人體姿態(tài)和動(dòng)作系統(tǒng)先弄清楚它到底解決了什么問題很多人第一次拿到“基于CNN深度學(xué)習(xí)識(shí)別人體姿態(tài)和動(dòng)作系統(tǒng)python源碼項(xiàng)目說明.zip”這種壓縮包第一反應(yīng)是趕緊解壓裝環(huán)境結(jié)果往往折騰一整天也沒跑出像樣的效果。這套系統(tǒng)真正要解決的不是“識(shí)別出一個(gè)人”而是兩件事一是把人體的關(guān)鍵點(diǎn)肩膀、肘腕、膝蓋從圖像里定位出來二是根據(jù)這些關(guān)鍵點(diǎn)的空間分布判斷當(dāng)前動(dòng)作比如走路、站立、彎腰。它服務(wù)于動(dòng)作分析、運(yùn)動(dòng)姿態(tài)評(píng)估、看護(hù)監(jiān)測(cè)這類場(chǎng)景。適合手里有圖像/視頻標(biāo)注數(shù)據(jù)、想在本地訓(xùn)練和部署的工程師也適合正在入門姿態(tài)估計(jì)的開發(fā)者。下面從原理、源碼結(jié)構(gòu)、最小推理、訓(xùn)練到避坑一次性講透。2. CNN在姿態(tài)和動(dòng)作識(shí)別里的分工原理、任務(wù)拆解與源碼常見組織任何一個(gè)能跑的“姿態(tài)動(dòng)作”系統(tǒng)背后基本都是兩條流水線一條從圖像得到關(guān)鍵點(diǎn)一條從關(guān)鍵點(diǎn)得到動(dòng)作。CNN在這條鏈路里不是干一件事而是同時(shí)扮演定位器和分類器。你在源碼包里看到兩個(gè)模型文件不要覺得冗余把它們拆清楚后面調(diào)參才有方向。2.1 姿態(tài)估計(jì)和動(dòng)作識(shí)別不是一回事任務(wù)邊界決定模型邊界姿態(tài)估計(jì)的產(chǎn)物是“位置”動(dòng)作識(shí)別的產(chǎn)物是“類別”。位置是連續(xù)坐標(biāo)類別是離散標(biāo)簽。前者用回歸損失監(jiān)督后者用交叉熵監(jiān)督。如果硬把一個(gè)CNN骨干接到動(dòng)作分類輸出上網(wǎng)絡(luò)會(huì)傾向于記住“像站姿的紋理”而不是記住“肩膀和膝蓋的相對(duì)關(guān)系”。一旦換場(chǎng)景、換衣服泛化會(huì)斷崖式下跌。這是很多入門項(xiàng)目看起來準(zhǔn)確率高、實(shí)測(cè)不敢用的主要原因。所以常見的源碼包會(huì)采用兩段式結(jié)構(gòu)先訓(xùn)關(guān)鍵點(diǎn)網(wǎng)絡(luò)再訓(xùn)動(dòng)作網(wǎng)絡(luò)。拿到包后先確認(rèn)models目錄下有沒有兩個(gè)類如果沒有說明作者大多是在關(guān)鍵點(diǎn)基礎(chǔ)上用規(guī)則判斷動(dòng)作這時(shí)候動(dòng)作部分基本不用訓(xùn)練。這個(gè)判斷直接影響你后面要不要補(bǔ)數(shù)據(jù)、要不要改最后那個(gè)全連接層。我一般會(huì)先畫一張數(shù)據(jù)流圖圖像輸入到姿態(tài)網(wǎng)絡(luò)得到17個(gè)關(guān)鍵點(diǎn)關(guān)鍵點(diǎn)歸一化后進(jìn)動(dòng)作網(wǎng)絡(luò)得到N個(gè)動(dòng)作類別的概率。這張圖畫完整個(gè)項(xiàng)目的執(zhí)行順序就清楚了。邊界也決定了損失函數(shù)和優(yōu)化策略。姿態(tài)網(wǎng)絡(luò)通常用關(guān)鍵點(diǎn)熱力圖上的均方誤差動(dòng)作網(wǎng)絡(luò)用交叉熵。訓(xùn)練時(shí)先固定姿態(tài)權(quán)重調(diào)動(dòng)作網(wǎng)絡(luò)姿態(tài)網(wǎng)絡(luò)收斂穩(wěn)定后再考慮聯(lián)合微調(diào)否則動(dòng)作分支的梯度會(huì)把姿態(tài)分支的共享骨干拉偏。很多源碼包直接把兩個(gè)網(wǎng)絡(luò)分開訓(xùn)練原因就是聯(lián)合訓(xùn)練時(shí)超參太難調(diào)容易兩頭都顧不好。你在項(xiàng)目說明里看到類似“先跑pose_train.py再跑action_train.py”的順序時(shí)按這個(gè)順序走就對(duì)了。2.2 從輸入圖像到關(guān)鍵點(diǎn)熱力圖CNN回歸的常見結(jié)構(gòu)關(guān)鍵點(diǎn)回歸最穩(wěn)妥的形式不是直接回歸坐標(biāo)而是預(yù)測(cè)熱力圖。網(wǎng)絡(luò)為每個(gè)關(guān)鍵點(diǎn)輸出一個(gè)二維概率圖峰值位置就是關(guān)節(jié)位置。這樣做的好處是空間信息被保留訓(xùn)練也更穩(wěn)。以常見分辨率192x256輸入為例經(jīng)過下采樣后骨干網(wǎng)絡(luò)特征圖的尺寸大概是48x64最后接一個(gè)上采樣頭輸出K個(gè)通道的熱力圖。我一般會(huì)先確認(rèn)這個(gè)頭的輸出通道數(shù)是否等于數(shù)據(jù)集關(guān)鍵點(diǎn)數(shù)比如COCO標(biāo)準(zhǔn)的關(guān)鍵點(diǎn)數(shù)是17。如果源碼給的最后一個(gè)卷積是17而你自己的標(biāo)注只有14個(gè)點(diǎn)最后一層必須改。import torch import torch.nn as nn class PoseHead(nn.Module): def __init__(self, in_channels, num_keypoints, heatmap_size(48, 64)): super().__init__() self.heatmap_size heatmap_size self.decoder nn.Sequential( nn.Conv2d(in_channels, 256, 3, padding1), nn.ReLU(inplaceTrue), nn.Conv2d(256, num_keypoints, 1) ) def forward(self, feature_map): heatmaps self.decoder(feature_map) return heatmaps這里的in_channels是骨干網(wǎng)絡(luò)輸出的特征通道數(shù)取決于你用的backbonenum_keypoints對(duì)應(yīng)關(guān)鍵點(diǎn)數(shù)量COCO格式是17自建數(shù)據(jù)集按實(shí)際標(biāo)注數(shù)改。heatmap_size決定后續(xù)argmax后的坐標(biāo)分辨率不能隨意設(shè)。如果設(shè)成96x128關(guān)鍵點(diǎn)定位理論上更細(xì)但顯存占用會(huì)明顯漲設(shè)成32x44速度上去但關(guān)節(jié)位置容易偏肉眼可見地點(diǎn)錯(cuò)。我一般的做法是先用48x64跑通再根據(jù)顯存余量和PCK指標(biāo)決定要不要調(diào)。熱力圖訓(xùn)練時(shí)會(huì)把每個(gè)關(guān)鍵點(diǎn)坐標(biāo)生成一個(gè)高斯峰值推理時(shí)取每個(gè)通道的最大值位置作為關(guān)節(jié)坐標(biāo)。這里有個(gè)很容易忽略的細(xì)節(jié)如果一個(gè)人太靠近畫面邊緣某些關(guān)鍵點(diǎn)的高斯峰會(huì)被截?cái)鄬?dǎo)致argmax結(jié)果偏移。很多源碼包允許關(guān)鍵點(diǎn)帶visible標(biāo)志當(dāng)目標(biāo)是不可見時(shí)把對(duì)應(yīng)熱力圖全部置零并且不參與loss計(jì)算。如果你訓(xùn)練的圖片里常有遮擋一定要保留這個(gè)標(biāo)志否則模型會(huì)強(qiáng)行給遮住的關(guān)節(jié)生成一個(gè)假峰值。2.3 從關(guān)鍵點(diǎn)序列到動(dòng)作標(biāo)簽單幀CNN方案怎么把動(dòng)作做出來動(dòng)作分類可以基于RGB視頻學(xué)習(xí)但這要求3D卷積和大規(guī)模視頻數(shù)據(jù)。常見源碼包為了降低門檻會(huì)把動(dòng)作識(shí)別放到關(guān)鍵點(diǎn)層面用1D CNN吃時(shí)間窗口。這里的操作是標(biāo)準(zhǔn)卷積只不過卷積核沿時(shí)間維度滑動(dòng)。選用1D CNN而不是循環(huán)網(wǎng)絡(luò)是考慮到源碼包的定位訓(xùn)練快、依賴少、部署容易。窗口通常取8到16幀太短會(huì)抖太長(zhǎng)會(huì)拖慢響應(yīng)。具體來說窗口內(nèi)每一幀的關(guān)鍵點(diǎn)被歸一化成x、y、置信度三個(gè)值拼成一個(gè)行向量連續(xù)T幀疊起來就得到一個(gè)[T, K*3]的輸入序列。1D CNN在這個(gè)序列上做卷積輸出動(dòng)作類別概率。如果只是對(duì)單幀圖做分類也可以直接把一幀的關(guān)鍵點(diǎn)向量當(dāng)作T1的輸入但穩(wěn)定性差很多。下面是這類動(dòng)作網(wǎng)絡(luò)最常見的實(shí)現(xiàn)骨架class ActionNet(nn.Module): def __init__(self, num_keypoints17, num_classes8, window_size8): super().__init__() in_channels num_keypoints * 3 self.conv1 nn.Conv1d(in_channels, 128, kernel_size3, padding1) self.conv2 nn.Conv1d(128, 64, kernel_size3, padding1) self.pool nn.AdaptiveAvgPool1d(1) self.fc nn.Linear(64, num_classes) def forward(self, keypoints): # keypoints: [B, T, num_keypoints*3] 歸一化坐標(biāo) x keypoints.transpose(1, 2) # [B, in_channels, T] x torch.relu(self.conv1(x)) x torch.relu(self.conv2(x)) x self.pool(x).squeeze(-1) return self.fc(x)這里第一個(gè)Conv1d的kernel_size3表示只看相鄰三幀的上下文padding1保證序列長(zhǎng)度不變。如果幀率是30fps窗口8幀約270ms適合站立、走路、坐下這類過渡不快的動(dòng)作。做摔倒這類需要更長(zhǎng)上下文的動(dòng)作時(shí)窗口要調(diào)到16以上否則“倒地”過程還沒形成完整姿態(tài)模型已經(jīng)給出了錯(cuò)誤結(jié)論。num_classes要和你的動(dòng)作類別映射表嚴(yán)格一致多一個(gè)或少一個(gè)都會(huì)讓推理結(jié)果全部錯(cuò)位。2.4 拿到源碼包第一步先分清五類目錄別急著裝環(huán)境常見人體姿態(tài)動(dòng)作源碼包目錄結(jié)構(gòu)大同小異。解壓后我先不看代碼邏輯先掃一遍文件布局pose_action_system/ ├── README.md ├── requirements.txt ├── config/ │ └── pose_action.yaml ├── data/ │ ├── dataset.py │ └── transforms.py ├── models/ │ ├── pose_net.py │ └── action_net.py ├── tools/ │ ├── train.py │ ├── evaluate.py │ └── inference.py └── checkpoints/一般來說config放所有超參數(shù)models放網(wǎng)絡(luò)結(jié)構(gòu)data放數(shù)據(jù)集讀取邏輯tools放訓(xùn)練評(píng)估推理入口checkpoints放權(quán)重。真正決定系統(tǒng)行為的是config文件而不是訓(xùn)練腳本。先讀它能看出輸入分辨率、熱力圖尺寸、關(guān)鍵點(diǎn)數(shù)量和動(dòng)作類別數(shù)。接著打開requirements看依賴的大版本。如果這些和你本機(jī)環(huán)境差得遠(yuǎn)再?zèng)Q定要不要新建虛擬環(huán)境。不要看到requirements就無腦pip install更不要在全局base環(huán)境里裝一旦版本沖突后面會(huì)非常被動(dòng)。項(xiàng)目說明文檔里如果有“先下載權(quán)重再運(yùn)行”的字樣應(yīng)該把權(quán)重下載和放置路徑當(dāng)作前置條件圈出來。沒有權(quán)重文件時(shí)最小推理也可能跑不起來這屬于正?,F(xiàn)象不是代碼壞了。3. 在本地跑通最小推理解壓、裝環(huán)境、用預(yù)訓(xùn)練參數(shù)出結(jié)果跑通最小推理是整個(gè)項(xiàng)目的及格線。這一章我按“解壓→環(huán)境→推理→沒有權(quán)重怎么辦”的順序?qū)憽O炔灰从?xùn)練先讓一個(gè)輸入圖像能流到輸出結(jié)果。3.1 解壓和核對(duì)項(xiàng)目說明先把依賴清單讀對(duì)拿到zip先解壓到一個(gè)純英文路徑不要放在桌面那種含中文的短路徑里。解壓后第一件事不是裝環(huán)境而是看文件樹和項(xiàng)目說明。用下邊命令找文件unzip pose_action_system.zip -d pose_action_system cd pose_action_system find . -maxdepth 2 -type f | sort如果項(xiàng)目說明寫得規(guī)范會(huì)有環(huán)境要求、權(quán)重下載位置和一行推理命令。先把這一行推理命令抄出來后面90%的問題都從它展開。requirements.txt通常是關(guān)鍵里面一般有numpy、opencv-python、torch、torchvision這類基礎(chǔ)依賴。注意看有沒有一個(gè)單獨(dú)的requirements-gpu.txt有的話用它而不是默認(rèn)那個(gè)因?yàn)槟J(rèn)可能只適合CPU。不要小看這一步很多人翻車在第一次pip install就版本沖突最后不得不回頭清理環(huán)境。3.2 用虛擬環(huán)境隔離依賴別把基礎(chǔ)環(huán)境弄臟我一般會(huì)為這類源碼單獨(dú)建一個(gè)虛擬環(huán)境哪怕事情看起來很小。原因是公開源碼包的依賴版本常常和你的日常項(xiàng)目沖突比如一個(gè)項(xiàng)目需要torch1.8這套代碼需要torch2.x在base環(huán)境里一定會(huì)打架。用conda創(chuàng)建環(huán)境的命令如下conda create -n pose_action python3.9 -y conda activate pose_action pip install -r requirements.txt這里python版本選3.9是為了兼容大多數(shù)這種源碼包的torch安裝輪子如果你機(jī)器上的CUDA版本比較高可以選3.10但如果項(xiàng)目說明明確寫了python下限以說明為準(zhǔn)。等pip裝完先跑一句python -c import torch; print(torch.__version__)確認(rèn)torch可用。如果import cv2報(bào)錯(cuò)通常是opencv-python依賴的libgl1缺失在Linux下用系統(tǒng)包管理器安裝libgl1即可。這一步的具體坑在第5章還會(huì)展開。3.3 跑一次推理Demo從圖像到關(guān)鍵點(diǎn)和動(dòng)作標(biāo)簽的最小命令大多數(shù)這類工程都會(huì)有一個(gè)推理入口通常叫inference.py或demo.py。使用預(yù)訓(xùn)練權(quán)重時(shí)最小命令一般長(zhǎng)這樣python tools/inference.py --image data/sample.jpg \ --config config/pose_action.yaml \ --checkpoint checkpoints/pose_action.pth \ --output output/result.jpg--image傳測(cè)試圖像--config傳配置文件--checkpoint傳權(quán)重--output寫結(jié)果圖。如果你拿到的是源碼加項(xiàng)目說明而沒帶權(quán)重先看說明里的權(quán)重獲取方式別直接怪代碼。下面這段代碼展示了一個(gè)簡(jiǎn)化版推理腳本內(nèi)部最常見的幾行方便你理解參數(shù)是怎么被消耗的import cv2 import torch from models.pose_net import PoseNet from utils.decode import decode_heatmaps def main(): cfg load_yaml(config/pose_action.yaml) num_k cfg[num_keypoints] model PoseNet(num_keypointsnum_k) ckpt torch.load(cfg[checkpoint], map_locationcpu) model.load_state_dict(ckpt[model_state_dict]) model.eval() img cv2.imread(data/sample.jpg) orig_h, orig_w img.shape[:2] input_w, input_h cfg[input_size] resized cv2.resize(img, (input_w, input_h)) # 轉(zhuǎn)張量、歸一化 tensor torch.from_numpy(resized.transpose(2, 0, 1)).float() / 255.0 tensor tensor.unsqueeze(0) with torch.no_grad(): heatmaps model(tensor) # [1, num_k, H, W] keypoints decode_heatmaps(heatmaps[0], scale_xorig_w / input_w, scale_yorig_h / input_h) print(keypoints.shape)這段邏輯說明模型輸入是resize后的圖片輸出是歸一化坐標(biāo)decode_heatmaps里的scale_x和scale_y負(fù)責(zé)把網(wǎng)絡(luò)坐標(biāo)還原到原圖尺寸。很多開源實(shí)現(xiàn)習(xí)慣直接把a(bǔ)rgmax除以熱力圖尺寸再乘輸入尺寸如果你看到的代碼沒有這組scale說明它假設(shè)輸入圖片就是網(wǎng)絡(luò)分辨率推理真實(shí)視頻時(shí)會(huì)點(diǎn)偏。參數(shù)上PoseNet的num_keypoints必須以config為準(zhǔn)如果權(quán)重是17點(diǎn)的改成14會(huì)直接加載報(bào)錯(cuò)如果代碼里沒有decode_heatmaps函數(shù)就在utils目錄下找類似heatmap2coord的函數(shù)。3.4 沒有預(yù)訓(xùn)練權(quán)重時(shí)先用隨機(jī)權(quán)重驗(yàn)證通路這是很多新手最容易卡住的地方權(quán)重文件不存在模型沒法載入。我會(huì)建議不要先糾結(jié)精度先讓一條隨機(jī)權(quán)重的空模型跑通輸入輸出。也就是說把推理腳本的load_state_dict臨時(shí)去掉或者生成一個(gè)隨機(jī)權(quán)重文件看heatmap和關(guān)鍵點(diǎn)坐標(biāo)能不能正常打印。只要能打印說明數(shù)據(jù)流、張量shape、后處理都沒問題。這一步通過后再考慮訓(xùn)練或找可遷移的公開權(quán)重。不要迷信別人說的“隨便一個(gè)預(yù)訓(xùn)練權(quán)重就能用”關(guān)鍵點(diǎn)網(wǎng)絡(luò)的第一階段必須用目標(biāo)數(shù)據(jù)集或鄰近數(shù)據(jù)集訓(xùn)練否則關(guān)鍵點(diǎn)偏了后面的動(dòng)作分類再準(zhǔn)也沒有意義。這就是為什么很多老工程師拿到新源碼包會(huì)先跑隨機(jī)權(quán)重而不是先花幾天調(diào)訓(xùn)練參數(shù)。先驗(yàn)證通路再追求精度能把心態(tài)穩(wěn)下來。4. 訓(xùn)練自己的數(shù)據(jù)數(shù)據(jù)集格式、訓(xùn)練參數(shù)與評(píng)估方法推理跑通只是開始。要在自己的場(chǎng)景里穩(wěn)定必須用自己的數(shù)據(jù)訓(xùn)練。很多源碼包自帶數(shù)據(jù)讀取類但格式不一定合你手頭數(shù)據(jù)。下面按數(shù)據(jù)結(jié)構(gòu)、預(yù)處理、訓(xùn)練參數(shù)、評(píng)估四條線展開。4.1 數(shù)據(jù)集有三種常見樣式關(guān)鍵點(diǎn)熱力圖、關(guān)鍵點(diǎn)坐標(biāo)、動(dòng)作分類標(biāo)簽在動(dòng)手準(zhǔn)備數(shù)據(jù)前先確認(rèn)這套源碼需要什么格式。我看過的同類項(xiàng)目里姿態(tài)與動(dòng)作系統(tǒng)一般會(huì)吃三種數(shù)據(jù)之一格式核心字段適用場(chǎng)景常見讀取方式COCO風(fēng)格JSONimages, annotations, keypoints姿態(tài)估計(jì)預(yù)訓(xùn)練或遷移自定義Dataset按ann_id索引關(guān)鍵點(diǎn)坐標(biāo)CSVframe_id, x1,y1,x2,y2,...,label動(dòng)作分類、兩級(jí)式系統(tǒng)pandas讀取轉(zhuǎn)浮點(diǎn)Tensor熱力圖H5images, target_heatmaps離線生成熱力圖訓(xùn)練IO更快h5py讀取COCO風(fēng)格JSON適合姿態(tài)網(wǎng)絡(luò)CSV適合動(dòng)作網(wǎng)絡(luò)H5適合你已經(jīng)把熱力圖生成完畢的情況。常見操作是先用COCO風(fēng)格JSON訓(xùn)姿態(tài)再?gòu)淖藨B(tài)預(yù)測(cè)結(jié)果導(dǎo)出CSV訓(xùn)動(dòng)作。不要試圖讓一個(gè)數(shù)據(jù)集同時(shí)滿足所有格式能跑通源碼才是第一位。下面是一段CSV樣例frame_id, x_shoulder, y_shoulder, ..., x_ankle, y_ankle, label 0, 0.34, 0.21, ..., 0.52, 0.88, walk 1, 0.33, 0.20, ..., 0.53, 0.89, walk如果源碼的數(shù)據(jù)加載需要的是每行一個(gè)動(dòng)作樣本你要把同一動(dòng)作的連續(xù)幀窗口切出來這部分通常由動(dòng)作網(wǎng)絡(luò)的數(shù)據(jù)集類完成不要自己先把窗口硬編碼到CSV里。4.2 從原始采集到可訓(xùn)練樣本標(biāo)注和預(yù)處理腳本標(biāo)注關(guān)鍵點(diǎn)常見做法是用開源標(biāo)注工具導(dǎo)出每個(gè)bbox下的關(guān)鍵點(diǎn)坐標(biāo)。拿到標(biāo)注后我一般先寫一段腳本做兩件事把關(guān)鍵點(diǎn)從原圖坐標(biāo)轉(zhuǎn)成相對(duì)bbox的歸一化坐標(biāo)同時(shí)檢查不可見點(diǎn)標(biāo)記。所謂不可見點(diǎn)指被遮擋時(shí)標(biāo)注為0的坐標(biāo)不能當(dāng)成真實(shí)位置參與訓(xùn)練。下面這段代碼示意了歸一化邏輯適用姿態(tài)網(wǎng)絡(luò)輸入前處理import numpy as np def normalize_keypoints(kpts, bbox): x, y kpts[0], kpts[1] x1, y1, x2, y2 bbox w, h x2 - x1, y2 - y1 cx, cy x1 w / 2, y1 h / 2 nx (x - cx) / max(w, 1) ny (y - cy) / max(h, 1) return np.array([nx, ny])參數(shù)說明bbox是單人檢測(cè)框歸一化后姿態(tài)動(dòng)作與人物在畫面里的絕對(duì)像素不再相關(guān)對(duì)動(dòng)作分類尤其重要。如果你發(fā)現(xiàn)訓(xùn)練時(shí)站著和坐著容易混淆先看是不是忘了做這一步。還有一個(gè)常見坑是翻轉(zhuǎn)增強(qiáng)時(shí)關(guān)鍵點(diǎn)的左右關(guān)系要交換例如左肩和右肩互換。代碼里必須維護(hù)一個(gè)關(guān)鍵點(diǎn)交換列表否則增強(qiáng)后的人體結(jié)構(gòu)是錯(cuò)位的。這個(gè)交換表一般放在config或data/transforms里要找出來確認(rèn)。4.3 訓(xùn)練腳本里的六個(gè)關(guān)鍵參數(shù)batch_size、學(xué)習(xí)率、熱力圖尺寸、增強(qiáng)開關(guān)、類別平衡、epoch訓(xùn)練腳本能改的地方很多但下面這份yaml幾乎每次都要調(diào)data: input_size: [192, 256] heatmap_size: [48, 64] window_size: 8 train: batch_size: 32 epochs: 80 lr: 0.001 lr_decay: step pose_aug: true action_class_balance: trueinput_size和heatmap_size決定顯存與定位精度。如果你的顯存只有8GBbatch_size直接降到8或16input_size保持192x256不要一上來就用384x384。heatmap_size通常等于input_size的四分之一所以192x256對(duì)應(yīng)48x64。window_size只在訓(xùn)練動(dòng)作網(wǎng)絡(luò)時(shí)使用建議8起步幀率30FPS下約270ms的上下文。lr0.001是姿態(tài)網(wǎng)絡(luò)從頭訓(xùn)練的常見默認(rèn)值如果加載了骨干網(wǎng)絡(luò)預(yù)訓(xùn)練權(quán)重我把learning rate降到0.0001否則前幾個(gè)epoch容易沖崩。pose_aug開啟隨機(jī)旋轉(zhuǎn)/縮放/翻轉(zhuǎn)augment能大幅降低過擬合但對(duì)關(guān)鍵點(diǎn)坐標(biāo)的同步變換要求很嚴(yán)格這點(diǎn)第5章會(huì)細(xì)說。action_class_balance在動(dòng)作類別樣本差異大時(shí)開啟例如“蹲下”樣本只有“站立”的十分之一不做平衡模型會(huì)偏向預(yù)測(cè)多數(shù)類訓(xùn)練時(shí)準(zhǔn)確率虛高。4.4 訓(xùn)練完怎么評(píng)估PCK、OKS、分類準(zhǔn)確率三個(gè)指標(biāo)分別看什么姿態(tài)網(wǎng)絡(luò)常用PCK和OKS動(dòng)作網(wǎng)絡(luò)看分類準(zhǔn)確率。PCK的含義是預(yù)測(cè)關(guān)鍵點(diǎn)與標(biāo)簽之間的距離小于某個(gè)閾值通常按頭部框尺寸的0.1到0.2倍算合格。下面這段是PCK的樸素實(shí)現(xiàn)用來快速看單批結(jié)果def pck(pred, gt, head_size, threshold0.2): # pred/gt: [num_kpts, 2], 已經(jīng)映射到原圖坐標(biāo)系 dist np.linalg.norm(pred - gt, axis-1) return (dist head_size * threshold).mean()head_size是頭部框的對(duì)角線長(zhǎng)度不同動(dòng)作尺度下能自適應(yīng)所以比絕對(duì)像素閾值合理。OKS比PCK更細(xì)它會(huì)區(qū)分不同關(guān)鍵點(diǎn)的難易程度比如肩膀比腳踝容錯(cuò)大COCO風(fēng)格的json里可以直接用現(xiàn)成實(shí)現(xiàn)不用自己折騰。動(dòng)作網(wǎng)絡(luò)就別只看整體準(zhǔn)確率要打印混淆矩陣。摔倒被識(shí)別成躺下、站立被識(shí)別成蹲下這種混淆是部署時(shí)最要命的。逐類查漏比整體準(zhǔn)確率有意義得多。訓(xùn)練完成不要急著存最后一個(gè)epoch我會(huì)保存驗(yàn)證集指標(biāo)最好的checkpoint再配合訓(xùn)練日志確認(rèn)loss沒有異?;厣?。5. 避坑記錄CNN姿態(tài)與動(dòng)作系統(tǒng)訓(xùn)練推理的五個(gè)翻車點(diǎn)下面這五個(gè)坑都是我在類似源碼包里實(shí)際翻過的有的來自環(huán)境有的來自數(shù)據(jù)有的來自后處理。每一條按“現(xiàn)象-原因-解決”寫照著排查能省幾天時(shí)間。5.1 路徑與系統(tǒng)編碼解壓到中文目錄必坑現(xiàn)象系統(tǒng)是Windows把zip解壓到“項(xiàng)目2025”這種中文目錄運(yùn)行時(shí)DataLoader報(bào)FileNotFoundError而且報(bào)錯(cuò)路徑里顯示亂碼。原因zip內(nèi)文件名是UTF-8編碼Windows自帶解壓工具會(huì)用本地編碼解出亂碼代碼里再用默認(rèn)編碼去讀路徑就對(duì)不上。另外中文路徑本身在opencv里支持不穩(wěn)容易踩到。解決解壓時(shí)直接統(tǒng)一到純英文路徑目錄名用pose_action這種不要在中間層夾中文。如果已經(jīng)解壓壞了刪掉重解別嘗試去改源碼里的編碼代價(jià)大。代碼入口統(tǒng)一用pathlib.Path來處理路徑避免手寫字符串拼路徑。這個(gè)習(xí)慣能避開很多詭異問題。5.2 關(guān)鍵點(diǎn)坐標(biāo)沒跟著數(shù)據(jù)增強(qiáng)走訓(xùn)練曲線像心電圖現(xiàn)象開啟旋轉(zhuǎn)、翻轉(zhuǎn)增強(qiáng)后姿態(tài)網(wǎng)絡(luò)的loss先降后升或者反復(fù)震蕩val的PCK還不如不增強(qiáng)。原因圖像被隨機(jī)旋轉(zhuǎn)和翻轉(zhuǎn)了但關(guān)鍵點(diǎn)坐標(biāo)沒有做同樣的變換模型看到的是“肩膀上長(zhǎng)了手”的錯(cuò)位樣本。最常見是忘了翻轉(zhuǎn)時(shí)交換左右關(guān)鍵點(diǎn)比如左肩右肩不換損失永遠(yuǎn)壓不下去。解決用圖像增強(qiáng)庫(kù)的keypoints參數(shù)來綁定坐標(biāo)不要自己手寫旋轉(zhuǎn)矩陣。使用albumentations時(shí)寫法如下import albumentations as A transform A.Compose([ A.Rotate(limit30, p0.5), A.HorizontalFlip(p0.5), ], keypoint_paramsA.KeypointParams(formatxy))這個(gè)寫法下圖像和keypoints會(huì)使用同一組隨機(jī)參數(shù)翻轉(zhuǎn)時(shí)albumentations會(huì)自動(dòng)交換左右索引。要注意的是如果你的訓(xùn)練代碼里還有額外的RandomCrop必須把crop后的bbox也同步到坐標(biāo)上否則關(guān)鍵點(diǎn)坐標(biāo)依舊錯(cuò)位。5.3 類別編號(hào)錯(cuò)位Loss正常但推理結(jié)果全亂現(xiàn)象動(dòng)作網(wǎng)絡(luò)訓(xùn)練loss很漂亮驗(yàn)證準(zhǔn)確率95%但一到真實(shí)視頻里把站立識(shí)別成走路走路識(shí)別成坐下看起來完全隨機(jī)。原因這種翻車經(jīng)常不是模型問題是類別編號(hào)錯(cuò)位。你訓(xùn)練時(shí)用的CSV里類別0對(duì)應(yīng)走路但推理時(shí)模型輸出0卻按站立去畫標(biāo)簽或者裁剪類別列表時(shí)少了一個(gè)類別所有編號(hào)整體偏移一位。解決把類別映射抽成單獨(dú)的class_list.yaml訓(xùn)練和推理都從同一個(gè)文件讀不硬編碼在腳本里。一般在config目錄下會(huì)有類似的類別文件。如果源碼里沒有就自己建一個(gè)并在訓(xùn)練入口和推理入口都加一段斷言驗(yàn)證類別數(shù)量一致。這樣以后新增動(dòng)作只需改一個(gè)文件。5.4 顯存不足先看熱力圖尺寸和batch別急著換顯卡現(xiàn)象一訓(xùn)練就OOM報(bào)CUDA out of memory把batch_size從32調(diào)到8還是不夠。原因顯存占用不只是batch_size輸入分辨率、熱力圖分辨率、骨干網(wǎng)絡(luò)通道數(shù)共同決定active cache。很多人只調(diào)batch_size實(shí)際上熱力圖尺寸占大頭。有些項(xiàng)目的config默認(rèn)heatmap_size96x128這比batch翻倍還吃顯存。解決先把input_size降到192x256heatmap_size降到48x64再把batch_size調(diào)到8看顯存余量。同時(shí)打開混合精度訓(xùn)練用GradScaler減少中間張量的精度緩存scaler torch.cuda.amp.GradScaler() with torch.cuda.amp.autocast(): heatmaps model(img) loss criterion(heatmaps, target) scaler.scale(loss).backward() scaler.step(optimizer) scaler.update()如果你用的是老顯卡不支持autocast再考慮把backbone換輕量版本。不要一開始就換大卡多花冤枉錢。5.5 玄學(xué)指標(biāo)Loss很低但PCK難看先查坐標(biāo)還原現(xiàn)象模型訓(xùn)練完loss低得開心結(jié)果畫出來的關(guān)鍵點(diǎn)整體偏左上角PCK慘不忍睹。原因這不是模型玄學(xué)是坐標(biāo)還原時(shí)漏了尺度映射。推理腳本把熱力圖argmax后直接除以熱力圖尺寸再乘熱力圖尺寸看起來沒毛病但熱力圖尺寸、網(wǎng)絡(luò)輸入尺寸、原圖尺寸三者不是一回事少一步就偏。常見是熱力圖是48x64網(wǎng)絡(luò)輸入是192x256原圖是1080x1920如果只在熱力圖尺度里自洽沒有乘原圖到輸入圖的scale輸出當(dāng)然偏。解決記錄原圖寬高在網(wǎng)絡(luò)輸出坐標(biāo)后做完整的反向映射。簡(jiǎn)化轉(zhuǎn)換如下scale_x orig_w / input_w scale_y orig_h / input_h pred_x heat_x * (input_w / heatmap_w) * scale_x pred_y heat_y * (input_h / heatmap_h) * scale_y這里heat_x是每個(gè)通道argmax得到的整數(shù)索引heatmap_w和heatmap_h是熱力圖寬高。很多源碼的decode_heatmaps里只處理到input_w沒有最后一個(gè)scale_x如果你發(fā)現(xiàn)推理圖比訓(xùn)練圖大就一定要補(bǔ)上這段。這個(gè)坑我栽過一次后現(xiàn)在都會(huì)先寫一個(gè)單人單圖的繪圖腳本把坐標(biāo)直接畫在原圖上人工確認(rèn)。6. 把動(dòng)作識(shí)別做穩(wěn)的進(jìn)階技巧滑動(dòng)窗口、多數(shù)投票和置信度閾值單幀動(dòng)作分類最典型的問題是抖相鄰兩幀可能從“走路”跳到“站立”再跳回“走路”。這不是模型完全錯(cuò)了而是某些中間姿態(tài)在兩個(gè)類別邊界上。我常用的一個(gè)做法是維護(hù)一個(gè)長(zhǎng)度為T的幀隊(duì)列模型對(duì)隊(duì)列做整體判斷然后對(duì)最近N次輸出做多數(shù)投票概率低于閾值的幀記為unknown不參與最終決策。下面的代碼示意了這種邏輯from collections import deque import numpy as np import torch CLASSES [stand, walk, sit, bend] def detect_action(queue, action_net, history, threshold0.7): keypoints np.array(queue, dtypenp.float32) keypoints keypoints.reshape(1, len(queue), -1) tensor torch.from_numpy(keypoints) with torch.no_grad(): logits action_net(tensor) prob torch.softmax(logits, dim-1).squeeze(0).numpy() vote int(prob.argmax()) if prob.max() threshold else -1 history.append(vote) if len(history) 5: history.popleft() counts [history.count(c) for c in range(-1, len(CLASSES))] best int(np.argmax(counts)) - 1 return best, prob這里的action_net接收的是形狀[1, T, K*3]的關(guān)鍵點(diǎn)序列K是姿態(tài)關(guān)鍵點(diǎn)數(shù)量3對(duì)應(yīng)x、y、置信度。threshold取0.7會(huì)讓unknown增多但誤判減少如果場(chǎng)景要求實(shí)時(shí)響應(yīng)我一般取0.6并且把history長(zhǎng)度從5降到3。窗口長(zhǎng)度T8時(shí)大約270ms的上下文處理站立、走路這類過渡動(dòng)作足夠。如果是摔倒檢測(cè)T要提高到16到21否則“倒地”過程還沒形成完整姿態(tài)模型就過早判成“躺下”。投票窗口里我需要保證unknown不會(huì)長(zhǎng)時(shí)間占據(jù)多數(shù)否則動(dòng)作開始和結(jié)束會(huì)有明顯延遲。一個(gè)更細(xì)的做法是對(duì)每個(gè)類別統(tǒng)計(jì)平滑概率而不是粗暴計(jì)數(shù)但多數(shù)投票實(shí)現(xiàn)最直觀且瓶頸通常不在這個(gè)邏輯而在關(guān)鍵點(diǎn)提取。先做投票再?zèng)Q定要不要做更復(fù)雜的平滑。這套思路我在模擬項(xiàng)目X上驗(yàn)證過誤檢率比單幀直接輸出降低了一半以上。我現(xiàn)在的習(xí)慣是先跑通打通鏈路再調(diào)閾值和窗口最后才優(yōu)化模型本身。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
任你草| 青女偷拍网| 免费在线黄片视频| 久热精品在线国产| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 久久人妻丝袜一区二区三| 成人无遮挡毛片免费看| 欧美姓爱综合网| 操B久久| 亚洲激情在线| 婷婷综合激情| 一区在线观看中文字幕| 爆操无码| 爽 好舒服 无码刺激久久| 探花视频免费观看国产专区| 97超碰欧美手机| 老司机午夜精品福利视频一区二区 | 热久日综合| 欧亚乱色熟一区二区三四区| 看看小穴| 国产原创精品| 后入 亚洲 美女 射| 亚洲综合中文字幕有码 | 天天干天天日天天射黄色大片| 夜夜 中文视频rt| 欧州色图区| 欧美色图天堂在线| 伊人天堂在线| AV天堂丝袜| 99热精品在线| 综合色图区| 色墦五月丁香| 成人精品在线观看| 无码99| 亚洲色图超碰在线| 日韩情色视频| 骚熟女吞| 日韩本不卡视频在线观看| 久久久久921| 国产精品视频在线播放| 91M一社| 国产一区二区在线看| 91精品婷婷国产综合久久| 超碰 国产熟女精品一区| 黄色十八禁| 精品一区二区久久| AV色女综合| 日韩大香蕉AV影片| 日韩成人高清一区二区| 翔田千里无码中出中文字幕| 黄色高清无码无码破解免费暗网| 色玖玖| 欧美最婬乱婬爆婬性视频 | 性色av蜜臀av色欲aV| 一二三四视频中文字幕在线看| 国产强奸乱伦xd| 亚洲色图日韩精品| 按摩中文字幕| 国产精品69久久久久孕妇欧美| 东京热91| 日韩性爱视频在线免费观看| 精品一区二区成人动漫| 性站| 久湿久久| 国产女人视频三四五区| 久久亚码| 欧美美女视频| 国产美女自拍AV| 女人被男人桶爽视频网站| 操逼操逼逼操操逼91| 日本肏逼视频在线观看| 欧亚乱色熟一区二区三四区| 国产自偷| 日韩欧洲操屄视频| 欧美丰满熟妇XXXX性ppX人交| 色欧美天天| 日少妇亚洲版| 久久久久国色αv免费观看| 久久精品熟妇丰满人妻99| 26uuu久久| 精品v日韩欧美国产| 亚洲成人av色网| 97视频900| 久操电影网| 另类TS人妖一区二区三区| 99热只有这里有精品| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 在线观看无码三级少妇| 亚洲一区二区麻豆影院| 欧美激情综合网| 久草国产在线视频| 精品久久久久9999| 亚洲超碰97| 午夜影美女日鸡鸡天天视频国产| 91在线美女| 在线国产福利网址导航| 97在线免费看| 亚洲开心网| 天天躁日日躁AAA片李宗瑞| 色一射色一射| 九热久| 国模精品一区二区三区苹果色戒| 中文字幕超碰CAO| 欧美色网| 色香阁在线| 欧美日韩狠狠爱| 成人性爱美曰韩| 超碰97男人| 羞涩视频| http://qxhbdz.com| 久久9免费视频| 男女真人网18| 另类专区加勒比| 一个国产在线综合网站| 熟妇人妻一区二区| 欧美性爱精品七区| 人妻人人澡人人爽人人| 乱伦熟妇一区二区| 小骚逼被操的爽不爽| 国内毛片欧美香蕉精品| 丁香婷婷激情五月天无毒不卡| 呦呦一区| 亚洲熟妇丝袜在线观看| 夜夜操美女| 欧美超碰96| 成年无码动漫av片无尽在线 | 综合五月天| 亚洲 欧美综合| 制服乱伦| 夜色91| 9久超碰| 懂色av一区二区三区天美传媒| 婷婷色色五月天| 欧美色综合网| 人妻夜夜爽天天爽麻豆三区网站 | 美女操逼福利视频| 精品久久久久久AV无码| 国产精品网址| 五月天久久婷婷亚洲 | 五月丁香色婷婷| 亚洲天天操| 96AV久久久| 亚洲啪AⅤ永久无码| 久久一二三四不卡 | 情趣丝袜无码操逼视频| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 殴洲老熟女| 性色av婷婷久久一区二区点复制| 中文字幕后石码四区五区| 亚州操操穴网| 国产精品视频白浆免费| 9国产超碰| 91无摭挡| 国产传媒日本欧美专区| 日人妻视频91| 人人爱人人乐人人操| 蜜臀99久久| 啊啊啊啊二区好大| 熟女人妻av在线资源,黄色的资源| 起碰97| 97碰碰日本乱偷人妻中文的| 青青网三级视频| 乱伦a片视频| 国产一区二区精品久久久不卡蜜臀| 91在线色综合| 国产情侣自拍在线播放| 偷拍 欧美 日韩| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 熟妇熟女视频一区二区三区| 凹凸久久人人| 欧美性爽xyxOOOO| 久久九九热| 久久9精品视频| 婷婷色导航| 色官网色综合| 777琪琪午夜免费A片| 日本大香蕉综合网红本杳社区| 国产精品2020| 99re6久热只有精品6在线直播| 亚洲乱码国产乱码精网站| 深夜福利黄片| 东京热男人天堂| 啊啊啊轻点在线观看| 久草资源欧美在线视频| 自拍丝袜美腿人妻| 99r九九| 香蕉久久国产AV一区二区| 日va操| 日韩操p| 亚洲色欧美| 插插综合网天天影视网| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 96精品久久久久久久久久| 91黑丝操| 啊啊啊 在线| 熟妇国产免费一区| 超碰欧美97资源| 超碰综合色| 一级黄碟在线观看| 日韩少妇丰满亚洲| 东北女人被操| 亚洲天堂日本| 99re在线视频| 国产91专区| 欧美日韩97在线| 97超碰亚洲| 中文字幕天天天天天| 五月天丁香| 九月色婷婷| 婷婷色综合| 亚洲av无码成人精品国产| 亚洲天堂AV在线播放| 丁香九月 婷婷| 变态乱伦伪娘灌肠一区二区| 屁屁影院一区二区三区国产| 操我无码| 另类天堂| 天天综合网久久ww| 亚洲无限观看| 亚洲色天堂九9| 青青草女人天天干| 精品亚洲| 操逼免费视频无码国产| 大色综合网| 国产久久久久久久久一区二区| 在线啊v一区| www久久久| 欧美.亚洲.另类.丝袜.制服.诱惑| 五月丁香久久| 日韩超碰精品综合| 色网亚洲人| 美女91AV| 免费在线黄片视频| 五月天婷婷久久| 色蜜AV| 婷婷激情一区二区三区俺也去| 婷婷香网站| 久久激情视频| 91操操操操| 亚洲国产一区二区日韩专区| 99熟女| 91新在线欧美| 青青草一区二区高清无码视频| 亚洲情色视频| 在线a v| 色五月婷婷中文字幕| 亚洲天堂另类小说男人| 东京热双插| 五月丁香社区婷婷日韩欧美精品影院| 麻豆天美国美国产AV| 玖玖蜜臀资源网| 欧美三级偷拍| 九月丁香综合网| 亚洲 欧美 91| 少妇久久久免费| 放黄片放3级黄片没穿衣服| 欧美的性爱网站免费| 91黑人无码激情在线| 宅男午夜在线视频| 国产97色在线| 日韩不卡av一二三| 亚州中文字幕超碰97| 精品九区| 探花激情视频| 久操视频免费观看| 99久久精品无码一区二区毛片免费| 在线强奷到舒服的无码视频 | 天天干人人看综合| 99久在线精品99re8热| 久久香蕉超碰97国产精品| 极品色综合| 亚洲二区精品在线观看| 北条麻妃性愛视频| 亚洲精品自拍| 色色色色色色色色色色色色色色综合| 日本三级精品| 天天干天天干天天| 亚洲人综合| 日韩卡一卡二卡三在线| 超碰性爱97| 男人的天堂2018| 五月天久久久| 97超碰9| 国产精品成人蜜臀AV在线| yiren97| 国产精品人妻无码久久久互動交流 | 日韩伦理久 久久 清纯| 国产自制av蜜乳| 丰满人妻一区二区三区免费,| 亚洲97网站| 亚洲第2页| 9精品在线| 亚洲成人性爱网站在线播放| 超碰1024久久| 久久黄色视频一区二区三区| 国产性爱欧美性爱在线| 四虎国产精品永久地址入口| 日韩精品9区| 精品高清一区二区三区三州| 另类欧美| 91在线无码精品秘 软件| 亚洲人妻久久久| 国产精品三级视频网站 | 另类天堂| 亚洲春色欧美激情自拍| 大吊色| 超碰在线人妻中文字幕| 久久日本熟女精品一区| 强奸乱亚洲| 欧美 亚洲| 麻豆精品久久久久久久| 婷婷av在线中文字幕| 大吊色| 亚洲一级性爱视频免费看| ai欧美亚洲小说| 丰满的三级少妇欧美久久久| 神马麻豆福利院| 偷拍欧美激情| 2020中文在线一区二区三区| 精品久操| 九九毛片这里只有精品| 偷拍三区| 天天影视91看看| 久久精品欧美一区蜜桃| 欧美伊人久久综合网| 色眯眯av| 97久久久久久久精| 久干9操| 欧美中文综合| 欧美亚洲厕所精品偷拍91| 91free福利| 91亚洲人| 在线中文AV| 超碰av人人人| 国产一进一出视频网站| 五月情色天| 亚欧中文字幕在线视频| 欧美激情精品久久久| 久久激情视频| 欧美人妻久久精品二区三区 | 91网亚洲| 99精品无码| 秋霞网—男女啪啪亚洲免费体验区| 亚拍在线| 中文字幕 一区二区 亚洲无码| 人干人人人操人人摸| 色妇综合网| 熟女高潮合集-永久久久-成人AV| 亚洲人精| www.激情| 日韩国产欧美伦理在线| 天天综合中文字幕 91| 蜜臀久久久国产| 熟女人妻av在线资源,黄色的资源| 2018天天干在线视频| 欧美天天综合网版| 91久久国产精品| 加勒比海成人视频网| 亚洲黑丝在线| 色99视频| 91操人| 国产一区自拍欧美日韩| 亚洲国产丝袜熟女av| 欧美图片色五月天| 色偷偷男人的天堂麻豆| 天堂国产AV| 激情四射婷婷四五月天| 色噜噜狠狠色综无码久久合欧美| 69精品久久久久中文字幕| 亚洲精品尤物yw在线影院| 91人妻在线视频| 91中出视频| 婷婷五月天色网| 超碰在线第一页| 91中文精品日韩欧美在线| 天天添天天干电影| 青青欧美在线| 性色avv| 夫妻四区五区六区| 久久超碰、| 久艹伊人精品综合在线| 久久熟妇五十路一区| 97这里有精品| 人妻久久一区二区三区 | 影音先锋视频在线| 十八禁的黄污污免费网站| 亚洲成aⅴ人片不卡无码| 看日韩黄片| 思思热国产高清| 熟女探花啪啪| 在线亚洲 欧美 日本专区 | 操亚州| 91久久久老司机| 欧美 亚洲 综合 制服 另类| 精品视频久久区| 国产情色在线| 中韩中文字幕在线观看| 激情综合网亚洲| 日韩日本欧美在线观看| 久久东京伊人一本到鬼色| 人人看欧美性爱| 丝袜美腿制服人妻二区中文字幕| 色综合九九| 红杏大香蕉| 后入 亚洲 美女 射| 亚洲综合图文| 夜夜爽爽夜夜精品视频| 久久爱97| 欧美极品美女aaaaaa级黄片| 国产精品一级毛片不卡视| 亚欧高清v| 啊啊啊操一区| 精品999日本| 综合网亚洲1| 一区二区视频在看| 久久性爱视频99| 激情综合二| 97人人草| 97碰碰日本乱偷人妻中文的| 丰满人妻-区二区三区免费看| 国产性感骚丝袜在线| 欧色综合| 亚洲欧美国产精品久久久久久久| 蜜臀AV秘一区翔田千里| 91精品黄在线观看| 国产超碰在线一区| 深夜视频| 国产高清在线观看欧美| 人妻久热在线| 日日玩天天干| 成人无码在线视频网站| 五月婷婷色色| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 强奸乱伦AV网址| 久久综合九九| 本道在线| 精品国产91av一区二区三区| 婷婷五月天激情小说| 国产精品久久久久久久久久久久久久久久久久 | 啪啪啪综合| 激情国产乱伦Av| 亚洲欧美一区二区三区在钱蜜桃 | 亚洲欧综合另类无码一区| 啊…啊…操我用力操我| 婷婷五月天色网| 影音先锋日本一区二区| 九九九网页| 中文字幕av片| 五月天黄色激情视频| 打av高清| 乱伦强奸区日韩| 五月丁香色综合| 欧美日本视频一区| 色色香蕉| 色偷偷人人玩人人舔人人操人人摸人人爽| A片A5445444| 欧美三级不卡| 亚洲综合另类| 亚洲AO在线| 91欧美综合| 亚洲精品色| 蜜桃臀av一区二区| 免费看久久久性性| 91久热| 激情五月天丁香社区| 精彩久久中文| 成人av动漫在线观看| 曰本道人妻久久久在线不卡色视频| 日本高清视频xxxx| 欧美日韩亚洲五月天婷婷| ji熟女.com| 亚洲激情色片| 蜜乳性色无码专日粉嫩骚逼AV| 中文字幕人妻色偷偷久久皮| 中国少妇XXXX做受| 欧美综合 站| 夜间福利片1000无码| 天美传媒av在线| 国产中文字幕曰本毛片| 久久久久久人| 高清不卡一二三区视频......| 日韩在线观看三级电影| 啊啊啊啊啊好大好舒服想要| 青娱乐亚洲自拍| 国产情色第一第二页在线观看| 国产AV毛片| 91成人精品在线播放| 国产丸一视频| 26uuu欧美| 免费AV中文网在线观看| 加勒比AV网| 国产精品一级特黄aaa大片在线观看| 亚洲欧美在线综合| 五月婷久久| 一级性爱视频免费在线| 青青草字幕AV| 亚洲色图在线视频| 五月婷婷六月丁香网址| 青青草原香蕉日本Ap| 99青草| 91精品女厕偷拍视频| 美女上床网站| 中美日韩毛片| 深爱五月婷婷| 国产绿奴视频在线观看| 这里只有精品97| 精品久久久久黄少妇| 亚洲 欧美 手机在线观看| 欧美日韩中文字幕人妻| 新视频sss国产| 日本三级中国三级99人妇网站| 国产极品粉嫩馒头一线天av| 国产精品一二三| 不卡人妻少妇精品毛片一区23区视频| 国内毛片国产专区二| 97干97色| 99re在线视频这里只有精品| 久热久一区二区三区| 手机看片1024你懂的国产| 91天天综合网| 一本色道久久综合狠狠操| 久久国产视频专区一二三| 色综合久| 在线A日本| 一区二区乱码福利| 国产97色在线 | 亚洲| 欧美 日韩 另类 亚洲| 亚洲精品99| 亚洲精品影视老司机| 亚洲国产美女久久久久| 天天伊人| 国产日韩美女小穴视频网站不卡| 久久久久国产| 97久久精品亚洲中六字幕| 99色视频| 97色婷| av天堂精品久久| 国产熟女高潮一区二区三区| 色色色色色色色色综合| 亚洲欧美国产成人综合不卡| 国产91影院| 后入福利| 91天射| 北京专精特新企业招聘信息| 99自拍视频| 国产精品久久久鸭无码的功能| 久久亚洲中文字幕视频| 日韩欧美日韩| 一本一道vs波多野结衣| 亚洲中文字幕在线视频一区二区| 老汉网| 欧美日韩大黄片| 九九操久久国产免费视频| 欲色啪| 国产1727欧美| 97爱碰| 蜜桃一区二区三区| 日韩欧美资源| 老司机午夜福利视频一区二区| 乱码熟妇人妻久久久| 伊人97色天使| 密臀视频一区二区三区| 久久一二三四不卡 | 青娱乐休闲视频在线观看| 啊啊啊啊免费视频| 春色91| 色区97| 搡老女人老91二区| 可免费观看的av毛片中日美韩| 97在线免费观看| 亚洲欧美国产中文视频| 亚洲国产ⅴ高清在线观看| 色在线综合| 日韩少妇在线视频| 岛国精品视频在线观看| 色色激情五月天| 久久亚洲不卡| 超碰1024久久| 肉丝无码中文高清| 操久久久久| 日韩av无码网站| 亚洲国产欧美一区二区潘金莲| 93人人操人人| 亚洲一级特黄大片在线播放91| 国内黄色精品| 午夜影美女日鸡鸡天天视频国产| 91丝袜在线观看| 亚洲成人在线高清| 91丨熟女丨丰满熟女| 开心五月激情网| 日本久久超碰| 亚洲18禁| 麻豆婷婷成人一二三| 中文字幕人妻色偷偷久久皮| 日韩人妻制服丝袜av| 超碰97网站| 夜夜爽妓女| 欧美大香蕉专区网| 日本一级性爱| www.一本大99| 中文字幕黄色一起草| 另类图片欧美激情综合| 久久一级无码精品毛片6| 伊人色综合网| 国产视频第2页| 超碰色综合| 亚洲古典另类欧美在线| 国产13区| 欧美性爱超碰97| 亚洲精品蜜桃久久久一区二区三区| 青娱乐国产精品| 亚洲午夜免费狠狠干| 男人的天堂日本东京热| 激情视频一二三| 亚洲图片欧美色| 亚洲一区二区三区四区视频| 日本午夜福利视频| 啊v在线观看视频| 日本色色色视频| 少妇人妻无码| 国产v亚洲v日韩v欧美v片另类| 中文字幕在线观看二区三区| 成人一区二区三区四区| 欧美一级在线观看成人| 91精品综合久久久久久五月丁香| 九久久精品| 亚洲 日本 国产 综合| 美女露胸露屁股| 男人精品区| 色婷婷导航| 国产精品国产| 中文字幕123| 色www精品视频在线观看| 操国产逼| 日韩精品三区四区| 国产高清亚洲日韩一区| 天美av在线观看| 91蜜桃传媒精品久久久一区二区| 另类小说综合网| 丁香五月色情| 蜜桃无码AV一区二区| 120分钟婬片免费看| 亚洲色图大香| www黄片免费看com| 精品成人av一区二区三区在线| 伊人aaa| 在线色导航| 人人澡人人弄| 九色精品视频导航1| www.AV有限公司一区| 国产一区二区在线播放量| 色女99一级片在线观看| 欧美一级美片在线观看免费| 久久欧洲| 99re公开精品免费视频| 亚洲在钱| 免费亚洲黄色视频在线观看| 国产福利夜| 東南亚性呦成人伦理资源在线视频| 大香蕉综合在线| 美腿色图| 999久久芭蕾| 亚洲精品97| 六月婷婷色综合| 欧美日韩一干二干| 成人影 天天操 亚洲| 操美女高潮抽搐白浆| 色yeye成人免费视频| 久久人体一区二区| 五月天色色网站| 亚洲自拍97| 中文字幕视频2区| 国产视频一区二区三区在线免费观看 | 国产深夜福利| 国产精品视频播放| 91人妻尻屄视频| 精品69网| 91欧美丨精品丨入口| 亚洲欧美激情在线视频| 色吧91| 麻豆成人av| 狠狠干狠狠色| 国产91av在线播放| 久久久九| 亚洲男人天堂网久久| 啪一啪免费视频| 97超碰欧美中文字幕| 诱惑人妻欧美一区在线播放| 最近的最新的中文字幕视频| 伊人国产成人av网站| 九九av| 欧美日韩夜夜| 无码抄逼网| 国产丝袜欧美在线视频| 97亚洲自在精品在线观看| 国产人伦精品一区二区三区| www.av在线观看| 日本性爱视频一级| 精品国产乱码久久久| 天天噜| 超碰伊人在线| 嗯嗯啊啊用力视频免费| 三级三久久线久久99久目本WW| 欧美一级AAAAAAA| 91欧美www| 新视频sss国产| 激情露脸爱| 91久热| 操我无码| 91精品女厕偷拍视频| 啊啊嗯嗯好爽| 精品女同一区二区三区| 日韩欧美偷拍美女视频| 男人下部插入女人下部| 亚洲另类在线观看| 无码伊人久久大杳蕉中文无码| 免费的黄片有限公司| 亚洲精品性爱片| 老妇女91| 丁香婷婷激情五月天无毒不卡 | 亚洲欧美日韩精品久| 人人操 欧美| 起碰97| 超碰2017| 国产熟女无套内射| 欧美熟妇色| 熟女熟妇伦久久影院毛片一区二区| 大香蕉天天看妹子| 久久色激情一区二区三区| 天天日天天爽| 六月丁香网| 99综合网| 性吧在线视频| 亚洲人妻一区二区三区| www五月| 91大学精品激情戏| 激情五月天综合网| 亚洲欧美精品一区天堂久久 | 国产一区二区欧美日本| av无码精品久久久久| 国产一区二区精品久久99| 性爱Av免费| 国产精品久久99日日| 韩国黄片aaaa| 婷婷中文网| 偷窥自拍亚洲天堂网爆| 超碰久热| 天美传媒国产原创中文字幕亚洲欧美另类 | 水澄无码AV| 亚洲青青青视频在线| 人妻精品综合中文字幕在线| 国产怡红院| 久久久久七视频| 欧美综合 站| 亚洲 欧美 日本 国内 首页| 久久久日本电影| 美女久久久| 一本色道久久天天射天天干| 乱伦a片视频| 中文字幕狠狠玩| 精品人妻伦一二三区久久| 亚洲av夫妻操穴网| 欧美午夜色妇色鬼| 天天情欲宗合网| 精品免费囯产一区二区三区| 污色区网站| 青青操综合网| 淫妻综合网| 99国产精品久久久久久久成人热| 欧美人体性爱互联网第一页婷婷日本| 欧美在线伊人色| 综合天天网| 夜夜高潮夜夜爽国产伦精品| 99re这里只有精品9| 久久黄片国产一区二区| 国产三级日产三级韩国三级 | 日日干日日摸| 久久久久久亚洲Av无码精| 性色av蜜臀av色欲aV| 婷婷五月天伊人| 日韩情色AV| 日韩欧美中文字幕搭讪巨乳美人妻视频| 亚洲欧美电影| 人人妻人人狠人人| 日本九九久久99播| 蜜臀99久久精品| 亚欧免费观看视频| 日本午夜久久电影| 亚洲综合图色在线| 78精品| 久久riav中文精品| 97香焦色区| 色一区二区三区综合| 69XX一中文字幕人妻91| 丁香婷婷色五月| 中文字幕AV片| 在线午夜成人无码视频| 午夜免费福利视频一区| 91爰爱欧美| 亚洲精品91| 国产激情av女片自拍| 久久综合女优| 天天看天天日天天操| 蜜乳av首页| 欧美一品道| 日韩在线一区高清在线| 东北女人av| 久夜视频| 91九色首页| 熟女91网| 久久九九国产精品| 国产白丝在线| 青青草在线视频人人想人人上| 久久天堂网| 色婷婷激一区二区三区| 狠综合网| 欧美一区二区日韩三区| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 91亚州日韩高清| 韩日欧亚a级| 国产三级电影免费观看| 加勒比伊人影院| 91人妻尻屄视频| 亚洲精品乱码久久久久久蜜桃麻豆| 午夜福利无毒不卡| 啊好大好舒服| 啊啊啊免费视频| 99久久婷婷| 天干天干天干天天做| 插日本熟女视频| 97伦乱| 久久精品国产亚洲AV无码做| 日本999精品| 亚洲国产精品9999在线观看| 97干色天堂| 国产乱伦视频污| 国产精品对白内射| 久久双插| 国产精品视频播放| 一区二区三区成人高清视频| 97视频www| 在线观看AV片| 国产又长又大又粗的视频| 午夜福利免费福利视频| 久热99999| 一级免费啪啪片| 欧美人妖内射| 欧洲色色| 69视频入口| 精品96久久| hd成人一区二区在线| 欧美色道啊| 91无码中出人妻视频| 国产9区| 国产欧美日韩臀| 黄色小视频日本txt| 天天操天天干美女网址导航| 日本精品一区三区| 豆花视频操逼网址| 久欲AV| 好吊妞转入那个网| 美女操逼A A| 久久久九九| 欧美视频在线第3页| 激情黄色片在线观看| 日日噜噜夜夜久久亚洲一区二区| 亚洲性爱无码乱伦av| 欧美 亚洲 第一页| 大香蕉啪啪啪啪在线| 女人被添高潮免费视频| 偷拍精品一区二区三区| 中文字幕一区二区三四五区日日骚| 亚洲综合另类小说色区亚洲成av人片在www| 午夜福利精品| 老熟女天天操| 亚洲一区二区中文字幕| 人人看人人爰人人操| 欧美综合 站| 亚洲AV永久无码一区仙野| 91精品老女人| a人片中文字幕一区二区| 综合色色婷婷| 91欧美www| 欧美高清91| 午夜欧美J进J出白浆流出久久久| 日韩一性一交一A片俄罗斯| 欧美激情区| 国产精品丝袜久久亚洲不卡| 亚州伊人色综台| 色嗨嗨在线| 岛国爱情动作片在国产AV无码专区亚洲AV漫画| 久久日本熟妇熟色高清| 99爱精品| 欧美专区日本专区| 一级性爱视频免费在线| 大香蕉日韩| 亚精品无码毛片一区二区三区| 欧美拳交在线播放| 九九综合久久| 日本成人A片免费看| 亚洲情色欧美| 91国产丝袜白虎| 九九九九九九九九九九精品视频| 混色激情av| 欧美做爰无码A片视频| h4610国产人妻| 欧美性爱日韩高清| 一区二区三| 97超级久久| 99re综合伊人| 成人黄页| 欧美日韩精品国产91| 欧美第一页性| 午夜天堂精品久久久久91| 国产女生在线| 中文字幕成人理论在线| 777AV电影| 免费av在线播放二区| 日韩欧无码一区二区三区免费不卡| 蜜臀AV一区二区三区| 欧美丰满少妇交换91欧美精品| 欧美中字二区| 超碰 av 女人天堂| 色女99一级片在线观看| 老女人日韩美91| 亚洲91av| 欧美成人9797| 中文字幕老熟妇黄色视频| 另类小说五月天| 日本天天色| 人妻激情偷乱视频一区二区三区 | 久久婷婷亚洲| 日本3级一区二区免费| av日韩在线观看电影| 秋霞蝌科网日本一区| 免费看A片毛毛片在线播| 久操网址| 日本操BAV| 国产在线视视频有精品| 5月婷婷6月六月丁香| 大香蕉丝袜一级片| 成人情色一区二区| 欧美精品另类人妖xxxx| 96AV久久久| 色色综合97| 超碰97久久国| 天美传媒精品久久视频| 老鸭窝成人免费毛片视频| 高清无码人妻久久久一区二区三区aⅴ| 日韩欧美中文字幕搭讪巨乳美人妻视频| 超碰97.com| 99re黄| 91综合网| 精品高清一区二区三区三州| 性爱乱伦网址| 午夜天堂精品久久久久91| 97人妻色| 少妇三P| 色777999综合| 上特色A在线| 伦激情人妻另类人妻| 国产一区二区三区导航| 九九成人视频| 国产精品2020| 亚州Av天美传媒| 东京热综合久久一区二区| 国内毛片欧美香蕉精品| 国产精品激情久久久久久久| 五月天激情婷婷| 亚洲日韩青青草色月| 蜜桃精品一区二区三区久在线| 天天欲望网| 无码动漫av中文字幕| 夜嗨影院| 黄页大片在线观看| 天天综合网~91综合网| 狼人狠干| xxx0国产在线播放| 美女尤物福利视频| 久久美国毛片| 九九九久久久| 一级性爱aaaa| 91亚州欧美| 91制服丝袜| 又大又长又粗又爽又黄| 欧美婷婷| 新视频sss国产| 国产97在线 | 亚洲| 欧美老妇曰批的视频| 发朗少妇买婬全视频中文| 久久超碰98| 欧亚日韩中文在线| 亚洲九月丁香| 色婷婷成人综合| 日本在线999| 日韩欧美国产一区二区三区四区| 蜜臀久久99精品久久久老,,| 另类专区加勒比| 操啊国产| 91xingse| 欧美九九九| 欧美日本国产日韩激情视频| 久艹伊人精品综合在线| 天天干18禁| 色官网在线| 亚洲天堂日本| 人人操,人人插| 亚码激情| 网友自拍第1页| 人、人、摸,人、人、草| 97视频620| 亚洲欧美高清无码| 国产一区96在线| 中文字幕视频二区| 亚洲最大网站av| 国产乱子伦一区二区三区免看| 香蕉欧美| 国产欧美日韩女同性恋ww喷水精品| 欧美综合777| 久久成人午夜精品影院| 夜夜狠狠躁日日躁色视频| 无码欧美有限公司| 男人的天堂99| 国产97色在线| 天天日熟妇| 91强热人妻| 亚洲色图91欧美日韩| 嫩草影院永久在线制服丝袜| 亚洲婷婷综合网| 久操B网| 国产激情视频一区区三区| 国产成人网| 亚洲男人在线观看天堂| 91超级碰碰碰| 欧美熟妇精品黑人巨大91| 天美麻花大全视频| 大茄子熟女AV导航| 亚洲无码99| 欧美96精品在线| 日本天天吊| 精品蜜乳AV免费观看| 人人操天天爽| 国产精品麻豆免费视频| 北条麻妃性愛视频| 人人摸人人添人人操| 九九av| 欧美成人性爱视频大全| 中文字幕熟女人妻丝袜丝| 激情五月综合| 免费国产视频| 亚州精品丝袜-不卡成人免费| 影音先锋每日最新资源在线观看 | 天美传媒AV在线| 嗯嗯,啊啊,国产精品| 玖玖爱在线视频免费观看| 韩国女主播青草在线| 天堂中文日本在线观看| 久热精品在线| 欧美熟爽综合| 草草影院最新网址| 欧美手机在线综合| 屌逼麻豆| 91AV入口| 亚洲涩图欧美| 一区二区日韩欧美久久| 日韩三级在线观看网站| 天天摸天天舔天天操| 丁香五月自拍| 日韩性爱啪啪视频| 学生妹天天看| 清柠毛片| 欧美日韩国产三级黄色| 国语精品av| 91色综合激情| 牛黄色久午久| 天天上日日上日韩精品| 久久人妻无码毛片A片麻豆| www五月| 最新岛国大片| 大香蕉中文201| 欧美久久婷婷| 成人在线日韩| 吖在线不卡一区二区国产剧情| 五月天九九日国产精品一区二区三区| 又黄又爽在线观看视频| 精品人体无圣光凹凸| 美女啊啊啊啊啊| 超碰欧美在线欧美| 久7色| 国产激情在线| 影音先锋每日最新资源在线观看| 久久华人网| 久久精品老司| 一二三区在线| 家庭乱伦网站国产| 日韩特级毛片免费观看全集| 一区超碰一区| 撸撸成人在线视频| 欧美日日网| 啊视频在线| 色色香蕉| 男女做爰猛烈动高潮A片免费应用 少妇厨房愉情理伦片bd在线观看 不卡中文字幕aⅴ在线 | 亚洲四虎熟女精品| 白丝被操91| 97天天| 欧美第五页| 先锋音影AV| 久久免费中文字幕在线观看| 精品久久人妻成人网| 成人一级性爱| 富女玩鸭子一级毛片| 日韩人妻无码不卡网站| 亚洲诱惑天堂 | 26uuu国产亚洲综合| 99999久久精| 久久亚州大香蕉| 91久久久老司机| 91色图片| 中文字幕91综合| 色色色综合网| 国产一区二区三区精品观看啪| 中文字幕久热视频在线| 日韩免费在线观看不卡| 天天噜| 国产精品欧美在线观看| 欧美偷| 中文字幕色AV| 亚洲熟女少妇免费视频| 97网址97| 少妇内射www在线观看视频| 天天香香欲综合| 中文字幕乱碼在线| 日韩AV色图| 少妇六月天| 精彩国产视频播放1区2区| 色呦呦、国产精品| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 久久久久骚| 白嫩嫩一区| 91九九九馒头| 欧美亚男人的天堂| 超碰97资源中文字幕| 欧美性爱第一页久久| 国产三级多多影院2022国产AA一级毛片无码 | 少妇被c 黄 免费观看| 国产9区| 大JI巴好深好爽又大又粗视频| 久久人妻| 日本爽爽爽爽爽爽免费视频| 激情小说图片亚洲首页| 亚洲成aⅴ人片不卡无码| 午夜一级免费毛片| 日日摸夜夜夜夜爽| 精品伊人久久久大香线蕉小说| 亚洲色图欧美视频| 六月丁香啪啪| 亚洲情色婷婷五月天| 亚洲永久AV无码精品秋霞| 日韩精品人妻中文字有码在线 | 中国AV美女|