Klasifikasi objek gambar menggunakan kotak pembatas - Amazon SageMaker

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

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

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 diberi label. Untuk informasi selengkapnya, lihat Data input.

Membuat Job Pelabelan Kotak Bounding (Konsol)

Anda dapat mengikuti petunjuk Membuat Job Pelabelan (Konsol) untuk mempelajari cara membuat pekerjaan pelabelan kotak pembatas di SageMaker konsol. Pada Langkah 10, pilih Gambar dari menu tarik-turun kategori Tugas, dan pilih Bounding kotak sebagai tipe tugas.

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

Gif menunjukkan cara menggambar kotak di sekitar objek untuk kategori.

Buat Job Pelabelan Kotak Bounding () API

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

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

  • Fungsi Lambda pra-anotasi untuk jenis tugas ini diakhiri dengan. PRE-BoundingBox Untuk menemukan Lambda pra-anotasi ARN untuk Wilayah Anda, lihat. PreHumanTaskLambdaArn

  • Fungsi Lambda konsolidasi anotasi untuk jenis tugas ini diakhiri dengan. ACS-BoundingBox Untuk menemukan ARN Lambda anotasi-konsolidasi untuk Wilayah Anda, lihat. AnnotationConsolidationLambdaArn

Berikut ini adalah contoh permintaan AWS Python SDK (Boto3) untuk membuat pekerjaan pelabelan di Wilayah AS Timur (Virginia N.). 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' }, ] )

Berikan Template untuk Pekerjaan Pelabelan Kotak Bounding

Jika Anda membuat pekerjaan pelabelan menggunakanAPI, 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 S3 URI untuk file ini. UiTemplateS3Uri

<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 Output di bagian Ikhtisar pekerjaan 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 diambil sebagai koordinat piksel (0,0). Pada contoh sebelumnya, leftdan topidentifikasi lokasi piksel di sudut kiri atas kotak pembatas relatif terhadap sudut kiri atas gambar. Dimensi kotak pembatas diidentifikasi dengan heightdan 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, lihat. Output 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.