メニュー
Amazon Rekognition
開発者ガイド

ステップ 4: API の使用開始

この演習では、DetectLabels API オペレーションを使用して、入力として渡したイメージ (JPEG または PNG) 内の物体、概念、シーンを検出します。入力イメージとして、イメージのバイト配列 (Base64 でエンコードされたイメージのバイト) を指定するか、S3 オブジェクトを指定することができます。この演習では、JPEG イメージを Amazon S3 バケットにアップロードし、オブジェクトのキー名を指定します。

以下の例では、このオペレーションを AWS CLI、AWS SDK for Java、および AWS SDK for Python (Boto) で使用する方法を示します。

  1. イメージ (樹木、家、ボートなど、1 つ以上の物体を含むもの) をS3 バケットにアップロードします。この演習では .jpg イメージを前提としています。.png を使用する場合は、それに応じてコードを更新してください。

    手順については、Amazon Simple Storage Service コンソールユーザーガイドAmazon S3 へのオブジェクトのアップロードを参照してください。

  2. 次のコード例を使用して、DetectLabels オペレーションを呼び出します。

    • AWS CLI の使用

      注記

      コマンドでは、「ステップ 2: AWS Command Line Interface (AWS CLI) を設定する」で設定した adminuser プロファイルを指定します。次に、AWS CLI コマンドは adminuser プロファイルに関連付けられている認証情報を使用してリクエストに署名し、これを認証します。このプロファイルを指定しない場合、デフォルトプロファイルが指定されたと見なされます。

      aws rekognition detect-labels \ --image '{"S3Object":{"Bucket":"bucketname","Name":"object.jpg"}}' \ --region us-east-1 \ --profile adminuser
    • AWS SDK for Java の使用

      import com.amazonaws.services.rekognition.AmazonRekognition; import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder; import com.amazonaws.AmazonClientException; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; 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 DetectLabelsExample { public static void main(String[] args) throws Exception { String photo = "photo.jpg"; String bucket = "S3bucket"; AWSCredentials credentials; try { credentials = new ProfileCredentialsProvider("AdminUser").getCredentials(); } catch(Exception e) { throw new AmazonClientException("Cannot load the credentials from the credential profiles file. " + "Please make sure that your credentials file is at the correct " + "location (/Users/userid/.aws/credentials), and is in a valid format.", e); } AmazonRekognition rekognitionClient = AmazonRekognitionClientBuilder .standard() .withRegion(Regions.US_WEST_2) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build(); 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(); } } }
    • AWS SDK for Python (Boto) の使用。

      import boto3 if __name__ == "__main__": fileName='input.jpg' bucket='bucketname' client=boto3.client('rekognition') response = client.detect_labels(Image={'S3Object':{'Bucket':bucket,'Name':fileName}},MinConfidence=75) print('Detected labels for ' + fileName) for label in response['Labels']: print (label['Name'] + ' : ' + str(label['Confidence']))