EVA 旨在支持使用深度学习模型对结构化数据(表格、特征向量)和非结构化数据(视频、播客、PDF 等)进行操作的数据库应用程序。 它使用一系列受久经考验的关系数据库系统启发的优化,包括函数缓存、采样和基于成本的谓词重新排序,将 AI 管道加速 10-100 倍。 EVA 支持面向 AI 的类 SQL 查询语言,专为分析非结构化数据而量身定制。 它带有用于分析非结构化数据的广泛模型,包括用于图像分类、对象检测、OCR、文本情感分类、人脸检测等的模型。它完全用 Python 实现并在 Apache 许可下获得许可。
推荐:用NSDT场景设计器快速搭建3D场景。
EAV的主要特性如下:
以下是一些说明性的 EVA 支持的应用程序(它们都是可以在 Google Colab 中打开的 Jupyter 笔记本):
使用 pip 包管理器安装 EVA。 EVA 支持 Python 版本 >= 3.7。
pip install evadb
要在 Jupyter notebook 中启动并连接到 EVA 服务器,请查看这个介绍性的情绪分析 notebook:
cursor = connect_to_server()
将视频加载到 EVA 服务器上(我们使用 ua_detrac.mp4 进行说明):
LOAD VIDEO "data/ua_detrac/ua_detrac.mp4" INTO TrafficVideo;
就是这样! 现在可以对加载的视频运行查询:
SELECT id, data FROM TrafficVideo WHERE id < 5;
在视频中搜索包含汽车的帧:
SELECT id, data FROM TrafficVideo WHERE ['car'] <@ Yolo(data).labels;
在视频中搜索包含行人和汽车的帧:
SELECT id, data FROM TrafficVideo WHERE ['pedestrian', 'car'] <@ Yolo(data).labels;
搜索超过三辆汽车的帧:
SELECT id, data FROM TrafficVideo WHERE ArrayCount(Yolo(data).labels, 'car') > 3;
在具有用户定义函数 (UDF) 的查询中使用自定义深度学习模型:
CREATE UDF IF NOT EXISTS MyUDF
INPUT (frame NDARRAY UINT8(3, ANYDIM, ANYDIM))
OUTPUT (labels NDARRAY STR(ANYDIM), bboxes NDARRAY FLOAT32(ANYDIM, 4),
scores NDARRAY FLOAT32(ANYDIM))
TYPE Classification
IMPL 'eva/udfs/fastrcnn_object_detector.py';
在单个查询中组合多个模型以设置有用的 AI 管道。
-- Analyse emotions of faces in a video
SELECT id, bbox, EmotionDetector(Crop(data, bbox))
FROM MovieVideo JOIN LATERAL UNNEST(FaceDetector(data)) AS Face(bbox, conf)
WHERE id < 15;
EVA 使用其以 AI 为中心的查询优化器更快地运行查询。 两个关键的优化是:
考虑对 🐕 图像数据集的这两个探索性查询:
-- Query 1: Find all images of black-colored dogs
SELECT id, bbox FROM dogs
JOIN LATERAL UNNEST(Yolo(data)) AS Obj(label, bbox, score)
WHERE Obj.label = 'dog'
AND Color(Crop(data, bbox)) = 'black';
-- Query 2: Find all Great Danes that are black-colored
SELECT id, bbox FROM dogs
JOIN LATERAL UNNEST(Yolo(data)) AS Obj(label, bbox, score)
WHERE Obj.label = 'dog'
AND DogBreedClassifier(Crop(data, bbox)) = 'great dane'
AND Color(Crop(data, bbox)) = 'black';
通过重用第一个查询的结果并根据可用的缓存推理结果对谓词重新排序,EVA 运行第二个查询的速度提高了 10 倍!
🔮 流量分析(目标检测模型)
🔮 MNIST 数字识别(图像分类模型)
🔮 电影情感分析(人脸检测+情感分类模型)
🔮 车牌识别(车牌检测 + OCR 提取模型)
🔮 Meme 有害性分类(OCR 提取 + 毒性分类模型)
原文链接:AI增强的关系数据库 - BimAnt
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。