1

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

4

1 回答 1

1

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

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

  1. 数据集。对于您想要识别的每张脸,您需要从不同角度和尽可能不同的大量图像(戴眼镜、不同的发型、胡须、化妆、不同的闪电条件等)。如果您未能提供详细的数据集,则可能会发生两件事:应该识别的人脸不会被识别,或者人脸不应该被识别,但最终会被识别。像这样的数据集很难创建,因为在最好的情况下,您将拥有几张注册面部的用户照片。我认为使用这些照片,您可以在不同条件下生成新照片,但这不能在移动设备上完成。
  2. 假设你有一个不错的数据集,现在你必须训练网络。在这里你有两个选择:从头开始构建你的模型(这不是一个好主意)或使用谷歌提供的模型并仅重新训练网络的最后一层。据我所知,TensorFlow没有选择在移动设备上进行训练(这对系统来说太贵了),所以你必须在某个地方训练模型,然后在设备上下载它。TensorFlow有一个模型MobileNet,旨在用于移动设备,是您网络的良好起点,具有良好的准确性并且不使用很多系统资源。您也可以尝试使用Inception,但是这个模型是为准确性而设计的,训练时间要长得多,并且在评估图像时会花费更多的时间和资源。

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

也许你想看看一些关于如何TensorFlow训练模型并在Android.

于 2018-02-01T10:42:15.550 回答