使用FireBase机器学习套件的新功能autoML搭建训练发布模型,并在Android上使用进行图片分类

本文详述如何使用Firebase的AutoML功能在Android项目中搭建、训练图像分类模型,并介绍将模型集成到Android应用的过程,包括下载数据集、上传训练、发布模型以及在应用中使用远程和本地模型进行图片分类。
摘要由CSDN通过智能技术生成

使用FireBase机器学习套件的新功能autoML搭建训练发布模型,并在Android上使用进行图片分类

简介

AutoML Vision Edge 为 Firebase 的一项新功能,在firebase控制台,提供一组图片和相应的标签,能够帮助我们训练模型,并发布,之后我们就可以在安卓应用中使用该模型为设备端图片加标签,支持远程管理模型,多个应用同时使用。接下来这篇博客,就是主要实现:
搭建 Android Studio的 firebase 开发环境、上传、训练数据集、发布模型,并在Android上使用进行图片分类。

将 Firebase 添加 Android 项目

要想使用FireBase的机器学习套件(ML Kit),要先把FireBase添加到Android项目中。

项目环境

  • 需要安装 3.5 以上版本的 Android Studio。
  • 在新建项目的时候,需要确保 Android 应用符合以下条件:
    • 设置API 最低版本位 16 以上。
    • 使用 Gradle 4.1 或更高版本。

使用 Firebase 控制台添加 Firebase

将 Firebase 添加到应用,需要在 Firebase 控制台中和打开的 Android 项目中执行若干任务(例如,从控制台下载 Firebase 配置文件,然后将配置文件移动到 Android 项目中)。

第一步:创建 Firebase 项目

您必须先创建一个 Firebase 项目,并将其关联到您的 Android 应用,然后才能将 Firebase 添加到您的 Android 应用。

第二步:在 Firebase 中注册应用

拥有 Firebase 项目后,就可以向其中添加 Android 应用了。

在Firebase刚刚建好的项目中添加应用,点击添加中间的添加安卓应用按钮就行。

  1. Android 软件包名称字段中输入您的AppId。

    确保输入应用实际使用的 ID。在向 Firebase 项目注册应用后,将无法添加或修改此值。
    可以在项目的app/build中找到:

  2. (可选)根据设置工作流的提示输入其他应用信息。

    别名是方便内部使用的标识符,只有您能在 Firebase 控制台中看到。

  3. 点击注册应用

第三步:添加 Firebase 配置文件
  1. 将 Firebase Android 配置文件添加到您的应用:

    1. 点击下载 google-services.json 以获取 Firebase Android 配置文件 (google-services.json)。

      • 我们可以随时再次下载 Firebase Android 配置文件。
      • 请确保该配置文件名未附加其他字符,如 (2)
    2. 接着将配置文件移动到应用的模块(应用级)目录中。

    注意:该 Firebase 配置文件包含项目的唯一、非机密标识符。

  2. 要在 Android 应用中启用 Firebase 产品,请将 Google 服务插件添加到 Gradle 文件中。

    1. 在根级(项目级)Gradle 文件 (build.gradle) 中添加相应规则,以包含 Google 服务插件。此外,请确认您是否拥有 Google 的 Maven 代码库。

      buildscript {
      
        repositories {
          //  // 添加下面一行:
          google()  // Google's Maven repository
        }
      
        dependencies {
          // ...
      
          // 添加下面一行:
          classpath 'com.google.gms:google-services:4.2.0'  // Google Services plugin
        }
      }
      
      allprojects {
        // ...
      
        repositories {
          // 添加下面一行:
          google()  // Google's Maven repository
          // ...
        }
      }
      
    2. 在Gradle 文件(通常是 app/build.gradle)中,在文件末尾添加一行内容。

      apply plugin: 'com.android.application'
      
      android {
        // ...
      }
      
      // 添加以下内容:
      apply plugin: 'com.google.gms.google-services'  // Google Play services Gradle plugin
      
第四步:将 Firebase SDK 添加到APP

在(应用级)Gradle 文件(通常是 app/build.gradle)中,添加核心 Firebase SDK 的依赖项:

buildscript {
  repositories {
    // Check that you have the following line (if not, add it):
    google()  // Google's Maven repository
  }
  dependencies {
    ...
    // Add this line
    classpath 'com.google.gms:google-services:4.3.3'
  }
}

allprojects {
  ...
  repositories {
    // Check that you have the following line (if not, add it):
    google()  // Google's Maven repository
    ...
  }
}

应用级 build.gradle(<项目>/<应用模块>/build.gradle):

apply plugin: 'com.android.application'
// Add this line
apply plugin: 'com.google.gms.google-services'

dependencies {
  // add the Firebase SDK for Google Analytics
  implementation 'com.google.firebase:firebase-analytics:17.2.2'
  // add SDKs for any other desired Firebase products
  // https://firebase.google.com/docs/android/setup#available-libraries
}

最后,按 IDE 中显示的栏中的“立即同步”:

  1. 同步您的应用以确保所有依赖项都具有必要的版本。

  2. 运行应用,向 Firebase 发送已成功集成 Firebase 的验证信息。

    设备日志将显示说明初始化已完成的 Firebase 验证信息。如果我们是在具有网络访问权限的模拟器上运行应用,则 Firebase 控制台会通知说应用连接已完成。

使用 “ML KIT” 的 autoML 搭建训练发布模型

第一步:下载数据集:

我这里使用的是使用 TensorFlow 的 flower-image 数据集,创建图像分类或标签模型,在训练了该模型后,将其用于应用程序中的设备上图像标签。

这个数据集又5种标签的雏菊,蒲公英,玫瑰,向日葵和郁金香花,这样后面的 app 就可以使用模型标识图像的标签之一。

下载花卉图像数据集。

第二步:上传和训练数据集:

转到 Firebase 控制台-> Machine Learning,然后单击 “AutoML” 。

现在,单击添加数据集

给数据集命名并选择第二个选项,然后单击继续。

现在,单击浏览文件,然后为花朵图像数据集选择一个.zip文件,该文件已在前面的第一步中下载。

现在,等待所有三个步骤都已完成。

之后,点击训练模型

现在选择第三个选项(高精度),然后单击开始训练。

现在,等待模型训练完成。

第三步:使用训练完成的模型:

在模型列表中单击第一个模型,并在模型名称上记下我们以后需要的名称

现在,就可以使用模型了

先查看一下刚刚训练完的模型的评估结果:

在 Android Studio 上编写 app 使用该模型

我们可以通过2种方式使用此模型
(1)远程(发布到firebase并在运行时从您的应用程序远程加载)
(2)本地(与应用程序下载并捆绑)

首先,通过单击“发布”按钮来发布模型,然后单击“下载”并将zip文件保存在所需的位置。

之后,解压缩下载的zip文件,然后复制所有三个文件。

现在转到Android Studio,然后

创建 Assets 文件夹绑定本地模型

在应用程序上单击鼠标右键,选择“NEW”->“Folder”->“Assets”

然后单击完成。
现在,通过右键单击assss-> New-> Directory在assets文件夹中创建目录

给出一个名字,例如model,然后点击回车。
现在,将所有三个复制的文件粘贴到此文件夹中。

修改 build.gradle 以使用模型

将以下内容添加到应用的build.gradle文件中,以确保Gradle在构建应用时不会压缩模型文件:

android {
    // ...
    aaptOptions {
        noCompress“ tflite”
    }
}

如下所示:

现在,在应用程序级别build.gradle中为ML Kit Android库添加以下两个依赖项:

implementation 'com.google.firebase:firebase-ml-vision:24.0.1' 
implementation 'com.google.firebase:firebase-ml-vision-automl:18.0.3'

现在添加一个Button,ImageView和TextView来选择图像,显示图像并在活动布局中显示带有谓词百分比的标签。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/timg">

    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/selectImage"
        android:layout_marginBottom="50dp" />

    <Button
        android:id="@+id/selectImage"
        android:layout_width="136dp"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:background="@color/orange_normal"
        android:text="Select Image !"
        android:textColor="@color/colorWite" />

    <TextView
        android:id=
使用Firebase应用内消息传递可以让你的Android应用实现实时通信和消息推送功能。下面是一些步骤来帮助你在Android应用上使用Firebase应用内消息传递: 1. 首先,在Firebase控制台中创建一个Firebase项目,并在项目设置中启用Firebase Cloud Messaging服务。 2. 在你的Android应用中,添加Firebase Core和Firebase Cloud Messaging依赖项。你可以通过Gradle文件来添加这些依赖项,例如: ``` implementation 'com.google.firebase:firebase-core:17.2.1' implementation 'com.google.firebase:firebase-messaging:20.0.0' ``` 3. 在你的AndroidManifest.xml文件中添加以下代码以注册Firebase Cloud Messaging服务: ``` <service android:name=".MyFirebaseMessagingService" android:exported="false"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service> ``` 4. 创建一个MyFirebaseMessagingService类并继承FirebaseMessagingService。在这个类中,你可以处理接收到的消息并执行相应的操作,例如: ``` public class MyFirebaseMessagingService extends FirebaseMessagingService { @Override public void onMessageReceived(RemoteMessage remoteMessage) { // 处理接收到的消息 String message = remoteMessage.getData().get("message"); // 执行相应的操作 } } ``` 5. 最后,在你的应用中发送消息,你可以使用Firebase Cloud Messaging API来发送消息,例如: ``` FirebaseMessaging.getInstance().send(new RemoteMessage.Builder("SENDER_ID" + "@gcm.googleapis.com") .setMessageId(Integer.toString(msgId.incrementAndGet())) .addData("message", "这是一条测试消息") .build()); ``` 以上是在Android应用上使用Firebase应用内消息传递的一些基本步骤,你可以根据你的需求进行相关的配置和定制化。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值