Project 04 / Real Data Pipeline

FAIR-CSAR 真实散焦舰船数据集与 YOLOv8_CBAM 流程

这一页展示主页没有讲透的真实数据工程:从 FAIR-CSAR 复数 SLC 样本出发,经过候选筛选、三通道特征生成、运动线索评分、人工复核状态、YOLO 数据集切片、YOLOv8_CBAM 训练和级联推理,最后用测试与报告检查数据质量。

结果快照

Scenes1406

当前纳入真实场景总量。

Candidate Boxes3508

候选框总量,覆盖 static / moving ship。

Auto Labeled772

可自动进入标注流程的 moving_ship 样本。

Missing0

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.pyFairSample / iter_fair_samples把 FAIR 根目录中的图像、复数数据、标注和元数据组织成样本对象。
candidate_screening.pyFairAssets / CandidateBox规范候选框结构,写入 prediction json 和 manifest。
annotation_dataset.pyAnnotationBox读写 YOLO 标签、annotation_state、candidate boxes。
features.pyFeatureChannels生成 SAR 空间强度、TFD 时频能量、RID 方位相位差通道。
motion_cues.pyMotionCueConfig / SubapertureImages生成子孔径图像、估计位移和运动评分。
yolo_dataset.pybuild_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 rows9815候选筛选样本清单。
Fair positive images6998可用于正样本构建的图像。
GT boxes29713最终标注框数量。
Prediction boxes33687候选预测框数量。
screen recall / precision84.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

数据生产链路

  1. 真实数据读取resolve_fair_paths 定位复数 SLC、PNG、XML、DOTA 标注。
  2. 候选筛选CandidateBox 写入 prediction JSON 与 manifest。
  3. 特征生成FeatureChannels 生成 SAR / TFD / RID / fusion RGB。
  4. 运动评分子孔径差异、相关性和位移辅助 static/moving 判断。
  5. 标注复核AnnotationApp 编辑框、保存 annotation_state 和 labels。
  6. 训练入口YOLO 切片数据集进入 train_fusion_cbam 和 run_cascade。

可视化证据