@@ -55,6 +55,9 @@ def __init__(self) -> None:
5555 self .declare_parameter ("model_type" , "YOLO" )
5656 self .declare_parameter ("model" , "yolov8m.pt" )
5757 self .declare_parameter ("device" , "cuda:0" )
58+ self .declare_parameter ("yolo_encoding" , "bgr8" )
59+ self .declare_parameter ("enable" , True )
60+ self .declare_parameter ("image_reliability" , QoSReliabilityPolicy .BEST_EFFORT )
5861
5962 self .declare_parameter ("threshold" , 0.5 )
6063 self .declare_parameter ("iou" , 0.5 )
@@ -66,9 +69,6 @@ def __init__(self) -> None:
6669 self .declare_parameter ("agnostic_nms" , False )
6770 self .declare_parameter ("retina_masks" , False )
6871
69- self .declare_parameter ("enable" , True )
70- self .declare_parameter ("image_reliability" , QoSReliabilityPolicy .BEST_EFFORT )
71-
7272 self .type_to_model = {"YOLO" : YOLO , "World" : YOLOWorld }
7373
7474 def on_configure (self , state : LifecycleState ) -> TransitionCallbackReturn :
@@ -80,6 +80,9 @@ def on_configure(self, state: LifecycleState) -> TransitionCallbackReturn:
8080 )
8181 self .model = self .get_parameter ("model" ).get_parameter_value ().string_value
8282 self .device = self .get_parameter ("device" ).get_parameter_value ().string_value
83+ self .yolo_encoding = (
84+ self .get_parameter ("yolo_encoding" ).get_parameter_value ().string_value
85+ )
8386
8487 # inference params
8588 self .threshold = (
@@ -326,8 +329,9 @@ def image_cb(self, msg: Image) -> None:
326329 if self .enable :
327330
328331 # convert image + predict
329- cv_image = self .cv_bridge .imgmsg_to_cv2 (msg , desired_encoding = "bgr8" )
330- cv_image = cv2 .cvtColor (cv_image , cv2 .COLOR_BGR2RGB )
332+ cv_image = self .cv_bridge .imgmsg_to_cv2 (
333+ msg , desired_encoding = self .yolo_encoding
334+ )
331335 results = self .yolo .predict (
332336 source = cv_image ,
333337 verbose = False ,
0 commit comments