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.
Installation of EVA involves setting a virtual environment using miniconda and configuring git hooks.
- Clone the repository
git clone https://github.com/georgia-tech-db/eva.git
- Install miniconda and update the
PATH
environment variable.
export PATH="$HOME/miniconda/bin:$PATH"
- 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
- Activate the
eva
environment.
conda activate eva
- Run following command to configure git hooks.
git config core.hooksPath .githooks
- Run following command to generate parser files.
sh ./script/antlr4/setup.sh
- 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
- Ensure that the coding style conventions are followed.
pycodestyle --select E src/ test/ --exclude src/filters,src/parser/evaql
- Run the formatter script to automatically fix most of the coding style issues.
python script/formatting/formatter.py
- Refer google codestyle guide for documentation of code.
Please look up the contributing guide for details.
The EVA visual data management system consists of four core components:
- Query Parser
- Query Optimizer
- Query Execution Engine (Filters + UDFs)
- Storage Engine (Loaders)
The query optimizer converts a given query to the optimal form.
Module location: src/query_optimizer
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
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
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
Technology preview: currently unsupported, possibly due to incomplete functionality or unsuitability for production use.
See the people page for the full listing of contributors.
Copyright (c) 2018-2020 Georgia Tech Database Group
Licensed under the Apache License.