Skip to main content

EVA Video Database System (Think MySQL for videos).

Project description

EVA

EVA Video Database System: Where SQL meets Deep Learning!

🌟 Try It Out! 🌟

Open EVA on Colab Discuss on Github!
   ## Links
   * [Documentation](https://evadb.readthedocs.io/en/latest/)
   * [Tutorials](https://github.com/georgia-tech-db/eva/tree/master/tutorials)
   * [Website](https://georgia-tech-db.github.io/eva/index.html)
   * [Slack](https://join.slack.com/t/eva-db/shared_invite/zt-1i10zyddy-PlJ4iawLdurDv~aIAq90Dg)
   * [Quick Demo](https://ada-00.cc.gatech.edu/eva/playground)

   # EVA Video Database System

   [![PyPI Status](https://img.shields.io/pypi/v/evadb.svg)](https://pypi.org/project/evadb)
   [![CI Status](https://circleci.com/gh/georgia-tech-db/eva.svg?style=svg)](https://circleci.com/gh/georgia-tech-db/eva)
   [![Coverage Status](https://coveralls.io/repos/github/georgia-tech-db/eva/badge.svg?branch=master)](https://coveralls.io/github/georgia-tech-db/eva?branch=master)
   [![License](https://img.shields.io/badge/license-Apache%202-brightgreen.svg?logo=apache)](https://github.com/georgia-tech-db/eva/blob/master/LICENSE.txt)
   [![Documentation Status](https://readthedocs.org/projects/exvian/badge/?version=latest)](https://evadb.readthedocs.io/en/latest/index.html)
   [![Discuss](https://img.shields.io/badge/-Discuss!-blueviolet)](https://github.com/georgia-tech-db/eva/discussions)
   ![Python Versions](https://img.shields.io/badge/Python--versions-3.7+-brightgreen)

   ## What is EVA?

   EVA is a new database system tailored for video analytics -- think MySQL for videos. It supports a simple SQL-like language for querying videos (e.g., finding frames in a movie with your favorite actor or find touchdowns in a football game). It comes with a wide range of commonly used computer vision models.

   ## Why EVA? ##

   👀 Easily query videos in user-facing applications with a simple SQL-like interface for commonly used computer vision models.

   ðŸš

Speed up queries and save money spent on model inference using in-built sampling, caching, and filtering optimizations.

   ✨ Hit your target accuracy using state-of-the-art model selection and query optimization algorithms.

   ## QuickStart

   1. EVA requires Python 3.7+. To install EVA, we recommend using an virtual environment and the pip package manager:

   ```shell
   pip install evadb
   ```

   1. Start the EVA server and the client programs
   ```shell
   python eva/eva_server &   # launch server
   python eva/eva_client     # launch client
   ```

   2. UPLOAD a video using the client (we use [ua_detrac.mp4](data/ua_detrac/ua_detrac.mp4) video as an example):

   ```mysql
   LOAD FILE "data/ua_detrac/ua_detrac.mp4" INTO MyVideo;
   ```

   3. That's it. You can now start issuing queries over the loaded video:

   ```mysql
   SELECT id, data FROM MyVideo WHERE id < 5;
   ```

   ## More Interesting Queries

   1. Search for frames in the video that contain a car

   ```mysql
   SELECT id, data FROM MyVideo WHERE ['car'] <@ FastRCNNObjectDetector(data).labels;
   ```
   ![QueryResult](https://georgia-tech-db.github.io/eva/Img/car.gif)

   2. Search for frames in the video that contain a pedestrian and a car

   ```mysql
   SELECT id, data FROM MyVideo WHERE ['pedestrian', 'car'] <@ FastRCNNObjectDetector(data).labels;
   ```

   3. Search for frames in the video with more than 3 cars

   ```mysql
   SELECT id, data FROM MyVideo WHERE Array_Count(FastRCNNObjectDetector(data).labels, 'car') > 3;
   ```

   4. Create your own user-defined function (UDF) that wraps around a vision model like FastRCNN
   ```mysql
   CREATE UDF IF NOT EXISTS MyUDF
   INPUT  (frame NDARRAY UINT8(3, ANYDIM, ANYDIM))
   OUTPUT (labels NDARRAY STR(ANYDIM), bboxes NDARRAY FLOAT32(ANYDIM, 4),
           scores NDARRAY FLOAT32(ANYDIM))
   TYPE  Classification
   IMPL  'eva/udfs/fastrcnn_object_detector.py';
   ```

   ## Contributing to EVA

   To file a bug or request a feature, please use GitHub issues. Pull requests are welcome.
   For more information on installing from source and contributing to EVA, see our
   [contributing guidelines](https://evadb.readthedocs.io/en/latest/source/contribute/index.html).

   ## Contributors

   See the [people page](https://github.com/georgia-tech-db/eva/graphs/contributors) for the full listing of contributors.

   ## License
   Copyright (c) 2018-2022 [Georgia Tech Database Group](http://db.cc.gatech.edu/)
   Licensed under [Apache License](LICENSE).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

evadb-0.0.12.tar.gz (223.0 kB view details)

Uploaded Source

Built Distribution

evadb-0.0.12-py3-none-any.whl (412.5 kB view details)

Uploaded Python 3

File details

Details for the file evadb-0.0.12.tar.gz.

File metadata

  • Download URL: evadb-0.0.12.tar.gz
  • Upload date:
  • Size: 223.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for evadb-0.0.12.tar.gz
Algorithm Hash digest
SHA256 e666751c843fcfe476407fbd9a4b2a7acec7b9b01086371c366e5c8b5325face
MD5 63dac481802c2499d787fc86963cd69a
BLAKE2b-256 a0a56d27465223b18de1d4e8869e48d45f52917eb3f09a4c3c620c980ab45b61

See more details on using hashes here.

File details

Details for the file evadb-0.0.12-py3-none-any.whl.

File metadata

  • Download URL: evadb-0.0.12-py3-none-any.whl
  • Upload date:
  • Size: 412.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for evadb-0.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 f3559ca34b9ea7d1cf7e59021d645b0290563a918e0a2a2de0217bb512366c7f
MD5 fc14655bbab2cae714b95f7f055341ed
BLAKE2b-256 6fa43dd9a96fe2ac5c42722fa2ee197ee4e72e9c8c31a1db7cd1e34e1dacd8e0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page