SAP Leonardo机器学习服务提供了许多API端点,可以轻松地将机器学习集成到应用程序中。我在服务列表中查找人脸识别API。我发现了许多关于人类、人脸和目标检测的服务+人脸特征提取API。所有这些API都可以检测人脸,大数据如何分析,甚至将人脸的特征提取到一个向量中。我对这些服务进行了研究,得出的结论是,没有一个API具有比较和匹配人脸的能力……
我进一步查看了列表中其他机器学习的可能性,发现了相似性评分API。此API提供了比较向量的可能性。
人脸特征提取API与相似性评分API的结合将提供进行人脸识别的可能性。
人脸特征提取API搜索图像上的人脸,并将人脸的特征作为向量返回。相似性评分API可以比较向量,因此可以比较人脸。
以上机器学习API列表来自我的CloudFoundry试用实例。在这里,您可以创建一个试用机器学习实例并尝试API。除此之外,您还可以使用SAP的API中心。这就像一个沙盒,提供这些API,而不需要在您的试用帐户上创建实例。你可以在API中心找到机器学习API:
https://api.sap.com/package/SAPLeonardoMLFunctionalServices?section=Artifacts
在这里你会发现人脸特征提取服务是一个相似性评分。
结合这两个机器学习API,我们应该能够进行人脸识别。让我在下面的步骤中向您展示它。
我使用Postman来测试机器学习API。如果您想执行下一步操作,我建议您也使用此工具。
在开始使用API之前,我们需要获得授权令牌,也称为承载令牌。
要获取此令牌,我们需要更多关于机器学习实例的信息。您可以在您的CloudFoundry试用帐户上找到此信息。打开机器学习实例并转到服务键。在那里,您将找到您需要的一切。
要对机器学习实例进行身份验证,您需要获取承载令牌。
首先,在服务密钥中查找身份验证url。通常,您会在下面找到:
打开邮递员:
设置请求方法以获取使用服务密钥中的身份验证URL并添加"/oauth/token"?授予\类型=客户\凭证"
https://s0007914286trial.authentication.eu10.hana.ondemand.com/oauth/token?grant_type=client_credentials
选择"Basic Auth"作为授权类型
填写clientid(来自服务密钥)作为用户名,clientsecret作为密码
当您点击发送时,您将得到以下结果。复制访问令牌,您将在以下请求中需要它
下一步是将多个图像转换为向量。因此,我们使用如下人脸特征提取API:
将请求方法设置为POST填写人脸特征提取API URL
https://mlftrial-face-feature-extractor.cfapps.eu10.hana.ondemand.com/api/v2alpha1/image/face-feature-extraction
将认证类型设置为Bearer Token,并在Token字段
中提供先前请求中的"access\u Token"以添加要转换的图像,转到"Body"->选择"form data"并添加键"files"。将类型更改为"文件"并上载您的第一张图像。
当您单击"发送"时,您将看到以下结果。"人脸特征"数组是你的向量。
现在就开始对多张图像进行比较并找到匹配的人脸。
最后一步是进行人脸识别!
这次,我们将使用相似性评分api。这个API将比较和匹配多个向量。你可以用不同的方法。您可以提供一组向量,它会将每个向量与集中的其他向量进行比较。如果你提供两组向量,它会比较第一组的向量和第二组的向量。在第一个集合中,阿里大数据应用平台,我提供了图像的向量和我要搜索的人的脸(基于他的脸)。在第二组中,淘客采集,我提供了要在其中搜索相似人脸的人脸向量(来自其他图像)。
为此,您需要像这样构建请求:
将request method设置为POST填写相似度评分网址
https://mlftrial-similarity-scoring.cfapps.eu10.hana.ondemand.com/api/v2/similarity-scoring/
同样,将身份验证类型设置为承载令牌,并在令牌字段
中提供来自此第一个请求的"访问令牌",iot物联网,然后在"表单数据"中向正文添加以下键值选项{"numSimilarVectors":1}我们使用"1"是因为我们只想找到一个匹配项文本json字符串如下所示数组"0"应包含要用于搜索的图像的向量对象数组"1"应该包含要用于搜索的向量对象列表我用"id"来知道向量后面的脸的名字,我用"find"来搜索我用来搜索的脸(假设我不知道是谁…)
"文本"部分的完整示例,淘客软件,每个向量只有前3个值:
我在数组"1"中使用了两个不同詹姆斯·邦德演员的图像和一个我自己的图像。在数组"0"中,我添加了一个我自己的另一个图像的矢量。
我的第二组图像的顺序相同:
第一组中的图像,只是我在测试时从我的笔记本电脑网络摄像头中拍摄的图像。
如果一切顺利,它应该找到我在第二组中的图像矢量作为第一组中的矢量?
这就是SAP机器学习基础服务的人脸识别方式!