这是一个可独立运行的 CPU Demo,用 geoai-py 0.42.0 的 ChangeStar 接口对双期
影像生成变化概率栅格、二值变化栅格和变化图斑 GeoJSON。能力边界为 A(直接
GeoAI 能力);OpenCV 只负责普通 JPG 的特征配准和尺寸处理,Rasterio/GeoPandas
负责无 CRS 输入的栅格与矢量写出。
--before:第一期影像(用户样例为 baseData/07-16.jpg)。--after:第二期影像(用户样例为 baseData/07-19.jpg)。& .\.venvs\00-change-detection\Scripts\python.exe `
.\capabilities\00-change-detection\run_change_detection.py `
--before .\baseData\07-16.jpg `
--after .\baseData\07-19.jpg `
--threshold 0.5 `
--processing-mode auto `
--output .\shared\outputs\00-change-detection\validation-real-20260817
带空间参考的双期 GeoTIFF 可显式使用 --processing-mode geotiff --max-dimension 0;
普通图片可使用 --processing-mode image --max-dimension 2048。省略模式时使用auto,省略 --max-dimension 时普通图片默认 1024,带 CRS 的 GeoTIFF 默认保持原始尺寸。
首次运行会从 Hugging Face 缓存 ChangeStar s1_s1c1_vitb 权重;CPU 运行时间与
机器和缩放参数有关。--max-dimension 默认 1024,--tile-size 默认 512,适合
先做代表性验证;增加尺寸或批量运行前应先人工检查配准和误报。每次运行可单独
选择 0.01 到 0.99 的变化概率阈值,默认值为 0.5;实际阈值会写入run_metadata.json 的 thresholds.change_probability。
处理分辨率也可按运行选择长边上限:1024(快速预览,默认)、1536(标准)、2048(小目标优先)或 3072(高细节)。分辨率越高越容易保留车辆等小目标,
但 CPU 耗时和内存占用会增加;实际处理尺寸记录在 run_metadata.json 的max_dimension 和 processed_shape 中。
GeoTIFF 模式还支持 0,表示保持原始像素尺寸和地理分辨率;普通图片的 0 会
自动回退到 1024。
每次运行目录包含:
before.tif、after_registered.tif:处理输入;GeoTIFF 模式保留 CRS 和仿射变换。change_probability.tif:模型输出的 float32 变化概率。change_mask_raw.tif、change_mask.tif:阈值前后二值栅格(0/255)。change_overlay.png:第二期影像上的红色变化叠加和双期对比。changes.geojson:通过 geoai.masks_to_vector 导出的变化图斑,附带面积和概率FeatureCollection。change_features.json:图斑面积、概率统计和像素边界。run_metadata.json:版本、模型、阈值、配准、缩放、耗时、坐标和限制说明。已验证两类代表性样本:
07-16.jpg 与自身比较,期望变化比例接近 0,检查管线的空变化07-16.jpg 对 07-19.jpg,检查特征配准、有效区域遮罩、栅格另外对城市停车场双期样本做了分辨率对照:1024 档位输出 1 个图斑,2048
档位输出 16 个图斑,更多车辆和停车区域变化被覆盖;2048 档位 CPU 用时约
84 秒,仍存在误报和漏检,结果不能视为车辆变化检测准确率。
没有人工变化真值,Demo 不报告 precision、recall、IoU 或“变化类型”。后续若要
用于边坡/排洪沟等业务,需要同 CRS 正射影像、人工掩膜、误报/漏报统计和许可审查。
geoai-py 0.42.0:MIT。torchange 0.0.4:Apache-2.0;ever-beta 的 PyPI 元数据标为保留权利,需EVER-Z/Changen2-ChangeStar1x256:CC BY-NC-SA 4.0,当前baseData 图片:版权/使用授权未知,需由数据提供方确认。