希望您可以在不编写代码行的情况下搜索图像或视频?是否想通过以简单的英语询问从数据中提取见解?现在可以! ?
VoxelGpt是一个五十一个插件,结合了大语言模型(LLMS)和大型多模型模型(LMM)的功能,以及FiftyOne的计算机视觉查询语言,使您能够使用自然语言过滤,分类,分类,切片,切成语义,并提出有关数据的问题。它甚至可以在您的数据集上为您执行计算 - 当然可以通过批准!
您可以在gpt.fiftyone.ai上尝试voxelgpt!
VoxelGpt能够处理以下任何类型的查询:
当您向Voxelgpt提出问题时,它将解释您的意图并确定您要问的查询类型。如果不确定Voxelgpt,它将要求您澄清。
VoxelGpt可以处理有关数据集的以下查询类型:
您可以要求Voxelpt为您搜索数据集。这是您可以问的一些示例:
在引擎盖下,voxelgpt解释您的查询并将其转换为相应的数据集视图。 VoxelGpt了解数据集的模式,以及评估运行和相似性索引之类的内容。
它还可以自动检查数据集的内容以检索特定实体。
VoxelGpt可以回答有关数据集,大脑运行,评估运行等方案的问题。这里有一些例子:
如果您的数据集包含一个或多个fo.Detections
字段,则VoxelGpt可以根据边界框的大小(相对和绝对)和检测次数进行过滤或匹配。
如果您的数据集具有GeoLocation
字段,则可以在数据集上运行地理查询。 VoxelGpt可以执行从位置名称(或文本描述)到(lon, lat)
对的地理编码,或定义边界区域的(lon, lat)
点的列表。这里有几个例子:
如果您的数据集具有Date
或DateTime
字段,则VoxelGpt可以执行诸如:
event
字段在晚上8点至晚上11点之间阅读一天中的时间VoxelGpt可以访问FiftyOne的聚合阶段,因此可以执行整个数据集中的count
, mean
,Sum, sum
, std
, min
,MAX, max
, values
和DICTICT的聚合,或者在整个数据集中的字段或表达式distinct
,或在数据集中的视图中进行视图。这里有一些例子:
cat
标签我有几张图像?confidence
领域的标准偏差是什么?VoxelGpt可以在数据集上执行计算,例如:
以下是一些计算查询的示例,您可以询问VoxelGpt:
如果您不想允许VoxelGpt运行计算,请设置环境变量:
export VOXELGPT_ALLOW_COMPUTATIONS=false
您还可以设置VoxelGPT需要在该数据集中的最小数据集大小来要求运行计算的权限:
export VOXELGPT_APPROVAL_THRESHOLD=1000
默认值是100个样本。
Voxelgpt不仅是配对的程序员;它也是一种教育工具。 VoxelGpt可以访问整个FiftyOne文档,以及Voxel51博客上的所有博客文章,以及Voxel51 YouTube频道上的视频中的成绩单。它可以使用所有这些资源来回答与五十一个有关的问题。
以下是一些文档查询的示例,您可以询问VoxelGpt:
VoxelGpt将提供跨Voxel51文档,博客和YouTube频道中最有用的资源的链接。对于YouTube视频,链接将直接指向最相关的时间戳!
Voxelgpt可以回答有关您正在运行的五十一个环境的问题,包括:
这是一些工作区查询的示例,您可以询问VoxelGpt:
最后,Voxelgpt可以回答有关计算机视觉,机器学习和数据科学的一般问题。它可以帮助您了解基本概念并学习如何克服数据质量问题。
以下是一些机器学习查询的示例,您可以询问VoxelGpt:
如果还没有,请安装fiftyone:
pip install fiftyone
您还需要提供一个OpenAI API密钥(创建一个):
export OPENAI_API_KEY=XXXXXXXX
要与您的私人Azure部署一起使用,请参阅此处
如果您只想在fiftyone应用中使用voxelgpt,则可以简单地将其安装为插件:
fiftyone plugins download https://github.com/voxel51/voxelgpt
fiftyone plugins requirements @voxel51/voxelgpt --install
如果要直接使用voxelgpt
模块或在本地开发项目,则需要克隆存储库:
git clone https://github.com/voxel51/voxelgpt
cd voxelgpt
安装要求:
pip install -r requirements.txt
并通过将其与插件目录相结合:将插件可用于fiftyOne应用程序:
# Symlinks your clone of voxelgpt into your FiftyOne plugins directory
ln -s " $( pwd ) " " $( fiftyone config plugins_dir ) /voxelgpt "
是否想在您的FiftyOne团队部署中添加Voxelgpt?你可以!说明在这里。
您可以通过设置以下环境变量来将VoxelGPT与私有Azure部署一起使用:
export OPENAI_API_TYPE=azure
export AZURE_OPENAI_ENDPOINT= < azure_endpoint >
export AZURE_OPENAI_KEY= < azure_api_key >
export AZURE_OPENAI_GPT35_DEPLOYMENT_NAME= < gpt35-deployment-name >
export AZURE_OPENAI_GPT4O_DEPLOYMENT_NAME= < gpt4o-deployment-name >
export AZURE_OPENAI_TEXT_EMBEDDING_3_LARGE_DEPLOYMENT_NAME= < embedding-deployment-name >
如果未设置前三个环境变量中的任何一个,则VoxelGpt将默认使用OpenAI API。对于最后三个环境变量,如果找不到任何资源的设置,则VoxelGpt将默认将OpenAI API用于该特定模型。
您可以通过加载任何数据集来使用fiftyone应用中的voxelgpt:
import fiftyone as fo
import fiftyone . zoo as foz
dataset = foz . load_zoo_dataset ( "quickstart" )
session = fo . launch_app ( dataset )
然后是:
+
图标并选择voxelgpt例如,尝试询问以下问题:
专家提示:使用now
关键字将您以前的提示合并为下一个查询的上下文!
您还可以通过按键盘上的~
键并从列表中选择Ask VoxelGPT
来运行VoxelGpt作为操作员。这将打开一个小型模式,您可以在其中输入查询。
如果您已经在本地安装,也可以通过Python直接与Voxelgpt进行交互。
您可以使用ask_voxelgpt_interactive()
启动交互式会话,可以在其中通过input()
提示与voxelgpt交谈。导航到VoxelGpt所在的目录:
import fiftyone as fo
import fiftyone . zoo as foz
from voxelgpt import ask_voxelgpt_interactive
dataset = foz . load_zoo_dataset ( "quickstart" )
session = fo . launch_app ( dataset )
ask_voxelgpt_interactive ( dataset , session = session )
专家提示:使用now
关键字将您以前的提示合并为下一个查询的上下文。
像往常一样,您可以通过数据集,文档和一般计算机视觉查询的任何组合提示Voxelgpt。例如,对话可能看起来像:
You:
what is the difference between precision and recall?
VoxelGPT:
Precision and recall are two important metrics used to evaluate the
performance of a machine learning model in classification tasks. Precision
measures the proportion of true positive predictions among all positive
predictions made by the model. Recall, on the other hand, measures the
proportion of true positive predictions among all actual positive instances
in the dataset.
In other words, precision is the ability of the model to correctly identify
positive instances, while recall is the ability of the model to identify
all positive instances. A high precision means that the model is making
very few false positive predictions, while a high recall means that the
model is able to identify most of the positive instances in the dataset.
It is important to balance precision and recall when evaluating a model's
performance. A model with high precision but low recall may be missing
important positive instances, while a model with high recall but low
precision may be making too many false positive predictions.
In the context of the FiftyOne library, precision and recall can be
computed using the `fiftyone.utils.metrics` module, which provides
functions for computing various classification metrics. For example, the
`fiftyone.utils.metrics.binary_classification` function can be used to
compute precision and recall for binary classification tasks.
You:
does FiftyOne integrate with Label Studio?
VoxelGPT:
Yes, FiftyOne integrates with Label Studio. The integration allows you to
easily upload your data directly from FiftyOne to Label Studio for labeling.
You can get started with Label Studio through a simple pip install to get a
local server up and running. FiftyOne provides simple setup instructions
that you can use to specify the necessary account credentials and server
endpoint to use. FiftyOne provides an API to create projects, upload data,
define label schemas, and download annotations using Label Studio, all
programmatically in Python. All of the following label types are supported
for image datasets: Classification, Detections, Instance segmentations,
Polygons and polylines, Keypoints, Scalar fields, and Semantic segmentation.
Sources:
- https://docs.voxel51.com/integrations/index.html
- https://docs.voxel51.com/integrations/labelstudio.html
You:
show me predicted airplanes
VoxelGPT:
Identified potential algorithms: evaluation
No evaluation runs found.
Identified potential fields: predictions
Identified potential label classes: {'predictions': ['airplane']}
Identified potential view stages: ['match', 'filter_labels', 'match_labels', 'exclude_labels', 'filter_field']
Okay, I'm going to load dataset.filter_labels("predictions",F("label") == "airplane")
You:
now only show me the first 10 samples
VoxelGPT:
Identified potential algorithms: evaluation
No evaluation runs found.
Identified potential fields: predictions
Identified potential label classes: {'predictions': ['airplane']}
Identified potential view stages: ['match', 'limit', 'limit_labels', 'skip', 'sort_by']
Okay, I'm going to load dataset.match(F("predictions.detections.label").contains("airplane")).limit(10)
You: exit
在交互式模式下,voxelgpt会自动加载其在应用程序中创建的任何视图,您可以通过会话对象访问它们:
print ( session . view . count ( "predictions.detections" ))
您也可以使用ask_voxelgpt()
提示带有各个查询的voxelgpt:
from voxelgpt import ask_voxelgpt
ask_voxelgpt ( "Does FiftyOne integrate with CVAT?" )
Yes, FiftyOne integrates with CVAT, which is an open-source image and video
annotation tool. You can upload your data directly from FiftyOne to CVAT to add or
edit labels. You can use CVAT either through the hosted server at app.cvat.ai or
through a self-hosted server. In either case, FiftyOne provides simple setup
instructions that you can use to specify the necessary account credentials and
server endpoint to use. The tight integration between FiftyOne and CVAT allows
you to curate and explore datasets in FiftyOne and then send off samples or
existing labels for annotation in CVAT with just one line of code. To use CVAT,
you must create an account on a CVAT server. By default, FiftyOne uses app.cvat.ai.
If you haven’t already, go to app.cvat.ai and create an account now. Another option
is to set up CVAT locally and then configure FiftyOne to use your self-hosted server.
A primary benefit of setting up CVAT locally is that you are limited to 10 tasks and
500MB of data with app.cvat.ai.
Sources:
- https://docs.voxel51.com/integrations/cvat.html#examples
- https://docs.voxel51.com/tutorials/cvat_annotation.html#Annotating-Datasets-with-CVAT
- https://docs.voxel51.com/tutorials/cvat_annotation.html#Setup
- https://docs.voxel51.com/integrations/index.html#fiftyone-integrations
当voxelgpt对您的查询创建视图时,它将返回:
import fiftyone as fo
import fiftyone . zoo as foz
dataset = foz . load_zoo_dataset ( "quickstart" )
view = ask_voxelgpt ( "show me 10 random samples" , dataset )
Identified potential view stages: ['match', 'limit', 'skip', 'take', 'sort_by']
Okay, I'm going to load dataset.take(10)
Voxelgpt经过培训,可以识别某些关键字,以帮助其理解您的意图:
关键词 | 意义 |
---|---|
show / display | 告诉VoxelGpt您要它查询数据集并显示结果 |
docs / how / FiftyOne | 告诉Voxelgpt您希望它查询fiftyone文档。 |
now | 使用您的聊天历史记录作为上下文来解释您的下一个查询。例如,如果您问“与人一起向我展示图像”,然后问“现在向我展示10个最独特的图像”,VoxelGpt将了解您想向人们展示10个最独特的图像 |
help | 用使用说明打印帮助消息 |
reset | 重置对话历史 |
exit | 退出互动python会议 |
欢迎捐款!查看指示贡献指南。
Voxelgpt使用:
Voxelgpt为视频,分组数据集和3D媒体提供了有限的支持。基本的过滤,查询和聚合仍将起作用,但不要期望对3D数据有深入的了解。
该实现基于一组有限的示例,因此可能无法很好地概括所有数据集。您的查询越具体,结果就越好。如果您发现结果不是您的期望,请告诉我们!
如果您做到了这么远,我们将非常感谢您是否花点时间检查Fiftyone并给我们一颗星星!
FiftyOne是用于构建高质量数据集和计算机视觉模型的开源库。这是为该项目提供动力的引擎。
感谢您的访问! ?
如果您想加入热爱Visual AI的快速发展的工程师,研究人员和从业者,请加入Fiftyone Slack社区!