我需要在我的Flutter应用中实现实时人脸解锁功能,请提出最好的实现方法,我也了解了ML_kit(firebase)和openCV,但都支持人脸检测,我正在寻找人脸识别。
请为Flutter建议任何库或SDK。
答案 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显然可以让您从实时流中检测人脸。也许这项服务更贴近您的需求(它不是免费的)。