Mendeteksi citra yang tidak pantas - Amazon Rekognition

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mendeteksi citra yang tidak pantas

Anda dapat menggunakan DetectModerationLabelsoperasi untuk menentukan apakah gambar berisi konten yang tidak pantas atau menyinggung. Untuk daftar label moderasi di Amazon Rekognition, lihat Menggunakan moderasi gambar dan video. APIs

Mendeteksi konten yang tidak pantas dalam gambar

Citra harus dalam format .jpg atau .png. Anda dapat menyediakan citra input sebagai array bit citra (bit citra yang dikodekan base64), atau menentukan objek Amazon S3. Dalam prosedur ini, Anda mengunggah citra (.jpg atau .png) ke bucket S3 Anda.

Untuk menjalankan prosedur ini, Anda harus AWS SDK menginstal AWS CLI atau yang sesuai. Untuk informasi selengkapnya, lihat Memulai dengan Amazon Rekognition. AWSAkun yang Anda gunakan harus memiliki izin akses ke Amazon RekognitionAPI. Untuk informasi selengkapnya, lihat Tindakan yang Ditetapkan oleh Amazon Rekognition.

Untuk mendeteksi label moderasi dalam gambar () SDK
  1. Jika belum:

    1. Buat atau perbarui pengguna dengan AmazonRekognitionFullAccess dan AmazonS3ReadOnlyAccess izin. Untuk informasi selengkapnya, lihat Langkah 1: Siapkan AWS akun dan buat Pengguna.

    2. Instal dan konfigurasikan AWS CLI dan AWS SDKs. Untuk informasi selengkapnya, lihat Langkah 2: Siapkan AWS CLI and AWS SDKs.

  2. Unggah citra ke bucket S3.

    Untuk petunjuk, lihat Mengunggah Objek ke Amazon S3 di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

  3. Gunakan contoh berikut untuk memanggil operasi DetectModerationLabels.

    Java

    Contoh output ini mendeteksi nama label konten yang tidak pantas, tingkat kepercayaan, dan label induk untuk label moderasi yang terdeteksi.

    Ganti nilai-nilai bucket dan photo dengan nama bucket S3 dan nama file citra yang Anda gunakan pada 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.) package aws.example.rekognition.image; 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.DetectModerationLabelsRequest; import com.amazonaws.services.rekognition.model.DetectModerationLabelsResult; import com.amazonaws.services.rekognition.model.Image; import com.amazonaws.services.rekognition.model.ModerationLabel; import com.amazonaws.services.rekognition.model.S3Object; import java.util.List; public class DetectModerationLabels { public static void main(String[] args) throws Exception { String photo = "input.jpg"; String bucket = "bucket"; AmazonRekognition rekognitionClient = AmazonRekognitionClientBuilder.defaultClient(); DetectModerationLabelsRequest request = new DetectModerationLabelsRequest() .withImage(new Image().withS3Object(new S3Object().withName(photo).withBucket(bucket))) .withMinConfidence(60F); try { DetectModerationLabelsResult result = rekognitionClient.detectModerationLabels(request); List<ModerationLabel> labels = result.getModerationLabels(); System.out.println("Detected labels for " + photo); for (ModerationLabel label : labels) { System.out.println("Label: " + label.getName() + "\n Confidence: " + label.getConfidence().toString() + "%" + "\n Parent:" + label.getParentName()); } } catch (AmazonRekognitionException e) { e.printStackTrace(); } } }
    Java V2

    Kode ini diambil dari GitHub repositori SDK contoh AWS Dokumentasi. Lihat contoh lengkapnya di sini.

    //snippet-start:[rekognition.java2.recognize_video_text.import] //snippet-start:[rekognition.java2.detect_mod_labels.import] import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider; import software.amazon.awssdk.core.SdkBytes; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.rekognition.RekognitionClient; import software.amazon.awssdk.services.rekognition.model.RekognitionException; import software.amazon.awssdk.services.rekognition.model.Image; import software.amazon.awssdk.services.rekognition.model.DetectModerationLabelsRequest; import software.amazon.awssdk.services.rekognition.model.DetectModerationLabelsResponse; import software.amazon.awssdk.services.rekognition.model.ModerationLabel; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.util.List; //snippet-end:[rekognition.java2.detect_mod_labels.import] /** * 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 ModerateLabels { public static void main(String[] args) { final String usage = "\n" + "Usage: " + " <sourceImage>\n\n" + "Where:\n" + " sourceImage - The path to the image (for example, C:\\AWS\\pic1.png). \n\n"; if (args.length < 1) { System.out.println(usage); System.exit(1); } String sourceImage = args[0]; Region region = Region.US_WEST_2; RekognitionClient rekClient = RekognitionClient.builder() .region(region) .credentialsProvider(ProfileCredentialsProvider.create("profile-name")) .build(); detectModLabels(rekClient, sourceImage); rekClient.close(); } // snippet-start:[rekognition.java2.detect_mod_labels.main] public static void detectModLabels(RekognitionClient rekClient, String sourceImage) { try { InputStream sourceStream = new FileInputStream(sourceImage); SdkBytes sourceBytes = SdkBytes.fromInputStream(sourceStream); Image souImage = Image.builder() .bytes(sourceBytes) .build(); DetectModerationLabelsRequest moderationLabelsRequest = DetectModerationLabelsRequest.builder() .image(souImage) .minConfidence(60F) .build(); DetectModerationLabelsResponse moderationLabelsResponse = rekClient.detectModerationLabels(moderationLabelsRequest); List<ModerationLabel> labels = moderationLabelsResponse.moderationLabels(); System.out.println("Detected labels for image"); for (ModerationLabel label : labels) { System.out.println("Label: " + label.name() + "\n Confidence: " + label.confidence().toString() + "%" + "\n Parent:" + label.parentName()); } } catch (RekognitionException | FileNotFoundException e) { e.printStackTrace(); System.exit(1); } } // snippet-end:[rekognition.java2.detect_mod_labels.main]
    AWS CLI

    AWS CLI Perintah ini menampilkan JSON output untuk detect-moderation-labels CLI operasi.

    Ganti bucket dan input.jpg dengan nama bucket S3 dan nama file citra yang Anda gunakan pada langkah 2. Ganti nilai profile_name dengan nama profil pengembang Anda. Untuk menggunakan adaptor, berikan ARN versi proyek ke project-version parameter.

    aws rekognition detect-moderation-labels --image "{S3Object:{Bucket:<bucket-name>,Name:<image-name>}}" \ --profile profile-name \ --project-version "ARN"

    Jika Anda mengakses 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. CLI Sebagai contoh, lihat berikut ini:

    aws rekognition detect-moderation-labels --image "{\"S3Object\":{\"Bucket\":\"bucket-name\",\"Name\":\"image-name\"}}" \ --profile profile-name
    Python

    Contoh output ini mendeteksi nama label konten yang tidak pantas atau menyinggung, tingkat kepercayaan, dan label induk untuk label konten yang tidak pantas terdeteksi.

    Dalam fungsi main, ganti nilai-nilai bucket dan photo dengan nama bucket S3 dan nama file 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 moderate_image(photo, bucket): session = boto3.Session(profile_name='profile-name') client = session.client('rekognition') response = client.detect_moderation_labels(Image={'S3Object':{'Bucket':bucket,'Name':photo}}) print('Detected labels for ' + photo) for label in response['ModerationLabels']: print (label['Name'] + ' : ' + str(label['Confidence'])) print (label['ParentName']) return len(response['ModerationLabels']) def main(): photo='image-name' bucket='bucket-name' label_count=moderate_image(photo, bucket) print("Labels detected: " + str(label_count)) if __name__ == "__main__": main()
    .NET

    Contoh output ini mendeteksi nama label konten yang tidak pantas atau menyinggung, tingkat kepercayaan, dan label induk untuk label moderasi yang terdeteksi.

    Ganti nilai-nilai bucket dan photo dengan nama bucket S3 dan nama file citra yang Anda gunakan pada 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 DetectModerationLabels { public static void Example() { String photo = "input.jpg"; String bucket = "bucket"; AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient(); DetectModerationLabelsRequest detectModerationLabelsRequest = new DetectModerationLabelsRequest() { Image = new Image() { S3Object = new S3Object() { Name = photo, Bucket = bucket }, }, MinConfidence = 60F }; try { DetectModerationLabelsResponse detectModerationLabelsResponse = rekognitionClient.DetectModerationLabels(detectModerationLabelsRequest); Console.WriteLine("Detected labels for " + photo); foreach (ModerationLabel label in detectModerationLabelsResponse.ModerationLabels) Console.WriteLine("Label: {0}\n Confidence: {1}\n Parent: {2}", label.Name, label.Confidence, label.ParentName); } catch (Exception e) { Console.WriteLine(e.Message); } } }

DetectModerationLabels permintaan operasi

Input ke DetectModerationLabels adalah citra. Dalam contoh JSON input ini, gambar sumber dimuat dari bucket Amazon S3. MinConfidenceadalah kepercayaan minimum yang harus dimiliki Gambar Rekognition Amazon dalam keakuratan label yang terdeteksi agar dapat dikembalikan sebagai respons.

{ "Image": { "S3Object": { "Bucket": "bucket", "Name": "input.jpg" } }, "MinConfidence": 60 }

DetectModerationLabels respon operasi

DetectModerationLabels dapat mengambil citra input dari bucket S3, atau Anda dapat menyediakannya sebagai bit citra. Contoh berikut adalah respons dari panggilan ke DetectModerationLabels.

Dalam contoh JSON respons berikut, perhatikan hal berikut:

  • Informasi Deteksi Citra yang Tidak Pantas – Contoh menunjukkan daftar label untuk konten yang tidak pantas atau menyinggung yang ditemukan dalam citra. Daftar tersebut mencakup label tingkat atas dan setiap label tingkat kedua yang terdeteksi dalam citra.

    Label – Setiap label memiliki nama, estimasi kepercayaan bahwa Amazon Rekognition memiliki label akurat, dan nama label induknya. Nama induk untuk label tingkat atas adalah "".

    kepercayaan label – Setiap label memiliki nilai kepercayaan antara 0 hingga 100 yang menunjukkan persentase kepercayaan jika Amazon Rekognition memiliki label yang benar. Anda menentukan tingkat kepercayaan yang diperlukan untuk label yang akan dikembalikan dalam respons dalam permintaan API operasi.

{ "ModerationLabels": [ { "Confidence": 99.44782257080078, "Name": "Smoking", "ParentName": "Drugs & Tobacco Paraphernalia & Use", "TaxonomyLevel": 3 }, { "Confidence": 99.44782257080078, "Name": "Drugs & Tobacco Paraphernalia & Use", "ParentName": "Drugs & Tobacco", "TaxonomyLevel": 2 }, { "Confidence": 99.44782257080078, "Name": "Drugs & Tobacco", "ParentName": "", "TaxonomyLevel": 1 } ], "ModerationModelVersion": "7.0", "ContentTypes": [ { "Confidence": 99.9999008178711, "Name": "Illustrated" } ] }