实时手势识别 【手部跟踪】Mediapipe中的hand

参考链接:

1)github代码链接:https://github.com/google/mediapipe

2)说明文档:https://google.github.io/mediapipe

3)python环境配置文档:https://google.github.io/mediapipe/getting_started/python

4)API简单调用的使用文档:https://google.github.io/mediapipe/solutions/hands#python-solution-api

0.环境准备
python环境配置文档:https://google.github.io/mediapipe/getting_started/python

ubuntu20.04
cuda11.2
python3.8
opencv-python==4.1.2.30
mediapipe==0.8.2
 
sudo apt install -y protobuf-compiler
sudo apt install -y cmake
1.简介
稍微说明下,文档基本在第一个链接中,python中是通过安装mediapipe的pypi库,调用API来用的。

说明文档:https://google.github.io/mediapipe

import cv2
import mediapipe as mp
mp_drawing = mp.solutions.drawing_utils
mp_hands = mp.solutions.hands
file_list=[]
# For static images:
hands = mp_hands.Hands(static_image_mode=True,max_num_hands=2,min_detection_confidence=0.5)
for idx, file in enumerate(file_list):# Read an image, flip it around y-axis for correct handedness output (see# above).image = cv2.flip(cv2.imread(file), 1)# Convert the BGR image to RGB before processing.results = hands.process(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))# Print handedness and draw hand landmarks on the image.print('Handedness:', results.multi_handedness)if not results.multi_hand_landmarks:continueimage_hight, image_width, _ = image.shapeannotated_image = image.copy()for hand_landmarks in results.multi_hand_landmarks:print('hand_landmarks:', hand_landmarks)print(f'Index finger tip coordinates: (',f'{hand_landmarks.landmark[mp_hands.HandLandmark.INDEX_FINGER_TIP].x * image_width}, 'f'{hand_landmarks.landmark[mp_hands.HandLandmark.INDEX_FINGER_TIP].y * image_hight})')mp_drawing.draw_landmarks(annotated_image, hand_landmarks, mp_hands.HAND_CONNECTIONS)cv2.imwrite('/tmp/annotated_image' + str(idx) + '.png', cv2.flip(annotated_image, 1))
hands.close()# For webcam input:
hands = mp_hands.Hands(min_detection_confidence=0.5, min_tracking_confidence=0.5)
cap = cv2.VideoCapture(0)
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# Flip the image horizontally for a later selfie-view display, and convert# the BGR image to RGB.image = cv2.cvtColor(cv2.flip(image, 1), cv2.COLOR_BGR2RGB)# To improve performance, optionally mark the image as not writeable to# pass by reference.image.flags.writeable = Falseresults = hands.process(image)# Draw the hand annotations on the image.image.flags.writeable = Trueimage = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)if results.multi_hand_landmarks:for hand_landmarks in results.multi_hand_landmarks:mp_drawing.draw_landmarks(image, hand_landmarks, mp_hands.HAND_CONNECTIONS)cv2.imshow('Hands', image)if cv2.waitKey(5) & 0xFF == 27:break
hands.close()
cap.release()

基于Openpose改进的Python纯CPU深度学习实时识别手势和检测手指关节点

任何程序错误,以及技术疑问或需要解答的,请添加

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547024.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react native仿微信性别选择-自定义弹出框

简述 要实现微信性别选择需要使用两部分的技术: 第一、是自定义弹出框; 第二、单选框控件使用; 效果 实现 一、配置弹出框 弹出框用的是:react-native-popup-dialog(Git地址:https://github.com/jacklam…

斯蒂芬斯蒂芬但是当时发生的s

2019独角兽企业重金招聘Python工程师标准>>> 什么是啊啊啊啊啊啊啊 "> 转载于:https://my.oschina.net/ivanfjz/blog/190114

Error processing line 1 of vision-1.0.0-py3.6-nspkg.pth AttributeError: ‘NoneType‘ object has no

最近调试代码不知道安装什么包导致代码运行的时候出现报错 AttributeError: NoneType object has no attribute loader ,虽然代码也能运行通过,但是报错还是很不舒服。 Remainder of file ignored Error processing line 1 of D:\Anaconda3\envs\fastrc…

react native一键分享功能实现amp;原理和注意点(支持微信、qq、新浪微博等)

前言 目前使用一键分享比较主流的两个SDK:ShareSDK、友盟; 又因为友盟功能比较多且比较全,比如说友盟统计、友盟推送等,所以本文重点介绍的是友盟分享功能在rn上的应用以及要注意的点。 react native绑定SDK两种方案&#xff08…

华为交换机S3700清空配置方法

1、用户视图下输入:reset saved-configuration;输入:Y,确认清除 2、输入:reboot;重启系统(第1次提示输入:N 不保存配置;第2次提示输入:Y 确认重启&#xff0…

Udp通讯(零基础)

前面学习了Tcp通讯之后听老师同学们讲到Udp也可以通讯,实现还要跟简单,没有繁琐的连接,所以最近学习了一下,记录下来以便忘记,同时也发表出来与大家相互学习,下面是我自己写的一个聊天例子,实现…

VOC数据集格式转化成COCO数据集格式

VOC数据集格式转化成COCO数据集格式 一、唠叨 之前写过一篇关于coco数据集转化成VOC格式的博客COCO2VOC,最近读到CenterNet的官方代码,实现上则是将voc转化成coco数据格式,这样的操作我个人感觉很不习惯,也觉得有些奇葩&…

华为交换机S3700端口基本配置

1.配置AAA验证方式的用户名和密码(配置用户名admin,加密密码:admin@123,接入类型:telnet) 进入系统视图后 aaa local-user admin password cipher admin@123 local-user admin service-type telnet2.交换机配置端口为access方法 进入系统视图后 interface Ethernet0/0/2…

react native android6+拍照闪退或重启的解决方案

前言 android 6权限使用的时候需要动态申请&#xff0c;那么在使用rn的时候要怎么处理拍照权限问题呢&#xff1f;本文提供的是一揽子rn操作相册、拍照的解决方案&#xff0c;请看正文的提高班部分。 解决步骤 1、AndroidManifest.xml设置拍照权限&#xff1a; <uses-perm…

JavaScript中Object.keys、Object.getOwnPropertyNames区别

定义 Object.keys 定义&#xff1a;返回一个对象可枚举属性的字符串数组&#xff1b; Object.getOwnPropertyNames 定义&#xff1a;返回一个对象可枚举、不可枚举属性的名称&#xff1b; 属性的可枚举性、不可枚举性 定义&#xff1a;可枚举属性是指那些内部 “可枚举” …

yii框架cookie写入与读取方法

写入cookie: $cookie Yii::app()->request->getCookies(); unset($cookie[$name]); 读取cookie: $cookie Yii::app()->request->getCookies(); echo $cookie[mycookie]->value; 网站查询转载于:https://www.cnblogs.com/itxueba/p/3505979.html

华为交换机基本查询、目录、文件操作命令

1.基本查询命令(在用户视图下使用) pwd 查看当前目录 dir 显示当前目录下的文件信息 more 查看文本文件的具体内容 2.基本目录操作命令(在用户视图下使用) cd 切换目录 mkdir 创建新的目录 rmdir 删除目录 cd… 返回上级目录 3.基本文本操作命令(在用户视图下使用) cop…

学术论文SCI、期刊、毕业设计中的图表专用软件

Origin Origin是由OriginLab公司开发的一个科学绘图、数据分析软件&#xff0c;支持在Microsoft Windows下运行。Origin支持各种各样的2D/3D图形。Origin中的数据分析功能包括统计&#xff0c;信号处理&#xff0c;曲线拟合以及峰值分析。 Origin中的曲线拟合是采用基于Lever…

常用的学术论文图表(折线图、柱状图)matplotlib python代码模板

最终选用了pythonMatplotlib。Matplotlib是著名Python的标配画图包&#xff0c;其绘图函数的名字基本上与 Matlab 的绘图函数差不多。优点是曲线精致&#xff0c;软件开源免费&#xff0c;支持Latex公式插入&#xff0c;且许多时候只需要一行或几行代码就能搞定。 然后小编经过…

史上最详细nodejs版本管理器nvm的安装与使用(附注意事项和优化方案)

使用场景 在Node版本快速更新迭代的今天&#xff0c;新老项目使用的node版本号可能已经不相同了&#xff0c;node版本更新越来越快&#xff0c;项目越做越多&#xff0c;node切换版本号的需求越来越迫切&#xff0c;传统卸载一个版本在安装另一个版本的方式太过于麻烦&#xf…

华为交换机配置当前时区、日期和时间等参数

1.华为交换机时区设置 UTC和GMT 整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated)。UTC与格林尼治平均时(GMT, Greenwich Mean Time)一样,都与英国伦敦的本地…

qtp:exit 函数

1、ExitAction() 退出当前操作&#xff0c;无论其本地&#xff08;操作&#xff09;循环属性是什么。2、ExitActionIteration() 退出操作的当前循环。3、ExitComponent()退出当前组件并继续业务流程测试中的下一个组件&#xff0c;无论组件的循环设置是什么。4、ExitComponentI…

【TensorFlow】 基于视频时序LSTM的行为动作识别

简介 本文基于LSTM来完成用户行为识别。数据集来源&#xff1a;https://archive.ics.uci.edu/ml/machine-learning-databases/00240/ 此数据集一共有6种行为状态&#xff1a; 行走&#xff1b; 站立&#xff1b; 躺下&#xff1b; 坐下&#xff1b; 上楼&#xff1b; 下楼&am…

javascript数组去重方法汇总

前言 数组去重已经是一个老生常谈的问题了&#xff0c;依然经久不息&#xff0c;经过岁月的变迁es标准的升级迭代&#xff0c;似乎有越来越多的方法和方式供我们使用&#xff0c;那么那种方式才是最优的&#xff1f;那种才是最简洁的&#xff1f;这个我们一起来探讨。 省略&am…

华为交换机认证aaa模式创建本地用户

在系统视图下 telnet server enable //enable选项开启Telnet服务 (普通系列一般为这个) user-interface vty 0 4 protocol inbound telnet //配置vty支持telnet协议 authentication-mode aaa user privilege level 15 aaa local-user admin password cipher admin@123 lo…