订阅
纠错
加入自媒体

如何在notebook使用FiftyOne 可以开启notebook?

2021-04-22 10:00
磐创AI
关注

FiftyOne和Jupyter

“ FiftyOne是什么?”。这是一个开放源代码的CV / ML项目,希望解决工业和学术界的CV / ML研究人员面临的许多实际问题和工具问题。这是我写这篇文章的原因,也是我认为计算notebook的历史包含宝贵经验的原因。作为FiftyOne的开发人员,我很欣赏它所鼓励的研究质量以及所允许的协作。我同意,最好在一个开放的论坛中取得最好的进展。让机器为我们做出智能和自动化决策的机会促使我们进行了大量的人工工作。前面概述的notebook和科学出版的简要历史与当今机器学习面临的许多问题平行。具体而言,在计算机视觉领域。计算机视觉模型试图对我们这个世界上非结构化的,即图像和视频进行观察和决策。

在过去的十年中,为了追求训练和理解这些模型的性能,数以千计的图像中的大型数据集已被数千名工人不完全注释。让机器为我们做出智能和自动化决策的机会促使我们进行了大量的人工工作。事实证明,最近在无需监督而又费力的人工标注工作(例如OpenAI的CLIP)的计算机视觉任务的更无监督的方法上的努力取得了丰硕的成果。但是性能仍然远远不够完美。而且,理解模型性能总是需要针对可信的、真实值或黄金标准数据进行手动验证。毕竟,这些模型并不是被送到树林里去操作和推断的。模型正被嵌入我们的日常生活中,它们的表现质量可能会产生生死攸关的后果。我们用来分析计算机视觉模型的方法和工具的质量,应该与用于构建它们的方法和工具的质量相匹配。因此,可以肯定的是,我们用来分析计算机视觉模型的方法和工具的质量应该与用于构建模型的方法和工具的质量相匹配。而累积的,协作的和渐进的问题解决仍至关重要。建立开放标准,使CV / ML社区不仅是在模型上,而且是在数据集上,以增量方式协同工作,这可能是在现代计算机视觉科学领域建立信任和进步的唯一可行方法。FiftyOne希望能够建立这种信任和进步。

以下是FiftyOne当前功能的一个小示例,重点是演示基本的API和UX,这些API和UX可以在Jupyter Notebook中高效地回答有关其数据集和模型的问题。与FiftyOne一起挖掘COCO按照此Colab Notebook中的说明进行操作:https://colab.research.google.com/github/voxel51/fiftyone-examples/blob/master/examples/digging_into_coco.ipynbnotebook电脑提供了一种方便的方式来分析视觉数据集。代码和可视化可以位于同一个地方,这正是CV / ML经常需要的地方。考虑到这一点,能够在视觉数据集中发现问题是改进它们的第一步。本节将引导我们深入挖掘图像数据集中问题的每个“步骤”(即notebook单元)。我鼓励你进入Colab Notebook并亲自体验:https://colab.research.google.com/github/voxel51/fiftyone-examples/blob/master/examples/digging_into_coco.ipynb首先,我们需要使用pip安装fiftyone软件包。

!pip install fiftyone

接下来,我们可以下载并加载我们的数据集。我们将使用COCO-2017验证拆分。我们还花点时间使用FiftyOne App可视化真实值检测标签。以下代码将为我们完成所有这些工作。import fiftyone as fo
import fiftyone.zoo as foz
dataset = foz.load_zoo_dataset("coco-2017", split="validation")
session = fo.launch_app(dataset)

具有真实值检测功能的COCO-2017。我们已经加载了验证数据集COCO-2017,现在让我们下载并加载模型并将其应用于验证数据集。我们将使用来自FiftyOne model zoo的预训练模型faster-rcnn-resnet50-fpn-coco-torch。让我们将预测应用于新的标签字段predictions,并将应用范围限制到置信度大于或等于0.6的检测。FiftyOne Model zoo:https://voxel51.com/docs/fiftyone/user_guide/model_zoo/index.htmlmodel = foz.load_zoo_model("faster-rcnn-resnet50-fpn-coco-torch")
dataset.apply_model(model, label_field="predictions", confidence_thresh=0.6)

让我们专注于与车辆检测有关的问题,并在真实值标签和我们的预测中考虑所有公共汽车,小汽车和卡车车辆,并忽略任何其他检测。以下内容将我们的数据集过滤到仅包含我们的车辆检测数据的视图,并在App中呈现该视图。from fiftyone import ViewField as F
vehicle_labels = ["bus","car", "truck"]
only_vehicles = F("label").is_in(vehicle_labels)
vehicles = (
   dataset
   .filter_labels("predictions", only_vehicles, only_matches=True)
   .filter_labels("ground_truth", only_vehicles, only_matches=True)

session.view = vehicles

仅使用车辆真实值情况和预测的检测结果进行的COCO-2017验证。现在我们有了预测,我们可以评估模型了。我们将使用FiftyOne提供的使用COCO评估方法的实用方法evaluate_detections()。from fiftyone.utils.eval import evaluate_detections
evaluate_detections(vehicles, "predictions",  gt_field="ground_truth", iou=0.75)
evaluate_detections()已将有关评估的各种数据填充到我们的数据集中。值得注意的是有关哪些预测与真实值框不匹配的信息。下面的数据集视图使我们仅查看那些不匹配的预测。我们也将按照置信值以降序排序。filter_vehicles = F("ground_truth_eval.matches.0_75.gt_id") == -1
unmatched_vehicles = (
   vehicles
   .filter_labels("predictions", filter_vehicles, only_matches=True)
   .sort_by(F("predictions.detections").map(F("confidence")).max(), reverse=True)

session.view = unmatched_vehicles

<上一页  1  2  3  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

人工智能 猎头职位 更多
扫码关注公众号
OFweek人工智能网
获取更多精彩内容
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号