iOS 人脸识别持续学习
Posted
技术标签:
【中文标题】iOS 人脸识别持续学习【英文标题】:iOS Facial Recognition Continuous Learning 【发布时间】:2020-04-19 11:40:12 【问题描述】:我的任务是找到在具有机器学习功能的应用上创建面部识别功能的最佳方法。此功能将用于将员工打卡到应用程序中。该功能将支持...
每台设备有多个用户。
持续训练(因此当 mlmodel 识别到某人时,它会将新图像发送到后端的模型,并使用最近拍摄的新图像训练模型)
更新新课程(当新用户出现并想使用该应用程序时,该应用程序将为他们拍照,将这些图像发送到后端的模型训练程序,该程序将训练 mlmodel 以识别新的用户)
将新更新的模型发送到同一商店中的其他设备,以便他们也能识别员工我已经尝试过了。
我已经修改了设备上的培训和 Knn。但据我了解,设备上的训练不适用于此,因为设备上的训练模型最多只能有 10 个类,而 knn 并没有给出非常准确的结果......根本没有
使用 createML 进行手动训练和重新训练。这时候我...
-
在我的 Mac 上使用 createML 训练模型
使用 URLSession 将模型下载到应用程序
使用应用添加新用户或更新旧用户的照片
将新用户/更新的旧用户的图像发送到我的 mac 上的 createML
使用我为所有用户拍摄的所有图像创建一个全新的模型
永远重复步骤 2-5
这工作得很好,但是对于应用程序最终拥有的用户数量来说非常昂贵、耗时且不可行,要一遍又一遍地做。
我对机器学习还是很陌生,我觉得我做错了。我只是想看看是否有人知道更好/更有效的持续学习方法,这样模型会记住它以前学到的东西,我可以用 createML 向它添加新的类或图像......或者是否有人可以指出我方向正确。
【问题讨论】:
【参考方案1】:看看 Turi Create -- 同样来自 Apple:https://github.com/apple/turicreate
它可以完成 Create ML 所做的所有事情,但它是 Python 和可编程的,因此您可以在后端自动化整个过程。如果您知道如何在 CreateML 中进行操作,您会发现 Turi Create 很容易上手。
【讨论】:
感谢您的建议,这可能是我将采取的路线,因为 CreateML 看起来不具备自动持续学习的能力。看起来我也必须为后端开发学习python,但它看起来很容易上手。再次感谢!【参考方案2】:要获得准确的结果,您应该研究更强大的机器学习模型。下面是一个非常强大的人脸识别模型示例:https://github.com/davidsandberg/facenet。
现在,下一个问题是如何将您的应用与这个新模型集成。这完全取决于您,但我建议您检查一些后端替代方案,例如利用 AWS 服务(EC2 计算服务器、Sagemaker、API 网关等)来运行和协调推理。这样做的几个好处是您的应用程序将主要是前端,从而使其轻巧并且可以跨不同和较旧的 ios 平台和设备进行扩展。但更重要的是,它为您在未来做更复杂的事情提供了额外的腿部空间,而使用 CoreML 您将主要受限于设备上的计算能力以及基于 swift 的语言。
但是,利用云服务还会带来其他缺点,例如学习曲线(学习 AWS 服务)和潜在的隐私问题。
这只是其中一种方式,还有许多其他类似的云提供商,如 Google、IBM 和 Azure。在不进一步了解您的时间表、预算、技术专长的情况下,我只能为您提供这些选项,其余的选择由您自己做出
【讨论】:
我也可以制作这个原型。但是 FaceNet 可以更新吗?当我读到它是什么时,它看起来已经预设了类和标识。因此,如果我想添加一个新员工以使其识别为“Jim”,我将无法这样做,因为这需要重新训练整个模型,对吧? 当然可以。除此之外,Facenet 非常强大,与其他普通 CNN 相比,您需要的训练图像要少得多。在我之前的项目中,5 张人脸图像(从不同角度)已经足以让 Facenet 准确预测以上是关于iOS 人脸识别持续学习的主要内容,如果未能解决你的问题,请参考以下文章