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)
Drop the function if needed#
cursor.query("DROP UDF IF EXISTS Yolo").df()
0 | |
---|---|
0 | UDF Yolo successfully dropped |