android - Google Android ML Kit 在对象检测期间仅提供类别
问题描述
我正在使用 android ML 套件进行对象检测。但它总是只给出对象的类别,而不给出实际的对象名称。有人能帮我吗?以下是我的代码
objectDetector.process(image)
.addOnSuccessListener(
new OnSuccessListener<List<DetectedObject>>() {
@Override
public void onSuccess(List<DetectedObject> detectedObjects) {
Toast.makeText(getApplicationContext(),"Hello Success", Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(),"Hello Length: " + detectedObjects.size(), Toast.LENGTH_SHORT).show();
for (DetectedObject detectedObject : detectedObjects) {
Rect boundingBox = detectedObject.getBoundingBox();
Integer trackingId = detectedObject.getTrackingId();
for (DetectedObject.Label label : detectedObject.getLabels()) {
String text = label.getText();
Toast.makeText(getApplicationContext(),"Hello: " + text, Toast.LENGTH_SHORT).show();
}
}
}
})
解决方案
ML Kit 的默认对象检测仅提供您提到的粗略分类。您可以使用自定义图像分类模型来提供细粒度的对象分类。请在此处查看文档:
https://developers.google.com/ml-kit/vision/object-detection/custom-models/android
您可以在 TensorFlow Hub 上获取自定义图像分类模型:
https://tfhub.dev/ml-kit/collections/image-classification/1
您可以使用的此类模型之一是:
https://tfhub.dev/google/lite-model/object_detection/mobile_object_labeler_v1/1
推荐阅读
- phabricator - Arcanist 如何结帐到特定 ID
- c# - 如何将 MVC 中的动态绑定代码从 .NET Framework 迁移到 .NET Core?
- spring-boot - 忽略 thymeleaf #date.format() 上的语言环境
- java - 有没有办法将数组分配给Java中的数组切片
- pycharm - PyCharm Python 没有运行单个单元测试
- python - 什么是转义字符和格式字符用于
- java - 如何在播放新歌之前停止媒体播放器?
- node.js - Gmail 无缘无故地剪辑 html 电子邮件
- python - 使用键值对更新 peewee 中的模型?
- java - 我无法从远程网络连接到 sql server