更新时间:2024-12-05 GMT+08:00
分享

主体识别示例

本章节对主体识别AK/SK方式使用SDK进行示例说明。

  • 主体识别示例代码只需将AK/SK信息替换为实际AK/SK,代码中可以使用初始化ImageMainObjectDetectionReq中的Image或Url配置图像信息(image和url参数二选一),示例中以url为例,配置完成后运行即可。
  • endpoint是华为云各服务应用区域和各服务的终端节点,详情请查看地区和终端节点
  1. 主体识别调用示例代码如下:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    package main
     
    import (
        "fmt"
        "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        image "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/image/v2"
        "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/image/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/image/v2/region"
    )
     
    func main() {
       // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险建议在配置文件或者环境变量中密文存放使用时解密确保安全
       // 本示例以ak和sk保存在环境变量中来实现身份验证为例运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK
       ak := os.Getenv("HUAWEICLOUD_SDK_AK")
       sk := os.Getenv("HUAWEICLOUD_SDK_SK")
     
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            Build()
     
        client := image.NewImageClient(
            image.ImageClientBuilder().
                WithRegion(region.ValueOf("cn-north-4")).  //此处替换为您开通服务的区域详情请查看地区和终端节点.
                WithCredential(auth).
                Build())
     
        request := &model.RunImageMainObjectDetectionRequest{}
        thresholdImageMainObjectDetectionReq:= float32(30)
        urlImageMainObjectDetectionReq:= "https://XXX.jpg"      //此处替换为公网可以访问的图片地址
        request.Body = &model.ImageMainObjectDetectionReq{
            Threshold: &thresholdImageMainObjectDetectionReq,
            Url: &urlImageMainObjectDetectionReq,
        }
        response, err := client.RunImageMainObjectDetection(request)
        if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  2. 识别结果输出到控制台表示执行成功。相关参数说明请参考主体识别API
    1
    RunImageMainObjectDetectionResponse {"result":[{"label":"bounding_box","location":{"height":327.77,"top_left_x":3.7,"top_left_y":1.72,"width":463.03},"confidence":"95.73"},{"label":"main_object_box","location":{"height":328.35,"top_left_x":3.22,"top_left_y":1.5,"width":456.63},"confidence":"88.35"}]}
    

相关文档