本文介绍了如何使用Go SDK自定义人脸检索接口,对指定的人脸图片进行自定义人脸检索。
功能描述
自定义人脸检索根据您输入的待识别人脸图片(face),在指定人脸库(group)中查找并返回最相似的Top 5个体(person),返回的Top 5个体按照相似度从大到小排序。
检索人脸时,必须指定要检索的分组信息(最多指定一个分组)。关于参数的详细说明,请参见自定义人脸检索API文档。
您需要使用内容安全的API接入地址,调用本SDK接口。关于API接入地址的信息,请参见接入地址(Endpoint)。
前提条件
提交人脸图片检索任务
package main
import (
"encoding/json"
"fmt"
"github.com/aliyun/alibaba-cloud-sdk-go/services/green"
"strconv"
)
func main() {
/**
* 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
* 常见获取环境变量方式:
* 获取RAM用户AccessKey ID:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
* 获取RAM用户AccessKey Secret:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
client, _err := green.NewClientWithAccessKey(
"cn-shanghai",
"建议从环境变量中获取RAM用户AccessKey ID",
"建议从环境变量中获取RAM用户AccessKey Secret")
if err != nil {
fmt.Println(err.Error())
return
}
extras := map[string]interface{}{"groupId": "个体组ID"}
task1 := map[string]interface{}{"dataId": "检测数据ID", "url": "待检测人脸图片链接地址", "extras": extras}
// scenes:检测场景,取值:sface-n,表示自定义人脸检索。
content, _ := json.Marshal(
map[string]interface{}{
"tasks": task1, "scenes": [...]string{"sface-n"}, "bizType": "业务场景",
},
)
request := green.CreateImageSyncScanRequest()
request.SetContent(content)
response, _err := client.ImageSyncScan(request)
if _err != nil {
fmt.Println(_err.Error())
return
}
if response.GetHttpStatus() != 200 {
fmt.Println("response not success. status:" + strconv.Itoa(response.GetHttpStatus()))
}
fmt.Println(response.GetHttpContentString())
}
文档内容是否对您有帮助?