国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Mediapipe人體骨架檢測和實時3d繪制——Mediapipe實時姿態(tài)估計

這篇具有很好參考價值的文章主要介紹了Mediapipe人體骨架檢測和實時3d繪制——Mediapipe實時姿態(tài)估計。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、前言

大約兩年前,基于自己的理解我曾寫了幾篇關(guān)于Mediapipe的文章,似乎幫助到了一些人。這兩年,忙于比賽、實習(xí)、畢業(yè)、工作和考研。上篇文章已經(jīng)是一年多前發(fā)的了。這段時間收到很多私信和評論,請原諒無法一一回復(fù)了。我將嘗試在這篇文章里回答一些大家經(jīng)常問到的問題。

二、繪制3d鉸接骨架

我曾在之前的文章里講過,可以使用Mediapipe推理得到的3d坐標(biāo)繪制到3d畫布上,使用的函數(shù)就是:mp.solutions.drawing_utils.plot_landmarks(),不過只能導(dǎo)出2d圖,沒法拖動交互,實現(xiàn)效果如下:
Mediapipe人體骨架檢測和實時3d繪制——Mediapipe實時姿態(tài)估計,mediapipe學(xué)習(xí),3d,python,計算機(jī)視覺,opencv,手勢識別,人臉識別
這個函數(shù)是官方自己封裝的,我們可以利用matplotlib自行實現(xiàn)實時繪制3d鉸接骨架圖的需求,效果如下:

實時姿態(tài)估計


由于畫在了3d畫布上,這時候就能拖動畫布,以不同角度查看實時的人體姿態(tài)。大家可以自行嘗試。

三、關(guān)于Mediapipe的3d坐標(biāo)

  1. mediapipe可以推理得到3d坐標(biāo),但這個3d坐標(biāo)并不是真實的3d坐標(biāo)。這些坐標(biāo)描述了一個以人體臀部為中心的人體外接圓,是虛擬的坐標(biāo)。這一點可以從其官方描述得知。
    Mediapipe人體骨架檢測和實時3d繪制——Mediapipe實時姿態(tài)估計,mediapipe學(xué)習(xí),3d,python,計算機(jī)視覺,opencv,手勢識別,人臉識別

  2. 在對每一幀圖像做處理時,如果要獲取某個keypoint(人體某個關(guān)節(jié))在圖像上的坐標(biāo)時,可以這樣轉(zhuǎn)換:

results = pose.process(img)
X_ = results.pose_landmarks.landmark[mp_pose.PoseLandmark.NOSE].x * img_width
Y_ = results.pose_landmarks.landmark[mp_pose.PoseLandmark.NOSE].y * img_height

四、關(guān)于姿態(tài)估計的進(jìn)一步學(xué)習(xí)

  1. 如果想獲取實際的3d坐標(biāo),可以用相機(jī)標(biāo)定,這里涉及的知識更多。Google搜索‘camera calibration’可以學(xué)習(xí)到更多。
  2. 其他好用的人體姿態(tài)估計模型,有mmpose、alphapose、openpose等。個人比較喜歡mmpose,從數(shù)據(jù)標(biāo)注到模型訓(xùn)練都比較成熟。
  3. 曾經(jīng)有人問過,如果要做動物姿態(tài)估計,那么毫不猶豫請用DeepLabCut,同樣在數(shù)據(jù)標(biāo)注和模型訓(xùn)練及導(dǎo)出上,非常成熟易用。

五、所有代碼

要結(jié)束程序,請按ESC,或者ctrl+c

import cv2
import matplotlib.pyplot as plt
import mediapipe as mp
import time
import numpy as np

mp_pose = mp.solutions.pose
mp_drawing = mp.solutions.drawing_utils 
mp_drawing_styles = mp.solutions.drawing_styles

colorclass = plt.cm.ScalarMappable(cmap='jet')
colors = colorclass.to_rgba(np.linspace(0, 1, int(33)))
colormap = (colors[:, 0:3])

def draw3d(plt, ax, world_landmarks, connnection=mp_pose.POSE_CONNECTIONS):
    ax.clear()
    ax.set_xlim3d(-1, 1)
    ax.set_ylim3d(-1, 1)
    ax.set_zlim3d(-1, 1)

    landmarks = []
    for index, landmark in enumerate(world_landmarks.landmark):
        landmarks.append([landmark.x, landmark.z, landmark.y*(-1)])
    landmarks = np.array(landmarks)

    ax.scatter(landmarks[:, 0], landmarks[:, 1], landmarks[:, 2], c=np.array(colormap), s=50)
    for _c in connnection:
        ax.plot([landmarks[_c[0], 0], landmarks[_c[1], 0]],
                [landmarks[_c[0], 1], landmarks[_c[1], 1]],
                [landmarks[_c[0], 2], landmarks[_c[1], 2]], 'k')

    plt.pause(0.001)

#端口號一般是0,除非你還有其他攝像頭
#使用本地視頻推理,復(fù)制其文件路徑代替端口號即可
cap = cv2.VideoCapture(0)
with mp_pose.Pose(
    min_detection_confidence=0.5,
    min_tracking_confidence=0.5, 
    model_complexity = 1) as pose:
  fig = plt.figure()
  ax = fig.add_subplot(111, projection="3d")

  while cap.isOpened():
    success, image = cap.read()
    if not success:
        print("Ignoring empty camera frame.")
        # If loading a video, use 'break' instead of 'continue'.
        continue
    
    # To improve performance, optionally mark the image as not writeable to
    # pass by reference.
    start = time.time()
    image.flags.writeable = False
    image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    results = pose.process(image)
    
    # Draw the pose annotation on the image.
    image.flags.writeable = True
    image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
    
    mp_drawing.draw_landmarks(
        image,
        results.pose_landmarks,
        mp_pose.POSE_CONNECTIONS,
        landmark_drawing_spec=mp_drawing_styles.get_default_pose_landmarks_style())
    
    end = time.time()
    fps = 1 / (end - start)
    fps = "%.2f fps" % fps
    #實時顯示幀數(shù)
    image = cv2.flip(image, 1)
    cv2.putText(image, "FPS {0}".format(fps), (100, 50),
                cv2.FONT_HERSHEY_SIMPLEX, 0.75, (255, 255, 255),3)   
    
    cv2.imshow('MediaPipe Pose', image)
    if cv2.waitKey(5) & 0xFF == 27:
        break
    if results.pose_world_landmarks:
        draw3d(plt, ax, results.pose_world_landmarks)

cap.release()

六、寫在最后

如果有任何問題,歡迎在評論區(qū)討論、賜教。文章來源地址http://www.zghlxwxcb.cn/news/detail-777439.html

到了這里,關(guān)于Mediapipe人體骨架檢測和實時3d繪制——Mediapipe實時姿態(tài)估計的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • YOLOv5姿態(tài)估計:HRnet實時檢測人體關(guān)鍵點

    YOLOv5姿態(tài)估計:HRnet實時檢測人體關(guān)鍵點

    前言: Hello大家好,我是Dream。 今天來學(xué)習(xí)一下 利用YOLOv5進(jìn)行姿態(tài)估計,HRnet與SimDR檢測圖片、視頻以及攝像頭中的人體關(guān)鍵點 ,歡迎大家一起前來探討學(xué)習(xí)~ 首先需要我們利用Pycharm直接克隆github中的姿態(tài)估計原工程文件,如果不知道怎樣在本地克隆Pycharm,可以接著往下看,

    2024年01月17日
    瀏覽(27)
  • 【姿態(tài)估計】MediaPipe部分solution(手勢,人體姿態(tài),面部動作)的用法

    【姿態(tài)估計】MediaPipe部分solution(手勢,人體姿態(tài),面部動作)的用法

    Mediapipe介紹 MediaPipe是個基于圖形的跨平臺框架,用于構(gòu)建多模式應(yīng)用的機(jī)器學(xué)習(xí)管道。 MediaPipe可在移動設(shè)備,工作站和服務(wù)器上跨平臺運行,并支持移動GPU加速。使用MediaPipe,可以將應(yīng)用的機(jī)器學(xué)習(xí)管道構(gòu)建為模塊化組件的圖形。 MediaPipe專為機(jī)器學(xué)習(xí)從業(yè)者而設(shè)計包括研究

    2024年02月01日
    瀏覽(15)
  • YOLOPose:除了目標(biāo)檢測,YOLO還能不花代價地估計人體姿態(tài),對實時性能有要求必看!

    YOLOPose:除了目標(biāo)檢測,YOLO還能不花代價地估計人體姿態(tài),對實時性能有要求必看!

    導(dǎo)讀: YOLO,是一種流行的目標(biāo)檢測框架。如果將YOLO引入姿態(tài)檢測任務(wù)中,將取得什么結(jié)果呢?這篇文章實現(xiàn)了單階段的2D人體姿態(tài)檢測,與自上而下或自下而上的方法不同,該方法將人體檢測與關(guān)鍵點估計聯(lián)合實現(xiàn),在不采用數(shù)據(jù)增強如翻轉(zhuǎn)、多尺度等情況下,實現(xiàn)COCO ke

    2024年02月06日
    瀏覽(16)
  • WinUI(WASDK)使用MediaPipe檢查人體姿態(tài)關(guān)鍵點

    WinUI(WASDK)使用MediaPipe檢查人體姿態(tài)關(guān)鍵點

    之前有用這個MediaPipe.NET .NET包裝庫搞了手勢識別,豐富了稚暉君的ElectronBot機(jī)器人的第三方上位機(jī)軟件的功能,MediaPipe作為谷歌開源的機(jī)器視覺庫,功能很豐富了,于是就開始整活了,來體驗了一把人體姿態(tài)關(guān)鍵點檢測。 這個框架是微軟最新的應(yīng)用開發(fā)框架,我是用來開發(fā)程

    2024年02月15日
    瀏覽(88)
  • Mediapipe實時3D目標(biāo)檢測和跟蹤(自動駕駛實現(xiàn))

    Mediapipe實時3D目標(biāo)檢測和跟蹤(自動駕駛實現(xiàn))

    3D目標(biāo)檢測是根據(jù)物體的形狀、位置和方向來識別和定位物體的任務(wù)。在2D目標(biāo)檢測中,被檢測到的物體僅表示為矩形邊界框。3D目標(biāo)檢測任務(wù)通過預(yù)測物體周圍的包圍框,可以獲取物體的三維位置信息。 3D目標(biāo)檢測在各行各業(yè)都有廣泛的應(yīng)用。一些常見的用途包括: ?? 機(jī)器

    2024年02月09日
    瀏覽(25)
  • mediapipe 眨眼檢測、頭部三軸姿態(tài)檢測(改進(jìn)版)

    其實視覺檢測的項目我也搞了一段時間了,只不過自我感覺不精,基本就是調(diào)庫俠加拼接俠,會把各種例程拼來拼去的。 今天研究的是眨眼檢測,開始用的是比較常見的opencv dlib的庫,不過發(fā)現(xiàn)逼格不夠高,有三個缺點:一是模型要64m,二是點數(shù)只有64, 三是對側(cè)臉的檢測效

    2024年02月14日
    瀏覽(18)
  • 3D人體姿態(tài)估計

    3D人體姿態(tài)估計

    3D人體姿態(tài)估計是指通過算法對輸入的圖像或視頻進(jìn)行分析,推斷出人體的三維姿態(tài)信息。該技術(shù)可以應(yīng)用于許多領(lǐng)域,如虛擬現(xiàn)實、運動分析、人機(jī)交互等。 1. 算法原理: 3D人體姿態(tài)估計利用深度學(xué)習(xí)模型作為算法的核心,通過網(wǎng)絡(luò)學(xué)習(xí)人體姿態(tài)的表示和映射關(guān)系。該算法

    2024年02月03日
    瀏覽(13)
  • 基于視頻的人體姿態(tài)檢測

    基于視頻的人體姿態(tài)檢測 設(shè)計目的和要求 1.根據(jù)已知要求分析視頻監(jiān)控中行人站立和躺臥姿態(tài)檢測的處理流程,確定視頻監(jiān)中行人的檢測設(shè)計的方法,畫出流程圖,編寫實現(xiàn)程序,并進(jìn)行調(diào)試,錄制實驗視頻,驗證檢測方法的有效性,完成系統(tǒng)軟件設(shè)計。 2.基本教學(xué)要求:每

    2024年01月24日
    瀏覽(15)
  • CVPR2023新作:3D人體姿態(tài)估計

    Title: 3D Human Pose Estimation via Intuitive Physics Affiliation: Max Planck Institute for Intelligent Systems, Tübingen, Germany Authors: Shashank Tripathi, Lea Müller, Chun-Hao P. Huang, Omid Taheri, Michael J. Black, Dimitrios Tzionas Keywords: 3D human pose estimation, physics engine, intuitive-physics terms, pressure heatmap, stable configuration. Su

    2024年02月16日
    瀏覽(20)
  • MediaPipe之人體關(guān)鍵點檢測>>>BlazePose論文精度

    MediaPipe之人體關(guān)鍵點檢測>>>BlazePose論文精度

    BlazePose: On-device Real-time Body Pose tracking BlazePose:設(shè)備上實時人體姿態(tài)跟蹤 論文地址:[2006.10204] BlazePose: On-device Real-time Body Pose tracking (arxiv.org) 主要貢獻(xiàn): (1)提出一個新穎的身體姿態(tài)跟蹤解決方案和一個輕量級的身體姿態(tài)估計神經(jīng)網(wǎng)絡(luò),同時使用了熱圖(heatmap)和對關(guān)鍵點坐標(biāo)

    2024年02月06日
    瀏覽(79)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包