Synthetic Bad Weather Augmentation Hurts Real-World Performance: Lessons from a Dataset's Missing Geometry

Synthetic weather augmentation hurt real-world sky IoU — the fix was filling missing geometry in training data, not better augmentation.
A developer found that adding physically-modeled bad weather augmentation to an off-road semantic segmentation model caused sky class IoU to drop 1–13 points across five architectures on real adverse weather, while synthetic test sets showed no issue. The root cause: RELLIS-3D's open-terrain bias let the model learn a brittle "bright + above horizon + low texture = sky" shortcut, which fog and darkness augmentation only reinforced by erasing leaf texture. Two fixes — making the degradation generator label-aware and adding 1,500 forest-road frames from GOOSE — recovered the losses, with data coverage yielding +29 to +35 mean IoU gains. Crucially, once coverage was fixed, all augmentation strategies converged within ±1 point on real weather, suggesting augmentation gains largely reflect test-set artifacts rather than real-world improvements.
A developer shared a counterintuitive experiment on Reddit: adding physically-modeled bad weather augmentation (dust, night, fog, lens rain, lens mud) to a semantic segmentation model was intended to improve accuracy under real adverse weather conditions. Instead, the "sky" class IoU dropped across every architecture tested, falling between 1 and 13 percentage points. To make matters worse, the problem was completely invisible on the synthetic held-out test set.
This case exposes a repeatedly underestimated issue: the augmentation itself isn't wrong — what's wrong is the missing geometric shapes in the training set, and augmentation simply amplifies the brittle shortcuts the model has already learned.

The Problem: Passes Synthetic Testing, Collapses on Real Scenes
After fine-tuning on physically-modeled bad weather, the team first validated with a batch of synthetic held-out degraded samples (ImageNet-C fog/splatter/motion blur, plus an unprocessing-based low-light model — none of these generators were used to produce training data). Everything looked fine.
But when they switched to real adverse weather data, results diverged: drivable surface IoU improved, while sky class IoU dropped across all five architectures. On smaller models, the vegetation class also fell.
Failure cases were highly concentrated on forest roads — rutted tracks beneath closed canopies where bright sky is visible through foliage. The model labeled the entire upper half of the frame as "sky."
IoU (Intersection over Union) is the most commonly used class-level evaluation metric in semantic segmentation. It is calculated as the intersection area between the predicted region and the ground-truth annotation divided by their union, yielding a value between 0 and 1 — higher is better. Sky class IoU specifically measures model performance on the subtask of "identifying sky pixels." Since sky is typically treated as a "safe zone" in autonomous driving and robotic perception, misclassifying other regions (like canopy) as sky won't directly cause a collision, but it can interfere with downstream modules such as depth estimation and illumination compensation — making it a key metric worth tracking independently.
ImageNet-C is a widely used robustness benchmark dataset introduced by Hendrycks et al. in 2019. It applies 15 synthetic corruptions (noise, blur, weather degradation, etc.) to the ImageNet validation set at 5 severity levels each, forming 75 subsets. It is extensively used to measure model robustness to distribution shift, but its corruptions are image-space post-processing operations rather than real physical imaging processes. This is precisely why problems can go undetected on a synthetic held-out test set — there is a systematic gap between the distribution of synthetic corruptions and that of real degradation.
Root Cause: The Model Learned a Brittle Shortcut
The core issue isn't the augmentation — it's the composition of the training dataset, RELLIS-3D. This dataset is dominated by open terrain: fields, open trails, wide horizons, with virtually no canopy-filtered-light geometry.
As a result, the model learned a shortcut that holds in its "world" but fails completely in forests:
Bright + above the horizon + low texture = sky
This rule is almost always correct in open scenes, but on canopy roads it misclassifies light filtering through leaves as sky.
What made this truly destructive was the interaction between augmentation and the shortcut: applying degradation (haze, darkness) to these frames made the shortcut even more attractive, because fog and low light erased exactly the leaf texture that could have refuted the "this is sky" judgment. In other words, augmentation didn't create a new problem — it precisely amplified the blind spot already present in the data distribution.
RELLIS-3D is an off-road autonomous driving dataset released by Texas A&M University, collected on open terrain at the university's agricultural research station. It includes RGB images, LiDAR point clouds, and IMU data, with semantic categories covering drivable surface, vegetation, sky, obstacles, and more. Its defining characteristic is that scenes are dominated by open grasslands, wide trails, and low vegetation — with almost no dense woodland or closed canopy scenes. This distributional bias performs well in open off-road environments, but once transferred to forest roads, the model lacks sufficient geometric priors to distinguish "fragments of sky seen through foliage" from "true open sky" — a textbook case of out-of-distribution (OOD) generalization failure. GOOSE (German Outdoor and Offroad Dataset), released by TU Munich, is a multi-terrain off-road dataset with much higher scene diversity, including forests, gravel roads, and paved surfaces in complex geometric environments — the key data source used in this work to close the coverage gap.
Two-Step Fix: Generator Correction + Coverage补齐
The author proposed two sequential fixes, each recovering roughly half the lost performance.
Step 1: Make the Generator Label-Aware
The generator itself shared some of the blame. When using depth maps to brighten the sky, it treated sky as a finite-distance surface; it also "painted a fog layer" over pixels that were physically already invisible.
The fix was to have the generator read the labels: sky was read directly from the label map, and fog-layer pixels occluding more than 97% of light were marked as void (excluded from scoring). This single change recovered approximately half the lost accuracy.
Step 2: Fill the Missing Geometric Coverage
The other half of the problem came from data coverage. The team added 1,500 real frames from the GOOSE dataset (forest ruts, gravel roads, paved roads), using identical augmentation and training schedules on both sides.
The results were striking across four architectures:
- Sky IoU: +7 to +17 points
- Vegetation IoU: +29 to +37 points
- Real-weather mean IoU: +29 to +35 points
This comparison makes the lesson clear: closing coverage gaps for missing geometry does far more for real-world generalization than any augmentation strategy.
The "generator" here refers to the team's physically-modeled degradation rendering pipeline for simulating adverse weather — not a generative adversarial network (GAN) in the deep learning sense. Physical augmentation works by applying controllable pixel-level degradation based on physical equations for atmospheric scattering, lens contamination, and illumination attenuation. Compared to stacking random noise or using style transfer, it produces degradation more faithful to real imaging physics — but is more complex to implement and prone to implicit assumptions. For example, the bug of "treating sky as a finite-distance surface" arose from the physical model making an incorrect assumption about sky pixel depth (sky should be at infinite depth), causing fog effects to be incorrectly layered onto sky regions that should appear clear. The label-aware fix has the degradation generator read semantic segmentation annotations before processing the image, applying different physical parameters to different semantic regions to avoid imposing incorrect degradation on semantically well-defined areas.
An Uncomfortable Conclusion: Augmentation Gains Belong to the Test Set
The author candidly acknowledged the "not particularly pleasant" part of the experiment: once GOOSE entered the training set, all augmentation branches — their own, albumentations, and combined approaches — fell within ±1 point of the control group on real weather.
Their augmentation still added 3.5 to 5.2 points on synthetic held-out degradations, but this now looks "more like a fact about the test set than a fact about the real world."
This is a finding that should give pause to everyone doing data augmentation: when you use synthetic degradation to evaluate synthetic augmentation, it's easy to fall into a self-validating loop. The real-world gains may not come from your carefully engineered augmentation at all — they may come from something as basic as data coverage.
Experimental Limitations to Keep in Mind
The author was also quite honest about the boundaries of these conclusions:
- The coverage experiment used a single random seed; differences of 1–2 points should be treated as noise;
- IDD-AW is a road scene dataset rather than off-road terrain, so it functions as a cross-domain test — measuring relative differences between augmentation branches is more reliable than interpreting absolute numbers;
- The canopy-filtered-light frame is just one illustrative example found among several failure scenarios.
The full tables are in the blog post, and the stress test itself is open-sourced — 165 annotated frames, 5 conditions × 3 severity levels plus scoring scripts, under CC BY-SA 4.0 / MIT license (GitHub repository).
The author also proactively discloses that he sells a larger version of this dataset; readers should factor in this conflict of interest when evaluating the conclusions, though the free version is complete and commercially usable.
Takeaways for Practitioners
The most valuable aspect of this case is how clearly it illustrates a common misconception:
- Augmentation cannot compensate for structural gaps in data distribution. If a training set simply doesn't contain a certain geometric configuration, no matter how sophisticated the augmentation, it will only reinforce the model's wrong shortcuts.
- The composition of your evaluation set determines what problems you can see. Evaluating synthetic augmentation with synthetic degradation is essentially letting the model grade itself.
- Fix data coverage first, then refine augmentation. The dozens of IoU points gained from GOOSE show that the marginal returns of basic data coverage are routinely underestimated.
For fields like autonomous driving and robotic perception that depend on semantic segmentation, this is a reminder: a model performing perfectly in "its world" doesn't mean it truly understands the scene — it may have simply found a shortcut that happens to work within the training distribution.
Related articles

Bilibili's Hit Dify Tutorial: A Practical Guide to Building 20+ AI Apps from Scratch
A distilled guide to Bilibili's top-rated Dify tutorial: Windows + Docker deployment, MySQL connection, five app types, model integration strategy, and publishing.

Agent Skills Beginner's Guide: From Concepts to Multi-Agent Collaboration in Practice
A comprehensive guide to Agent Skills: core concepts, components, the importance of Description, standardization, beginner learning paths, and multi-agent collaboration.

One Neuron Detects Both Cats and Cars? We Reproduced It and Found a New Explanation
The cat-car neuron reinterpreted: researcher Cammarata argues it distinguishes pointy from round, not cats from cars. We reproduced the experiment and found the new explanation holds on most inputs—but cars are the exception. The interpretability debate continues on language models.