sombruxo

yoloRos

Oct 22nd, 2026
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.22 KB | Source Code | 0 0
  1. import rclpy
  2. from rclpy.node import Node
  3.  
  4. from std_msgs.msg import String
  5.  
  6. from ultralytics import YOLO
  7. import cv2
  8.  
  9.  
  10. class YoloDetect(Node):
  11.  
  12.     def __init__(self):
  13.         super().__init__('YoloDetect')
  14.         self.publisher_ = self.create_publisher(String, 'yolodetect', 10)
  15.         timer_period = 0.5  # seconds
  16.         self.timer = self.create_timer(timer_period, self.timer_callback)
  17.         self.cap = cv2.VideoCapture("/mnt/c/Users/Bemposta/Videos/madrid.mp4")
  18.         if not self.cap.isOpened():
  19.             print("Cannot open video:")
  20.             exit()
  21.         self.model = YOLO("yolo26s.pt")
  22.  
  23.     def timer_callback(self):
  24.         ret, frame = self.cap.read()
  25.         results = self.model.predict(source=frame, iou=0.5, verbose=False, imgsz=[736, 1280])
  26.         results_json =  results[0].to_json(normalize=True, decimals=5)
  27.        
  28.         msg = String()
  29.         msg.data = results_json
  30.         self.publisher_.publish(msg)
  31.         self.get_logger().info('Publishing: "%s"' % msg.data)
  32.  
  33.  
  34. def main(args=None):
  35.     rclpy.init(args=args)
  36.  
  37.     yolo_detect = YoloDetect()
  38.  
  39.     rclpy.spin(yolo_detect)
  40.  
  41.     yolo_detect.destroy_node()
  42.     rclpy.shutdown()
  43.  
  44.  
  45. if __name__ == '__main__':
  46.     main()
  47.  
Advertisement
Add Comment
Please, Sign In to add comment