DeepContrail segmentation v0.1.0
сегментация инверсионных следов на снимках GOES-16
Модель от EUROCONTROL (eurocontrol-asu) для задачи image-segmentation: по 3-канальному false-colour композиту GOES-16 ABI она выдаёт для каждого пикселя вероятность инверсионного следа. Архитектура — UPerNet с энкодером CAFormer-B36 (timm caformer_b36.sail_in22k_ft_in1k_384), 102,6 млн параметров; обучена на OpenContrails (экспорт 20250305).
➕ Ключевые особенности
- ➕ Вход — стандартный ash RGB: R = band15−14, G = band14−11, B = band14; сцена 256×256 масштабируется до 512 и нормализуется.
- ➕ Выход — карта вероятностей в [0,1] в исходном разрешении; порог по умолчанию 0,5.
- ➕ Рекомендуется TTA: усреднение 8 отражений и поворотов.
- ➖ Обучение на soft-labels — доля аннотаторов, отметивших след; 18 079 сцен из 20 088, 2 009 в валидации.
- 🔜 Веса под Apache 2.0, код под EUPL-1.2; есть отдельный instance-пайплайн, но он не входит в v0.1.0.
🔜 Пример
import numpy as np
from deepcontrail.core import false_color_from_spectral, read_band_manifest
from deepcontrail.segmentation import load_pretrained, predict
model = load_pretrained('eurocontrol-asu/deepcontrail-segmentation', revision='v0.1.0')
bands = np.load(f'{root}/spectral_bands/test/{record_id}.npy')
composite = false_color_from_spectral(bands, model.config.false_color, read_band_manifest(root))
probabilities = predict(model, composite, tta=model.config.tta)
mask = probabilities > model.config.threshold
Подробнее
Global Dice на тесте: 0.6960 с TTA и порогом 0.5 (single pass — 0.6892).Обучение: 40 эпох, batch 32, AdamW, BCE + 0.2 × Dice, bf16; 18 079 сцен.
Ограничения: только GOES-16 ABI 256×256 (~2 км/пиксель), другие размеры и неквадратные сцены пока не поддерживаются.
Для старых 20230419/Kaggle-масок нужен
pixel_shift=0.5; instance-пайплайн не входит в v0.1.0.







Комментарии