码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 姿态分析开源工具箱MMPose使用示例:2d手势估计


          MMPose的介绍及安装参考:https://blog.csdn.net/fengbingchun/article/details/126676309,这里给出2d手势估计的测试代码,论文:《Simple Baselines for Human Pose Estimation and Tracking》:

          (1).准备测试图像:原始图像来自网络

    1. image_path = "../../data/image/"
    2. image_name = "hand.png"

          (2).通过MMDetection模块检测手:

    1. def mmdet_hand_detection(device, image):
    2. path = "../../data/model/"
    3. checkpoint = "cascade_rcnn_x101_64x4d_fpn_20e_onehand10k-dac19597_20201030.pth"
    4. url = "https://download.openmmlab.com/mmpose/mmdet_pretrained/cascade_rcnn_x101_64x4d_fpn_20e_onehand10k-dac19597_20201030.pth"
    5. download_checkpoint(path, checkpoint, url)
    6. config = "../../src/mmpose/demo/mmdetection_cfg/cascade_rcnn_x101_64x4d_fpn_1class.py"
    7. model = init_detector(config, path+checkpoint, device)
    8. mmdet_results = inference_detector(model, image)
    9. # print(mmdet_results)
    10. hand_results = process_mmdet_results(mmdet_results)
    11. mat = cv2.imread(image)
    12. for result in hand_results:
    13. print("result:", result)
    14. cv2.rectangle(mat, (int(result['bbox'][0]), int(result['bbox'][1])), (int(result['bbox'][2]), int(result['bbox'][3])), (255, 0, 0), 1)
    15. cv2.imwrite("../../data/result_mmpose_2d_hand_detection.png", mat)
    16. cv2.imshow("show", mat)
    17. cv2.waitKey(0)
    18. return hand_results

     

          (3).下载手势估计模型:

    1. def download_checkpoint(path, name, url):
    2. if os.path.isfile(path+name) == False:
    3. print("checkpoint(model) file does not exist, now download ...")
    4. subprocess.run(["wget", "-P", path, url])
    5. path = "../../data/model/"
    6. checkpoint = "res50_onehand10k_256x256-e67998f6_20200813.pth"
    7. url = "https://download.openmmlab.com/mmpose/top_down/resnet/res50_onehand10k_256x256-e67998f6_20200813.pth"
    8. download_checkpoint(path, checkpoint, url)

           (4).根据配置文件和checkpoint文件构建手势估计模型:

    1. config = "../../src/mmpose/configs/hand/2d_kpt_sview_rgb_img/topdown_heatmap/onehand10k/res50_onehand10k_256x256.py"
    2. model = init_pose_model(config, path+checkpoint, device)

          (5).进行手势估计推理,输入包括检测到的手框

    1. pose_results, returned_outputs = inference_top_down_pose_model(model, image, hand_bbox_results, bbox_thr=None, format='xyxy')
    2. print(pose_results)

          (6).显示及保存结果:

    vis_pose_result(model, image, pose_results, radius=1, thickness=1, show=True, out_file="../../data/result_mmpose_2d_hand_pose_estimation.png")

          执行结果如下图所示:

     

          GitHub: https://github.com/fengbingchun/PyTorch_Test

  • 相关阅读:
    从0开始学汇编第二天:寄存器(CPU工作原理)
    【人因工程】人机交互接口概述
    深度优先算法(附视频)(两道例题,明白如何用dfs解题)(7-5 输出全排列)(7-10 整数分解为若干项之和)
    Java——继承下的抽象类与接口
    hive limit分页查询、row_number()分页查询
    CAPL 无法处理 xlsx 表格,Python老大哥曲线助攻
    maven.类包冲突解决案例
    一本通 1344【最短路】
    antd4 Table实现翻页勾选
    [附源码]java毕业设计商务酒店管理系统
  • 原文地址:https://blog.csdn.net/fengbingchun/article/details/126676729
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号