@@ -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.
**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.*