调查洪水淹没的聚居区,寻找屋顶上的幸存者并检测救生艇
本教程向您演示如何使用无人机航拍影像、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 帐户完成。
- 创建一个 IBM Cloud 帐户
- 登录到IBM Cloud
预估时间
您可以在 45 分钟以内完成此任务。
步骤
本教程涉及以下主要步骤:
步骤 1 – 了解无人机
无人机种类繁多,从玩具到工业级设备,无所不有。许多无人机现在都搭载摄像机,可存储航拍视频或将其传送至地面。通过使用直播视频帧,您可以对帧进行采样,并将影像发送至 Watson Visual Recognition 进行分类。
- 口袋里的无人机玩具
- 特洛 – 使用 Node-RED 来控制特洛无人机
- 业余爱好者的无人机
- 商用无人机
步骤 2 – 捕获影像
操纵无人机的有趣体验之一就是从独特的航拍视角捕获视频或图片。您可以使用无人机来捕获感兴趣对象的影像,以便用于训练 Visual Recognition 模型进行自主识别。
针对本教程,我为无人机记录下来的图片创建了四个 zip 文件。我们将利用这些影像来识别那些在飓风哈维、飓风卡特里娜、美国中西部和全球各地的洪水灾害中受到毁灭性洪灾影响的聚居区。以下影像将用作我们的训练集。
- 遭受洪灾的聚居区的无人机航空影像 – flooded-neighborhood.zip
- 房屋被淹没,幸存者站在屋顶的无人机航空影像 – rooftop-survivors.zip
- 行驶在洪灾淹没的地域中的救生船的无人机航空影像 – rescueboats.zip
- 未受影响的郊区聚居区的无人机航空影像,这些影像将用于负面分类 – suburban-neighborhood.zip
资料来源:这些影像是从各种互联网来源收集的。
第 3 步 – 使用 Watson Studio 创建和训练视觉识别模型
在本部分中,我们会创建一个 Watson Studio 帐户、创建一个项目,并创建 Watson Visual Recognition 模型来识别多个类别中的影像。
创建 Watson Studio 服务实例
- 在IBM Cloud 目录中搜索 Studio 。
- 单击 Watson Studio 服务磁贴。
- 单击 Create 。
- 在创建了 Watson Studio 服务之后,单击 Get Started 或访问 Watson Studio: https://dataplatform.cloud.ibm.com/ 。
- 使用您的 IBM Cloud 帐户登录。
- 浏览介绍性教程,了解 Watson Studio。
创建一个 Watson Studio 项目
该项目是用于组织资源的工作区,例如,数据等资产、协作者以及 Notebook 和模型之类的分析工具。
创建一个新项目
- 单击 Create a Project 。
- 选择 Visual Recognition 磁贴,然后单击 Create Project 。
- 选择要进行视觉识别的区域。此时即创建了 Watson Visual Recognition 和 Cloud Object Storage 服务的新实例。
- 命名项目。将为新的服务实例预先填充一些内容。
- 单击 Create 。
此时即创建一个视觉识别模型。
重命名 Visual Recognition 模型
Default Custom Model名称不具有描述性,因此让我们来重新命名。
- 单击 铅笔 图标编辑名称。
- 将模型命名为 Flooding 。
向 Watson Visual Recognition 模型添加自定义分类
- 单击 + 号创建分类。
- 将这个类命名为 Flooded Neighborhood 。
- 单击 Create 。
- 再次单击 + 号添加第二个自定义分类。
- 将这个类命名为 Rooftop Survivors 。
- 单击 Create 。
- 再次单击 + 符号,添加第三个自定义分类。
- 将这个类命名为 Rescue boat 。
- 单击 Create 。
将 .zip 文件上传到您的 Watson Studio 项目中
这些预先准备好的 .zip 文件中包含了无人机影像。这些文件为:
- 单击 Browse 。此时将打开操作系统的文件对话框。
- 选择所有 .zip 文件。
- 将 .zip 文件上传到您的 Watson Studio 项目中。
将 .zip 文件拖动到自定义分类中
- 从右侧的导航面板中点选 rooftop-survivors.zip 文件,然后将其拖动到 Rooftop Survivors 分类中。
这样会将 .zip 文件中的影像添加到 Rooftop Survivors* 分类中。
- 从右侧的导航面板中点选 flooded-neighborhood.zip 文件,然后将其拖动到 Flooded Neighborhood 类中。
- 从右侧的导航面板中点选 rescueboats.zip 文件,然后将其拖动到 Rescue boat 类中。
- 从右侧的导航面板中点选 suburban-Neighborhood.zip 文件,然后将其拖动到 Negative 类中。
训练 Watson Visual Recognition 自定义分类器
- 单击 Train Model 。
- 等待几分钟(大概 5 到 10 分钟),以便模型根据影像进行训练。
- 训练完模型后,单击 Click here 链接查看和测试自己的模型。
第 4 步 – 测试模型
- 训练完模型后,单击 Click here 链接或 Trained 链接查看和测试您的模型。
- 复查分类和模型详细信息。单击 Test 选项卡。
- 访问 drones-iot-visual-recognition GitHub 存储库的 测试数据目录 ,然后 下载 testdata.zip 文件。
- 与训练数据集不同,您需要将此测试数据 .zip 文件中的影像提取到本地硬盘驱动器中。
- 检查无人机拍摄的几个洪灾区影像。这些影像不是训练集的一部分,将用于验证视觉识别模型。
- 通过浏览来选择文件或将影像文件拖到 Test 页面中,将这些影像加载到 Test 页面。
- 检查 Watson Visual Recognition 自定义分类器返回的 置信度分数
。
影像的置信度分数在 0 到 1 之间。分数越高表示该类在影像中被描绘的可能性越大。 不要把置信度分数看作是绝对真理的衡量标准,最好把它们看作是行动的阈值。置信度分数是主观的。 根据训练影像、评估影像和要分类的标准类型,置信度分数也有所不同。每个解决方案的开发者需要针对给定解决方案来确定哪些置信度分数是合适的阈值。
第 5 步 – 在您的应用程序中实现此模型
您可以使用各种编程语言(如 Java、Node.js、Python、Ruby 或 Core ML)将这个 Watson Visual Recognition 自定义分类器集成到应用程序中。
- 单击 Implementation 选项卡复查代码片段。
- 使用以下代码片段根据您的模型对影像进行分类。为了便于参考,这里提供了完整的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 文件添加到类中,以及如何训练模型来识别影像中的对象。
参考资源
- Code Pattern: 使用无人机自动进行灾后检查以促进离线通信
- Code Pattern: 使用 Deep Learning as a Service 创建一个用于图像分类的预测系统
本文翻译自: Survey flooded neighborhoods to identify survivors on rooftops and detect rescue boats (2019-05-10)