yuhongtian17 / Spatial-Transform-Decoupling

MIT License
88 stars 7 forks source link

DOTA evaluation命令根本无法执行 #16

Open doctorcoal opened 5 months ago

doctorcoal commented 5 months ago

使用所有你在README.md中提供的信息也根本不可能在DOTA上正常运行 即使我准备好了官方格式的DOTA,它会报错FileNotFoundError: [Errno 2] No such file or directory: '/data/DOTA/val/valset.txt' 全网没有任何人对这个文件提供一个官方的说法 即使我通过手写来实现这个文件,它依然会提示我FileNotFoundError: [Errno 2] No such file or directory: './work_dirs/Task1_rotated_faster_rcnn_r50_fpn_1x_dota_le90_epoch_12/Task1_plane.txt' 即使我按照DOTA官网的格式准备好了每个文件,它依然会报错: classname: plane Traceback (most recent call last): File "./dota_evaluation_task1.py", line 324, in main(opt.mergedir, opt.imagesetdir, opt.use_07_metric) File "./dota_evaluation_task1.py", line 300, in main use_07_metric=use_07_metric) File "./dota_evaluation_task1.py", line 179, in voc_eval BB = BB[sorted_ind, :] IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed 非常糟糕的开源 任何一个看到我这个issue的人,我建议你立刻打消使用这个开源来在DOTA上跑的计划,避免浪费大把的时间

yuhongtian17 commented 4 months ago

你的代码能力很松弛,但是你的装逼欲很好地弥补了这一点。如果你看懂了DOTA devkitdota_evaluation_task1.py代码你就不会问出这样的问题,你就应该知道,valset.txt只是一个列举出val集图片名的文本文件。大家都惯例这么使用的,都能理解出来和写出来,这到底是谁的问题呢?你要是写不出来的话我这就帮你找一个。 还有,Task1_plane.txt这些文件就根本不需要手动去准备的。我在example usage里告诉你了,先用

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 ./tools/dist_train.sh ./configs/rotated_faster_rcnn/rotated_faster_rcnn_r50_fpn_1x_dota_le90.py 8

训一遍,再用

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 ./tools/dist_test.sh ./configs/rotated_faster_rcnn/rotated_faster_rcnn_r50_fpn_1x_dota_le90.py ./work_dirs/rotated_faster_rcnn_r50_fpn_1x_dota_le90/epoch_12.pth 8 --format-only --eval-options submission_dir="./work_dirs/Task1_rotated_faster_rcnn_r50_fpn_1x_dota_le90_epoch_12/"

生成出一个存储结果的文件夹,这个文件夹里就已经做好了Task1_plane.txt、Task1_ship.txt这些文件。最后用

python "../DOTA_devkit/dota_evaluation_task1.py" --mergedir "./work_dirs/Task1_rotated_faster_rcnn_r50_fpn_1x_dota_le90_epoch_12/" --imagesetdir "./data/DOTA/val/" --use_07_metric True

去合并到原图上进行评测。我劝你务实一点,先把DOTA数据集目标检测的流程搞搞懂,MMRotate写的挺好的,你去把它扔了干什么?自己手写个空的Task1_plane.txt文本文件结果报错,你倒告诉我,怎么回答你这个issue呢?——————