55# Written by Ross Girshick
66# --------------------------------------------------------
77
8- import datasets
9- import datasets .pascal_voc
108import os
11- import datasets .imdb
9+ from datasets .imdb import imdb
1210import xml .dom .minidom as minidom
1311import numpy as np
1412import scipy .sparse
1513import scipy .io as sio
1614import utils .cython_bbox
1715import cPickle
1816import subprocess
17+ from fast_rcnn .config import cfg
1918
20- class pascal_voc (datasets . imdb ):
19+ class pascal_voc (imdb ):
2120 def __init__ (self , image_set , year , devkit_path = None ):
22- datasets . imdb .__init__ (self , 'voc_' + year + '_' + image_set )
21+ imdb .__init__ (self , 'voc_' + year + '_' + image_set )
2322 self ._year = year
2423 self ._image_set = image_set
2524 self ._devkit_path = self ._get_default_path () if devkit_path is None \
@@ -83,7 +82,7 @@ def _get_default_path(self):
8382 """
8483 Return the default path where PASCAL VOC is expected to be installed.
8584 """
86- return os .path .join (datasets . ROOT_DIR , 'data' , 'VOCdevkit' + self ._year )
85+ return os .path .join (cfg . DATA_DIR , 'VOCdevkit' + self ._year )
8786
8887 def gt_roidb (self ):
8988 """
@@ -125,7 +124,7 @@ def selective_search_roidb(self):
125124 if int (self ._year ) == 2007 or self ._image_set != 'test' :
126125 gt_roidb = self .gt_roidb ()
127126 ss_roidb = self ._load_selective_search_roidb (gt_roidb )
128- roidb = datasets . imdb .merge_roidbs (gt_roidb , ss_roidb )
127+ roidb = imdb .merge_roidbs (gt_roidb , ss_roidb )
129128 else :
130129 roidb = self ._load_selective_search_roidb (None )
131130 with open (cache_file , 'wb' ) as fid :
@@ -138,7 +137,7 @@ def rpn_roidb(self):
138137 if int (self ._year ) == 2007 or self ._image_set != 'test' :
139138 gt_roidb = self .gt_roidb ()
140139 rpn_roidb = self ._load_rpn_roidb (gt_roidb )
141- roidb = datasets . imdb .merge_roidbs (gt_roidb , rpn_roidb )
140+ roidb = imdb .merge_roidbs (gt_roidb , rpn_roidb )
142141 else :
143142 roidb = self ._load_rpn_roidb (None )
144143
@@ -154,7 +153,7 @@ def _load_rpn_roidb(self, gt_roidb):
154153 return self .create_roidb_from_box_list (box_list , gt_roidb )
155154
156155 def _load_selective_search_roidb (self , gt_roidb ):
157- filename = os .path .abspath (os .path .join (self . cache_path , '..' ,
156+ filename = os .path .abspath (os .path .join (cfg . DATA_DIR ,
158157 'selective_search_data' ,
159158 self .name + '.mat' ))
160159 assert os .path .exists (filename ), \
@@ -245,10 +244,10 @@ def _write_voc_results_file(self, all_boxes):
245244 def _do_matlab_eval (self , comp_id , output_dir = 'output' ):
246245 rm_results = self .config ['cleanup' ]
247246
248- path = os .path .join (os . path . dirname ( __file__ ) ,
247+ path = os .path .join (cfg . ROOT_DIR , 'lib' , 'datasets' ,
249248 'VOCdevkit-matlab-wrapper' )
250249 cmd = 'cd {} && ' .format (path )
251- cmd += '{:s} -nodisplay -nodesktop ' .format (datasets .MATLAB )
250+ cmd += '{:s} -nodisplay -nodesktop ' .format (cfg .MATLAB )
252251 cmd += '-r "dbstop if error; '
253252 cmd += 'voc_eval(\' {:s}\' ,\' {:s}\' ,\' {:s}\' ,\' {:s}\' ,{:d}); quit;"' \
254253 .format (self ._devkit_path , comp_id ,
@@ -269,6 +268,7 @@ def competition_mode(self, on):
269268 self .config ['cleanup' ] = True
270269
271270if __name__ == '__main__' :
272- d = datasets .pascal_voc ('trainval' , '2007' )
271+ from datasets .pascal_voc import pascal_voc
272+ d = pascal_voc ('trainval' , '2007' )
273273 res = d .roidb
274274 from IPython import embed ; embed ()
0 commit comments