调查洪水淹没的聚居区,寻找屋顶上的幸存者并检测救生艇

本教程向您演示如何使用无人机航拍影像、Watson Studio 和 Watson Visual Recognition 来调查遭受洪水灾害的聚居区,寻找屋顶上的幸存者并检测救生艇。使用 GPS 和视觉识别,可以引导救生艇抵达洪水受害者的位置。

学习目标

完成本教程后,您将能够:

  • 在 IBM Cloud 中运行的 Watson Studio 中创建 Visual Recognition 模型
  • 从无人机捕获影像,创建 .zip 文件,并将这些文件添加到类中(已经为您提供了这些 .zip 文件)
  • 训练模型识别影像中的对象
  • 对识别出的对象进行评分

前提条件

免费试用 IBM Cloud

利用 IBM Cloud Lite 快速轻松地构建您的下一个应用程序。您的免费帐户从不过期,而且您会获得 256 MB 的 Cloud Foundry 运行时内存和包含 Kubernetes 集群的 2 GB 存储空间。了解所有细节并确定如何开始。

本教程可以通过使用 IBM Cloud Lite 帐户完成。

预估时间

您可以在 45 分钟以内完成此任务。

步骤

本教程涉及以下主要步骤:

步骤 1 – 了解无人机

无人机种类繁多,从玩具到工业级设备,无所不有。许多无人机现在都搭载摄像机,可存储航拍视频或将其传送至地面。通过使用直播视频帧,您可以对帧进行采样,并将影像发送至 Watson Visual Recognition 进行分类。

步骤 2 – 捕获影像

操纵无人机的有趣体验之一就是从独特的航拍视角捕获视频或图片。您可以使用无人机来捕获感兴趣对象的影像,以便用于训练 Visual Recognition 模型进行自主识别。

针对本教程,我为无人机记录下来的图片创建了四个 zip 文件。我们将利用这些影像来识别那些在飓风哈维、飓风卡特里娜、美国中西部和全球各地的洪水灾害中受到毁灭性洪灾影响的聚居区。以下影像将用作我们的训练集。

资料来源:这些影像是从各种互联网来源收集的。

第 3 步 – 使用 Watson Studio 创建和训练视觉识别模型

在本部分中,我们会创建一个 Watson Studio 帐户、创建一个项目,并创建 Watson Visual Recognition 模型来识别多个类别中的影像。

创建 Watson Studio 服务实例

  1. 在IBM Cloud 目录中搜索 Studio
  2. 单击 Watson Studio  服务磁贴。
  3. 单击 Create
  4. 在创建了 Watson Studio 服务之后,单击 Get Started  或访问 Watson Studio: https://dataplatform.cloud.ibm.com/
  5. 使用您的 IBM Cloud 帐户登录。
  6. 浏览介绍性教程,了解 Watson Studio。

创建一个 Watson Studio 项目

该项目是用于组织资源的工作区,例如,数据等资产、协作者以及 Notebook 和模型之类的分析工具。

创建一个新项目

  1. 单击 Create a Project
  2. 选择 Visual Recognition 磁贴,然后单击 Create Project
  3. 选择要进行视觉识别的区域。此时即创建了 Watson Visual Recognition 和 Cloud Object Storage 服务的新实例。
  4. 命名项目。将为新的服务实例预先填充一些内容。
  5. 单击 Create

此时即创建一个视觉识别模型。

重命名 Visual Recognition 模型

Default Custom Model名称不具有描述性,因此让我们来重新命名。

  1. 单击 铅笔 图标编辑名称。
  2. 将模型命名为 Flooding

向 Watson Visual Recognition 模型添加自定义分类

  1. 单击 +  号创建分类。
  2. 将这个类命名为 Flooded Neighborhood
  3. 单击 Create
  4. 再次单击 +  号添加第二个自定义分类。
  5. 将这个类命名为 Rooftop Survivors
  6. 单击 Create
  7. 再次单击 +  符号,添加第三个自定义分类。
  8. 将这个类命名为 Rescue boat
  9. 单击 Create

将 .zip 文件上传到您的 Watson Studio 项目中

这些预先准备好的 .zip 文件中包含了无人机影像。这些文件为:

  1. 单击 Browse 。此时将打开操作系统的文件对话框。
  2. 选择所有 .zip 文件。
  3. 将 .zip 文件上传到您的 Watson Studio 项目中。

将 .zip 文件拖动到自定义分类中

  1. 从右侧的导航面板中点选 rooftop-survivors.zip 文件,然后将其拖动到 Rooftop Survivors  分类中。

    这样会将 .zip 文件中的影像添加到 Rooftop Survivors* 分类中。

  2. 从右侧的导航面板中点选 flooded-neighborhood.zip 文件,然后将其拖动到 Flooded Neighborhood  类中。
  3. 从右侧的导航面板中点选 rescueboats.zip 文件,然后将其拖动到 Rescue boat  类中。
  4. 从右侧的导航面板中点选 suburban-Neighborhood.zip 文件,然后将其拖动到 Negative  类中。

训练 Watson Visual Recognition 自定义分类器

  1. 单击 Train Model
  2. 等待几分钟(大概 5 到 10 分钟),以便模型根据影像进行训练。
  3. 训练完模型后,单击 Click here  链接查看和测试自己的模型。

第 4 步 – 测试模型

  1. 训练完模型后,单击 Click here 链接或 Trained  链接查看和测试您的模型。
  2. 复查分类和模型详细信息。单击 Test  选项卡。
  3. 访问 drones-iot-visual-recognition GitHub 存储库的 测试数据目录 ,然后 下载 testdata.zip  文件。
  4. 与训练数据集不同,您需要将此测试数据 .zip 文件中的影像提取到本地硬盘驱动器中。
  5. 检查无人机拍摄的几个洪灾区影像。这些影像不是训练集的一部分,将用于验证视觉识别模型。
  6. 通过浏览来选择文件或将影像文件拖到 Test 页面中,将这些影像加载到 Test  页面。
  7. 检查 Watson Visual Recognition 自定义分类器返回的 置信度分数

    影像的置信度分数在 0 到 1 之间。分数越高表示该类在影像中被描绘的可能性越大。 不要把置信度分数看作是绝对真理的衡量标准,最好把它们看作是行动的阈值。置信度分数是主观的。 根据训练影像、评估影像和要分类的标准类型,置信度分数也有所不同。每个解决方案的开发者需要针对给定解决方案来确定哪些置信度分数是合适的阈值。

第 5 步 – 在您的应用程序中实现此模型

您可以使用各种编程语言(如 Java、Node.js、Python、Ruby 或 Core ML)将这个 Watson Visual Recognition 自定义分类器集成到应用程序中。

  1. 单击 Implementation  选项卡复查代码片段。
  2. 使用以下代码片段根据您的模型对影像进行分类。为了便于参考,这里提供了完整的API 规范。

在 IBM Cloud 仪表板中,搜索并打开 Watson Visual Recognition 实例。然后,导航到 Service Credentials 部分,复制 API 秘钥 (apikey),以便在下面的 curl 示例命令中使用。

  • API 端点
    https://gateway.watsonplatform.net/visual-recognition/api
  • 身份验证
    curl -u "apikey:{apikey}"
                "https://gateway.watsonplatform.net/visual-recognition/api/{method}"
  • 对影像进行分类 (GET)
    curl -u "apikey:{apikey}"
                "https://gateway.watsonplatform.net/visual-recognition/api/v3/classify?url=https://watson-developer-cloud.github.io/doc-tutorial-downloads/visual-recognition/fruitbowl.jpg&version=2018-03-19&classifier_ids=Flooding_418020421"
  • 对影像进行分类 (POST)
    curl -X POST -u "apikey:{apikey}"-F "images_file=@fruitbowl.jpg" -F "threshold=0.6" -F
                "classifier_ids=Flooding_418020421"
                "https://gateway.watsonplatform.net/visual-recognition/api/v3/classify?version=2018-03-19"

结束语

本教程向您介绍如何使用无人机航拍影像、Watson Studio 和 Watson Visual Recognition 来调查遭受洪水灾害的聚居区,寻找屋顶上的幸存者并探测救生艇。

您已了解了如何在运行于 IBM Cloud 中的 Watson Studio 中创建视觉识别模型,如何从无人机中获取影像并将这些影像的 .zip 文件添加到类中,以及如何训练模型来识别影像中的对象。

参考资源

本文翻译自: Survey flooded neighborhoods to identify survivors on rooftops and detect rescue boats (2019-05-10)