Object Detection Tutorial#

Run on Google Colab View source on GitHub Download notebook

Connect to EvaDB#

%pip install evadb
import evadb
cursor = evadb.connect().cursor()
Requirement already satisfied: evadb in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (0.2.7+dev)
Requirement already satisfied: numpy>=1.19.5 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (1.24.3)
Requirement already satisfied: pandas>=1.1.5 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (2.0.1)
Requirement already satisfied: opencv-contrib-python-headless>=4.6.0.66 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (4.7.0.72)
Requirement already satisfied: Pillow>=8.4.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (9.5.0)
Requirement already satisfied: sqlalchemy<2.0.0,>=1.4.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (1.4.48)
Requirement already satisfied: sqlalchemy-utils>=0.36.6 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (0.41.1)
Requirement already satisfied: lark>=1.0.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (1.1.5)
Requirement already satisfied: pyyaml>=5.1 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (6.0)
Requirement already satisfied: importlib-metadata<5.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (4.13.0)
Requirement already satisfied: ray>=1.13.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (2.4.0)
Requirement already satisfied: aenum>=2.2.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (3.1.12)
Requirement already satisfied: diskcache>=5.4.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (5.6.1)
Requirement already satisfied: eva-decord>=0.6.1 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (0.6.1)
Requirement already satisfied: boto3 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (1.26.133)
Requirement already satisfied: nest-asyncio in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (1.5.6)
Requirement already satisfied: langchain in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (0.0.179)
Requirement already satisfied: pymupdf in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (1.22.3)
Requirement already satisfied: pdfminer.six in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (20221105)
Requirement already satisfied: sentence-transformers in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (2.2.2)
Requirement already satisfied: torch>=1.10.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (2.0.1)
Requirement already satisfied: torchvision>=0.11.1 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (0.15.2)
Requirement already satisfied: faiss-cpu in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (1.7.4)
Requirement already satisfied: facenet-pytorch>=2.5.2 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (2.5.3)
Requirement already satisfied: ipython<8.13.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (8.12.2)
Requirement already satisfied: thefuzz in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (0.19.0)
Requirement already satisfied: ultralytics>=8.0.93 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (8.0.93)
Requirement already satisfied: transformers>=4.27.4 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (4.29.1)
Requirement already satisfied: openai>=0.27.4 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (0.27.6)
Requirement already satisfied: timm>=0.6.13 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (0.9.1)
Requirement already satisfied: norfair>=2.2.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from evadb) (2.2.0)
Requirement already satisfied: requests in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from facenet-pytorch>=2.5.2->evadb) (2.30.0)
Requirement already satisfied: zipp>=0.5 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from importlib-metadata<5.0->evadb) (3.15.0)
Requirement already satisfied: backcall in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ipython<8.13.0->evadb) (0.2.0)
Requirement already satisfied: decorator in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ipython<8.13.0->evadb) (4.4.2)
Requirement already satisfied: jedi>=0.16 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ipython<8.13.0->evadb) (0.18.2)
Requirement already satisfied: matplotlib-inline in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ipython<8.13.0->evadb) (0.1.6)
Requirement already satisfied: pickleshare in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ipython<8.13.0->evadb) (0.7.5)
Requirement already satisfied: prompt-toolkit!=3.0.37,<3.1.0,>=3.0.30 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ipython<8.13.0->evadb) (3.0.38)
Requirement already satisfied: pygments>=2.4.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ipython<8.13.0->evadb) (2.15.1)
Requirement already satisfied: stack-data in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ipython<8.13.0->evadb) (0.6.2)
Requirement already satisfied: traitlets>=5 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ipython<8.13.0->evadb) (5.9.0)
Requirement already satisfied: pexpect>4.3 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ipython<8.13.0->evadb) (4.8.0)
Requirement already satisfied: filterpy<2.0.0,>=1.4.5 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from norfair>=2.2.0->evadb) (1.4.5)
Requirement already satisfied: rich<13.0.0,>=9.10.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from norfair>=2.2.0->evadb) (12.6.0)
Requirement already satisfied: scipy>=1.5.4 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from norfair>=2.2.0->evadb) (1.10.1)
Requirement already satisfied: tqdm in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from openai>=0.27.4->evadb) (4.65.0)
Requirement already satisfied: aiohttp in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from openai>=0.27.4->evadb) (3.8.4)
Requirement already satisfied: python-dateutil>=2.8.2 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from pandas>=1.1.5->evadb) (2.8.2)
Requirement already satisfied: pytz>=2020.1 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from pandas>=1.1.5->evadb) (2023.3)
Requirement already satisfied: tzdata>=2022.1 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from pandas>=1.1.5->evadb) (2023.3)
Requirement already satisfied: attrs in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ray>=1.13.0->evadb) (21.4.0)
Requirement already satisfied: click>=7.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ray>=1.13.0->evadb) (8.1.3)
Requirement already satisfied: filelock in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ray>=1.13.0->evadb) (3.12.0)
Requirement already satisfied: jsonschema in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ray>=1.13.0->evadb) (4.17.3)
Requirement already satisfied: msgpack<2.0.0,>=1.0.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ray>=1.13.0->evadb) (1.0.5)
Requirement already satisfied: protobuf!=3.19.5,>=3.15.3 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ray>=1.13.0->evadb) (4.23.0)
Requirement already satisfied: aiosignal in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ray>=1.13.0->evadb) (1.3.1)
Requirement already satisfied: frozenlist in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ray>=1.13.0->evadb) (1.3.3)
Requirement already satisfied: virtualenv<20.21.1,>=20.0.24 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ray>=1.13.0->evadb) (20.21.0)
Requirement already satisfied: packaging in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ray>=1.13.0->evadb) (23.1)
Requirement already satisfied: grpcio<=1.51.3,>=1.42.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ray>=1.13.0->evadb) (1.51.3)
Requirement already satisfied: greenlet!=0.4.17 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from sqlalchemy<2.0.0,>=1.4.0->evadb) (2.0.2)
Requirement already satisfied: huggingface-hub in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from timm>=0.6.13->evadb) (0.14.1)
Requirement already satisfied: safetensors in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from timm>=0.6.13->evadb) (0.3.1)
Requirement already satisfied: typing-extensions in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from torch>=1.10.0->evadb) (4.5.0)
Requirement already satisfied: sympy in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from torch>=1.10.0->evadb) (1.12)
Requirement already satisfied: networkx in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from torch>=1.10.0->evadb) (3.1)
Requirement already satisfied: jinja2 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from torch>=1.10.0->evadb) (3.0.3)
Requirement already satisfied: nvidia-cuda-nvrtc-cu11==11.7.99 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from torch>=1.10.0->evadb) (11.7.99)
Requirement already satisfied: nvidia-cuda-runtime-cu11==11.7.99 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from torch>=1.10.0->evadb) (11.7.99)
Requirement already satisfied: nvidia-cuda-cupti-cu11==11.7.101 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from torch>=1.10.0->evadb) (11.7.101)
Requirement already satisfied: nvidia-cudnn-cu11==8.5.0.96 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from torch>=1.10.0->evadb) (8.5.0.96)
Requirement already satisfied: nvidia-cublas-cu11==11.10.3.66 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from torch>=1.10.0->evadb) (11.10.3.66)
Requirement already satisfied: nvidia-cufft-cu11==10.9.0.58 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from torch>=1.10.0->evadb) (10.9.0.58)
Requirement already satisfied: nvidia-curand-cu11==10.2.10.91 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from torch>=1.10.0->evadb) (10.2.10.91)
Requirement already satisfied: nvidia-cusolver-cu11==11.4.0.1 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from torch>=1.10.0->evadb) (11.4.0.1)
Requirement already satisfied: nvidia-cusparse-cu11==11.7.4.91 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from torch>=1.10.0->evadb) (11.7.4.91)
Requirement already satisfied: nvidia-nccl-cu11==2.14.3 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from torch>=1.10.0->evadb) (2.14.3)
Requirement already satisfied: nvidia-nvtx-cu11==11.7.91 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from torch>=1.10.0->evadb) (11.7.91)
Requirement already satisfied: triton==2.0.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from torch>=1.10.0->evadb) (2.0.0)
Requirement already satisfied: setuptools in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from nvidia-cublas-cu11==11.10.3.66->torch>=1.10.0->evadb) (67.7.2)
Requirement already satisfied: wheel in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from nvidia-cublas-cu11==11.10.3.66->torch>=1.10.0->evadb) (0.38.4)
Requirement already satisfied: cmake in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from triton==2.0.0->torch>=1.10.0->evadb) (3.26.3)
Requirement already satisfied: lit in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from triton==2.0.0->torch>=1.10.0->evadb) (16.0.3)
Requirement already satisfied: regex!=2019.12.17 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from transformers>=4.27.4->evadb) (2023.5.5)
Requirement already satisfied: tokenizers!=0.11.3,<0.14,>=0.11.1 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from transformers>=4.27.4->evadb) (0.13.3)
Requirement already satisfied: matplotlib>=3.2.2 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ultralytics>=8.0.93->evadb) (3.7.1)
Requirement already satisfied: opencv-python>=4.6.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ultralytics>=8.0.93->evadb) (4.7.0.72)
Requirement already satisfied: seaborn>=0.11.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ultralytics>=8.0.93->evadb) (0.12.2)
Requirement already satisfied: psutil in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ultralytics>=8.0.93->evadb) (5.9.5)
Requirement already satisfied: thop>=0.1.1 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ultralytics>=8.0.93->evadb) (0.1.1.post2209072238)
Requirement already satisfied: sentry-sdk in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from ultralytics>=8.0.93->evadb) (1.22.2)
Requirement already satisfied: botocore<1.30.0,>=1.29.133 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from boto3->evadb) (1.29.133)
Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from boto3->evadb) (1.0.1)
Requirement already satisfied: s3transfer<0.7.0,>=0.6.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from boto3->evadb) (0.6.1)
Requirement already satisfied: async-timeout<5.0.0,>=4.0.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from langchain->evadb) (4.0.2)
Requirement already satisfied: dataclasses-json<0.6.0,>=0.5.7 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from langchain->evadb) (0.5.7)
Requirement already satisfied: numexpr<3.0.0,>=2.8.4 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from langchain->evadb) (2.8.4)
Requirement already satisfied: openapi-schema-pydantic<2.0,>=1.2 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from langchain->evadb) (1.2.4)
Requirement already satisfied: pydantic<2,>=1 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from langchain->evadb) (1.10.7)
Requirement already satisfied: tenacity<9.0.0,>=8.1.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from langchain->evadb) (8.2.2)
Requirement already satisfied: charset-normalizer>=2.0.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from pdfminer.six->evadb) (2.1.1)
Requirement already satisfied: cryptography>=36.0.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from pdfminer.six->evadb) (40.0.2)
Requirement already satisfied: scikit-learn in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from sentence-transformers->evadb) (1.2.2)
Requirement already satisfied: nltk in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from sentence-transformers->evadb) (3.8.1)
Requirement already satisfied: sentencepiece in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from sentence-transformers->evadb) (0.1.99)
Requirement already satisfied: multidict<7.0,>=4.5 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from aiohttp->openai>=0.27.4->evadb) (6.0.4)
Requirement already satisfied: yarl<2.0,>=1.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from aiohttp->openai>=0.27.4->evadb) (1.9.2)
Requirement already satisfied: urllib3<1.27,>=1.25.4 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from botocore<1.30.0,>=1.29.133->boto3->evadb) (1.26.15)
Requirement already satisfied: cffi>=1.12 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from cryptography>=36.0.0->pdfminer.six->evadb) (1.15.1)
Requirement already satisfied: marshmallow<4.0.0,>=3.3.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from dataclasses-json<0.6.0,>=0.5.7->langchain->evadb) (3.19.0)
Requirement already satisfied: marshmallow-enum<2.0.0,>=1.5.1 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from dataclasses-json<0.6.0,>=0.5.7->langchain->evadb) (1.5.1)
Requirement already satisfied: typing-inspect>=0.4.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from dataclasses-json<0.6.0,>=0.5.7->langchain->evadb) (0.9.0)
Requirement already satisfied: fsspec in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from huggingface-hub->timm>=0.6.13->evadb) (2023.5.0)
Requirement already satisfied: parso<0.9.0,>=0.8.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from jedi>=0.16->ipython<8.13.0->evadb) (0.8.3)
Requirement already satisfied: contourpy>=1.0.1 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from matplotlib>=3.2.2->ultralytics>=8.0.93->evadb) (1.0.7)
Requirement already satisfied: cycler>=0.10 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from matplotlib>=3.2.2->ultralytics>=8.0.93->evadb) (0.11.0)
Requirement already satisfied: fonttools>=4.22.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from matplotlib>=3.2.2->ultralytics>=8.0.93->evadb) (4.39.4)
Requirement already satisfied: kiwisolver>=1.0.1 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from matplotlib>=3.2.2->ultralytics>=8.0.93->evadb) (1.4.4)
Requirement already satisfied: pyparsing>=2.3.1 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from matplotlib>=3.2.2->ultralytics>=8.0.93->evadb) (3.0.9)
Requirement already satisfied: ptyprocess>=0.5 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from pexpect>4.3->ipython<8.13.0->evadb) (0.7.0)
Requirement already satisfied: wcwidth in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from prompt-toolkit!=3.0.37,<3.1.0,>=3.0.30->ipython<8.13.0->evadb) (0.2.6)
Requirement already satisfied: six>=1.5 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from python-dateutil>=2.8.2->pandas>=1.1.5->evadb) (1.16.0)
Requirement already satisfied: idna<4,>=2.5 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from requests->facenet-pytorch>=2.5.2->evadb) (3.4)
Requirement already satisfied: certifi>=2017.4.17 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from requests->facenet-pytorch>=2.5.2->evadb) (2023.5.7)
Requirement already satisfied: commonmark<0.10.0,>=0.9.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from rich<13.0.0,>=9.10.0->norfair>=2.2.0->evadb) (0.9.1)
Requirement already satisfied: distlib<1,>=0.3.6 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from virtualenv<20.21.1,>=20.0.24->ray>=1.13.0->evadb) (0.3.6)
Requirement already satisfied: platformdirs<4,>=2.4 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from virtualenv<20.21.1,>=20.0.24->ray>=1.13.0->evadb) (3.5.1)
Requirement already satisfied: MarkupSafe>=2.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from jinja2->torch>=1.10.0->evadb) (2.1.2)
Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from jsonschema->ray>=1.13.0->evadb) (0.19.3)
Requirement already satisfied: joblib in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from nltk->sentence-transformers->evadb) (1.2.0)
Requirement already satisfied: threadpoolctl>=2.0.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from scikit-learn->sentence-transformers->evadb) (3.1.0)
Requirement already satisfied: executing>=1.2.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from stack-data->ipython<8.13.0->evadb) (1.2.0)
Requirement already satisfied: asttokens>=2.1.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from stack-data->ipython<8.13.0->evadb) (2.2.1)
Requirement already satisfied: pure-eval in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from stack-data->ipython<8.13.0->evadb) (0.2.2)
Requirement already satisfied: mpmath>=0.19 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from sympy->torch>=1.10.0->evadb) (1.3.0)
Requirement already satisfied: pycparser in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from cffi>=1.12->cryptography>=36.0.0->pdfminer.six->evadb) (2.21)
Requirement already satisfied: mypy-extensions>=0.3.0 in /home/jarulraj3/eva/test_evadb/lib/python3.10/site-packages (from typing-inspect>=0.4.0->dataclasses-json<0.6.0,>=0.5.7->langchain->evadb) (1.0.0)
Note: you may need to restart the kernel to use updated packages.

Download the Surveillance Videos#

In this tutorial, we focus on the UA-DETRAC benchmark. UA-DETRAC is a challenging real-world multi-object detection and multi-object tracking benchmark. The dataset consists of 10 hours of videos captured with a Cannon EOS 550D camera at 24 different locations at Beijing and Tianjin in China.

# Getting the video files
!wget -nc "https://www.dropbox.com/s/k00wge9exwkfxz6/ua_detrac.mp4?raw=1" -O ua_detrac.mp4
File 'ua_detrac.mp4' already there; not retrieving.

Load the videos for analysis#

We use a regular expression to load all the videos into the table in a single command

cursor.query("DROP TABLE IF EXISTS ObjectDetectionVideos;").df()
cursor.load(file_regex='ua_detrac.mp4', format="VIDEO", table_name='ObjectDetectionVideos').df()
0
0 Number of loaded VIDEO: 1

Register YOLO Object Detector as an User-Defined Function (UDF) in EVA#

cursor.query("""
            CREATE UDF IF NOT EXISTS Yolo
            TYPE  ultralytics
            'model' 'yolov8m.pt';
      """).df()
0
0 UDF Yolo successfully added to the database.

Run the YOLO Object Detector on the video#

yolo_query = cursor.table("ObjectDetectionVideos")
yolo_query = yolo_query.filter("id < 20")
yolo_query = yolo_query.select("id, Yolo(data)")

response = yolo_query.df()
print(response)
    objectdetectionvideos.id   
0                          0  \
1                          1   
2                          2   
3                          3   
4                          4   
5                          5   
6                          6   
7                          7   
8                          8   
9                          9   
10                        10   
11                        11   
12                        12   
13                        13   
14                        14   
15                        15   
16                        16   
17                        17   
18                        18   
19                        19   

                                          yolo.labels   
0   [car, car, car, car, car, car, person, car, ca...  \
1   [car, car, car, car, car, car, car, car, car, ...   
2   [car, car, car, car, car, car, car, person, ca...   
3   [car, car, car, car, car, car, car, car, car, ...   
4   [car, car, car, car, car, car, car, car, car, ...   
5   [car, car, car, car, car, car, person, car, ca...   
6   [car, car, car, car, car, car, car, person, ca...   
7   [car, car, car, car, car, car, car, car, car, ...   
8   [car, car, car, car, car, car, person, car, ca...   
9   [car, car, car, car, car, car, car, person, ca...   
10  [car, car, car, car, car, car, car, person, ca...   
11  [car, car, car, car, car, car, person, car, ca...   
12  [car, car, car, car, car, car, car, person, ca...   
13  [car, car, car, car, car, car, person, car, ca...   
14  [car, car, car, car, car, car, person, car, ca...   
15  [car, car, car, car, car, car, person, car, ca...   
16  [car, car, car, car, car, car, car, person, ca...   
17  [car, car, car, car, car, car, car, person, ca...   
18  [car, car, car, car, car, car, car, person, mo...   
19  [car, car, car, car, car, person, car, car, ca...   

                                          yolo.bboxes   
0   [[828.603515625, 277.01861572265625, 959.62792...  \
1   [[832.1552734375, 278.1466064453125, 959.63830...   
2   [[835.5642700195312, 279.1689147949219, 959.64...   
3   [[839.2291259765625, 279.876953125, 959.635620...   
4   [[843.063232421875, 280.84881591796875, 959.62...   
5   [[847.2269897460938, 282.40478515625, 959.6654...   
6   [[850.6966552734375, 283.1654052734375, 959.43...   
7   [[854.817626953125, 283.79345703125, 959.55505...   
8   [[859.06787109375, 285.23321533203125, 959.824...   
9   [[862.5375366210938, 286.3861083984375, 959.53...   
10  [[631.713623046875, 222.67929077148438, 744.18...   
11  [[871.2513427734375, 288.50506591796875, 959.5...   
12  [[636.3242797851562, 223.41517639160156, 750.0...   
13  [[170.86529541015625, 409.34344482421875, 291....   
14  [[174.27420043945312, 404.84698486328125, 293....   
15  [[887.9122924804688, 292.99810791015625, 959.5...   
16  [[892.8345336914062, 293.4510803222656, 959.53...   
17  [[182.45166015625, 392.1574401855469, 296.3449...   
18  [[901.4002075195312, 295.100341796875, 959.572...   
19  [[647.9462890625, 226.44598388671875, 770.2973...   

                                          yolo.scores  
0   [0.91, 0.86, 0.85, 0.83, 0.76, 0.73, 0.72, 0.7...  
1   [0.92, 0.85, 0.84, 0.83, 0.78, 0.76, 0.76, 0.7...  
2   [0.92, 0.84, 0.84, 0.82, 0.81, 0.75, 0.73, 0.7...  
3   [0.91, 0.84, 0.82, 0.8, 0.8, 0.75, 0.74, 0.72,...  
4   [0.9, 0.85, 0.83, 0.8, 0.76, 0.73, 0.72, 0.72,...  
5   [0.89, 0.86, 0.84, 0.8, 0.78, 0.74, 0.72, 0.72...  
6   [0.89, 0.87, 0.85, 0.81, 0.79, 0.73, 0.72, 0.7...  
7   [0.9, 0.87, 0.84, 0.83, 0.83, 0.79, 0.73, 0.67...  
8   [0.89, 0.88, 0.83, 0.82, 0.79, 0.71, 0.68, 0.6...  
9   [0.88, 0.87, 0.84, 0.82, 0.8, 0.75, 0.74, 0.74...  
10  [0.88, 0.88, 0.85, 0.82, 0.8, 0.79, 0.76, 0.71...  
11  [0.9, 0.9, 0.85, 0.8, 0.79, 0.77, 0.69, 0.68, ...  
12  [0.9, 0.88, 0.83, 0.81, 0.78, 0.78, 0.78, 0.67...  
13  [0.9, 0.89, 0.89, 0.83, 0.81, 0.81, 0.72, 0.71...  
14  [0.9, 0.89, 0.88, 0.84, 0.82, 0.81, 0.75, 0.72...  
15  [0.89, 0.88, 0.87, 0.84, 0.82, 0.78, 0.76, 0.7...  
16  [0.88, 0.88, 0.87, 0.82, 0.81, 0.76, 0.75, 0.7...  
17  [0.9, 0.89, 0.87, 0.83, 0.82, 0.78, 0.72, 0.69...  
18  [0.88, 0.88, 0.83, 0.82, 0.8, 0.78, 0.75, 0.7,...  
19  [0.89, 0.87, 0.81, 0.8, 0.78, 0.77, 0.73, 0.72...  

Visualizing output of the Object Detector on the video#

import cv2
from pprint import pprint
from matplotlib import pyplot as plt

def annotate_video(detections, input_video_path, output_video_path):
    color1=(207, 248, 64)
    color2=(255, 49, 49)
    thickness=4

    vcap = cv2.VideoCapture(input_video_path)
    width = int(vcap.get(3))
    height = int(vcap.get(4))
    fps = vcap.get(5)
    fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v') #codec
    video=cv2.VideoWriter(output_video_path, fourcc, fps, (width,height))

    frame_id = 0
    # Capture frame-by-frame
    # ret = 1 if the video is captured; frame is the image
    ret, frame = vcap.read() 

    while ret:
        df = detections
        df = df[['yolo.bboxes', 'yolo.labels']][df.index == frame_id]
        if df.size:
            dfLst = df.values.tolist()
            for bbox, label in zip(dfLst[0][0], dfLst[0][1]):
                x1, y1, x2, y2 = bbox
                x1, y1, x2, y2 = int(x1), int(y1), int(x2), int(y2)
                # object bbox
                frame=cv2.rectangle(frame, (x1, y1), (x2, y2), color1, thickness) 
                # object label
                cv2.putText(frame, label, (x1, y1-10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, color1, thickness) 
                # frame label
                cv2.putText(frame, 'Frame ID: ' + str(frame_id), (700, 500), cv2.FONT_HERSHEY_SIMPLEX, 1.2, color2, thickness) 
            video.write(frame)

            # Stop after twenty frames (id < 20 in previous query)
            if frame_id == 20:
                break

            # Show every fifth frame
            if frame_id % 5 == 0:
                plt.imshow(frame)
                plt.show()

        
        frame_id+=1
        ret, frame = vcap.read()

    video.release()
    vcap.release()
from ipywidgets import Video, Image
input_path = 'ua_detrac.mp4'
output_path = 'video.mp4'

annotate_video(response, input_path, output_path)
Video.from_file(output_path)
../../_images/53aee7aa159877f4dbbfc9a24718171556de17d28c955804e566b41a7a5fdef5.png ../../_images/2eb39b245d6a6d7e40ae27fee8af535186ff798c2712d7bf961bbdcae48a97fb.png ../../_images/a9a126cc57a142e9e3b72334d5c2996e86ed5377fc89f81f15ffa5d28f3143e5.png ../../_images/d6e873142e59cdbc0a5aa3571f490fc9ff3da2a48652523b7f91207478ad17ac.png

Drop the function if needed#

cursor.query("DROP UDF IF EXISTS Yolo").df()
0
0 UDF Yolo successfully dropped