Open hank08tw opened 4 years ago
I added following codes in voc_dataset.py, line 76, if there is no object in xml file, it won't be read: id_list_file = os.path.join( data_dir, 'ImageSets/Main/{0}.txt'.format(split)) id_listread = [id.strip() for id_ in open(id_list_file)] id_list = list() for i in id_list_read: obj = ET.parse(os.path.join(data_dir, 'Annotations', i + '.xml')) if obj.findall('object'): id_list.append(i) self.ids = id_list
Thanks for your help! But this piece of code ignores all images with no bbox on them. Is it possible to train on some images with no bbox as ground truth for fasterrcnn?
How to change the code to enable input image without bounding box in annotation? I face the following error:
Traceback (most recent call last): File "train.py", line 133, in
fire.Fire()
File "/home/zhanshihan/miniconda3/envs/simplefasterrcnn/lib/python3.7/site-packages/fire/core.py", line 138, in Fire
component_trace = _Fire(component, args, parsed_flag_args, context, name)
File "/home/zhanshihan/miniconda3/envs/simplefasterrcnn/lib/python3.7/site-packages/fire/core.py", line 468, in _Fire
target=component.name)
File "/home/zhanshihan/miniconda3/envs/simplefasterrcnn/lib/python3.7/site-packages/fire/core.py", line 672, in CallAndUpdateTrace
component = fn(*varargs, **kwargs)
File "train.py", line 76, in train
for ii, (img, bbox, label_, scale) in tqdm(enumerate(dataloader)):
File "/home/zhanshihan/miniconda3/envs/simplefasterrcnn/lib/python3.7/site-packages/tqdm/std.py", line 1133, in iter
for obj in iterable:
File "/home/zhanshihan/miniconda3/envs/simplefasterrcnn/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 363, in next
data = self._next_data()
File "/home/zhanshihan/miniconda3/envs/simplefasterrcnn/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 971, in _next_data
return self._process_data(data)
File "/home/zhanshihan/miniconda3/envs/simplefasterrcnn/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 1014, in _process_data
data.reraise()
File "/home/zhanshihan/miniconda3/envs/simplefasterrcnn/lib/python3.7/site-packages/torch/_utils.py", line 395, in reraise
raise self.exc_type(msg)
ValueError: Caught ValueError in DataLoader worker process 2.
Original Traceback (most recent call last):
File "/home/zhanshihan/miniconda3/envs/simplefasterrcnn/lib/python3.7/site-packages/torch/utils/data/_utils/worker.py", line 185, in _worker_loop
data = fetcher.fetch(index)
File "/home/zhanshihan/miniconda3/envs/simplefasterrcnn/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/home/zhanshihan/miniconda3/envs/simplefasterrcnn/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/home/zhanshihan/simple-faster-rcnn-pytorch/data/dataset.py", line 107, in getitem
ori_img, bbox, label, difficult = self.db.get_example(idx)
File "/home/zhanshihan/simple-faster-rcnn-pytorch/data/voc_dataset.py", line 126, in get_example
bbox = np.stack(bbox).astype(np.float32)
File "<__array_function__ internals>", line 6, in stack
File "/home/zhanshihan/miniconda3/envs/simplefasterrcnn/lib/python3.7/site-packages/numpy/core/shape_base.py", line 423, in stack
raise ValueError('need at least one array to stack')
ValueError: need at least one array to stack