如何在抖动中实现实时人脸解锁功能

时间:2019-07-13 11:16:30

标签: android ios flutter

我需要在我的Flutter应用中实现实时人脸解锁功能,请提出最好的实现方法,我也了解了ML_kit(firebase)和openCV,但都支持人脸检测,我正在寻找人脸识别。

请为Flutter建议任何库或SDK。

1 个答案:

答案 0 :(得分:0)

如果您只想在iOS上使用此功能,并且使用的是iPhone X,则可以使用local_auth软件包。

您可以通过以下方式使用它:

initializeFaceRecognition() async {
    if (Platform.isIOS) {
      bool canCheckBiometrics = await _localAuth.canCheckBiometrics;
      if (!canCheckBiometrics) {
        setState(() => _authenticationResult = 'This device does not support biometrics');
        return;
      }
      List<BiometricType> availableBiometrics = await _localAuth.getAvailableBiometrics();
      if (!availableBiometrics.contains(BiometricType.face)) {
        setState(() => _authenticationResult = 'This device does not support face recognition');
        return;
      }
      bool didAuthenticate = await _localAuth.authenticateWithBiometrics(localizedReason: 'Authenticate with face recognition', useErrorDialogs: true);
      if (didAuthenticate) {
        setState(() => _authenticationResult = 'Authenticated');
      } else {
        setState(() => _authenticationResult = 'Not authenticated');
      }
    } else {
      setState(() => _authenticationResult = 'Not compatible platform');
    }
  }

现在,如果要在Android上使用它,那将是不可能的,因为人脸识别并没有像指纹一样暴露在API上。

在这种情况下,您应该创建自己的ML模型和用于面部识别的API或使用Face API from Azure之类的API(而且这不是实时的,您必须上传图片)。但是在这一点上,这应该是另一个问题,因为它不在Flutter应用程序的范围内。

我发现了Trueface API,该API显然可以让您从实时流中检测人脸。也许这项服务更贴近您的需求(它不是免费的)。