lib/dataset/deepv.py
def load_pascal_annotation(self, index):
        """
        for a given index, load image and bounding boxes info from XML file
        :param index: index of a specific image
        :return: record['boxes', 'gt_classes', 'gt_overlaps', 'flipped']
        """
        import xml.etree.ElementTree as ET
        roi_rec = dict()
        roi_rec['image'] = self.image_path_from_index(index)

        filename = os.path.join(self.data_path, 'Annotations', index + '.xml')
        tree = ET.parse(filename)
        size = tree.find('size')
        roi_rec['height'] = float(size.find('height').text)
        roi_rec['width'] = float(size.find('width').text)
        #im_size = cv2.imread(roi_rec['image'], cv2.IMREAD_COLOR|cv2.IMREAD_IGNORE_ORIENTATION).shape
        #assert im_size[0] == roi_rec['height'] and im_size[1] == roi_rec['width']

        objs = tree.findall('object')
        if not self.config['use_diff']:
            non_diff_objs = [obj for obj in objs if int(obj.find('difficult').text) == 0]
            objs = non_diff_objs
        num_objs = len(objs)

        boxes = np.zeros((num_objs, 4), dtype=np.int16)
        gt_classes = np.zeros((num_objs), dtype=np.int32)
        overlaps = np.zeros((num_objs, self.num_classes), dtype=np.float32)

        class_to_index = dict(zip(self.classes, range(self.num_classes)))
        # Load object bounding boxes into a data frame.
        for ix, obj in enumerate(objs):
            bbox = obj.find('bndbox')
            # Make pixel indexes 0-based
            x1 = float(bbox.find('xmin').text) - 1
            y1 = float(bbox.find('ymin').text) - 1
            x2 = float(bbox.find('xmax').text) - 1
            y2 = float(bbox.find('ymax').text) - 1
            obj_cls = obj.find('name').text.lower().strip()
            if obj_cls in self.classes:
                cls = class_to_index[obj_cls]
            else:
                continue
            boxes[ix, :] = [x1, y1, x2, y2]
            gt_classes[ix] = cls
            overlaps[ix, cls] = 1.0

        roi_rec.update({'boxes': boxes,
                        'gt_classes': gt_classes,
                        'gt_overlaps': overlaps,
                        'max_classes': overlaps.argmax(axis=1),
                        'max_overlaps': overlaps.max(axis=1),
                        'flipped': False})
        return roi_rec

        for a given index, load image and bounding boxes info from XML file
        :param index: index of a specific image
        :return: record['boxes', 'gt_classes', 'gt_overlaps', 'flipped']
        
for a given index, load image and bounding boxes info from XML file
for a given index load image and bounding boxes info from XML file
def load_pascal_annotation(self, index):
        import xml.etree.ElementTree as ET
        roi_rec = dict()
        roi_rec['image'] = self.image_path_from_index(index)
        filename = os.path.join(self.data_path, 'Annotations', index + '.xml')
        tree = ET.parse(filename)
        size = tree.find('size')
        roi_rec['height'] = float(size.find('height').text)
        roi_rec['width'] = float(size.find('width').text)
        objs = tree.findall('object')
        if not self.config['use_diff']:
            non_diff_objs = [obj for obj in objs if int(obj.find('difficult').text) == 0]
            objs = non_diff_objs
        num_objs = len(objs)
        boxes = np.zeros((num_objs, 4), dtype=np.int16)
        gt_classes = np.zeros((num_objs), dtype=np.int32)
        overlaps = np.zeros((num_objs, self.num_classes), dtype=np.float32)
        class_to_index = dict(zip(self.classes, range(self.num_classes)))
        for ix, obj in enumerate(objs):
            bbox = obj.find('bndbox')
            x1 = float(bbox.find('xmin').text) - 1
            y1 = float(bbox.find('ymin').text) - 1
            x2 = float(bbox.find('xmax').text) - 1
            y2 = float(bbox.find('ymax').text) - 1
            obj_cls = obj.find('name').text.lower().strip()
            if obj_cls in self.classes:
                cls = class_to_index[obj_cls]
            else:
                continue
            boxes[ix, :] = [x1, y1, x2, y2]
            gt_classes[ix] = cls
            overlaps[ix, cls] = 1.0
        roi_rec.update({'boxes': boxes,
                        'gt_classes': gt_classes,
                        'gt_overlaps': overlaps,
                        'max_classes': overlaps.argmax(axis=1),
                        'max_overlaps': overlaps.max(axis=1),
                        'flipped': False})
        return roi_rec
def load_pascal_annotation ( self , index ) : import xml . etree . ElementTree as ET roi_rec = dict ( ) roi_rec [ 'image' ] = self . image_path_from_index ( index ) filename = os . path . join ( self . data_path , 'Annotations' , index + '.xml' ) tree = ET . parse ( filename ) size = tree . find ( 'size' ) roi_rec [ 'height' ] = float ( size . find ( 'height' ) . text ) roi_rec [ 'width' ] = float ( size . find ( 'width' ) . text ) objs = tree . findall ( 'object' ) if not self . config [ 'use_diff' ] : non_diff_objs = [ obj for obj in objs if int ( obj . find ( 'difficult' ) . text ) == 0 ] objs = non_diff_objs num_objs = len ( objs ) boxes = np . zeros ( ( num_objs , 4 ) , dtype = np . int16 ) gt_classes = np . zeros ( ( num_objs ) , dtype = np . int32 ) overlaps = np . zeros ( ( num_objs , self . num_classes ) , dtype = np . float32 ) class_to_index = dict ( zip ( self . classes , range ( self . num_classes ) ) ) for ix , obj in enumerate ( objs ) : bbox = obj . find ( 'bndbox' ) x1 = float ( bbox . find ( 'xmin' ) . text ) - 1 y1 = float ( bbox . find ( 'ymin' ) . text ) - 1 x2 = float ( bbox . find ( 'xmax' ) . text ) - 1 y2 = float ( bbox . find ( 'ymax' ) . text ) - 1 obj_cls = obj . find ( 'name' ) . text . lower ( ) . strip ( ) if obj_cls in self . classes : cls = class_to_index [ obj_cls ] else : continue boxes [ ix , : ] = [ x1 , y1 , x2 , y2 ] gt_classes [ ix ] = cls overlaps [ ix , cls ] = 1.0 roi_rec . update ( { 'boxes' : boxes , 'gt_classes' : gt_classes , 'gt_overlaps' : overlaps , 'max_classes' : overlaps . argmax ( axis = 1 ) , 'max_overlaps' : overlaps . max ( axis = 1 ) , 'flipped' : False } ) return roi_rec
for a given index, load image and bounding boxes info from XML file
for a given index load image and bounding boxes info from XML file
"""
        for a given index, load image and bounding boxes info from XML file
        :param index: index of a specific image
        :return: record['boxes', 'gt_classes', 'gt_overlaps', 'flipped']
        """ #im_size = cv2.imread(roi_rec['image'], cv2.IMREAD_COLOR|cv2.IMREAD_IGNORE_ORIENTATION).shape #assert im_size[0] == roi_rec['height'] and im_size[1] == roi_rec['width'] # Load object bounding boxes into a data frame. # Make pixel indexes 0-based
record['boxes', 'gt_classes', 'gt_overlaps', 'flipped']
record [ ' boxes ' ' gt_classes ' ' gt_overlaps ' ' flipped ' ]
self
index
index of a specific image
index of a specific image