擴增的Pascal VOC 語義分割資料集製作

2021-09-17 20:59:23 字數 2937 閱讀 1574

[1] b. hariharan, p. arbeláez, l. bourdev, s. maji, and j. malik, 

「semantic contours from inverse detectors,」 in iccv, 2011.

[2] 

[3] 

[4] 

語義分割方面的所關係的資料夾是

1. jpegimage資料夾(包含了分割所要用的原)

2. segmentationclass資料夾(裡面包含了分割所要用的標籤圖)

3. imagesets資料夾下的segmentation資料夾(裡面包含了所需的名字的集合txt檔案)

segmentationclass資料夾:包含了語義分割的所有標籤圖2913張且shape=h x w ,mode=p,format=png,大小不一致(這裡需要注意,mask圖直接讀成numpy是h x w x 3大小的彩色圖,還需要根據colormap對映回類別,而先用image.open讀進來再轉成numpy是h x w大小的,值就是類別值,使用的時候推薦這種讀取方法,比較方便。)

總共20類如下:

person: person

animal: bird, cat, cow, dog, horse, sheep

vehicle: aeroplane, bicycle, boat, bus, car, motorbike, train

indoor: bottle, chair, dining table, potted plant, sofa, tv/monitor

mask label的類別與顏色的對照關係如下圖所示:(原版的voc語義分割資料集label的mask是一張hxwx1的偽彩色圖(每個畫素用8bit表示rbg三個通道的資訊,根據colormap進行解碼後顯示為彩色)

原話:pixel indices correspond to classes in alphabetical order (0=background,  1=aeroplane, 2=bicycle, 3=bird, 4=boat, 5=bottle, 6=bus, 7=car , 8=cat, 9=chair, 10=cow, 11=diningtable, 12=dog, 13=horse, 14=motorbike, 15=person, 16=potted plant, 17=sheep, 18=sofa, 19=train, 20=tv/monitor,  255='void' or unlabelled)

分布如下:

下面開始製作擴增的voc語義分割資料集(示例中的路徑需要根據自己的實際情況進行更改)

# augmented pascal voc

cd $datasets

wget # 1.3 gb

tar -zxvf benchmark.tgz

mv benchmark_release voc_aug

# original pascal voc 2012

wget # 2 gb

tar -xvf voctrainval_11-may-2012.tar

mv vocdevkit/voc2012 voc2012_orig && rm -r vocdevkit

2.  由於augmented pascal voc 資料集的 ground truth labels 是以 matlab data files的格式存在的,所以需要轉換為png格式:

cd $datasets/voc_aug/dataset

mkdir cls_png

cd $tools_dir

python mat2png.py $datasets/voc_aug/dataset/cls $datasets/voc_aug/dataset/cls_png

3. 上面一步獲得的png格式的ground truth label是灰度圖,每個畫素的值就是類別值, 但 original pascal voc 2012中的 ground truth label 是以rgb偽彩色影象的形式儲存的,因此需要統一格式(也可以將擴增的voc的label轉化為原版型別的,這裡採用都統一為灰度圖格式的方法):

灰度圖型別的mask:(由於灰度值為0~20比較小,所以看的不是很清楚)

為彩色圖型別的mask: 

4. 合併兩個資料集:

主要是合併jpegimages和segmentation這兩個目錄,即原圖和mask圖。具體是將pascal voc的原圖和mask圖copy到sbd資料集中進行覆蓋,最終的檔案數分別為原圖17125和mask圖12031。

另外需要準備乙個類似trainval.txt 的list用來訓練,可以自己製作,也可以直接用github中提前準備好的。

現在擴增的voc語義分割資料集就做好了!!

CV 語義分割學習貼 資料擴增方法

這幾天跟著datawhale學習了,針對cv方面的資料擴增方法。主要有兩種型別,分別是基於影象的資料資料擴增方法和基於深度學習的擴增方法 還不太理解 我主要是練習了基於影象的資料擴增方法。針對本賽題 語義分割 針對影象的資料擴增方法也是比較合適的。我在baseline中主要是呼叫了albumenta...

零基礎入門語義分割 Task2 資料擴增

顏色變換 kernel filters mixing random erasing opencv的資料擴增 albumentations資料擴增 pytorch 處理 顧名思義,資料擴增的原因是原始資料量不足,希望通過擴增達到 mnist 在 20 到20 之間沒問題 加大旋轉角可能會影響標籤 平移...

零基礎入門語義分割 TASK02資料擴增

opencv資料擴增 albumentations資料擴增 pytorch讀取賽題資料 datawhale 本章對語義分割任務中常見的資料擴增方法進行介紹,並使用opencv和albumentations兩個庫完成具體的資料擴增操作。本章主要內容為資料擴增方法 opencv資料擴增 albument...