我正在尝试Mobile Vision API的面部检测。我正在尝试获取面部标志的轮廓。但是在构建FaceDetector时,却给了我这个例外:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.camera2tut, PID: 27106
    java.lang.IllegalArgumentException: Invalid build options


而且FaceDetector告诉我“非SELFIE模式不支持轮廓”。这是我设置FaceDetector的代码:

import com.google.android.gms.vision.face.FaceDetector;
[...]
mFaceDetector = new FaceDetector.Builder(this)
            .setTrackingEnabled(true)
            .setMinFaceSize((float)0.4)
            .setLandmarkType(FaceDetector.CONTOUR_LANDMARKS)
            .setClassificationType(FaceDetector.NO_CLASSIFICATIONS)
            .setProminentFaceOnly(true)
            .setMode(FaceDetector.ACCURATE_MODE)
            .build();


对于FaceDetector.Builder,没有设置“自拍照模式”的选项:
https://developers.google.com/android/reference/com/google/android/gms/vision/face/FaceDetector.Builder

在FaceDetector中,Alhouth具有常量SELFIE_MODE:
https://developers.google.com/android/reference/com/google/android/gms/vision/face/FaceDetector

从此常量的描述来看,.setProminentFaceOnly(true)似乎最接近自拍模式,但似乎并未启用它。

如果仅使用.setLandmarkType(FaceDetector.ALL_LANDMARKS)检测地标,则可以构建检测器。但是,如何使用这种不祥的“自拍照”模式,如何获得轮廓?

最佳答案

你有没有尝试过

.setMode(FaceDetector.SELFIE_MODE)

10-05 18:02