數據集下載
去到NYU Depth V2[1] 官網下載數據集,如下圖所示。這裏我們只是用RGB數據,不使用RGB-D數據(帶深度信息),所以只需要下載Labeled dataset (~2.8 GB)即可。此外還需要下載劃分訓練/測試數據集的文件:Train / Test Split
數據集的轉換
概述
NYUv2一共提供了1449張RGB圖像和和894個類別標註。在有些研究工作中,如[2][3],僅使用40個語義類別進行訓練和評估,通常稱之爲NYUv2-40。模型訓練中一般使用標準劃分:795和654分別用於訓練和測試。原始數據集使用.mat
格式,我們需要將相應的數據提取出來。
下面會詳細講解如何提取,以及得到NYUv2-40的標註。
點擊這裏下載筆者蒐集的資源和實現的轉換腳本。解壓後的目錄結構如下:
提取RGB圖像和標註
首先,從nyu_depth_v2_labeled.mat
(即上文中官網下載的標註數據)中提取到RGB圖像和.png
標註圖像。運行:
python mat_image.py
python mat_label.py
腳本會自動在同級目錄下生成nyu_images和nyu_labels兩個文件夾,分別用於存放提取出來的RGB圖像和.png
灰度標註。
數據集劃分
官網下載到的數據集劃分文件splits.mat
也需要轉換爲對應的train.txt
和test.txt
,運行腳本:
python train_test.py
腳本將自動創建train.txt
和test.txt
,分別對應訓練集和測試集的圖像id。現在目錄結構如下:
到這裏,標準的NYUv2數據集就製作好了。語義分割中常使用RGB圖像,並不使用其中的深度信息,所以這裏並未提取RGB-D圖像。
NYUv2-40製作
文件夾中names.txt
表示原始NYUv2數據集的類別,names_40.png
表示NYUv2-40中使用的語義類別。
接下來需要將NYUv2-40的語義類別標註從labels40.mat
提取出來,運行:
python mat_label_40.py
如下圖,結果存放在生成的nyu_lables40
文件夾中。
參考文獻
[1] N. Silberman, D. Hoiem, P. Kohli, and R. Fergus. Indoor segmentation and support inference from rgbd images. In Proceedings of the European Conference on Computer Vision, 2012.
[2] S. Gupta, P. Arbelaez, and J. Malik. Perceptual organization and recognition of indoor scenes from rgb-d images. In Pro- ceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2013.
[3] Lin G, Milan A, Shen C, et al. RefineNet: Multi-path Refinement Networks for High-Resolution Semantic Segmentation. 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2017.