AI-Relational Database System | SQL meets Deep Learning

EVA Banner

pypi_status License Discuss Python Versions

What is EVA?#

EVA is an open-source AI-relational database with first-class support for deep learning models. It aims to support AI-powered database applications that operate on both structured (tables) and unstructured data (videos, text, podcasts, PDFs, etc.) with deep learning models.

EVA accelerates AI pipelines using a collection of optimizations inspired by relational database systems including function caching, sampling, and cost-based operator reordering. It comes with a wide range of models for analyzing unstructured data including image classification, object detection, OCR, face detection, etc. It is fully implemented in Python, and licensed under the Apache license.

EVA supports a AI-oriented query language for analysing unstructured data. Here are some illustrative applications:

If you are wondering why you might need a video database system, start with page on Video Database Systems. It describes how EVA lets users easily make use of deep learning models and how they can reduce money spent on inference on large image or video datasets.

The Getting Started page shows how you can use EVA for different computer vision tasks, and how you can easily extend EVA to support your custom deep learning model in the form of user-defined functions.

The User Guides section contains Jupyter Notebooks that demonstrate how to use various features of EVA. Each notebook includes a link to Google Colab, where you can run the code by yourself.

Key Features#

  1. With EVA, you can easily combine SQL and deep learning models to build next-generation database applications. EVA treats deep learning models as functions similar to traditional SQL functions like SUM().

  2. EVA is extensible by design. You can write an user-defined function (UDF) that wraps arounds your custom deep learning model. In fact, all the built-in models that are included in EVA are written as user-defined functions.

  3. EVA comes with a collection of built-in sampling, caching, and filtering optimizations inspired by relational database systems. These optimizations help speed up queries on large datasets and save money spent on model inference.

Next Steps#

A step-by-step guide to installing EVA and running queries

List of all the query commands supported by EVA

A step-by-step tour of registering a user defined function that wraps around a custom deep learning model

Illustrative EVA Applications#

Traffic Analysis Application using Object Detection Model#

Source Video Query Result

MNIST Digit Recognition using Image Classification Model#

Source Video Query Result

Movie Analysis Application using Face Detection + Emotion Classfication Models#

Source Video Query Result


Join the EVA community on Slack to ask questions and to share your ideas for improving EVA.

EVA Slack Channel