Classificazione di immagini con Potato
Imposta la classificazione di immagini in Potato mostrando le immagini con instance_display e raccogliendo le etichette con schemi radio e multiselect, controlli di qualità inclusi.
Prima o poi quasi tutti i progetti di computer vision hanno bisogno di un mucchio di immagini etichettate, e qualcuno deve etichettarle. Che tu stia ordinando foto di prodotti, filtrando contenuti o classificando immagini mediche, Potato si occupa dell'interfaccia e tu puoi concentrarti sulle etichette. Questo tutorial copre le configurazioni più comuni: classificazione a etichetta singola e multipla, strutture di categorie annidate e i controlli di qualità che tengono in riga i task su immagini.
Prima mostrare l'immagine, poi fare la domanda
In Potato classificare e disegnare sono lavori diversi, e confonderli è il primo errore tipico. instance_display mette l'immagine sullo schermo. annotation_schemes pone la domanda. Il tipo image_annotation serve a disegnare box e maschere su un'immagine, quindi un task di classificazione non lo usa affatto.
annotation_task_name: "Product Image Classification"
task_dir: "."
data_files:
- data/products.json
item_properties:
id_key: product_id
text_key: image_url
instance_display:
fields:
- key: image_url
type: image
label: "Product image"
display_options:
max_width: 600
zoomable: true
annotation_schemes:
- annotation_type: radio
name: category
description: "What type of product is shown?"
labels:
- Electronics
- Clothing
- Home & Garden
- Sports & Outdoors
- Books & Media
- Other
sequential_key_binding: true
output_annotation_dir: annotation_output/
export_annotation_format: jsonlsequential_key_binding assegna alle sei etichette i tasti da 1 a 6. In un task che si riduce a un'occhiata e un clic, la tastiera determina gran parte della velocità di lavoro.
L'interfaccia mostra l'immagine con le etichette di categoria sotto:
L'interfaccia di annotazione di immagini con la foto di un prodotto, le etichette di classificazione e le scorciatoie da tastiera
Formato dei dati
Crea data/products.json:
{"product_id": "P001", "image_url": "/images/products/laptop.jpg"}
{"product_id": "P002", "image_url": "/images/products/tshirt.jpg"}
{"product_id": "P003", "image_url": "/images/products/garden_tools.jpg"}
{"product_id": "P004", "image_url": "https://example.com/images/basketball.jpg"}Le immagini possono essere percorsi locali all'interno della directory del task oppure URL assoluti. text_key indica il campo che contiene il percorso, cioè il campo che Potato passa alla visualizzazione.
Classificazione multi-etichetta
Quando un'immagine appartiene a più categorie contemporaneamente, usa multiselect:
annotation_schemes:
- annotation_type: multiselect
name: attributes
description: "Select all attributes that apply to this image"
labels:
- Contains people
- Outdoor scene
- Indoor scene
- Contains text
- Product photo
- Lifestyle photo
- Close-up shot
- Wide angleCategorie annidate
Potato non ha un tipo di etichetta annidata per i pulsanti radio, quindi una tassonomia a due livelli si traduce in due schemi. Ogni schema ha bisogno delle proprie labels, e l'elenco delle sottocategorie deve coprire tutte le categorie madri:
annotation_schemes:
- annotation_type: radio
name: main_category
description: "Primary category"
labels:
- Apparel
- Electronics
- Home
- annotation_type: radio
name: subcategory
description: "Subcategory within the primary category"
labels:
- Tops
- Bottoms
- Footwear
- Phones & Tablets
- Computers
- Audio
- Furniture
- Kitchen
- DecorSe il secondo elenco diventa lungo, hierarchical_multiselect lo raccoglie in un unico widget invece di due schemi.
Controlli di qualità insieme alla classificazione
annotation_schemes:
- annotation_type: radio
name: category
description: "Product category"
labels: [Electronics, Clothing, Home, Other]
- annotation_type: radio
name: image_quality
description: "Is this image suitable for the product catalog?"
labels:
- name: Approved
tooltip: "Clear, well-lit, product is visible"
- name: Needs review
tooltip: "Minor issues but potentially usable"
- name: Rejected
tooltip: "Poor quality, wrong product, or inappropriate"
- annotation_type: multiselect
name: quality_issues
description: "If not approved, what issues are present?"
labels:
- Blurry or out of focus
- Poor lighting
- Wrong product shown
- Watermark or text overlay
- Inappropriate content
- Multiple products in frameLe indicazioni per ogni etichetta vanno in tooltip, che è la chiave letta dalle etichette. Se le scrivi come description: su un'etichetta, il testo non compare in nessun punto visibile all'annotatore.
Esempio completo
annotation_task_name: "E-commerce Image Classification"
task_dir: "."
data_files:
- data/images.json
item_properties:
id_key: sku
text_key: image_path
instance_display:
fields:
- key: image_path
type: image
label: "Product image"
display_options:
max_width: 700
zoomable: true
annotation_schemes:
- annotation_type: radio
name: primary_category
description: "Select the main product category"
labels:
- Electronics
- Clothing & Accessories
- Home & Living
- Beauty & Personal Care
- Sports & Fitness
- Toys & Games
- Other
sequential_key_binding: true
- annotation_type: multiselect
name: image_attributes
description: "Select all that apply"
labels:
- White background
- Lifestyle shot
- Multiple angles
- Model wearing or using
- Size reference included
- Brand visible
label_requirement:
required: false
- annotation_type: radio
name: listing_ready
description: "Is this image ready for the product listing?"
labels:
- Ready to publish
- Needs editing
- Reshoot required
label_requirement:
required: true
annotation_instructions: |
## Image Classification Guidelines
### Category selection
Choose the most specific category that fits the product.
### Image quality
- Ready to publish: clear, professional, meets standards
- Needs editing: good photo that needs cropping or color correction
- Reshoot required: fundamentally unsuitable
output_annotation_dir: annotation_output/
export_annotation_format: jsonlConsigli per l'annotazione di immagini
Colori e luminosità cambiano da monitor a monitor, quindi quando la cosa conta assicurati che gli annotatori lavorino su schermi ragionevolmente calibrati. Metti immagini di esempio nelle linee guida invece di descrivere le categorie a parole; una foto chiude più discussioni di un paragrafo. Scrivi che cosa fare con le immagini ambigue, perché di immagini ambigue ce ne saranno. E ogni tanto fai etichettare al gruppo lo stesso lotto e confronta i risultati, così le derive si notano presto.
Per i dettagli di implementazione, vedi la documentazione sull'annotazione di immagini.
Prossimi passi
- Impara l'annotazione con bounding box per l'object detection
- Imposta l'annotazione con poligoni per la segmentazione
- Esplora l'annotazione video per i task temporali
Documentazione completa sull'annotazione di immagini su Annotazione di Immagini.