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

ARTICLE DETAIL

資訊詳情

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

MediaPipe手勢(shì)數(shù)字識(shí)別實(shí)戰(zhàn):關(guān)鍵點(diǎn)特征與分類器構(gòu)建

MediaPipe手勢(shì)數(shù)字識(shí)別實(shí)戰(zhàn):關(guān)鍵點(diǎn)特征與分類器構(gòu)建 簡介基于Python與Mediapipe的手勢(shì)數(shù)字識(shí)別項(xiàng)目源碼是面向計(jì)算機(jī)視覺及機(jī)器學(xué)習(xí)初學(xué)者的完整實(shí)現(xiàn)涵蓋手部追蹤、關(guān)鍵點(diǎn)提取、模型推理與實(shí)時(shí)顯示等環(huán)節(jié)。資源包共3個(gè)文件含兩個(gè)py腳本和一個(gè)md說明文檔一個(gè)腳本將Mediapipe手部關(guān)鍵點(diǎn)檢測(cè)邏輯封裝為可復(fù)用模塊另一個(gè)主程序負(fù)責(zé)啟動(dòng)攝像頭、調(diào)用模型并輸出數(shù)字結(jié)果說明文檔則提供項(xiàng)目介紹、安裝步驟和運(yùn)行指南整體壓縮包僅3KB結(jié)構(gòu)簡潔清晰。已有416人學(xué)習(xí)下載。該項(xiàng)目的學(xué)習(xí)價(jià)值不止于代碼本身還體現(xiàn)在對(duì)Mediapipe框架原理、手部關(guān)鍵點(diǎn)特征工程如關(guān)節(jié)間距、幾何角度以及支持向量機(jī)、隨機(jī)森林或CNN等機(jī)器學(xué)習(xí)模型訓(xùn)練與調(diào)優(yōu)思路的完整梳理。適合用于課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)或快速搭建實(shí)時(shí)手勢(shì)交互演示是一份輕量且可直接運(yùn)行的入門參考。1. 手勢(shì)數(shù)字識(shí)別為什么用 mediapipe 而不是自己訓(xùn)一個(gè)模型很多拿到“python 基于 mediapipe 實(shí)現(xiàn)手勢(shì)數(shù)字識(shí)別機(jī)器學(xué)習(xí)項(xiàng)目源碼.zip”這類壓縮包的同學(xué)第一反應(yīng)是打開里面的模型文件想看看網(wǎng)絡(luò)結(jié)構(gòu)。我的建議正好相反先別碰模型把手部關(guān)鍵點(diǎn)hand landmark這一步吃透。mediapipe 已經(jīng)把“手在哪、關(guān)節(jié)怎么排”這個(gè)最臟最累的活做完了你要解決的其實(shí)是剩下的特征工程和分類決策。這個(gè)標(biāo)題對(duì)應(yīng)的方案核心價(jià)值不在訓(xùn)練一個(gè)多深的神經(jīng)網(wǎng)絡(luò)而是用 python 把開源檢測(cè)模型、數(shù)據(jù)預(yù)處理和輕量分類器串成一個(gè)實(shí)時(shí)可跑的手勢(shì)數(shù)字識(shí)別 demo。它能解決的是攝像頭前伸出一只手實(shí)時(shí)告訴你這是 0 到 9 中的哪個(gè)數(shù)字。適合課程設(shè)計(jì)、自動(dòng)化答辯演示、以及掏出來就能用的個(gè)人小工具。接下來我按拿到源碼后真正要走的流程講先看 mediapipe 到底給了你什么怎么把環(huán)境跑通特征怎么做數(shù)據(jù)怎么采以及最容易被忽略的五個(gè)坑。2. 看源碼前先立住模型認(rèn)知mediapipe 手勢(shì)方案不是黑匣子它有邊界2.1 從 palm detection 到 hand landmark一個(gè)模型解決兩個(gè)問題MediaPipe Hands 不是一個(gè)端到端的“手勢(shì)分類器”它內(nèi)部是一條兩段式管線第一段用 palm detection 在整張圖上找手掌區(qū)域第二段把找到的區(qū)域送進(jìn) hand landmark 模型回歸出 21 個(gè)手部關(guān)鍵點(diǎn)。為什么要拆成兩段因?yàn)槿耸质且粋€(gè)可以在畫面里平移、旋轉(zhuǎn)、遠(yuǎn)近變化的剛性目標(biāo)。直接在全圖上回歸 21 個(gè)點(diǎn)模型要同時(shí)應(yīng)付“找手”和“找關(guān)節(jié)”兩個(gè)任務(wù)精度和速度都吃虧。先定位手掌相當(dāng)于給第二階段一個(gè)準(zhǔn)確的 region proposal后面只需要在裁剪區(qū)域里做回歸難度大幅下降速度也更快。另一個(gè)值得注意的點(diǎn)在視頻流里palm detection 并不是每幀都跑。mediapipe 會(huì)先做一次檢測(cè)之后每幀用 hand landmark 模型跟蹤關(guān)鍵點(diǎn)只有跟蹤丟了才重新檢測(cè)。這個(gè)機(jī)制直接決定了源碼里static_image_mode參數(shù)怎么設(shè)置也決定了為什么手短暫出畫再回來畫面還能接得上。所以拿到源碼先別急著跑找到Hands(...)的初始化位置看看傳入的是static_image_modeTrue還是False。前者適合單張圖片后者適合視頻流選錯(cuò)模式會(huì)帶來兩種完全不同的體驗(yàn)圖片模式每幀都做全圖檢測(cè)視頻里就會(huì)明顯變卡視頻模式拿靜態(tài)圖一張張喂反而會(huì)因?yàn)槿鄙龠B續(xù)幀信息而丟手。2.2 為什么只回傳 21 個(gè)關(guān)鍵點(diǎn)數(shù)據(jù)簡化才是它適合輕量落地的本質(zhì)21 個(gè)關(guān)鍵點(diǎn)意味著什么一只手從自由度極高的連續(xù)曲面被壓成了 21 個(gè)離散錨點(diǎn)。每個(gè)點(diǎn)帶 x、y、z 三個(gè)值x 和 y 是相對(duì)圖像寬高的歸一化坐標(biāo)范圍在 0 到 1 之間z 是相對(duì)腕關(guān)節(jié)的深度不是真實(shí)相機(jī)距離而且不同手型下量級(jí)差異很大。這里建議先熟悉一張索引表后面做特征工程全靠它手指指尖點(diǎn)索引根部參考點(diǎn)拇指42 / 1食指85中指129無名指1613小指2017寫一段最基礎(chǔ)的代碼把當(dāng)前幀的 21 個(gè)點(diǎn)打印出來確認(rèn)拿到的數(shù)據(jù)長什么樣import mediapipe as mp hands mp.solutions.hands.Hands( static_image_modeFalse, # 視頻流場(chǎng)景必須用 False會(huì)復(fù)用上一幀跟蹤結(jié)果加速 max_num_hands1, # 先只識(shí)別一只手減少耗時(shí) min_detection_confidence0.5, min_tracking_confidence0.5, ) def print_landmarks(image_rgb): results hands.process(image_rgb) if not results.multi_hand_landmarks: print(no hand) return for lm in results.multi_hand_landmarks[0].landmark: print(round(lm.x, 4), round(lm.y, 4), round(lm.z, 4))這段代碼的邏輯很簡單傳入一幀 RGB 圖像mediapipe 返回手部關(guān)鍵點(diǎn)列表每個(gè)點(diǎn)分別是 x、y、z。注意lm.x和lm.y不是像素坐標(biāo)而是歸一化坐標(biāo)后續(xù)要轉(zhuǎn)回像素必須乘當(dāng)前幀的寬和高很多新手就是栽在這里畫出來的點(diǎn)全擠在畫面左上角。數(shù)據(jù)簡化到這種程度最大的收益是后續(xù)機(jī)器學(xué)習(xí)建模變得非常輕。你不用處理紋理、光照、背景這些對(duì) CNN 影響巨大的因素只需要在 63 維坐標(biāo)上做文章。這也是為什么這類源碼里幾乎不會(huì)真的訓(xùn)練一個(gè)深度網(wǎng)絡(luò)邏輯回歸、隨機(jī)森林甚至簡單規(guī)則就夠了。2.3 數(shù)字識(shí)別不靠端到端規(guī)則、經(jīng)典分類器與特征表達(dá)的取舍明確了輸入是 21 個(gè)關(guān)鍵點(diǎn)之后下一個(gè)問題是怎么從關(guān)鍵點(diǎn)得到“這是數(shù)字幾”。常見做法有三類源碼包里大概率是其中一種方案代碼量新動(dòng)作擴(kuò)展性適用場(chǎng)景純規(guī)則閾值少幾十行差每個(gè)數(shù)字要單獨(dú)定規(guī)則只識(shí)別 0 到 5實(shí)時(shí)性要求極高邏輯回歸 / 隨機(jī)森林中特征提取加訓(xùn)練中換數(shù)字需重新采數(shù)據(jù)固定數(shù)字集合本標(biāo)題場(chǎng)景端到端 CNN大需要大量標(biāo)注數(shù)據(jù)好但成本太高關(guān)鍵點(diǎn)檢測(cè)不可靠的復(fù)雜場(chǎng)景我自己的選擇是第二種。純規(guī)則看起來簡單但真實(shí)攝像頭下手指彎曲程度千奇百怪一個(gè)閾值很難覆蓋不同手型和遠(yuǎn)近端到端 CNN 在這個(gè)任務(wù)里屬于殺雞用牛刀而且數(shù)據(jù)量根本喂不飽。邏輯回歸配合好的特征在這個(gè)任務(wù)上精度已經(jīng)完全夠用。真正拉開效果差距的是特征工程怎么做。原始坐標(biāo)直接丟給分類器也能跑但手在畫面里的位置一動(dòng)、離攝像頭遠(yuǎn)近一變坐標(biāo)整體就變了分類器就會(huì)犯迷糊。所以下一步必須做歸一化和角度特征這也是整個(gè)源碼里最值得細(xì)讀的部分。3. 把源碼跑起來環(huán)境搭建、推理腳本與數(shù)據(jù)流這四件事先做對(duì)3.1 先從 zip 里的源碼倒推 dependencies用 uv 還是 pip 安裝解壓源碼包之后第一步是看目錄結(jié)構(gòu)。通常能看到main.py、train.py、data/、models/這類常見布局。如果壓縮包里帶了requirements.txt直接用 pip 安裝如果沒帶pip 安裝這四件套基本能覆蓋絕大多數(shù)情況unzip 一個(gè)python基于mediapipe實(shí)現(xiàn)手勢(shì)數(shù)字識(shí)別機(jī)器學(xué)習(xí)項(xiàng)目源碼.zip -d hand_digits cd hand_digits # 創(chuàng)建虛擬環(huán)境避免污染系統(tǒng) Python python -m venv .venv source .venv/bin/activate # Windows 用 .venv\Scripts\activate pip install --upgrade pip pip install mediapipe opencv-python numpy scikit-learn為什么專門用虛擬環(huán)境因?yàn)?mediapipe 對(duì) numpy、opencv 的版本比較挑系統(tǒng)里如果已經(jīng)裝了別的版本很可能出現(xiàn)module has no attribute這類讓人摸不著頭腦的錯(cuò)誤。虛擬環(huán)境相當(dāng)于給這個(gè)項(xiàng)目一個(gè)后悔藥裝壞了直接刪掉重建不影響其他工作。如果你用的 Python 版本很新比如 3.12 以上安裝 mediapipe 時(shí)可能會(huì)找不到對(duì)應(yīng) wheel。這是常見的翻車點(diǎn)我一般會(huì)先降到 3.9 或 3.10等所有依賴裝好了再考慮升級(jí)。這一步不做后面每跑一步都要和依賴搏斗非常影響心情。3.2 最小推理腳本讀攝像頭、取手部關(guān)鍵點(diǎn)、打印坐標(biāo)裝好依賴后先不要碰源碼里的業(yè)務(wù)邏輯自己寫一個(gè)最小腳本驗(yàn)證 whole pipeline 是通的。下面這段代碼能打開攝像頭、檢測(cè)手、畫關(guān)鍵點(diǎn)是整個(gè)項(xiàng)目能跑起來的最小閉環(huán)import cv2 import mediapipe as mp mp_hands mp.solutions.hands mp_draw mp.solutions.drawing_utils hands mp_hands.Hands( static_image_modeFalse, max_num_hands1, min_detection_confidence0.5, min_tracking_confidence0.5, ) cap cv2.VideoCapture(0) while cap.isOpened(): ok, frame cap.read() if not ok: break # 鏡面翻轉(zhuǎn)讓畫面方向和屏幕一致 frame cv2.flip(frame, 1) rgb cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) results hands.process(rgb) if results.multi_hand_landmarks: for hand in results.multi_hand_landmarks: # 歸一化坐標(biāo)轉(zhuǎn)回像素坐標(biāo)用于繪圖 h, w, _ frame.shape for idx, lm in enumerate(hand.landmark): cx, cy int(lm.x * w), int(lm.y * h) cv2.circle(frame, (cx, cy), 3, (0, 255, 0), -1) mp_draw.draw_landmarks(frame, hand, mp_hands.HAND_CONNECTIONS) cv2.imshow(hand tracking, frame) if cv2.waitKey(1) 0xFF ord(q): break cap.release() cv2.destroyAllWindows()這段代碼里有兩個(gè)參數(shù)值得專研。第一個(gè)是min_detection_confidence當(dāng)手部檢測(cè)置信度低于 0.5 時(shí)就認(rèn)為沒有手調(diào)大能減少誤檢但會(huì)丟手第二個(gè)是min_tracking_confidence控制跟蹤階段的閾值調(diào)得太高手離開畫面后很難快速找回。后續(xù)做數(shù)字識(shí)別時(shí)這兩個(gè)參數(shù)幾乎是必調(diào)的但它們之間沒有絕對(duì)最優(yōu)解得配合你的攝像頭環(huán)境。另一個(gè)關(guān)鍵是cv2.flip(frame, 1)。攝像頭出來的畫面默認(rèn)是鏡像的如果不翻轉(zhuǎn)你伸出左手屏幕里看到的卻是右手后面做左右手判定或者畫坐標(biāo)系時(shí)很容易被繞進(jìn)去。3.3 特征工程一靜態(tài)數(shù)字用歸一化坐標(biāo)別用原始像素跑通了攝像頭下一步就是把 landmark 變成能喂給分類器的特征。你可能會(huì)問機(jī)器學(xué)習(xí)中的數(shù)據(jù)處理是什么這段就是答案不是洗數(shù)據(jù)而是把坐標(biāo)換到不隨手的位置、大小變化的參考系。手在畫面里忽左忽右、忽遠(yuǎn)忽近原始像素坐標(biāo)的絕對(duì)數(shù)值變化巨大分類器會(huì)把這些變化當(dāng)作有效信息去學(xué)習(xí)結(jié)果就是同一只手換個(gè)位置就識(shí)別錯(cuò)。標(biāo)準(zhǔn)做法是以腕關(guān)節(jié)作為原點(diǎn)做相對(duì)歸一化import numpy as np def normalize_by_wrist(landmarks): # landmarks: 21 個(gè)關(guān)鍵點(diǎn)每個(gè)點(diǎn)帶 x, y, z pts np.array([[lm.x, lm.y, lm.z] for lm in landmarks]) wrist pts[0] # 0 號(hào)點(diǎn)是腕關(guān)節(jié) pts pts - wrist # 以腕關(guān)節(jié)為原點(diǎn) scale np.max(np.linalg.norm(pts, axis1)) 1e-6 pts pts / scale # 尺度歸一化抵消手離攝像頭遠(yuǎn)近的影響 return pts.flatten() # 轉(zhuǎn)成 63 維向量這里用np.linalg.norm算每個(gè)點(diǎn)到腕關(guān)節(jié)的距離取最大值作為尺度因子。這樣做的好處是手靠近攝像頭時(shí)整體坐標(biāo)變大除以這個(gè)尺度后又被拉回來分類器看到的特征相對(duì)穩(wěn)定。1e-6是防分母為零的保險(xiǎn)鏡頭前沒手時(shí)不會(huì)調(diào)用這個(gè)函數(shù)但萬一某幀坐標(biāo)全為 0不至于直接除零崩潰。注意一個(gè)邊界這個(gè)歸一化假設(shè)手腕是整只手的固定點(diǎn)。實(shí)際做數(shù)字手勢(shì)時(shí)手腕確實(shí)不怎么動(dòng)但如果你想識(shí)別包含手腕大幅度旋轉(zhuǎn)的動(dòng)作這個(gè)方案就不夠用了得換更復(fù)雜的對(duì)齊方式。3.4 特征工程二指尖夾角與幾何特征解決“比個(gè)耶”被誤判只做坐標(biāo)歸一化還不夠。數(shù)字 1 和 2 的手型非常接近一個(gè)只伸食指一個(gè)伸出食指和中指兩者原始坐標(biāo)的歐氏距離很小分類器很容易混淆。真正有區(qū)分度的特征是指尖夾角——用“指尖、中間關(guān)節(jié)、指根”三個(gè)點(diǎn)算出一個(gè)角度判斷手指伸得直不直。import math def angle_between(a, b, c): 計(jì)算以 b 為頂點(diǎn)向量 ba 和 bc 的夾角單位度 v1 (a[0] - b[0], a[1] - b[1]) v2 (c[0] - b[0], c[1] - b[1]) dot v1[0] * v2[0] v1[1] * v2[1] norm1 math.hypot(v1[0], v1[1]) norm2 math.hypot(v2[0], v2[1]) if norm1 0 or norm2 0: return 0.0 cos_theta max(-1.0, min(1.0, dot / (norm1 * norm2))) return math.degrees(math.acos(cos_theta))邏輯就是向量點(diǎn)積求余弦再轉(zhuǎn)角度。用中指舉例點(diǎn) 12 是指尖點(diǎn) 10 是中間關(guān)節(jié)點(diǎn) 9 是指根三點(diǎn)夾角越接近 180 度說明這根手指伸得越直越接近 90 度甚至更小說明手指是彎的。在實(shí)際特征拼接時(shí)我會(huì)對(duì)五根手指各取一組角度拇指用 4-2-1食指用 8-6-5中指用 12-10-9無名指用 16-14-13小指用 20-18-17得到 5 個(gè)角度值直接追加到歸一化坐標(biāo)后面。這樣特征從 63 維變成 68 維分類器區(qū)分 1 和 2、2 和 3 這類相近數(shù)字的能力會(huì)明顯提升。4. 讓數(shù)字識(shí)別從“能動(dòng)”到“可用”訓(xùn)練數(shù)據(jù)、后處理與實(shí)時(shí)性調(diào)優(yōu)4.1 自己錄一遍數(shù)據(jù)為什么通用手勢(shì)數(shù)據(jù)救不了你的攝像頭先回到機(jī)器學(xué)習(xí)應(yīng)用流程的第一環(huán)數(shù)據(jù)。有人會(huì)想既然 mediapipe 輸出的是抽象關(guān)鍵點(diǎn)那用公開手勢(shì)數(shù)據(jù)集訓(xùn)練不就行了理論上可以但實(shí)際效果往往很差。公開數(shù)據(jù)集里的攝像頭角度、手大小比例、光照和你本機(jī)完全不一致關(guān)鍵點(diǎn)坐標(biāo)分布也差很遠(yuǎn)。我見過太多人拿開源數(shù)據(jù)集訓(xùn)練指標(biāo)很漂亮一接自己攝像頭就翻車的情況。通用做法是自己花十分鐘錄一份數(shù)據(jù)。腳本不需要多復(fù)雜核心是讓每個(gè)數(shù)字都有足夠的樣本并且手部有輕微移動(dòng)、旋轉(zhuǎn)import cv2 import numpy as np label int(input(輸入當(dāng)前手勢(shì)數(shù)字0-9按回車開始采集)) features [] while len(features) 120: ok, frame cap.read() if not ok: continue frame cv2.flip(frame, 1) rgb cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) results hands.process(rgb) if results.multi_hand_landmarks: lm results.multi_hand_landmarks[0].landmark feat normalize_by_wrist(lm) # 3.3 節(jié)的坐標(biāo)歸一化 angle_feat extract_angles(lm) # 3.4 節(jié)的角度特征 features.append(np.hstack([feat, angle_feat])) print(f已采集 {len(features)} / 120) cv2.imshow(collect, frame) if cv2.waitKey(1) 0xFF ord(q): break np.save(fdata/{label}.npy, np.array(features))采集時(shí)注意控制數(shù)據(jù)質(zhì)量不要對(duì)著攝像頭一動(dòng)不動(dòng)那樣錄進(jìn)去的 120 幀幾乎是一模一樣的重復(fù)樣本模型學(xué)不到任何變化。正確做法是讓手輕微左右翻轉(zhuǎn)、前后移動(dòng)一點(diǎn)模擬真實(shí)使用時(shí)的狀態(tài)。每個(gè)數(shù)字 120 幀是我個(gè)人比較推薦的起點(diǎn)太少容易過擬合太多采集過程會(huì)讓人失去耐心。4.2 數(shù)據(jù)增強(qiáng)與類別均衡輕微旋轉(zhuǎn)、平移和縮放就夠了如果你的某個(gè)數(shù)字只采了五六十幀或者發(fā)現(xiàn)不同類別的樣本量差距很大可以在坐標(biāo)層面做增強(qiáng)。坐標(biāo)增強(qiáng)比圖像增強(qiáng)便宜得多不需要過 GPU直接在 numpy 數(shù)組上做變換就行def augment(points, rot0.1, shift0.02, scale_range(0.9, 1.1)): # points: (63,) 或 (68,) 的向量先還原成 (21, 3) 再做幾何變換 p points.reshape(21, 3).copy() # 繞 z 軸小角度旋轉(zhuǎn)模擬手腕轉(zhuǎn)動(dòng) theta np.random.uniform(-rot, rot) R np.array([[np.cos(theta), -np.sin(theta)], [np.sin(theta), np.cos(theta)]]) p[:, :2] p[:, :2] R.T # 輕微平移模擬手在畫面中位置變化 p[:, :2] np.random.uniform(-shift, shift, size2) # 隨機(jī)縮放模擬手離攝像頭遠(yuǎn)近變化 scale np.random.uniform(*scale_range) p * scale return p.flatten()參數(shù)選擇上旋轉(zhuǎn)幅度不要超過 0.1 弧度大概 6 度左右因?yàn)檎H俗鰯?shù)字手勢(shì)時(shí)手腕不會(huì)扭得特別夸張平移 0.02 對(duì)應(yīng)畫面寬度的 2%已經(jīng)能覆蓋日常位置抖動(dòng)縮放范圍 0.9 到 1.1相當(dāng)于手在攝像頭前不超過 10% 的距離變化。必須提醒一句坐標(biāo)增強(qiáng)做的是小擾動(dòng)不是把樣本變魔術(shù)。旋轉(zhuǎn) 30 度、平移半個(gè)畫面出來的樣本根本不符合真實(shí)手勢(shì)分布反而會(huì)把模型訓(xùn)壞。這步調(diào)參多少有點(diǎn)玄學(xué)但核心原則是“增強(qiáng)后的樣本仍然像一個(gè)真人在攝像頭前做手勢(shì)”。4.3 推理延遲的三個(gè)瓶頸模型載入、圖像縮放、每幀處理實(shí)時(shí)數(shù)字識(shí)別最怕的就是畫面卡頓。很多源碼 demo 跑起來只有十幾幀問題往往不在 mediapipe 模型本身而在數(shù)據(jù)流鏈路。第一個(gè)瓶頸是圖像分辨率。如果你的攝像頭默認(rèn)輸出 1080p每一幀要處理約 200 萬像素即使 mediapipe 內(nèi)部會(huì)縮放前處理開銷依然很大。常規(guī)做法是先resize到 640x480 再送入模型。第二個(gè)瓶頸是逐幀推理其實(shí)手勢(shì)在連續(xù)兩幀之間變化極小完全可以通過跳幀把推理頻率降下來。第三個(gè)瓶頸是顯示鏈路cv2.imshow本身在高分辨率下也會(huì)拖慢主循環(huán)。frame cv2.resize(frame, (640, 480)) frame_count 1 if frame_count % 2 0: # 偶數(shù)幀不做推理直接沿用上一幀的關(guān)鍵點(diǎn)結(jié)果 results last_results else: results hands.process(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)) last_results results跳幀相當(dāng)于在延遲和平滑度之間做權(quán)衡。30fps 的視頻流下跳一幀引入的延遲大約 33 毫秒體感上基本無感但推理負(fù)載直接減半。如果跳幀后跟蹤容易丟可以把min_tracking_confidence適當(dāng)調(diào)高讓模型更依賴上一幀的幾何信息去接續(xù)。4.4 訓(xùn)練腳本與混淆矩陣認(rèn)真看哪些數(shù)字在互相打架數(shù)據(jù)采集和增強(qiáng)做完就可以訓(xùn)練分類器了。我用 Logistic Regression 而不是隨機(jī)森林因?yàn)檫壿嫽貧w的決策邊界更平滑在特征維度不高時(shí)不容易過擬合而且訓(xùn)練和推理都快。核心代碼from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.metrics import confusion_matrix # load_all_data 負(fù)責(zé)讀取 data/ 下所有 npy 文件返回特征矩陣和標(biāo)簽 X, y load_all_data(data) X_train, X_val, y_train, y_val train_test_split( X, y, test_size0.2, random_state42, stratifyy ) scaler StandardScaler().fit(X_train) X_train_scaled scaler.transform(X_train) X_val_scaled scaler.transform(X_val) clf LogisticRegression(max_iter500, C1.0) clf.fit(X_train_scaled, y_train) print(confusion_matrix(y_val, clf.predict(X_val_scaled)))邏輯說明StandardScaler把特征縮放到零均值單位方差邏輯回歸對(duì)特征尺度敏感這步不能省。stratifyy保證訓(xùn)練集和驗(yàn)證集的類別比例一致避免某個(gè)數(shù)字在驗(yàn)證集里恰好沒有樣本。C1.0是正則化強(qiáng)度的默認(rèn)值過擬合時(shí)調(diào)小欠擬合時(shí)調(diào)大?;煜仃嚨膬r(jià)值在于告訴你哪些數(shù)字在互打架。如果 3 和 8 頻繁互判說明這兩個(gè)手型的角度特征太接近這時(shí)候該做的不是盲目堆數(shù)據(jù)而是回去檢查特征設(shè)計(jì)如果 1 和 2 互判先確認(rèn)是否加了指尖角度特征只靠坐標(biāo)歸一化很難分開它們。5. 避坑與常見問題排查mediapipe 手勢(shì)識(shí)別最容易翻車的五個(gè)地方5.1 現(xiàn)象攝像頭能開但沒畫上手部連線攝像頭畫面正常但 imgshow 里始終沒有手部關(guān)鍵點(diǎn)連線或者畫出來的點(diǎn)全堆在畫面邊緣。原因最常見的是沒有做 BGR 到 RGB 的轉(zhuǎn)換。mediapipe 的Hands.process()要求輸入 RGB 圖像而 OpenCV 讀取視頻幀得到的是 BGR直接把 BGR 矩陣送進(jìn)去模型看到的顏色通道是反的關(guān)鍵點(diǎn)定位自然失敗。另一個(gè)原因是顯示用錯(cuò)了圖像你把轉(zhuǎn)換后的 RGB 圖像直接imshow顏色會(huì)整體偏藍(lán)。解決先打印results.multi_hand_landmarks如果一直是 None檢查cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)是否執(zhí)行然后確認(rèn)展示時(shí)用的是原始frameBGR而不是轉(zhuǎn)換后的rgb。mediapipe 只管推理不管顯示很多源碼在這兩行之間切換時(shí)搞混了。5.2 現(xiàn)象數(shù)字 1 和 2 頻繁互判怎么調(diào)都?jí)翰幌氯プR(shí)別結(jié)果在 1 和 2 之間來回跳尤其是手指微微彎曲時(shí)模型一會(huì)兒判成 1一會(huì)兒判成 2。原因手型太接近了。只伸食指和同時(shí)伸出食指、中指兩者在歸一化坐標(biāo)上的差異很小。如果只用了 63 維坐標(biāo)特征分類器很難找到一個(gè)穩(wěn)定的決策邊界。解決把指尖夾角特征加上用食指和中指的伸直程度作為區(qū)分依據(jù)。還可以在訓(xùn)練數(shù)據(jù)里專門加入一些“手指半彎”的樣本讓模型知道 1 和 2 的邊界在哪里。這里不建議直接調(diào)邏輯回歸的C值問題出在特征空間不是分類器復(fù)雜度。5.3 現(xiàn)象手一靠近攝像頭就亂跳手離攝像頭越近關(guān)鍵點(diǎn)位置就越不穩(wěn)定識(shí)別結(jié)果在幾個(gè)數(shù)字之間跳來跳去根本沒法用。原因手靠近時(shí)手掌在畫面里占的面積過大部分手指可能超出畫面邊緣landmark 模型只能靠猜測(cè)補(bǔ)全缺失關(guān)鍵點(diǎn)。同時(shí)近景下同一個(gè)關(guān)鍵點(diǎn)在相鄰幀之間的像素位移被放大任何微小抖動(dòng)都會(huì)被模型放大。解決把min_detection_confidence和min_tracking_confidence同時(shí)提到 0.6 到 0.7讓模型在置信度不夠時(shí)直接不輸出結(jié)果而不是硬給一個(gè)錯(cuò)誤預(yù)測(cè)。再加一層指數(shù)平滑讓關(guān)鍵點(diǎn)坐標(biāo)不會(huì)因?yàn)閱螏`差劇烈跳變smoothed smoothed * 0.7 current_point * 0.3平滑系數(shù) 0.7 表示更信任歷史值0.3 表示接受當(dāng)前值。系數(shù)越大越平滑但延遲越高實(shí)時(shí)場(chǎng)景里 0.7/0.3 是一個(gè)比較平衡的起點(diǎn)。這本質(zhì)上是拿延遲換平滑不可能完全消除代價(jià)。5.4 現(xiàn)象CPU 占用拉滿風(fēng)扇狂轉(zhuǎn)攝像頭一開CPU 占用率直接到 100%畫面幀率卻只有十幾幀。原因攝像頭默認(rèn)輸出 1080p每一幀都在全分辨率上跑推理。很多人忽略了resize覺得反正 mediapipe 內(nèi)部會(huì)處理但前處理的開銷是實(shí)打?qū)嵉?。再加上顯示窗口和主循環(huán)在同一線程加載一旦跟不上就開始掉幀。解決先resize到 640x480 再送process()這一步能省掉一大半計(jì)算量然后按 4.3 節(jié)的思路做跳幀如果還是不夠把推理單獨(dú)丟到一個(gè)線程里跑主線程只負(fù)責(zé)顯示結(jié)果。線程方案寫起來麻煩一點(diǎn)但這是樹莓派這類低功耗設(shè)備上能不能跑起來的決定性因素。5.5 現(xiàn)象模型自己玩得轉(zhuǎn)一換電腦就出錯(cuò)同一個(gè)項(xiàng)目在自己電腦上跑得好好的換一臺(tái)電腦裝完依賴就報(bào)錯(cuò)比如 numpy 版本沖突、cv2 屬性找不到。原因依賴沒有被鎖定。源碼包里只寫了pip install mediapipe沒鎖版本換電腦時(shí)裝到的是最新版而最新版往往和舊代碼不兼容。mediapipe 版本一升API 參數(shù)名變了opencv 版本一升某些圖像處理函數(shù)的返回值類型變了。解決把requirements.txt中每個(gè)包的版本寫死比如mediapipe0.10.x、numpy1.24.x。這個(gè)操作看起來不起眼但能避免你花半天時(shí)間排查一個(gè)根本不是自己代碼的問題。我一般還會(huì)在項(xiàng)目根目錄放一個(gè)setup_env.sh把建環(huán)境、裝依賴、驗(yàn)證攝像頭三步都寫進(jìn)去換機(jī)器后一鍵執(zhí)行。6. 最后一層包裝把單幀識(shí)別結(jié)果變成時(shí)間序列輸出單幀分類的結(jié)果出現(xiàn)偶發(fā)抖動(dòng)是靠調(diào)參消不掉的因?yàn)閿z像頭輸入本身有噪聲手再穩(wěn)也會(huì)有微米級(jí)的位移。與其和每一幀死磕不如換一個(gè)思路把“當(dāng)前顯示什么數(shù)字”當(dāng)成一個(gè)時(shí)間序列問題用滑動(dòng)窗口做多數(shù)表決。from collections import deque class VoteFilter: def __init__(self, window_size5): self.window deque(maxlenwindow_size) def push(self, pred): self.window.append(pred) # 返回窗口內(nèi)出現(xiàn)次數(shù)最多的類別 return max(set(self.window), keyself.window.count)用法很直接每一幀模型輸出一個(gè)預(yù)測(cè)結(jié)果不是立刻顯示而是先塞進(jìn)這個(gè)隊(duì)列然后取隊(duì)列里出現(xiàn)次數(shù)最多的數(shù)字當(dāng)作最終輸出。窗口大小 5 時(shí)大約引入 5 幀的延遲按 30fps 算不到 200 毫秒體感上可以接受如果你發(fā)現(xiàn)抖動(dòng)還是很明顯就把窗口加到 9代價(jià)是延遲接近 300 毫秒按下和出結(jié)果之間有明顯的遲鈍感。我還習(xí)慣讓這個(gè)過濾器額外承擔(dān)一個(gè)任務(wù)把手離開畫面時(shí)輸出一個(gè)特殊值而不是沿用上一個(gè)數(shù)字。否則手剛離開攝像頭分類器可能還會(huì)給出一個(gè)置信度很低的隨機(jī)預(yù)測(cè)再加上投票窗口的滯后作用屏幕上會(huì)停留一個(gè)明顯錯(cuò)誤的結(jié)果。我最早做手勢(shì)識(shí)別時(shí)被單幀忽大忽小的分類結(jié)果坑了很多次后來養(yǎng)成一個(gè)習(xí)慣先把單幀識(shí)別當(dāng)成一個(gè)信號(hào)再交給時(shí)間維度去糾偏。這個(gè)習(xí)慣改變的不只是識(shí)別率更是排查問題的思路——當(dāng)你不再糾結(jié)每一幀的對(duì)錯(cuò)而是看一段時(shí)間的輸出是否一致很多問題會(huì)自己浮出來。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99久久婷婷国产综合| 婷婷另类小说| 美女国产一区二区久久| 97色插| 91热热色| 把腿张开老子CAO烂你| 99热超碰| 国产白丝av| 99热网站| 欧美色图综合| ss久久| 免费在线看黄片av| 桃花色涩综合影院| a啊啊啊啊啊啊啊啊一区二区| 欧美日产国产在线成人第一区| 欧美日韩色图片| nuu12国产麻豆精品| 精品人妻av在线播放| 超碰精品| 秋霞久久亚洲精品成人| 91精品国产长腿丝袜美女| 性在久久久久久| 九九九久久久久| 国产高清视频无码在线| 国产成人精品午夜福利| 亚欧Av| 蜜臀Av一区二区三区| 国内精品久久久久影院亚洲| 五月丁香狠狠爱| 久久久免费高清中文视频| 国产精品婬乱一级毛片彝族| 久久一二三四五六七八九区| 精品久久視頻在线| 亚洲AV性爱电影| 精品美女人人干| 97天堂| 久久高潮妇女视频| 少妇内射视频| 久久黄色网址| 97人妻免费中文字幕| 无码操逼天堂| 亚洲91少妇| 性videos欧美熟妇hdx| 国模不卡一本二本三电影| 日韩色| 九九热国产| 日韩欧美麻豆大片| 久久精品欧美一区二区三区不卡| 欧美色色色| 国产无套粉嫩白浆在| 亚洲操逼视频网站| 国模少妇一区二区三区| 欧美日韩性爱操大逼| 情色图区| 污污污8888| 国产成人bd在线观看| 亚洲色性| 性性久久| 亚州宗合另类| 日本色色色视频| 欧美亚洲激情| 亚洲网污污污污| 日韩AV一起草| 亚洲伊人久久综合97| 99国产精品免费| 人人操人人大香蕉| 熟妇xxxxx性春色| 色网亚洲人| 性生活久久久久久久久久| 亚欧高清在线| AA级电影三区| 久久专区| 欧美亚洲91| 在线观看视频91| 日本三级日本三级99| 在线视频97| 超碰 欧美| 神马久久啊啊| 97 国产一区| 天堂种子在线www网资源| 日本三级一区二区 在线| 超碰成人人人爽人人爽| 日韩99999| 神马影院午夜福利久久久| 曰韩欧美国产传媒麻豆第一区| 亚洲超碰AV| 国产家庭乱伦性爱视频| 中文字幕国产| 久草国产在线视频| 婷婷五月激情综合| 另类一区| 综合欧美日韩在线观看| se吧提供国产乱老熟视频胖女人| 亚洲欧美首页| 传媒在线观看一区二区三区| 国产熟女一区二区| 抽插亚洲无码| 91中文字幕在线观看| 东北女人操比视频| 男人的天堂VA在线| 欧美韩国你懂得在线 | 天天躁日日躁狠狠狠躁| 午夜经典| 日韩肏逼视频| 久久伊人亚洲AV无码网站 | 91欧美丝袜| 欧美夜夜骑视频| 亚91亚洲网| 高清不卡国产| 精品v1区| 最新中文字幕av| 伊人伊人LD| 精品96久久| 骚乳在线| 久久99精品国产| 色诱avtt| 熟女AV一区| 国产精品人妻免费精品| 黄色视频高清无码网站| 思思热在线视频在线| 婷婷久久五月综合激情| 日本人妻伦在线中文字幕| 97干色| 啊啊啊好想要| 日本成人A片免费看| 精品一区二区综合熟妇| 色情乱伦AV| 亚洲精品第一| 丁香五月大香蕉| 67914亚洲精品| 91人妻超碰| 九九久久一区二区三区| 久久机热| 乱伦熟妇一区二区| 色在线亚洲视频www| 99色热国产视频精品| 日本色色的视频| 天天做天天爱天天高潮| 神马久久网| 999 久久久| 51一区二区三区| 欧美天天射| 尤物黄色在线观看网站| 婷婷色综合| 亚洲中文字幕有码视频一区二区三区| 9久久美女首页| 精品国产乱码久久久影院| 97免费在线观看| 日韩欧美午夜一区二区| 丁香六月综合激情| 使劲用力艹少妇视频一区二区| 麻豆传媒一区二区在线观看| 97天天操天天干| 破处bbq| 国产剧情在线| 五月综合婷婷久久网站| 91在线美女| 后入福利视频| 国产h小视频在线观看免费| 日韩免费三级黄片电影| 国产精品情侣啪啪| 国产丝袜一区二区三区| 亚洲熟女诱惑| 最新中文字幕在线亚洲| 久久发布国产伦子伦精品| 欧美,亚洲,日韩,v,天堂,手机在线观看| 中文三一区| 国产在线强奸视频| 亚洲色图激情小说| 亚洲欧美在线丝袜| 日本一区二区亚洲综合| 尤物一级在线免费观看| 蜜桃精品视频一区| 97干在线| 私色综合网| 国产精品久久久久久9999| 日韩无码极品| 五月天综合网| 玖玖综合视频| 美国aaaaa一级黄片| 超碰97网址| 91天天| 亚洲丝袜少妇在线| 国产精品青草综合久久| 毛片麻豆91糖心精品毛情片| 久久亚州精品成人Av无| 澳门成人网站久国产日韩| 怡春院久久| 中文字幕一区二区韩| 大香蕉十区| av天堂电影网| 九九热男人天堂| 人人澡人人干| 97 亚洲 日韩 欧美 在线| 中文字幕欧美精品亚洲日韩蜜臀| A片 AV一级在线播放观看免费| 九九久久99| 日产欧美电影一区二区三区| 日本丝袜美腿人妻九九| 国产精品日本无码A片| 蜜臀av在线播放一区二区三区| 97操97干| 久久极品一区二区| 另类天堂| 殴美综合色88| 久久黄色性爱视频| 日韩特一级久久| 岛国成人av在线播放网址| 91激情综合| 欧洲一级性爱视频在线观看| 精品无码少妇| 蜜桃久久综合视频| 日韩中文字幕国产| av东京热男人的天堂| 性生活久久久久久久久久| 国产主播福利| 亚洲天堂日本| 色欧美天天| 亚欧色图在线激情| 99re99视频在线免费观看| 思思热久久成人| 国产久久一区二区| 欧美极品女人的天堂| 水多多映视AV| 精品视频久久区| 色官网在线| 天天天干977| 国产11页| 中文字幕精品一区欧美| 久久精品99| 一起草AV| 亚洲欧洲综合av在线| 97国产精选| 日韩精品一区二区三区四虎影视| 日本高清视频xxxx| 天天综合91入口| 亚洲中文字幕噜噜噜久久久| 亚洲免费成人在线高清无码视频 | 人人爽天天爽| 国产亚洲精品美女久久久久久2021| 校园春色欧美| 青青草视频导航官网| 熟女视频久久| 一级@啪啪视频| 一区二区三区一亚洲中文字幕、综合区灬 | 国产 丝袜 欧美中文 另类| 国产熟女自拍| 国产性感在线观看| 亚洲天堂99| 一起草三级AV电影在线观看 | 九九草| 亚洲五区熟女| 天天插天天插| 婷婷深爱五月| 网友自拍第一页| 亚洲 欧美 另类 日韩 人妻一区| 欧美日韩香蕉| 国产成人五月天丁香花| 欧美亚洲韩国视频十五区 | 亚洲午夜福利在线影院| 一区二区三区美女超清| 色亚洲欧美| 成人熟女视频一区二区三区| 日本人妻A片成人免费看片| 免费观看网黄| 免费a v| 日本熟妇自慰性高潮一区二区三区| 91在线视频免费中出| 亚洲欧美日韩综合在线尤物 | 91丨九色丨国产丨人妻在线| 蜜臀99久久精品久久久懂爱| 国产免费小视频| 国产女人9999| 二级久久网| 免费看污网站| 亚洲综合888| 国产精品久久久亚洲一区| 把腿张开老子CAO烂你| 美女操逼A A| 亚洲色图综合| 国产成人欧美精品在线| 婷婷五月天激情四射| 污电影在线观看| 日本新免费二区三区| 后入人妻一区| 久久久久无码一妻区| 麻豆 亚洲 97| 久草在| 北条麻妃性愛视频| 亚洲天堂人人妻| 色爱欲亚洲| 91ise欧美| 色九月婷婷| 婷婷五月天影院| 狠狠干狠狠色| 一区二区三区精品黑丝白丝酒店对鸡 | 白嫩妹子国产骚| 综合激情一一91| 亚洲的天堂网| 熟女91网| 久区视频| 天天综合欧美| 中文视频在线观看| 亚洲欧美小说| 国产一区二区三三视频| 国语国产操逼伊人AV网| 欧美一区二区三区日韩| 99热精品在线| 黄色大片一区二区密桃丝袜| 久久精品72| 97日视频| 久久黄黄黄| 97亚洲色图| 日韩精品-原创伙伴| 91成人精品| 久久久久久久久一区二区三区| 婷婷国产精品一区二区| 夜夜爽夜夜操| 国产精品4p在线观看| 欧美黄色大片在线观看 | 欧美在线干| 蜜臀久久一区二区| 91美女在线视频| 超碰无码五月97| 91蜜臀人妻中文字幕在线| 操久久久久| 亚洲一区中文精品| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 久久精品超碰| 秋霞一级A片黄色视频| 精品亚洲国产成人精品| 大香蕉久操| 欧美人妻二区三区| 国产1727欧美| 熟妇一区二区| 亚洲AV秘 精品久久老牛影视| 十八禁视频网站| 91暧暧| www.acm成人黄色毛片| 少妇精品久久| 日韩欧美中文| 偷拍网站久久男女男| 欧美论理片| 天啪| 色青青久久影视| 麻豆天美国美国产AV| 亚洲视频二区| 午夜男女爽爽大片免费观看| 韩国一级做A片免费的| 久悠悠av| 美女性91| 18禁超污无遮挡无码免费网| 啊啊啊用力在线观看| 操淫穴亚洲五月丁香 | 人妻人久久精品中文字幕| 久久夜夜| 日本三级韩国三级99| 亚州熟妇精品| 日本成人免费一区二区三区| 超碰在线99| 欧美在线色| 综合伊人网12色| 中文字幕在线免费观看视频| 蜜桃一区二区三区| 91大神精品长腿在线观看网站| 99视频自拍| 色天堂在线观看| 久久成人国产精品| 亚洲国产一区二区三区在线| 夜夜爽夜夜操| 调教熟妇 久久久久久| 五月天亚洲网| 岛国在线一区二区三区| 亚洲欧洲第二视频在线观看色图| 韩国三级一线观看久| 夜夜中出国产| 亚洲国产天堂| 亚洲情色第一页| 欧美日韩狠狠爱| 国产原创剧情在线丝袜| 久热伊人| 91美女中出| 超碰天天去日穴| 国产小黄片在线免费观看| 欧美日韩国产电影| 欧美性爱日韩性爱| 天天干1区2区在线| 一个人免费HD91视频| 91欧美另类| 激情天天视频| 小明看看网址| 91人妻素女| 免费亚洲国产精品久久一区| 日本三级网页| 亚洲,欧美,综合网| 天天干,天天日| 91色插| 久久天天摸| 天天射日日干| 成人影 天天操 亚洲| 日韩免费在线观看不卡| 亚洲色图美腿丝袜| 久久老子无码午夜伦不卡| 亚洲久久天堂| 大香蕉在线视频15| 囯戸精品高潮呻吟旡码| 91九九九吃| 97av在线视频| 国产91福利小视频在线观看| 午夜福利区| 奇米狠999| 亚洲亚洲亚洲天堂天堂| 成功精品影院| 亚洲一区中文精品| 欧美激情久久久久| 99热综合| 秋霞久久亚洲精品成人| 超碰 欧美| 久久日韩毛| 久久久久亚洲三级电影| 欧美日韩亚洲国产中文永久天天看 | 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 十八禁电影伊人网| 亚洲一区二区麻豆影院| 午夜乱轮操逼视频免费看| 欧美手机在线综合| 97视频在线免费看| 激情干在线| 亚洲色图欧美| 超碰综合97在线| 97精品国产97久久久| 亚洲小电影免费涩涩成人在线高清| 熟女高潮精品一区二区| 蜜桃中文字日产乱幕4区| 99性爱在线观看| 欧美97超碰| 精品一区二区三区四区外站| 久久久999日本大片| 天天色天天干天天射| 国产AV中文| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 加勒比海色香蕉婷婷| 欧美久久毛片基地| 亚洲AV无码乱码在线观看性色| www国产无码| 国产日韩中文字幕欧美| 国产偷仑| 日韩AV一区二区三区四四| 久久精品超碰| www.夜夜| 欧美亚洲高清晰| 91三级理论片播放器| 亚洲有码视频二区| 国产精品大屁股999| 国产精品情侣啪啪| 九九热免费视频| 2018天天干在线视频| 99热这里都是精品| 啊啊啊啊啊舒服| 午夜欧美神马久久久久| 精品少妇后入一区二区三区四区人妻巨乳| AV不卡在线| 欧美性爽xyxOOOO| 91白虎| 亚洲国产青青| 好舒服视频| 蜜臀av中字字幕网站| 国产成人精品日本亚洲语言| 欧美日韩国产高清在线一二三区| 浓厚中出中文字幕在线| 日本国产亚洲一区在线观看| 亚洲综合欧美| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 热的中文 热的有码 热的国产| 毛片视频白嫩| 国产一区二区三区中文字幕| www.婷婷| 另类图片五月天| 超碰在线成人| 9久热| 婷婷亚洲综合| 亚洲一区日韩| 色婷婷五月天| 久久久亚洲精品电影免费看| 岛国AV一区二区电影| 久操九九九九| 蜜臀精品1区2区| 澳门成人网站久国产日韩| 五月天黄色av| 欧美A√综合网 | 91美女精品| 亚州欧美另类| 日韩无码极品| 超碰无码加勒比| 人妻一区视频| 久久精品国产免费观看99| 男男H黄动漫啪啪无遮挡网站| 久久性爱免费送| 99日精品欧美国产| 天天欧美| 97啪啪| 欧美高清无码免费视频高清版| 中文字幕国产在线天堂| 成人无码电影在线观看网| 亚洲精品人妻在线| 自偷自拍的亚洲视频| 色色色综合网| 欧美第38页| 动漫av中文| 亚洲精品熟妇1区2区3区。| 97在线观| 国产一级特黄大片处女| 操屄不卡视频| 日韩美一区| 日夜干射色啊| 91欧美情色| 国产成人亚洲精品无| 国产在线激情视频| 99ri在线视频| 亚洲淫乱骚妇AV| 亚洲成人帖图| 一级性爱视频免费观看 | 五十路三区在线| 亚洲人妻中文在线视频| 亚洲精品亚洲人成在线麻豆| 91xingse| 色欧洲97| 人人操欧美风骚| 亚洲第一黄色av网站| 超碰99在线观看| 日本999精品视频| 五月天AV资源| 人妻一二三区| 99国产精品人妻人伦| 美女黄码视频午夜| 最新国产精品| www久| 欧美国产成人在线| 777超碰| 一区二区三区黄色片a| 久久久五月天| 亚洲男人综合网| 亚洲中文字幕在线视频一区二区| 91精品国产高清久久久久久,亚洲成人| 澳门人妻久久| 九久9精品| 夜嗨影院| 神马久久69| 97精品久久| 91丨九色丨国产打屁股| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 婷婷久草| 日韩特一级久久| 另类小说综合网| 欧美熟爽综合| 国产精品欧美在线观看| 国内精品伊人久久久久影院会| 熟妇艹鸡八| 四虎在线观看视频| 激情综合网五月婷婷| 人人搡人人肉久久精品| 伊人一级免费黄片| 国产久久久9999| 亚洲欧美97√| 任你爽视频| 久久有码视频| 亚洲av无码成人精品国产| 大香蕉青青9| 先锋激情∨在线视频播放| 澳门成人网站久国产日韩| 欧美在线天堂| 熟妇人妻精品一区二区视频色欲| 96超碰网| 一本道综合色图| 78精品在线| 十八禁视频网站| 久久久成人免费av电影| 国产精品久久久久久久毛片1| 怡红院成人av| 99精品视频在线观看免费| 欧美情色贴图| 成人性爱视频在线看| 麻豆一区在线| 一本一道vs波多野结衣| 激情久久日韩精品中文字幕麻豆| 8050午夜少妇无码| 伊人性在线视频| 色婷婷狠狠| AV中亚| 色穴精品| 欧美性爱免费短视频| 97AV在线免费观看| 91精品无码人妻系列| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 熟女人妻一区二区三区免费看 | 这里都是精品在线观看| 亚洲女人91| 9久超碰| 1769成人国产精品视频| 丝袜综合| 欧美专区日本专区| 992视频一区| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 综合日韩激情另类图片| 成年人三级黄色片视频| 97欧美色| 久操B网| 国产中文大片资源中文字幕| 欧美精品欧美精品系列| 国产精品久久久亚洲一区| 国产精品人妻无码久久久老鸭窝 | 免费观看欧美日韩操逼视频| 亚洲自拍偷拍视频在线| 午夜福利在线合集| 99色在线| 精品中文字幕第一页| 五月天人妻综合| 国产11页| 国产欧美成人第一页在线观看| 欧美BT 亚洲色图| 中文字幕精品人妻丝袜| 玖玖玖玖精品国产剧情| 熟女探花啪啪| rivers-china.com| 78p欧美| 久久老子无码午夜伦不卡| 家庭乱伦麻豆| 亚洲精品 欧美97色色| 精品久久久久黄少妇| 午夜黄色免费在线观看| 国产在线能看的你懂的| 亚洲欧美变态| 亚洲第一色页夜| 99在线精品视频| 超97在线精品视频| 日本孕妇一区二区视频操逼免费看 | 欧美日本成人一区二区| 99精品久久| 99re公开精品免费视频 | 无毛精品| 亚洲人在线| 久久男女激情视频网站| 午夜亚洲国产理论秋霞| 日韩一级二级三级在线不卡观看完整| 9997se| 欧美少妇性乱| 在线女人91| 亚洲人妻AV| 亚洲αv一区二区三区| 一级性爱视频免费观看| 999精品乱码| 天天综合网视频91| 激情文学 亚洲图片| 麻豆区99999| 25国产精品免费观看| 日本熟妇人妻中出视频| 性爱免费视频成人| AA级电影三区| 久久精品午夜国产亚洲AV无码| 天天综合官网| 欧美激情高清性猛交| 日本一卡二区在线| 999久久芭蕾| 看看日B真人视频| 久久草视频污视频| 日本精品性生活久久久| 97视频620| 久草精品国产蜜臀| 丝袜天堂| 欧美精品双插| 曰本熟女视频| 青青草五月天| 成人热久久精品| 日韩精品熟妇| 国产熟女| 欧美韩国你懂得在线 | 中日高清无码操逼视频| 日韩乱伦视频| 久久一区二区三区入口| 日本色色色视频| 无码 有码 国产18p| 人人摸人人摸人人干| 欧美一级黄色18片免费看| 亚洲超碰AV| 日韩一级片在线看| 久久婷婷影院| 97超碰美国| 欧美乱伦专区| 久久国产熟女影院| 人人操人人搞人人草| 欧美日本一区二区a人| 久久AV无码网址| 久久婷五月| 69精品在线| 亚洲情色图片区| 精品妇操一区二区三区| 国产又粗又长的视频| 欧美劲爆第一页| 草草电影院| 免费人成在线观看网站品爱网| av在线一区二区三区| 精品久久人妻成人网| 爽爽淫人网| 欧美高潮在线| 四虎在线免费视频| 色约约一区=区三区| 五月婷亚洲精品天堂| 一区二区三区高清天码| 91粉嫩萝控精品福利网站_精品影音先锋国| 超碰91在线| 强上我不卡卡| 啊啊啊啊啊好舒服视频| 三四中文字幕| 亚洲密乳AV| 国产又大又硬又长又粗| 最新欧美色网| 天天超级碰碰碰| 欧美日韩中文字幕人妻| 久久久久亚洲av综合波多野制衣| 中文字幕成人| 日韩精品9999| 伦理第一页| 国产毛片久久久久久久| 婷色五月| 亚洲综合贴图91 | 亚洲人精品久久久| 在线毛片片免费观看| 亚洲强奸乱伦影视网| 国产精品白虎| 久久后入制服| 麻豆国产视频精品观看| 色一情一乱一乱一区91Av| 东京热av男人的天堂| 欧美熟妇精品黑人巨大91| 26uuu性| 大鸡巴久久久| 久热精品在线| 性久久| 丰满人妻-区二区三区免费| 麻豆国产第一| 欧美激情综合| 69精品人人人人| 一区二区三区色综合| 成人羞羞视频国产| 婷婷五月av| 毛片麻豆91糖心精品毛情片| 亚洲日韩在线a不卡99精品| 97在线精品| 欧亚揄拍偷拍精品视频 | 日韩日韩日韩-国产乱码精品一区二区| 秋霞免费无码视频日韩A片| 九九九九久久久| 老鸭窝成人| 18禁的网站在线| 少妇500双飞99| 黑人娇小av在线播放| 色婷婷综合网| 国产97在线播放| 日韩乱伦影音先锋| 神马久久久久久久久久久久| 96久久久| 欧美午夜精品久久久久久超碰| 国产丁香精品露脸视频| 日本一级婬片试看三分钟| 亚洲另类色图片| 日本久久女同性恋视频| 97九色人妻| 男同专区一区二区三区在线| 日韩午夜啪啪视频| 狠狠操狠狠燥| 屁屁影院一区二区三区国产| 色网1| 日韩欧美中文| 亚洲 综合 第一页| 狼狼色丁香久久婷婷综合五月| 男插女青青影院| 男女做爰猛烈动高潮A片免费应用| 久妇网| 极品色| 亚洲欧洲视频小说在线观看| 欧美亚洲中文| 偷拍 精品 另类 四区| 人人操人人色网| 嗯嗯,啊啊,国产精品| av黄图片在线观看| 欧美亚洲影视| 熟女五十路一区二区三| 99热日| 91黑人无码激情在线| 爱丝福利| 成人日韩欧美| 亚洲成人贴图| 四虎AV无码| 中文字幕人成乱码熟女香港| 国产视频第2页| 少妇高潮对白在线观看| 婷婷精品久久av影视| 色播五月婷婷| 精品无码久久久久久久杏吧| 久久中出在线| 五月天玖玖资源站| 久久αⅴ| 丝袜喷水在线| 久草免费福利在线播放| 色99久草| 五月婷在线| 精品无码一区二区三区| 色爽——AV| 婷色五月天| 日韩激情无码影院| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 六月丁香久久| 亚洲中字幕日本一区二区三区| 性老妇一区二区三区| 日韩精品在线观看网站| 91啪啪| 五月开心久久AV官网| 黄色av一区二区在线| 国产传媒一区二区三区| 夜夜嗷嗷一区二区| 久久东京国产精品视频| 国产91影院| 国产免费一区| 天美精品av| 久久久亚洲欧美综合| 亚洲资源站| 亚洲91网站| 亚洲日本成人动漫| 日韩国产乱子伦App| 啊啊啊免费| 丰满人妻一区二区中文| 91精品电影18| 亚洲欧洲国产综合av| 操逼无码操逼| 欧美国产婷婷久久| 另类成人首页一区| 96AV久久久| 99日韩| 曰韩操B| 国产97在线视频| 亚洲宗合网| 免費人妻夜夜爽天天爽爽一区| 99热这里只有精品地址| 秋霞一级A片黄色视频| 中文字幕在线免费观看| 91精品少妇搡搡搡| 麻豆 亚洲 97| 97综合日韩| AV天天在线观看| 九九久久综合| 色爱三区| 口爆吞精在线观看| 国内毛片热久久思思热| 日日躁夜夜躁狠狠躁超爽| 色踪合AV| 综合欧美日韩在线| 亚洲AO在线| 艹我哪美一区无码| 国产男女无套视频免费观看| 性久久| 啪啪啪精品| 日产操逼| 欧美91精品国产自产| 大香蕉草草| AV天黑人| 国产精品一区二区后入| 久久久久久久78| 江都AV在线| 色精品极品| 久久精品欧美一区蜜桃| 亚洲性爱高潮影院| 91人妻爽爽人人做人人澡| 五月天社区| 任你草| 婷色五月天| 亚洲综合激情五月久久| 9999免费精彩视频| 牛黄色久午久| a级理论午夜日本| 欧美极度丰满熟妇hd| 亚洲一区二区精品福利| 日韩丝袜二区| 亚洲操人| 久热无码| 六月色婷婷| 久久五月份| 日韩乱码Av| 91网站18在线观看| 日韩 人妻 精品| 粘花网06av视频| 精品视频专区| 亚洲综合九| 日韩精彩视频| 国语精品av| 99中文字幕| 国产精品一区二区a| 欧美日韩啪啪电影| 午夜视频好爽啊| 亚洲日韩美女中文字幕乱| 国产成人www免费人成看片| 女人高潮抽搐喷水视频网站| 高清无码网址| 红桃视频高潮| 9999亚洲精品| 综合熟妇一区二区三区| 91亚洲人| 中文字幕日韩电影人妻| 美女极品一区二区三区| 在免费jIzzjIzz在线视频| 亚洲国产高清福利视频| 九九av| 青青色综合| 久久婷婷欧美| 日韩欧美三级| 久久精品一区二区三区四区五区| 激情 欧美 亚洲 小说| 国产大学生口爆吞精合集| 大香蕉黄色一区| 日韩丝袜人妻AV| 久久久久密臀视频| 97操B| 国产精品福利资源在线尤物| 亚洲成人日韩小说| 午夜免费福利视频一区| 淫色网综合| 97精品在线| 国产精品乱码久久久久| 岛国毛片在线观看免费| 色啪网| 天天看人人操屄犊摸阴| 天天影视91看看| 99久久久无码国产精品性啊聊| 国产一在线观看| 91 刺激在线| 久久爽爽精品| 欧美色视| 综合免费无码中文| 精品久久久无码| 人人爽人人精品乱人伦AV| 性91| 日韩人成网站在线播放| 久jiu久神马影院| 国产人妻精品一区二区三区秋霞| 天天干电影| 国产精品久久久久中文字幕| 久久久艹艹艹| 青青青草原| 92性色国产午夜福利在线661| 天堂种子在线www网资源| 久久夜夜夜夜| 91色婷婷综合久久中文字幕二区| 亚洲欧洲综合av在线| 少妇 综合| 亚洲欧美天| 欧美1区二区三区公司 | 欧美黄片视频在线观看免费| 亚洲影院小综合| 色原狠狠天天天| 亚洲字幕一区二区| 色噜噜国产在线| 亚洲 日本 不卡| 亚洲av淫乱| 久久m| 强被迫伦姧在线观看无码网站| 久久伊人大香蕉| 免费97视频| 为用户提供免费看黄网址在线观看| 国产又粗又又黄又猛| 色97国产69香蕉| 色官网色综合| 精品人妻一区二区乱码一区二区 | 少妇精品久久久八区九区| 日韩精品一区二区高清| 99re6国产精品99re在线| 老司机香蕉久久久久| 丰满人妻一区二区三区大胸懂色| www.男人天堂| 日本一区视频在线观看| 九九热免费在线国产视频伊人五月| 97在线观| 长长久久免费视频| 亚洲第一视频 欧美风情 日韩| 久操网线| 午夜精品久久999热蜜桃介男人用| 中字幕人妻一区二区三区| 操死我干死我| 日本精品一级二级三级| 国产精品女同| 97在线免费观看| 成人五月香网在线| 欧亚日韩中文在线| 午夜免费视频1000| 神马麻豆福利院| 久久久久13| 久久久新亚洲AV| 激情图片伦理国产一区二区日韩| 午夜舔阴达高潮视频免费看| 日韩影片中文字幕一区二区三区| 91精品国产91久久福利| 夜夜高潮夜夜爽高清视频一| 国产精品成久久久久午夜午夜| 亚洲色图 欧美热图 清纯唯美 另类自拍| 亚洲日韩国产精品| 久久精品免费| 欧美日韩*字幕一区| 干B| 欧美系列在线一区二区| 插B在线观看| 超碰免费人人| www男人天堂| 人人人人人人少妇| 国产呦精品系列在线观看| 第四色色综合91| 久久天天艹| 吊色| 黑丝少妇在线观看| 碰碰97| 97自拍一区| 无码免费精品高清| 大茄子熟女AV导航| 爱射综合| 成人性爱AV在线免费观看| 丰满丝袜少妇AV| 天天肏夜夜肏| 91狠狠综合| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 色婷婷久久综合超碰| 在线中文字幕极品av| 中文字幕人妻丝袜乱一区三区| 超碰97欧美在线| 亚洲国产精品有声| 欲色综合| 60秒试看最爽10分钟网站| 亚洲成熟国产精品美女| 992视频一区| 一区=区三区视频| 免费作爱一级视频| 国产精品96| 少妇内射视频| 日韩pv中文| 玖玖资源综合在线视频| 超碰2017| 制服丝袜第二页| 日韩免费人妻色情网站| 成人av影院在线观看| 97chaopengongkai| 97 九色| 亚州色图第三区| 99国产精品视频尤物| 好涩综合| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 欧美日韩大陆黑人少妇99| 亚洲欧美中文日韩视频中国语| 亚洲国产成人精品久久久国产成人一区二区| 日本中文字幕一区| 欧美不卡在线美女| 欧洲一级性爱视频在线观看| 无码不卡亚洲成?人片| 天天在线91| 裸模AV女优| 亚洲欧美精品一区天堂久久 | 丝袜高跟澳门91视频| 性色avv| 中文字幕一区二区三区视频播放| 香伊人在线| 99av| 超碰一区二区| 屌妞视频久久久久久久久久久久| 六月婷婷综合| 白嫩国模丰满一二三区| 国产一区二区三区免费视频在性观看 | 天天综合网入口~91| 久久久久13| 六十路日本| 黄页视频网站野外| 強姦亂倫a| 久久久亚洲熟妇熟女| 青青草一区二区高清无码视频| 伊人午夜福利视频| 亚洲欧洲第二视频在线观看色图| 67194无码不卡| 精品国产乱码久久久久久久久1| 视频分类 国内精品| 久久成人国产| 久综合国内精品自在自线| 伊人天天久久动态图| 极品色综合| 素人伊尹大香蕉免费下载视频| 欧美精品久久| 蜜臀久久99精品| 一区| 91性高| 91夜夜蜜桃臀1区2区3区| 蜜桃久久久久久久| 翘臀vidoes| 日本有码久久| 91视频国品一二三区| 激情网五月天| 激情婷婷五月天| 久热这里| 激情第四色| 东京热亚洲一区二区| 色五月婷婷在线| 毛片电影一区二区三区| 国产97色在线| www.久久| 亚洲少妇喷视频看| 98色网| 久草精品热视| 丰满少妇人妻久久久久久| 刺激性视频黄页| 大香蕉中文aV在线| 97日视频| 中文字幕78| 欧洲精品欧洲精品| 欧亚韩国999| 99re视频在线播放青草| 激情在线青青操| 亚洲综合第一页| 国产粉嫩蜜臀av一区二区三区| 色综合国产在线观看| 国产亚洲精品A在线观看下载| 99国产精品视频尤物| 婷婷视频在线免费观看| 不卡啪啪视频| 中文字幕 码 自拍 视频 区| 欧美第一页性| 国产综合久久久鬼色| 亚洲综合九| www.成人无码| 日韩无码一区二区三区| 亚洲av无码国产精品字幕| 亚洲一区二区久久久久| 国产精品爽爽va在线观看98| 五月综合久久| 欧美色图片91| 欧美玖玖爱免费玖玖| 欲色综合| 人人性爱视频免费| 91在线超高颜值国产| 亚洲午夜福利视频| 亚洲色色色| 欧美狠狠弄| 精品一区二区久久| 色欲三区| 国产精品夜夜夜| 成人国产二区三区在线,男女精品。| 久久久一区二区三区四区五区| 精品三级在线专区| 色色色欧美| 五月丁香六月| 性老妇一区二区三区| 欧美激情 一区| 超碰97人妻免费在线| 欧美成人黄网色网站| 99久久com免费视频′| 欧洲亚洲综合| 中文字幕精品三级久久久| 热久久精品| 九九碰九九爱97超碰|