开源技术 * IBM 微讲堂:Kubeflow 系列(观看回放 | 下载讲义) 了解详情

设置 Visual Recognition 服务的初学者指南

本文纳入 Watson Visual Recognition 学习路径

简介

IBM Watson Visual Recognition 服务是一个可识别图像内容的强大 AI 工具。该服务附带以下预先经过训练的模型;但您也可以进行定制以识别自定义类别。

  • General:这是一个经过训练的模型,可让您使用活动的大型数据集来从自己的图片中获取洞察力。
  • Food:与通用模型类似,但此模型使用特定的食物数据集。您可以使用此模型来查找任何类型的食物,其中一个主要应用是餐饮业,特别是当您想要创建一个特定菜单时。
  • Explicit:允许您分析图像是否包含不适当的内容。
  • Text:允许您从图片中抽取文本并具有文本元数据。此选项目前处于封闭测试阶段,但可进行注册。
  • Custom:允许您使用自己的图片来创建定制模型,并对其进行训练以获得更好的结果。

本文是学习路径的一部分,旨在帮助您更准确地了解 Visual Recognition 工作方式,以及如何利用它来构建您自己的人工智能 (AI) 解决方案。

术语和概念

本节将介绍一些术语和概念,了解了这些术语和概念对于讨论 Watson Visual Recognition 很有帮助。

术语 定义
自定义模型 创建自定义、独特的视觉分类器。使用该服务可识别常规模型无法理解的自定义视觉概念。
Core ML Watson Swift SDK 支持使用 Apple Core ML 进行脱机图像分类。一旦自定义模型准备就绪,那么便可以下载 Core ML 模型并用于脱机分类。Core ML 模型将下载到设备的文件系统上,支撑直接在设备上对图像进行脱机分类,无需进行 REST 调用。

架构

Visual Recognition 常见用法是从应用程序访问 Visual Recognition API。Watson 团队发布的 SDK 支持许多编程语言,因此您可在 Web 应用或移动应用程序中轻松使用 Visual Recognition。

考虑到正在处理的数据,Watson Visual Recognition 最常见的使用方法是通过移动应用。下面是使用 Core ML 的 iOS 应用的架构。如果创建一个非 iOS 应用程序,前提是相同的,只需删除 Core ML 组件即可。

架构

用例

Visual Recognition 服务可用于不同的应用程序和行业,比如:

  • 制造业:使用来自生产制造环境的图像来确保产品在装配线上正确放置。
  • 视觉审计:了解户外的卡车、飞机或风力发电机的视觉合规性或劣化情况,训练自定义模型来了解缺陷情况
  • 保险业:使用图像将索赔分为不同类别,以快速处理索赔

访问 Watson Visual Recognition

通过 Watson Studio 实现工具化

概述

Visual Recognition 服务的每个实例都随附一个 API 密钥,允许您通过创建 REST 调用来调用该 API。后文中将介绍 APISDK。使用 Visual Recognition 工具时,您将访问 Overview 选项卡,该选项卡允许用户选择预先训练的模型或者选择自定义模型。

概述

测试

当单击其中一个模型上的 Test 时,将打开该模型的首页。您可以在其中找到有关该模型的所有信息,例如,您拥有的图片数据集数量以及您上载的图片数量。下面我们通过一些随机图像来试用一下 General 模型。

测试

实现

在单击 Implementation 后,您将获得代码以帮助您通过代码来调用该模型。有 Java、Python、Node 和 Swift 的代码片段。

实现

SDK

为了以编程方式进行访问,Discovery 提供了对大量语言的支持。以下列表显示了现有开发者 SDK。

API

有关 API 的更多信息,请参阅 Visual Recognition API 文档

代码样本

以下 Python 代码样本显示了如何使用 pypi 中提供的 [Watson Python SDK] 来对图像进行分类。

>>> from ibm_watson import VisualRecognitionV3
>>> visual_recognition = VisualRecognitionV3(version="2018-03-19", iam_apikey="pFW...uhO")
>>> import json
>>> with open('./car.jpg', 'rb') as images_file:
...     classes = visual_recognition.classify(images_file).get_result()
...     print(json.dumps(classes, indent=2))
...
{
  "images": [
    {
      "classifiers": [
        {
          "classifier_id": "default",
          "name": "default",
          "classes": [
            {
              "class": "vehicle",
              "score": 0.776
            },
            {
              "class": "motor vehicle",
              "score": 0.512,
              "type_hierarchy": "/vehicle/wheeled vehicle/motor vehicle"
            },
            {
              "class": "ash grey color",
              "score": 0.96
            }
          ]
        }
      ],
      "image": "car.jpg"
    }
  ],
  "images_processed": 1,
  "custom_classes": 0
}

结束语

本文是学习路径的一部分,此学习路径旨在指导您完成基于 Watson Visual Recognition 服务构建功能齐全的移动应用的过程。在此学习路径中,您将有机会使用 Visual Recognition 高级功能,以及学习如何将 Visual Recognition 与其他 Watson 服务相集成。

让我们开始吧。下一步是编译一个预制 iOS 应用,用于访问内置和自定义 Watson Visual Recognition 模型。

本文翻译自:A beginner’s guide to setting up a visual recognition service(2019-07-17)