本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Rekognition Image 可以分析存储在 Amazon S3 存储桶中的图像或作为图像字节提供的图像。
在本主题中,您将使用 DetectLabelsAPI 操作来检测存储在 Amazon S3 存储桶中的图像(JPEG 或 PNG)中的对象、概念和场景。使用图像输入参数将图像传递给 Amazon Rekognition Image API 操作。在 Image
中,您指定 S3Object 对象属性来引用存储在 S3 存储桶中的图像。存储在 Amazon S3 存储桶中的图像的图像字节不需要 base64 编码。有关更多信息,请参阅 图像规格。
示例请求
在 DetectLabels
的示例 JSON 请求中,源图像(input.jpg
)从名为 amzn-s3-demo-bucket
的 Amazon S3 存储桶加载。请注意,包含 S3 对象的 S3 存储桶的区域必须与您用于 Amazon Rekognition Image 操作的区域匹配。
{ "Image": { "S3Object": { "Bucket": "
amzn-s3-demo-bucket
", "Name": "input.jpg" } }, "MaxLabels": 10, "MinConfidence": 75 }
以下示例使用各种 AWS SDKs 和 to AWS CLI call DetectLabels
。有关 DetectLabels
操作响应的信息,请参阅DetectLabels 响应。
检测图像中的标签
如果您尚未执行以下操作,请:
使用
AmazonRekognitionFullAccess
和AmazonS3ReadOnlyAccess
权限创建或更新用户。有关更多信息,请参阅 步骤 1:设置 AWS 账户并创建用户。安装并配置 AWS CLI 和 AWS SDKs。有关更多信息,请参阅 步骤 2:设置 AWS CLI 和 AWS SDKs。确保您已为调用 API 操作的用户授予适当的编程访问权限,有关如何执行此操作的说明,请参阅授予编程式访问权限。
-
将其中包含一个或多个对象(如树木、房屋和船)的图像上传到您的 S3 存储桶。图像的格式必须为 .jpg 或 .png。
有关说明,请参阅《Amazon Simple Storage Service 用户指南》中的将对象上传到 Amazon S3。
-
使用以下示例调用
DetectLabels
操作。此示例显示在输入图像中检测到的标签的列表。将
bucket
和photo
的值替换为您在步骤 2 中使用的 Amazon S3 存储桶和图像的名称。//Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. //PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.) package com.amazonaws.samples; import com.amazonaws.services.rekognition.AmazonRekognition; import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder; import com.amazonaws.services.rekognition.model.AmazonRekognitionException; import com.amazonaws.services.rekognition.model.DetectLabelsRequest; import com.amazonaws.services.rekognition.model.DetectLabelsResult; import com.amazonaws.services.rekognition.model.Image; import com.amazonaws.services.rekognition.model.Label; import com.amazonaws.services.rekognition.model.S3Object; import java.util.List; public class DetectLabels { public static void main(String[] args) throws Exception { String photo = "input.jpg"; String bucket = "bucket"; AmazonRekognition rekognitionClient = AmazonRekognitionClientBuilder.defaultClient(); DetectLabelsRequest request = new DetectLabelsRequest() .withImage(new Image() .withS3Object(new S3Object() .withName(photo).withBucket(bucket))) .withMaxLabels(10) .withMinConfidence(75F); try { DetectLabelsResult result = rekognitionClient.detectLabels(request); List <Label> labels = result.getLabels(); System.out.println("Detected labels for " + photo); for (Label label: labels) { System.out.println(label.getName() + ": " + label.getConfidence().toString()); } } catch(AmazonRekognitionException e) { e.printStackTrace(); } } }
响应示例
来自 DetectLabels
的响应是在图像中检测到的一组标签和检测标签时所依据的置信度级别。
当您对图像执行 DetectLabels
操作时,Amazon Rekognition 会返回与以下示例响应类似的输出。
响应显示操作检测到了多个标签,包括“人”、“交通工具”和“汽车”。每个标签均有一个关联的置信度级别。例如,检测算法对图像包含人的置信度为 98.991432%。
响应还包括了 Parents
数组中一个标签的原级标签。例如,标签“汽车”有两个父标签,分别名为“车辆”和“运输”。
常见对象标签的响应包括边界框信息,针对输入图像上标签的位置。例如,“人”标签有包含两个边界框的实例数组。这两个边界框是在图像中检测到的两个人的位置。
字段 LabelModelVersion
包含由 DetectLabels
使用的检测模型的版本号。
有关使用 DetectLabels
操作的更多信息,请参阅检测对象和概念。
{
{
"Labels": [
{
"Name": "Vehicle",
"Confidence": 99.15271759033203,
"Instances": [],
"Parents": [
{
"Name": "Transportation"
}
]
},
{
"Name": "Transportation",
"Confidence": 99.15271759033203,
"Instances": [],
"Parents": []
},
{
"Name": "Automobile",
"Confidence": 99.15271759033203,
"Instances": [],
"Parents": [
{
"Name": "Vehicle"
},
{
"Name": "Transportation"
}
]
},
{
"Name": "Car",
"Confidence": 99.15271759033203,
"Instances": [
{
"BoundingBox": {
"Width": 0.10616336017847061,
"Height": 0.18528179824352264,
"Left": 0.0037978808395564556,
"Top": 0.5039216876029968
},
"Confidence": 99.15271759033203
},
{
"BoundingBox": {
"Width": 0.2429988533258438,
"Height": 0.21577216684818268,
"Left": 0.7309805154800415,
"Top": 0.5251884460449219
},
"Confidence": 99.1286392211914
},
{
"BoundingBox": {
"Width": 0.14233611524105072,
"Height": 0.15528248250484467,
"Left": 0.6494812965393066,
"Top": 0.5333095788955688
},
"Confidence": 98.48368072509766
},
{
"BoundingBox": {
"Width": 0.11086395382881165,
"Height": 0.10271988064050674,
"Left": 0.10355594009160995,
"Top": 0.5354844927787781
},
"Confidence": 96.45606231689453
},
{
"BoundingBox": {
"Width": 0.06254628300666809,
"Height": 0.053911514580249786,
"Left": 0.46083059906959534,
"Top": 0.5573825240135193
},
"Confidence": 93.65448760986328
},
{
"BoundingBox": {
"Width": 0.10105438530445099,
"Height": 0.12226245552301407,
"Left": 0.5743985772132874,
"Top": 0.534368634223938
},
"Confidence": 93.06217193603516
},
{
"BoundingBox": {
"Width": 0.056389667093753815,
"Height": 0.17163699865341187,
"Left": 0.9427769780158997,
"Top": 0.5235804319381714
},
"Confidence": 92.6864013671875
},
{
"BoundingBox": {
"Width": 0.06003860384225845,
"Height": 0.06737709045410156,
"Left": 0.22409997880458832,
"Top": 0.5441341400146484
},
"Confidence": 90.4227066040039
},
{
"BoundingBox": {
"Width": 0.02848697081208229,
"Height": 0.19150497019290924,
"Left": 0.0,
"Top": 0.5107086896896362
},
"Confidence": 86.65286254882812
},
{
"BoundingBox": {
"Width": 0.04067881405353546,
"Height": 0.03428703173995018,
"Left": 0.316415935754776,
"Top": 0.5566273927688599
},
"Confidence": 85.36471557617188
},
{
"BoundingBox": {
"Width": 0.043411049991846085,
"Height": 0.0893595889210701,
"Left": 0.18293385207653046,
"Top": 0.5394920110702515
},
"Confidence": 82.21705627441406
},
{
"BoundingBox": {
"Width": 0.031183116137981415,
"Height": 0.03989990055561066,
"Left": 0.2853088080883026,
"Top": 0.5579366683959961
},
"Confidence": 81.0157470703125
},
{
"BoundingBox": {
"Width": 0.031113790348172188,
"Height": 0.056484755128622055,
"Left": 0.2580395042896271,
"Top": 0.5504819750785828
},
"Confidence": 56.13441467285156
},
{
"BoundingBox": {
"Width": 0.08586374670267105,
"Height": 0.08550430089235306,
"Left": 0.5128012895584106,
"Top": 0.5438792705535889
},
"Confidence": 52.37760925292969
}
],
"Parents": [
{
"Name": "Vehicle"
},
{
"Name": "Transportation"
}
]
},
{
"Name": "Human",
"Confidence": 98.9914321899414,
"Instances": [],
"Parents": []
},
{
"Name": "Person",
"Confidence": 98.9914321899414,
"Instances": [
{
"BoundingBox": {
"Width": 0.19360728561878204,
"Height": 0.2742200493812561,
"Left": 0.43734854459762573,
"Top": 0.35072067379951477
},
"Confidence": 98.9914321899414
},
{
"BoundingBox": {
"Width": 0.03801717236638069,
"Height": 0.06597328186035156,
"Left": 0.9155802130699158,
"Top": 0.5010883808135986
},
"Confidence": 85.02790832519531
}
],
"Parents": []
}
],
"LabelModelVersion": "2.0"
}
}