Source code for dronebuddylib.atoms.objectdetection.object_detection_engine
from dronebuddylib.atoms.objectdetection.mp_object_detection_impl import MPObjectDetectionImpl
from dronebuddylib.atoms.objectdetection.yolo_object_detection_impl import YOLOObjectDetectionImpl
from dronebuddylib.models.engine_configurations import EngineConfigurations
from dronebuddylib.models.enums import VisionAlgorithm
from dronebuddylib.models.object_detected import ObjectDetectionResult
[docs]
class ObjectDetectionEngine:
def __init__(self, algorithm: VisionAlgorithm, config: EngineConfigurations):
"""
Initializes the object detection engine with the specified algorithm and configuration.
Args:
algorithm (VisionAlgorithm): The vision algorithm to be used for object detection.
config (EngineConfigurations): The configuration for the vision engine.
"""
if algorithm == VisionAlgorithm.YOLO:
self.vision_engine = YOLOObjectDetectionImpl(config)
elif algorithm == VisionAlgorithm.MEDIA_PIPE:
self.vision_engine = MPObjectDetectionImpl(config)
[docs]
def get_detected_objects(self, frame) -> ObjectDetectionResult:
"""
Detects objects in a given frame using the specified vision algorithm.
Args:
frame: The input frame for which objects need to be detected.
Returns:
ObjectDetectionResult (ObjectDetectionResult): The result of the object detection, including a list of detected objects.
"""
return self.vision_engine.get_detected_objects(frame)
[docs]
def get_bounding_boxes_of_detected_objects(self, frame) -> list:
"""
Retrieves bounding boxes for objects in a given frame using the specified vision algorithm.
Args:
frame: The input frame for which bounding boxes are to be retrieved.
Returns:
list: A list of bounding boxes for the detected objects.
"""
return self.vision_engine.get_bounding_boxes_of_detected_objects(frame)