【人体关键点定位】mediapipe_手部定位(一)
参考: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_手部定位(一)相关推荐
- torchvision使用keypoint rcnn 进行人体关键点定位
系统:Windows 11 pytorch版本:1.11.0 torchvision版本:0.12.0 使用图片地址:vision/person1.jpg at main · pytorch/visi ...
- MS COCO数据集人体关键点评估(Keypoint Evaluation)(来自官网)
COCO系列文章: MS COCO数据集目标检测评估(Detection Evaluation)(来自官网) MS COCO数据集人体关键点评估(Keypoint Evaluation)(来自官网) ...
- 行为分析(十):姿态估计部分(六):人体关键点(keypoints)生成算法综述
**写在前面的话通常很重要 对于行为分析任务,可以分为视频帧分类和依据人体关键点判定两个解决方向 而依据人体关键点判定又可以分为单人检测和多人检测 多人检测又可以分为top-down和bottom-u ...
- 快速上手百度大脑人体关键点识别
作者:wangwei8638 人体关键点识别能够检测图像中的人体并返回人体矩形框位置,精准定位21个核心关键点,包含头顶.五官.颈部.四肢主要关节部位,支持多人检测.大动作等复杂场景.本文以瑜伽动作为 ...
- 百度AI攻略:人体关键点识别
第四期[百度大脑新品体验]人体关键点识别 1.功能描述: 检测图像中的人体并返回人体矩形框位置,精准定位21个核心关键点,包含头顶.五官.颈部.四肢主要关节部位,支持多人检测.大动作等复杂场景 2.平 ...
- 【百度大脑新品体验】人体关键点识别
[百度大脑新品体验]人体关键点识别 作者:才能我浪费99 1.功能描述: 检测图像中的人体并返回人体矩形框位置,精准定位21个核心关键点,包含头顶.五官.颈部.四肢主要关节部位,支持多人检测.大动作等 ...
- 人体模型 java代码_【人体分析-人体关键点识别】-Java示例代码
接口说明:http://ai.baidu.com/forum/topic/show/497747 人体关键点识别,即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片中的所有人体的14个关键点, ...
- OpenMMLab AI实战营第二期|人体关键点检测与MMPose学习笔记
OpenMMLab AI实战营第二期|人体关键点检测与MMPose学习笔记 文章目录 OpenMMLab AI实战营第二期|人体关键点检测与MMPose学习笔记 一.前言 1.1 人体姿态概述 1.2 ...
- OpenMMLab-AI实战营第二期——2-1.人体关键点检测与MMPose
文章目录 1. 人体姿态估计的介绍和应用 2-1. 2D姿态估计概述 2.1 任务描述 2.2 基于回归 2.3 基于热力图 2.3.1 从数据标注生成热力图(高斯函数) 2.3.2 使用热力图训练模 ...
最新文章
- WCF实例 - 简介
- javap(反汇编命令)详解
- mysql如何开启对外连接?
- mysql/mariadb 安装开启spinx引擎
- 服务端AppWeb与PC管理端配合使用的有关说明
- 【原创】CPU 100%+磁盘写满 问题排查
- 思科、华为、华三交换机的线缆检测功能
- Nexus下载构件失败
- 将本地无损音乐上传到Apple Music中使用。
- 在Eclipse中安装Maven插件
- spoonwep下载地址
- 产品经理应该多读哪些书?
- python添加pip环境变量win7_windows环境下面配置pip环境变量
- 中国建设银行信息技术类校招笔试心得
- python用来自动修改pdf_Python不加班:5分钟学会自动给PDF加水印
- 钉钉/微信开放平台加解密(钉钉/微信加密解密) 钉钉/微信AES 加密解密
- 使用Timer实现Flutter启动页
- 叉号在word中的字符代码_如何在Word中手动创建复合字符
- Win10修改编辑hosts文件无法保存怎么办
- MACOS Terminal终端:更改zsh模式到bash模式(切换shell)