/** Cloud Landmark Detector Demo. */
public class CloudLandmarkRecognitionProcessor
extends VisionProcessorBase> {
private static final String TAG = "CloudLmkRecProc";
private final FirebaseVisionCloudLandmarkDetector detector;
public CloudLandmarkRecognitionProcessor() {
super();
FirebaseVisionCloudDetectorOptions options =
new FirebaseVisionCloudDetectorOptions.Builder()
.setMaxResults(10)
.setModelType(FirebaseVisionCloudDetectorOptions.STABLE_MODEL)
.build();
detector = FirebaseVision.getInstance().getVisionCloudLandmarkDetector(options);
}
@Override
protected Task> detectInImage(FirebaseVisionImage image) {
return detector.detectInImage(image);
}
@Override
protected void onSuccess(
@NonNull List landmarks,
@NonNull FrameMetadata frameMetadata,
@NonNull GraphicOverlay graphicOverlay) {
graphicOverlay.clear();
Log.d(TAG, "cloud landmark size: " + landmarks.size());
for (int i = 0; i < landmarks.size(); ++i) {
FirebaseVisionCloudLandmark landmark = landmarks.get(i);
Log.d(TAG, "cloud landmark: " + landmark);
CloudLandmarkGraphic cloudLandmarkGraphic = new CloudLandmarkGraphic(graphicOverlay);
graphicOverlay.add(cloudLandmarkGraphic);
cloudLandmarkGraphic.updateLandmark(landmark);
}
}
@Override
protected void onFailure(@NonNull Exception e) {
Log.e(TAG, "Cloud Landmark detection failed " + e);
}
}