在机器学习和计算机视觉领域,模型性能的提升是一个复杂且持续的过程。不同的项目可能会有不同的优化策略,但有一点是共通的:通过可视化工具来观察模型在不同图像上的表现,可以帮助确定改进模型的步骤。很高兴地宣布,向量分析功能已经在产品中上线,这是模型评估功能的扩展。使用向量分析工具,可以:
查看一个散点图,显示数据集中的图像根据它们的语义相似性被绘制出来;识别数据集中的图像聚类;可视化低f1分数的图像,这些信息可以用来指导对模型下一个版本的更改;修正低f1分数图像的注释;等等!
在本指南中,将展示如何使用Roboflow向量分析工具。让开始吧!
在Roboflow中使用向量分析
向量分析适用于所有付费的Roboflow账户。在Roboflow上训练一个新的目标检测模型后,将运行包括向量分析在内的模型评估。注意:不能对未在Roboflow上训练的模型使用向量分析。模型评估可能需要一些时间来运行,这取决于数据集中的图像数量。一旦评估完成,可以通过点击与新训练的模型相关的模型页面上的“查看详细模型评估”按钮来找到它:
当点击按钮时,将出现一个混淆矩阵,显示模型在测试数据集上评估时的总体表现。可以使用混淆矩阵来识别预测正确、错误和缺失的图像。点击“向量分析”选项卡查看向量分析:
在这个选项卡上,会出现一个散点图。图上的每个点代表数据集版本中的一个图像,包括转换后的图像。将鼠标悬停在每个点上,可以看到相关联的图像。图像根据它们在Roboflow上存储的所有图像上计算的CLIP嵌入的语义相似性进行聚类。这使能够找到彼此相似的图像簇和数据集中的异常值。
点将出现在从红色到白色的光谱上。红色越深,该图像上的预测f1分数就越低。较低的f1分数意味着模型返回意外结果(即假阳性,与真实情况相比遗漏了对象)的比率更高。
可以点击任何点将其保存到侧边栏。这使能够一起查看多个图像:在上面,所有f1分数低的图像都被选中了。可以点击单个图像比较真实情况和模型的结果:默认情况下,显示模型预测。点击“真实情况”查看数据集中的标签:
# 模型预测示例
model_prediction = model.predict(image)
# 查看真实情况
true_labels = dataset.get_labels(image)
在这个例子中,模型将牙齿识别为“上颌”,而牙齿实际上是“下颌”。在查看其他图像时,可以看到这是一致的。这表明可能需要添加更多代表误识别图像的下颌牙齿图像,以帮助模型以更高的准确度识别这个类别。
建议点击f1分数低的图像,以便可以看到模式。在图上分散的低f1分数图像表明数据集中可能存在标记问题。例如,本体论可能没有在数据集中一致地应用,或者图像可能缺少注释。在特定区域集中的低f1分数图像表明,可以通过添加更多与聚类区域中的图像相似的图像来提高模型性能。这些图像应该足够不同,以帮助模型泛化。
有了向量分析提供的洞察,可以开始计划对用于训练下一个模型版本的底层数据集进行更改。
结论
向量分析现已向所有付费客户开放,适用于今天起训练的目标检测模型。可以使用Roboflow向量分析功能来识别数据集中的图像簇。可以找到模型表现不佳的图像,并利用这些信息来识别模型表现不佳的模式。