遥感目标检测-教学实训

本目录是遥感目标检测课程的独立教学实训包,包含数据集说明、案例资源、实验教学文档、五套 Notebook、模型配置、可复用代码和测试用例。

使用顺序

1. 阅读 `docs/数据集说明.docx`,按照 `data/DIOR/README.md` 和 `data/DOTA_v1.0/README.md` 准备数据。
2. 阅读 `docs/Windows环境配置.docx` 和 `docs/Notebook运行手册.docx`,创建与模型框架对应的运行环境。
3. 先阅读 `docs/实验教学知识点手册.docx`,再按照 `docs/五套实验实训方案.docx` 运行对应 Notebook。
4. 使用 `src/rsdet/` 中的工具完成数据检查、COCO 切片、评估和结果记录。

目录说明

```text
遥感目标检测-教学实训/
├── docs/ 正式 Word 教学文档
├── data/ 数据集下载说明、原始数据和处理后数据目录
├── notebooks/ 五套实验 Notebook
├── src/rsdet/ 可复用 Python 代码库
├── configs/ 模型与数据配置
├── tests/ 代码边界测试
├── images/ 教学示意图和数据集图片
├── 论文资料/ 数据集论文资料
├── requirements.txt Python 依赖
├── environment.yml Conda 基础环境
└── pyproject.toml 项目安装配置
```

数据准备

本包不附带 DOTA、DIOR 的完整影像和标注压缩包。请按照数据集许可,从 `data/DIOR/README.md` 和 `data/DOTA_v1.0/README.md` 中的入口下载,并将解压后的数据放入 `data/raw/`。转换为 COCO 或 YOLO 后,将处理结果放入 `data/processed/`。

建议的数据位置如下:

```text
data/
├── DIOR/README.md
├── DOTA_v1.0/README.md
├── raw/
│ ├── DIOR/ # 原始 DIOR 解压目录
│ └── DOTA/ # 原始 DOTA v1.0 解压目录
└── processed/
└── dior/ # COCO/YOLO 转换后的 DIOR 数据
```

原始数据和处理后数据均不应提交到公共代码仓库;实验报告应记录数据版本、下载来源、转换方式、划分规则和随机种子。

五套实验入口

| Notebook | 数据处理 | 实验内容 |
|---|---|---|
| `01_faster_rcnn.ipynb` | DIOR → COCO | Faster R-CNN 水平框检测 |
| `02_yolov8.ipynb` | DIOR → YOLO | YOLOv8 一阶段检测 |
| `03_oriented_rcnn.ipynb` | DOTA v1.0 → DOTA `labelTxt` | Oriented R-CNN 旋转框检测 |
| `04_deformable_detr.ipynb` | DIOR → COCO | Deformable DETR 多尺度检测 |
| `05_lightweight.ipynb` | DIOR → YOLO | 轻量化 YOLO 与 ONNX 部署 |

Notebook 会从真实数据中按固定随机种子生成教学子集;教学子集用于控制课堂运行规模,不代表完整数据集性能。

框架隔离

Ultralytics、MMDetection 和 MMRotate 建议使用独立环境。`third_party/` 已包含 MMDetection `v3.1.0` 和 MMRotate `v0.3.3` 的官方 tag 源码归档与解压目录;两个框架仍需使用相互隔离的环境,配置文件通过 `MMDET_ROOT` 和 `MMROTATE_ROOT` 指向对应目录。

基础环境可使用:

```powershell
conda env create -f environment.yml
conda activate rsdet-lab
pip install -r requirements.txt
pip install -e .
```

两个 OpenMMLab 实验使用独立环境:

```powershell
conda env create -f environment_mmdet.yml
conda env create -f environment_mmrotate.yml
```

其中 MMDetection 环境目标版本为 Python 3.10、PyTorch 2.0.1、TorchVision 0.15.2、CUDA 11.8、MMCV 2.0.1、MMEngine 0.7.x 以上和 MMDetection v3.1.0;MMRotate 环境目标版本为 Python 3.8、PyTorch 1.10.2、TorchVision 0.11.3、CUDA 11.3、mmcv-full 1.6.2、MMDetection 2.28.2 和 MMRotate v0.3.3。两个环境不能混装。

正式训练前,应保存运行命令、软件版本、GPU 信息、训练日志、指标、预测图和 checkpoint。

代码检查

在项目根目录运行:

```powershell
pytest -q
python -m compileall -q src
```

`runs/`、临时文件、模型权重和实际数据属于运行产物,不随本教学包提供。