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.
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)
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 } } } ]
boundingBoxes
Parameter 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, left
dan top
identifikasi lokasi piksel di sudut kiri atas kotak pembatas relatif terhadap sudut kiri atas gambar. Dimensi kotak pembatas diidentifikasi dengan height
dan width
. inputImageProperties
Parameter 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.