码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • HRNet 【demo 复现过程】


    HRNet 是一篇非常经典的关于2D 人体姿势检测的论文,昨天把demo跑通了,记录一下复现过程。

    论文题目:Deep High-Resolution Representation Learning for Human Pose Estimation
    发表时间:2019
    论文级别:Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)

    论文笔记

    HRNet 论文笔记

    代码复现

    • 创建虚拟环境
    conda create -n HRNet python=3.6
    
    • 1

    我是在 AutoDL服务器上跑的

    • 下载pytorch
      pytorch 地址:pytorch 官网,根据里面的指引,按照你环境类型复制下载命令。

    • 下载依赖,根据github源代码里的requirements.txt文件下载,使用下面命令:

    pip install -r requirements.txt
    
    • 1
    • Make libs:
    cd ${POSE_ROOT}/lib
    make
    
    • 1
    • 2

    这里的${POSE_ROOT}是你放源代码的位置

    • 创建文件夹:
    mkdir output 
    mkdir log
    
    • 1
    • 2

    最后文件夹的结构是下面的样子:

    ${POSE_ROOT}
    ├── data
    ├── experiments
    ├── lib
    ├── log
    ├── models
    ├── output
    ├── tools 
    ├── README.md
    └── requirements.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 下载预训练姿势检测器,下载到models文件夹中,下载地址为:https://drive.google.com/drive/folders/1hOTihvbyIxsm5ygDpbUuJ7O_tzv4oXjC?usp=sharing

    • 然后把你自己想检测的视频放在videos文件夹下(videos文件夹自己创建),最终的文件结构如下:

    HRNet 文件夹结构

    • 开始运行推理代码:
    python demo/inference.py --cfg demo/inference-config.yaml \
        --videoFile ../../multi_people.mp4 \
        --writeBoxFrames \
        --outputDir output \
        TEST.MODEL_FILE ../models/pytorch/pose_coco/pose_hrnet_w32_256x192.pth 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    运行代码过程中报错

    ModuleNotFoundError:No module named ‘lib’

    01 报错找不到模块,但是明明有这个自定义模块,最后看了博客

    ModuleNotFoundError:No module named ‘lib’

    受到启发,是因为没有在inference.py文件中导入初始化路径,在inference.py文件中加上以下代码:import _init_paths,然后_init_paths.py文件中这样写:

    2
    2.

    cannot connect to X server

    3
    上网查原因是因为项目中有显示图片的代码,但是因为服务器没有图形显示界面,所以不能显示出来。
    在inference.py文件中把显示图片的代码注释掉:

    5
    然后就可以正常运行,可以在output文件夹中看到很多帧图片以及一个视频

    6

    除了运行视频文件,还可以有其他参数,比如相机,图片,具体参数解释如下:

    7

    我挑选了图片参数进行测试,运行以下代码:

    python demo/demo.py --image test.jpg --showFps --write
    
    • 1

    这里要注意去inference-config.yaml 修改预训练模型和输出位置:我还修改了GPU的个数,我在服务器跑是有一个GPU的,但是运行demo的时候报错说CUDA参数错误,然后上网查了一下,可能是GPU数量不匹配,所以我改了GPUs为0,想不到就不报错了。

    8
    然后在demo.py中修改cfg的位置,
    9

    最终在output文件夹得到如下结果:
    10

  • 相关阅读:
    vue中动态style(如何动态修改伪元素样式)
    深入理解Spring注解机制(一):注解的搜索与处理机制
    jvm笔记:运行时数据区之方法区
    【社会网络分析第5期】gephi使用指南
    无CDN场景下的传统架构接入阿里云WAF防火墙的配置实践
    管理类联考——数学——汇总篇——知识点突破——数据分析——计数原理——排列组合——排队
    九州云获颁OpenInfra Days China“社区卓越领导力奖”,八大议题与你共话开源
    java-php-net-python-篮球网站文献综述计算机毕业设计程序
    UDS安全访问之27服务SecurityAccess
    【Java面试】反射中,Class.forName和classloader的区别是什么?
  • 原文地址:https://blog.csdn.net/qq_45257495/article/details/126407058
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号