论文《Instance-level Human Parsing via Part Grouping Network》复现
论文《Instance-level Human Parsing via Part Grouping Network》复现
资料准备
- 论文地址:https://arxiv.org/pdf/1808.00157.pdf
- 项目地址:https://github.com/Engineering-Course/CIHP_PGN
- 说明:此篇博客是根据原论文公开项目中的issues和readme.md整合学习实现的论文复现
环境配置
-
Step 0:首先这个公开的项目是没有关于环境配置的说明,所以在项目的issues里面有很多关于环境的问题,我看了下这些issues和在github上找到的另外一个项目中的requirements.txt结合服务器已经配置好的cuda$cudnn环境最终的项目环境为:
cuda==9.0.176 tensorflow-gpu==1.10.0 numpy==1.13.3 scipy==1.4.1 pillow==7.2.0 opencv-python==4.3.0.36
-
Step 1:详细的环境截图为:
说明:配置环境期间会遇到很多包不兼容的情况,请细心慢调...
运行前准备
-
Step 0:按照原项目中的步骤1准备好预训练模型解压后放在
$HOME/checkpoint
; -
Step 1:准备数据集;如果没有用matlab对数据集中的图片进行提前的处理就运行test_pgn.py会报错,因此我翻看了下原项目中的关于这个数据集准备的一些iusses整理的操作步骤如下:
-
Step 2:如果没有matlab需要安装一个,可参照我之前的博客
-
Step 3: datasets的文件结构如下:
datasets/CIHP/images/0002190.png datasets/CIHP/list/img_list.txt datasets/CIHP/images/tool/logwell_script.m datasets/CIHP/images/edges datasets/CIHP/images/labels
说明:
-
datasets/CIHP/images/0002190.png
为原图; -
datasets/CIHP/list/img_list.txt
中的内容为0002190.png -
datasets/CIHP/images/tool/logwell_script.m
中的内容为:clear; close all; fclose all; %% imglist = '../list/img_list.txt'; % 00000.png list = textread(imglist, '%s'); for i = 1:length(list); imname = list{i}; instance_map = imread(fullfile('../images', imname)); instance_contour = uint8(imgradient(rgb2gray(instance_map)) > 0); imwrite(instance_contour, fullfile('../edges', imname)); imwrite(instance_contour, fullfile('../labels', imname)); end
-
-
Step 4:按照原项目文件
datasets/CIHP/list/
的txt的格式修改,留下关于0002190.png图片的信息; -
Step 5:运行logwell_script.m;一般来说终端中输入matlab就进入了matlab命令行中,输入命令行
run logwell_script.m
就可以运行了,也可参照issues中的matlab运行命令行; -
Step 6:如果在
datasets/CIHP/images/edges&datasets/CIHP/images/labels
文件中均发现有新的文件那么这以上的操作就算成功了;
test_pgn.py运行
-
Step 0:直接终端中输入
python test_pgn.py
出现success字样就算成功了; -
Step 1:在目录
CIHP_PGN-master/
下会出现output文件夹,里面就是运行的结果图。
test_pgn.py运行结果
-
Step 0:第一组结果如下:(说明:由于项目的需求,我测试了原图是灰度图的结果和彩色图结果是一样的)
-
Step 1:第二组结果如下: