論文《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:第二組結果如下: