View a markdown version of this page

Klasifikasi objek gambar menggunakan kotak pembatas - Amazon SageMaker AI

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

Klasifikasi objek gambar menggunakan kotak pembatas

catatan

Amazon SageMaker Ground Truth tidak lagi terbuka untuk pelanggan baru. Pelanggan yang sudah ada dapat terus menggunakan layanan seperti biasa. AWS terus berinvestasi dalam peningkatan keamanan dan ketersediaan untuk Ground Truth, tetapi kami tidak berencana untuk memperkenalkan fitur baru.

Gambar yang digunakan untuk melatih model pembelajaran mesin sering mengandung lebih dari satu objek. Untuk mengklasifikasikan dan melokalisasi satu atau lebih objek dalam gambar, gunakan jenis tugas pekerjaan pelabelan kotak pembatas Amazon G SageMaker round Truth. Dalam konteks ini, lokalisasi berarti lokasi piksel dari kotak pembatas. Anda membuat pekerjaan pelabelan kotak pembatas menggunakan bagian Ground Truth dari konsol Amazon SageMaker AI atau CreateLabelingJob operasi.

penting

Untuk jenis tugas ini, jika Anda membuat file manifes sendiri, gunakan "source-ref" untuk mengidentifikasi lokasi setiap file gambar di Amazon S3 yang ingin Anda beri label. Untuk informasi selengkapnya, lihat Data input.

Membuat Pekerjaan Pelabelan Kotak Pembatas (Konsol)

Anda dapat mengikuti petunjuk Membuat Pekerjaan Pelabelan (Konsol) untuk mempelajari cara membuat pekerjaan pelabelan kotak pembatas di konsol SageMaker AI. Di Langkah 10, pilih Gambar dari menu tar ik- turun kategori Tugas, dan pilih Ko tak Bounding sebagai jenis tugas.

Ground Truth menyediakan UI pekerja yang mirip dengan berikut untuk tugas pelabelan. Saat membuat pekerjaan pelabelan dengan konsol, Anda menentukan instruksi untuk membantu pekerja menyelesaikan pekerjaan dan hingga 50 label yang dapat dipilih pekerja.

Gif menunjukkan cara menggambar kotak di sekitar objek untuk kategori.

Membuat Pekerjaan Pelabelan Kotak Pembatas (API)

Untuk membuat pekerjaan pelabelan kotak pembatas, gunakan operasi SageMaker CreateLabelingJob API. API ini mendefinisikan operasi ini untuk semua AWS SDK. Untuk melihat daftar SDK khusus bahasa yang didukung untuk operasi ini, tinjau bagian Lihat Juga dari. CreateLabelingJob

Ikuti petunjuk Membuat Pekerjaan Pelabelan (API) dan lakukan hal berikut saat Anda mengonfigurasi permintaan Anda:

  • Pre-annotation Fungsi lambda untuk jenis tugas ini diakhiri denganPRE-BoundingBox. Untuk menemukan pra-anotasi Lambda ARN untuk Wilayah Anda, lihat. PreHumanTaskLambdaArn

  • Annotation-consolidation Fungsi lambda untuk jenis tugas ini diakhiri denganACS-BoundingBox. Untuk menemukan lambda ARN konsolidasi anotasi untuk Wilayah Anda, lihat. AnnotationConsolidationLambdaArn

Berikut ini adalah contoh permintaan AWS Python SDK (Boto3) untuk membuat pekerjaan pelabelan di Wilayah AS Timur (Virginia Utara). Semua parameter berwarna merah harus diganti dengan spesifikasi dan sumber daya Anda.

response = client.create_labeling_job( LabelingJobName='example-bounding-box-labeling-job, LabelAttributeName='label', InputConfig={ 'DataSource': { 'S3DataSource': { 'ManifestS3Uri': 's3://bucket/path/manifest-with-input-data.json' } }, 'DataAttributes': { 'ContentClassifiers': [ 'FreeOfPersonallyIdentifiableInformation'|'FreeOfAdultContent', ] } }, OutputConfig={ 'S3OutputPath': 's3://bucket/path/file-to-store-output-data', 'KmsKeyId': 'string' }, RoleArn='arn:aws:iam::*:role/*, LabelCategoryConfigS3Uri='s3://bucket/path/label-categories.json', StoppingConditions={ 'MaxHumanLabeledObjectCount': 123, 'MaxPercentageOfInputDatasetLabeled': 123 }, HumanTaskConfig={ 'WorkteamArn': 'arn:aws:sagemaker:region:*:workteam/private-crowd/*', 'UiConfig': { 'UiTemplateS3Uri': 's3://bucket/path/worker-task-template.html' }, 'PreHumanTaskLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:PRE-BoundingBox', 'TaskKeywords': [ 'Bounding Box', ], 'TaskTitle': 'Bounding Box task', 'TaskDescription': 'Draw bounding boxes around objects in an image', 'NumberOfHumanWorkersPerDataObject': 123, 'TaskTimeLimitInSeconds': 123, 'TaskAvailabilityLifetimeInSeconds': 123, 'MaxConcurrentTaskCount': 123, 'AnnotationConsolidationConfig': { 'AnnotationConsolidationLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:ACS-BoundingBox' } }, Tags=[ { 'Key': 'string', 'Value': 'string' }, ] )

Menyediakan Template untuk Pekerjaan Pelabelan Kotak Pembatas

Jika Anda membuat pekerjaan pelabelan menggunakan API, Anda harus menyediakan template tugas pekerja diUiTemplateS3Uri. Salin dan modifikasi template berikut. Hanya memodifikasi short-instructions, full-instructions, danheader. Unggah template ini ke S3, dan berikan URI S3 untuk file ini diUiTemplateS3Uri.

<script src="https://assets.crowd.aws/crowd-html-elements.js"></script> <crowd-form> <crowd-bounding-box name="boundingBox" src="{{ task.input.taskObject | grant_read_access }}" header="please draw box" labels="{{ task.input.labels | to_json | escape }}" > <full-instructions header="Bounding box instructions"> <ol><li><strong>Inspect</strong> the image</li><li><strong>Determine</strong> if the specified label is/are visible in the picture.</li> <li><strong>Outline</strong> each instance of the specified label in the image using the provided “Box” tool.</li></ol> <ul><li>Boxes should fit tight around each object</li> <li>Do not include parts of the object are overlapping or that cannot be seen, even though you think you can interpolate the whole shape.</li> <li>Avoid including shadows.</li> <li>If the target is off screen, draw the box up to the edge of the image.</li> </full-instructions> <short-instructions> <h3><span style="color: rgb(0, 138, 0);">Good example</span></h3> <p>Enter description of a correct bounding box label and add images</p> <h3><span style="color: rgb(230, 0, 0);">Bad example</span></h3> <p>Enter description of an incorrect bounding box label and add images</p> </short-instructions> </crowd-bounding-box> </crowd-form>

Data Output Kotak Pembatas

Setelah Anda membuat pekerjaan pelabelan kotak pembatas, data keluaran Anda akan ditempatkan di bucket Amazon S3 yang ditentukan dalam S3OutputPath parameter saat menggunakan API atau di bidang Lokasi kumpulan data keluaran di bagian Ikh tisar pekerjaan di konsol.

Misalnya, file manifes keluaran dari tugas kotak pembatas kelas tunggal yang berhasil diselesaikan akan berisi yang berikut:

[ { "boundingBox": { "boundingBoxes": [ { "height": 2832, "label": "bird", "left": 681, "top": 599, "width": 1364 } ], "inputImageProperties": { "height": 3726, "width": 2662 } } } ]

boundingBoxesParameter mengidentifikasi lokasi kotak pembatas yang digambar di sekitar objek yang diidentifikasi sebagai “burung” relatif terhadap sudut kiri atas gambar yang dianggap sebagai koordinat piksel (0,0). Dalam contoh sebelumnya, left dan top mengidentifikasi lokasi piksel di sudut kiri atas kotak pembatas relatif terhadap sudut kiri atas gambar. Dimensi kotak pembatas diidentifikasi dengan height dan width. inputImagePropertiesParameter memberikan dimensi piksel dari gambar input asli.

Saat Anda menggunakan jenis tugas kotak pembatas, Anda dapat membuat pekerjaan pelabelan kotak pembatas tunggal dan multi-kelas. File manifes keluaran dari kotak pembatas multi-kelas yang berhasil diselesaikan akan berisi yang berikut:

[ { "boundingBox": { "boundingBoxes": [ { "height": 938, "label": "squirrel", "left": 316, "top": 218, "width": 785 }, { "height": 825, "label": "rabbit", "left": 1930, "top": 2265, "width": 540 }, { "height": 1174, "label": "bird", "left": 748, "top": 2113, "width": 927 }, { "height": 893, "label": "bird", "left": 1333, "top": 847, "width": 736 } ], "inputImageProperties": { "height": 3726, "width": 2662 } } } ]

Untuk mempelajari lebih lanjut tentang file manifes keluaran yang dihasilkan dari pekerjaan pelabelan kotak pembatas, lihatOutput pekerjaan kotak pembatas.

Untuk mempelajari lebih lanjut tentang file manifes keluaran yang dihasilkan oleh Ground Truth dan struktur file yang digunakan Ground Truth untuk menyimpan data keluaran Anda, lihatPelabelan data keluaran pekerjaan.