Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >EVA - AI赋能的关系数据库

EVA - AI赋能的关系数据库

原创
作者头像
用户1758543
发布于 2023-05-05 00:54:38
发布于 2023-05-05 00:54:38
76500
代码可运行
举报
运行总次数:0
代码可运行

EVA 旨在支持使用深度学习模型对结构化数据(表格、特征向量)和非结构化数据(视频、播客、PDF 等)进行操作的数据库应用程序。 它使用一系列受久经考验的关系数据库系统启发的优化,包括函数缓存、采样和基于成本的谓词重新排序,将 AI 管道加速 10-100 倍。 EVA 支持面向 AI 的类 SQL 查询语言,专为分析非结构化数据而量身定制。 它带有用于分析非结构化数据的广泛模型,包括用于图像分类、对象检测、OCR、文本情感分类、人脸检测等的模型。它完全用 Python 实现并在 Apache 许可下获得许可。

推荐:用NSDT场景设计器快速搭建3D场景。

EAV的主要特性如下:

  • 🔮 使用类似 SQL 的简短查询构建更简单的 AI 驱动的应用程序
  • ⚡️ 使用以 AI 为中心的查询优化,AI 管道速度提高 10-100 倍
  • 💰 节省花在 GPU 驱动推理上的钱
  • 🚀 通过用户定义的函数为您的自定义深度学习模型提供一流的支持
  • 📦 内置缓存以消除跨查询的冗余模型调用
  • ⌨️ 对 PyTorch 和 HuggingFace 模型的一流支持
  • 🐍 可通过 pip 安装并完全在 Python 中实现

以下是一些说明性的 EVA 支持的应用程序(它们都是可以在 Google Colab 中打开的 Jupyter 笔记本):

  • 🔮 分析十字路口的交通流量
  • 🔮 检查电影中演员的情感调色板
  • 🔮 根据内容对图像进行分类
  • 🔮 使用拥抱面进行图像分割
  • 🔮 识别车牌
  • 🔮 分析社交媒体模因的毒性

1、快速开始

使用 pip 包管理器安装 EVA。 EVA 支持 Python 版本 >= 3.7。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install evadb

要在 Jupyter notebook 中启动并连接到 EVA 服务器,请查看这个介绍性的情绪分析 notebook

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cursor = connect_to_server()

将视频加载到 EVA 服务器上(我们使用 ua_detrac.mp4 进行说明):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LOAD VIDEO "data/ua_detrac/ua_detrac.mp4" INTO TrafficVideo;

就是这样! 现在可以对加载的视频运行查询:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT id, data FROM TrafficVideo WHERE id < 5;

在视频中搜索包含汽车的帧:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT id, data FROM TrafficVideo WHERE ['car'] <@ Yolo(data).labels;

在视频中搜索包含行人和汽车的帧:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT id, data FROM TrafficVideo WHERE ['pedestrian', 'car'] <@ Yolo(data).labels;

搜索超过三辆汽车的帧:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT id, data FROM TrafficVideo WHERE ArrayCount(Yolo(data).labels, 'car') > 3;

在具有用户定义函数 (UDF) 的查询中使用自定义深度学习模型:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 管道。

代码语言:javascript
代码运行次数:0
运行
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 为中心的查询优化器更快地运行查询。 两个关键的优化是:

  • 💾 缓存:EVA自动缓存并复用之前的查询结果(尤其是模型推理结果),消除冗余计算,减少查询处理时间。
  • 🎯 谓词重新排序:EVA 优化了查询谓词的评估顺序(例如,首先运行速度更快、更具选择性的模型),从而加快查询速度并降低推理成本。

考虑对 🐕 图像数据集的这两个探索性查询:

代码语言:javascript
代码运行次数:0
运行
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 倍!

2、示例应用

🔮 流量分析(目标检测模型)

🔮 MNIST 数字识别(图像分类模型)

🔮 电影情感分析(人脸检测+情感分类模型)

🔮 车牌识别(车牌检测 + OCR 提取模型)

🔮 Meme 有害性分类(OCR 提取 + 毒性分类模型)


原文链接:AI增强的关系数据库 - BimAnt

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
AI的隐形燃料:非结构化数据如何赋予AI无限智慧
在数字时代,数据是推动技术进步的核心动力。非结构化数据,如文本、图像、视频和传感器数据,占全球数据的80%至90%。与结构化数据不同,非结构化数据没有固定的格式,处理起来更具挑战性,但其蕴含的丰富信息为人工智能(AI)提供了巨大潜力。本文将深入探讨非结构化数据在AI中的作用,分析其重要性、对AI的意义,当前处理技术,以及结构化数据的未来发展趋势。
AI.NET 极客圈
2025/05/09
1480
AI的隐形燃料:非结构化数据如何赋予AI无限智慧
基于深度学习的自动车牌识别(详细步骤+源码)
本文将重点介绍 ALPR 的端到端实现。它将侧重于两个过程:车牌检测和检测到的车牌的 OCR。(公众号:OpenCV与AI深度学习)
Color Space
2022/04/06
7.5K0
基于深度学习的自动车牌识别(详细步骤+源码)
​零基础入门深度学习(九):目标检测之常用数据预处理与增广方法
本课程是百度官方开设的零基础入门深度学习课程,主要面向没有深度学习技术基础或者基础薄弱的同学,帮助大家在深度学习领域实现从0到1+的跨越。从本课程中,你将学习到:
用户1386409
2020/02/19
1.8K0
使用OpenCV和YOLOv8制作目标检测器(附源码)
YOLO(You Only Look Once)是由Joseph Redmon和Ali开发的一种对象检测和图像分割模型。
小F
2023/09/19
3K1
使用OpenCV和YOLOv8制作目标检测器(附源码)
YOLOV3实现车牌检测
计算机视觉无处不在-从面部识别,制造,农业到自动驾驶汽车。今天,我们将通过动手实践进入现代计算机视觉世界,学习如何使用YOLO算法检测车牌。
AI算法与图像处理
2021/03/14
1.5K0
YOLOV3实现车牌检测
用PyTorch做物体检测和追踪
在我之前的工作中,我尝试过用自己的图像在PyTorch中训练一个图像分类器,然后用它来进行图像识别。现在,我将向你们展示如何使用预训练的分类器在一张图像中检测多个目标,之后在整个视频中跟踪他们。
AI研习社
2019/01/08
2K0
PaddleX助力无人驾驶:基于YOLOv3的车辆检测和车道线分割实战
无人驾驶汽车利用传感器技术、信号处理技术、通讯技术和计算机技术等,通过集成视觉、激光雷达、超声传感器、微波雷达、GPS、里程计、磁罗盘等多种车载传感器来辨识汽车所处的环境和状态,并根据所获得的道路信息、交通信号的信息、车辆位置和障碍物信息做出分析和判断,向主控计算机发出期望控制,控制车辆转向和速度,从而实现无人驾驶车辆依据自身意图和环境的拟人驾驶。
用户1386409
2020/06/16
2K1
PaddleX助力无人驾驶:基于YOLOv3的车辆检测和车道线分割实战
Transformers 4.37 中文文档(五)
目标检测是计算机视觉任务,用于检测图像中的实例(如人类、建筑物或汽车)。目标检测模型接收图像作为输入,并输出检测到的对象的边界框的坐标和相关标签。一幅图像可以包含多个对象,每个对象都有自己的边界框和标签(例如,它可以有一辆汽车和一座建筑物),每个对象可以出现在图像的不同部分(例如,图像可以有几辆汽车)。这个任务通常用于自动驾驶,用于检测行人、道路标志和交通灯等。其他应用包括在图像中计数对象、图像搜索等。
ApacheCN_飞龙
2024/06/26
4780
Transformers 4.37 中文文档(五)
如何用关系数据库实现 watchable mvcc:Kine 学习笔记
Kine 目前使用在 k3s: Lightweight Kubernetes 项目中, k3s 的目标是建立一个轻量级的 k8s(完整的 k8s 实在是太重了),以便于部署在 小型机器/边缘机器/物联网机器 上。当然自己学习也可以部署一个。k3s 和 k8s 是兼容的,k3s 主要做的事情还是简化一些插件,合并一些工具到一个 bin 文件等等。
王磊-字节跳动
2022/04/16
2.1K0
《数据库系统概论》| 第三章 关系数据库标准语言SQL 知识梳理
集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体。
Twcat_tree
2022/11/22
8360
《数据库系统概论》| 第三章 关系数据库标准语言SQL 知识梳理
手把手教你移动端AI应用开发(三)——部署环节关键代码最详解读
前几天给大家推送过如何快速在安卓上跑通OCR应用、如何将AI模型集成到安卓应用中,本章将对部署过程中的关键代码进行解读。
用户1386409
2020/08/28
2.8K0
手把手教你移动端AI应用开发(三)——部署环节关键代码最详解读
yolov8学习,车辆车牌识别代码解读
最近对人工智能、计算机视觉等一类的东西很感兴趣,突发奇想想做一个停车场管理系统,从其中就需要车牌识别,于是尝试学习并尝试做一下这个yolo车牌检测识别的项目。
繁依Fanyi
2024/10/27
3870
16个车辆信息检测数据集收集汇总
UA-DETRAC是一个具有挑战性的现实世界多目标检测和多目标跟踪基准。数据集由 Cannon EOS 550D摄像头在中国北京和天津24个不同地点拍摄的10个小时的视频组成。视频以每秒25帧的速度录制,分辨率为960540像素。在UA-DETRAC数据集中,有超过14万帧和8250辆车被人工标注,总共标记了121万物体的边界盒。我们还对目标检测和多目标跟踪方面的最新方法进行基准测试,以及本网站中详细介绍的评估指标。
用户9925864
2022/07/27
10K0
16个车辆信息检测数据集收集汇总
在这个AI的时代我们也得与时俱进,给大家带来使用YOLO最新库来进行图像识别,标注、训练、验证、应用
1. 找到 yolo 版本,我的路径:D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python39_64\Lib\site-packages\ultralytics
Shunnet
2025/02/20
2940
Sqoop——将关系数据库数据与hadoop数据进行转换的工具
Sqoop的输入输出/导入导出是相对于文件系统HDFS的, 因此HDFS的导入导出如图1,图2
时间静止不是简史
2020/07/24
1.3K0
Sqoop——将关系数据库数据与hadoop数据进行转换的工具
关系数据库如何工作
当谈到关系数据库时,我不禁想到缺少了一些东西。它们到处都在使用。有许多不同的数据库:从小而有用的 SQLite 到强大的 Teradata。但是,只有几篇文章解释了数据库的工作原理。你可以自己谷歌“关系数据库是如何工作的”,看看有多少结果。而且,这些文章很短。现在,如果您寻找最新的流行技术(大数据、NoSQL 或 JavaScript),您会发现更深入的文章解释了它们的工作原理。
TimeFriends
2022/06/29
9770
关系数据库如何工作
yolo-world 源码解析(五)
ApacheCN_飞龙
2024/03/09
5360
Transformers 4.37 中文文档(八十八)
LayoutLM 模型是由 Yiheng Xu,Minghao Li,Lei Cui,Shaohan Huang,Furu Wei 和 Ming Zhou 在论文LayoutLM: Pre-training of Text and Layout for Document Image Understanding中提出的。这是一种简单但有效的文本和布局预训练方法,用于文档图像理解和信息提取任务,如表单理解和收据理解。它在几个下游任务上取得了最先进的结果:
ApacheCN_飞龙
2024/06/26
4060
干货 | YOLOV5 训练自动驾驶数据集,并转Tensorrt,收藏!
BDD100K是最大的开放式驾驶视频数据集之一,其中包含10万个视频和10个任务,目的是方便评估自动驾驶图像识别算法的的进展。每个高分辨率视频一共40秒。该数据集包括超过1000个小时的驾驶数据,总共超过1亿帧。这些视频带有GPU / IMU数据以获取轨迹信息。该数据集具有地理,环境和天气多样性,从而能让模型能够识别多种场景,具备更多的泛化能力。这些丰富的户外场景和复杂的车辆运动使感知任务更具挑战性。该数据集上的任务包括图像标记,车道检测,可驾驶区域分割,道路对象检测,语义分割,实例分割,多对象检测跟踪,多对象分割跟踪,领域自适应和模仿学习。我们可以在BDD100K数据网站上下载数据。
机器视觉CV
2020/10/27
3K0
干货 | YOLOV5 训练自动驾驶数据集,并转Tensorrt,收藏!
Python之关系数据库的读取、插入、删除
我们可以连接到关系数据库以使用Pandas库分析数据,以及另一个用于实现数据库连接的额外库。 这个软件包被命名为sqlalchemy,它提供了在python中使用的完整的SQL语言功能。
菲宇
2022/12/02
1.1K0
推荐阅读
相关推荐
AI的隐形燃料:非结构化数据如何赋予AI无限智慧
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验