Reference for ultralytics/solutions/config.py#
Improvements
This page is sourced from https://github.com/ultralytics/ultralytics/blob/main/ultralytics/solutions/config.py. Have an improvement or example to add? Open a Pull Request — thank you! 🙏
Summary
Class ultralytics.solutions.config.SolutionConfig#
SolutionConfig()Manages configuration parameters for Ultralytics Vision AI solutions.
The SolutionConfig class serves as a centralized configuration container for all the Ultralytics solution modules: https://docs.ultralytics.com/solutions/#solutions. It leverages Python dataclass for clear, type-safe, and maintainable parameter definitions.
Attributes
| Name | Type | Description |
|---|---|---|
source | str, optional | Path to the input source (video, RTSP, etc.). Only usable with Solutions CLI. |
model | str, optional | Path to the Ultralytics YOLO model to be used for inference. |
classes | list[int], optional | List of class indices to filter detections. |
show_conf | bool | Whether to show confidence scores on the visual output. |
show_labels | bool | Whether to display class labels on visual output. |
show_boxes | bool | Whether to display bounding boxes on the visual output. |
region | list[tuple[int, int]], optional | Polygonal region or line for object counting. |
colormap | int, optional | OpenCV colormap constant for visual overlays (e.g., cv2.COLORMAP_DEEPGREEN). |
show_in | bool | Whether to display count number for objects entering the region. |
show_out | bool | Whether to display count number for objects leaving the region. |
up_angle | float | Upper angle threshold used in pose-based workouts monitoring. |
down_angle | int | Lower angle threshold used in pose-based workouts monitoring. |
kpts | list[int] | Keypoint indices to monitor, e.g., for pose analytics. |
analytics_type | str | Type of analytics to perform ("line", "area", "bar", "pie", etc.). |
figsize | tuple[float, float], optional | Size of the matplotlib figure used for analytical plots (width, height). |
blur_ratio | float | Ratio used to blur objects in the video frames (0.0 to 1.0). |
vision_point | tuple[int, int] | Reference point for directional tracking or perspective drawing. |
crop_dir | str | Directory path to save cropped detection images. |
json_file | str, optional | Path to a JSON file containing data for parking areas. |
line_width | int | Width for visual display, e.g. bounding boxes, keypoints, and counts. |
records | int | Number of detection records to send email alerts. |
fps | float | Frame rate (Frames Per Second) for speed estimation calculation. |
max_hist | int | Maximum number of historical points or states stored per tracked object for speed estimation. |
meter_per_pixel | float | Scale for real-world measurement, used in speed or distance calculations. |
max_speed | int | Maximum speed limit (e.g., km/h or mph) used in visual alerts or constraints. |
show | bool | Whether to display the visual output on screen. |
iou | float | Intersection-over-Union threshold for detection filtering. |
conf | float | Confidence threshold for keeping predictions. |
device | str, optional | Device to run inference on (e.g., 'cpu', '0' for CUDA GPU). |
max_det | int | Maximum number of detections allowed per video frame. |
quantize | int | str | None | Inference precision, e.g. 16 (FP16); replaces the deprecated half flag. |
tracker | str | Path to tracking configuration YAML file (e.g., 'botsort.yaml'). |
verbose | bool | Enable verbose logging output for debugging or diagnostics. |
data | str | Path to image directory used for similarity search. |
Methods
| Name | Description |
|---|---|
update | Update configuration parameters with new values provided as keyword arguments. |
Examples
>>> from ultralytics.solutions.config import SolutionConfig
>>> cfg = SolutionConfig(model="yolo26n.pt", region=[(0, 0), (100, 0), (100, 100), (0, 100)])
>>> cfg.update(show=False, conf=0.3)
>>> print(cfg.model)ultralytics/solutions/config.py
@dataclass
class SolutionConfig:
"""Manages configuration parameters for Ultralytics Vision AI solutions.
The SolutionConfig class serves as a centralized configuration container for all the Ultralytics solution modules:
https://docs.ultralytics.com/solutions/#solutions. It leverages Python `dataclass` for clear, type-safe, and
maintainable parameter definitions.
Attributes:
source (str, optional): Path to the input source (video, RTSP, etc.). Only usable with Solutions CLI.
model (str, optional): Path to the Ultralytics YOLO model to be used for inference.
classes (list[int], optional): List of class indices to filter detections.
show_conf (bool): Whether to show confidence scores on the visual output.
show_labels (bool): Whether to display class labels on visual output.
show_boxes (bool): Whether to display bounding boxes on the visual output.
region (list[tuple[int, int]], optional): Polygonal region or line for object counting.
colormap (int, optional): OpenCV colormap constant for visual overlays (e.g., cv2.COLORMAP_DEEPGREEN).
show_in (bool): Whether to display count number for objects entering the region.
show_out (bool): Whether to display count number for objects leaving the region.
up_angle (float): Upper angle threshold used in pose-based workouts monitoring.
down_angle (int): Lower angle threshold used in pose-based workouts monitoring.
kpts (list[int]): Keypoint indices to monitor, e.g., for pose analytics.
analytics_type (str): Type of analytics to perform ("line", "area", "bar", "pie", etc.).
figsize (tuple[float, float], optional): Size of the matplotlib figure used for analytical plots (width,
height).
blur_ratio (float): Ratio used to blur objects in the video frames (0.0 to 1.0).
vision_point (tuple[int, int]): Reference point for directional tracking or perspective drawing.
crop_dir (str): Directory path to save cropped detection images.
json_file (str, optional): Path to a JSON file containing data for parking areas.
line_width (int): Width for visual display, e.g. bounding boxes, keypoints, and counts.
records (int): Number of detection records to send email alerts.
fps (float): Frame rate (Frames Per Second) for speed estimation calculation.
max_hist (int): Maximum number of historical points or states stored per tracked object for speed estimation.
meter_per_pixel (float): Scale for real-world measurement, used in speed or distance calculations.
max_speed (int): Maximum speed limit (e.g., km/h or mph) used in visual alerts or constraints.
show (bool): Whether to display the visual output on screen.
iou (float): Intersection-over-Union threshold for detection filtering.
conf (float): Confidence threshold for keeping predictions.
device (str, optional): Device to run inference on (e.g., 'cpu', '0' for CUDA GPU).
max_det (int): Maximum number of detections allowed per video frame.
quantize (int | str | None): Inference precision, e.g. 16 (FP16); replaces the deprecated half flag.
tracker (str): Path to tracking configuration YAML file (e.g., 'botsort.yaml').
verbose (bool): Enable verbose logging output for debugging or diagnostics.
data (str): Path to image directory used for similarity search.
Methods:
update: Update the configuration with user-defined keyword arguments and raise error on invalid keys.
Examples:
>>> from ultralytics.solutions.config import SolutionConfig
>>> cfg = SolutionConfig(model="yolo26n.pt", region=[(0, 0), (100, 0), (100, 100), (0, 100)])
>>> cfg.update(show=False, conf=0.3)
>>> print(cfg.model)
"""
source: str | None = None
model: str | None = None
classes: list[int] | None = None
show_conf: bool = True
show_labels: bool = True
show_boxes: bool = True
region: list[tuple[int, int]] | None = None
colormap: int | None = cv2.COLORMAP_DEEPGREEN
show_in: bool = True
show_out: bool = True
up_angle: float = 145.0
down_angle: int = 90
kpts: list[int] = field(default_factory=lambda: [6, 8, 10])
analytics_type: str = "line"
figsize: tuple[float, float] | None = (12.8, 7.2)
blur_ratio: float = 0.5
vision_point: tuple[int, int] = (20, 20)
crop_dir: str = "cropped-detections"
json_file: str | None = None
line_width: int = 2
records: int = 5
fps: float = 30.0
max_hist: int = 5
meter_per_pixel: float = 0.05
max_speed: int = 120
show: bool = False
iou: float = 0.7
conf: float = 0.25
device: str | None = None
max_det: int = 300
quantize: int | str | None = None
imgsz: int = 640
tracker: str = "botsort.yaml"
verbose: bool = True
data: str = "images"Method ultralytics.solutions.config.SolutionConfig.update#
def update(self, **kwargs: Any)Update configuration parameters with new values provided as keyword arguments.
Args
| Name | Type | Description | Default |
|---|---|---|---|
**kwargs | Any | required |
ultralytics/solutions/config.py
def update(self, **kwargs: Any):
"""Update configuration parameters with new values provided as keyword arguments."""
if "half" in kwargs: # deprecated alias, forwarded to quantize
from ultralytics.utils import deprecation_warn
deprecation_warn("half", "quantize")
kwargs["quantize"] = 16 if kwargs.pop("half") else None
for key, value in kwargs.items():
if hasattr(self, key):
setattr(self, key, value)
else:
url = "https://docs.ultralytics.com/solutions/#solutions-arguments"
raise ValueError(f"{key} is not a valid solution argument, see {url}")
return self