Skip to content

BlackBurdai/eva

 
 

Repository files navigation

EVA (Exploratory Video Analytics)

Build Status Coverage Status License Documentation Status

What is EVA?

EVA is a visual data management system (think MySQL for videos). It supports a declarative language similar to SQL and a wide range of commonly used computer vision models.

What does EVA do?

  • EVA enables querying of visual data in user facing applications by providing a simple SQL-like interface for a wide range of commonly used computer vision models.

  • EVA improves throughput by introducing sampling, filtering, and caching techniques.

  • EVA improves accuracy by introducing state-of-the-art model specialization and selection algorithms.

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 the dependencies.
sh script/install/before_install.sh
export PATH="$HOME/miniconda/bin:$PATH"
sh script/install/install.sh
  1. Connect mysql user root with normal account and no password
sudo mysql -u root
> SELECT User,Host FROM mysql.user;
> DROP USER 'root'@'localhost';
> CREATE USER 'root'@'%' IDENTIFIED BY '';
> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
> FLUSH PRIVILEGES;
mysql -u root

refer to askubuntu

  1. Install docker and docker-compose. Please refer to official doc.

Client Testing

  1. Set up the server and client
  • Launch EVA database Server: python eva.py

  • Launch CLI: python eva_client.py

  1. Run the LOAD command in the client terminal: (may take a while)
LOAD DATA INFILE 'data/ua_detrac/ua_detrac.mp4' INTO MyVideo;
  1. Below is a basic query that should work on the client
SELECT id, data FROM MyVideo WHERE id < 5;

Docker

  1. Standup EVA testing for CPU/GPU hardware.
docker-compose -f docker-compose.yml eva-test-[cpu/gpu] up

Development

  1. Install git hooks in your .git/ directory. [optional, but recommended]
conda activate eva
pre-commit install
  1. Ensure that all the unit test cases (including the ones you have added) run succesfully and the coding style conventions are followed.
bash script/test/test.sh

Architecture

EVA consists of four core components:

  • EVAQL Query Parser
  • Query Optimizer
  • Query Execution Engine (Filters + Deep Learning Models)
  • Distributed Storage Engine

Contributing

To file a bug or request a feature, please file a GitHub issue. Pull requests are welcome.

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

Exploratory Video Analytics System

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 93.1%
  • ANTLR 3.3%
  • CSS 1.7%
  • HTML 0.8%
  • Shell 0.5%
  • Dockerfile 0.4%
  • Other 0.2%