let segmentation honour its post-processing configuration
Segmentation reuses the detection suppressor but passed only the IoU threshold, so it silently fell back to the hardcoded containment constant while detection had just been given a configured one. Tuning containment for a promoted model would have changed detection behaviour and left segmentation on the old value — the same drift, one commit later. Masks and boxes overlap differently, so segmentation carries its own setting rather than borrowing the detector's, and records both thresholds on the run as detection does. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -415,6 +415,14 @@ class Settings(BaseSettings):
|
||||
)
|
||||
sam_model_version: str | None = Field(default=None, validation_alias="SAM_MODEL_VERSION")
|
||||
segmentation_max_masks_per_tile: int = Field(default=300, ge=1, validation_alias="SEGMENTATION_MAX_MASKS_PER_TILE")
|
||||
# Masks and boxes overlap differently, so segmentation carries its own
|
||||
# containment value rather than borrowing the detector's.
|
||||
segmentation_containment_nms_threshold: float = Field(
|
||||
default=0.85,
|
||||
ge=0.0,
|
||||
le=1.0,
|
||||
validation_alias="SEGMENTATION_CONTAINMENT_NMS_THRESHOLD",
|
||||
)
|
||||
segmentation_duplicate_iou_threshold: float = Field(
|
||||
default=0.5,
|
||||
ge=0.0,
|
||||
|
||||
Reference in New Issue
Block a user