Mendeteksi anomali dalam gambar - Amazon Lookout for Vision

Pemberitahuan akhir dukungan: Pada 31 Oktober 2025, AWS akan menghentikan dukungan untuk Amazon Lookout for Vision. Setelah 31 Oktober 2025, Anda tidak akan lagi dapat mengakses konsol Lookout for Vision atau sumber daya Lookout for Vision. Untuk informasi lebih lanjut, kunjungi posting blog ini.

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

Mendeteksi anomali dalam gambar

Untuk mendeteksi anomali dalam gambar dengan model Amazon Lookout for Vision yang terlatih, Anda memanggil operasi. DetectAnomalies Hasil dari DetectAnomalies termasuk prediksi Boolean yang mengklasifikasikan gambar sebagai mengandung satu atau lebih anomali dan nilai kepercayaan untuk prediksi. Jika modelnya adalah model segmentasi gambar, hasilnya juga mencakup topeng berwarna yang menunjukkan posisi berbagai jenis anomali.

Gambar yang Anda berikan DetectAnomalies harus memiliki dimensi lebar dan tinggi yang sama dengan gambar yang Anda gunakan untuk melatih model.

DetectAnomaliesmenerima gambar sebagai PNG atau JPG memformat gambar. Kami merekomendasikan bahwa gambar dalam format pengkodean dan kompresi yang sama seperti yang digunakan untuk melatih model. Misalnya, jika Anda melatih model dengan gambar PNG format, panggil DetectAnomalies dengan gambar PNG format.

Sebelum meneleponDetectAnomalies, Anda harus terlebih dahulu memulai model Anda dengan StartModel operasi. Untuk informasi selengkapnya, lihat Memulai model Amazon Lookout for Vision Anda. Anda dikenakan biaya untuk jumlah waktu, dalam menit, yang dijalankan model dan untuk jumlah unit deteksi anomali yang digunakan model Anda. Jika Anda tidak menggunakan model, gunakan StopModel operasi untuk menghentikan model Anda. Untuk informasi selengkapnya, lihat Menghentikan model Amazon Lookout for Vision Anda.

Memanggil DetectAnomalies

Untuk meneleponDetectAnomalies, tentukan yang berikut ini:

  • Proyek — Nama proyek yang berisi model yang ingin Anda gunakan.

  • ModelVersion— Versi model yang ingin Anda gunakan.

  • ContentType— Jenis gambar yang ingin Anda analisis. Nilai yang valid adalah image/png (PNGformat gambar) dan image/jpeg (JPGformat gambar).

  • Body — Byte biner yang tidak dikodekan yang mewakili gambar.

    Gambar harus memiliki dimensi yang sama dengan gambar yang digunakan untuk melatih model.

Contoh berikut menunjukkan cara meneleponDetectAnomalies. Anda dapat menggunakan respons fungsi dari contoh Python dan Java untuk memanggil fungsi. Menentukan apakah suatu gambar anomali

AWS CLI

AWS CLI Perintah ini menampilkan JSON output untuk DetectAnomalies CLI operasi. Ubah nilai parameter input berikut:

  • project namedengan nama proyek yang ingin Anda gunakan.

  • model versiondengan versi model yang ingin Anda gunakan.

  • content typedengan jenis gambar yang ingin Anda gunakan. Nilai yang valid adalah image/png (PNGformat gambar) dan image/jpeg (JPGformat gambar).

  • file namedengan jalur dan nama file gambar yang ingin Anda gunakan. Pastikan bahwa jenis file cocok dengan nilaicontent-type.

aws lookoutvision detect-anomalies --project-name project name\ --model-version model version\ --content-type content type\ --body file name \ --profile lookoutvision-access
Python

Untuk contoh kode lengkap, lihat GitHub.

def detect_anomalies(lookoutvision_client, project_name, model_version, photo): """ Calls DetectAnomalies using the supplied project, model version, and image. :param lookoutvision_client: A Lookout for Vision Boto3 client. :param project: The project that contains the model that you want to use. :param model_version: The version of the model that you want to use. :param photo: The photo that you want to analyze. :return: The DetectAnomalyResult object that contains the analysis results. """ image_type = imghdr.what(photo) if image_type == "jpeg": content_type = "image/jpeg" elif image_type == "png": content_type = "image/png" else: logger.info("Invalid image type for %s", photo) raise ValueError( f"Invalid file format. Supply a jpeg or png format file: {photo}") # Get images bytes for call to detect_anomalies with open(photo, "rb") as image: response = lookoutvision_client.detect_anomalies( ProjectName=project_name, ContentType=content_type, Body=image.read(), ModelVersion=model_version) return response['DetectAnomalyResult']
Java V2
public static DetectAnomalyResult detectAnomalies(LookoutVisionClient lfvClient, String projectName, String modelVersion, String photo) throws IOException, LookoutVisionException { /** * Creates an Amazon Lookout for Vision dataset from a manifest file. * Returns after Lookout for Vision creates the dataset. * * @param lfvClient An Amazon Lookout for Vision client. * @param projectName The name of the project in which you want to create a * dataset. * @param modelVersion The version of the model that you want to use. * * @param photo The photo that you want to analyze. * * @return DetectAnomalyResult The analysis result from DetectAnomalies. */ logger.log(Level.INFO, "Processing local file: {0}", photo); // Get image bytes. InputStream sourceStream = new FileInputStream(new File(photo)); SdkBytes imageSDKBytes = SdkBytes.fromInputStream(sourceStream); byte[] imageBytes = imageSDKBytes.asByteArray(); // Get the image type. Can be image/jpeg or image/png. String contentType = getImageType(imageBytes); // Detect anomalies in the supplied image. DetectAnomaliesRequest request = DetectAnomaliesRequest.builder().projectName(projectName) .modelVersion(modelVersion).contentType(contentType).build(); DetectAnomaliesResponse response = lfvClient.detectAnomalies(request, RequestBody.fromBytes(imageBytes)); /* * Tip: You can also use the following to analyze a local file. * Path path = Paths.get(photo); * DetectAnomaliesResponse response = lfvClient.detectAnomalies(request, path); */ DetectAnomalyResult result = response.detectAnomalyResult(); String prediction = "Prediction: Normal"; if (Boolean.TRUE.equals(result.isAnomalous())) { prediction = "Prediction: Anomalous"; } // Convert confidence to percentage. NumberFormat defaultFormat = NumberFormat.getPercentInstance(); defaultFormat.setMinimumFractionDigits(1); String confidence = String.format("Confidence: %s", defaultFormat.format(result.confidence())); // Log classification result. String photoPath = "File: " + photo; String[] imageLines = { photoPath, prediction, confidence }; logger.log(Level.INFO, "Image: {0}\nAnomalous: {1}\nConfidence {2}", imageLines); return result; } // Gets the image mime type. Supported formats are image/jpeg and image/png. private static String getImageType(byte[] image) throws IOException { InputStream is = new BufferedInputStream(new ByteArrayInputStream(image)); String mimeType = URLConnection.guessContentTypeFromStream(is); logger.log(Level.INFO, "Image type: {0}", mimeType); if (mimeType.equals("image/jpeg") || mimeType.equals("image/png")) { return mimeType; } // Not a supported file type. logger.log(Level.SEVERE, "Unsupported image type: {0}", mimeType); throw new IOException(String.format("Wrong image type. %s format isn't supported.", mimeType)); }

Memahami respon dari DetectAnomalies

Respons dari DetectAnomalies bervariasi tergantung pada jenis model yang Anda latih (model klasifikasi atau model segmentasi). Dalam kedua kasus, responsnya adalah DetectAnomalyResultobjek.

Model klasifikasi

Jika model Anda adalahModel klasifikasi gambar, respons dari DetectAnomalies berisi yang berikut:

  • IsAnomalous— Indikator Boolean bahwa gambar berisi satu atau lebih anomali.

  • Keyakinan — Keyakinan yang dimiliki Amazon Lookout for Vision dalam keakuratan prediksi anomali (). IsAnomalous Confidenceadalah nilai floating point antara 0 dan 1. Nilai yang lebih tinggi menunjukkan kepercayaan yang lebih tinggi.

  • Sumber — Informasi tentang gambar diteruskan keDetectAnomalies.

{ "DetectAnomalyResult": { "Source": { "Type": "direct" }, "IsAnomalous": true, "Confidence": 0.9996867775917053 } }

Anda menentukan apakah dalam gambar anomali dengan memeriksa IsAnomalous bidang dan mengonfirmasi bahwa Confidence nilainya cukup tinggi untuk kebutuhan Anda.

Jika Anda menemukan nilai kepercayaan yang dikembalikan DetectAnomalies terlalu rendah, pertimbangkan untuk melatih kembali modelnya. Untuk kode sampel, lihat Klasifikasi.

Model segmentasi

Jika model Anda adalahModel segmentasi gambar, responsnya mencakup informasi klasifikasi dan informasi segmentasi, seperti topeng gambar dan jenis anomali. Informasi klasifikasi dihitung secara terpisah dari informasi segmentasi dan Anda tidak boleh menganggap hubungan di antara mereka. Jika Anda tidak mendapatkan informasi segmentasi dalam tanggapan, periksa apakah Anda memiliki versi terbaru dari yang AWS SDK diinstal (AWS Command Line Interface, jika Anda menggunakan AWS CLI). Misalnya kode, lihat Segmentasi danMenampilkan informasi klasifikasi dan segmentasi.

  • IsAnomalous(klasifikasi) — Indikator Boolean yang mengklasifikasikan gambar sebagai normal atau anomali.

  • Keyakinan (klasifikasi) - Keyakinan yang dimiliki Amazon Lookout for Vision dalam keakuratan klasifikasi gambar (). IsAnomalous Confidenceadalah nilai floating point antara 0 dan 1. Nilai yang lebih tinggi menunjukkan kepercayaan yang lebih tinggi.

  • Sumber — Informasi tentang gambar diteruskan keDetectAnomalies.

  • AnomalyMask(segmentasi) — Masker piksel yang menutupi anomali yang ditemukan pada gambar yang dianalisis. Mungkin ada beberapa anomali pada gambar. Warna peta topeng menunjukkan jenis anomali. Warna topeng memetakan ke warna yang ditetapkan untuk jenis anomali dalam kumpulan data pelatihan. Untuk menemukan jenis anomali dari warna topeng, periksa Color di PixelAnomaly bidang setiap anomali yang dikembalikan dalam daftar. Anomalies Untuk kode sampel, lihat Menampilkan informasi klasifikasi dan segmentasi.

  • Anomali (segmentasi) — Daftar anomali yang ditemukan dalam gambar. Setiap anomali mencakup jenis anomali (Name), dan informasi piksel (). PixelAnomaly TotalPercentageAreaadalah persentase area gambar yang dicakup oleh anomali. Coloradalah warna topeng untuk anomali.

    Elemen pertama dalam daftar selalu merupakan tipe anomali yang mewakili latar belakang gambar (BACKGROUND) dan tidak boleh dianggap sebagai anomali. Amazon Lookout for Vision secara otomatis menambahkan jenis anomali latar belakang ke respons. Anda tidak perlu mendeklarasikan jenis anomali latar belakang dalam kumpulan data Anda.

{ "DetectAnomalyResult": { "Source": { "Type": "direct" }, "IsAnomalous": true, "Confidence": 0.9996814727783203, "Anomalies": [ { "Name": "background", "PixelAnomaly": { "TotalPercentageArea": 0.998999834060669, "Color": "#FFFFFF" } }, { "Name": "scratch", "PixelAnomaly": { "TotalPercentageArea": 0.0004034999874420464, "Color": "#7ED321" } }, { "Name": "dent", "PixelAnomaly": { "TotalPercentageArea": 0.0005966666503809392, "Color": "#4DD8FF" } } ], "AnomalyMask": "iVBORw0....." } }