65.9K
CodeProject 正在变化。 阅读更多。
Home

深度学习和 TensorFlow 在 Android 上的实时闪电检测:模型训练和导出

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2020年11月12日

CPOL

3分钟阅读

viewsIcon

5467

downloadIcon

90

在本文中,我们将通过使用 Teachable Machine 训练具有我们精选数据集的 TF 模型,并将训练好的模型导出为 FTLite 格式。

您可以按照下面给出的逐步截图教程进行操作,或者观看本文第一部分的附加视频。

图像项目

您可以将您的项目保存到 Google Drive,然后从那里打开它,以避免每次您想要训练模型时都加载图像。

转到 Teachable Machine 网页 并点击开始。或者,您可以直接转到模型训练页面并点击图像项目

删除类别 2

由于 Teachable Machine 为您提供两个类别,命名为 类别 1类别 2,请删除 类别 2。我们不需要它,因为我们不在处理分类问题。

  1. 重命名类别并上传图像

类别 1 重命名为 Lightning 或其他有意义的名称。当您生成模型时,此名称将用于类别标签中。

从您的数据集中上传图像。

培训

点击“训练模型”按钮。 我们建议您保留默认设置,除非您感到冒险… 或者确切地知道您想要实现什么。

Epochs = 50

一个 epoch 意味着训练数据集中的每个样本至少一次被推送到训练模型中。 如果您的 epoch 数设置为 50,这意味着您正在训练的模型将遍历整个训练数据集 50 次。 一般来说,这个数字越高,您的模型就越能更好地进行预测。 您可能需要调整这个数字,直到获得良好的预测结果,而不会让训练过程运行太长时间。

Batch size = 16

一个批次是在单次训练迭代中使用的一组样本。 例如,假设您有 80 个图像,并且您选择了 16 的批量大小。这意味着数据将被分成 5 个批次。 一旦所有 5 个批次都提供给模型,一个 epoch 将完成。 您可能不需要更改此参数。

Learning rate = 0.001

小心这个数字! 即使学习率值的微小差异也会对您的模型学习的效果产生重大影响。 如果您的学习率太低,模型训练将需要很长时间。 如果您的学习率太高,您的模型将无法收敛到您试图解决的问题的最佳可能网络。

导出模型

一旦您训练好您的模型,您需要导出它。 我们将在本文章系列的后面使用此导出的模型,因此请务必记下您保存它的位置。 点击“导出模型”按钮并下载 TFLite 模型。

您可以尝试预览 - 有两个或多个类别来训练和比较对象检测的百分比。 您可以使用您的网络摄像头或上传图像到预览以了解它是如何工作的。

Tensorflow Lite

点击下载我的模型按钮将 TF 模型转换为 Lite 版本,该版本与 Android Studio IDE 兼容。

在截图中,您可以看到可以处理一个或多个类别的 Android 示例。 这是一个很棒的教程,其中包含一个指向 GitHub 项目的链接。

  1. 模型转换

坐下来放松一下,您的模型正在转换为 TFLite。

完成了!

瞧! 您的 zip 文件已下载,其中包含模型和标签文件。 您已准备好进行 Android 开发。

请注意,您本可以以艰苦的方式达到这一点——使用“原始” Tensorflow Python、Keras 以及至少中级的 ML 和 DL 概念知识。 我们走了一条捷径。

在我们深入研究 Android 开发之前,请确保您已下载了 Android Studio 并安装了所需的依赖项,以及更新了 IDE 和相关的软件开发工具包 (SDK) 和构建文件。

后续步骤

下一篇文章中,我们将介绍 Android 环境中的基本 UI 设置。 敬请关注!

© . All rights reserved.