android 运行时的 Tensorflow 面部识别

Tensorflow Facial Identification at Runtime for android

我的目标是创建一个可以有多个用户的应用程序。每个用户帐户都必须通过应用程序的面部识别来保护。我知道我可能没有正确理解 tensorflow 的概念,但他们是 android 中的一种方式,我们可以训练该应用程序识别某人的脸来判断这个用户是谁?我的印象是我们必须事先创建一个训练模型并将其应用到应用程序上,但至于我的目标,应用程序必须动态训练以提前识别谁是它的users.Thanks。

我不确定这样做是否正确。我知道可以通过 Eigenfaces 实现,但我从未尝试过,所以也许你也想考虑一下。

回到你的想法。我不知道成功的几率是多少,但碰巧我知道一些你会遇到很多挑战的地方:

  1. 数据集。对于你想要识别的每张脸,你需要大量不同角度的图像,并且尽可能不同(戴眼镜、不同的发型、胡子、化妆、不同的闪电条件等)。如果您未能提供详细的数据集,则可能会发生两种情况:一张应该被识别的脸不会被识别,或者这张脸不应该被识别,但最终还是被识别了。像这样的数据集很难创建,因为在最好的情况下,您将拥有几张注册人脸的用户照片。我认为使用这些照片,您可以在不同条件下生成新照片,但这不能在移动设备上完成。
  2. 假设你有一个不错的数据集,现在你必须训练网络。在这里你有两个选择:从头开始构建你的模型(不是一个好主意)或使用 Google 和 retrain only the final layer from the network. As far as I know, TensorFlow doesn't have an option to do the training on mobile (it would be to expensive for the system), so you'll have to train the model somewhere and then download it on device. TensorFlow has a model MobileNet that is designed to be used on mobile devices, being a good starting point for your network, having a good accuracy and not using many system resources. You can also try with Inception 提供的模型,但这个模型是为准确性而设计的,训练时间要长得多时间,它会在评估图像时花费更多的时间和资源。

你的应用程序的最终场景是这样的:用户通过拍摄几张照片来注册他的脸,然后发送到你的服务器。然后,每次添加新面孔并在您的应用程序中下载模型时,您都必须重新训练网络。从这里开始,事情就简单了,拍一张用户的照片,希望它的脸得到妥善处理。

也许您想看一些 codelabs 关于 TensorFlow 的内容,教您如何训练模型 运行 Android