我首先要通过自拍照传递同一个人的图像,而另一张图片是我正在转换为File数据类型的用户的现有个人资料图片,因为无法直接从flutter中的URL中检测到面部。即使当两个面孔都相同时,我也会获得不同的面孔ID,例如打印语句中的01。解决该问题的解决方案是什么?

Future verifyYourProfile(File image) async {

    final faceDetector = FirebaseVision.instance.faceDetector(
      FaceDetectorOptions(
          enableTracking: true, mode: FaceDetectorMode.accurate),
    );

    // Assign face ID to selfie from incoming File image called from App.
    final selfieVisionImage = FirebaseVisionImage.fromFile(image);
    final selfieFace = await faceDetector.processImage(selfieVisionImage);
    final int selfieId = selfieFace[0].trackingId;
    print(selfieId);

    // Assign face ID to profile Picture.

    // Convert URL Image to File data type
    final response = await get(_imageUrl);
    final documentDirectory = await getApplicationDocumentsDirectory();
    File file = new File(join(documentDirectory.path, 'verifyImage.png'));
    file.writeAsBytesSync(response.bodyBytes);

    print('Detecting second face');
    // Detect the face.
    final faceDetector2 = FirebaseVision.instance.faceDetector(
      FaceDetectorOptions(
          enableTracking: true, mode: FaceDetectorMode.accurate),
    );
    final profilePicVisionImage = FirebaseVisionImage.fromFile(file);
    final profilePicFace =
        await faceDetector2.processImage(profilePicVisionImage);
    final int profilePicId = profilePicFace[0].trackingId;
    print(profilePicId);
  }

最佳答案

感谢您的提问!

人脸检测不是为人脸识别而设计的,它不会告诉您这两个人脸是否属于同一个人。 face tracking ID可以在流模式下使用,它可以帮助在连续帧中跟踪同一张脸。

关于firebase - Firebase ML套件即使在Flutter应用中也为相同的面部提供了不同的面部跟踪ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61226949/

10-11 17:19