Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mendeteksi label dalam citra
Anda dapat menggunakan DetectLabelsoperasi untuk mendeteksi label (objek dan konsep) dalam gambar dan mengambil informasi tentang properti gambar. Properti gambar mencakup atribut seperti warna latar depan dan latar belakang dan ketajaman, kecerahan, dan kontras gambar. Anda dapat mengambil hanya label dalam gambar, hanya properti gambar, atau keduanya. Sebagai contoh, lihat Menganalisis citra yang disimpan di bucket Amazon S3.
Contoh berikut menggunakan berbagai AWS SDKs dan AWS CLI untuk memanggilDetectLabels
. Untuk informasi tentang respons operasi DetectLabels
, lihat DetectLabels respon.
Untuk mendeteksi label dalam citra
-
Jika belum:
Buat atau perbarui pengguna dengan AmazonRekognitionFullAccess
dan AmazonS3ReadOnlyAccess
izin. Untuk informasi selengkapnya, lihat Langkah 1: Siapkan AWS akun dan buat Pengguna.
Instal dan konfigurasikan AWS CLI dan AWS SDKs. Untuk informasi selengkapnya, lihat Langkah 2: Siapkan AWS CLI and AWS SDKs.
-
Unggah citra yang berisi satu atau beberapa objek—seperti pohon, rumah, dan perahu—ke bucket S3 Anda. Citra harus dalam format .jpg atau .png.
Untuk petunjuk, lihat Mengunggah Objek ke Amazon S3 di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.
-
Gunakan contoh berikut untuk memanggil operasi DetectLabels
.
- Java
-
Contoh ini menampilkan daftar label yang terdeteksi pada citra input. Ganti nilai-nilai bucket
dan photo
dengan nama bucket Amazon S3 dan citra yang Anda gunakan di langkah 2.
package com.amazonaws.samples;
import java.util.List;
import com.amazonaws.services.rekognition.model.BoundingBox;
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.Instance;
import com.amazonaws.services.rekognition.model.Label;
import com.amazonaws.services.rekognition.model.Parent;
import com.amazonaws.services.rekognition.model.S3Object;
import com.amazonaws.services.rekognition.AmazonRekognition;
import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder;
import com.amazonaws.services.rekognition.model.AmazonRekognitionException;
public class DetectLabels {
public static void main(String[] args) throws Exception {
String photo = "photo";
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 + "\n");
for (Label label : labels) {
System.out.println("Label: " + label.getName());
System.out.println("Confidence: " + label.getConfidence().toString() + "\n");
List<Instance> instances = label.getInstances();
System.out.println("Instances of " + label.getName());
if (instances.isEmpty()) {
System.out.println(" " + "None");
} else {
for (Instance instance : instances) {
System.out.println(" Confidence: " + instance.getConfidence().toString());
System.out.println(" Bounding box: " + instance.getBoundingBox().toString());
}
}
System.out.println("Parent labels for " + label.getName() + ":");
List<Parent> parents = label.getParents();
if (parents.isEmpty()) {
System.out.println(" None");
} else {
for (Parent parent : parents) {
System.out.println(" " + parent.getName());
}
}
System.out.println("--------------------");
System.out.println();
}
} catch (AmazonRekognitionException e) {
e.printStackTrace();
}
}
}
- AWS CLI
-
Contoh ini menampilkan output JSON dari operasi CLI detect-labels
. Ganti nilai-nilai bucket
dan photo
dengan nama bucket Amazon S3 dan citra yang Anda gunakan di Langkah 2. Ganti nilai profile-name
dengan nama profil pengembang Anda.
aws rekognition detect-labels --image '{ "S3Object": { "Bucket": "bucket-name", "Name": "file-name" } }' \
--features GENERAL_LABELS IMAGE_PROPERTIES \
--settings '{"ImageProperties": {"MaxDominantColors":1}, {"GeneralLabels":{"LabelInclusionFilters":["Cat"]}}}' \
--profile profile-name \
--region us-east-1
Jika Anda mengakses CLI pada perangkat Windows, gunakan tanda kutip ganda alih-alih tanda kutip tunggal dan hindari tanda kutip ganda bagian dalam dengan garis miring terbalik (yaitu\) untuk mengatasi kesalahan parser yang mungkin Anda temui. Sebagai contoh, lihat berikut ini:
aws rekognition detect-labels --image "{\"S3Object\":{\"Bucket\":\"bucket-name\",\"Name\":\"file-name\"}}" --features GENERAL_LABELS IMAGE_PROPERTIES \
--settings "{\"GeneralLabels\":{\"LabelInclusionFilters\":[\"Car\"]}}" --profile profile-name --region us-east-1
- Python
Contoh ini menampilkan label yang terdeteksi dalam citra input. Dalam fungsi main
, ganti nilai-nilai bucket
dan photo
dengan nama bucket Amazon S3 dan citra yang Anda gunakan pada Langkah 2. Ganti nilai profile_name
di baris yang membuat sesi Rekognition dengan nama profil pengembang Anda.
#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.)
import boto3
def detect_labels(photo, bucket):
session = boto3.Session(profile_name='profile-name')
client = session.client('rekognition')
response = client.detect_labels(Image={'S3Object':{'Bucket':bucket,'Name':photo}},
MaxLabels=10,
# Uncomment to use image properties and filtration settings
#Features=["GENERAL_LABELS", "IMAGE_PROPERTIES"],
#Settings={"GeneralLabels": {"LabelInclusionFilters":["Cat"]},
# "ImageProperties": {"MaxDominantColors":10}}
)
print('Detected labels for ' + photo)
print()
for label in response['Labels']:
print("Label: " + label['Name'])
print("Confidence: " + str(label['Confidence']))
print("Instances:")
for instance in label['Instances']:
print(" Bounding box")
print(" Top: " + str(instance['BoundingBox']['Top']))
print(" Left: " + str(instance['BoundingBox']['Left']))
print(" Width: " + str(instance['BoundingBox']['Width']))
print(" Height: " + str(instance['BoundingBox']['Height']))
print(" Confidence: " + str(instance['Confidence']))
print()
print("Parents:")
for parent in label['Parents']:
print(" " + parent['Name'])
print("Aliases:")
for alias in label['Aliases']:
print(" " + alias['Name'])
print("Categories:")
for category in label['Categories']:
print(" " + category['Name'])
print("----------")
print()
if "ImageProperties" in str(response):
print("Background:")
print(response["ImageProperties"]["Background"])
print()
print("Foreground:")
print(response["ImageProperties"]["Foreground"])
print()
print("Quality:")
print(response["ImageProperties"]["Quality"])
print()
return len(response['Labels'])
def main():
photo = 'photo-name'
bucket = 'amzn-s3-demo-bucket'
label_count = detect_labels(photo, bucket)
print("Labels detected: " + str(label_count))
if __name__ == "__main__":
main()
- .NET
-
Contoh ini menampilkan daftar label yang terdeteksi pada citra input. Ganti nilai-nilai bucket
dan photo
dengan nama bucket Amazon S3 dan citra yang Anda gunakan di Langkah 2.
//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.)
using System;
using Amazon.Rekognition;
using Amazon.Rekognition.Model;
public class DetectLabels
{
public static void Example()
{
String photo = "input.jpg";
String bucket = "amzn-s3-demo-bucket";
AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient();
DetectLabelsRequest detectlabelsRequest = new DetectLabelsRequest()
{
Image = new Image()
{
S3Object = new S3Object()
{
Name = photo,
Bucket = bucket
},
},
MaxLabels = 10,
MinConfidence = 75F
};
try
{
DetectLabelsResponse detectLabelsResponse = rekognitionClient.DetectLabels(detectlabelsRequest);
Console.WriteLine("Detected labels for " + photo);
foreach (Label label in detectLabelsResponse.Labels)
Console.WriteLine("{0}: {1}", label.Name, label.Confidence);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
- Ruby
-
Contoh ini menampilkan daftar label yang terdeteksi pada citra input. Ganti nilai-nilai bucket
dan photo
dengan nama bucket Amazon S3 dan citra yang Anda gunakan di Langkah 2.
# Add to your Gemfile
# gem 'aws-sdk-rekognition'
require 'aws-sdk-rekognition'
credentials = Aws::Credentials.new(
ENV['AWS_ACCESS_KEY_ID'],
ENV['AWS_SECRET_ACCESS_KEY']
)
bucket = 'bucket' # the bucket name without s3://
photo = 'photo' # the name of file
client = Aws::Rekognition::Client.new credentials: credentials
attrs = {
image: {
s3_object: {
bucket: bucket,
name: photo
},
},
max_labels: 10
}
response = client.detect_labels attrs
puts "Detected labels for: #{photo}"
response.labels.each do |label|
puts "Label: #{label.name}"
puts "Confidence: #{label.confidence}"
puts "Instances:"
label['instances'].each do |instance|
box = instance['bounding_box']
puts " Bounding box:"
puts " Top: #{box.top}"
puts " Left: #{box.left}"
puts " Width: #{box.width}"
puts " Height: #{box.height}"
puts " Confidence: #{instance.confidence}"
end
puts "Parents:"
label.parents.each do |parent|
puts " #{parent.name}"
end
puts "------------"
puts ""
end
- Node.js
-
Contoh ini menampilkan daftar label yang terdeteksi pada citra input. Ganti nilai-nilai bucket
dan photo
dengan nama bucket Amazon S3 dan citra yang Anda gunakan di Langkah 2. Ganti nilai profile_name
di baris yang membuat sesi Rekognition dengan nama profil pengembang Anda.
Jika Anda menggunakan TypeScript definisi, Anda mungkin perlu menggunakan import AWS from 'aws-sdk'
alih-alihconst
AWS = require('aws-sdk')
, untuk menjalankan program dengan Node.js. Anda dapat melihat AWS
SDK for Javascript untuk detailnya selengkapnya. Tergantung bagaimana konfigurasi diatur, Anda juga mungkin perlu menentukan wilayah Anda dengan AWS.config.update({region:region
});
.
// Load the SDK
var AWS = require('aws-sdk');
const bucket = 'bucket-name' // the bucketname without s3://
const photo = 'image-name' // the name of file
var credentials = new AWS.SharedIniFileCredentials({profile: 'profile-name'});
AWS.config.credentials = credentials;
AWS.config.update({region:'region-name'});
const client = new AWS.Rekognition();
const params = {
Image: {
S3Object: {
Bucket: bucket,
Name: photo
},
},
MaxLabels: 10
}
client.detectLabels(params, function(err, response) {
if (err) {
console.log(err, err.stack); // if an error occurred
} else {
console.log(`Detected labels for: ${photo}`)
response.Labels.forEach(label => {
console.log(`Label: ${label.Name}`)
console.log(`Confidence: ${label.Confidence}`)
console.log("Instances:")
label.Instances.forEach(instance => {
let box = instance.BoundingBox
console.log(" Bounding box:")
console.log(` Top: ${box.Top}`)
console.log(` Left: ${box.Left}`)
console.log(` Width: ${box.Width}`)
console.log(` Height: ${box.Height}`)
console.log(` Confidence: ${instance.Confidence}`)
})
console.log("Parents:")
label.Parents.forEach(parent => {
console.log(` ${parent.Name}`)
})
console.log("------------")
console.log("")
}) // for response.labels
} // if
});
- Java V2
-
Kode ini diambil dari GitHub repositori contoh SDK AWS Dokumentasi. Lihat contoh lengkapnya di sini.
//snippet-start:[rekognition.java2.detect_labels.import]
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.rekognition.RekognitionClient;
import software.amazon.awssdk.services.rekognition.model.Image;
import software.amazon.awssdk.services.rekognition.model.DetectLabelsRequest;
import software.amazon.awssdk.services.rekognition.model.DetectLabelsResponse;
import software.amazon.awssdk.services.rekognition.model.Label;
import software.amazon.awssdk.services.rekognition.model.RekognitionException;
import software.amazon.awssdk.services.rekognition.model.S3Object;
import java.util.List;
/**
* Before running this Java V2 code example, set up your development environment, including your credentials.
*
* For more information, see the following documentation topic:
*
* https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
*/
public class DetectLabels {
public static void main(String[] args) {
final String usage = "\n" +
"Usage: " +
" <bucket> <image>\n\n" +
"Where:\n" +
" bucket - The name of the Amazon S3 bucket that contains the image (for example, ,ImageBucket)." +
" image - The name of the image located in the Amazon S3 bucket (for example, Lake.png). \n\n";
if (args.length != 2) {
System.out.println(usage);
System.exit(1);
}
String bucket = args[0];
String image = args[1];
Region region = Region.US_WEST_2;
RekognitionClient rekClient = RekognitionClient.builder()
.region(region)
.credentialsProvider(ProfileCredentialsProvider.create("profile-name"))
.build();
getLabelsfromImage(rekClient, bucket, image);
rekClient.close();
}
// snippet-start:[rekognition.java2.detect_labels_s3.main]
public static void getLabelsfromImage(RekognitionClient rekClient, String bucket, String image) {
try {
S3Object s3Object = S3Object.builder()
.bucket(bucket)
.name(image)
.build() ;
Image myImage = Image.builder()
.s3Object(s3Object)
.build();
DetectLabelsRequest detectLabelsRequest = DetectLabelsRequest.builder()
.image(myImage)
.maxLabels(10)
.build();
DetectLabelsResponse labelsResponse = rekClient.detectLabels(detectLabelsRequest);
List<Label> labels = labelsResponse.labels();
System.out.println("Detected labels for the given photo");
for (Label label: labels) {
System.out.println(label.name() + ": " + label.confidence().toString());
}
} catch (RekognitionException e) {
System.out.println(e.getMessage());
System.exit(1);
}
}
// snippet-end:[rekognition.java2.detect_labels.main]
}
DetectLabels permintaan operasi
Input ke DetectLabel
adalah citra. Dalam contoh input JSON ini, citra sumber dimuat dari Bucket Amazon S3. MaxLabels
adalah jumlah maksimum label yang dikembalikan dalam respons. MinConfidence
adalah kepercayaan minimum yang harus dimiliki Amazon Rekognition Image dalam keakuratan label yang terdeteksi agar dapat dikembalikan dalam respons.
Fitur memungkinkan Anda menentukan satu atau lebih fitur gambar yang ingin Anda kembalikan, memungkinkan Anda untuk memilih GENERAL_LABELS
danIMAGE_PROPERTIES
. Termasuk GENERAL_LABELS
akan mengembalikan label yang terdeteksi dalam gambar input, sementara termasuk IMAGE_PROPERTIES
akan memungkinkan Anda untuk mengakses warna dan kualitas gambar.
Pengaturan memungkinkan Anda memfilter item yang dikembalikan untuk IMAGE_PROPERTIES
fitur GENERAL_LABELS
dan fitur. Untuk label, Anda dapat menggunakan filter inklusif dan eksklusif. Anda juga dapat memfilter berdasarkan label khusus, label individual atau berdasarkan kategori label:
-
LabelInclusionFilters - Memungkinkan Anda menentukan label mana yang ingin Anda sertakan dalam respons.
-
LabelExclusionFilters - Memungkinkan Anda menentukan label mana yang ingin Anda kecualikan dari respons.
-
LabelCategoryInclusionFilters - Memungkinkan Anda menentukan kategori label mana yang ingin Anda sertakan dalam respons.
-
LabelCategoryExclusionFilters - Memungkinkan Anda menentukan kategori label mana yang ingin Anda kecualikan dari respons.
Anda juga dapat menggabungkan filter inklusif dan eksklusif sesuai dengan kebutuhan Anda, tidak termasuk beberapa label atau kategori dan termasuk yang lain.
IMAGE_PROPERTIES
mengacu pada warna dominan gambar dan atribut kualitas seperti ketajaman, kecerahan, dan kontras. Saat mendeteksi IMAGE_PROPERTIES
Anda dapat menentukan jumlah maksimum warna dominan untuk kembali (default adalah 10) dengan menggunakan MaxDominantColors
parameter.
{
"Image": {
"S3Object": {
"Bucket": "bucket",
"Name": "input.jpg"
}
},
"MaxLabels": 10,
"MinConfidence": 75,
"Features": [ "GENERAL_LABELS", "IMAGE_PROPERTIES" ],
"Settings": {
"GeneralLabels": {
"LabelInclusionFilters": [<Label(s)>],
"LabelExclusionFilters": [<Label(s)>],
"LabelCategoryInclusionFilters": [<Category Name(s)>],
"LabelCategoryExclusionFilters": [<Category Name(s)>]
},
"ImageProperties": {
"MaxDominantColors":10
}
}
}
DetectLabels respon
Respons dari DetectLabels
adalah array label yang terdeteksi dalam citra dan tingkat kepercayaan yang digunakan untuk mendeteksinya.
Berikut ini adalah contoh respons dari DetectLabels
. Contoh respons di bawah ini berisi berbagai atribut yang dikembalikan untuk GENERAL_LABELS, termasuk:
-
Nama - Nama label yang terdeteksi. Dalam contoh ini, operasi mendeteksi objek dengan label Ponsel.
-
Keyakinan - Setiap label memiliki tingkat kepercayaan yang terkait. Dalam contoh ini, kepercayaan untuk label adalah 99,36%.
-
Orang tua - Label leluhur untuk label yang terdeteksi. Dalam contoh ini, label Ponsel memiliki satu label induk bernama Telepon.
-
Alias - Informasi tentang kemungkinan Alias untuk label. Dalam contoh ini, label Ponsel memiliki kemungkinan alias Ponsel.
-
Kategori - Kategori label yang dimiliki label yang terdeteksi. Dalam contoh ini, itu adalah Teknologi dan Komputasi.
Respons untuk label objek umum mencakup informasi kotak pembatas untuk lokasi label pada citra input. Misalnya, label Orang memiliki array instans yang berisi dua kotak batas. Ini adalah lokasi dari dua orang yang terdeteksi dalam citra.
Respons juga mencakup atribut mengenai IMAGE_PROPERTIES. Atribut yang disajikan oleh fitur IMAGE_PROPERTIES adalah:
-
Kualitas - Informasi tentang Ketajaman, Kecerahan, dan Kontras gambar input, diberi skor antara 0 hingga 100. Kualitas dilaporkan untuk seluruh gambar dan untuk latar belakang dan latar depan gambar, jika tersedia. Namun, Kontras hanya dilaporkan untuk seluruh gambar sementara Ketajaman dan Kecerahan juga dilaporkan untuk Latar Belakang dan Latar Depan.
-
Warna Dominan - Array warna dominan dalam gambar. Setiap warna dominan dijelaskan dengan nama warna yang disederhanakan, palet warna CSS, nilai RGB, dan kode hex.
-
Foreground - Informasi tentang Warna dominan, Ketajaman dan Kecerahan latar depan gambar input.
-
Latar Belakang - Informasi tentang Warna dominan, Ketajaman dan Kecerahan latar belakang gambar input.
Ketika GENERAL_LABELS dan IMAGE_PROPERTIES digunakan bersama sebagai parameter input, Amazon Rekognition Image juga akan mengembalikan warna dominan objek dengan kotak pembatas.
Bidang LabelModelVersion
berisi nomor versi model deteksi yang digunakan oleh DetectLabels
.
{
"Labels": [
{
"Name": "Mobile Phone",
"Parents": [
{
"Name": "Phone"
}
],
"Aliases": [
{
"Name": "Cell Phone"
}
],
"Categories": [
{
"Name": "Technology and Computing"
}
],
"Confidence": 99.9364013671875,
"Instances": [
{
"BoundingBox": {
"Width": 0.26779675483703613,
"Height": 0.8562285900115967,
"Left": 0.3604024350643158,
"Top": 0.09245597571134567,
}
"Confidence": 99.9364013671875,
"DominantColors": [
{
"Red": 120,
"Green": 137,
"Blue": 132,
"HexCode": "3A7432",
"SimplifiedColor": "red",
"CssColor": "fuscia",
"PixelPercentage": 40.10
}
],
}
]
}
],
"ImageProperties": {
"Quality": {
"Brightness": 40,
"Sharpness": 40,
"Contrast": 24,
},
"DominantColors": [
{
"Red": 120,
"Green": 137,
"Blue": 132,
"HexCode": "3A7432",
"SimplifiedColor": "red",
"CssColor": "fuscia",
"PixelPercentage": 40.10
}
],
"Foreground": {
"Quality": {
"Brightness": 40,
"Sharpness": 40,
},
"DominantColors": [
{
"Red": 200,
"Green": 137,
"Blue": 132,
"HexCode": "3A7432",
"CSSColor": "",
"SimplifiedColor": "red",
"PixelPercentage": 30.70
}
],
}
"Background": {
"Quality": {
"Brightness": 40,
"Sharpness": 40,
},
"DominantColors": [
{
"Red": 200,
"Green": 137,
"Blue": 132,
"HexCode": "3A7432",
"CSSColor": "",
"SimplifiedColor": "Red",
"PixelPercentage": 10.20
}
],
},
},
"LabelModelVersion": "3.0"
}
Saat menggunakan DetectLabels API, Anda mungkin memerlukan struktur respons untuk meniru struktur respons API yang lebih lama, di mana label utama dan alias terkandung dalam daftar yang sama.
Berikut ini adalah contoh respons API saat ini dari DetectLabels:
"Labels": [
{
"Name": "Mobile Phone",
"Confidence": 99.99717712402344,
"Instances": [],
"Parents": [
{
"Name": "Phone"
}
],
"Aliases": [
{
"Name": "Cell Phone"
}
]
}
]
Contoh berikut menunjukkan respons sebelumnya dari DetectLabelsAPI:
"Labels": [
{
"Name": "Mobile Phone",
"Confidence": 99.99717712402344,
"Instances": [],
"Parents": [
{
"Name": "Phone"
}
]
},
{
"Name": "Cell Phone",
"Confidence": 99.99717712402344,
"Instances": [],
"Parents": [
{
"Name": "Phone"
}
]
},
]
Jika diperlukan, Anda dapat mengubah respons saat ini untuk mengikuti format respons yang lebih lama. Anda dapat menggunakan kode contoh berikut untuk mengubah respons API terbaru ke struktur respons API sebelumnya:
- Python
-
Contoh kode berikut menunjukkan cara mengubah respons saat ini dari DetectLabels API. Dalam contoh kode di bawah ini, Anda dapat mengganti nilai EXAMPLE_INFERENCE_OUTPUT
dengan output dari DetectLabels operasi yang telah Anda jalankan.
from copy import deepcopy
LABEL_KEY = "Labels"
ALIASES_KEY = "Aliases"
INSTANCE_KEY = "Instances"
NAME_KEY = "Name"
#Latest API response sample
EXAMPLE_INFERENCE_OUTPUT = {
"Labels": [
{
"Name": "Mobile Phone",
"Confidence": 97.530106,
"Categories": [
{
"Name": "Technology and Computing"
}
],
"Aliases": [
{
"Name": "Cell Phone"
}
],
"Instances":[
{
"BoundingBox":{
"Height":0.1549897,
"Width":0.07747964,
"Top":0.50858885,
"Left":0.00018205095
},
"Confidence":98.401276
}
]
},
{
"Name": "Urban",
"Confidence": 99.99982,
"Categories": [
"Colors and Visual Composition"
]
}
]
}
def expand_aliases(inferenceOutputsWithAliases):
if LABEL_KEY in inferenceOutputsWithAliases:
expandInferenceOutputs = []
for primaryLabelDict in inferenceOutputsWithAliases[LABEL_KEY]:
if ALIASES_KEY in primaryLabelDict:
for alias in primaryLabelDict[ALIASES_KEY]:
aliasLabelDict = deepcopy(primaryLabelDict)
aliasLabelDict[NAME_KEY] = alias[NAME_KEY]
del aliasLabelDict[ALIASES_KEY]
if INSTANCE_KEY in aliasLabelDict:
del aliasLabelDict[INSTANCE_KEY]
expandInferenceOutputs.append(aliasLabelDict)
inferenceOutputsWithAliases[LABEL_KEY].extend(expandInferenceOutputs)
return inferenceOutputsWithAliases
if __name__ == "__main__":
outputWithExpandAliases = expand_aliases(EXAMPLE_INFERENCE_OUTPUT)
print(outputWithExpandAliases)
Di bawah ini adalah contoh respons yang diubah:
#Output example after the transformation
{
"Labels": [
{
"Name": "Mobile Phone",
"Confidence": 97.530106,
"Categories": [
{
"Name": "Technology and Computing"
}
],
"Aliases": [
{
"Name": "Cell Phone"
}
],
"Instances":[
{
"BoundingBox":{
"Height":0.1549897,
"Width":0.07747964,
"Top":0.50858885,
"Left":0.00018205095
},
"Confidence":98.401276
}
]
},
{
"Name": "Cell Phone",
"Confidence": 97.530106,
"Categories": [
{
"Name": "Technology and Computing"
}
],
"Instances":[]
},
{
"Name": "Urban",
"Confidence": 99.99982,
"Categories": [
"Colors and Visual Composition"
]
}
]
}