距离 YOLO v4 的推出,已经过去 5 个多月。但由于YOLO 框架采用 C 语言作为底层代码,网上出现了很多基于各种深度学习框架的 YOLO 复现版本。近日,就有研究者在 GitHub 上更新了基于 PyTorch 的 YOLOv4。
不同与很多基于 TF/Keras 和 Caffe 等的复现版本,只给了代码,并没有给出模型在 COCO、PASCAL VOC 数据集上的训练结果。近日在 GitHub 上开源的基于 PyTorch 深度学习框架的 YOLOv4 复现版本项目,基于 YOLOv4 作者给出的实现 AlexeyAB/darknet,并在 PASCAL VOC、COCO 和自定义数据集上运行。
除此以外,该项目还向主干网络添加了一些有用的注意力方法,并实现了 mobilenetv2-YOLOV4 和 mobilenetv3-YOLOV4。
attentive YOLOv4
该项目向主干网络添加了一些注意力方法,如 SEnet、CBAM。
mobilenet YOLOv4
该研究还实现了 mobilenetv2-YOLOV4 和 mobilenetv3-YOLOV4(只需更改 config/yolov4_config.py 中的 MODEL_TYPE 即可)。
下表展示了 mobilenetv2-YOLOV4 的性能结果:
基于PyTorch 的 YOLOv4操作还是从准备工作的复制 YOLOv4、数据集准备、下载权重文件、和转换成自定义数据集;接下来就是训练、它还支持 resume 训练,添加 --resume,使用以下命令即可自动加载 last.pt。检测操作后,结果可以在 output / 中查看,可有如下效果:
再来就是评估了,这里给了基于Pascal VOC 数据集的示例:
在 val_voc.py 中设置 showatt=Ture,网络即可输出热图。在 output / 中可以查看热图,如下所示:
文章部分素材来源:人工智能与算法学习