Anotação de Imagens
Exemplo de detecção e classificação de objetos com IA.
A anotação de imagens é o processo de rotular imagens com informações específicas. Ela é usada para treinar modelos de visão computacional para tarefas como detecção de objetos, segmentação e classificação de imagens. As imagens rotuladas servem como um conjunto de dados de treinamento para algoritmos de inteligência artificial (IA) aprenderem e reconhecerem padrões semelhantes em imagens novas e não rotuladas. Ou seja, a rotulagem de dados é uma etapa essencial em tarefas de machine learning supervisionadas.
A precisão e a consistência das anotações afetam diretamente o desempenho do modelo treinado. Anotações de alta qualidade levam a modelos mais precisos e confiáveis.
Portanto, o objetivo deste post é apresentar as principais técnicas de anotação de imagens, os formatos de anotação mais populares e algumas ferramentas que podem ser usadas para essa tarefa.
Técnicas de Anotação de Imagens
A anotação de imagens varia conforme os objetivos do modelo de IA que será treinado. Ela pode envolver tarefas como classificação da imagem (atribuição de um rótulo a uma imagem inteira), detecção de objetos (identificar e delimitar a localização de objetos específicos), segmentação (rotulagem ao nível de píxel para categorizar diferentes regiões em uma imagem) e a anotação de ponto de referência (rotulagem de pontos de referência específicos). Dependendo do objetivo da anotação de imagens, diferentes técnicas podem ser combinadas. Conheça as principais técnicas de anotação de imagens a seguir.
Caixas Delimitadoras
As caixas delimitadoras são um tipo de anotação muito usada em visão computacional, especialmente em tarefas de detecção e localização de objetos. Esta técnica é usada para desenhar uma caixa em torno de objetos relativamente simétricos, como carros, pedestres e sinais de trânsito. As caixas delimitadoras são geralmente representadas por duas coordenadas (x1, y1) e (x2, y2) ou por uma coordenada (x1, y1) e largura (w) e altura (h).
Segmentação Poligonal
Os objetos nem sempre têm formato retangular. Com essa ideia, as segmentações poligonais são outro tipo de anotação de dados em que polígonos complexos são usados em vez de retângulos para definir a forma e a localização do objeto de maneira muito precisa em formas poligonais. Essa técnica é ótima para anotar formas e objetos complicados e não lineares para segmentação de imagens ou tarefas de detecção de objetos.
Exemplo de anotações com segmentação poligonal (fonte).
Segmentação Semântica
A segmentação semântica é uma anotação em píxeis, em que cada píxel da imagem é atribuído a uma classe. Ela permite compreender a composição completa da cena e do objeto. A segmentação semântica é usada principalmente nos casos em que o contexto ambiental é muito importante. Por exemplo, é usado em carros autônomos e robótica para permitir que os modelos entendam o ambiente em que estão operando.
Exemplo de anotações com segmentação (fonte).
Anotação Esquelética
Técnica desenvolvida para identificar o movimento e alinhamento de um corpo e identificar as principais características esqueléticas em imagens. A técnica é utilizada especialmente para produzir grandes conjuntos de dados para treinar diagnósticos médicos para modelos de IA.
Cuboides 3D
Cuboides 3D são semelhantes a caixas delimitadoras com informações adicionais de profundidade. Assim, essa anotação cria uma representação 3D do objeto, permitindo que os sistemas distingam recursos como volume e posição. Um caso de uso de cuboides 3D é em carros autônomos, onde as informações de profundidade podem ser usadas para medir a distância de objetos em relação aos carros.
Exemplo de anotação cuboide (fonte).
Ponto-Chave (landmarks) e Ponto de Referência
A anotação de ponto-chave e ponto de referência é usada para detectar pequenos objetos e para analisar o posicionamento e alinhamento de corpos, expressões faciais e emoções.
Exemplo de anotações de pontos de referência (fonte).
Linhas e Splines
Como o nome sugere, esse tipo de anotação é criada usando linhas e splines. É comumente usada em veículos autônomos para detecção e reconhecimento de faixas nas estradas e ruas.
Mascaramento
Mascaramento pode ser usado tanto para ocultar quanto para delinear certas áreas de uma imagem e revelar outras áreas de interesse, tornando muito mais fácil focar em certas partes de uma imagem. É essencial para tarefas como segmentação de objetos, edição de vídeo e realidade aumentada.
Formatos de Anotação de Imagens
Não existe um formato padrão único para anotação de imagem. Veja os formatos mais comuns e suas aplicações principais:
COCO (Common Objects in Context)
O COCO tem cinco tipos de anotação: para detecção de objetos, detecção de pontos-chave, segmentação de coisas, segmentação panóptica e legendagem de imagens. As anotações são armazenadas usando JSON. O COCO é amplamente adotado na comunidade de visão computacional.
YOLO (You Only Look Once)
Usado principalmente para detecção de objetos, o formato YOLO armazena coordenadas de caixas delimitadoras e probabilidades de classes. No formato de rotulagem YOLO, um arquivo.txt com o mesmo nome é criado para cada arquivo de imagem para representar caixas delimitadoras e rótulos de classe.
KITTI
Este formato foi projetado especificamente para tarefas de direção autônoma e inclui anotações para detecção de objetos 3D, rastreamento e segmentação semântica. Portanto, seu formato de anotação é mais complexo, incluindo informações sobre dimensões, orientação e truncamento de objetos. O formato KITTI envolve vários arquivos para diferentes tipos de anotações. Uma estrutura típica inclui: arquivos de imagem, arquivos de rótulo e arquivos de calibração.
Exemplo de interface para anotações KITTI (fonte).
Pascal VOC
Formato de anotação de imagens amplamente utilizado para tarefas de detecção de objetos e classificação de imagens. Ele armazena informações sobre caixas delimitadoras, rótulos de classe e dificuldades de uma imagem em arquivos XML.
Exemplo de anotação feita com Pascal VOC (fonte).
Algumas Ferramentas e Dicas Finais
Existem várias ferramentas de anotação de dados comerciais, de código aberto ou freeware que podem ser usadas para auxiliar na tarefa de anotação de imagens. Algumas ferramentas de código aberto são:
Para usar qualquer uma dessas ferramentas, determine precisamente o objetivo do seu modelo de IA para definir qual anotação você irá precisar. Não é incomum um modelo precisar de dados com várias anotações, como caixas delimitadoras e pontos de referência. Depois, prepare seus rótulos, obtenha as imagens e determine a melhor ferramenta de anotação conforme suas necessidades e recursos financeiros.
Mas note: embora existam ferramentas para ajudar, os anotadores humanos são cruciais para uma rotulagem precisa e confiável. E a rotulagem de dados é uma tarefa que costuma requerer muito trabalho manual. Apesar de existirem muitos dados já rotulados disponíveis, muitas vezes eles não possuem uma boa rotulagem. Portanto, para treinar um bom modelo, é muito provável que você tenha que passar pelo processo de anotação de dados.