当前纳入真实场景总量。
Project 04 / Real Data Pipeline
FAIR-CSAR 真实散焦舰船数据集与 YOLOv8_CBAM 流程
这一页展示主页没有讲透的真实数据工程:从 FAIR-CSAR 复数 SLC 样本出发,经过候选筛选、三通道特征生成、运动线索评分、人工复核状态、YOLO 数据集切片、YOLOv8_CBAM 训练和级联推理,最后用测试与报告检查数据质量。
结果快照
候选框总量,覆盖 static / moving ship。
可自动进入标注流程的 moving_ship 样本。
missing assets / annotations 检查为 0。
这个项目的价值在数据生产链:把真实 SAR 研究数据拆成可筛选、可复核、可训练、可检查的工程流程。
工程总览
FAIR Sample Resolverfair_csar.py 解析 SLC、PNG、XML、DOTA 标注和元数据。
Candidate Screeningcandidate_screening.py 规范候选框、manifest 和 assets 路径。
Feature Channelsfeatures.py 生成 SAR / TFD / RID / fusion RGB。
Motion Cues & Reviewmotion_cues.py 与 annotate_real_dataset.py 组织自动预填和人工复核。
YOLO Dataset & Trainingyolo_dataset.py、prepare_fair_yolo_dataset.py、train_fusion_cbam.py 接入检测训练。
src/fair_csar.py真实样本解析FairSample、target_for_class、parse_dota_annotations、resolve_fair_paths、iter_fair_samples。src/features.py三通道特征生成load_complex_mat、inverse_azimuth_filter、tfd_energy_projection、rid_instantaneous_doppler、convert_fair_dataset。src/motion_cues.py运动线索评分split_azimuth_subapertures、score_box_motion、build_prefilled_boxes、generate_scene_motion_cues。tests/test_*.py质量回归覆盖 annotation、candidate screening、features、motion cues、YOLO dataset、project checks。脚本职责
| 模块 | 关键对象 / 函数 | 职责 |
|---|---|---|
| fair_csar.py | FairSample / iter_fair_samples | 把 FAIR 根目录中的图像、复数数据、标注和元数据组织成样本对象。 |
| candidate_screening.py | FairAssets / CandidateBox | 规范候选框结构,写入 prediction json 和 manifest。 |
| annotation_dataset.py | AnnotationBox | 读写 YOLO 标签、annotation_state、candidate boxes。 |
| features.py | FeatureChannels | 生成 SAR 空间强度、TFD 时频能量、RID 方位相位差通道。 |
| motion_cues.py | MotionCueConfig / SubapertureImages | 生成子孔径图像、估计位移和运动评分。 |
| yolo_dataset.py | build_yolo_dataset | 切片、堆叠三通道图像、转换 labels、生成 YOLO 数据集。 |
src/defocused_ship_detection_real
fair_csar.py
candidate_screening.py
fair_positive_candidates.py
features.py
motion_cues.py
annotation_dataset.py
yolo_dataset.py
project_checks.py
build_fair_ship_positive_candidates.py构建正样本候选从 FAIR 标注和粗检结果中生成候选数据集。build_selected_fair_label_candidates.py筛选标注候选整理 selected candidates,清理输出目录,准备复核。generate_fair_features.py生成特征通道批量转换 SLC 为 SAR / TFD / RID / fusion 图像。prepare_annotation_scenes.py准备标注场景把图像、候选框、状态文件组织到 annotation scenes。generate_motion_cues.py生成运动线索为复核界面预填 static/moving 判断辅助信息。annotate_real_dataset.py人工复核界面AnnotationApp 支持跳转、加载状态、编辑框、保存标签。| 检查项 | 数量 / 比例 | 意义 |
|---|---|---|
| PNG 与标注文件 | 11959 | 图像与标注产物规模。 |
| Manifest rows | 9815 | 候选筛选样本清单。 |
| Fair positive images | 6998 | 可用于正样本构建的图像。 |
| GT boxes | 29713 | 最终标注框数量。 |
| Prediction boxes | 33687 | 候选预测框数量。 |
| screen recall / precision | 84.51% / 60.25% | 候选筛选覆盖率与冗余度。 |
- project_checks.pyvalidate_yolo_data_config 与 validate_fair_root 检查数据配置和 FAIR 根目录。
- 0 missing JSON预测 JSON 文件检查无缺失。
- 0 duplicates唯一样本名检查未发现重复。
- 9 个测试文件覆盖核心数据结构、特征、运动线索、YOLO 数据集和工具脚本。
prepare_fair_yolo_dataset.pyYOLO 数据集入口调用 build_yolo_dataset,生成 images、labels、splits 和 data.yaml。train_fusion_cbam.py融合特征训练接入 YOLOv8_CBAM,用三通道融合图训练检测器。run_cascade.py级联推理先粗检,再用 center_in_expanded_box 对 fine box 和 coarse box 做关联过滤。
datasets/FAIR_CSAR_ship_Real_Annotation
outputs/reports/fair_csar_initial_screening_eval.json
tools/yolo11n.pt
static_ship / moving_ship
SAR / TFD / RID
数据生产链路
- 真实数据读取resolve_fair_paths 定位复数 SLC、PNG、XML、DOTA 标注。
- 候选筛选CandidateBox 写入 prediction JSON 与 manifest。
- 特征生成FeatureChannels 生成 SAR / TFD / RID / fusion RGB。
- 运动评分子孔径差异、相关性和位移辅助 static/moving 判断。
- 标注复核AnnotationApp 编辑框、保存 annotation_state 和 labels。
- 训练入口YOLO 切片数据集进入 train_fusion_cbam 和 run_cascade。
可视化证据