View a markdown version of this page

File konfigurasi kategori pelabelan dengan kategori label dan referensi atribut bingkai - Amazon SageMaker AI

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

File konfigurasi kategori pelabelan dengan kategori label dan referensi atribut bingkai

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.

Saat membuat pekerjaan pelabelan awan titik 3D atau bingkai video menggunakan operasi Amazon SageMaker APICreateLabelingJob, Anda menggunakan file konfigurasi kategori label untuk menentukan label dan instruksi pekerja. Secara opsional, Anda juga dapat memberikan yang berikut ini dalam file atribut kategori label Anda:

  • Anda dapat menyediakan atribut kategori label untuk bingkai video dan pelacakan objek awan titik 3D dan jenis tugas deteksi objek. Pekerja dapat menggunakan satu atau lebih atribut untuk memberikan informasi lebih lanjut tentang objek. Misalnya, Anda mungkin ingin menggunakan atribut tersum bat agar pekerja mengidentifikasi ketika suatu objek terhalang sebagian. Anda dapat menentukan atribut kategori label untuk label tunggal menggunakan categoryAttributes parameter, atau untuk semua label menggunakan categoryGlobalAttributes parameter.

  • Anda dapat menyediakan atribut bingkai untuk bingkai video dan pelacakan objek awan titik 3D dan jenis tugas deteksi objek menggunakanframeAttributes. Saat Anda membuat atribut bingkai, atribut tersebut muncul di setiap bingkai atau awan titik dalam tugas pekerja. Dalam pekerjaan pelabelan bingkai video, ini adalah atribut yang ditetapkan pekerja ke seluruh bingkai video. Untuk pekerjaan pelabelan awan titik 3D, atribut ini diterapkan ke awan titik tunggal. Gunakan atribut bingkai agar pekerja memberikan informasi lebih lanjut tentang pemandangan dalam bingkai atau awan titik tertentu.

  • Untuk pekerjaan pelabelan bingkai video, Anda menggunakan file konfigurasi kategori label untuk menentukan jenis tugas (kotak pembatas, polyline, poligon, atau titik kunci) yang dikirim ke pekerja.

Untuk pekerja, menentukan nilai untuk atribut kategori label dan atribut bingkai akan bersifat opsional.

penting

Anda hanya boleh memberikan nama atribut label auditLabelAttributeName jika Anda menjalankan tugas audit untuk memverifikasi atau menyesuaikan label. Gunakan parameter ini untuk memasukkan yang LabelAttributeName digunakan dalam pekerjaan pelabelan yang menghasilkan anotasi yang ingin disesuaikan oleh pekerja Anda. Saat Anda membuat pekerjaan pelabelan di konsol, jika Anda tidak menentukan nama atribut label, Nama pekerjaan Anda digunakan sebagai LabelAttributeName.

Topik berikut menunjukkan contoh file konfigurasi kategori label untuk berbagai jenis pekerjaan pelabelan. Mereka juga menjelaskan skema dan kuota file konfigurasi kategori.

Contoh: file konfigurasi kategori label untuk pekerjaan pelabelan awan titik 3D

Topik berikut menunjukkan contoh file konfigurasi kategori label awan titik 3D untuk deteksi objek, pelacakan objek, segmentasi semantik, penyesuaian, dan pekerjaan pelabelan verifikasi.

Contoh: Pelacakan objek awan titik 3D dan deteksi objek

Berikut ini adalah contoh file konfigurasi kategori label yang menyertakan atribut kategori label untuk pendeteksian objek awan titik 3D atau pekerjaan pelacakan pelacakan objek. Contoh ini mencakup dua atribut frame, yang akan ditambahkan ke semua titik awan yang dikirimkan ke pekerjaan pelabelan. L Car abel akan menyertakan empat atribut kategori label— XY,Z,, dan atribut global,W.

{ "documentVersion": "2020-03-01", "frameAttributes": [ { "name":"count players", "description":"How many players to you see in the scene?", "type":"number" }, { "name":"select one", "description":"describe the scene", "type":"string", "enum":["clear","blurry"], "isRequired":true }, ], "categoryGlobalAttributes": [ { "name":"W", "description":"label-attributes-for-all-labels", "type":"string", "enum": ["foo", "buzz", "biz"] } ], "labels": [ { "label": "Car", "categoryAttributes": [ { "name":"X", "description":"enter a number", "type":"number", }, { "name":"Y", "description":"select an option", "type":"string", "enum":["y1", "y2"] }, { "name":"Z", "description":"submit a free-form response", "type":"string", } ] }, { "label": "Pedestrian", "categoryAttributes": [...] } ], "instructions": {"shortInstruction":"Draw a tight Cuboid", "fullInstruction":"<html markup>"} }

Contoh: Segmentasi semantik awan titik 3D

Berikut ini adalah contoh file konfigurasi kategori label untuk pekerjaan pelabelan segmentasi semantik awan titik 3D.

Atribut kategori label tidak didukung untuk jenis tugas segmentasi semantik awan titik 3D. Atribut bingkai didukung. Jika Anda memberikan atribut kategori label untuk pekerjaan pelabelan segmentasi semantik, atribut tersebut akan diabaikan.

{ "documentVersion": "2020-03-01", "frameAttributes": [ { "name":"count players", "description":"How many players to you see in the scene?", "type":"number" }, { "name":"select one", "description":"describe the scene", "type":"string", "enum":["clear","blurry"] }, ], "labels": [ { "label": "Car", }, { "label": "Pedestrian", }, { "label": "Cyclist", } ], "instructions": {"shortInstruction":"Select the appropriate label and paint all objects in the point cloud that it applies to the same color", "fullInstruction":"<html markup>"} }

Contoh: Penyesuaian awan titik 3D

Berikut ini adalah contoh file konfigurasi kategori label untuk pendeteksian objek awan titik 3D atau pekerjaan pelabelan penyesuaian pelacakan objek. Untuk pekerjaan pelabelan penyesuaian segmentasi semantik awan titik 3D, categoryGlobalAttributes dan tidak categoryAttributes didukung.

Anda harus menyertakan auditLabelAttributeName untuk menentukan nama atribut label dari pekerjaan pelabelan sebelumnya yang Anda gunakan untuk membuat pekerjaan pelabelan penyesuaian. Secara opsional, Anda dapat menggunakan editsAllowed parameter untuk menentukan apakah label atau atribut bingkai dapat diedit atau tidak.

{ "documentVersion": "2020-03-01", "frameAttributes": [ { "name":"count players", "description":"How many players to you see in the scene?", "type":"number" }, { "name":"select one", "editsAllowed":"none", "description":"describe the scene", "type":"string", "enum":["clear","blurry"] }, ], "categoryGlobalAttributes": [ { "name":"W", "editsAllowed":"any", "description":"label-attributes-for-all-labels", "type":"string", "enum": ["foo", "buzz", "biz"] } ], "labels": [ { "label": "Car", "editsAllowed":"any", "categoryAttributes": [ { "name":"X", "description":"enter a number", "type":"number" }, { "name":"Y", "description":"select an option", "type":"string", "enum":["y1", "y2"], "editsAllowed":"any" }, { "name":"Z", "description":"submit a free-form response", "type":"string", "editsAllowed":"none" } ] }, { "label": "Pedestrian", "categoryAttributes": [...] } ], "instructions": {"shortInstruction":"Draw a tight Cuboid", "fullInstruction":"<html markup>"}, // include auditLabelAttributeName for label adjustment jobs "auditLabelAttributeName": "myPrevJobLabelAttributeName" }

Contoh: Verifikasi awan titik 3D

Berikut ini adalah contoh file konfigurasi kategori label yang dapat Anda gunakan untuk pendeteksian objek awan titik 3D atau pekerjaan pelabelan verifikasi pelacakan objek. Untuk pekerjaan pelabelan verifikasi segmentasi semantik awan titik 3D, categoryGlobalAttributes dan tidak categoryAttributes didukung.

Anda harus menyertakan auditLabelAttributeName untuk menentukan nama atribut label dari pekerjaan pelabelan sebelumnya yang Anda gunakan untuk membuat pekerjaan pelabelan verifikasi. Selain itu, Anda harus menggunakan editsAllowed parameter untuk menentukan bahwa tidak ada label yang dapat diedit.

{ "documentVersion": "2020-03-01", "frameAttributes": [ { "name":"count players", "editsAllowed":"any", "description":"How many players to you see in the scene?", "type":"number" }, { "name":"select one", "editsAllowed":"any", "description":"describe the scene", "type":"string", "enum":["clear","blurry"] }, ], "categoryGlobalAttributes": [ { "name":"W", "editsAllowed":"none", "description":"label-attributes-for-all-labels", "type":"string", "enum": ["foo", "buzz", "biz"] } ], "labels": [ { "label": "Car", "editsAllowed":"none", "categoryAttributes": [ { "name":"X", "description":"enter a number", "type":"number", "editsAllowed":"none" }, { "name":"Y", "description":"select an option", "type":"string", "enum":["y1", "y2"], "editsAllowed":"any" }, { "name":"Z", "description":"submit a free-form response", "type":"string", "editsAllowed":"none" } ] }, { "label": "Pedestrian", "editsAllowed":"none", "categoryAttributes": [...] } ], "instructions": {"shortInstruction":"Draw a tight Cuboid", "fullInstruction":"<html markup>"}, // include auditLabelAttributeName for label verification jobs "auditLabelAttributeName": "myPrevJobLabelAttributeName" }

Contoh: file konfigurasi kategori label untuk pekerjaan pelabelan bingkai video

Alat anotasi yang tersedia untuk pekerja dan jenis tugas yang digunakan tergantung pada nilai yang Anda tentukanannotationType. Misalnya, jika Anda ingin pekerja menggunakan titik-titik kunci untuk melacak perubahan dalam pose objek tertentu di beberapa frame, Anda akan menentukan Keypoint untukannotationType. Jika Anda tidak menentukan jenis anotasi, BoundingBox akan digunakan secara default.

Topik berikut menunjukkan contoh file konfigurasi kategori bingkai video.

Contoh: titik kunci bingkai video

Berikut ini adalah contoh file konfigurasi kategori label keypoint bingkai video dengan atribut kategori label. Contoh ini mencakup dua atribut bingkai, yang akan ditambahkan ke semua frame yang dikirimkan ke pekerjaan pelabelan. L Car abel akan menyertakan empat atribut kategori label— XY,Z,, dan atribut global,W.

{ "documentVersion": "2020-03-01", "frameAttributes": [ { "name":"count players", "description":"How many players to you see in the scene?", "type":"number" }, { "name":"select one", "description":"describe the scene", "type":"string", "enum":["clear","blurry"] }, ], "categoryGlobalAttributes": [ { "name":"W", "description":"label-attributes-for-all-labels", "type":"string", "enum": ["foo", "buz", "buz2"] } ], "labels": [ { "label": "Car", "categoryAttributes": [ { "name":"X", "description":"enter a number", "type":"number", }, { "name":"Y", "description":"select an option", "type":"string", "enum": ["y1", "y2"] }, { "name":"Z", "description":"submit a free-form response", "type":"string", } ] }, { "label": "Pedestrian", "categoryAttributes": [...] } ], "annotationType":"Keypoint", "instructions": {"shortInstruction":"add example short instructions here", "fullInstruction":"<html markup>"} }

Contoh: penyesuaian bingkai video

Berikut ini adalah contoh file konfigurasi kategori label yang dapat Anda gunakan untuk pekerjaan pelabelan penyesuaian bingkai video.

Anda harus menyertakan auditLabelAttributeName untuk menentukan nama atribut label dari pekerjaan pelabelan sebelumnya yang Anda gunakan untuk membuat pekerjaan pelabelan verifikasi. Secara opsional, Anda dapat menggunakan editsAllowed parameter untuk menentukan apakah label, atribut kategori label, atau atribut bingkai dapat diedit atau tidak.

{ "documentVersion": "2020-03-01", "frameAttributes": [ { "name":"count players", "editsAllowed":"none", "description":"How many players to you see in the scene?", "type":"number" }, { "name":"select one", "description":"describe the scene", "type":"string", "enum":["clear","blurry"] }, ], "categoryGlobalAttributes": [ { "name":"W", "editsAllowed":"any", "description":"label-attributes-for-all-labels", "type":"string", "enum": ["foo", "buz", "buz2"] } ], "labels": [ { "label": "Car", "editsAllowed":"any", "categoryAttributes": [ { "name":"X", "description":"enter a number", "type":"number", "editsAllowed":"any" }, { "name":"Y", "description":"select an option", "type":"string", "enum": ["y1", "y2"], "editsAllowed":"any" }, { "name":"Z", "description":"submit a free-form response", "type":"string", "editsAllowed":"none" } ] }, { "label": "Pedestrian", "editsAllowed":"none", "categoryAttributes": [...] } ], "annotationType":"Keypoint", "instructions": {"shortInstruction":"add example short instructions here", "fullInstruction":"<html markup>"}, // include auditLabelAttributeName for label adjustment jobs "auditLabelAttributeName": "myPrevJobLabelAttributeName" }

Contoh: verifikasi bingkai video

Berikut ini adalah contoh file konfigurasi kategori label untuk pekerjaan pelabelan bingkai video.

Anda harus menyertakan auditLabelAttributeName untuk menentukan nama atribut label dari pekerjaan pelabelan sebelumnya yang Anda gunakan untuk membuat pekerjaan pelabelan verifikasi. Selain itu, Anda harus menggunakan editsAllowed parameter untuk menentukan bahwa tidak ada label yang dapat diedit.

{ "documentVersion": "2020-03-01", "frameAttributes": [ { "name":"count players", "editsAllowed":"none", "description":"How many players to you see in the scene?", "type":"number" }, { "name":"select one", "editsAllowed":"any", "description":"describe the scene", "type":"string", "enum":["clear","blurry"] }, ], "categoryGlobalAttributes": [ { "name":"W", "editsAllowed":"none", "description":"label-attributes-for-all-labels", "type":"string", "enum": ["foo", "buz", "buz2"] } ], "labels": [ { "label": "Car", "editsAllowed":"none", "categoryAttributes": [ { "name":"X", "description":"enter a number", "type":"number", "editsAllowed":"any" }, { "name":"Y", "description":"select an option", "type":"string", "enum": ["y1", "y2"], "editsAllowed":"any" }, { "name":"Z", "description":"submit a free-form response", "type":"string", "editsAllowed":"none" } ] }, { "label": "Pedestrian", "editsAllowed":"none", "categoryAttributes": [...] } ], "annotationType":"Keypoint", "instructions": {"shortInstruction":"add example short instructions here", "fullInstruction":"<html markup>"}, // include auditLabelAttributeName for label adjustment jobs "auditLabelAttributeName": "myPrevJobLabelAttributeName" }

Skema file konfigurasi kategori label

Tabel berikut mencantumkan elemen yang dapat dan harus Anda sertakan dalam file konfigurasi kategori label Anda.

catatan

Parameter annotationType ini hanya didukung untuk pekerjaan pelabelan bingkai video.

Parameter

Diperlukan

Nilai yang Diterima

Deskripsi

frameAttributes

Tidak

Daftar objek JSON.

Parameter yang Diperlukan di setiap Objek JSON:

name, type, description

minimumdan maximum diperlukan type jika "number"

Parameter Opsional di setiap Objek JSON:

enum, editsAllowed, isRequired

Gunakan parameter ini untuk membuat atribut bingkai yang diterapkan ke semua frame atau awan titik 3D dalam pekerjaan pelabelan Anda.

Lihat tabel ketiga di bagian ini untuk informasi lebih lanjut.
categoryGlobalAttributes

Tidak

Daftar objek JSON.

Parameter yang Diperlukan di setiap Objek JSON:

name, type

minimumdan maximum diperlukan type jika "number"

Parameter Opsional di setiap Objek JSON:

description, enum, editsAllowed, isRequired

Gunakan parameter ini untuk membuat atribut kategori label yang diterapkan ke semua label yang Anda tentukanlabels.

Lihat tabel ketiga di bagian ini untuk informasi lebih lanjut.
labels

Ya

Daftar hingga 30 objek JSON

Parameter yang Diperlukan di setiap Objek JSON:

label

Parameter Opsional di setiap Objek JSON:

categoryAttributes, editsAllowed

Gunakan parameter ini untuk menentukan label, atau kelas Anda. Tambahkan satu label untuk setiap kelas.

Untuk menambahkan atribut kategori label ke label, tambahkan categoryAttributes ke label itu.

Gunakan editsAllowed untuk menentukan apakah label dapat diedit dalam pekerjaan pelabelan penyesuaian atau tidak. Setel editsAllowed ke "none" untuk pekerjaan pelabelan verifikasi.

Lihat tabel berikut untuk informasi lebih lanjut.

annotationType(hanya didukung untuk pekerjaan pelabelan bingkai video)

Tidak

String

Parameter yang diterima:

BoundingBox, Polyline, Polygon, Keypoint

Default:

BoundingBox

Gunakan ini untuk menentukan jenis tugas untuk pekerjaan pelabelan bingkai video Anda. Misalnya, untuk tugas deteksi objek bingkai video poligon, pilihPolygon.

Jika Anda tidak menentukan annotationType saat Anda membuat pekerjaan pelabelan bingkai video, Ground Truth akan digunakan BoundingBox secara default.

instructions

Tidak

Objek JSON

Parameter yang Diperlukan di setiap Objek JSON:

"shortInstruction", "fullInstruction"

Gunakan parameter ini untuk menambahkan instruksi pekerja untuk membantu pekerja Anda menyelesaikan tugas mereka. Untuk informasi selengkapnya tentang instruksi pekerja, lihatInstruksi pekerja.

Instruksi pendek harus di bawah 255 karakter dan instruksi panjang harus di bawah 2.048 karakter.

Untuk informasi selengkapnya, lihat Buat halaman instruksi.

auditLabelAttributeName

Diperlukan untuk jenis tugas penyesuaian dan verifikasi

String

Masukkan yang LabelAttributeName digunakan dalam pekerjaan pelabelan yang ingin Anda sesuaikan anotasi.

Gunakan parameter ini hanya jika Anda membuat pekerjaan penyesuaian untuk bingkai video dan deteksi objek awan titik 3D, pelacakan objek, atau segmentasi semantik awan titik 3D.

Skema objek label

Tabel berikut menjelaskan parameter yang dapat dan harus Anda gunakan untuk membuat daftarLabels. Setiap parameter harus disertakan dalam objek JSON.

Parameter Diperlukan Nilai yang Diterima Deskripsi
label

Ya

String

Nama kategori label yang ditampilkan kepada pekerja. Setiap nama kategori label harus unik.

categoryAttributes

Tidak

Daftar objek JSON.

Parameter yang Diperlukan di setiap Objek JSON:

name, type

minimumdan maximum diperlukan type jika "number"

Parameter Opsional di setiap Objek JSON:

description, enum, editsAllowed, isRequired

Gunakan parameter ini untuk menambahkan atribut kategori label ke label tertentu yang Anda tentukanlabels.

Untuk menambahkan satu atau lebih atribut kategori label ke label, sertakan objek categoryAttributes JSON dalam objek labels JSON yang sama seperti itulabel.

Lihat tabel berikut untuk informasi lebih lanjut.
editsAllowed

Tidak

String

Nilai yang Didukung:

"none": tidak ada modifikasi yang tidak diperbolehkan.

atau

"any"(Default): semua modifikasi diperbolehkan.

Menentukan apakah label dapat diedit oleh pekerja atau tidak.

Untuk pekerjaan pelabelan penyesuaian bingkai video atau awan titik 3D, tambahkan parameter ini ke satu atau lebih objek JSON dalam labels daftar untuk menentukan apakah pekerja dapat mengedit label atau tidak.

Untuk pekerjaan pelabelan verifikasi bingkai video dan awan titik 3D, tambahkan parameter ini dengan nilai "none" ke setiap objek JSON dalam labels daftar. Ini akan membuat semua label tidak dapat diedit.

FrameAttributes dan skema kategori GlobalAttributes

Tabel berikut menjelaskan parameter yang dapat dan harus Anda gunakan untuk membuat atribut bingkai menggunakan frameAttributes dan label atribut kategori menggunakan categoryAttributes parameter categoryGlobalAttributes dan.

Parameter

Diperlukan

Nilai yang Diterima

Deskripsi

name

Ya

String

Gunakan parameter ini untuk menetapkan nama untuk kategori label atau atribut bingkai Anda. Ini adalah nama atribut yang dilihat pekerja.

Setiap nama atribut kategori label dalam file konfigurasi kategori label Anda harus unik. Atribut kategori label global dan atribut kategori label khusus tidak boleh memiliki nama yang sama.

type

Ya

String

Nilai yang Diperlukan:

"string" atau "number"

Gunakan parameter ini untuk menentukan kategori label atau jenis atribut bingkai.

Jika Anda menentukan "string" untuk type dan memberikan enum nilai untuk atribut ini, pekerja akan dapat memilih dari salah satu pilihan yang Anda berikan.

Jika Anda menentukan "string" untuk type dan tidak memberikan enum nilai, pekerja dapat memasukkan teks formulir bebas.

Jika Anda menentukan number untuktype, pekerja dapat memasukkan angka antara minimum dan maximum angka yang Anda tentukan.

enum

Tidak

Daftar string

Gunakan parameter ini untuk menentukan opsi yang dapat dipilih pekerja untuk kategori label atau atribut bingkai ini. Pekerja dapat memilih satu nilai yang ditentukan dienum. Misalnya, jika Anda menentukan["foo", "buzz", "bar"] untukenum, pekerja dapat memilih salah satu darifoo,buzz, ataubar.

Anda harus menentukan "string" type untuk menggunakan enum daftar.

description

frameAttributes: Ya

categoryAttributesataucategoryGlobalAttributes: Tidak

String

Gunakan parameter ini untuk menambahkan deskripsi kategori label atau atribut bingkai. Anda dapat menggunakan bidang ini untuk memberi pekerja informasi lebih lanjut tentang atribut.

Bidang ini hanya diperlukan untuk atribut bingkai.

minimum dan maximum Diperlukan jika atribut type "number" Bilangan bulat

Gunakan parameter ini untuk menentukan nilai minimum dan maksimum (inklusif) yang dapat dimasukkan pekerja untuk kategori label numerik atau atribut bingkai.

Anda harus menentukan "number" type untuk menggunakan minimum danmaximum.

editsAllowed

Tidak

String

Nilai yang Diperlukan:

"none": tidak ada modifikasi yang tidak diperbolehkan.

atau

"any"(Default): semua modifikasi diperbolehkan.

Menentukan apakah kategori label atau atribut bingkai dapat diedit oleh pekerja atau tidak.

Untuk pekerjaan penyesuaian dan pelabelan verifikasi bingkai video atau awan titik 3D, tambahkan parameter ini ke kategori label dan atribut bingkai objek JSON untuk menentukan apakah pekerja dapat mengedit atribut atau tidak.

isRequired

Tidak

Boolean

Menentukan apakah pekerja diharuskan untuk membuat anotasi atribut. Pekerja tidak dapat mengirimkan pekerjaan sampai semua atribut yang diperlukan diberi anotasi.

Kuota atribut kategori label dan label

Anda dapat menentukan hingga 10 atribut kategori label per kelas. Kuota 10 atribut ini mencakup atribut kategori label global. Misalnya, jika Anda membuat empat atribut kategori label global, dan kemudian menetapkan tiga atribut kategori label untuk labelX, label tersebut akan memiliki 4+3=7 atribut kategori label secara total. Untuk semua kategori label dan batas atribut kategori label, lihat tabel berikut.

Tipe

Min

Maks

Label (Labels)

1

30

Kuota karakter nama label

1

16

Atribut kategori label per label (jumlah categoryAttributes dancategoryGlobalAttributes)

0

10

Atribut kategori label entri teks formulir bebas per label (jumlah categoryAttributes dancategoryGlobalAttributes).

0 5

Atribut bingkai

0

10

Atribut entri teks formulir gratis diframeAttributes.

0 5

Kuota karakter nama atribut (name)

1

16

Kuota karakter deskripsi atribut (description)

0

128

Kuota karakter jenis atribut (type)

1

16

Nilai yang diizinkan dalam enum daftar untuk string atribut

1 10

Kuota karakter untuk nilai dalam enum daftar

1 16
Karakter maksimum dalam respons teks bentuk bebas untuk teks bentuk bebas frameAttributes 0 1000
Karakter maksimum dalam respons teks bentuk bebas untuk teks bentuk bebas categoryAttributes dan categoryGlobalAttributes 0 80