tensorflow_Realtime_Multi-Person_Pose_Estimation训练

本模型是研究人体关键点的识别(论文
本模型是之前keras_Realtime_Multi-Person_Pose_Estimation的基于tensorflow2.0版本的升级版
keras_Realtime_Multi-Person_Pose_Estimation是我第二个琢磨的模型,一直想跑起来试试训练,可是无论在window下,(出现错误ZMQ IPC不支持windows!)还是在Ubuntu下,(tensorflow-gpu还是tensorflow的cpu版本都试了一遍,也着实学会了使用linux系统,都会卡在第一个epoch,个人感觉是各种包不兼容,毕竟pip install、conda install都是默认安装最新的,可是并不知道该代码具体使用的包的版本)都不行!在经历过各种bug和error的摧残下,终于知道旧的不去新的不来了。开始研究新家伙。

根据该模型GitHub页面的介绍,其中含有两个train.py文件,一个是作者使用Mobilenet替代VGG的进行了简化的模型(train_singlenet_mobilenetv3.py),一个是将之前的模型运行在tensorflow2.0版本上的代码(train_2br_vgg.py)。

先看旧模型。先跑起来。
记得换源!!!!!
首先配置环境,系统管理查看自己GPU支持什么版本的CUDA和CUDNN,并在官网下载安装包并安装。在此我首先安装了版本为10.2的CUDA但是提示我没有找到cudart64_101.dll,因此理应使用版本为10.1的CUDA。然后创建一个环境

conda create -n keypoints python=3.6
conda activate keypoints

然后按照requirement.txt文件pip install需要的包。

tensorflow-gpu==2.2.1
opencv-python-headless==4.1.2.30
tqdm==4.50.0
matplotlib==3.3.2
tensorpack==0.9.8
scipy==1.3.3
cython==0.29.14
pycocotools==2.0.0
jupyter==1.0.0
click==7.1.2
git+git://github.com/michalfaber/tf_netbuilder.git@v1.1#egg=tf_netbuilder

其中cython需要在pycocotools之前安装,因为pycocotools安装需要有c++环境。
如果在Windows下安装pycocotools,首先需要电脑上安装Visual Studio中的C++模块与git(需要配置)。最好将包下载下来然后按照makefile中的命令进行安装。注意需要注释掉setup.py中的’-Wno-cpp’, '-Wno-unused-function’两个参数。

ext_modules = [
    Extension(
        'pycocotools._mask',
        sources=['../common/maskApi.c', 'pycocotools/_mask.pyx'],
        include_dirs = [np.get_include(), '../common'],
        extra_compile_args=['-std=c99'], # '-Wno-cpp', '-Wno-unused-function',
    )
]

在Ubuntu下安装pycocotools,需要gcc、g++和git(需要配置)。使用以下命令安装有关gcc的一系列工具。

sudo apt-get install build-essential libcap-dev

实在不行不妨试试使用conda install pycocotools安装包,conda比pip好一些的是会同时安装所需要的依赖。
各个包安装成功之后运行train_2br_vgg.py即可开始训练。Windows是不支持的,运行之后在加载annotation之后会显示 ZMQ IPC doesn’t support windows !
训练之前将下载的训练和验证的数据集放在指定位置,或更改train_2br_vgg.py中的文件路径。

数据集位置:
    ├── datasets
    │   └── coco_2017_dataset
    │       ├── annotations
    │       │   ├── person_keypoints_train2017.json
    │       │   └── person_keypoints_val2017.json
    │       ├── train2017/*
    │       └── val2017/*
    └── tensorflow_Realtime_Multi-Person_Pose_Estimation/*

训练开始之后会生成log文件显示训练过程,在当前环境下使用命令:

tensorboard --logdir=具体路径

即可在本机的6006(localhost:6006)端口查看。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 实时多人二维姿态估计使用的是部件关联场技术。该技术利用深度学习网络对图像中的人体关键点进行检测和定位,并通过学习人体部位之间的关联性来提高姿态估计的准确性。在实时性方面,该技术利用高效的网络结构和并行计算技术,能够在处理多人图像时保持较高的处理速度和较低的延迟。 ### 回答2: 实时的多人2D姿态估计是指在照片或视频中同时检测多个人的姿态并实时反馈结果。这个任务主要是依赖计算机视觉领域的人体关键点检测技术。而Part Affinity Fields(PAF)是现在最常用的一种检测方法。 PAF可以理解为是人体姿态中的“骨架”,它在这里指的是需要将骨骼节点间的关系一同考虑进去来提高精度的设计。每个PAF都对应着一对关联的节点,例如手臂这一关节对应的PAF就是肩膀和手腕两个关键点中间的向量场。PAF能够将关键点之间的联系编码为一个向量场,并将它们的图像位置和方向作为通道特征,这样就可以通过深度卷积网络获得节点的连接信息。 对于多人2D姿态估计任务,PAF可以自动推断出人体的椭圆形状,使得不同人的节点互相不干扰,能够高效地分离不同人体之间的关键点信息,保证检测精度。 总体而言,实时的多人2D姿态估计技术是计算机视觉研究领域中一个非常重要的方向。通过Part Affinity Fields技术,可以实现对人体姿态的快速准确检测和分析,并具有广泛的应用前景,比如拍摄跳舞类视频、体育比赛等。未来,该领域还将会不断提高研究和开发技术,提高其在实际场景中的使用效果,为人们的生产和生活提供更多更好的便利。 ### 回答3: 在计算机视觉领域,人体姿态估计一直是一个十分重要的研究方向。现在,研究者们正在致力于开发实时多人二维姿态估计方法,本文将介绍一种方法——part affinity fields。 Part affinity fields是指身体部位之间存在的空间关系矩阵。多人姿态估计就是先将图像中的每一个像素与人体相关的身体部件联系起来,然后再利用network output将这些点连接起来形成人体姿态。part affinity fields的基本思想是采用CNN对每一个像素做预测,以定位人体骨架上的每一个连接点。 主要步骤: 1.生成部件置信图:对于输入的图像,通过CNN估计每个像素是否为其中每个身体部位的一部分,这个图叫做部件置信图(Part Confidence Maps),可以通过训练数据集来检测出身体部位的位置。 2.生成连接部件映射图:对于预测出来的部件置信图,我们可以通过预测到的部件之间的关系来学习生成连接映射图(Part Affinity Fields),即学习两个不同身体部件之间的关系(connectivity),这个关系是一个形状为“c×2×h×w”的4维张量。在测试阶段,对于输入图像中的每个像素,都会有其对应到一个连接部件映射图的位置。 3.生成姿态结果:最后,我们将生成的部件置信图和连接部件映射图进行联合,把已确定的部件通过连接映射图装配起来并组合成人体的姿态结果。 这种方法最大的好处就是实现了实时多人姿态估计,不需要预设一个特定数量的人数。同时,在处理不同人的关键点时,以前的方法通常是对每个人都单独进行估计,而这个方法则对所有人的关键点一起进行估计,能够更好地处理人际交互。 总之,通过深度学习和部件置信图与连接映射图等技术手段的利用,Part Affinity Fields在解决实时多人二维姿态估计时具有很大的潜力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值