tusen-ai / simpledet

A Simple and Versatile Framework for Object Detection and Instance Recognition
Apache License 2.0
3.08k stars 486 forks source link

pascal voc data format error #315

Closed guoqiang0148666 closed 4 years ago

guoqiang0148666 commented 4 years ago

Hi Thank you for your excellent works

l follow the tutorials (https://github.com/TuSimple/simpledet/blob/master/doc/DATASET.md) to convert pascal voc format to coco format. Using the following command to train model.

python detection_train.py --config config/faster_r50v1_fpn_1x.py

However, l meet a error when using following command to test the model

python detection_test.py --config config/faster_r50v1_fpn_1x.py

the part error log is:

Traceback (most recent call last): File "/home/guo/miniconda3/envs/simpledet/lib/python3.7/multiprocessing/pool.py", line 121, in worker result = (True, func(*args, *kwds)) File "/home/guo/miniconda3/envs/simpledet/lib/python3.7/multiprocessing/pool.py", line 44, in mapstar return list(map(args)) File "detection_test.py", line 248, in do_nms dataset_cid = coco.getCatIds()[cid] IndexError: list index out of range """

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "detection_test.py", line 258, in output_dict = pool.map(do_nms, output_dict.keys()) File "/home/guo/miniconda3/envs/simpledet/lib/python3.7/multiprocessing/pool.py", line 268, in map return self._map_async(func, iterable, mapstar, chunksize).get() File "/home/guo/miniconda3/envs/simpledet/lib/python3.7/multiprocessing/pool.py", line 657, in get raise self._value IndexError: list index out of range

l feel that the error may caused by the difference between pascal voc format and coco format, but l don't know how to fix it.

Anyone could help me? any suggestion will be welcomed.

Thanks.

huangzehao commented 4 years ago

Hi, you should use https://github.com/TuSimple/simpledet/blob/master/config/finetune/faster_r50v1_fpn_voc07_1x.py for VOC.

guoqiang0148666 commented 4 years ago

@huangzehao Thanks. solved.

ten1er commented 4 years ago

@huangzehao Thanks. solved.

Hello, I met same error using differnet network(https://github.com/TuSimple/simpledet/blob/master/config/tridentnet_r101v2c4_c5_multiscale_addminival_3x_fp16.py).

I strightly use pascal voc format datasets for training (https://github.com/TuSimple/simpledet/blob/master/utils/create_voc_roidb.py) rather than convert to coco format :

python3 utils/create_voc_roidb.py --data-dir /media/heyu/D/data/ALGAE_2019_V2 --split train

python3 detection_train.py --config config/tridentnet_r101v2c4_c5_multiscale_addminival_3x_fp16.py

But the testing process broke with the logs below:

`Traceback (most recent call last): File "/media/heyu/D/heyu/app/miniconda3/envs/mxnet/lib/python3.6/multiprocessing/pool.py", line 119, in worker result = (True, func(*args, *kwds)) File "/media/heyu/D/heyu/app/miniconda3/envs/mxnet/lib/python3.6/multiprocessing/pool.py", line 44, in mapstar return list(map(args)) File "detection_test.py", line 268, in do_nms dataset_cid = coco.getCatIds()[cid] IndexError: list index out of range """

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "detection_test.py", line 283, in output_dict = pool.map(do_nms, output_dict.keys()) File "/media/heyu/D/heyu/app/miniconda3/envs/mxnet/lib/python3.6/multiprocessing/pool.py", line 266, in map return self._map_async(func, iterable, mapstar, chunksize).get() File "/media/heyu/D/heyu/app/miniconda3/envs/mxnet/lib/python3.6/multiprocessing/pool.py", line 644, in get raise self._value IndexError: list index out of range ` May I konw how did you solve the problem in the end?

Thanks!