A. 项目描述

图像分类在机器学习界是一个众所周知的概念,从最简单的意义上讲,当你向计算机显示图像,它告诉你该图像包含什么时,就会发生图像分类。ML Kit 中的图像标记更进一步,以概率级别为你提供在图像中看到的事物的列表。

B. 开发工具

  • Android Studio Koala
  • Kotlin
  • Gradle 8.7

C. 代码设计

界面设计

Android AI应用开发:图像标记_android


界面上方是一个ImageView,用于呈现示例图片;用户点击中间按钮,调用图像标记处理代码;待处理完毕,将结果展示在下方的 TextView 中。


图像标记处理代码

当用户单击按钮时,此代码将从ML Kit创建一个图像标记器:

val labeler = ImageLabeling.getClient(ImageLabelerOptions.DEFAULT_OPTIONS)
  • 1.

 

然后从Bitmap(用于显示图像)创建一个输入图像对象:

val image = InputImage.fromBitmap(bitmap!!, 0)
  • 1.

 

labeler.process 调用标记器来处理图像,并向其中添加两个监听器。
如果处理成功,则将触发成功监听器,否则将触发失败监听器。
当图像标记器成功时,它将返回一个标签列表。这些标签有一个带有描述标签的文本的文本属性,以及一个值为0到1的置信度属性,其中包含标记项存在的概率。

labeler.process(image)
                .addOnSuccessListener { labels ->
                    // 任务执行成功
                    for (label in labels) {
                        val text = label.text
                        val confidence = label.confidence
                        outputText += "$text : $confidence\n"
                        //val index = label.index
                    }
                    txtOutput.text = outputText
                }
                .addOnFailureListener { e ->
                    // 任务执行失败
                    Log.e("MainActivity", e.toString())
                }
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

 

D. 项目演示

Android AI应用开发:图像标记_AI_02