
Raster Vision 建筑检测实战用卫星与航空影像训练检测模型【免费下载链接】raster-visionAn open source library and framework for deep learning on satellite and aerial imagery.项目地址: https://gitcode.com/gh_mirrors/ra/raster-visionRaster Vision 是开源的卫星与航空影像深度学习框架建筑检测这类任务直接改一份示例配置就能跑起来。跑通最小可用版本git clone https://gitcode.com/gh_mirrors/ra/raster-vision cd raster-vision ./scripts/setup_dev_env # ← 一键装好 7 个子包# my_config.py直接参考 examples 里的现成模板改 from rastervision.pytorch_backend.examples.object_detection.cowc_potsdam import get_config get_config get_config # ← 改这里换成你的影像/标注路径rastervision run local my_config.py # ← 跑完全部命令 rastervision run local my_config.py test # ← 先小规模验证流程数据只需两样GeoTIFF 影像 建筑物多边形 GeoJSON。两个数据集都自带COWC Potsdam5cm 德国波茨坦航空影像和 SpaceNetS3 公开。跑完看三样东西root_uri/eval/eval.json里的 mAP、predict/下的预测 GeoTIFF 和矢量 GeoJSON、bundle/model-bundle.zip模型包。配置项逐个讲配置是纯 Python 代码不是 JSON。以cowc_potsdam.py为模板需要关心的就四块。数据与芯片采样raster_sourceRasterioSourceConfig(uris..., channel_order[0,1,2])影像路径 取哪几个波段。Potsdam 原始是 RGBIR 四波段不跑多波段实验就取前 3 个。SceneConfigDatasetConfig训练/验证场景各列一个影像 URI 和标注 URI 成对出现。ObjectDetectionWindowSamplingConfig控制从场景里怎么切训练芯片。size300是芯片边长像素max_windows100是每个场景最多采多少片neg_ratio5.0控制负样本量示例里正窗口与负窗口大约 1:5。ioa_thresh0.9和neg_ioa_thresh0.2只保留标注框与窗口重叠率够高的正样本、足够干净的负样本。用GeoDataConfig时nochipTrue训练时直接从原始 TIFF 随机读窗口省去切芯片这一步关掉 nochip 就先跑chip命令生成切片再训练。模型与 backboneObjectDetectionModelConfig(backboneBackbone.resnet18)示例默认 resnet18底层是 Faster-RCNN 这类检测器。换城市、换传感器训练时 backbone 建议保留预训练权重收敛更快。训练超参SolverConfig(lr1e-4, num_epochs10, batch_sz16)示例配置的原值。one_cycleTrueOneCycle 学习率策略小数据集上比固定学习率稳。预测输出ObjectDetectionPredictOptions(chip_sz300, merge_thresh0.5, score_thresh0.9)预测时同样按 300 像素窗口滑窗IoU 高于 0.5 的重叠框合并成一个置信度低于 0.9 的丢弃。score_thresh太严会漏检先设低一点再看结果。实际效果长什么样左图是拉斯维加斯区域原影像右图是对应的建筑检测输出。橙色区域基本覆盖成片的屋顶与建筑物轮廓对齐道路、空地留白边界略粗糙。官方报告COWC Potsdam 车辆检测 F1 0.95SpaceNet Vegas 建筑语义分割 F1 0.91。踩过的坑和调参经验大影像 nochip 训练 OOM→ 全尺寸场景整块读进显存就炸 → 关掉 nochip 走chip预切模式显存只装 300×300 的芯片。切芯片阶段太慢→ 单进程采样窗口、逐场景读取 → 启动命令加--splits 8并行或先调小max_windows把量降下来。标注 GeoJSON 加载失败→ 几何属性里没有class_id框架不知道每个多边形属于哪一类 → 在GeoJSONVectorSourceConfig的transformers里挂一个ClassInferenceTransformerConfig(default_class_id...)并确认影像和标注坐标参考系一致。正负样本失衡模型全猜背景→ 负窗口太多目标信号被稀释 → 把neg_ratio从 5.0 降到 2.0 左右同时把ioa_thresh收紧到 0.95 附近让正样本更纯。继续深入多尺度训练size_lims(chip_sz, chip_sz 1)扩到更大范围让模型同时看到小屋顶和整栋楼。迁移微调把model-bundle.zip解压出的model.pth拿到新城市影像上继续训比从零收敛快得多。GIS 后处理predict 目录输出的矢量 GeoJSON 直接进 QGIS做裁剪、合并、转 shapefile。官方文档在 docs/示例配置目录在 rastervision_pytorch_backend/rastervision/pytorch_backend/examples/。改完配置跑一轮 eval有数字了再回来调参比盯着论文空想快。【免费下载链接】raster-visionAn open source library and framework for deep learning on satellite and aerial imagery.项目地址: https://gitcode.com/gh_mirrors/ra/raster-vision创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考