List of per-pair detection overlap records
Data representation
External
External data representation is relevant for Workflows clients - it dictates what is the input and output format of data.
Type: List[Dict[str, Any]]
Internal
Internal data representation is relevant for Workflows blocks creators - this is the type that will be provided by Execution Engine in runtime to the block that consumes input of this kind.
Type: List[Dict[str, Any]]
Details
List of per-pair overlap records computed between two sets of detections at the same dimensionality. Internally and on the wire: List[Dict[str, Any]].
Each record is a dict with the following keys.
Always present:
reference_class: Optional[str]-class_nameof the reference-side detection.Nonewhen the sourcesv.Detectionsdoes not carryclass_name.reference_confidence: Optional[float]- Confidence of the reference-side detection.Nonewhen the sourcesv.Detections.confidenceisNone.candidate_class: Optional[str]-class_nameof the candidate-side detection (same nullability rules).candidate_confidence: Optional[float]- Confidence of the candidate-side detection (same nullability rules).overlap_ratio: float-intersection_area(reference_polygon, candidate_polygon) / reference_polygon.area. Range[0.0, 1.0]. The denominator is always the reference detection's area, so the relation is not symmetric across the two inputs. Polygons come from masks when available (longest contour, validated), otherwise from the bounding-box rectangle.
Conditionally present (only when the source sv.Detections.data carries detection_id for that side):
reference_detection_id: Optional[str]candidate_detection_id: Optional[str]
Records below the configured min_overlap threshold are not emitted. The top-level list is unordered with respect to pair identity; do not rely on positional indexing to cross-reference back into the input batches - use reference_detection_id / candidate_detection_id instead.