在Spring Boot应用程序中使用Python/TensorFlow进行人脸识别

我目前正在开发一个用于人脸识别的服务器端Web应用程序(使用Spring Boot)。人脸检测应使用SSD进行,人脸识别则使用ArcFace。我进行了一些研究,发现与机器学习相关的工作最好使用Python来完成。因此,我研究的下一阶段是寻找将Python机器学习与Spring Boot应用程序结合的最佳方式。我认为有两种合适的方法:

  1. 使用预训练的TensorFlow模型(使用Maven的tensorflow依赖)。然而,每次系统中添加新的人脸时,都需要重新训练人脸识别模型。在Java中实现这一点的最佳方法是什么?我在考虑是否可以通过Java运行Python脚本来重新训练模型。

  2. 构建一个带有REST API的Python应用程序,并在本地主机上运行。Java只需向该REST API发送包含图像的命令,并获取结果(例如,我发送了30张图片并命令对这些图片进行人脸识别,然后获得识别出的人脸列表作为结果,或者发送10张新人的图片以添加到系统中,即应用程序将学习这张新面孔)。

您能对我提出的这两种方法哪一种更好以及原因给出一些意见吗?

附注:我不希望用Python构建整个Web应用程序的原因是我已经有了一些构建Spring Boot应用程序的经验,而对Python的经验很少。


回答:

作为一种通用方法,我建议在不同的进程中(使用Python)训练模型,一旦训练完成,就使用TensorFlow Java API在Java中加载它以进行服务(使用Spring Boot)。

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注