网上没有HRSC2016 数据集 L2 L3 task 任务的开源项目,我的毕设跟老师吹的牛是把数据集用到L2、L3任务上,现在发现没有开源代码,心态没了。
接下来这段时间尝试手写代码,完成这个任务。

0. GPU

还是接着之前使用的autodl 的GPU,当时保存镜像了,现在拖过来可以直接使用。

1.修改网络模型中 num_class=33

configs\obb\oriented_rcnn\faster_rcnn_orpn_r50_fpn_3x_hrsc.py
num_classes=1,改成33

2.修改 hrsc.py中 classwise=True

configs\obb_base_\datasets\hrsc.py
classwise=False,改成True

3.疑惑

训练读取的标签从哪读取?
为什么都没改读取标签的位置就能行?
因为数据集里的annotation还是labelTxt,用的是哪个我不确定。先把testdataset里边的labelTxt文件夹删掉进行测试。能运行,表示Oriented R-CNN没用labelTxt里边的文件,那我直接修改上边两处试试。

(obbdetection) root@container-bd721182ac-1b86a0fe:~/OBBDetection# python tools/test.py configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_3x_hrsc.py /root/OBBDetection/work_dirs/epoch_35.pth --eval mAP
Starting loading HRSC dataset information.
100%|███████████████████████████████████████████████████████████████████████████████████████| 444/444 [00:00<00:00, 4659.11it/s]
Finishing loading HRSC, get 444 images, using 0.214s.
load checkpoint from local path: /root/OBBDetection/work_dirs/epoch_35.pth
[                                                  ] 0/444, elapsed: 0s, ETA:/root/OBBDetection/mmdet/core/post_processing/obb/obb_nms.py:29: UserWarning: This overload of nonzero is deprecated:nonzero()
Consider using one of the following signatures instead:nonzero(*, bool as_tuple) (Triggered internally at  /opt/conda/conda-bld/pytorch_1595629403081/work/torch/csrc/utils/python_arg_parser.cpp:766.)labels = valid_mask.nonzero()[:, 1]
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 444/444, 9.9 task/s, elapsed: 45s, ETA:     0s
+-------+------+------+--------+--------+
| class | gts  | dets | recall | ap     |
+-------+------+------+--------+--------+
| ship  | 1188 | 3160 | 0.9840 | 0.9049 |
+-------+------+------+--------+--------+
| mAP   |      |      |        | 0.9049 |
+-------+------+------+--------+--------+

不确定: 现在看他的Annotation里的东西我们没用到。当时转化成txt格式了,后边都是ship,0/1,看来还得再转换一边。

4. 修改前 完整性测试

先运行一下 Train.py,确保修改之前正确。

nohup python tools/train.py configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_3x_hrsc.py --work-dir work_dirs >xcbTrain202205171509.log 2>&1 &

可以正常训练。

5.然后修改参数

configs\obb\oriented_rcnn\faster_rcnn_orpn_r50_fpn_3x_hrsc.py
num_classes=1,改成33
configs\obb_base_\datasets\hrsc.py
classwise=False,改成True

nohup python tools/train.py configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_3x_hrsc.py --work-dir work_dirs >xcbTrain202205171520.log 2>&1 &

2022年5月17日15点22分
训练一下,2080Ti的GPU 预计使用一个半小时。打游戏了。

可以看GPU的使用情况,2s刷新一次。

watch -n 2 -d nvidia-smi

中途因为空间不够(他每次都生成xepoch.pth),中断了,所以重新恢复训练。
这里注意,从Jupyter notebook 选中后右键删除的文件并没从磁盘上消失,也就是你的磁盘空间还是不足,因为他放入了回收站、c。
用这个代码清空回收站

rm -rf ~/.local/share/Trash/*

可以用这个语句查询磁盘空间

df -h
或者
df /root/OBBDetection
其他等等。

然后我们恢复训练。注意,我们上次失败是存储到epoch24.pth了。但是数据不全,所以从epoch23.pth开始恢复

nohup python tools/train.py configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_3x_hrsc.py --work-dir work_dirs --resume-from work_dirs/epoch_23.pth >xcbTrain202205171647.log 2>&1 &

训练完成了,让我们找个图片测试。

6.测试图片

python demo/image_demo.py demo/100001132.bmp configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_3x_hrsc.py  work_dirs/epoch_36.pth  

贴上几张图片。

注意:每个预测框上的第一个数字表示33个类型,比如09表示佩里级护卫舰 perry class frigate。这个文件在imageset里叫 sysdata.xml

下面是sysdata.xml 部分标签的参考:

7. 评价 mAP

先用VOC07评价:

(obbdetection) root@container-bd721182ac-1b86a0fe:~/OBBDetection# python tools/test.py configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_3x_hrsc.py /root/OBBDetection/work_dirs/epoch_36.pth --eval mAP --options use_07_metric=True
Starting loading HRSC dataset information.
100%|█████████████████████████████████████████████████████████████████████████| 444/444 [00:00<00:00, 5789.69it/s]
Finishing loading HRSC, get 444 images, using 0.148s.
load checkpoint from local path: /root/OBBDetection/work_dirs/epoch_36.pth
[                                                  ] 0/444, elapsed: 0s, ETA:/root/OBBDetection/mmdet/core/post_processing/obb/obb_nms.py:29: UserWarning: This overload of nonzero is deprecated:nonzero()
Consider using one of the following signatures instead:nonzero(*, bool as_tuple) (Triggered internally at  /opt/conda/conda-bld/pytorch_1595629403081/work/torch/csrc/utils/python_arg_parser.cpp:766.)labels = valid_mask.nonzero()[:, 1]
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 444/444, 10.0 task/s, elapsed: 44s, ETA:     0s
+-------+-----+------+--------+--------+
| class | gts | dets | recall | ap     |
+-------+-----+------+--------+--------+
| 01    | 230 | 547  | 0.8391 | 0.6287 |
| 02    | 0   | 0    | 0.0000 | 0.0000 |
| 03    | 22  | 284  | 0.9091 | 0.1458 |
| 04    | 2   | 0    | 0.0000 | 0.0000 |
| 05    | 35  | 70   | 1.0000 | 0.8107 |
| 06    | 12  | 76   | 0.9167 | 0.4671 |
| 07    | 158 | 293  | 0.9684 | 0.8945 |
| 08    | 40  | 111  | 0.9250 | 0.8055 |
| 09    | 128 | 268  | 0.9766 | 0.8960 |
| 10    | 22  | 103  | 1.0000 | 0.9716 |
| 11    | 103 | 212  | 0.9806 | 0.9072 |
| 12    | 1   | 0    | 0.0000 | 0.0000 |
| 13    | 2   | 68   | 1.0000 | 0.4000 |
| 14    | 0   | 0    | 0.0000 | 0.0000 |
| 15    | 35  | 93   | 1.0000 | 0.9225 |
| 16    | 50  | 84   | 1.0000 | 0.9917 |
| 17    | 1   | 0    | 0.0000 | 0.0000 |
| 18    | 18  | 49   | 0.8889 | 0.6243 |
| 19    | 39  | 112  | 0.9487 | 0.8279 |
| 20    | 16  | 32   | 1.0000 | 0.9192 |
| 21    | 0   | 0    | 0.0000 | 0.0000 |
| 22    | 50  | 73   | 0.9200 | 0.7254 |
| 23    | 0   | 0    | 0.0000 | 0.0000 |
| 24    | 1   | 34   | 1.0000 | 0.0303 |
| 25    | 119 | 214  | 0.9076 | 0.8259 |
| 26    | 4   | 69   | 1.0000 | 0.4387 |
| 27    | 60  | 82   | 0.9500 | 0.8959 |
| 28    | 4   | 7    | 0.7500 | 0.4870 |
| 29    | 10  | 79   | 1.0000 | 0.9587 |
| 30    | 16  | 57   | 0.9375 | 0.8745 |
| 31    | 0   | 0    | 0.0000 | 0.0000 |
| 32    | 10  | 67   | 1.0000 | 0.9504 |
| 33    | 0   | 0    | 0.0000 | 0.0000 |
+-------+-----+------+--------+--------+
| mAP   |     |      |        | 0.6444 |
+-------+-----+------+--------+--------+

用VOC12评价

python tools/test.py configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_3x_hrsc.py /root/OBBDetection/work_dirs/epoch_36.pth --eval mAP --options use_07_metric=False
Starting loading HRSC dataset information.
100%|█████████████████████████████████████████████████████████████████████████| 444/444 [00:00<00:00, 6964.86it/s]
Finishing loading HRSC, get 444 images, using 0.139s.
load checkpoint from local path: /root/OBBDetection/work_dirs/epoch_36.pth
[                                                  ] 0/444, elapsed: 0s, ETA:/root/OBBDetection/mmdet/core/post_processing/obb/obb_nms.py:29: UserWarning: This overload of nonzero is deprecated:nonzero()
Consider using one of the following signatures instead:nonzero(*, bool as_tuple) (Triggered internally at  /opt/conda/conda-bld/pytorch_1595629403081/work/torch/csrc/utils/python_arg_parser.cpp:766.)labels = valid_mask.nonzero()[:, 1]
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 444/444, 10.0 task/s, elapsed: 44s, ETA:     0s
+-------+-----+------+--------+--------+
| class | gts | dets | recall | ap     |
+-------+-----+------+--------+--------+
| 01    | 230 | 547  | 0.8391 | 0.6419 |
| 02    | 0   | 0    | 0.0000 | 0.0000 |
| 03    | 22  | 284  | 0.9091 | 0.1445 |
| 04    | 2   | 0    | 0.0000 | 0.0000 |
| 05    | 35  | 70   | 1.0000 | 0.8120 |
| 06    | 12  | 76   | 0.9167 | 0.4504 |
| 07    | 158 | 293  | 0.9684 | 0.9453 |
| 08    | 40  | 111  | 0.9250 | 0.8261 |
| 09    | 128 | 268  | 0.9766 | 0.9495 |
| 10    | 22  | 103  | 1.0000 | 0.9755 |
| 11    | 103 | 212  | 0.9806 | 0.9726 |
| 12    | 1   | 0    | 0.0000 | 0.0000 |
| 13    | 2   | 68   | 1.0000 | 0.4000 |
| 14    | 0   | 0    | 0.0000 | 0.0000 |
| 15    | 35  | 93   | 1.0000 | 0.9441 |
| 16    | 50  | 84   | 1.0000 | 0.9970 |
| 17    | 1   | 0    | 0.0000 | 0.0000 |
| 18    | 18  | 49   | 0.8889 | 0.6429 |
| 19    | 39  | 112  | 0.9487 | 0.8628 |
| 20    | 16  | 32   | 1.0000 | 0.9236 |
| 21    | 0   | 0    | 0.0000 | 0.0000 |
| 22    | 50  | 73   | 0.9200 | 0.7296 |
| 23    | 0   | 0    | 0.0000 | 0.0000 |
| 24    | 1   | 34   | 1.0000 | 0.0303 |
| 25    | 119 | 214  | 0.9076 | 0.8414 |
| 26    | 4   | 69   | 1.0000 | 0.4248 |
| 27    | 60  | 82   | 0.9500 | 0.9305 |
| 28    | 4   | 7    | 0.7500 | 0.4821 |
| 29    | 10  | 79   | 1.0000 | 0.9636 |
| 30    | 16  | 57   | 0.9375 | 0.9014 |
| 31    | 0   | 0    | 0.0000 | 0.0000 |
| 32    | 10  | 67   | 1.0000 | 0.9455 |
| 33    | 0   | 0    | 0.0000 | 0.0000 |
+-------+-----+------+--------+--------+
| mAP   |     |      |        | 0.6569 |
+-------+-----+------+--------+--------+

我找到了有两篇做了L3\L2 task的文章他们没开源
分别是:
Ship detection and classification from optical
remote sensing images: A survey
好像是民航和北航联合做的,删掉了不存在的类


还有一篇西电的硕士毕业论文:
基于深度学习的卫星图像目标检测算法研究_李巍

精度我也没看他们用的VOC几,因为目前类的数量不同。

本文参考的代码上直接使用了33类的,就是HRSC2016自带的所有标签,可以看出有些标签根本不存在,可能他们的文章为了美观没放上去,这个后续再说吧。
我下一步尝试进行L2 级别的task。

L2 task

说来很惭愧,我自己什么都没做,只是改了几处代码 :<
现在已知的信息是:
1.能做L1 task 分类,只有ship 1 class
2.能做L3 task 分类,有 33 classs

修改的地方只有 classwise 和 num_class
接下来把num_class 改成四试试。
然后在BboxToolkit\datasets\misc.py文件中加入

'HRSC_4cls': ('01', '02', '03', '04'),

还得在dataset_aliases
加入

'HRSC_cls': product(['hrsc', 'HRSC'], ['_4cls', '2016_4cls']),

在mmdet\datasets\obb\hrsc.py中
修改:

if classwise:HRSCDataset.CLASSES = bt.get_classes('hrsc_4cls')

然后进行测试。
忙着头做的,也不知道行不行,好紧张。一个小时后见分晓。
2022年5月17日19点25分
打游戏去。

nohup python tools/train.py configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_3x_hrsc.py --work-dir work_dirs >xcbTrain202205171920.log 2>&1 &

8.完了

‘HRSC_4cls’: product([‘hrsc’, ‘HRSC’], [‘_4cls’, ‘2016_4cls’]),
这个地方训练之前HRSC_CLS
忘记加4了,先试试epoch5.pth 怎么样。
epoch5,7,10 都检测不出来,
log显示 坏了

刚才粗心了,现在重新训练。

9.失败了

(obbdetection) root@container-bd721182ac-1b86a0fe:~/OBBDetection# python tools/test.py configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_3x_hrsc.py /root/OBBDetection/work_dirs/epoch_36.pth --eval mAP
Starting loading HRSC dataset information.
100%|████████████████████████████████████████████████████████████████████████| 444/444 [00:00<00:00, 10876.42it/s]
Finishing loading HRSC, get 444 images, using 0.131s.
load checkpoint from local path: /root/OBBDetection/work_dirs/epoch_36.pth
[                                                  ] 0/444, elapsed: 0s, ETA:/root/OBBDetection/mmdet/core/post_processing/obb/obb_nms.py:29: UserWarning: This overload of nonzero is deprecated:nonzero()
Consider using one of the following signatures instead:nonzero(*, bool as_tuple) (Triggered internally at  /opt/conda/conda-bld/pytorch_1595629403081/work/torch/csrc/utils/python_arg_parser.cpp:766.)labels = valid_mask.nonzero()[:, 1]
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 444/444, 10.2 task/s, elapsed: 44s, ETA:     0s
+-------+-----+------+--------+--------+
| class | gts | dets | recall | ap     |
+-------+-----+------+--------+--------+
| 01    | 230 | 1668 | 0.7913 | 0.5600 |
| 02    | 0   | 1158 | 0.0000 | 0.0000 |
| 03    | 22  | 1516 | 0.5000 | 0.1264 |
| 04    | 2   | 1147 | 0.0000 | 0.0000 |
+-------+-----+------+--------+--------+
| mAP   |     |      |        | 0.2288 |
+-------+-----+------+--------+--------+

肯定是读取的标签不对,相当于我把33个类减到四个类了c。
肯定得从读取标签的地方入手。

9.load annotation 修改

BboxToolkit\datasets\HRSCio.py文件中,
修改Class_ID为HRS_Class_ID

cls = obj.find('Class_ID').text
改为
cls = obj.find('HRS_Class_ID').text

报错了,这个是sysdata.xml的名称,应该改每张图片对应的annotation的

应该把他加载annotation的代码,Class_ID为HRS_Class_ID。明天再说,今天腰疼了。

2022年5月19日16点33分


把注释掉的改为这几个判断。然后训练试试。

         if cls2lbl[cls] in [1,2,3,4,27]:labels.append(1)if cls2lbl[cls] in [5,6,12,13,16,31,32,33]:labels.append(2)if cls2lbl[cls] in [7,8,9,10,11,14,15,17,19,28,29]:labels.append(3)if cls2lbl[cls] in [18,20,22,24,25,26,30]:labels.append(4)# labels.append(cls2lbl[cls])

先保持 num_class = 33
训练12epoch试试结果。
改的乱七八糟,很多运行错误。重新清除一下,刷新一下镜像。
再次说明了跑程序之前验证一下完整性的重要。

重新恢复

33 类正常运行

nohup python tools/train.py configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_3x_hrsc.py --work-dir work_dirs >xxxcbtrain202204051625.log 2>&1 &

只修改HRSCio.py 里边
if cls2lbl[cls] in [1,2,3,4,27]:
labels.append(1)
if cls2lbl[cls] in [5,6,12,13,16,31,32,33]:
labels.append(2)
if cls2lbl[cls] in [7,8,9,10,11,14,15,17,19,28,29]:
labels.append(3)
if cls2lbl[cls] in [18,20,22,24,25,26,30]:
labels.append(4)
报错:

IndexError: index 0 is out of bounds for dimension 0 with size 0

大概是有些范围超了。

然后修改了
BboxToolkit\datasets\misc.py
中:

 'HRSC_4cls': ('01', '02', '03', '04'),'HRSC_4cls': product(['hrsc', 'HRSC'], ['_4cls', '2016_4cls']),

修改:
mmdet\datasets\obb\hrsc.py

 HRSCDataset.CLASSES = bt.get_classes('hrsc_4cls')

运行试试
还是越界。
把config的num_class 改成4,还是越界。
吃饭了 17点22分

晚上奋战30mins

捋着错误找找,进一步有进一步的欢喜。

2022-05-19 21:12:32,653 - mmdet - INFO - Epoch [1][50/219]      lr: 4.945e-04, eta: 0:57:05, time: 0.437, data_time: 0.055, memory: 5327, loss_rpn_cls: 0.4885, loss_rpn_bbox: 0.0252, loss_cls: 0.3598, acc: 88.0039, loss_bbox: 0.0000, loss: 0.8735, grad_norm: 8.2542
谢昌贝
assigned_labels.shape= torch.Size([2000])
assigned_gt_inds= tensor([0, 0, 0,  ..., 0, 0, 0], device='cuda:0')
gt_labels= tensor([], device='cuda:0', dtype=torch.int64)
Traceback (most recent call last):File "tools/train.py", line 153, in <module>main()File "tools/train.py", line 149, in mainmeta=meta)File "/root/OBBDetection/mmdet/apis/train.py", line 133, in train_detectorrunner.run(data_loaders, cfg.workflow, cfg.total_epochs)File "/root/miniconda3/envs/obbdetection/lib/python3.7/site-packages/mmcv/runner/epoch_based_runner.py", line 127, in runepoch_runner(data_loaders[i], **kwargs)File "/root/miniconda3/envs/obbdetection/lib/python3.7/site-packages/mmcv/runner/epoch_based_runner.py", line 50, in trainself.run_iter(data_batch, train_mode=True, **kwargs)File "/root/miniconda3/envs/obbdetection/lib/python3.7/site-packages/mmcv/runner/epoch_based_runner.py", line 30, in run_iter**kwargs)File "/root/miniconda3/envs/obbdetection/lib/python3.7/site-packages/mmcv/parallel/data_parallel.py", line 75, in train_stepreturn self.module.train_step(*inputs[0], **kwargs[0])File "/root/OBBDetection/mmdet/models/detectors/base.py", line 237, in train_steplosses = self(**data)File "/root/miniconda3/envs/obbdetection/lib/python3.7/site-packages/torch/nn/modules/module.py", line 722, in _call_implresult = self.forward(*input, **kwargs)File "/root/OBBDetection/mmdet/core/fp16/decorators.py", line 51, in new_funcreturn old_func(*args, **kwargs)File "/root/OBBDetection/mmdet/models/detectors/base.py", line 172, in forwardreturn self.forward_train(img, img_metas, **kwargs)File "/root/OBBDetection/mmdet/models/detectors/obb/obb_two_stage.py", line 181, in forward_train**kwargs)File "/root/OBBDetection/mmdet/models/roi_heads/obb/obb_standard_roi_head.py", line 117, in forward_traintarget_bboxes_ignore[i], gt_labels[i])File "/root/OBBDetection/mmdet/core/bbox/assigners/max_iou_assigner.py", line 119, in assignassign_result = self.assign_wrt_overlaps(overlaps, gt_labels)File "/root/OBBDetection/mmdet/core/bbox/assigners/max_iou_assigner.py", line 211, in assign_wrt_overlapsassigned_gt_inds[pos_inds] - 1]
IndexError: index is out of bounds for dimension with size 0

最后一行倒着看,数组越界了,从下往上看了一遍代码,中间那几个地方没看,我估计是gt_labels没得到值,所以才出问题的。
可能是修改了几个标签后,反向传播的时候丢了,或者没搞进去。
现在gt_labels是空的
查看了很多遍之后,发现判断加1、2、3、4可能会出现空的情况

         if cls2lbl[cls]+1 in [1,2,3,4,27]:print("labels.append(1)")labels.append(1)if cls2lbl[cls]+1 in [5,6,12,13,16,31,32,33]:print("labels.append(1)")labels.append(2)if cls2lbl[cls]+1 in [7,8,9,10,11,14,15,17,19,28,29]:print("labels.append(1)")labels.append(3)if cls2lbl[cls]+1 in [18,20,22,24,25,26,30]:print("labels.append(1)")labels.append(4)

刚才输入的标签是1~4,可能识别的有问题:评价精度如下:

  labels = valid_mask.nonzero()[:, 1]
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 444/444, 10.2 task/s, elapsed: 44s, ETA:     0s
+-------+-----+------+--------+--------+
| class | gts | dets | recall | ap     |
+-------+-----+------+--------+--------+
| 01    | 0   | 1502 | 0.0000 | 0.0000 |
| 02    | 254 | 2744 | 0.7480 | 0.3475 |
| 03    | 0   | 1514 | 0.0000 | 0.0000 |
| 04    | 0   | 1508 | 0.0000 | 0.0000 |
+-------+-----+------+--------+--------+
| mAP   |     |      |        | 0.3475 |
+-------+-----+------+--------+--------+

精度很低,现在改到了0~3,,尝试resume-from试试,因为从头训练成本高啊(也不知道行不行,)
2022年5月19日22点25分,还有半小时熄灯了。快点快点
可能跟开始的位置也有关系吧。
从epoch17 resume 到 22epoch。

[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 444/444, 10.7 task/s, elapsed: 42s, ETA:     0s
+-------+-----+------+--------+--------+
| class | gts | dets | recall | ap     |
+-------+-----+------+--------+--------+
| 01    | 254 | 3017 | 0.7520 | 0.4733 |
| 02    | 0   | 2023 | 0.0000 | 0.0000 |
| 03    | 0   | 2003 | 0.0000 | 0.0000 |
| 04    | 0   | 2009 | 0.0000 | 0.0000 |
+-------+-----+------+--------+--------+
| mAP   |     |      |        | 0.4733 |
+-------+-----+------+--------+--------+

明天接着搞。
找到一处没返回成4cls的字符串。
这次再试试。
mmdet/datasets/obb/hrsc.py
line52
def pre_pipeline(self, results):
results[‘4cls’] = self.CLASSES
还是不行,可能有的地方缺少乐。

直接把标签改成(1,2,3,4)

修改的地方如下:

booktool/dataset/hrsc.py中改'HRSC_cls': product(['hrsc', 'HRSC'], ['_4cls', '2016_4cls']),'HRSC_cls': ('01', '02', '03', '04'),
config/obb/orcnn/fasxxx.py中改num_classes=4,
HRSCio.py中改if cls2lbl[cls]+1 in [1,2,3,4,27]:print("labels.append(1)")labels.append(0)if cls2lbl[cls]+1 in [5,6,12,13,16,31,32,33]:print("labels.append(1)")labels.append(1)if cls2lbl[cls]+1 in [7,8,9,10,11,14,15,17,19,28,29]:print("labels.append(1)")labels.append(2)if cls2lbl[cls]+1 in [18,20,22,24,25,26,30]:print("labels.append(1)")labels.append(3)# labels.append(cls2lbl[cls])

终于能显示正常的4个了,泪目,
2022年5月20日11点13分
人家都在过情人节,俺也干饭去了。

load checkpoint from local path: /root/autodl-nas/epoch/epoch_3.pth
[                                                  ] 0/444, elapsed: 0s, ETA:/root/OBBDetection/mmdet/core/post_processing/obb/obb_nms.py:29: UserWarning: This overload of nonzero is deprecated:nonzero()
Consider using one of the following signatures instead:nonzero(*, bool as_tuple) (Triggered internally at  /opt/conda/conda-bld/pytorch_1595629403081/work/torch/csrc/utils/python_arg_parser.cpp:766.)labels = valid_mask.nonzero()[:, 1]
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 444/444, 10.2 task/s, elapsed: 43s, ETA:     0s
+-------+-----+------+--------+--------+
| class | gts | dets | recall | ap     |
+-------+-----+------+--------+--------+
| 01    | 314 | 3604 | 0.2866 | 0.0499 |
| 02    | 110 | 3078 | 0.4000 | 0.1148 |
| 03    | 540 | 3489 | 0.5167 | 0.3083 |
| 04    | 224 | 3941 | 0.5089 | 0.0767 |
+-------+-----+------+--------+--------+
| mAP   |     |      |        | 0.1374 |
+-------+-----+------+--------+--------+
load checkpoint from local path: /root/autodl-nas/epoch/epoch_9.pth
[                                                  ] 0/444, elapsed: 0s, ETA:/root/OBBDetection/mmdet/core/post_processing/obb/obb_nms.py:29: UserWarning: This overload of nonzero is deprecated:nonzero()
Consider using one of the following signatures instead:nonzero(*, bool as_tuple) (Triggered internally at  /opt/conda/conda-bld/pytorch_1595629403081/work/torch/csrc/utils/python_arg_parser.cpp:766.)labels = valid_mask.nonzero()[:, 1]
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 444/444, 10.1 task/s, elapsed: 44s, ETA:     0s
+-------+-----+------+--------+--------+
| class | gts | dets | recall | ap     |
+-------+-----+------+--------+--------+
| 01    | 314 | 2376 | 0.8153 | 0.4269 |
| 02    | 110 | 1018 | 0.7909 | 0.6111 |
| 03    | 540 | 2078 | 0.9574 | 0.8249 |
| 04    | 224 | 1618 | 0.8170 | 0.5311 |
+-------+-----+------+--------+--------+
| mAP   |     |      |        | 0.5985 |
+-------+-----+------+--------+--------+

最后的结果

结果应该是可以的吧,感动死了

[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 444/444, 10.7 task/s, elapsed: 42s, ETA:     0s
+-------+-----+------+--------+--------+
| class | gts | dets | recall | ap     |
+-------+-----+------+--------+--------+
| 01    | 314 | 5140 | 0.8917 | 0.6404 |
| 02    | 110 | 4529 | 1.0000 | 0.9828 |
| 03    | 540 | 5068 | 0.9907 | 0.8885 |
| 04    | 224 | 4765 | 0.9152 | 0.8066 |
+-------+-----+------+--------+--------+
| mAP   |     |      |        | 0.8296 |
+-------+-----+------+--------+--------+

show img



睡觉 2022年5月20日14点37分

HRSC2016 数据集 L2 L3 task相关推荐

  1. 什么是L1/L2/L3 Cache?

    什么是L1/L2/L3 Cache? Cache Memory也被称为Cache,是存储器子系统的组成部分,存放着程序经常使用的指令和数据,这就是Cache的传统定义.从广义的角度上看,Cache是快 ...

  2. VxLAN数据中心L2/L3互通(端到端)

    VxLAN数据中心端到端方式实现L2/L3互连,这种实现方式可以使数据中心属于同一个EVPN-VXLAN域,相较于hand-off方式通过端到端实现数据中心L2互连可以满足Mac mobility.A ...

  3. NLP-信息抽取-关系抽取-2016:Attention-BiLSTM实体关系分类器【基于双向LSTM及注意力机制的关系分类】【数据集:SemEval-2010 Task 8】

    <原始论文:Attention-based bidirectional long short-term memory networks for relation classification&g ...

  4. CPU缓存L1/L2/L3工作原理

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 小麦大叔 来源 | 公众号「朱小厮的博客」 一 ...

  5. CUP 三级缓存L1 L2 L3 cahe详解

    一   三级缓存(L1.L2.L3)是什么? 以近代CPU的视角来说,三级缓存(包括L1一级缓存.L2二级缓存.L3三级缓存)都是集成在CPU内的缓存,它们的作用都是作为CPU与主内存之间的高速数据缓 ...

  6. CCCC 天梯赛 PTA ZOJ 题目 L1 L2 L3

    PTA 天梯赛题目整理 L2 难点 **L2-001 紧急救援** **L2-002 链表去重** **L2-003 月饼** **L2-004 这是二叉搜索树吗** **L2-005 集合相似度** ...

  7. cache 是什么意思 它包括的L1,L2,L3分别是什么东西

    CPU缓存 缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘.实际工作时,CPU往往需 ...

  8. cache 是什么意思 它包括的L1,L2,L3分别是什么东西?

    CPU缓存 缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘.实际工作时,CPU往往需 ...

  9. Tungsten Fabric SDN — 操作实践 — Virtual Networks L2/L3 互联

    目录 文章目录 目录 基础配置 VN 内 Subnets 互联 VN 间 Subnets 互联 相同 Project 场景 Router 方式互联 Policy(策略路由)方式互联 不同 Projec ...

最新文章

  1. 2020年虚拟现实和增强现实的发展趋势将会如何|0glasses低调分享
  2. Opera在本博客的发文方法,fedora8下
  3. 远程调用RestTemplate
  4. 乐视1s 安装android6,乐视X500(1S) 安卓6.0最终 魅族Flyme6刷机包 最新6.7.12.29R 紫火20180510更新...
  5. 小数向上_【实操技巧】社保计算方法:向上取整见分进角(上)
  6. python基础之语句_P009 python基础之控制语句01
  7. 横河川仪压力变送器故障代码_YOKOGAWA/重庆横河川仪EJA变送器三大优秀性能!
  8. SQL Server 中的时间算法
  9. 当微信遇上 10 万战绩的「跳一跳」外挂,程序员还能“逍遥”多久?
  10. 明天就是第四周的实训开始的时间
  11. 一篇比较好的高数的学习规划分享
  12. ArcGIS Pro创建企业级地理数据库(Postgis)
  13. STM32CUBEMX(5)--自定义红外NEC解码,定时器TIM捕获方式
  14. 过招多家大厂提炼的iOS面试心经(答案版)
  15. ElementUI分页组件+Vue
  16. git 使用总结(三)repo sync -m
  17. The Shawshank Redemption-11
  18. Redis入门指南 第1章 简介 Redis的几项特性
  19. Azure Kinect(K4A)人体识别跟踪进阶
  20. java 邮件 已读回执_java – 在Firebase群组消息传递应用中实施已读回执功能

热门文章

  1. 光伏并网MPPT算法控制解析
  2. win11专业版+VMware16.1.2+不可恢复错误: (vcpu-1) Exception 0xc0000005 (access violation)
  3. Matlab转置transpose, .‘与复共轭转置ctranspose, ‘
  4. PLSQL Developer-模板(Template) 使用教程
  5. CenterOS安装MongoDB教程
  6. asp 在线木马专杀程序
  7. R语言笔记之树模型(回归树和决策树)
  8. [UE4]战争迷雾 VaFogOfWar插件使用方法
  9. JavaScript 循环嵌套案例、while 语句、 do...while 语句、continue 关键字、5 break 关键字
  10. 在Puppy Linux中安装Firefox