参考:https://google.github.io/mediapipe/solutions/hands

函数式

import cv2
import mediapipe as mp
import time
import os
import randomdef video_ope(file):switch = Truecap = cv2.VideoCapture(file)myhands= mp.solutions.handshands = myhands.Hands()myDraw = mp.solutions.drawing_utilsframe = 0 while(True):ret, img = cap.read()img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)results = hands.process(img_rgb)if (results.multi_hand_landmarks):for  handLms in results.multi_hand_landmarks:for id,lm in enumerate(handLms.landmark):h,w,c  = img.shapecx,cy = int(lm.x*w),int(lm.y*h)print (id,cx,cy)if id == 0:cv2.circle(img,(cx,cy),15,(255,0,0),cv2.FILLED)else:cv2.circle(img,(cx,cy),8,(0,255,5),cv2.FILLED)myDraw.draw_landmarks(img,handLms,myhands.HAND_CONNECTIONS)frame +=1cv2.putText(img,str(int(frame)),(10,70),cv2.FONT_HERSHEY_PLAIN,3,(255,0,255),3)cv2.imshow("Frame", img)key = cv2.waitKey(1) & 0xFFif  key == ord('s'):switch = Trueif key== ord('q'):switch = Falseif key== 27:breakcap.release()cv2.destroyAllWindows()def main():file = "video/anime.mp4"video_ope(file)if __name__=="__main__":main()

模块化

import cv2
import mediapipe as mp
import timeclass handDetector():def __init__(self, mode=False, maxHands=2, detectionCon=0.5, trackCon=0.5):self.mode = modeself.maxHands = maxHandsself.detectionCon = detectionConself.trackCon = trackConself.mpHands = mp.solutions.handsself.hands = self.mpHands.Hands(self.mode, self.maxHands,self.detectionCon, self.trackCon)self.mpDraw = mp.solutions.drawing_utilsdef findHands(self, img, draw=True):imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) results = self.hands.process(imgRGB)if results.multi_hand_landmarks:for handLms in results.multi_hand_landmarks:if draw:for id,lm in enumerate(handLms.landmark):h,w,c  = img.shapecx,cy = int(lm.x*w),int(lm.y*h)if id == 0:cv2.circle(img,(cx,cy),15,(255,0,0),cv2.FILLED)else:cv2.circle(img,(cx,cy),8,(0,255,5),cv2.FILLED)self.mpDraw.draw_landmarks(img, handLms,self.mpHands.HAND_CONNECTIONS)return imgdef main(file):if file!="":cap = cv2.VideoCapture(file)else:cap = cv2.VideoCapture(0)detector = handDetector()frame = 0while True:success, img = cap.read()img = detector.findHands(img)frame +=1cv2.putText(img, str(int(frame)), (10, 70), cv2.FONT_HERSHEY_PLAIN, 3,(255, 255, 255), 2)cv2.imshow("Image", img)cv2.waitKey(1)key = cv2.waitKey(1) & 0xFFif  key == ord('s'):switch = Trueif key== ord('q'):switch = Falseif key== 27:breakcap.release()cv2.destroyAllWindows()if __name__ == "__main__":file = "video/anime.mp4"main(file)

结果

【人体关键点定位】mediapipe_手部定位(一)相关推荐

  1. torchvision使用keypoint rcnn 进行人体关键点定位

    系统:Windows 11 pytorch版本:1.11.0 torchvision版本:0.12.0 使用图片地址:vision/person1.jpg at main · pytorch/visi ...

  2. MS COCO数据集人体关键点评估(Keypoint Evaluation)(来自官网)

    COCO系列文章: MS COCO数据集目标检测评估(Detection Evaluation)(来自官网) MS COCO数据集人体关键点评估(Keypoint Evaluation)(来自官网) ...

  3. 行为分析(十):姿态估计部分(六):人体关键点(keypoints)生成算法综述

    **写在前面的话通常很重要 对于行为分析任务,可以分为视频帧分类和依据人体关键点判定两个解决方向 而依据人体关键点判定又可以分为单人检测和多人检测 多人检测又可以分为top-down和bottom-u ...

  4. 快速上手百度大脑人体关键点识别

    作者:wangwei8638 人体关键点识别能够检测图像中的人体并返回人体矩形框位置,精准定位21个核心关键点,包含头顶.五官.颈部.四肢主要关节部位,支持多人检测.大动作等复杂场景.本文以瑜伽动作为 ...

  5. 百度AI攻略:人体关键点识别

    第四期[百度大脑新品体验]人体关键点识别 1.功能描述: 检测图像中的人体并返回人体矩形框位置,精准定位21个核心关键点,包含头顶.五官.颈部.四肢主要关节部位,支持多人检测.大动作等复杂场景 2.平 ...

  6. 【百度大脑新品体验】人体关键点识别

    [百度大脑新品体验]人体关键点识别 作者:才能我浪费99 1.功能描述: 检测图像中的人体并返回人体矩形框位置,精准定位21个核心关键点,包含头顶.五官.颈部.四肢主要关节部位,支持多人检测.大动作等 ...

  7. 人体模型 java代码_【人体分析-人体关键点识别】-Java示例代码

    接口说明:http://ai.baidu.com/forum/topic/show/497747 人体关键点识别,即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片中的所有人体的14个关键点, ...

  8. OpenMMLab AI实战营第二期|人体关键点检测与MMPose学习笔记

    OpenMMLab AI实战营第二期|人体关键点检测与MMPose学习笔记 文章目录 OpenMMLab AI实战营第二期|人体关键点检测与MMPose学习笔记 一.前言 1.1 人体姿态概述 1.2 ...

  9. OpenMMLab-AI实战营第二期——2-1.人体关键点检测与MMPose

    文章目录 1. 人体姿态估计的介绍和应用 2-1. 2D姿态估计概述 2.1 任务描述 2.2 基于回归 2.3 基于热力图 2.3.1 从数据标注生成热力图(高斯函数) 2.3.2 使用热力图训练模 ...

最新文章

  1. WCF实例 - 简介
  2. javap(反汇编命令)详解
  3. mysql如何开启对外连接?
  4. mysql/mariadb 安装开启spinx引擎
  5. 服务端AppWeb与PC管理端配合使用的有关说明
  6. 【原创】CPU 100%+磁盘写满 问题排查
  7. 思科、华为、华三交换机的线缆检测功能
  8. Nexus下载构件失败
  9. 将本地无损音乐上传到Apple Music中使用。
  10. 在Eclipse中安装Maven插件
  11. spoonwep下载地址
  12. 产品经理应该多读哪些书?
  13. python添加pip环境变量win7_windows环境下面配置pip环境变量
  14. 中国建设银行信息技术类校招笔试心得
  15. python用来自动修改pdf_Python不加班:5分钟学会自动给PDF加水印
  16. 钉钉/微信开放平台加解密(钉钉/微信加密解密) 钉钉/微信AES 加密解密
  17. 使用Timer实现Flutter启动页
  18. 叉号在word中的字符代码_如何在Word中手动创建复合字符
  19. Win10修改编辑hosts文件无法保存怎么办
  20. MACOS Terminal终端:更改zsh模式到bash模式(切换shell)

热门文章

  1. java丰桥顺丰路由接口调用
  2. 做好软件测试才能提升应用质量
  3. 电视TV端使用RecyclerView开发遇到的问题
  4. top1与top5错误率
  5. 解决一个安装office2016缺少vcruntime140.dll的问题
  6. 虚拟机和宿主机实现连接
  7. 前端学习之前后端分离接口
  8. 优克联与伦敦合作伙伴携手,为欧洲夏季旅游重新开放做准备
  9. 电脑技巧:推荐五款非常棒的小众软件,值得收藏
  10. 整理下react.hooks