Spaces:
Configuration error
Configuration error
| from dataclasses import dataclass | |
| from datetime import datetime | |
| from typing import Dict, List, Optional, Union | |
| from inference.core.env import ( | |
| CLASS_AGNOSTIC_NMS_ENV, | |
| DEFAULT_CLASS_AGNOSTIC_NMS, | |
| DEFAULT_CONFIDENCE, | |
| DEFAULT_IOU_THRESHOLD, | |
| DEFAULT_MAX_CANDIDATES, | |
| DEFAULT_MAX_DETECTIONS, | |
| IOU_THRESHOLD_ENV, | |
| MAX_CANDIDATES_ENV, | |
| MAX_DETECTIONS_ENV, | |
| ) | |
| from inference.core.interfaces.camera.entities import StatusUpdate | |
| from inference.core.interfaces.camera.video_source import SourceMetadata | |
| from inference.core.utils.environment import safe_env_to_type, str2bool | |
| ObjectDetectionPrediction = dict | |
| class ModelConfig: | |
| class_agnostic_nms: Optional[bool] | |
| confidence: Optional[float] | |
| iou_threshold: Optional[float] | |
| max_candidates: Optional[int] | |
| max_detections: Optional[int] | |
| mask_decode_mode: Optional[str] | |
| tradeoff_factor: Optional[float] | |
| def init( | |
| cls, | |
| class_agnostic_nms: Optional[bool] = None, | |
| confidence: Optional[float] = None, | |
| iou_threshold: Optional[float] = None, | |
| max_candidates: Optional[int] = None, | |
| max_detections: Optional[int] = None, | |
| mask_decode_mode: Optional[str] = None, | |
| tradeoff_factor: Optional[float] = None, | |
| ) -> "ModelConfig": | |
| if class_agnostic_nms is None: | |
| class_agnostic_nms = safe_env_to_type( | |
| variable_name=CLASS_AGNOSTIC_NMS_ENV, | |
| default_value=DEFAULT_CLASS_AGNOSTIC_NMS, | |
| type_constructor=str2bool, | |
| ) | |
| if confidence is None: | |
| confidence = safe_env_to_type( | |
| variable_name=CLASS_AGNOSTIC_NMS_ENV, | |
| default_value=DEFAULT_CONFIDENCE, | |
| type_constructor=float, | |
| ) | |
| if iou_threshold is None: | |
| iou_threshold = safe_env_to_type( | |
| variable_name=IOU_THRESHOLD_ENV, | |
| default_value=DEFAULT_IOU_THRESHOLD, | |
| type_constructor=float, | |
| ) | |
| if max_candidates is None: | |
| max_candidates = safe_env_to_type( | |
| variable_name=MAX_CANDIDATES_ENV, | |
| default_value=DEFAULT_MAX_CANDIDATES, | |
| type_constructor=int, | |
| ) | |
| if max_detections is None: | |
| max_detections = safe_env_to_type( | |
| variable_name=MAX_DETECTIONS_ENV, | |
| default_value=DEFAULT_MAX_DETECTIONS, | |
| type_constructor=int, | |
| ) | |
| return ModelConfig( | |
| class_agnostic_nms=class_agnostic_nms, | |
| confidence=confidence, | |
| iou_threshold=iou_threshold, | |
| max_candidates=max_candidates, | |
| max_detections=max_detections, | |
| mask_decode_mode=mask_decode_mode, | |
| tradeoff_factor=tradeoff_factor, | |
| ) | |
| def to_postprocessing_params(self) -> Dict[str, Union[bool, float, int]]: | |
| result = {} | |
| for field in [ | |
| "class_agnostic_nms", | |
| "confidence", | |
| "iou_threshold", | |
| "max_candidates", | |
| "max_detections", | |
| "mask_decode_mode", | |
| "tradeoff_factor", | |
| ]: | |
| result[field] = getattr(self, field, None) | |
| return {name: value for name, value in result.items() if value is not None} | |
| class ModelActivityEvent: | |
| frame_decoding_timestamp: datetime | |
| event_timestamp: datetime | |
| frame_id: int | |
| class LatencyMonitorReport: | |
| frame_decoding_latency: Optional[float] = None | |
| pre_processing_latency: Optional[float] = None | |
| inference_latency: Optional[float] = None | |
| post_processing_latency: Optional[float] = None | |
| model_latency: Optional[float] = None | |
| e2e_latency: Optional[float] = None | |
| class PipelineStateReport: | |
| video_source_status_updates: List[StatusUpdate] | |
| latency_report: LatencyMonitorReport | |
| inference_throughput: float | |
| source_metadata: Optional[SourceMetadata] | |