# PP-YOLOE-SOD 小目标检测模型(PP-YOLOE Small Object Detection)
<img src="https://user-images.githubusercontent.com/82303451/182520025-f6bd1c76-a9f9-4f8c-af9b-b37a403258d8.png" title="VisDrone" alt="VisDrone" width="300"><img src="https://user-images.githubusercontent.com/82303451/182521833-4aa0314c-b3f2-4711-9a65-cabece612737.png" title="VisDrone" alt="VisDrone" width="300"><img src="https://user-images.githubusercontent.com/82303451/182520038-cacd5d09-0b85-475c-8e59-72f1fc48eef8.png" title="DOTA" alt="DOTA" height="168"><img src="https://user-images.githubusercontent.com/82303451/182524123-dcba55a2-ce2d-4ba1-9d5b-eb99cb440715.jpeg" title="Xview" alt="Xview" height="168">
## 内容
- [简介](#简介)
- [切图使用说明](#切图使用说明)
- [小目标数据集下载](#小目标数据集下载)
- [统计数据集分布](#统计数据集分布)
- [SAHI切图](#SAHI切图)
- [模型库](#模型库)
- [VisDrone模型](#VisDrone模型)
- [COCO模型](#COCO模型)
- [切图模型](#切图模型)
- [拼图模型](#拼图模型)
- [注意事项](#注意事项)
- [模型库使用说明](#模型库使用说明)
- [训练](#训练)
- [评估](#评估)
- [预测](#预测)
- [部署](#部署)
- [引用](#引用)
## 简介
PaddleDetection团队提供了针对VisDrone-DET、DOTA水平框、Xview等小目标场景数据集的基于PP-YOLOE改进的检测模型 PP-YOLOE-SOD,以及提供了一套使用[SAHI](https://github.com/obss/sahi)(Slicing Aided Hyper Inference)工具的切图和拼图的方案。
- PP-YOLOE-SOD 是PaddleDetection团队自研的小目标检测特色模型,使用**数据集分布相关的基于向量的DFL算法** 和 **针对小目标优化的中心先验优化策略**,并且**在模型的Neck(FPN)结构中加入Transformer模块**,以及结合增加P2层、使用large size等策略,最终在多个小目标数据集上达到极高的精度。
- 切图拼图方案**适用于任何检测模型**,建议**使用 PP-YOLOE-SOD 结合切图拼图方案**一起使用以达到最佳的效果。
- 官方 AI Studio 教程案例请参考 [基于PP-YOLOE-SOD的无人机航拍图像检测案例全流程实操](https://aistudio.baidu.com/aistudio/projectdetail/5036782),欢迎一起动手实践学习。
- 第三方 AI Studio 教程案例可参考 [PPYOLOE:遥感场景下的小目标检测与部署(切图版)](https://aistudio.baidu.com/aistudio/projectdetail/4493701) 和 [涨分神器!基于PPYOLOE的切图和拼图解决方案](https://aistudio.baidu.com/aistudio/projectdetail/4438275),欢迎一起动手实践学习。
**注意:**
- **不通过切图拼图而直接使用原图或子图**去训练评估预测,推荐使用 PP-YOLOE-SOD 模型,更多细节和消融实验可参照[COCO模型](#COCO模型)和[VisDrone模型](./visdrone)。
- 是否需要切图然后使用子图去**训练**,建议首先参照[切图使用说明](#切图使用说明)中的[统计数据集分布](#统计数据集分布)分析一下数据集再确定,一般数据集中**所有的目标均极小**的情况下推荐切图去训练。
- 是否需要切图然后使用子图去**预测**,建议在切图训练的情况下,配合着**同样操作的切图策略和参数**去预测(inference)效果更佳。但其实即便不切图训练,也可进行切图预测(inference),只需**在常规的预测命令最后加上`--slice_infer`以及相关子图参数**即可。
- 是否需要切图然后使用子图去**评估**,建议首先确保制作生成了合适的子图验证集,以及确保对应的标注框制作无误,并需要参照[模型库使用说明-评估](#评估)去**改动配置文件中的验证集(EvalDataset)的相关配置**,然后**在常规的评估命令最后加上`--slice_infer`以及相关子图参数**即可。
- `--slice_infer`的操作在PaddleDetection中默认**子图预测框会自动组合并拼回原图**,默认返回的是原图上的预测框,此方法也**适用于任何训好的检测模型**,无论是否切图训练。
## 切图使用说明
### 小目标数据集下载
PaddleDetection团队整理提供的VisDrone-DET、DOTA水平框、Xview等小目标场景数据集的下载链接可以参照 [DataDownload.md](./DataDownload.md)。
### 统计数据集分布
对于待训的数据集(默认已处理为COCO格式,参照 [COCO格式数据集准备](../../docs/tutorials/data/PrepareDetDataSet.md#用户数据转成COCO数据),首先统计**标注框的平均宽高占图片真实宽高的比例**分布:
以DOTA水平框数据集的train数据集为例:
```bash
python tools/box_distribution.py --json_path dataset/DOTA/annotations/train.json --out_img box_distribution.jpg --eval_size 640 --small_stride 8
```
- `--json_path` :待统计数据集 COCO 格式 annotation 的json标注文件路径
- `--out_img` :输出的统计分布图的路径
- `--eval_size` :推理尺度(默认640)
- `--small_stride` :模型最小步长(默认8)
统计结果打印如下:
```bash
Suggested reg_range[1] is 13 # DFL算法中推荐值,在 PP-YOLOE-SOD 模型的配置文件的head中设置为此值,效果最佳
Mean of all img_w is 2304.3981547196595 # 原图宽的平均值
Mean of all img_h is 2180.9354151880766 # 原图高的平均值
Median of ratio_w is 0.03799439775910364 # 标注框的宽与原图宽的比例的中位数
Median of ratio_h is 0.04074914637387802 # 标注框的高与原图高的比例的中位数
all_img with box: 1409 # 数据集图片总数(排除无框或空标注的图片)
all_ann: 98905 # 数据集标注框总数
Distribution saved as box_distribution.jpg
```
**注意:**
- 一般情况下,在原始数据集全部有标注框的图片中,**原图宽高的平均值大于1500像素,且有1/2以上的图片标注框的平均宽高与原图宽高比例小于0.04时(通过打印中位数得到该值)**,建议进行切图训练。
- `Suggested reg_range[1]` 为数据集在优化后DFL算法中推荐的`reg_range`上限,即`reg_max + 1`,在 PP-YOLOE-SOD 模型的配置文件的head中设置这个值。
### SAHI切图
针对需要切图的数据集,使用[SAHI](https://github.com/obss/sahi)库进行切图:
#### 安装SAHI库:
参考[SAHI installation](https://github.com/obss/sahi/blob/main/README.md#installation)进行安装,`pip install sahi`,参考[installation](https://github.com/obss/sahi/blob/main/README.md#installation)。
#### 基于SAHI切图
以DOTA水平框数据集的train数据集为例,切分后的**子图文件夹**与**子图json标注文件**共同保存在`dota_sliced`文件夹下,分别命名为`train_images_500_025`、`train_500_025.json`:
```bash
python tools/slice_image.py --image_dir dataset/DOTA/train/ --json_path dataset/DOTA/annotations/train.json --output_dir dataset/dota_sliced --slice_size 500 --overlap_ratio 0.25
```
- `--image_dir`:原始数据集图片文件夹的路径
- `--json_path`:原始数据集COCO格式的json标注文件的路径
- `--output_dir`:切分后的子图及其json标注文件保存的路径
- `--slice_size`:切分以后子图的边长尺度大小(默认切图后为正方形)
- `--overlap_ratio`:切分时的子图之间的重叠率
**注意:**
- 如果切图然后使用子图去**训练**,则只能**离线切图**,即切完图后保存成子图,存放在内存空间中。
- 如果切图然后使用子图去**评估或预测**,则既可以**离线切图**,也可以**在线切图**,PaddleDetection中支持切图并自动拼图组合结果到原图上。
## 模型库
### [VisDrone模型](visdrone/)
| 模型 | COCOAPI mAP<sup>val<br>0.5:0.95 | COCOAPI mAP<sup>val<br>0.5 | COCOAPI mAP<sup>test_dev<br>0.5:0.95 | COCOAPI mAP<sup>test_dev<br>0.5 | MatlabAPI mAP<sup>test_dev<br>0.5:0.95 | MatlabAPI mAP<sup>test_dev<br>0.5 | 下载 | 配置文件 |
|:---------|:------:|:------:| :-
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【探索人工智能的宝藏之地】 无论您是计算机相关专业的在校学生、老师,还是企业界的探索者,这个项目都是为您量身打造的。无论您是初入此领域的小白,还是寻求更高层次进阶的资深人士,这里都有您需要的宝藏。不仅如此,它还可以作为毕设项目、课程设计、作业、甚至项目初期的立项演示。 【人工智能的深度探索】 人工智能——模拟人类智能的技术和理论,使其在计算机上展现出类似人类的思考、判断、决策、学习和交流能力。这不仅是一门技术,更是一种前沿的科学探索。 【实战项目与源码分享】 我们深入探讨了深度学习的基本原理、神经网络的应用、自然语言处理、语言模型、文本分类、信息检索等领域。更有深度学习、机器学习、自然语言处理和计算机视觉的实战项目源码,助您从理论走向实践,如果您已有一定基础,您可以基于这些源码进行修改和扩展,实现更多功能。 【期待与您同行】 我们真诚地邀请您下载并使用这些资源,与我们一起在人工智能的海洋中航行。同时,我们也期待与您的沟通交流,共同学习,共同进步。让我们在这个充满挑战和机遇的领域中共同探索未来!
资源推荐
资源详情
资源评论
收起资源包目录
人工智能项目资料-基于儿童医学影像做图像识别、目标检测为医生提供诊断依据.zip (1164个子文件)
nms_rotated.cc 4KB
rbox_iou.cc 3KB
matched_rbox_iou.cc 3KB
ms_deformable_attn_op.cc 3KB
ms_deformable_attn_op.cu 46KB
rbox_iou.cu 4KB
nms_rotated.cu 4KB
matched_rbox_iou.cu 2KB
.gitignore 3KB
.gitignore 10B
rbox_iou_utils.h 10KB
001.jpeg 79KB
car.jpg 2.18MB
lvjian1_10.jpg 745KB
lvjian1_0.jpg 516KB
layout_res.jpg 451KB
000000014439_640x640.jpg 267KB
orange_71.jpg 225KB
visdrone_0000315_01601_d_0000509.jpg 191KB
000000014439.jpg 191KB
000000087038.jpg 179KB
coco2017_val2017_000000000139.jpg 158KB
000000570688.jpg 135KB
coco2017_val2017_000000000724.jpg 127KB
renche_00204.jpg 92KB
renche_00002.jpg 91KB
00362.jpg 82KB
hrnet_demo.jpg 42KB
39006.jpg 40KB
vehicle.json 748B
pedestrian.json 186B
LICENSE 11KB
README.md 30KB
README_en.md 26KB
README.md 25KB
README_en.md 24KB
README.md 22KB
README.md 21KB
README_cn.md 21KB
README.md 21KB
README.md 20KB
README_cn.md 20KB
README.md 20KB
README_en.md 20KB
README.md 16KB
README_cn.md 16KB
README.md 16KB
README.md 16KB
README.md 15KB
README.md 14KB
README_en.md 14KB
README.md 14KB
README.md 14KB
README_cn.md 14KB
README_cn.md 14KB
README.md 12KB
README_en.md 12KB
README.md 11KB
README.md 11KB
README_en.md 11KB
README.md 10KB
README_cn.md 10KB
README.md 10KB
README.md 9KB
README.md 9KB
README_cn.md 9KB
README_cn.md 9KB
README.md 9KB
README.md 8KB
README_en.md 8KB
README.md 8KB
README_cn.md 8KB
README.md 8KB
README.md 8KB
README.md 8KB
README_en.md 7KB
README_cn.md 7KB
README.md 7KB
README_cn.md 7KB
README.md 7KB
README.md 7KB
README.md 7KB
README.md 7KB
README.md 6KB
FULL_QUANTIZATION.md 6KB
README.md 6KB
README.md 6KB
README_cn.md 6KB
README.md 6KB
README_cn.md 6KB
README.md 5KB
README_legacy.md 5KB
README_en.md 5KB
README_en.md 5KB
README.md 5KB
README.md 5KB
README.md 5KB
README_cn.md 5KB
README.md 5KB
README_en.md 4KB
共 1164 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功