Skip to content

cs1234500000/evadb

Repository files navigation

EVA (Exploratory Video Analytics)

Build Status Coverage Status

EVA is an end-to-end video analytics engine that allows users to query a database of videos and return results based on machine learning analysis.

Table of Contents

Installation

Installation of EVA involves setting a virtual environment using miniconda and configuring git hooks.

  1. Clone the repository
git clone https://github.com/georgia-tech-db/eva.git
  1. Install miniconda and update the PATH environment variable.
export PATH="$HOME/miniconda/bin:$PATH" 
  1. Install dependencies in a miniconda virtual environment. Virtual environments keep dependencies in separate sandboxes so you can switch between both eva and other Python applications easily and get them running.
cd eva/
conda env create -f environment.yml
  1. Activate the eva environment.
conda activate eva
  1. Run following command to configure git hooks.
git config core.hooksPath .githooks
  1. Run following command to generate parser files.
sh ./script/antlr4/setup.sh

Development

  1. Ensure that all the unit test cases (including the ones you have added) run succesfully.
   python -m pytest --cov-report= --cov=src/ -s --log-level=INFO 

To run the unit tests in a particular file (e.g., test_parser.py:

   python -m pytest --cov-report= --cov=src/ -s --log-level=INFO test/parser/test_parser.py
  1. Ensure that the coding style conventions are followed.
   pycodestyle  --select E src/ test/ --exclude src/filters,src/parser/evaql
  1. Run the formatter script to automatically fix most of the coding style issues.
   python script/formatting/formatter.py
  1. Refer google codestyle guide for documentation of code.

Please look up the contributing guide for details.

Architecture

The EVA visual data management system consists of four core components:

  • Query Parser
  • Query Optimizer
  • Query Execution Engine (Filters + UDFs)
  • Storage Engine (Loaders)

Query Optimizer

The query optimizer converts a given query to the optimal form.

Module location: src/query_optimizer

Filters

The filters does preliminary filtering to video frames using cheap machine learning models. The filters module also outputs statistics such as reduction rate and cost that is used by Query Optimizer module.

The preprocessing method below is running:

  • PCA

The filters below are running:

  • KDE
  • DNN
  • Random Forest
  • SVM

Module location: src/filters

UDFs

This module contains all imported deep learning models. Currently, there is no code that performs this task. It is a work in progress. Information of current work is explained in detail here.

Module location: src/udfs

Loaders

The loaders load the dataset with the attributes specified in the Accelerating Machine Learning Inference with Probabilistic Predicates by Yao et al.

Module location: src/loaders

Status

Technology preview: currently unsupported, possibly due to incomplete functionality or unsuitability for production use.

Contributors

See the people page for the full listing of contributors.

License

Copyright (c) 2018-2020 Georgia Tech Database Group
Licensed under the Apache License.

About

Database system for AI-powered apps

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.3%
  • Other 0.7%