SIGN IN SIGN UP
roboflow / supervision UNCLAIMED

We write your reusable computer vision tools. 💜

0 0 0 Python
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "EM54mpHhLjIk"
},
"source": [
"[![Supervision](https://media.roboflow.com/open-source/supervision/rf-supervision-banner.png?updatedAt=1678995927529)](https://github.com/roboflow/supervision)\n",
"\n",
"# Supervision Quickstart\n",
"\n",
"---\n",
"\n",
"[![colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/roboflow/supervision/blob/main/demo.ipynb)\n",
"[![version](https://badge.fury.io/py/supervision.svg)](https://badge.fury.io/py/supervision)\n",
"[![downloads](https://img.shields.io/pypi/dm/supervision)](https://pypistats.org/packages/supervision)\n",
"[![license](https://img.shields.io/pypi/l/supervision)](https://github.com/roboflow/supervision/blob/main/LICENSE.md)\n",
"[![python-version](https://img.shields.io/pypi/pyversions/supervision)](https://badge.fury.io/py/supervision)\n",
"[![GitHub](https://badges.aleen42.com/src/github.svg)](https://github.com/roboflow/supervision)\n",
"\n",
"We write your reusable computer vision tools. Whether you need to load your dataset from your hard drive, draw detections on an image or video, or count how many detections are in a zone. You can count on us! \ud83e\udd1d\n",
"\n",
"We hope that the resources in this notebook will help you get the most out of Supervision. Please browse the Supervision [docs](https://roboflow.github.io/supervision/) for details, raise an [issue](https://github.com/roboflow/supervision/issues) on GitHub for support, and join our [discussions](https://github.com/roboflow/supervision/discussions) section for questions!\n",
"\n",
"## Table of contents\n",
"\n",
"- Before you start\n",
"- Install\n",
"- Detection API\n",
" - Plug in your model\n",
" - YOLOv8 (`pip install ultralytics`)\n",
" - Inference (`pip install inference`)\n",
" - YOLO-NAS (`pip install super-gradients`)\n",
" - Annotate\n",
" - `BoxAnnotator`\n",
" - `MaskAnnotator`\n",
" - `LabelAnnotator`\n",
" - Filter\n",
" - By index, index list and index slice\n",
" - By `class_id`\n",
" - By `confidence`\n",
" - By advanced logical condition\n",
"- Video API\n",
" - `VideoInfo`\n",
" - `get_video_frames_generator`\n",
" - `VideoSink`\n",
"- Dataset API\n",
" - `DetectionDataset.from_yolo`\n",
" - Visualize annotations\n",
" - `split`\n",
" - `DetectionDataset.as_pascal_voc`\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "qko8PawxQVoS"
},
"source": [
"## \u26a1 Before you start\n",
"\n",
"**NOTE:** In this notebook, we aim to show - among other things - how simple it is to integrate `supervision` with popular object detection and instance segmentation libraries and frameworks. GPU access is optional but will certainly make the ride smoother.\n",
"\n",
"<br>\n",
"\n",
"Let's make sure that we have access to GPU. We can use `nvidia-smi` command to do that. In case of any problems navigate to `Edit` -> `Notebook settings` -> `Hardware accelerator`, set it to `GPU`, and then click `Save`."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "1Pwtk-9CQWsH",
"outputId": "c8a33db4-f95e-49db-c080-6ac431f84e3a"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Wed Jul 17 14:51:30 2024 \n",
"+---------------------------------------------------------------------------------------+\n",
"| NVIDIA-SMI 535.104.05 Driver Version: 535.104.05 CUDA Version: 12.2 |\n",
"|-----------------------------------------+----------------------+----------------------+\n",
"| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |\n",
"| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\n",
"| | | MIG M. |\n",
"|=========================================+======================+======================|\n",
"| 0 NVIDIA L4 Off | 00000000:00:03.0 Off | 0 |\n",
"| N/A 63C P8 14W / 72W | 1MiB / 23034MiB | 0% Default |\n",
"| | | N/A |\n",
"+-----------------------------------------+----------------------+----------------------+\n",
" \n",
"+---------------------------------------------------------------------------------------+\n",
"| Processes: |\n",
"| GPU GI CI PID Type Process name GPU Memory |\n",
"| ID ID Usage |\n",
"|=======================================================================================|\n",
"| No running processes found |\n",
"+---------------------------------------------------------------------------------------+\n"
]
}
],
"source": [
"!nvidia-smi"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "d9ZN87GAnqxm"
},
"source": [
"**NOTE:** To make it easier for us to manage datasets, images and models we create a `HOME` constant."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "dwGOFWdJnr3T",
"outputId": "b121cc01-3a8b-4847-8e3d-80808ab36bea"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/content\n"
]
}
],
"source": [
"import os\n",
"\n",
"HOME = os.getcwd()\n",
"print(HOME)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "A6a80OsDrJ1y"
},
"source": [
"**NOTE:** During our demo, we will need some example images."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"id": "1oeBxRj5wOv7"
},
"outputs": [],
"source": [
"!mkdir {HOME}/images"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "rGSeabT2wfQi"
},
"source": [
"**NOTE:** Feel free to use your images. Just make sure to put them into `images` directory that we just created. \u261d\ufe0f"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "fDC5HwaXwUyl",
"outputId": "46888636-45b0-4452-c04c-7deb360e2523"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/content/images\n"
]
}
],
"source": [
"%cd {HOME}/images\n",
"\n",
"!wget -q https://media.roboflow.com/notebooks/examples/dog.jpeg\n",
"!wget -q https://media.roboflow.com/notebooks/examples/dog-2.jpeg\n",
"!wget -q https://media.roboflow.com/notebooks/examples/dog-3.jpeg\n",
"!wget -q https://media.roboflow.com/notebooks/examples/dog-4.jpeg\n",
"!wget -q https://media.roboflow.com/notebooks/examples/dog-5.jpeg\n",
"!wget -q https://media.roboflow.com/notebooks/examples/dog-6.jpeg\n",
"!wget -q https://media.roboflow.com/notebooks/examples/dog-7.jpeg\n",
"!wget -q https://media.roboflow.com/notebooks/examples/dog-8.jpeg"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-hKaZ9NuMofm"
},
"source": [
"## \u200d\ud83d\udcbb Install"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Lo8hLtZ2LPWp",
"outputId": "18c43a29-fa01-4d29-9e84-3411d2924b0c"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[?25l \u001b[90m\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u001b[0m \u001b[32m0.0/135.7 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[90m\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u001b[0m \u001b[32m135.7/135.7 kB\u001b[0m \u001b[31m3.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25h0.22.0\n"
]
}
],
"source": [
"!pip install -q supervision\n",
"\n",
"import supervision as sv\n",
"\n",
"print(sv.__version__)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "2MSBh8-tYuHP"
},
"source": [
"## \ud83d\udc41\ufe0f Detection API\n",
"\n",
"- xyxy `(np.ndarray)`: An array of shape `(n, 4)` containing the bounding boxes coordinates in format `[x1, y1, x2, y2]`\n",
"- mask: `(Optional[np.ndarray])`: An array of shape `(n, W, H)` containing the segmentation masks.\n",
"- confidence `(Optional[np.ndarray])`: An array of shape `(n,)` containing the confidence scores of the detections.\n",
"- class_id `(Optional[np.ndarray])`: An array of shape `(n,)` containing the class ids of the detections.\n",
"- tracker_id `(Optional[np.ndarray])`: An array of shape `(n,)` containing the tracker ids of the detections."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "yNKUkCHQchnb"
},
"source": [
"## \ud83d\udd0c Plug in your model\n",
"\n",
"**NOTE:** In our example, we will focus only on integration with YOLO-NAS and YOLOv8. However, keep in mind that supervision allows seamless integration with many other models like SAM, Transformers, and YOLOv5. You can learn more from our [documentation](https://supervision.roboflow.com/latest/detection/core/#supervision.detection.core.Detections)."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"id": "0ZlmuEpwydTu"
},
"outputs": [],
"source": [
"import cv2\n",
"\n",
"IMAGE_PATH = f\"{HOME}/images/dog.jpeg\"\n",
"\n",
"image = cv2.imread(IMAGE_PATH)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "eOQdWaHDoNyw"
},
"source": [
"### Ultralytics [\ud83d\udcda](https://roboflow.github.io/supervision/detection/core/#supervision.detection.core.Detections.from_ultralytics)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "gNU2p-FYoPbg"
},
"outputs": [],
"source": [
"!pip install -q ultralytics"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "qwsXtjeWnwFa"
},
"outputs": [],
"source": [
"from ultralytics import YOLO\n",
"\n",
"model = YOLO(\"yolov8s.pt\")\n",
"result = model(image, verbose=False)[0]\n",
"detections = sv.Detections.from_ultralytics(result)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "0laYCojABX8I",
"outputId": "c72e9f77-311a-451e-907f-ebcac738884f"
},
"outputs": [
{
"data": {
"text/plain": [
"('detections', 4)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"detections\", len(detections)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-G8T5ShwC5PL"
},
"source": [
"### Inference [\ud83d\udcda](https://roboflow.github.io/supervision/detection/core/#supervision.detection.core.Detections.from_inference)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "YbSD9YkGDMJh"
},
"outputs": [],
"source": [
"!pip install -q inference"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "MkA6CzVNDikG"
},
"outputs": [],
"source": [
"from inference import get_model\n",
"\n",
"model = get_model(model_id=\"yolov8s-640\")\n",
"result = model.infer(image)[0]\n",
"detections = sv.Detections.from_inference(result)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "A0y7n3meD8gE",
"outputId": "bf9443cf-84ab-4775-c997-0d196b538f06"
},
"outputs": [
{
"data": {
"text/plain": [
"('detections', 4)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"detections\", len(detections)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "D6FgJfB1oIll"
},
"source": [
"### YOLO-NAS [\ud83d\udcda](https://roboflow.github.io/supervision/detection/core/#supervision.detection.core.Detections.from_yolo_nas)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "U-q_XWoIOJgL"
},
"outputs": [],
"source": [
"!pip install -q super-gradients\n",
"!pip install --upgrade urllib3"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "BNcKtoW63g96"
},
"outputs": [],
"source": [
"from super_gradients.training import models\n",
"\n",
"model = models.get(\"yolo_nas_s\", pretrained_weights=\"coco\")\n",
"result = model.predict(image)\n",
"detections = sv.Detections.from_yolo_nas(result)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "jdOW9a0P30ar",
"outputId": "2171b154-a579-4e20-ea23-ca9179cbee78"
},
"outputs": [
{
"data": {
"text/plain": [
"('detections', 7)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"detections\", len(detections)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "WbbmDW_-4CKb"
},
"source": [
"### \ud83d\udc69\u200d\ud83c\udfa8 Annotate"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8_OIE8Up4oyb"
},
"source": [
"### BoxAnnotator [\ud83d\udcda](https://supervision.roboflow.com/latest/detection/annotators/#supervision.annotators.core.BoxAnnotator)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "8gg8C_7rQ_9F"
},
"outputs": [],
"source": [
"from ultralytics import YOLO\n",
"\n",
"model = YOLO(\"yolo11x.pt\")\n",
"result = model(image, verbose=False)[0]\n",
"detections = sv.Detections.from_ultralytics(result)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 653
},
"id": "MZSoYY3i4Sqp",
"outputId": "a2089b30-3496-489e-a1c2-53f598e5afc2"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 800x800 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"box_annotator = sv.BoxAnnotator()\n",
"label_annotator = sv.LabelAnnotator()\n",
"\n",
"annotated_image = image.copy()\n",
"annotated_image = box_annotator.annotate(annotated_image, detections=detections)\n",
"annotated_image = label_annotator.annotate(annotated_image, detections=detections)\n",
"\n",
"sv.plot_image(image=annotated_image, size=(8, 8))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "a94r3v6M6l7o"
},
"source": [
"**NOTE:** By default `sv.LabelAnnotator` use corresponding `class_id` as label, however, the labels can have arbitrary format."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 653
},
"id": "ZrqRqzEV54hj",
"outputId": "0e56d721-59a2-45eb-99d1-0926271d71b2"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 800x800 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"box_annotator = sv.BoxAnnotator()\n",
"label_annotator = sv.LabelAnnotator()\n",
"\n",
"labels = [\n",
" f\"{model.model.names[class_id]} {confidence:.2f}\"\n",
" for class_id, confidence in zip(detections.class_id, detections.confidence)\n",
"]\n",
"\n",
"annotated_image = image.copy()\n",
"annotated_image = box_annotator.annotate(annotated_image, detections=detections)\n",
"annotated_image = label_annotator.annotate(\n",
" annotated_image, detections=detections, labels=labels)\n",
"\n",
"sv.plot_image(image=annotated_image, size=(8, 8))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "WWz-v_YO7Ndq"
},
"source": [
"### MaskAnnotator [\ud83d\udcda](https://roboflow.github.io/supervision/detection/annotate/#maskannotator)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "yM6dmicTRGl6"
},
"outputs": [],
"source": [
"from ultralytics import YOLO\n",
"\n",
"model = YOLO(\"yolo11x-seg.pt\")\n",
"result = model(image, verbose=False)[0]\n",
"detections = sv.Detections.from_ultralytics(result)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 653
},
"id": "3fRTEo3P8mK5",
"outputId": "cace3169-c477-47e8-f935-a2bca61a3533"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 800x800 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mask_annotator = sv.MaskAnnotator()\n",
"\n",
"annotated_image = image.copy()\n",
"annotated_image = mask_annotator.annotate(annotated_image, detections=detections)\n",
"\n",
"sv.plot_image(image=annotated_image, size=(8, 8))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ouQYHGWy9t0-"
},
"source": [
"## \ud83d\uddd1 Filter [\ud83d\udcda](https://roboflow.github.io/supervision/quickstart/detections/)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9i15_uHAAXaA"
},
"source": [
"### By index, index list and index slice\n",
"\n",
"**NOTE:** `sv.Detections` filter API allows you to access detections by index, index list or index slice"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"id": "yuskE3obCS_-"
},
"outputs": [],
"source": [
"detections_index = detections[0]\n",
"detections_index_list = detections[[0, 1, 3]]\n",
"detections_index_slice = detections[:2]"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 545
},
"id": "uhIWfsboAfGL",
"outputId": "b34f26c9-e60a-4d0e-be34-b4654102fe42"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA7YAAAIQCAYAAAC1yPLfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9eYBlRXn//X2qzr3dPT09C9DDNjqMo5FFkYi4gMqmIAoIaAgSBFEEBQVMjJoYA7hG0YhiUFF/4DuKCxpB4wKoGHGNBlBEjSiLsg8Ms/V276l63j+eqjp1zj23+3ZP96z1QE/3PbdOrU996p7nPvUUMTMjSZIkSZIkSZIkSZIkSZIk2UpFbe4KJEmSJEmSJEmSJEmSJEmSJBsj6cE2SZIkSZIkSZIkSZIkSZJs1ZIebJMkSZIkSZIkSZIkSZIkyVYt6cE2SZIkSZIkSZIkSZIkSZJs1ZIebJMkSZIkSZIkSZIkSZIkyVYt6cE2SZIkSZIkSZIkSZIkSZJs1ZIebJMkSZIkSZIkSZIkSZIkyVYt6cE2SZIkSZIkSZIkSZIkSZJs1ZIebJMkSZIkSZIkSZIkSZIkyVYt28SD7YUXXggiwiOPPDKn5RxyyCE45JBDtvg8N5UQES688MLNXY0ZyZbS70QUfj74wQ/OKI/99tsv5HH00UfPcg2T1ElizvSlyosrr7wSRIS77757k9dlOvKDH/wARIQf/OAHm7sqM5ItgdO+D/3PL3/5y/DeIYccst3wa82aNV2Zf/7554fr8+fP34y13LIksXb2pY5pr3rVq7DHHntstjrNVLaWdaRO7r77bhARrrzyys1aD9+H/mc259o111zTlf1zJdvEg22SrUvuv/9+XHjhhbj11lvntJzf/va3uPDCC7d44B1//PFYuXIlXvKSl5SuW2vxgQ98AMuXL0d/fz/23XdffOELX+i4/73vfS9WrlyJnXbaaVNVOUmSzSKjo6O48MILt5qHzJ/85Ce48MILsWbNmjkt51vf+tZmf3jtRf75n/8ZK1euxBOe8ITS9T333BMrV67Em9/85o57vv71r+PpT386+vv78fjHPx4XXHAB8jyfcR2uv/56vOY1r8FTnvIUaK1n5cP81772NRx55JHYbbfd0NfXh6VLl+LlL385fvOb35TSDQ4OYuXKlfjwhz/ckccrX/lKrFy5Es973vM2uj5JkiSZWjYVN6+66ipccsklc17OxsqHP/xhrFy5EkNDQ5OmGx0dxX/8x3/giCOOwK677oqhoSH89V//NT7+8Y/DGFNK+4xnPAMrV67EmWeeOZdVL0l6sJ2GXH/99bj++us3dzW2ern//vtx0UUXbZIH24suuqj2wXZLGst9990Xp5xyCvbaa6/S9be//e1461vfihe+8IW49NJL8fjHPx4nn3wyvvjFL5bSvfjFL8Ypp5yCwcHBTVntJJtAtiQ9nW155StfibGxMSxbtqzne0ZHR3HRRRdtVQ+2F1100SZ5sL3oootq3xsbG8O//Mu/zGn5vcoLX/hCnHLKKdhhhx1K13feeWeccsopHd9uffvb38Zxxx2HRYsW4dJLL8Vxxx2Hd7/73XjjG9844zpcddVVuOqqq7Bw4ULstttuM84nlttuuw2LFy/Geeedh8suuwyvf/3rccstt+CZz3wmfvWrX4V0jUYDp5xyCo477riOPPbff3+ccsopHQ/9STaNbMus7UU+9alP4f/+7/82dzU2qUzGzdmUbg+2y5Ytw9jYGF75ylfOeR16keOOOw6nnHIK+vr6Jk1355134o1vfCOYGX//93+PD37wg1i+fDnOPvtsvPrVry6lXbp0KU455RQ85znPmcuqlyTbZCVtA9JsNjd3FZLMkmzpY3nffffhQx/6EM455xx87GMfAwCcccYZOPjgg/GP//iP+Ju/+RtorTdzLZPMtWzperoxorVOOrwJpL+/f3NXYcby5je/Gfvuuy+uv/56ZJl8XFmwYAHe+9734rzzzsOee+457Tzf+9734lOf+hQajQaOPvrojm9VZyL/+q//2nHtjDPOwNKlS/Hxj38cn/jEJza6jCRzK9sya3uRRqOxuauw3QkRbZV83mWXXXDbbbdhn332CdfOOussvPrVr8YVV1yBd7zjHXjiE5+42eq3TX1j+8gjj+DEE0/EggULsOOOO+K8887D+Ph4eP/ggw/G0572tNp7n/zkJ+PII4+cNP/qfgm/T+HLX/4y3vOe92Dp0qXo7+/H4Ycfjj/+8Y8d919++eVYsWIFBgYG8MxnPhM33XRTbTkTExO44IIL8MQnPhF9fX143OMeh7e85S2YmJgIaU477TT09/fjd7/7XeneI488EosXL8b9998/aVumIxMTE3jTm96E4eFhDA0N4dhjj8W9995bm/a+++7Dq1/9auy8887o6+vDPvvsg//3//5feP8HP/gBDjjgAADA6aefHvzu4z0GP//5z/GiF70ICxcuxLx583DwwQfjxz/+cW1Zr3nNa4L71/Lly/H6178erVYLV155Jf7mb/4GAHDooYeGcvw3PXV7Xx5++GG85jWvwc4774z+/n487WlPw2c/+9lSGr8n4oMf/GAYz76+PhxwwAH4xS9+UUr74IMP4vTTT8fSpUvR19eHXXfdFS996Ut7co2+9tpr0W63cfbZZ4drRITXv/71uPfee/HTn/50yjySzL0k5sycOXV7o375y1/iyCOPxE477YSBgQEsX748WIDvvvtuDA8PAwAuuuiiMKdn05Xs3nvvxXHHHYfBwUEsWbIEb3rTm0p9EMtUnLrwwgvxj//4jwCA5cuXh/rG7f3c5z6H/fffHwMDA9hhhx1w0kkn4S9/+UttWS9+8YuxePFiDA4OYt9998VHPvIRALI37j/+4z8AlPfse6nro1tuuQVHHXUUFixYgPnz5+Pwww/Hz372s1IaPz4//vGP8fd///cYHh7G4OAgjj/+eKxataqUdrJxm6n89re/xW9/+1uceeaZ4aEWAM4++2wwM77yla/MKN/ddtttk3yIX7JkCebNmzfn39ZvL5JY2ztrv/jFL2L//ffH0NAQFixYgKc+9amBF92kbo+ttRYf+chH8NSnPhX9/f0YHh7Gi170oo59kr1ybGPl9ttvx2GHHYaBgQEsXboU7373u2GtrU377W9/G8973vMwODiIoaEhvOQlL8Htt99eau9k3LTW4pJLLsE+++yD/v5+7LzzzjjrrLPw2GOP1ZZ18MEHh/4+4IADcNVVVwEQvfrmN7+Je+65J5Th+7nbHtvvf//7oe6LFi3CS1/60g5d8HvP//jHP+JVr3oVFi1ahIULF+L000/H6OhoKe0NN9yA5z73uVi0aBHmz5+PJz/5yfjnf/7nnvp8dHQUv//970v7bnfaaafSQ62X448/HgA66rqpZZv6xvbEE0/EHnvsgfe973342c9+ho9+9KN47LHH8P/9f/8fAHF9e+1rX4vf/OY3eMpTnhLu+8UvfoE//OEPM3bX+rd/+zcopfDmN78Za9euxQc+8AH83d/9HX7+85+HNJ/5zGdw1lln4cADD8T555+PO++8E8ceeyx22GEHPO5xjwvprLU49thj8aMf/Qhnnnkm9tprL9x222348Ic/jD/84Q+45pprAAAf+chH8P3vfx+nnXYafvrTn0JrjU9+8pO4/vrrsXLlyllzsQLE8vy5z30OJ598Mg488EB8//vf79gPCgAPPfQQnv3sZ4OI8IY3vAHDw8P49re/jde85jVYt24dzj//fOy111545zvfiX/913/FmWeeGfYTHXjggQBkQh911FHYf//9ccEFF0AphSuuuAKHHXYYbrrpJjzzmc8EIO7Mz3zmM7FmzRqceeaZ2HPPPXHffffhK1/5CkZHR/H85z8f5557Lj760Y/in//5n4Obb9Xd18vY2BgOOeQQ/PGPf8Qb3vAGLF++HFdffTVe9apXYc2aNTjvvPNK6a+66iqsX78eZ511FogIH/jAB3DCCSfgzjvvDB+aXvayl+H222/HG9/4Ruyxxx54+OGHccMNN+DPf/7zlPu6brnlF
"text/plain": [
"<Figure size 1200x1200 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"box_annotator = sv.BoxAnnotator()\n",
"label_annotator = sv.LabelAnnotator()\n",
"\n",
"images = []\n",
"for d in [detections_index, detections_index_list, detections_index_slice]:\n",
" annotated_image = box_annotator.annotate(image.copy(), detections=d)\n",
" annotated_image = label_annotator.annotate(annotated_image, detections=d)\n",
" images.append(annotated_image)\n",
"titles = [\n",
" \"by index - detections[0]\",\n",
" \"by index list - detections[[0, 1, 3]]\",\n",
" \"by index slice - detections[:2]\",\n",
"]\n",
"\n",
"sv.plot_images_grid(images=images, titles=titles, grid_size=(1, 3))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ERFzXIoX--WM"
},
"source": [
"### By class_id\n",
"\n",
"**NOTE:** Let's use `sv.Detections` filter API to display only objects with `class_id == 0`"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"id": "ZMsM2W-E_a3S"
},
"outputs": [],
"source": [
"detections_filtered = detections[detections.class_id == 0]"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 653
},
"id": "4OBATMKC-saQ",
"outputId": "bf8a44fb-df15-49f8-9368-974c443c5f67"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 800x800 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"box_annotator = sv.BoxAnnotator()\n",
"label_annotator = sv.LabelAnnotator()\n",
"annotated_image = box_annotator.annotate(image.copy(), detections=detections_filtered)\n",
"annotated_image = label_annotator.annotate(\n",
" annotated_image, detections=detections_filtered\n",
")\n",
"sv.plot_image(image=annotated_image, size=(8, 8))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "815MjxC1Dguk"
},
"source": [
"### By confidence\n",
"\n",
"**NOTE:** Let's use `sv.Detections` filter API to display only objects with `confidence > 0.7`"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"id": "iaoKiE2WD-1V"
},
"outputs": [],
"source": [
"detections_filtered = detections[detections.confidence > 0.7]"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 653
},
"id": "CJBG_rZFECII",
"outputId": "52c6f7c6-3a45-43f8-9e60-2ec7eac1d6c9"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAW4AAAJ8CAYAAADeVEuCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9SbMtyZEmiH1q5n6GO7wh4r0AIoDAUDlUV7ZUt3QNnLpbhMINRUjhhuSCO/4N7vhL+AdIbkghizu2CEuEbGZnsSpryqwEEkAiEIjxDXc8g7uZcqGmNrn5uee+IQbUM+DFvfccd5vtU9XP1NSImRnv0rv0Lr1L79L3JplvuwLv0rv0Lr1L79L90jvgfpfepXfpXfqepXfA/S69S+/Su/Q9S++A+116l96ld+l7lt4B97v0Lr1L79L3LL0D7nfpXXqX3qXvWXoH3O/Su/QuvUvfs/QOuN+ld+ldepe+Z+kdcL9L79K79C59z1J37IP/u//Dnxd/e+9BRAAAQ4TOJBmghzG7roO1FsYC+rV+x8zxnx8dAICI4j9rLYwxMAawxiAUBSKCMSaWzeGf9x7MDOccvPfxbwYBoFg3IgIzYxxHjKPD4ADv03v6TCvVh0zZo8i7+A4AE+CR2jt5oKrbobJaKfbBPQ+/3uf5N3Gwdtqf7TbLVx6hc2KSeWBgidCFEa3zzudOnpg5zoX8mdbz9bv6nvx0APnYHzoHtW51fvU8bpUZ5z8GsNkD4zmsP0GHK9xe/nv8+hd/jt/84pf46MM/wYP3f4qLy2vcbPd48N5TfPjxT/Dkgw9h+wU8lz2Wr618/PTvcRyLeub1rdvvHYGZADAkK/mpeVkLGNPuS2tMHMu6b4wxYRx9McZ5PcEEY2x8zzkX1u04Gc+8Lcwcl5aubecY3mkbCCAHZhdxzFqLruvQdV2oG8OYcpxacyQvM8elehzyPvAuza0CB8Nn//v/7f8Qd6WjgftVFrBWBgQwA0TTxuhzCqh5WdIJBswewHRivUoqOtEYYExg/Sbyf5eOSQfmUjXPyBAIukCnr9Zzp3g3fF7PN/1uWnT7GZkrFgCFuYgmYOf/amBv1SGWAwtgAQaDzA5uuMLLy6/x1dfP8fDhD/CTn/59vP/hz3G72+Nmu8PJ2QOszh7AdAs4HxbWgVQrSy2wbgGStBsg1mHRtaN/E4i4yL8ALqjSVQqrsq/LuhXPVM8rsNXtqttijAGD4Tkpl8jqpgLCZ1igwG1tEBRhnPOydT61sKKlQLSEpgqV1py9D/68deAWLZhBWWVVswXCZ/Jw8Zn3Hs45EElDa2n2KqmWbt55+Eoivgvd8rbT4f6tuTsDwBBgQOG7+YXbGrsWIOjvx8wnXdRiCQDeJ43RWjt5dk4DnwVtIgAWfjQg9jDmCtvhSzx79hmGEfjJx38fj5/+FN3pOR6ed3hABh4WTBYOgGOG4WCFHGhOPveP0bZjewgAUdCyVXKm90SQTfuYAroTmSK/vD7y2VSZi33FACNbr5klXeejv+csAAhwLlhN7MUEDsKGDAE+afNR09a+IAJl/abArfOsNfa14K617Wj5gSJ4v2o6GrhfJSWTh8GEKJ2992H8pRORDzZSI8WksyBrjgLU5jNh8PNnNO/ReYBNUfbc4m///RqCpKE93jd9b4UM8WRckjZEsugAmTfyCwhe5ouu6Vo7C6Zqng4B9SENOK9TnJPGFJ/lpn2ef71oW+VO2owOxvQgvoYbnuH5s9/g5ctnePTeh3j09KdYnL0P7vpAiYj2r/QIx7Kn+ddtndNQ57TuULk4T5OmnegRwDbNfWaOoFv3adKo09pvWeFqqufAPTdmoiC6NC4ZC8nswz+AYMBMoggYAvN0m4+ZYar+rOdZy3I5RJOUf7f7+z7r+Y0BdwvcUsUIaYzE9GUw2DM8GJ2hqJHXmpP3HmymnZKbQK4a1FLTSe/o9/qsIQLfoRG9qdQ2zd9qkd/tRMpViwQjAoyx6IxoS4WGEmiSOTGZW3C1JgRMNUoda7Ho5rlxfdcYE7THkiJp5d3S/Of+jmWDYUEw2OP65it8+fknABs8efIxHj/9EbhbwkPYYAYDzokoU/qCgoA7yEAlrRHARPBofSZ/h3UrdZY9o6gxIq3X3JLW3w0RPPmij/KxuisRpvSKvl/sc1UAKe1E0KwZxgKWKVhLEPonUHD5+7PUBtK41mXmWnrN0df5RaGW9VOrnGPSWwPuvIGtRZFLZVAS67lEq5/Ny0mbj4jSOC83VUSyrieOvEuTuZ6XfVcbj0lzA3FXVq8jje9KbzPvuTJCSeFfDiBqvhKskQ0tG1DaEAlPWW0uH6r3MVr0oedzQM4ByQAw3f02N/MyWhqviVq8B3jAfn+BZ199iotnL/DB0z/CDz/8ORanZ9izWIa5hkpgmLhhOMXstgY7TxHN0SUchKoWHVZ1AG+G96kMYwycc9Ua9bGtk/5CyffmgiWWzsdZRzU+wItAg24yWhPA3IQNYxtpmlqYNGduA4PqclvWVOEooc+wmbxb53dXeiPArQBaV7o2Dcp3Mm3Ye+GcgGKApcF3gDeSudhK9WRUjUzyA0Am0yhSWbUg0An/tjXzP/ykmoUuIhMoM0JnLHoDAW4AbBje1xO8NFMPabeHtJdak8qTzsFCC6KpV4qp6JPWQmzVa/qZh/cbvHzxBb78/PdYL8/wgw9+itOz9+EtQMxg58OiCdqkbpQywzHBNzyn5pSflrAprdS6D/VvbaMi+NRDRlPUjKkso+hnouhtltc50U3zwNhKU6GsHiMC2sbLnDPGpg3KbNPxUDoE3HOfK2g754rvkyUzpWG+UeAG5q20aGKpLccAqg7WnfEudGjMK3BqEZxDSUmosmwu6uMZfZKyCDY2SxkmK5s9gzxF4PecmXKUCD3JI/Btd7b4VRNP//oDkBElWFDkHilwjMYYWdwgWJObwAQKQt9zMC+JCu37EBjWpm2qA4rvD2mgBZVAbVP2LpokfAMiCw6EB5O0i2Bh2ALeYXP9O3z52W9xe+vw4x/9Mc7f+xGoX2E/ODA5GASFI66hfFUEIIgbh2nRiGkepnK29hJIlBuIdV/K49r2tJb1O2lzG3Q4rDmpXqapqTbKDGKjrYqWMVHw+PCprPn6lZZR1O6BwFOrNQfZm4QRTxdDYa+NEb3WoG292yKNSieL1WFtmNgs9C97xhhcjNlz3M8hEMhwoItLpZdDfY9JRwP3Qe0FJcZIp5G+CKVEvA8LJSPn44KGBcgKbcIAGQPDDJAP/tDaJEo7zQ0tgrPJQVAAUCCU7wyE6PLkQSbUCwBINlFjRwKAz7QFAogzP+ODfVxaIXUikubGp+sJytMC5rTMbyMdy8VN3ou7XQYWBjaMD8GL4wbZTHskwFiwc2AyafwyOmvOxNd0TF/VtEebCvEBuI7XkEpaJ3DUxoPJozcdjAeMA9zuFjcvfokXzz7HyflHWL/3c/j1Q+yIYMgGHKZAK1IC4SAImcVlVnEygQrEf9mLLzaRCEkFdO9FE7R2vg+5mIe6F1Vq8S1TXwEYJlsJlD7X+T46Hz8Tvh9B0HgR1jy1ClqWRE21WGMBNqHdmTspRAApsDPpRiQDEJDNhVu+z5LGlBRl4R3A3sOQDUAsLI3z0ja17JVSIgKM0k9AxDCpnzkWt9+uV0meWoMcUzFp8g5OiwZI2nDOG+X82Vy5UfOoyk88q7h5GRA8sQAJZQj+LaSo5f/BpXKs1YqRtZO7baUUNeM6p3tSV+qDHRehUcpDQY0C+B3n038saItWq4t1AWIGeVECmG9wc/MFvvzyKwAdnv7gIzx+70mmySKBNfRnLRSmAkV/CqDTBHwyveqVExFFX2guAEjHRZUyxN9TO+RADDJf61xYcmi8boDqGs83n2vgLhWfqeZc1z3/meeXp9ZnohiXeY/jmJ6nIGg5CaiaRqo58Lz9x6RvHLj19zy5ik/Od2cRNkI42FIqvcZRtQUL79VsA3LgV/MrL7v2IS8kOBS0AyiQZvItJErGG/Dd0LLfRlJLiJUC81ysN9V6ALHCUC+iCa85FcxFaZS7sqEABQqub
"text/plain": [
"<Figure size 800x800 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"box_annotator = sv.BoxAnnotator()\n",
"label_annotator = sv.LabelAnnotator()\n",
"labels = []\n",
"for class_id, confidence in zip(\n",
" detections_filtered.class_id, detections_filtered.confidence\n",
"):\n",
" labels.append(f\"{model.model.names[class_id]} {confidence:.2f}\")\n",
"annotated_image = box_annotator.annotate(\n",
" image.copy(),\n",
" detections=detections_filtered,\n",
")\n",
"annotated_image = label_annotator.annotate(\n",
" annotated_image, detections=detections_filtered, labels=labels\n",
")\n",
"sv.plot_image(image=annotated_image, size=(8, 8))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5LGZV71pEajp"
},
"source": [
"### By advanced logical condition\n",
"\n",
"**NOTE:** Let's use `sv.Detections` filter API allows you to build advanced logical conditions. Let's select only detections with `class_id != 0` and `confidence > 0.7`."
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"id": "iEVlSoKDE01n"
},
"outputs": [],
"source": [
"detections_filtered = detections[\n",
" (detections.class_id != 0) & (detections.confidence > 0.7)\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 653
},
"id": "1XLDs7FZE9Cq",
"outputId": "bdad1093-52ac-4f6d-b175-6ae19800a1bf"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 800x800 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"box_annotator = sv.BoxAnnotator()\n",
"label_annotator = sv.LabelAnnotator()\n",
"labels = [\n",
" f\"{class_id} {confidence:.2f}\"\n",
" for class_id, confidence in zip(\n",
" detections_filtered.class_id, detections_filtered.confidence\n",
" )\n",
"]\n",
"annotated_image = box_annotator.annotate(\n",
" image.copy(),\n",
" detections=detections_filtered,\n",
")\n",
"annotated_image = label_annotator.annotate(\n",
" annotated_image, detections=detections_filtered, labels=labels\n",
")\n",
"\n",
"sv.plot_image(image=annotated_image, size=(8, 8))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "fZizqu3yG_Im"
},
"source": [
"## \ud83c\udfac Video API\n",
"\n",
"**NOTE:** `supervision` offers a lot of utils to make working with videos easier. Let's take a look at some of them."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "v7uZZMlqIo1i"
},
"source": [
"**NOTE:** During our demo, we will need some example videos."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "MWUiG8oiNljr"
},
"outputs": [],
"source": [
"!pip install -q supervision"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "2ZEtjEZXImNd"
},
"outputs": [],
"source": [
"!mkdir {HOME}/videos"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "UBvWehKLI7vW"
},
"source": [
"**NOTE:** Feel free to use your videos. Just make sure to put them into `videos` directory that we just created. \u261d\ufe0f"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "oNaYuFMHJC0X"
},
"outputs": [],
"source": [
"%cd {HOME}/videos"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "uzNDUj27Jthd"
},
"outputs": [],
"source": [
"from supervision.assets import download_assets, VideoAssets\n",
"\n",
"download_assets(VideoAssets.VEHICLES)\n",
"VIDEO_PATH = VideoAssets.VEHICLES.value"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "dLHSkaKqJYb5"
},
"source": [
"### VideoInfo [\ud83d\udcda](https://roboflow.github.io/supervision/utils/video/#videoinfo)\n",
"\n",
"**NOTE:** `VideoInfo` allows us to easily retrieve information about video files, such as resolution, FPS and total number of frames."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "vXIr9xEyJ5eZ",
"outputId": "233a1509-2630-4197-e10b-85033ac502b0"
},
"outputs": [
{
"data": {
"text/plain": [
"VideoInfo(width=3840, height=2160, fps=25, total_frames=538)"
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sv.VideoInfo.from_video_path(video_path=VIDEO_PATH)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "jKx9_rCIKMCL"
},
"source": [
"### get_video_frames_generator [\ud83d\udcda](https://roboflow.github.io/supervision/utils/video/#get_video_frames_generator)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "AabVQeiXKWPI"
},
"outputs": [],
"source": [
"frame_generator = sv.get_video_frames_generator(source_path=VIDEO_PATH)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 385
},
"id": "rrTIOavAKiL1",
"outputId": "c4f7d501-2836-4dde-9961-4e2382d06589"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 800x800 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"frame = next(iter(frame_generator))\n",
"sv.plot_image(image=frame, size=(8, 8))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "06kDsh4EK0Ht"
},
"source": [
"### VideoSink [\ud83d\udcda](https://roboflow.github.io/supervision/utils/video/#videosink)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "D2zLo2thLYSE"
},
"outputs": [],
"source": [
"RESULT_VIDEO_PATH = f\"{HOME}/videos/vehicle-counting-result.mp4\""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5l4Kj0g8Mb7x"
},
"source": [
"**NOTE:** Note that this time we have given a custom value for the `stride` parameter equal to `2`. As a result, `get_video_frames_generator` will return us every second video frame."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "8IQasqt9LKjH"
},
"outputs": [],
"source": [
"video_info = sv.VideoInfo.from_video_path(video_path=VIDEO_PATH)\n",
"\n",
"with sv.VideoSink(target_path=RESULT_VIDEO_PATH, video_info=video_info) as sink:\n",
" for frame in sv.get_video_frames_generator(source_path=VIDEO_PATH, stride=2):\n",
" sink.write_frame(frame=frame)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Op6K0HAzM10I"
},
"source": [
"**NOTE:** If we once again use `VideoInfo` we will notice that the final video has 2 times fewer frames."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "_wxeHV7OMXb8",
"outputId": "e062b2ac-68fd-44cf-d494-5f3f258e98c8"
},
"outputs": [
{
"data": {
"text/plain": [
"VideoInfo(width=3840, height=2160, fps=25, total_frames=269)"
]
},
"execution_count": 84,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sv.VideoInfo.from_video_path(video_path=RESULT_VIDEO_PATH)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "p-b6BRKuNs8v"
},
"source": [
"## \ud83d\uddbc\ufe0f Dataset API\n",
"\n",
"**NOTE:** In order to demonstrate the capabilities of the Dataset API, we need a dataset. Let's download one from [Roboflow Universe](https://universe.roboflow.com/). To do this we first need to install the `roboflow` pip package."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "0cY3p8WXOX5R"
},
"outputs": [],
"source": [
"!pip install -q roboflow"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "UU6uLh2COwTg",
"outputId": "584371d8-ecff-419d-8a13-a4e904861dd8"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/content/datasets/images/datasets\n",
"\rvisit https://app.roboflow.com/auth-cli to get your authentication token.\n",
"Paste the authentication token here: \u00b7\u00b7\u00b7\u00b7\u00b7\u00b7\u00b7\u00b7\u00b7\u00b7\n",
"loading Roboflow workspace...\n",
"loading Roboflow project...\n",
"Dependency ultralytics==8.0.196 is required but found version=8.2.54, to fix: `pip install ultralytics==8.0.196`\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Downloading Dataset Version Zip in fashion-assistant-segmentation-5 to yolov8:: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 122509/122509 [00:03<00:00, 37319.95it/s]\n",
"Extracting Dataset Version Zip to fashion-assistant-segmentation-5 in yolov8:: 15%|\u2588\u258d | 187/1254 [00:00<00:00, 1860.52it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\rExtracting Dataset Version Zip to fashion-assistant-segmentation-5 in yolov8:: 30%|\u2588\u2588\u2589 | 374/1254 [00:00<00:00, 1609.45it/s]\rExtracting Dataset Version Zip to fashion-assistant-segmentation-5 in yolov8:: 43%|\u2588\u2588\u2588\u2588\u258e | 538/1254 [00:00<00:00, 1529.93it/s]"
]
}
],
"source": [
"!mkdir {HOME}/datasets\n",
"%cd {HOME}/datasets\n",
"\n",
"import roboflow\n",
"from roboflow import Roboflow\n",
"\n",
"roboflow.login()\n",
"\n",
"rf = Roboflow()\n",
"\n",
"project = rf.workspace(\"roboflow-jvuqo\").project(\"fashion-assistant-segmentation\")\n",
"dataset = project.version(5).download(\"yolov8\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "968zz2JDPR7A"
},
"source": [
"### DetectionDataset.from_yolo [\ud83d\udcda](https://roboflow.github.io/supervision/dataset/core/#supervision.dataset.core.DetectionDataset.from_yolo)\n",
"\n",
"**NOTE:** Currently Dataset API always loads loads images from hard drive. In the future, we plan to add lazy loading."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "1QsLZ_L4Piky",
"outputId": "7ab19ee0-414b-4f23-e237-c18def9ae28f"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\rExtracting Dataset Version Zip to fashion-assistant-segmentation-5 in yolov8:: 79%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2589 | 989/1254 [00:00<00:00, 2606.19it/s]\rExtracting Dataset Version Zip to fashion-assistant-segmentation-5 in yolov8:: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 1254/1254 [00:00<00:00, 2505.30it/s]\n"
]
}
],
"source": [
"ds = sv.DetectionDataset.from_yolo(\n",
" images_directory_path=f\"{dataset.location}/train/images\",\n",
" annotations_directory_path=f\"{dataset.location}/train/labels\",\n",
" data_yaml_path=f\"{dataset.location}/data.yaml\",\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "AbQkgLsjQRBQ",
"outputId": "7742b630-dbbe-4963-95c1-a929852b51a3"
},
"outputs": [
{
"data": {
"text/plain": [
"573"
]
},
"execution_count": 88,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(ds)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "7Km8UkqwQWih",
"outputId": "0f865c22-3f42-4b93-eee7-17a7a23b411c"
},
"outputs": [
{
"data": {
"text/plain": [
"['baseball cap',\n",
" 'hoodie',\n",
" 'jacket',\n",
" 'pants',\n",
" 'shirt',\n",
" 'shorts',\n",
" 'sneaker',\n",
" 'sunglasses',\n",
" 'sweatshirt',\n",
" 't-shirt']"
]
},
"execution_count": 89,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds.classes"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8lO-SX0MUOeP"
},
"source": [
"### \ud83c\udff7\ufe0f Visualize annotations"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 653
},
"id": "FxJk1wZkRAM9",
"outputId": "16999196-d5c8-4ce6-c6df-9167a53235ff"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 800x800 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"IMAGE_NAME = list(ds.images.keys())[0]\n",
"\n",
"image = ds.images[IMAGE_NAME]\n",
"annotations = ds.annotations[IMAGE_NAME]\n",
"\n",
"box_annotator = sv.BoxAnnotator()\n",
"label_annotator = sv.LabelAnnotator()\n",
"mask_annotator = sv.MaskAnnotator()\n",
"\n",
"labels = [f\"{ds.classes[class_id]}\" for class_id in annotations.class_id]\n",
"\n",
"annotated_image = mask_annotator.annotate(image.copy(), detections=annotations)\n",
"annotated_image = box_annotator.annotate(annotated_image, detections=annotations)\n",
"annotated_image = label_annotator.annotate(\n",
" annotated_image, detections=annotations, labels=labels\n",
")\n",
"\n",
"sv.plot_image(image=annotated_image, size=(8, 8))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "RUolPtmKUZBc"
},
"source": [
"### split [\ud83d\udcda](https://roboflow.github.io/supervision/dataset/core/#supervision.dataset.core.DetectionDataset.split)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "6y5abqWVUkda"
},
"outputs": [],
"source": [
"ds_train, ds_test = ds.split(split_ratio=0.8)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "L6HvedueUwVH",
"outputId": "c98a2cb0-925a-4319-e249-90036e6ed0c6"
},
"outputs": [
{
"data": {
"text/plain": [
"('ds_train', 458, 'ds_test', 115)"
]
},
"execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"ds_train\", len(ds_train), \"ds_test\", len(ds_test)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "sydRyDMtVBOb"
},
"source": [
"### DetectionDataset.as_pascal_voc [\ud83d\udcda](https://roboflow.github.io/supervision/dataset/core/#supervision.dataset.core.DetectionDataset.as_pascal_voc)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "oJjkgaXBpE4-"
},
"outputs": [],
"source": [
"ds_train.as_pascal_voc(\n",
" images_directory_path=f\"{HOME}/datasets/result/images\",\n",
" annotations_directory_path=f\"{HOME}/datasets/result/labels\",\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "CwWCrBe-01Qi"
},
"source": [
"## \ud83c\udfc6 Congratulations\n",
"\n",
"### Learning Resources\n",
"\n",
"- [Documentation](https://roboflow.github.io/supervision/)\n",
"- [GitHub](https://github.com/roboflow/supervision)\n",
"- [YouTube Supervision Playlist](https://www.youtube.com/playlist?list=PLZCA39VpuaZaoGIohe9aXVMm24MRvfu1E)"
]
}
],
"metadata": {
"accelerator": "GPU",
"colab": {
"gpuType": "L4",
"machine_shape": "hm",
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}