|
|
8 months ago | |
|---|---|---|
| image_classification | 1 year ago | |
| masked_image_modeling | 1 year ago | |
| odlab | 8 months ago | |
| yolo | 1 year ago | |
| README.md | 1 year ago | |
| requirements.txt | 1 year ago |
本项目是《YOLO目标检测》书籍第二版的源代码,包含了此书所涉及到的所有YOLO模型、RT-DETR模型、DETR模型、FCOS模型,以及YOLOF模型。对于YOLO和RT-DETR,
读者可以在该项目的yolo/文件夹下找到所有的源代码;对于DETR、FCOS和YOLOF模型,读者可以在该项目的odlab/文件夹下找到所有的源代码。
源代码由两种模式构成:
第一种是“章节”模式(尚未完工),即在该项目的book_v1/文件夹下,包含了本书第一版中的每个章节所介绍到的源代码,均可进行调试,以便读者充分理解这些代码的原理和效果;但这种模式虽然可以帮助读者理解每一章节的内容,但无法帮助读者构建起对基于深度学习技术的目标检测框架的更加完整的、成体系的认知,因此,本项目也同时提供了第二种模式;
第二种是“项目”模式,即在该项目的yolo/和odlab/文件夹下,都以笔者所偏好的代码风格来构建了较为完整的目标检测项目代码,以便读者可以更深入地理解一个较为完整的基于深度学习技术的目标检测项目代码的结构,帮助读者初步地建立起面向“项目”层次的,同时,为读者未来更深入地接触其他的项目代码提供了一些实践基础,但这种模式可能对处在入门阶段读者造成一些上手代码的困难,因此,建议读者先遵循第一种的“章节”模式,配合图书内容并实操对应的代码来加深对基础知识的了解,随后,在学到书中的训练和测试的相关内容时,切换“项目”模式,查阅相关的训练代码和测试代码,更加深入的了解基于深度学习技术的目标检测框架。
在使用此代码前,需要读者完成一些必要的环境配置,如python语言的安装、pytorch框架的安装等,随后,遵循yolo/和odlab/两个文件中的README.md文件所提供的内容,配置相关的环境、准备学习所需的数据集,并了解如何使用此项目代码进行训练和测试。如果读者想使用此代码去训练自定义的数据集,也请遵从这两个文件夹中的README.md文件中所给出的指示和说明来准备数据,并训练和测试。
下面的两个表分别汇报了本项目的YOLO系列的small量级的模型在VOC和COCO数据集上的性能指标,所有模型都采用单张3090显卡训练的,在训练中,batch size被设置为16,且会累加梯度4次来近似batch size为64的训练效果。
| Model | Batch | Scale | APval 0.5 | Weight | Logs | ||||
|---|---|---|---|---|---|---|---|---|---|
| YOLOv1-R18 | 1xb16 | 640 | 73.8 | ckpt | log | ||||
| YOLOv2-R18 | 1xb16 | 640 | 75.1 | ckpt | log | ||||
| YOLOv3-S | 1xb16 | 640 | 77.1 | ckpt | log | ||||
| YOLOv5-S | 1xb16 | 640 | 81.2 | ckpt | log | ||||
| YOLOv5-AF-S | 1xb16 | 640 | 83.4 | ckpt | log | ||||
| YOLOv8-S | 1xb16 | 640 | 83.3 | ckpt | log | ||||
| GELAN-S | 1xb16 | 640 | 83.5 | ckpt | log |
| Model | Batch | Scale | FPSFP32 RTX 4060 | APval 0.5:0.95 | APval 0.5 | FLOPs (G) | Params (M) | Weight | Logs |
|---|---|---|---|---|---|---|---|---|---|
| YOLOv1-R18 | 1xb16 | 640 | 124 | 27.6 | 46.8 | 37.8 | 21.3 | ckpt | log |
| YOLOv2-R18 | 1xb16 | 640 | 128 | 28.4 | 47.4 | 38.0 | 21.5 | ckpt | log |
| YOLOv3-S | 1xb16 | 640 | 107 | 31.3 | 49.2 | 25.2 | 7.3 | ckpt | log |
| YOLOv5-S | 1xb16 | 640 | 80 | 38.8 | 56.9 | 27.3 | 9.0 | ckpt | log |
| YOLOv5-AF-S | 1xb16 | 640 | 83 | 39.6 | 58.7 | 26.9 | 8.9 | ckpt | log |
| YOLOv8-S | 1xb16 | 640 | 79 | 42.5 | 59.3 | 28.4 | 11.3 | ckpt | log |
| GELAN-S | 1xb16 | 640 | 34(38) | 42.6 | 58.8 | 27.1 (26.4) | 7.1 (7.2) | ckpt | log |
| Model | Batch | Scale | FPSFP32 RTX 4060 | APval 0.5:0.95 | APval 0.5 | FLOPs (G) | Params (M) | Weight | Logs |
|---|---|---|---|---|---|---|---|---|---|
| RT-DETR-R18 | 4xb4 | 640 | 54 | 45.5 | 63.5 | 66.8 | 21.0 | ckpt | log |
| RT-DETR-R50 | 4xb4 | 640 | 30 | 50.6 | 69.4 | 112.1 | 36.7 | ckpt | log |
| Model | Sclae | FPSFP32 RTX 4060 | APval 0.5:0.95 | APval 0.5 | Weight | Logs |
|---|---|---|---|---|---|---|
| FCOS_R18_1x | 800,1333 | 24 | 34.0 | 52.2 | ckpt | log |
| FCOS_R50_1x | 800,1333 | 9 | 39.0 | 58.3 | ckpt | log |
| FCOS_RT_R18_3x | 512,736 | 56 | 35.8 | 53.3 | ckpt | log |
| FCOS_RT_R50_3x | 512,736 | 34 | 40.7 | 59.3 | ckpt | log |
| YOLOF_R18_C5_1x | 800,1333 | 54 | 32.8 | 51.4 | ckpt | log |
| YOLOF_R50_C5_1x | 800,1333 | 21 | 37.7 | 57.2 | ckpt | log |