Classificação de Imagens com Potato
Configure a classificação de imagens no Potato exibindo as imagens com instance_display e coletando rótulos com esquemas radio e multiselect, incluindo verificações de qualidade.
Mais cedo ou mais tarde, a maioria dos projetos de visão computacional precisa de uma pilha de imagens rotuladas, e alguém tem que fazer a rotulagem. Seja organizando fotos de produtos, filtrando conteúdo ou classificando exames médicos, o Potato cuida da interface para que você possa focar nos rótulos. Este tutorial cobre as configurações mais comuns: classificação de rótulo único e multirrótulo, estruturas de categorias aninhadas e as verificações de qualidade que mantêm as tarefas de imagem confiáveis.
Primeiro mostrar a imagem, depois fazer a pergunta
No Potato, classificar e desenhar são trabalhos diferentes, e confundir os dois é o erro inicial mais comum. instance_display coloca a imagem na tela. annotation_schemes faz a pergunta. O tipo image_annotation serve para desenhar caixas e máscaras sobre uma imagem, então uma tarefa de classificação não o usa.
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 atribui aos seis rótulos as teclas de 1 a 6. Numa tarefa que se resume a uma olhada e um clique, o teclado responde pela maior parte da velocidade.
A interface exibe a imagem com os rótulos de categoria abaixo dela:
A interface de anotação de imagens mostrando a imagem de um produto com rótulos de classificação e atalhos de teclado
Formato dos dados
Crie 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"}As imagens podem ser caminhos locais dentro do diretório da tarefa ou URLs absolutas. text_key aponta para o campo que contém o caminho, que é o campo que o Potato repassa para a exibição.
Classificação multirrótulo
Quando uma imagem pertence a várias categorias ao mesmo tempo, use 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 angleCategorias aninhadas
O Potato não tem um tipo de rótulo aninhado para botões de rádio, então uma taxonomia de dois níveis vira dois esquemas. Cada esquema precisa dos seus próprios labels, e a lista de subcategorias tem que cobrir todas as categorias principais:
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
- DecorQuando a segunda lista ficar longa, hierarchical_multiselect a reúne em um único widget em vez de dois esquemas.
Verificações de qualidade junto com a classificação
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 frameA orientação específica de cada rótulo vai em tooltip, que é a chave que os rótulos leem. Se você a escrever como description: em um rótulo, o texto não aparece em nenhum lugar que o anotador consiga ver.
Exemplo 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: jsonlDicas para anotação de imagens
Cor e brilho variam entre monitores, então, para qualquer coisa em que isso importe, certifique-se de que os anotadores estejam usando telas razoavelmente calibradas. Coloque imagens de exemplo nas suas diretrizes em vez de descrever categorias com palavras; uma imagem resolve mais discussões do que um parágrafo. Anote o que fazer com as imagens ambíguas, porque haverá imagens ambíguas. E, de vez em quando, peça à equipe que rotule o mesmo lote e compare, para que o desvio seja detectado cedo.
Para detalhes de implementação, consulte a documentação de anotação de imagens.
Próximos passos
- Aprenda anotação com caixas delimitadoras para detecção de objetos
- Configure anotação com polígonos para segmentação
- Explore anotação de vídeo para tarefas temporais
Veja a documentação completa de anotação de imagens em Anotação de Imagens.