Commit 5c1b29d6 authored by Andrey Filippov's avatar Andrey Filippov

docs: Add architecture note regarding skyline far-filtering and future adaptive thresholds

parent 15729352
......@@ -32,3 +32,18 @@ This causes the outer calling function to potentially log or retain `0.0` or `Na
Check if returning `null` on failed refinement is the intended behavior, or if the system should persist the initial (single-frame) disparity into the `RSLT_GDISPARITY` field rather than zeroing it out when integration fails.
---
### [2026-04-24] Skyline "Far" Filtering Exception (Architecture Note)
**Location:** `CuasMotion.java`, around line 7916 (`filterTargetsLMA`)
**Observation:**
Targets located near the skyline are prone to generating spurious "ghost" motion vectors due to imperfect rotational background subtraction on the sharp thermal gradient. This caused valid targets to be lost if they fell off-center in a tile, because the strict "Far" filter (`FAIL_FAR`) killed them before they could compete with neighbors.
**Current Solution:**
The "Hard" `FAIL_FAR` logic is being selectively bypassed for "challenging" tiles (e.g., skyline). A "Soft" cost (`cxy` based on a cosine window) remains active to resolve redundant overlap competitions smoothly.
**Future Roadmap (Dynamic Thresholding):**
The threshold for defining a "challenging" tile is currently being determined empirically via per-tile variation maps.
* In Latvia (clear sky), the threshold can be narrow.
* In Eagle Mountain (light clouds), the threshold must account for higher global variation.
* *Future Iteration:* This threshold should eventually be made **adaptive** (e.g., based on sequence-level sky variance) rather than hardcoded, to handle different weather automatically. *Note: Keep simple for now to avoid auto-parameter "magic" masking bugs.*
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment