RetinaNet

复现内容

因为RetinaNet论文用的是coco数据集,而本人因为实验资源与有限,就使用PASCALVOC 2012 数据集作为复现

RetinaNet框架图

此图从论文中截取

 复现细节和结果

训练设置的超参数

 

 1 total param num 32,595,224
 2 backbone: Resnet50+FPN
 3 优化器:optimizer = torch.optim.SGD(params, lr=0.01, momentum=0.9, weight_decay=1e-4)
 4 学习率每几epoch更新一次lr-step-size=5,每次为上次的几倍,gamma=0.3
 5 损失函数=类别损失:sigmoid Focal Loss()+边界框损失nn.SmoothL1Loss()
 6 batch=8
 7 加载官方完整预训练权重
 8 epoch = 30
 9 每epoch,train:11m,test:7m,total:10h10 训练集:PASCALVOC-2012train(5717)
 11 测试集:PASCALVOC-2012val(5823)
 12 GPU: 1x Tesla V100(32G)
 13 平均推理时间和FPS:0.0517s,21FPS(RTX 3070ti)

12

loss,lr随epoch变化图

 IOU为0.5的map,大概在77%左右

 wandb记录结果val_map=iou0.5,这回只做了一组实验

 与faster rcnn、ssd进行对比

都用相同的数据集(12train,12val)

retinanet:78%

 faster rcnn+fpn:80%,SSD:76%

推理速度对比:faster rcnn-fpn:0.0448,22 fps |  SSD:0.0112,89 fps | RetinaNet:0.0517,21 fps

不知道为什么作为one stage的RetinaNet比faster rcnn慢,我不理解,而且就效果来看也不如前两个,不过这样看来加FPN后明显推理速度变慢

船被检测成飞机了,不过小目标相比SSD有所改进

 

posted @ 2023-05-04 09:47  call-me-ZJ  阅读(59)  评论(0编辑  收藏  举报