FiftyOne 计算机视觉技巧和窍门 — 2022 年 9 月 30 日

FiftyOne 计算机视觉技巧和窍门 — 2022 年 9 月 30 日

Tips & Tricks on how to use open source FiftyOne for computer vision machine learning

欢迎来到我们每周一次的 FiftyOne 提示和技巧博客,在这里我们回顾了最近出现的有趣问题和答案 松弛 , GitHub 、堆栈溢出和 Reddit。

等等,什么是五十一?

五十一 是一个开源机器学习工具集,它使数据科学团队能够通过帮助他们管理高质量的数据集、评估模型、发现错误、可视化嵌入以及更快地投入生产来提高其计算机视觉模型的性能。

好的,让我们深入了解本周的提示和技巧!

FiftyOne 应用程序的自定义插件

Community Slack 成员 Gerard Corrigan 问道,

“我想将 FiftyOne 与另一个应用程序集成。我怎样才能做到这一点?”

随着最新 五十一 0.17.0 发布您现在可以自定义和扩展 FiftyOne 应用程序的行为。例如,如果您需要一种独特的方式来可视化单个样本、绘制整个数据集或获取 FiftyOne 数据,那么自定义插件可能就是您的选择!

学习更多关于 如何开发自定义插件 GitHub 上的 FiftyOne 应用程序。

从 FiftyOne 应用程序导出可视化选项

Community Slack 成员 Murat Aksoy 问道,

“有没有办法从 FiftyOne 应用程序中导出视频?特别是在最终用户对可视化选项(例如要显示哪些标签、不透明度等)进行调整之后?”

完成此任务的最佳工作流程是:

  • 在 IPython/notebook 的 FiftyOne 应用程序中交互式选择/过滤

  • 按“书签”图标将当前过滤器保存到视图栏中

  • 通过以下方式从 Python 渲染当前视图的标签:

    session.view.draw_labels( ... )

绘制标签() 方法提供了一系列选项来配置导出标签的外观,包括字体大小、透明度等。

简而言之,你可以使用 FiftyOne App 进行视觉过滤,但你必须使用 绘制标签() 在 Python 中触发渲染并提供您想要的任何外观自定义,例如透明度。

了解更多关于[ 绘制标签()](https://voxel51.com/docs/fiftyone/user_guide/draw_labels.html) 方法 在五十一文档中。

检索每个视频的聚合

Community Slack 成员 Tadej Svetina 问道,

“我有一个视频数据集,我有兴趣对每个视频进行一些聚合(比如说检测计数)。我怎么做?”

您实际上可以使用 值() 对此的聚合以及一些非常高级的视图表达式用法。具体来说,您可以根据每个视频的字段中检测的长度将每个视频中的帧减少到单个值。例如,这是一种获取数据集每个视频中检测次数的方法。

或者您可以稍微修改此代码以获取视频 ID 到每个视频中对象数量的字典映射:

 id_num_objects_map = dict(zip(*dataset.values(["id", num_objects])))

详细了解如何使用[ 减少()](https://voxel51.com/docs/fiftyone/api/fiftyone.core.expressions.html#fiftyone.core.expressions.ViewExpression.reduce) 在五十一文档中。

使用 CVAT 集成处理折线和标签

Community Slack 成员 Guillaume Dumont 问道,

“我正在使用 CVAT 与本地 CVAT 服务器的集成,并且不知何故,在折线具有相同的情况下 _label_id_ ,下载注释时,最后一个将覆盖前一个。这最终留下了一条我预计会有很多折线的地方。有什么想法吗?”

打电话时 to_polylines() 你要确保使用 mask_types="东西" 而不是默认 mask_types="东西" 这将为每个细分市场提供一个唯一的 ID。您还可以直接注释语义分割掩码,让 FiftyOne 为您管理转换为折线。

这是来自的相关片段 文档 关于 掩码类型

掩码类型 (“stuff”)——这些类是“stuff”(像素的无定形区域)还是“thing”(连接区域,每个区域都代表一个事物的实例)。

可以是以下任何一种:

- “stuff” 如果所有的类都是东西类

- 如果所有类都是事物类,则为“事物”

- 将像素值映射到每个类的“stuff”或“thing”的字典

了解更多关于 CVAT 集成 to_polylines() 语义分割 在五十一文档中。

仅导出横向图像

Community Slack 成员 Stan 问道,

“我将如何只导出特定方向的图像,例如横向与纵向?我有一个脚本,通过检查宽度是否大于高度,然后删除所有不在横向的图像的图像和注释,将图像标记为横向。对此,FiftyOne 的方法是什么?”

这是一种隔离风景图像样本,然后删除所有其他样本的方法,例如使用快速入门数据集:

了解更多关于 五十一数据集动物园 FiftyOne Docs 中的快速入门数据集。

下一步是什么?

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/40258/32360117

posted @ 2022-10-01 17:33  哈哈哈来了啊啊啊  阅读(301)  评论(0编辑  收藏  举报