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.
-
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.
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 the dependencies.
sh script/install/before_install.sh
export PATH="$HOME/miniconda/bin:$PATH"
sh script/install/install.sh- 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 rootrefer to askubuntu
- Install
dockeranddocker-compose. Please refer to official doc.
- Set up the server and client
-
Launch EVA database Server:
python eva.py -
Launch CLI:
python eva_client.py
- Run the
LOADcommand in the client terminal: (may take a while)
LOAD DATA INFILE 'data/ua_detrac/ua_detrac.mp4' INTO MyVideo;- Below is a basic query that should work on the client
SELECT id, data FROM MyVideo WHERE id < 5;- Standup EVA testing for CPU/GPU hardware.
docker-compose -f docker-compose.yml eva-test-[cpu/gpu] up- Install git hooks in your .git/ directory. [optional, but recommended]
conda activate eva
pre-commit install- 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.shEVA consists of four core components:
- EVAQL Query Parser
- Query Optimizer
- Query Execution Engine (Filters + Deep Learning Models)
- Distributed Storage Engine
To file a bug or request a feature, please file a GitHub issue. Pull requests are welcome.
See the people page for the full listing of contributors.
Copyright (c) 2018-2020 Georgia Tech Database Group Licensed under the Apache License.