图像分类API使用指南

在制造业、物流、交通和零售等行业中,图像分类技术发挥着重要作用。例如,在制造业中,可以通过图像分类来检测产品是否存在缺陷;在零售业中,则可以用于判断包裹是否属于特定的产品SKU。以下是一个将图像分类为“划痕车门”的例子。

本指南将讨论如何使用Roboflow图像分类API为图像分配类别。这个API由OpenAI的开源CLIP模型提供支持,可以接受任意的分类标签。可以通过处理API返回的结果,为图像分配最有可能代表其内容的标签或一组标签。还将讨论如何训练自己的分类模型。

要使用Roboflow图像分类API,需要一个免费的Roboflow账户。这个账户将允许获取一个API密钥,用于访问API。一旦拥有Roboflow账户,就可以开始使用API了。

开始分类图像

Roboflow图像分类API使用了一个名为CLIP的零样本分类模型。CLIP无需任何预先训练,也没有模型可以分类的特定标签列表。相反,可以提供任何任意的标签。CLIP以及API在通用术语上表现良好,例如对车辆类型、标志进行分类,判断图像是否包含不适宜内容等。

要对图像进行分类,需要两样东西:用于分类的类别列表,以及要分类的图像。有了这些信息,就可以向API发送请求了。

import requests import base64 tags = ["划痕车门", "车门"] API_KEY = "API密钥" image = "image.jpeg" infer_clip_payload = { "subject": { "type": "base64", "value": base64.b64encode(open(image, "rb").read()).decode("utf-8"), }, "subject_type": "image", "prompt": tags, "prompt_type": "text", } res = requests.post( f"http://infer.roboflow.com/clip/compare?api_key=" + API_KEY, json=infer_clip_payload, ) similarity = res.json()['similarity'] idx = similarity.index(max(similarity)) tag = tags[idx] print(f"最相似的标签: {tag}")

在上面的代码中,向Roboflow图像分类API发送了一个HTTP请求。发送了图像以及一个标签列表。API返回了一个分数列表,表示每个标签与图像的相似程度。最后,选择最相似的标签作为分类结果。

可以指定任何想要的标签。CLIP没有接受的标签列表。CLIP在通用标签(例如“车门”和“车上的划痕”)上表现良好,而不是特定标签(例如“红色丰田凯美瑞车门上的划痕”)。

替换:

  • 将tags变量的值替换为想要发送到API的类别。
  • 将api_key替换为Roboflow API密钥。
  • 将image.jpeg替换为想要运行模型的图像的名称。

然后,运行脚本。

在以下两张带有划痕车门的汽车图像上运行脚本:

模型返回:

  • 最相似的标签:车门
  • 最相似的标签:划痕车门

模型成功地识别出第一张图像包含一个车门,第二张包含一个划痕车门。

如果需要在自己的硬件上运行分类API,可以使用RoboflowInference。

Inference是一个高性能的推理服务器,可以在它上面运行微调模型,如YOLOv8目标检测和分类模型,以及基础模型,如CLIP,这是支持Roboflow图像分类API的模型。

下一步:训练自定义分类模型

虽然CLIP和Roboflow图像分类API可以解决许多用例,但对于更具体的分类问题,建议训练一个自定义分类模型。自定义分类模型可以使用自己的数据和分类体系进行训练,使能够比使用通用模型获得更高的准确率。

可以训练两种主要类型的分类模型:单类模型,为图像分配一个标签;多类模型,可以为图像分配一个或多个标签。

无论想要创建什么样的分类系统,都需要遵循以下步骤:

  • 收集代表用例的数据。
  • 用一个或多个类别对数据进行标记。
  • 训练一个模型。
  • 部署模型。

可以在Roboflow上训练一个分类模型。要开始训练自己的模型,请前往Roboflow仪表板,点击“创建项目”,并在项目创建页面上选择“分类”。然后可以上传图像并为分类模型对它们进行标记。当数据集准备好后,可以训练模型,并使用云API或自己的硬件部署它。

由CLIP支持的Roboflow图像分类API允许为图像分配任意标签。可以使用这个API来完成诸如分类照片是否包含人物、图像是否包含缺陷,或图像是否包含不适宜内容等任务。

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