首页 > 解决方案 > 在 Spring Boot 应用程序中使用 python/tensorflow 进行人脸识别

问题描述

我目前正在开发用于面部识别的服务器端 Web 应用程序(使用 Spring Boot)。人脸检测应该使用 SSD 进行,人脸识别使用 ArcFace。我做了一些研究,发现这些与机器学习相关的事情最好在 Python 中完成。因此,我研究的下一阶段是找出将 Python 机器学习与 Spring Boot 应用程序一起使用的最佳方法。两种合适的(至少在我看来)方法是:

  1. 使用预训练的 Tensorflow 模型(使用 tensorflow 依赖于 maven)。但是,每次将新人的脸添加到系统中时,都必须重新训练用于人脸识别的 tensorflow 模型。在 Java 中做到这一点的最好方法是什么?(我想以某种方式从 Java 运行 Python 脚本来重新训练模型)。

  2. 使用将在本地主机上运行的 REST API 构建 python 应用程序。Java 只会将带有图像的命令发送到该 REST API 并获得结果(这意味着 - 假设我发送了 30 张图像以及对这些图像执行人脸识别的命令,然后得到一个识别出的人脸列表作为结果,或发送 10 张应添加到系统中的新人图片——即应用程序会学习人脸)。

您能否就这两种方法中的哪一种更好以及为什么给我一些意见?

附言。我不想用 Python 构建整个 Web 应用程序的原因是我已经有(一些)构建 Spring Boot 应用程序的经验,而对 Python 的经验却很少。

标签: javapythonspring-boottensorflowmachine-learning

解决方案


作为一种通用方法,我建议在不同的过程中训练模型(使用 Python),一旦训练完成,使用Tensorflow Java API将其加载到 Java中(使用 Spring Boot)。

此外,如果您无法承受任何停机时间(例如,服务层可以部署在 Kubernetes 中),您可能需要一些机制来用新模型替换现有模型。


推荐阅读