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

基于Mediapipe+Opencv實現(xiàn)手勢檢測功能

 更新時間:2022年01月08日 12:25:14   作者:風吹落葉花飄蕩  
mediaPipe,他就是一個集成好的包括人臉關鍵位點識別、身體關鍵位點識別、手部關鍵位點識別的一個包或者庫,直接調(diào)用就能夠得到它的關鍵位點信息,本文給大家介紹Mediapipe+Opencv實現(xiàn)手勢檢測功能,感興趣的朋友一起看看吧

一、前言

基于Mediapipe+Opencv實現(xiàn)手勢檢測,想實現(xiàn)一下姿態(tài)識別的時候,感覺手勢識別也蠻重要的就過來順便實現(xiàn)一下。

下面是一些國內(nèi)的pip源,有需要可自取

阿里云 http://mirrors.aliyun.com/pypi/simple/

中國科技大學 https://pypi.mirrors.ustc.edu.cn/simple/

豆瓣(douban) http://pypi.douban.com/simple/

清華大學 https://pypi.tuna.tsinghua.edu.cn/simple/

中國科學技術大學 http://pypi.mirrors.ustc.edu.cn/simple/

二、環(huán)境配置

軟件:

ANACONDA3+Pycharm2019

環(huán)境:

  • opencv-python>=4.5.5
  • mediapipe>=0.8.9.1

注:一定關掉科學上網(wǎng)

三、全部源碼

比較短小且只有一個源文件MediapipeHandTracking.py我就直接在這里貼了

MediapipeHandTracking.py程序結(jié)構(gòu):

  • 第一步:保存mediapipe中的手勢識別解決方案到mpHands,hands,mpDraw中
  • 第二步:參數(shù)設定
  • 第三步:循環(huán)讀取視頻流到img,img輸入hands.hands函數(shù)得到結(jié)果,繪制結(jié)果到img并輸出

MediapipeHandTracking.py源碼與注釋

import cv2
import mediapipe as mp
import time
#第一步:保存mediapipe中的手勢識別解決方案到mpHands,hands,mpDraw中
mpHands = mp.solutions.hands #以下三個是mediapipe 中的API調(diào)用模板了
hands = mpHands.Hands(min_detection_confidence=0.5, min_tracking_confidence=0.5)#最小檢測置信度,最小追蹤置信度
mpDraw = mp.solutions.drawing_utils                              #獲取mediapipe解決方案的繪畫工具包
#第二步:參數(shù)設定
handLmsStyle = mpDraw.DrawingSpec(color=(0, 0, 255), thickness=3)#繪制手部關鍵點的顏色與粗細
handConStyle = mpDraw.DrawingSpec(color=(0, 255, 0), thickness=5)#繪制手部線條的顏色與粗細
pTime = 0 #和下面的cTime一起用于計算視頻輸入流FPS
cTime = 0
cap = cv2.VideoCapture(0) #打開編號為0的攝像頭,這個一般是自帶攝像頭
#第三步:循環(huán)讀取視頻流到img,img輸入hands.hands函數(shù)得到結(jié)果,繪制結(jié)果到img并輸出
while True:
    ret, img = cap.read()       #從cap中讀取圖片到img,并將讀取是否成功的結(jié)果保存在ret
    if ret:
        imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  #模型訓練的時候是使用RGB訓練,對于這個類型識別精度和速度比較高
        result = hands.process(imgRGB)                 #將RGB圖片輸入手部模型將結(jié)果保存在result
        # print(result.multi_hand_landmarks)           #打印result.multi_hand_landmarks內(nèi)容,可以去掉試一下
        imgHeight = img.shape[0]       #獲取攝像機圖片的高
        imgWidth = img.shape[1]        #獲取攝像機圖片的寬
        if result.multi_hand_landmarks:#如果multi_hand_landmarks不為空進入循環(huán)
            for handLms in result.multi_hand_landmarks:  #遍歷multi_hand_landmarks內(nèi)每一個hand_landmark(手部關鍵點),相對于遍歷圖片中每一個手
                mpDraw.draw_landmarks(img, handLms, mpHands.HAND_CONNECTIONS, handLmsStyle, handConStyle) #調(diào)用mediapipe內(nèi)繪畫工具包繪畫手部關鍵點
                for i, lm in enumerate(handLms.landmark):  #i保存第幾個手部關鍵點,lm保存該點在圖中的歸一化值
                    xPos = int(lm.x * imgWidth) #第i個關鍵點x
                    yPos = int(lm.y * imgHeight)#第i個關鍵點y
                    cv2.putText(img, str(i), (xPos-25, yPos+5), cv2.FONT_HERSHEY_SIMPLEX, 0.4, (0, 0, 255), 2)#繪制關鍵點在,關鍵點左邊靠下一點
                    if i == 8:#當畫到第八個關鍵點時
                         cv2.circle(img, (xPos, yPos), 10, (166, 0, 0), cv2.FILLED)#畫一個圓
                         #print(i, xPos, yPos)   #打印繪制這個點時候的坐標
        cTime = time.time()
        fps = 1/(cTime-pTime)
        pTime = cTime
        cv2.putText(img, f"FPS : {int(fps)}", (30, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 3) #繪制FSP到圖中
        cv2.imshow('img', img) #輸出圖片
    if cv2.waitKey(1) == ord('q'):#點擊視頻,輸入q退出
        break

四、環(huán)境配置

1、在Anaconda3上新建環(huán)境Gesture

打開Anaconda Prompt,輸入:

conda create -n Gesture python=3.8

2、激活Gesture環(huán)境并下載opencv-python包

激活環(huán)境:conda activate Gesture
下載opencv-python包:pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple/

3、下載mediapipe包

pip install mediapipe -i https://pypi.tuna.tsinghua.edu.cn/simple/

4、打開Pycharm完成環(huán)境導入項目

配置代碼運行環(huán)境

 

五、運行程序:

用Pycharm打開包含hanTracking.py程序的文件夾,并運行

運行結(jié)果

六、程序應用擴展

1、手部的關鍵點的位置和次序我們?nèi)恳阎奶攸c

該功能可用于圖片ROI提取截取出圖片,然后進行其他一些圖片操作。
該功能可用于手勢響應事件。比如約定,食指和大拇指也就是4號和8號觸碰時候觸發(fā)某事件
,等等。
實現(xiàn)AL+操作

2、和其他AL結(jié)合

比如姿態(tài)檢測AL,能將人識別成一個火柴人,開發(fā)空間有不少用處。

3、全身檢測源碼

import cv2
import time
import mediapipe as mp
mp_drawing = mp.solutions.drawing_utils
mp_holistic = mp.solutions.holistic
holistic = mp_holistic.Holistic(min_detection_confidence=0.5, min_tracking_confidence=0.5)
handLmsStyle = mp_drawing.DrawingSpec(color=(0, 0, 255), thickness=0)#繪制手部關鍵點的顏色與粗細
handConStyle = mp_drawing.DrawingSpec(color=(0, 255, 0), thickness=4)#繪制手部線條的顏色與粗細
cap = cv2.VideoCapture(0)
while True:
    ret,image=cap.read()
    if ret:
        image = cv2.flip(image, 1)
        image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
        results = holistic.process(image)
        if results.pose_landmarks:
            mp_drawing.draw_landmarks(image, results.face_landmarks, mp_holistic.FACEMESH_CONTOURS,handLmsStyle,handConStyle)
            mp_drawing.draw_landmarks(image, results.left_hand_landmarks, mp_holistic.HAND_CONNECTIONS)
            mp_drawing.draw_landmarks(image, results.right_hand_landmarks, mp_holistic.HAND_CONNECTIONS)
            mp_drawing.draw_landmarks(image, results.pose_landmarks, mp_holistic.POSE_CONNECTIONS)
        cv2.imshow("img",image)
        if cv2.waitKey(1)==ord("q"):
            break
holistic.close()

運行效果如下:
曬曬我?guī)洑獾纳嵊?/p>

請?zhí)砑訄D片描述

到此這篇關于基于Mediapipe+Opencv實現(xiàn)手勢檢測的文章就介紹到這了,更多相關Opencv手勢檢測內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • anaconda中Conda創(chuàng)建虛擬環(huán)境的實現(xiàn)步驟

    anaconda中Conda創(chuàng)建虛擬環(huán)境的實現(xiàn)步驟

    在Anaconda中,可以使用conda命令來創(chuàng)建和管理虛擬環(huán)境,本文主要介紹了anaconda中Conda創(chuàng)建虛擬環(huán)境的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • Python中的hypot()方法使用簡介

    Python中的hypot()方法使用簡介

    這篇文章主要介紹了Python中的hypot()方法使用簡介,是Python入門所需掌握的基礎知識,需要的朋友可以參考下
    2015-05-05
  • Python對多個sheet表進行整合實例講解

    Python對多個sheet表進行整合實例講解

    在本篇文章里小編給大家整理的是一篇關于Python對多個sheet表進行整合實例講解內(nèi)容,有興趣的朋友們可以學習下。
    2021-04-04
  • Python數(shù)據(jù)分析之matplotlib繪圖詳解

    Python數(shù)據(jù)分析之matplotlib繪圖詳解

    這篇文章主要為大家詳細介紹了Python數(shù)據(jù)分析之如何利用matplotlib進行繪圖,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-09-09
  • python修改txt文件中的某一項方法

    python修改txt文件中的某一項方法

    今天小編就為大家分享一篇python修改txt文件中的某一項方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python使用XPath解析HTML的方法詳解

    Python使用XPath解析HTML的方法詳解

    XPath是一種用于選擇XML文檔中節(jié)點的語言,它可以通過路徑表達式來定位節(jié)點。本文將介紹Python中使用XPath解析HTML文檔的方法和技巧,需要的可以參考下
    2023-05-05
  • 淺談pytorch中的nn.Sequential(*net[3: 5])是啥意思

    淺談pytorch中的nn.Sequential(*net[3: 5])是啥意思

    這篇文章主要介紹了pytorch中的nn.Sequential(*net[3: 5])是啥意思,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • 最新評論

    定襄县| 修水县| 荆州市| 岑溪市| 和林格尔县| 河北省| 富裕县| 宿州市| 东宁县| 逊克县| 密山市| 延庆县| 呼图壁县| 新竹县| 武义县| 灯塔市| 西青区| 临夏市| 金秀| 成安县| 道孚县| 项城市| 中阳县| 平陆县| 志丹县| 清丰县| 鹿邑县| 陇南市| 武汉市| 沙河市| 江油市| 汾西县| 宜都市| 中宁县| 巢湖市| 镇巴县| 金寨县| 兴义市| 武强县| 临武县| 砚山县|