使用文本搜索查询来理解数据集
从今天开始,现在可以使用基于文本的搜索查询来更好地理解Roboflow中的各种数据集。这种新的搜索功能让能够通过自然语言而非依赖于标注数据或预训练的辅助标注模型来过滤和查找图像。
通过使用基于文本的搜索,可以超越传统的数据集分析方法,比如类别平衡、缺失或错误的标注、对象计数直方图等,来更深入地理解数据集。这种搜索利用计算机视觉技术,帮助用通用语言过滤和查找图像,而不仅仅是依赖于标注数据。
文本搜索是实现数据中心方法部署高性能计算机视觉模型到生产环境中的重要工具。通过使用Python代码中的几行代码来抽样图像并训练模型的下一个版本,这是一种常见的数据中心方法来改进计算机视觉模型。
现在,Roboflow的数据集搜索功能提供了一些图像元数据过滤器,可以在搜索数据集中的图像时使用这些过滤器来细化搜索。以下是一些可用的过滤器:
<SOURCE_ID> like-image: 通过CLIP测量的语义相似性进行排序。
tag: 通过用户提供的标签进行过滤。
filename: 运行完全匹配提供的文件名的搜索。在查询的开头和结尾使用*进行部分匹配。
split: 通过分割(训练、测试、验证)进行过滤。
<JOB_ID> job: 显示具有提供的作业ID的图像。
min-width:X: 显示宽度小于X的图像。
max-width:X: 显示宽度大于X的图像。
min-height:X: 显示高度小于X的图像。
max-height:X: 显示高度大于X的图像。
min_annotations:X: 过滤出少于指定数量标注的图像。
max_annotations:X: 显示多于指定数量标注的图像。
CLASS classname: 显示没有提供标签的任何标注的图像。
让通过一些例子来说明如何立即使用这些功能来改进或理解数据集。
通常,会从几个对象开始训练模型,然后将一个相对狭窄的模型部署到生产中。一旦模型表现良好并产生价值,可能希望通过添加额外的类别来扩展模型检测的对象。
以一个自动驾驶汽车数据集为例。这个数据集专注于交通灯、行人、自行车和汽车。如果想要添加一个新的类别来检测停车标志,而不想收集一整套新的数据来表示这个类别,可以搜索当前的数据集来找到并标注已经拥有的停车标志。
添加停车标志是一个简单的例子,因为停车标志是明显的与道路相关的对象。也可以搜索更少的数据,如人行横道、邮筒、立交桥和碎石。
使用相同的数据集来添加新的对象或分类类型有助于节省时间,并充分利用数据。当根据给定的数据集找到额外的用例时,将能够快速扩展模型的使用方式。
一旦模型部署到生产中,边缘情况就会开始出现,会发现模型在某些情况下的性能没有达到给定任务所需的水平。通常,提高这些场景中性能的最佳解决方案是增加这些图像在数据集中的代表性。
对于部署在户外环境中的模型,天气可能会导致性能问题。在这些元素中寻找数据也很困难,因为它们可能不常发生。在这种情况下,可以搜索与这些元素相关的图像,而不仅仅是特定对象,看看哪些元素的代表性不足。让以挖掘机数据集为例,看看雪和夜间图像的代表性差异。
使用天气和照明作为例子,但可以将其应用于图像中的其他差异,如航拍、广角镜头、黑白、热成像等,以及模型处理不好的任何其他方面。
并非所有数据集都有常见的对象,这可能会导致在图像中搜索特定数据时出现问题。数据集搜索在这里也很有帮助。让以电子元件数据集为例,展示这如何工作,并再次看看图像的代表性差异。
使用任何词来描述想要定位的图像,将返回结果帮助找到图像,即使在图像中没有可见的常见对象。
在使用一个对象的类别但在推断中看到低置信度时,可能想要探索该对象,看看是否可以改进标注,如果对象被错误标注,如果对象可见但未标注,或者如果数据不代表现实世界场景。
为了突出这些例子,可以使用像COCO这样的大型数据集,并看看是否可以改进标签。
可以在Roboflow Universe中使用数据集搜索来探索90,000多个数据集(进入任何项目并点击图像),或者创建一个免费账户上传自己的数据集,并通过数据集标签来探索图像。