時(shí)AI視覺開發(fā)指南:3分鐘跑通人臉、手部與姿態(tài)檢測)
MediaPipe實(shí)時(shí)AI視覺開發(fā)指南3分鐘跑通人臉、手部與姿態(tài)檢測【免費(fèi)下載鏈接】mediapipeCross-platform, customizable ML solutions for live and streaming media.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/med/mediapipe視頻會(huì)議應(yīng)用里要加個(gè)虛擬背景健身 App 需要實(shí)時(shí)數(shù)深蹲AR 濾鏡要貼著臉部 468 個(gè)關(guān)鍵點(diǎn)畫特效——這些功能背后都是同一套東西Google 開源的MediaPipe。它是一個(gè)跨平臺(tái)實(shí)時(shí) AI 視覺框架人臉、手部、姿態(tài)、物體檢測都有預(yù)訓(xùn)練模型CPU 上就能毫秒級(jí)出結(jié)果。 MediaPipe 項(xiàng)目速覽MediaPipe 是面向移動(dòng)、Web、桌面和邊緣設(shè)備的端側(cè)機(jī)器學(xué)習(xí)工具集適合想把 AI 視覺功能塞進(jìn) App 的普通開發(fā)者也適合要自己搭推理流水線的資深工程師解決的核心問題是不依賴云端、在設(shè)備本地實(shí)時(shí)跑視覺模型。項(xiàng)目說明許可證Apache 2.0LICENSE可免費(fèi)商用支持平臺(tái)Android、iOS、WebWASM、桌面 C、PythonLinux/macOS/Windows、Coral 等邊緣設(shè)備Python 環(huán)境通過 pip 安裝提供 Linux/macOS/Windows 的 wheel運(yùn)行要求普通 CPU 即可實(shí)時(shí)運(yùn)行可選 GPU 加速兩層架構(gòu)Solutions/Tasks開箱即用的高層 APIFramework用圖Graph、計(jì)算器Calculator、數(shù)據(jù)包Packet自建流水線一個(gè)容易踩的認(rèn)知點(diǎn)倉庫里mediapipe/python/solutions/是較早的 Legacy Solutionsmediapipe/tasks/是 2023 年后主推的新框架Vision、Text、Audio 三大類 Task二者并存新代碼建議優(yōu)先用 Tasks。 MediaPipe 快速安裝與驗(yàn)證最省事的路徑就是 pip一行安裝一行驗(yàn)證pip3 install mediapipe python3 -c import mediapipe as mp; print(mp.__version__)打印出版本號(hào)即安裝成功之后import mediapipe as mp就能用。需要從頭編譯 C/Android/iOS 的走 Bazel 構(gòu)建文檔或用倉庫根目錄的Dockerfile起容器環(huán)境即可普通使用者不必編譯。 MediaPipe 核心能力手部、人臉、姿態(tài)手部追蹤21 個(gè)關(guān)鍵點(diǎn)做手勢控制適用場景手勢交互翻頁、控制 PPT、虛擬樂器、無障礙輸入。用法要點(diǎn)mediapipe/python/solutions/hands.py 里默認(rèn)max_num_hands2同時(shí)檢測兩只手min_detection_confidence和min_tracking_confidence都默認(rèn)0.5——前者管檢不檢出后者管丟了之后跟不跟。返回的 21 個(gè)關(guān)鍵點(diǎn)是歸一化坐標(biāo)0~1乘以寬高才能畫到圖上。人臉網(wǎng)格 Face Mesh468 點(diǎn)驅(qū)動(dòng) AR 特效適用場景虛擬化妝、表情驅(qū)動(dòng)虛擬形象、視頻會(huì)議美顏。用法要點(diǎn)mediapipe/python/solutions/face_mesh.py 默認(rèn)輸出468個(gè)人臉關(guān)鍵點(diǎn)打開refine_landmarksTrue會(huì)在眼部和唇部追加 10 個(gè)點(diǎn)共478個(gè)做口型同步和眼部特效時(shí)必須開它。人體姿態(tài)與其他能力Pose 輸出33個(gè)身體關(guān)鍵點(diǎn)含 3D z 坐標(biāo)model_complexity提供 0/1/2 三檔——0 最快、2 最準(zhǔn)、1 平衡實(shí)時(shí)應(yīng)用先試 1不夠再降 0。其余能力一張表帶過能力入口文件一句話用途人臉檢測face_detection.py人臉框 5 個(gè)五官點(diǎn)比 Face Mesh 更輕量全身 Holisticholistic.py臉 手 姿勢一次出物體檢測object_detection80 類 COCO 目標(biāo) 置信度背景分割selfie_segmentation.py輸出人像 mask做虛擬背景 最小實(shí)戰(zhàn)一張圖片跑通手部檢測下面這段是完整可運(yùn)行的腳本邏輯來自 hands_test.py 的官方示例import cv2 import mediapipe as mp mp_hands mp.solutions.hands image cv2.imread(hand.jpg) rgb cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # MediaPipe 吃 RGB必須先轉(zhuǎn)換 with mp_hands.Hands(max_num_hands2) as hands: # 建解決方案最多檢測 2 只手 results hands.process(rgb) # 推理返回 21 個(gè)歸一化關(guān)鍵點(diǎn) if results.multi_hand_landmarks: for lm in results.multi_hand_landmarks: mp.solutions.drawing_utils.draw_landmarks(image, lm, mp_hands.HAND_CONNECTIONS) cv2.imshow(MediaPipe Hands, image) cv2.waitKey(0)跑通后你會(huì)看到每個(gè)手指關(guān)節(jié)上有點(diǎn)、關(guān)節(jié)之間有連線——這就是手勢控制應(yīng)用的第一個(gè)里程碑。? MediaPipe 常見問題與解法畫出來是反色的人臉發(fā)綠OpenCV 讀圖是 BGRMediaPipe 要 RGB喂圖前記得cv2.cvtColor(img, cv2.COLOR_BGR2RGB)這是新手最高頻的坑。視頻流處理時(shí)結(jié)果閃爍、丟幀默認(rèn)static_image_modeFalse框架按連續(xù)視頻流做時(shí)間追蹤處理靜態(tài)圖片批次時(shí)務(wù)必設(shè)static_image_modeTrue否則單張圖會(huì)反復(fù)觸發(fā)重初始化。pip 安裝失敗或找不到 wheelPython 需要3.9~3.12另外 PyPI 目前不提供 aarch64 wheelJetson、樹莓派等 ARM64 Linux 要按 python.md 從源碼構(gòu)建。C/Android/iOS 環(huán)境編譯報(bào)錯(cuò)Framework 層依賴 Bazel 和 OpenCV手搓環(huán)境很痛苦先用根目錄Dockerfile驗(yàn)證代碼邏輯或參考 桌面示例 的 BUILD 文件對(duì)齊依賴版本。手機(jī)上推理太慢優(yōu)先降model_complexity、縮小輸入分辨率再考慮換 Tasks API 并啟用 GPU 委托而不是直接上更重的模型。 MediaPipe 資源導(dǎo)航docs/getting_started/各平臺(tái)Python/C/Android/iOS/Web的入門與安裝文檔docs/framework_concepts/Graph、Calculator、Packet 三大核心概念自建流水線前必讀mediapipe/python/solutions/Python 高層解決方案 APIHands、Face Mesh、Pose 等mediapipe/tasks/新版跨平臺(tái) Tasks APIVision/Text/Audio含 C、Java、iOS、Web 多語言實(shí)現(xiàn)mediapipe/examples/desktop/桌面 C 示例如hand_tracking、pose_trackingmediapipe/graphs/各 Solution 背后的.pbtxt計(jì)算圖定義看模型怎么串起來mediapipe/model_maker/用自有數(shù)據(jù)微調(diào)/訓(xùn)練手勢識(shí)別器、物體檢測器模型docs/tools/tracing_and_profiling.md性能瓶頸分析與可視化追蹤一句話總結(jié)MediaPipe 把設(shè)備端實(shí)時(shí)視覺從需要算法團(tuán)隊(duì)的活變成了 pip 一行裝完、幾十行代碼出結(jié)果的活——現(xiàn)在裝一個(gè)包拿一張自己的照片跑一遍上面的手部檢測腳本就是最快的上手方式?!久赓M(fèi)下載鏈接】mediapipeCross-platform, customizable ML solutions for live and streaming media.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/med/mediapipe創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考