EMOTION ANALYSIS#

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 Video#

# A video of a happy person
!wget -nc "https://www.dropbox.com/s/gzfhwmib7u804zy/defhappy.mp4?raw=1" -O defhappy.mp4

# Adding Emotion detection
!wget -nc https://raw.githubusercontent.com/georgia-tech-db/eva/master/evadb/udfs/emotion_detector.py

# Adding Face Detector
!wget -nc https://raw.githubusercontent.com/georgia-tech-db/eva/master/evadb/udfs/face_detector.py
File ‘defhappy.mp4’ already there; not retrieving.
File ‘emotion_detector.py’ already there; not retrieving.
File ‘face_detector.py’ already there; not retrieving.

Load video for analysis#

response = cursor.query("DROP TABLE IF EXISTS HAPPY;").df()
print(response)
cursor.load(file_regex="defhappy.mp4", table_name="HAPPY", format="VIDEO").df()
06-07-2023 18:32:24 WARNING[drop_executor:drop_executor.py:exec:0045] Table: HAPPY does not exist
Empty DataFrame
Columns: []
Index: []
0
0 Number of loaded VIDEO: 1

Create a function for analyzing the frames#

cursor.query("""CREATE UDF IF NOT EXISTS EmotionDetector 
        INPUT (frame NDARRAY UINT8(3, ANYDIM, ANYDIM)) 
        OUTPUT (labels NDARRAY STR(ANYDIM), scores NDARRAY FLOAT32(ANYDIM)) 
        TYPE  Classification IMPL 'emotion_detector.py';
        """).df()

cursor.query("""CREATE UDF IF NOT EXISTS FaceDetector
                  INPUT  (frame NDARRAY UINT8(3, ANYDIM, ANYDIM))
                  OUTPUT (bboxes NDARRAY FLOAT32(ANYDIM, 4),
                          scores NDARRAY FLOAT32(ANYDIM))
                  TYPE  FaceDetection
                  IMPL  'face_detector.py';
        """).df()
0
0 UDF FaceDetector successfully added to the dat...

Run the Face Detection UDF on video#

query = cursor.table("HAPPY")
query = query.filter("id < 10")
query = query.select("id, FaceDetector(data)")

query.df()
2023-06-07 18:32:29,345	INFO worker.py:1625 -- Started a local Ray instance.
happy.id facedetector.bboxes facedetector.scores
0 0 [[502, 94, 762, 435], [238, 296, 325, 398]] [0.99990165, 0.79820216]
1 1 [[501, 96, 763, 435]] [0.999918]
2 2 [[504, 97, 766, 437]] [0.9999138]
3 3 [[498, 90, 776, 446]] [0.99996686]
4 4 [[496, 99, 767, 444]] [0.9999982]
5 5 [[499, 87, 777, 448], [236, 305, 324, 407]] [0.9999136, 0.83697325]
6 6 [[500, 89, 778, 449]] [0.9999131]
7 7 [[501, 89, 781, 452]] [0.9999124]
8 8 [[503, 90, 783, 450]] [0.99994683]
9 9 [[508, 87, 786, 447]] [0.999949]

Run the Emotion Detection UDF on the outputs of the Face Detection UDF#

query = cursor.table("HAPPY")
query = query.cross_apply("UNNEST(FaceDetector(data))", "Face(bbox, conf)")
query = query.filter("id < 15")
query = query.select("id, bbox, EmotionDetector(Crop(data, bbox))")

response = query.df()
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[['Face.bbox', 'emotiondetector.labels', 'emotiondetector.scores']][df.index == frame_id]
        if df.size:
            
            x1, y1, x2, y2 = df['Face.bbox'].values[0]
            label = df['emotiondetector.labels'].values[0]
            score = df['emotiondetector.scores'].values[0]
            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)
            # object score
            cv2.putText(frame, str(round(score, 5)), (x1+120, 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)
            # 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 = 'defhappy.mp4'
output_path = 'video.mp4'

annotate_video(response, input_path, output_path)
../../_images/484641585452812fd39369adc693d330ab62f9b4e51596d4dd2c2c45ac5f6c9b.png ../../_images/a90b069f5405ccde5cc172eb855efc5b1e92a138ec33c9e03ad14b6353b29061.png ../../_images/3ab4c9a1fa7f1cc55c2216d80ee8471f6fd5fc3405c1f87024a66d254e65180f.png ../../_images/f979817f94d7e5159e87f8a9a0d9a060668823a63ee7f082b32fa8ea310c8f7c.png

Dropping an User-Defined Function (UDF)#

#cursor.drop(item_name="EmotionDetector", item_type="UDF").df()
#cursor.drop(item_name="FaceDetector", item_type="UDF").df()