CocoStuff—基於Deeplab訓練數據的標定工具【二、用已提供的標注數據跑通項目】


一、說明

本文為系列博客第二篇,主要講述筆者在使用該團隊提供已經標注好的COCO數據集進行訓練的過程。
由於在windows中編譯Caffe和Deeplab特別的麻煩,筆者並沒有去探索,后續可能會去嘗試。所以整個過程都可以在linux系統中運行的,但為了標注方便,筆者采用服務器(linux)完成訓練過程+windows完成標注過程的方式,並且此方式也十分有利於協同標注。

二、准備工作

安裝軟件:Matlab

建議到Matlab官網進行下載,安裝過程應該不會有什么問題,筆者使用的版本為R2017,不過版本應該沒什么影響。

安裝庫:Caffe

編譯過程以及Caffe相關基礎知識建議參考denny的學習專欄

安裝庫:Deeplab

編譯過程建議參考博文:Deeplab v2 調試全過程(Ubuntu 16.04+cuda8.0)圖像語義分割:從頭開始訓練deeplab v2系列,前者也是參考的后者博客,不過整理的過程更詳細一點,不過里面有些許小問題,學習過程中最好兩篇結合起來。
上述博文用的啟動文件( run_pascal.sh)以及模型文件和本項目中的有所不同,建議主要通過上文學會整個過程,踩一下在編譯過程中遇到的坑,后續可以將相應的配置替換即可。
不過因為配置有點復雜,沒有替換到位會有很多意想不到的錯誤,還是建議通過上文大致跑通后,再依照此文步驟(略講)再次下載編譯與CocoStuff相對應的Deeplab文件。

下載項目:

項目源地址

三、目錄解析

一級目錄

項目目錄主要分為3部分:
1、標注工具部分
2、數據集部分
3、模型(訓練部分)

annotator

annotator目錄
annotator主要包含兩部分:代碼部分和數據部分。后續標注工程需要使用的一些腳本都寫在此處,數據部分主要為了方便協同標注而設定的,分配的任務都對應的寫在input/imageLists/目錄下user的list文件內。

dataset

dataset目錄
下載數據集的腳本都在這些文件中,后續下載好的數據都會在此文件下。

models

deeplab目錄
cocostuff目錄主要是訓練的配置文件、數據集、數據列表、訓練模型的存放處。deeplab-public-ver2目前沒內容,后續需要將deeplab2安裝編譯在此目錄下。

四、運行腳本

數據准備部分

下載好項目后,在Matlab中進入項目目錄下
-Matlab中運行:startup()進入項目環境
-Matlab中運行:demo_cocoStuff()查看demo效果(可跳過)
-linux中運行:wget --directory-prefix=downloads http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/cocostuff-10k-v1.1.zip
unzip downloads/cocostuff-10k-v1.1.zip -d dataset/將數據集下載下來;如果是windows系統可以直接去對應網址下載,然后解壓到對應目錄下即可。
-Matlab中運行:
CocoStuffClasses.showClassHierarchyStuffThings()查看標簽的層次結構圖(可跳過)
-Matlab中運行:CocoStuffAnnotator()打開標注工具進行嘗試,因為本篇主要講述使用標注好的數據的過程,可跳過。

訓練部分

-Linux中運行:git submodule update --init models/deeplab/deeplab-public-ver2下載deeplab
-修改deeplab配置文件並編譯:
cd models/deeplab/deeplab-public-ver2
cp Makefile.config.example Makefile.config
make all -j8(有問題參考“准備工作”中的博客)
cd ../..
-創建供給訓練的相關文件夾:
mkdir models/deeplab/deeplab-public-ver2/cocostuff && mkdir models/deeplab/deeplab-public-ver2/cocostuff/data
cd models/deeplab/cocostuff/data && ln -s ../../../../dataset/images images && cd ../../../..
-將准備好的標注文件轉換為deeplab認識的格式:
startup()
convertAnnotationsDeeplab()
-下載model:
wget --directory-prefix=models/deeplab/cocostuff/model/deeplabv2_vgg16 http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/deeplabv2_vgg16_init.caffemodel
-以上均沒報錯,就可以開始訓練了:
cd models/deeplab && ./run_cocostuff_vgg16.sh

五、備注

在運行這些命令的時候如果沒有報錯的話,其他先不用考慮,能保證運行起來再進行標注方面的學習。
訓練默認為訓練集9000張,測試集1000張,迭代20000次,每10000次生成一次model,生成的model保存在cocostuff10k/models/deeplab/cocostuff/model目錄下
訓練完成后的測試結果為mat文件,保存在cocostuff10k/models/deeplab/cocostuff/data/feature/fc8目錄下

然后通過運行
mat = load(fileName)
imagesc(mat.varName)
來借助Matlab自帶的,可將矩陣圖可視化的函數imagesc大致查看下訓練的效果。
更專業的准確的檢測訓練效果的方法,是使用IoU重疊度檢測的方法,簡單的說就是:取訓練結果和真實結果的交集與並集之比。但是因為筆者暫時還沒找到合適的腳本(肯定已經有現成的輪子),此事暫時擱置。

*注:此處類似於Deeplab v2 調試全過程中的create_labels_21.py的作用,但是因為我們這里使用的類別為182類,無法直接使用這個腳本。筆者有去查看該腳本的內容,主要是對應21種類別進行RGB三通道賦值,然后通過python調用調色板工具,進行着色而已。但是筆者按照這樣思路,創建了一個182類的調色腳本(create_labels_182.py)但是好像因為mat文件過大,處理過程中出現了一些問題,后來放棄此種做法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM