Real Time Streaming Protocol (RTSP) is a protocol commonly used to stream video from internet-connected cameras. With supervision and Roboflow Inference, you can run a range of different models using the output of an RTSP stream in a few lines of code.
In this guide, we are going to show you how to run
YOLOv9
on frames from an RTSP camera.
Let's get started!
For this tutorial, you will need two packages: supervision and Inference. You can install them using the following command:
Once you have installed supervision and Inference, you are ready to start writing logic to use an RTSP stream with your model
The InferencePipeline method allows you to stream data from a webcam or RTSP steam for use in running predictions. The method allows you to select a model for use then run a callback function that has the predictions from the model and the frame on which inference was inferred.
Below, we show you how to use InferencePipeline with
YOLOv9
.
You can load data using the following code:
Above, replace "microsoft-coco/9" with the model ID of a YOLOv9 object detection model hosted on Roboflow.
To upload a model to Roboflow, first install the Roboflow Python package:
Then, create a new Python file and paste in the following code:
In the code above, add your API key and the path to the model weights you want to upload. Learn how to retrieve your API key. Your weights will be uploaded to Roboflow. Your model will shortly be accessible over an API, and available for use in Inference. To learn more about uploading model weights to Roboflow, check out our full guide to uploading weights to Roboflow.
Above, we load a model then pass the model into the InferencePipeline method for use in running inference. We define a callback function called render() which runs every time a frame is retrieved from our webcam. render() can contain any logic you want to run on each frame.
In the example code above, we plot predictions from a model each frame and display the frame in a video stream. This allows you to watch your model run in real time and understand how it performs.
Replace the 127.0.0.0 URL with the URL of your RTSP camera. In addition, replace the API_KEY value with your Roboflow API key. Learn how to retrieve your Roboflow API key.
Now that you have configured your model and streaming interface, you can test the stream. To do so, run your Python program.
supervision provides an extensive range of functionalities for working with computer vision models. With supervision, you can:
1. Process and filter detections and segmentation masks from a range of popular models (YOLOv5, Ultralytics YOLOv8, MMDetection, and more).
2. Display predictions (i.e. bounding boxes, segmentation masks).
3. Annotate images (i.e. trace predictions, draw heatmaps).
4. Compute confusion matrices.
And more! To learn about the full range of functionality in supervision, check out the supervision documentation.