tensorflow

it2025-08-01  3

本模型是研究人体关键点的识别(论文) 本模型是之前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)