协作的力量!多个 Google 工具接力构建农作物病害监测应用

文 / Google TensorFlow 开发技术推广工程师 Laurence Moroney

近日,来自世界各地的数千名开发者齐聚 DevFest 2020,参与由社区主导的大型 Google 技术学习活动(国内有 40 场活动,找到属于你的 DevFest,查看详情 )。

今年的 DevFest 上,Google 和社区中的一些熟悉面孔共同展示了如何使用 Google 开发者工具从零开始,在几分钟内构建一个可检测农作物病害的应用。这一示例介绍了开发者可以如何利用多个 Google 工具解决现实问题。点击观看完整演示视频,或阅读本文了解更多信息。

创建 Android 应用

Android 开发技术推广工程师 Chet Haase 先演示了如何创建一款可识别植物信息的 Android 应用。为此,他需要摄像头功能以及使用机器学习进行推理。

应用由 Kotlin 编写,使用 CameraX 拍照并利用 MLKit 进行设备端机器学习分析。核心功能涉及拍照、分析和显示结果。

显示应用如何拍照、分析并显示结果的代码

显示应用如何拍照、分析并显示结果的代码

MLKIt 通过 ImageLabeler 对象可以轻松识别图像内容,因此 Chet 只需要从 CameraX 中抓取一帧图像并直接使用。成功完成该操作后,出现一个 ImageLabel 集合,我们将其转换为文本字符串并显示一个带有结果的消息框。

应用检测植物图像的演示

应用检测植物图像的演示

设置机器学习模型

为了更深入探讨,TensorFlow 的 Google 开发技术推广工程师 Gus Martins 向我们展示了如何设置机器学习模型来检测豆类植物中的病害。

Gus 使用云端托管的开发工具 Google ColabTensorFlow.Hub 上托管的现有 ML 模型进行迁移学习。

然后,他将所有内容放在一起,并使用 TensorFlow Lite Model Maker 工具在我们的自定义数据集上训练模型。

构建 Android 应用进行鉴定和分类

Gus 创建了 Android Studio 的所有构建和识别模型所需的元数据。这些元数据可以使用 TensorFlow Lite 在模型上运行推理时进行使用。为此,Android 的 Google 开发者专家 Annyce Davis 将应用进行更新来使用 TensorFlow Lite。

她用模型来推断摄像头拍摄的豆叶是否患病。

现在,应用运行后,应用会告诉我们豆子是否健康;如果不健康,则可以给出相应的诊断。

检测植物是否健康的应用演示

检测植物是否健康的应用演示

将 demo 转换为应用

这只是一个原始的演示。要把它转化为一个成功的应用,Firebase 的 Google 开发技术推广工程师 Todd Kerpelman 建议使用 Android Studio 的 Firebase 插件添加一些分析,让我们可以准确了解用户是如何与应用互动的。

数据将显示在 Firebase 信息中心中,有很多方法可以获取这些数据。其中,一种非常有趣的方法是使用 StreamView 实时查看分析结果。

Firebase Streamview 允许您查看实时分析

Firebase Streamview 允许您查看实时分析

例如,使用 Firebase,您还可以将 A/B 测试添加到应用中,为用户选择最佳模型;通过远程配置及时更新应用;为用户提供便捷的应用登录途径,以及更多功能!

用户体验设计师和设计技术推广工程师 Di Dang 告诉我们,如果要把应用产品化,应时刻注意我们的 AI 设计决策对用户的影响

例如,我们需要考虑显示置信区间是否和/或如何合理。或者,考虑如何设计用户使用体验,从而影响用户对 ML 应用的功能和局限的预期,这对于应用的采用和参与度至关重要。有关 AI 设计决策的更多指导,请参阅 People + AI Guidebook

您可以在 People + AI Guidebook 中详细了解 AI 中的设计决策

您可以在 People + AI Guidebook 中详细了解 AI 中的设计决策

此用例侧重于植物病害,但对于此例以及其他情况,当基于 ML 的预测涉及人或社区,我们绝对需要考虑负责任的 AI 主题,例如隐私和公平。此处 了解详情。

打造渐进式 Web 应用

Web 开发技术推广工程师 Paul Kinlan 提醒我们不要忘记网络!

Paul 向我们展示了如何构建允许用户在所有平台安装应用的 PWA。它可以将摄像头与 TensorFlow.js 结合,集成机器学习,打造在浏览器中运行的惊人体验,无需额外下载。

在设置标准布局的项目(使用 HTML 文件、清单和 Service Worker 将其设置为 PWA)和一个包含我们 TensorFlow 配置的数据文件夹后,等待所有 JS 和 CSS 加载完毕,接着初始化应用。然后,我们使用辅助对象设置摄像头,并加载 TensorFlow 模型。激活后,即可设置界面。

PWA 现已准备就绪,等待我们使用。

PWA 告诉我们植物是否健康 - 而无需下载应用!

PWA 告诉我们植物是否健康 - 而无需下载应用!

开源的重要性

最后,TensorFlow 的 Google 开发者专家Women Techmakers 负责人 Puuja Rajan 提醒我们,我们也可能希望开源此项目,开发者可以通过提交 issue 或 PR 来改进项目、优化甚至提供额外功能的建议。这是将您的贡献展现给更多人的绝佳方式。您可以在 此处 详细了解如何启动开源项目。

事实上,我们将此项目开源,您可以查看 Github

您已经拥有一个构建真实应用的平台,结合 Android Studio、CameraX、Jetpack、ML Kit、Colab、TensorFlow、Firebase、Chrome 和 Google Cloud 工具,可以大幅提高生产力。

这并不是一个最终成品,我们只想在这里向您展示,如何使用 Google 开发者工具 将一个最小可行性产品和完成路线图结合在一起。

选择离您最近的 DevFest 加入我们的线上/线下活动。在 GDG 官网 注册。

原文:Learn the steps to build an app that detects crop diseases
中文:TensorFlow 公众号