使用AWS rekrecognition索引人脸并将其关联到MySQL中的userId的最佳方法 &



我使用Node.js在我的电子应用程序中包括面部识别,我想知道我是否正确地做这个过程,因为我对文档中的一些点有点困惑。

我正在使用aws-sdk库,我想要的是,当拍摄用户的照片时,我的系统在Rekognition注册的人脸数据库中搜索他,并返回给我这个用户是谁-即他的userId在我的MySQL数据库.

我已经创建了一个Collection名为"Users"我想知道如何通知userIdindexFaces方法。最初,我打算允许每个用户只包含一张照片,目前我是这样做的:

const params = {
CollectionId: 'Users',
Image: { Bytes }, // The image in base64
ExternalImageId: '1', // The userId in MySQL
MaxFaces: 1,
QualityFilter: 'HIGH'
};
Rekognition.indexFaces(params, (err, data) => {
if (err) {
console.log(err, err.stack);
return;
}
console.log(data);
});

整个人脸注册过程正常工作,我用来搜索已经注册的人脸的代码是:

const params = {
CollectionId: 'Users',
Image: { Bytes }, // The image in base64
MaxFaces: 1,
FaceMatchThreshold: 99
};
Rekognition.searchFacesByImage(params, (err, data) => {
if (err) {
console.log(err, err.stack);
return;
}
for (let i = 0; i < data.FaceMatches.length; i++) {
console.log(data.FaceMatches[i].Face);
}
});

如果已注册并在Collection中找到所咨询的面,则返回值为:

{
FaceId: 'b7506fc1-e8...',
BoundingBox: {...},
ImageId: 'e11d94c1-831...',
ExternalImageId: '1', // `userId` in my MySQL as desired
Confidence: 99.999...,
IndexFacesModelVersion: '6.0'
}

我的问题是:我将面对正确的userId通过ExternalImageId财产或我应该换一个更合适的方式吗?如果是,怎么做?

是的,这就是ExternalImageId字段的目的——它是为了让您将自己的引用关联到面部。您的操作是正确的(假设代码可以工作)。

最新更新