Roboflow API搜索功能详解

RoboflowAPI提供了强大的图像搜索功能,允许用户通过查询字符串进行筛选、排序和语义搜索,类似于应用内的搜索功能。通过API返回的继续标记(continuation token),用户可以进行后续请求,以分页方式浏览所有匹配的图像,例如列出工作空间或特定项目中的所有图像。本文详细介绍了如何使用这个API端点。

API端点

要访问API,需要将API密钥作为查询参数包含在请求中。例如:

POST https://api.roboflow.com/{WORKSPACE}/search/v1?api_key={YOUR_API_KEY}

此端点支持根据请求中指定的各种标准搜索图像。

请求格式

请求头需要设置为:

Content-Type: application/json

请求体参数包括:

  • query:用于筛选、排序或执行语义搜索的字符串。例如:"nightime project:{my-project-url}"将筛选出my-project-url项目中的图像,并为匹配nightime的图像应用语义排序。
  • pageSize:每页返回的结果数量(默认:50)。
  • fields:要包含在响应中的字段列表。可能的值包括"tags"、"width"、"height"、"filename"、"aspectRatio"、"split"。

示例请求:

curl --location 'https://api.roboflow.com/{WORKSPACE}/search/v1?api_key={API_KEY}' --header 'Content-Type: application/json' --data '{ "query": "project:foo nightime", "pageSize": 10, "fields": ["tags", "width", "height", "filename", "aspectRatio", "split"] }'

响应格式

响应是一个包含以下字段的JSON对象:

  • results:图像对象的数组。
  • total:找到的图像总数。
  • continuationToken:分页用的标记。

图像对象字段取决于在fields参数中请求的字段,可能包括:

  • id:图像的唯一标识符。
  • projectData:包含项目特定数据的对象。
  • split:指示数据集的分割(例如,"test")。
  • inDataset:布尔值,指示图像是否在数据集中。
  • tags:与图像关联的标签数组。
  • width:图像的宽度(以像素为单位)。
  • height:图像的高度(以像素为单位)。
  • filename:图像文件的名称。
  • aspectRatio:图像的宽高比。

分页和continuationToken

响应中返回的continuationToken对于分页至关重要。它允许用户高效地浏览所有匹配的搜索结果。当在后续请求中包含continuationToken时,它会获取下一组结果。要使用continuationToken,请将其包含在下一个API调用的请求体中。这将根据原始的查询检索下一页结果。

项目和数据集过滤器

除了应用内数据集搜索中提供的所有过滤器外,工作空间范围的搜索还支持项目和数据集的过滤器。例如,可以使用查询project:foo project:bar来查找在两个项目foo和bar中的所有图像。使用dataset:foo这样的查询将返回在项目foo中被标记并添加到项目数据集中的图像。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485