1. 程式人生 > >配置FCN 8s voc資料集

配置FCN 8s voc資料集

按著博文http://blog.csdn.net/u012968002/article/details/78958090 的流程走的  主要是各種路徑要搞清楚 參見http://blog.csdn.net/supe_king/article/details/58121993

中間出現在網上找的方法個版本不管用  後來發現 還是路徑的問題。

solve.py  的路徑好確定  關鍵是train.protxt    test.protxt 中


sbdd是存放資料集的路徑  我的是/home/chenge/Documents/FCN/fcn/data/pascal  pascal下存放了訓練圖測試圖(都放在一塊 用train.txt test.txt呼叫即可)標籤


我開始的錯誤就是把 訓練的txt和測試的txt都放在了和voc2011資料夾平行的位置  後來放進voc2011就可以運行了

在voc_layers.py中 改6處路徑1.放test.txt的位置split_f  = '{}/{}.txt'.format(self.voc_dir,
                self.split)意思就是直接讀取之前test.protxt中路徑split

                                               2.測試圖im = Image.open('{}/JPEGImages/{}.jpg'.format(self.voc_dir, idx)) 前面的框就是test中sbdd_dir

                                                        3.測試標籤  im = Image.open('{}/SegmentationClass/{}.png'.format(self.voc_dir, idx))
        label = np.array(im, dtype=np.uint8)

   之後的訓練的路徑同理

給的模板程式訓練標籤是mat格式  可以改程式變為pgn格式的。

def load_label(self, idx):  
        """
        Load label image as 1 x height x width integer array of label indices.
        The leading singleton dimension is required by the loss.
        """  
        im = Image.open('{}/SegmentationClass/{}.png'.format(self.sbdd_dir, idx))
        label = np.array(im, dtype=np.uint8)  
        label = label[np.newaxis, ...]  
        return label