This project implements a comprehensive ROS2 (Humble) object detection and tracking system within a single package (sim_cam_pkg
). The pipeline starts with a simulated camera feed from a video file, performs object detection using a YOLOv11n model (via OpenCV DNN), tracks objects across frames using an OpenCV Kalman filter, and visualizes the results through rqt_image_viewer
.
To simulate a continuous camera feed from a single video file, a simple loop detection logic is incorporated. Each time the video loops, the tracker IDs are reset to ensure distinct tracking for each pass.
A key feature includes a loop detection logic for continuous camera feed simulation from a single video, resetting tracker IDs upon each loop.
rqt_image_viewer
.Key Technical Choices:
.onnx
model) with OpenCV DNN for optimized CPU inference. Achieved ~10-12 FPS on an i5 13th gen CPU.ament_cmake
to support both C++ and Python nodes.DetectionArray
, TrackedObjectArray
).