最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MediaPipe API實(shí)現(xiàn)骨骼識(shí)別功能分步講解流程

 更新時(shí)間:2022年09月21日 11:18:54   作者:FeathersMouch  
MediaPipe是用于構(gòu)建多模態(tài)(例如視頻、音頻或任何時(shí)間序列數(shù)據(jù))、跨平臺(tái)(即eAndroid、IOS、web、邊緣設(shè)備)應(yīng)用ML管道的框架。這篇文章主要介紹了MediaPipe API實(shí)現(xiàn)骨骼識(shí)別功能分步流程

骨骼識(shí)別的應(yīng)用場(chǎng)景

如今,當(dāng)前疫情大環(huán)境之下。很多人,因?yàn)榫蛹肄k公或者其他原因悶在家里不能外出健身。那么,借助骨骼識(shí)別和卷積神經(jīng)網(wǎng)絡(luò)模型,計(jì)算機(jī)視覺(jué)開(kāi)發(fā)者可以通過(guò)相對(duì)應(yīng)的API,結(jié)合相對(duì)輕量化一些的卷積神經(jīng)網(wǎng)絡(luò)模型,來(lái)構(gòu)建如Keep這類(lèi)的線上鍛煉監(jiān)督APP。

用戶(hù)通過(guò)將攝像頭對(duì)準(zhǔn)自己,使得神經(jīng)網(wǎng)絡(luò)能過(guò)精確地通過(guò)人體骨骼框架,判斷出用戶(hù)是否有在“認(rèn)認(rèn)真真”的做運(yùn)動(dòng)。

骨骼網(wǎng)絡(luò)也可以應(yīng)用在3D模型構(gòu)建中,通過(guò)將獲取到的骨骼網(wǎng)絡(luò)信息,與Unity虛幻等引擎中的3D模型進(jìn)行動(dòng)態(tài)綁定,即可得到屬于自己的虛擬人物形象。

骨骼識(shí)別的實(shí)現(xiàn)原理

通過(guò)觀察MediaPipe的官方文檔,我們可以看到

MediaPipe是通過(guò)兩套深度神經(jīng)網(wǎng)絡(luò):即基于GHUM模型的BlazePose和ResNet50模型的AlphaPose。

以下是MediaPipe官方對(duì)于模型的概述:

該檢測(cè)器的靈感來(lái)自我們自己的輕量級(jí)BlazeFace模型,用于MediaPipe 人臉檢測(cè),作為人體檢測(cè)器的代理。它明確地預(yù)測(cè)了兩個(gè)額外的虛擬關(guān)鍵點(diǎn),將人體中心、旋轉(zhuǎn)和比例牢牢描述為一個(gè)圓圈。受萊昂納多的《維特魯威人》的啟發(fā),我們預(yù)測(cè)了一個(gè)人臀部的中點(diǎn)、包圍整個(gè)人的圓的半徑以及連接肩部和臀部中點(diǎn)的連線的傾斜角。

另外,MediaPipie通過(guò)從GHUM模型中獲取到33個(gè)定位點(diǎn),用于對(duì)人體骨骼的完整檢測(cè),見(jiàn)下圖:

環(huán)境準(zhǔn)備

請(qǐng)確保你的Python環(huán)境中包含如下的庫(kù),才能順利完成依賴(lài)處理并安裝mediapipe

  • numpy
  • tensorflow
  • opencv

使用pip install mediapipe來(lái)安裝mediapipe模塊

pip install mediapipe

代碼實(shí)戰(zhàn)

我這里準(zhǔn)備了一個(gè)特別視頻用于檢測(cè)骨骼API檢測(cè)。但是在開(kāi)始之前,我們要先把我們使用的模塊導(dǎo)入進(jìn)來(lái)

import time
import cv2
import mediapipe as mp
import sys

首先我們初始化MediaPipe標(biāo)志點(diǎn)繪制器和MediaPipe姿態(tài)檢測(cè)器

# 初始化MediaPipe繪圖工具,以及樣式
mp_drawing = mp.solutions.drawing_utils
mp_drawing_styles = mp.solutions.drawing_styles
mp_pose = mp.solutions.pose

初始化OpenCV窗口

# 初始化OpenCV窗口
window = cv2.namedWindow("Gi", cv2.WINDOW_FULLSCREEN)

使用cv2.VideoCapture()讀取視頻

cap = cv2.VideoCapture('data.flv')

設(shè)置捕獲器的緩沖區(qū)大小

# 設(shè)置視頻緩沖區(qū)
cap.set(cv2.CAP_PROP_BUFFERSIZE, 2)

初始化FPS計(jì)數(shù)器和FPS計(jì)數(shù)時(shí)間

# 初始化FPS計(jì)時(shí)器和計(jì)數(shù)器
fps_start_time = 0
fps = 0

定義圖像處理函數(shù)processing()

# 定義Processing處理函數(shù)
def processing(image):
    # 使用cv2.putText繪制FPS
    cv2.putText(image, "FPS: {:.2f}".format(
        fps), (10, 85), cv2.FONT_HERSHEY_SIMPLEX, 3, (0, 255, 0), 3)
    # 使用image.flags.writeable = False將圖像標(biāo)記為只讀,以加快處理速度
    image.flags.writeable = False
    # 使用cv2.resize將圖像縮放到適合的尺寸
    image = cv2.resize(image, (640, 480))
    # 使用cv2.cvtColor將圖像轉(zhuǎn)換為RGB
    image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    # 使用MediaPipe Pose檢測(cè)關(guān)鍵點(diǎn)
    results = pose.process(image)
    # 解鎖圖像讀寫(xiě)
    image.flags.writeable = True
    # 將圖像轉(zhuǎn)換回BGR
    image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
    # 使用draw_landmarks()繪制關(guān)鍵點(diǎn)
    mp_drawing.draw_landmarks(
        image,
        results.pose_landmarks,
        mp_pose.POSE_CONNECTIONS,
        landmark_drawing_spec=mp_drawing_styles.get_default_pose_landmarks_style())
    # 返回處理后的圖像
    return image

初始化MediaPipe Pose類(lèi)并開(kāi)始進(jìn)行骨骼檢測(cè)

# 初始化MediaPipe Pose類(lèi)
with mp_pose.Pose(
        min_detection_confidence=0.5,
        min_tracking_confidence=0.5) as pose:
    # 當(dāng)視頻打開(kāi)時(shí)
    while cap.isOpened():
        # 讀取視頻幀和狀態(tài)
        success, image = cap.read()
        # 如果初始化失敗,則推出進(jìn)程
        if not success:
            print("")
            exit(1)
        # 初始化FPS結(jié)束點(diǎn)計(jì)時(shí)器
        fps_end_time = time.time()
        # 計(jì)算FPS
        fps = 1.0 / (fps_end_time - fps_start_time)
        # 重置FPS開(kāi)始點(diǎn)計(jì)時(shí)器
        fps_start_time = fps_end_time
        # 創(chuàng)建線程處理圖像
        image = processing(image)
        # 顯示圖像
        cv2.imshow('Gi', image)
        # 按下q鍵退出
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
cap.release()

運(yùn)行與效果

運(yùn)行腳本

python Baby.py

運(yùn)行結(jié)果如下圖:

總結(jié)

MediaPipe提供眾多的API供開(kāi)發(fā)者使用,例如:目標(biāo)識(shí)別,人臉識(shí)別,手部識(shí)別以及骨骼識(shí)別等等。通過(guò)內(nèi)置的卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行探測(cè),極大程度的節(jié)省了計(jì)算機(jī)視覺(jué)開(kāi)發(fā)者的開(kāi)發(fā)時(shí)間,提升了開(kāi)發(fā)效率。

到此這篇關(guān)于MediaPipe API實(shí)現(xiàn)骨骼識(shí)別功能分步講解流程的文章就介紹到這了,更多相關(guān)MediaPipe API骨骼識(shí)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決pyecharts運(yùn)行后產(chǎn)生的html文件用瀏覽器打開(kāi)空白

    解決pyecharts運(yùn)行后產(chǎn)生的html文件用瀏覽器打開(kāi)空白

    這篇文章主要介紹了解決pyecharts運(yùn)行后產(chǎn)生的html文件用瀏覽器打開(kāi)空白,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python入門(mén)必讀的if語(yǔ)句嵌套方法

    Python入門(mén)必讀的if語(yǔ)句嵌套方法

    這篇文章主要介紹了Python入門(mén)必讀的if語(yǔ)句嵌套,基于前面章節(jié)介紹的3種形式的條件語(yǔ)句,即if、if?else和if?elif?else展開(kāi)Python?if?語(yǔ)句嵌套的相關(guān)內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-03-03
  • Python入門(mén)教程之運(yùn)算符與控制流

    Python入門(mén)教程之運(yùn)算符與控制流

    本文主要針對(duì) Python 的運(yùn)算符和控制流進(jìn)行講解,這里只介紹 Python 中比較獨(dú)特的部分,和其他語(yǔ)言類(lèi)似的東西,比如加減乘除運(yùn)算符就不在介紹。由于這篇文章是入門(mén)級(jí)別的文章,高手可直接跳過(guò)。
    2016-08-08
  • python實(shí)現(xiàn)尋找最長(zhǎng)回文子序列的方法

    python實(shí)現(xiàn)尋找最長(zhǎng)回文子序列的方法

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)尋找最長(zhǎng)回文子序列的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • PyQt中實(shí)現(xiàn)自定義工具提示ToolTip的方法詳解

    PyQt中實(shí)現(xiàn)自定義工具提示ToolTip的方法詳解

    這篇文章主要為大家詳細(xì)介紹了PyQt中實(shí)現(xiàn)自定義工具提示ToolTip的方法詳解,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定幫助,需要的可以參考一下
    2022-05-05
  • python實(shí)現(xiàn)桌面托盤(pán)氣泡提示

    python實(shí)現(xiàn)桌面托盤(pán)氣泡提示

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)桌面托盤(pán)氣泡提示,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 詳解python??OpenCV如何使用背景分離方法

    詳解python??OpenCV如何使用背景分離方法

    這篇文章主要為大家介紹了python?OpenCV如何使用背景分離方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • python計(jì)算對(duì)角線有理函數(shù)插值的方法

    python計(jì)算對(duì)角線有理函數(shù)插值的方法

    這篇文章主要介紹了python計(jì)算對(duì)角線有理函數(shù)插值的方法,涉及Python數(shù)學(xué)運(yùn)算的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • Python可視化學(xué)習(xí)之seaborn調(diào)色盤(pán)

    Python可視化學(xué)習(xí)之seaborn調(diào)色盤(pán)

    seaborn是在matplotlib基礎(chǔ)上封裝的,所以matplotlib的調(diào)色盤(pán)seaborn都可以使用。本文系統(tǒng)介紹seaborn調(diào)色盤(pán),相較于matplotlib,有諸多不同,需要的可以參考一下
    2022-02-02
  • Python實(shí)現(xiàn)曲線擬合操作示例【基于numpy,scipy,matplotlib庫(kù)】

    Python實(shí)現(xiàn)曲線擬合操作示例【基于numpy,scipy,matplotlib庫(kù)】

    這篇文章主要介紹了Python實(shí)現(xiàn)曲線擬合操作,結(jié)合實(shí)例形式分析了Python基于numpy,scipy,matplotlib庫(kù)讀取csv數(shù)據(jù)、計(jì)算曲線擬合及圖形繪制相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07

最新評(píng)論

抚宁县| 陇南市| 尖扎县| 广昌县| 甘泉县| 榆社县| 临海市| 中超| 手机| 特克斯县| 西宁市| 塔城市| 新源县| 高青县| 怀宁县| 崇州市| 郁南县| 虹口区| 治多县| 莱西市| 达拉特旗| 施秉县| 巫溪县| 民丰县| 和田市| 通河县| 慈利县| 皮山县| 卓资县| 玉门市| 新乐市| 五常市| 清河县| 连山| 启东市| 墨脱县| 射阳县| 南和县| 巨鹿县| 华坪县| 无为县|