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

百度云_日租服务器_年度促销

小七 141 0

在我最近的一个有趣的项目中,我一直在测试CAPM和SAP Cloud Machine Learning(ML)SDK,以创建一个人脸识别应用程序:https://blogs.sap.com/2019/05/28/face-recognition-app/

此ML SDK非常好地集成到SAP云平台Cloud Foundry(CF)中。它不需要目的地,云服务器是,并且可以访问所有的mlapi端点。它也不需要额外的身份验证请求。真值得一用!

这里有一句话,ML SDK只适用于Java。这意味着您需要将CAPM与Java一起用于服务层。不是什么大问题,但是NodeJS现在很流行?

在这个博客里,我想分享一下我在人脸识别应用程序中使用这个ML SDK和CAPM的经验。为此,我将展示如何使用CAPM创建一个使用这个mlsdk的新服务。我将使用mlsdk在图像上找到一张脸,并将其转换为向量。向量可以用来比较人脸识别应用程序中的人脸!

我使用SAP Web IDE是因为它使CAPM和ML SDK一起测试更容易。

首先,从下面的模板"SAP云平台业务应用程序"生成一个项目。(在Cloud Foundry环境中过滤将更容易找到正确的模板。)

填写项目名称:

填写mta的应用id和版本,但也要选择"使用HTML5应用程序存储库"。最后一个检查将把approver和appdeployer包含到您的项目中。

向导的这一步包含服务的配置。在这种情况下,应该使用java来使用mlsdk。(目前在NodeJS中还不可用)。填写名称空间并选择HANA数据库的最新版本。(同样,在我发布这篇文章的时候,淘客小程序,只有HANA可用作CF应用程序的数据库

同时启用"启用用户身份验证",当我们要部署到CF时,我们将需要它。这将已经在应用程序中包含一些配置甲基丙烯酸甲酯对我们来说

项目结构如下所示,别忘了启用隐藏文件:

用示例代码运行这个项目可能会出现这样的错误:

如果在您的版本中也发生这种情况,那么您需要甲基丙烯酸甲酯并将"uaa"参数"服务计划"由"默认"改为"应用:

打开"db"模块,打开数据-型号.cds. 这是定义数据库的数据模型的地方。实体的名称将用作表的名称,所有属性将表示一列。

在本例中,实体将被命名为"Faces",因为它将用于在图像上存储人脸的矢量。与矢量一起,它将存储名称和ID。image属性将不用于此博客,但可用于存储人脸图像的路径。

代码片段:

保存数据-型号.cds将制作CD并更新csn.json文件服务模块中的文件。如果没有自动运行"cds构建",可以手动触发:

数据库层已经完成?

让我们转到服务层,将我们的数据库实体作为API公开。打开"cat-服务.cds"并用数据库层中使用的名称更改示例代码。更改名称空间和实体名称。

不要忘记删除"@readonly",因为此服务还应用于创建面,而不仅仅用于读取。

代码段:

好的,服务已准备好进行测试。首先构建java服务:

在运行之前,请检查您的CF帐户是否仍然有效并已配置:

右键单击您的项目,然后单击项目设置或在SAP Web IDE workspace的设置中

在构建之后,您可以将其作为java应用程序运行

我不知道为什么,但是第一次它失败了。我第二次试着运行这个服务时,它起了作用。当它运行时,您将在控制台中得到一个url来测试您的服务:

这将为您提供一个端点:

时间来实现机器学习逻辑,将图像上的人脸转换为向量。

这个逻辑需要在将其保存到数据库之前实现。该服务将接收一个图像的base64字符串,该字符串需要在保存到数据库之前进行转换。为此,CAP可以在每次OData请求之前使用钩子函数。

首先为这些钩子函数生成一个文件,用云服务器,并提供一些示例代码:

在下一步中,Web IDE需要知道将要增强的实体。

下一步并完成,这将为每个可能的请求生成一个带有示例代码的Java类

该代码使用对s4hana sdk的依赖关系来使用机器学习,另一个用于定义图像的mimetype。这些依赖项需要在中定义pom.xml文件

构建srv模块将下载依赖项。

在与文件相同的包中添加了一个新的Java类,带有钩子函数,用于获取基于mimetype的扩展名。(在线找到此代码)

调用此类"MimeTypesExtensions"

此Java类的完整代码可在以下位置找到:https://github.com/lemaiwo/MyCAPMAppWithML/blob/master/srv/src/main/java/be/wl/handlers/catalogservice/MimeTypesExtensions.java

另一个Java类"MachineLearningService",物联网展,个人云服务器,它将用于与机器学习:

这个类有几个与机器学习服务通信所需的功能。完整代码可在此处找到:https://github.com/lemaiwo/MyCAPMAppWithML/blob/master/srv/src/main/java/be/wl/handlers/catalogservice/MachineLearningService.java

首先,"base64ToBytes"将图像的base64字符串转换为字节数组。

"getFilePost"将使用上一个函数与图片发送到ML SDK:

此函数"getFaceVector"将请求发送到ML服务并返回人脸的矢量。

返回生成的类"FacesHookHandler"中,操作传入数据的代码,然后将其保存到数据库中。

CAP将调用"beforeCreateFaces"钩子函数来创建一个实体的新对象"Faces"。此函数将包含调用机器学习服务类并在将结果保存到HANA之前更新结果的实现。

此行正在运行魔术,以便在保存请求之前操作来自请求的数据。

不要忘记文件顶部的java导入。

如果如果没有bug,那么构建会成功吗?

服务准备好用机器学习逻辑进行测试。首先需要重新启动服务。否则将不考虑更改。

SAP Web IDE在控制台中有一个停止和启动按钮,可用于重新启动应用程序:

现在可以测试服务。因为这个应用还没有ui,所以它需要用另一个工具如postman进行测试。

使用你在控制台中看到的url并在postman中运行:

服务上的get请求工作!但一个职位还不起作用。配置缺少对机器学习服务资源的引用。这需要在mta.yaml公司文件:

在srv模块的requires部分添加"ml service"

在底部定义ml service

现在上传一张图片,就可以测试服务了。仍然没有ui,因此需要手动将图像转换为base64字符串。这可以通过以下网站完成:

https://www.base64-image.de/

上传詹姆斯·邦德的图片为例:

将结果复制到剪贴板

将postman中的请求类型改为"POST",并添加如下正文:

如果一切顺利,postman将向您展示以下示例:

我们刚刚将CAP与机器学习SDK结合起来,将base64图像字符串转换为向量并保存到HANA数据库中。

下一步?添加UI模块

GitHub提供完整项目:https://github.com/lemaiwo/MyCAPMAppWithML