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

概述

图像分割器(Image Segmenter)将图像文件作为输入,然后返回分割图,其中包含输入图像中每个像素的预测类别。

此模型仓库包含在 PASCAL VOC 2012 上训练的 2 个模型。一个模型使用 xception 架构进行了训练,可以生成非常准确的结果,但运行起来需要数秒时间,另一个模型则在 MobileNetV2 上进行了训练,速度更快,但准确性较低。您可以指定启动 Docker 镜像时希望使用的模型。查看下文了解更多详细信息。

对于输入图像中的每个像素,分割图会返回一个介于 0 到 20 之间的整数,该整数与以下一个标签相对应。第一个嵌套数组对应图像中的第一行像素,该数组中的第一元素对应图像左上角的像素。注意:图像将会调整大小,分割图引用的是调整后的图像而不是原始输入图像中的像素。

模型元数据

领域 应用 行业 框架 训练数据 输入数据格式
图像和视频 语义图像分割 多种 Tensorflow VOC2012 ~10k 图像 图像文件

参考资料

许可

组件 许可 链接
模型 GitHub 代码仓库 Apache 2.0 许可
模型代码(第三方) Apache 2.0 TensorFlow 模型仓库
模型权重 Apache 2.0 TensorFlow 模型仓库
测试资产 Apache 2.0 样本 README

可用于部署此模型的选项

  • 从 Dockerhub 部署:

    docker run -it -p 5000:5000 codait/max-image-segmenter
    
  • 在 Red Hat OpenShift 上部署:

    遵照本教程中有关 OpenShift Web 控制台或 OpenShift Container Platform CLI 的操作说明,并将 codait/max-image-segmenter 指定为图像名称。

  • 在 Kuberneters 上部署:

    kubectl apply -f https://raw.githubusercontent.com/IBM/MAX-Image-Segmenter/master/max-image-segmenter.yaml
    

    有关如何将此 MAX 模型部署到 IBM Cloud 上的生产环境中的更详细教程,可以在此处找到。

  • 本地部署:遵照 GitHub 上的模型 README 中的说明进行操作

用法示例

您可以通过以下方式测试或使用此模型

使用 cURL 测试该模型

部署之后,您可以通过命令行测试该模型。例如,如果在本地运行:

curl -F "image=@samples/stc.jpg" -XPOST http://localhost:5000/model/predict
{
  "status": "ok",
  "image_size": [
    256,
    128
  ],
  "seg_map": [
    [
      0,
      0,
      0,
      ...,
      15,
      15,
      15,
      ...,
      0,
      0,
      0
    ],
    ...,
    [
      0,
      0,
      0,
      ...,
      15,
      15,
      15,
      ...,
      0,
      0,
      0
    ]
  ]
}

在 Node-RED 流中测试该模型

完成 node-red-contrib-model-asset-exchange 模块设置操作说明,并导入 image-segmenter 开始流程。

在 CodePen 中测试该模型

了解在 CodePen 中如何将图像发送到该模型以及如何呈现结果。

在无服务器应用中测试该模型

您可以通过遵照在 IBM Cloud Functions 中利用深度学习教程中的操作说明,在无服务器应用程序中使用该模型。

可用于训练此模型的选项

可使用以下方法训练此模型:

链接

资源和贡献

如果您有兴趣为 Model Asset Exchange 项目做贡献或有任何疑问,按照此处的说明进行操作。

本文翻译自:Image Segmenter(2018-09-21)