1

我的任务是找到在具有机器学习的应用程序上创建面部识别功能的最佳方法。此功能将用于将员工打卡到应用程序中。该功能将支持...

  • 每个设备多个用户。

  • 持续训练(因此当 mlmodel 识别出某人时,它会将新图像发送到后端的模型,并使用最近拍摄的新图像训练模型)

  • 更新新课程(当新用户出现并想要使用该应用程序时,该应用程序将为他们拍照,将这些图像发送到后端的模型训练程序,该程序将训练 mlmodel 以识别新用户)

    • 将新更新的模型发送到同一家商店的其他设备,以便他们也能识别员工

我试过的。

  • 我已经修改了设备上的培训和 Knn。但据我了解,设备上的训练对此不起作用,因为设备上的训练模型最多只能有 10 个类,而 knn 并没有给出非常准确的结果......

  • 使用 createML 进行手动训练和重新训练。这时候我...

    1. 在我的 Mac 上使用 createML 训练模型
    2. 使用 URLSession 将模型下载到应用程序
    3. 使用应用程序添加新用户或更新旧用户的照片
    4. 将新用户/更新的旧用户的图像发送到我的 Mac 上的 createML
    5. 用我曾经为所有用户拍摄的所有图像创建一个全新的模型
    6. 永远重复步骤 2-5

    这工作得很好,但是对于应用程序将拥有的最终用户数量来说,它是令人难以置信的昂贵、耗时和不可行的,一遍又一遍地做。

    我对机器学习还是很陌生,我觉得我做错了。我只是想看看是否有人知道更好/更有效的持续学习方法,这样模型就会记住它以前学到的东西,我可以用 createML 向它添加新的类或图像......或者如果有人可以指出我在正确的方向。

4

2 回答 2

1

看看 Turi Create——同样来自 Apple:https ://github.com/apple/turicreate

它可以完成 Create ML 所做的所有事情,但它是 Python 和可编程的,因此您可以在后端自动化整个过程。如果您知道如何在 CreateML 中进行操作,您会发现 Turi Create 很容易上手。

于 2019-12-30T19:53:30.030 回答
0

要获得准确的结果,您应该研究更强大的机器学习模型。这是一个非常强大的人脸识别模型示例:https ://github.com/davidsandberg/facenet 。

现在,下一个问题是如何将您的应用程序与这个新模型集成。这完全取决于您,但我建议您查看一些后端替代方案,例如利用 AWS 服务(EC2 计算服务器、Sagemaker、API 网关等)来运行和协调推理。这样做的几个好处是您的应用程序将主要是前端,从而使其轻巧并且可以跨不同和较旧的 IOS 平台和设备进行扩展。但更重要的是,它为您在未来做更复杂的事情提供了额外的腿部空间,在使用 CoreML 时,您将主要受限于设备上的计算能力以及基于 swift 的语言。

但是,利用云服务还会带来其他缺点,例如学习曲线(学习 AWS 服务)和潜在的隐私问题。

这只是其中一种方式,还有许多其他类似的云提供商,如谷歌、IBM 和 Azure。在不进一步了解您的时间表、预算、技术专长的情况下,我只能为您提供这些选项,其余的选择由您自行决定

于 2019-12-30T19:47:13.797 回答