/** Cloud Label Detector Demo. */
public class CloudImageLabelingProcessor
extends VisionProcessorBase> {
private static final String TAG = "CloudImgLabelProc";
private final FirebaseVisionCloudLabelDetector detector;
public CloudImageLabelingProcessor() {
FirebaseVisionCloudDetectorOptions options =
new FirebaseVisionCloudDetectorOptions.Builder()
.setMaxResults(10)
.setModelType(FirebaseVisionCloudDetectorOptions.STABLE_MODEL)
.build();
detector = FirebaseVision.getInstance().getVisionCloudLabelDetector(options);
}
@Override
protected Task> detectInImage(FirebaseVisionImage image) {
return detector.detectInImage(image);
}
@Override
protected void onSuccess(
@NonNull List labels,
@NonNull FrameMetadata frameMetadata,
@NonNull GraphicOverlay graphicOverlay) {
graphicOverlay.clear();
Log.d(TAG, "cloud label size: " + labels.size());
List labelsStr = new ArrayList<>();
for (int i = 0; i < labels.size(); ++i) {
FirebaseVisionCloudLabel label = labels.get(i);
Log.d(TAG, "cloud label: " + label);
if (label.getLabel() != null) {
labelsStr.add((label.getLabel()));
}
}
CloudLabelGraphic cloudLabelGraphic = new CloudLabelGraphic(graphicOverlay);
graphicOverlay.add(cloudLabelGraphic);
cloudLabelGraphic.updateLabel(labelsStr);
}
@Override
protected void onFailure(@NonNull Exception e) {
Log.e(TAG, "Cloud Label detection failed " + e);
}
}