首页 > 解决方案 > 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();
                                        }
                                    }
                                }
                            })

标签: androidobject-detectiongoogle-mlkit

解决方案


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


推荐阅读