云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

华为云_云服务器免费领取_高性价比

小七 141 0

几个月前,我在博客上发布了一个我创建的人脸识别应用程序。这不是针对客户或业务用例,淘客什么意思,而是为了帮助自己记住我遇到的人的名字。您可以在此处找到所有详细信息:https://blogs.sap.com/2019/05/28/face-recognition-app/

现在,在这篇文章中,我想分享这个应用背后的技术细节。该应用程序是在SAP云平台Cloud Foundry之上构建和运行的,使用了该平台的多种服务。此模板已为我生成了一个MTA项目,其中包含已为数据库和服务预配置的模块。在这两个模块中,我都使用CD来定义需要存储的数据。

除了存储数据,我还想存储每个人的图像。我可以在数据库中以base64字符串的形式执行此操作,但我更喜欢一个真正的文档存储位置。因此,我最终在NEO上使用了SCP文档服务。

为了检测和识别人脸,我还需要在UI模块和服务模块中进行机器学习。在创建一个新的人物之前,人工智能有哪些领域,我需要在UI中使用它来检查图片是否有一张脸。这也可以在服务模块中完成,但我想在sperate请求中检查这一点,以获得更好的用户体验。另一方面,人脸识别需要查看完整的数据库。如果在UI中执行此操作,可能会发生这样的情况:由于延迟加载,并非所有人都在应用程序中。因此,我需要在服务模块中实现这一点。

将这一切结合在一起形成了以下体系结构:

我的第一个想法是解释我在这个应用程序开发过程中遇到的所有技术细节和挑战。只是这太多了,没人会看。相反,我决定为每个专用部分创建几个技术操作博客文章。我已经创建了一个较小版本的人脸识别应用程序来创建如何写博客文章。这个应用程序并没有所有相同的功能,但是遵循所有的操作方法博客帖子将带您进入人脸识别应用程序。

在开始之前,我需要了解如何使用SAP Leonardo机器学习进行人脸识别。在研究了所有sapmlapi之后,我提出了以下解决方案

https://blogs.sap.com/2019/05/14/how-to-do-face-recognition-with-sap-leonardo-machine-learning-service/

第二,我需要一个地方来储存面部图像。不是为了人脸识别,只是想知道那个人的名字,以防我记不起名字了…我可以将它作为base64字符串存储在数据库中,返利折扣,但这不是最好的方法,而且字符串字段在CAP中的长度有限。搜索另一个解决方案使我想到了SCP文档服务。在下面的博客里,我解释了配置SCP文档服务的所有步骤以及如何在UI5应用程序中使用它:

https://blogs.sap.com/2019/08/05/how-to-use-the-document-repository-service-in-your-ui5-app/

我更进一步,创建了自己的应用程序来查看SCP文档中的文档服务:

https://blogs.sap.com/2019/07/29/document-repository-viewer/

(如果你问我的话,这是SCP文档服务缺少的特性…

接下来,我创建了用于存储这些面的数据库层,并将其作为odataapi公开。在这个API Java服务中,我使用ML API搜索数据库中的所有人脸。

数据库模块

在数据库中,我在CDS文件中定义了一个实体:

这个实体将存储所有具有:

唯一ID的人脸名字姓氏向量这将保留机器学习服务在人物图像中找到的人脸向量。在UI中,我将使用mlapi找到人脸并返回它的向量。然后,UI将结果连同所有其他信息一起发送到服务。这意味着我将为每个人保留一个向量。当我想寻找一个人,我会比较所有这些向量与我在搜索中使用的图像向量。图像这将保留图像在文档服务中的位置

创建或更改db模块后,再次执行生成CD非常重要。

这将更新csn.json文件服务层文件:

此文件将服务的实体和字段映射到db实体和字段。这需要保持同步。

服务模块

在服务模块中,我开始将数据库模块中的"Faces"实体作为实体Face公开。

我在Face实体旁边添加了两个操作。这些操作是两个不适合CRUDQ模型的操作:

findFaceByVector此操作将使用机器学习将传入向量与数据库中的所有人脸向量进行比较,并返回最佳匹配。findFaceByImage公司这个函数与另一个函数完全相同,但它首先使用机器学习将传入的base64字符串图像转换为向量。

最后,我只使用了findFaceByImage操作。它只是为了测试的目的,所以我可以测试转换是否失败或者其他什么东西。两者几乎相同,但操作使用httppost方法而不是GET。我正在将一个图像作为base64字符串发送到我的服务中,这是对GET方法参数的渴望https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/7347f9d7aff44a2eac950b7be8fe395d.html

我创建了一个操作博客,从开始到结束都有更多的技术步骤api创建了一个集成了ML服务的服务:

https://blogs.sap.com/2019/08/19/combine-cap-m-with-machine-learning-sdk-api-part/