最近有个小项目要搞姿态识别,简单调研了一下2D的识别:

基本上是下面几种

  • (单人)single person

    • 直接关键点回归
    • heatmap,感觉其实就是把一个点的标签弄成一个高斯分布
  • (多人)multi person
    • 自顶向下:先把人圈出来,再针对单个人做检测
    • 自底向上:把所有关键点弄出来,再聚合适配到个人

这个不是本文重点,笔者也还没吃透,可以看这篇综述:Deep Learning-Based Human Pose Estimation: A Survey

作者试过几个模型:openpose,alpahposemediapipe,使用体验如下:

  • openpose流行度很高,效果也不错,就是有点慢,fps比较低
  • alphapose效果和速度都很满意,比较重量级
  • mediapipe效果速度都很好,使用体验超级棒,封装太好了

作者打算从头到尾完整地训练一个自己地数据集合,并且要求速度为第一位,精度达到要求即可,经过简单调研,上面几个虽然很不错,但是系统学习下来成本可能比较高,所以后面再弄,打算从2018年的这篇lightweight openpose开始学习,看一下这个introduction就知道为啥先弄这个了:

速度和精度都不错,关键是论文才5页,下面是论文和代码链接,体量都不大,正好适合练手:

环境配置

requirement.txt内容如下:


torch>=0.4.1
torchvision>=0.2.1
pycocotools==2.0.0
opencv-python>=3.4.0.14
numpy>=1.14.0

首先配置pytorch环境,按照pytorch官网即可,然后安装opencv-python

pip install opencv-python

有一个包pycocotools==2.0.0,死活装不上,

参考了两个博客:

解决方案如第一篇博客的第一种方法,直接下载对应版本的.whl文件,下载链接在第二篇博客里面,从清华镜像搜索下载也行,然后运行

pip install pycocotools_windows-2.0-cp37-cp37m-win_amd64.whl

注:如果采用第一篇博客所述第二种方法,直接安装一个visual studio,应该也是可以的,只是比较麻烦;如果采用所述第三种方法,这时候bug就来了,采用Microsoft Visual C++ Build Tools来解决貌似是不错的解决方式,但是每次安装到一般就提示安装包错误什么的,换了几个博客推荐的下载都不行,放弃此方法,采用第一种或第二种即可。

测试python的demo

下载作者训练好的checkpoint

配置好环境之后,运行如下命令应该就会打开一个摄像头,实时检测:

python demo.py --checkpoint-path checkpoint_iter_370000.pth --video 0

成功运行!有问题的小伙伴可以关注留言交流哈~

lightweight openpose 入门实操笔记(pytorch环境)的更多相关文章

  1. harbor安装实操笔记

    纸上得来终觉浅,实操一遍吧! 把所有开发的后端服务先在打成镜像,传到私有镜像仓库: 然后在任意的远程机器拉取镜像,然后可采用docker或者docker-compose的方式运行,本节先按照docke ...

  2. TensorFlow入门实操课程第一章练习笔记

    在本练习中,您将尝试构建一个神经网络,让它根据一个简单的公式来预测房屋的价格. 想象一下,如果房子的定价很简单,带一间卧室的房子价格是5万+5万,那么一间卧室的房子要花10万元:两间卧室的房子就要花1 ...

  3. TensorFlow入门实操课程第一章教程笔记

    神经元网络深度学习的起步程序 Hello World 第一个应用程序总是应该从超级简单的东西开始,这样可以看到代码如何产生和运作的整体框架. 就创建神经网络而言,我喜欢使用的例子是一个能够学习两组数字 ...

  4. GitLab-CI/CD入门实操

    以Spring boot项目为例.传统方式是本地生成jar包,FTP上传服务器,重启服务:如果是内网测试服,也可以在服务器上安装git,在服务器上编译打包.但这都需要人为干预,于是CI/CD就出现了. ...

  5. 【实操笔记】MySQL主从同步功能实现

    写在前边: 这两天来了个需求,配置部署两台服务器的MySQL数据同步,折腾了两天查了很多相关资料,一直连不上,后来发现其实是数据库授权的ip有问题,我们用的服务器是机房中的虚拟机加上反向代理出来的,坑 ...

  6. Hadoop1.2.1 全然分布式集群搭建实操笔记

    前期准备工作: 1.改动Linux主机名:/etc/hostname                         ubuntu系统:vi /etc/hostname                 ...

  7. linux实操_shell设置环境变量

    1.定义环境变量 在/etc/profile文件中定义一个环境变量 2.查看环境变量 echo $WDC_HOME 3.在shell程序中实用WDC_HOME

  8. 实操笔记:为 NSQ 配置监控服务的心路历程

    在 Go 语言实现的实时消息队列中, NSQ 的热度可以排第一. NSQ 这款消息中间件简单易用,其设计目标是为在分布式环境下运行,为去中心化服务提供一个强大的基础架构.它具有分布式.去中心化的拓扑结 ...

  9. mysql数据库实操笔记20170418

    一.建立商品分类表和价格表: 1.分类表`sankeq``sankeq`CREATE TABLE cs_mysql11(id INT(11) NOT NULL AUTO_INCREMENT,categ ...

随机推荐

  1. ELK太重?试试KFC日志采集

    写在前面 ELK三剑客(ElasticSearch,Logstash,Kibana)基本上可以满足日志采集.信息处理.统计分析.可视化报表等一些日志分析的工作,但是对我们来说--太重了,并且技术栈不是 ...

  2. 【Vulnhub】DC-2靶机

    Vulnhub DC-2 靶机 信息搜集 访问web端发现访问不了,可以观察到相应的URL为域名而不是IP,需要在hosts文件种添加一条DNS记录. host位置:C:\Windows\System ...

  3. 生成树-RSTP基础配置

    实验内容: 一.实验拓扑: 二.实验编址: 三.实验步骤: 1. 基本IP配置 2.启动设备 3.测试连通性 4.配置RSTP基本功能: 华为交换机默认开启了MSTP生成树模式,所以我们修改生成树模式 ...

  4. MySQL 条件查询

    查询条件 having having的功能和where一样,都是用来筛选查询,不同的是,where在分组之前用,having必须在分组之后使用. # 查询每个部门大于30岁的平均工资,并且保留平均工资 ...

  5. SQL 练习9

    查询学过「张三」老师授课的同学的信息 SELECT Student.* from Student,Teacher,Course,SC WHERE Teacher.TId = Course.TId AN ...

  6. SQL Server 判断数据库中是否存在表

    使用场景 可以反复的执行相同脚本 方式1:查询sysobjects表 if EXISTS (SELECT * from sysobjects WHERE name='test_table') DROP ...

  7. kubebuilder实战之四:operator需求说明和设计

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  8. JDBC中级篇(MYSQL)——处理文件(BLOB)

    注意:其中的JdbcUtil是我自定义的连接工具类:代码例子链接: package b_blob_clob; import java.io.FileInputStream; import java.i ...

  9. Focal Loss(RetinaNet)笔记 一种减小类别不平衡影响的方法

    Paper: https://arxiv.org/abs/1708.02002 还参考了:https://www.jianshu.com/p/8e501a159b28 其中p是预测属于某类的概率.

  10. Linux核心知识

    电脑:辅助人脑的工具 现在的人们几乎无时无刻都会碰电脑!不管是桌上型电脑(桌机).笔记型电脑(笔电).平板电脑.智慧型手机等等,这些东西都算是电脑.虽然接触的这么多,但是,你了解电脑里面的元件有什么吗 ...