ML kit人脸识别在IOS上无法工作

6
我正在开发一款进行面部识别的应用程序。其中一个步骤是检测用户的微笑。为此,我目前使用了谷歌的Ml Kit。该应用程序在Android平台上运行良好,但在iOS(如iPhone XR等)上运行时,它无法识别任何图像中的人脸。我已经按照如何集成iOS和Firebase的每个步骤进行了操作,并且它可以正常运行。
以下是我的代码。由于图像不包含任何面孔,因此长度始终为0。传递给参数的图像来自image_picker插件。
Future<Face> verifyFace(File thisImage) async {
  var beforeTime = new DateTime.now();
  final image = FirebaseVisionImage.fromFile(thisImage);
  final faceDetector = FirebaseVision.instance.faceDetector(
    FaceDetectorOptions(
      mode: FaceDetectorMode.accurate,
      enableClassification: true,
    ),
  );

  var processedImages = await faceDetector.processImage(image);
  print('Processing time: ' +
      DateTime.now().difference(beforeTime).inMilliseconds.toString());

  if (processedImages.length == 0) {
    throw new NoFacesDetectedException();
  } else if (processedImages.length == 1) {
    Face face = processedImages.first;
    if(face.smilingProbability == null){
      throw new LipsNotFoundException();
    }
    else {
      return face;
    }
  } else if (processedImages.length > 1) {
    throw new TooManyFacesDetectedException();
  }
}

如果有人有任何技巧或能告诉我我做错了什么,我将非常感激。

3个回答

4

我知道这是一个老问题,但我曾经也遇到了相同的问题。后来发现我只是忘记在podfile中添加pod 'Firebase/MLVisionFaceModel'


0

有很多地方都需要配置,所以我最好给你留下this视频(虽然你可能已经看过了),这样你就可以看到一些代码以及Matt Sullivan是如何制作你正在尝试做的东西的。

如果你已经看过,请告诉我,并请添加一个示例存储库,以便我可以查看你的确切代码。


我已经看过那个视频了,它做的和我发布的代码一样。正如所说的,它在Android上可以运行但是在IOS上不行。关于发布代码,由于我的公司政策,我无法这样做,但是检测人脸所使用的所有内容都在上面的代码中。 - Léo Moraes
你是否查看了ML Kit Vision API(包括人脸检测)的iOS快速入门示例:https://github.com/firebase/quickstart-ios/tree/master/mlvision (请注意,ML Kit不支持人脸识别,仅支持人脸检测。) - Dong Chen

0
据我所知,ML Kit面部检测在iOS上的表现非常糟糕。甚至似乎没有使用SDK的价值。
文档确实说脸部本身必须至少100x100像素。但在我的测试中,脸部本身需要至少700像素才能让SDK检测到脸部。
在Android上,即使在小图像尺寸(总共200x200像素)下,SDK的表现也非常出色。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接