FiftyOne 保存带有重叠检测的图像

FiftyOne Save Image with Overlaid Detections

我正在使用 Pytorch 和 Fiftyone 来处理图像检测,然后像这样在人们周围可视化这些图像检测:

但是,我很难以一种易于查看的方式保存它。我希望能够通过脚本保存处理后的图像,边界框覆盖在图像上,我现在只能通过右键单击并从上面的应用程序下载图像来实现。 FiftyOne 提供了多种导出数据的选项:https://voxel51.com/docs/fiftyone/user_guide/export_datasets.html#supported-formats,但所有这些选项都导出检测以用于另一个脚本(通过将图像和检测分别保存在 .txt/.json/etc 文件中)而不是'final visualization' 图片。如何使用 FiftyOne 保存您在上面看到的图像(包括检测框)?如果没有内置方法,我可以将其导出到另一种类型的数据集并将检测保存在那里吗?

FiftyOne 具有此内置功能,允许您在样本上绘制标签并将它们保存到磁盘以用于任何数据集、视图,甚至只是单个样本:https://voxel51.com/docs/fiftyone/user_guide/draw_labels.html

一般来说,可以这么简单:

import fiftyone as fo

# The Dataset or DatasetView containing the samples you wish to draw
dataset_or_view = fo.Dataset(...)

# The directory to which to write the annotated media
output_dir = "/path/for/output"

# The list of `Label` fields containing the labels that you wish to render on
# the source media (e.g., classifications or detections)
label_fields = ["ground_truth", "predictions"]  # for example

# Render the labels!
dataset_or_view.draw_labels(output_dir, label_fields=label_fields)

draw_labels() method also accepts a DrawConfig 为绘制标签时如何呈现标签提供了很多选项。