Formato de anotação do conjunto de dados PASCAL VOC
PASCAL VOC Challenge (** The PASCAL Visual Object Classes ) é um desafio de visão computacional de classe mundial. O nome completo do PASCAL é Análise de Padrões, Modelagem Estatística e Aprendizagem Computacional Muitos excelentes modelos de visão computacional, como classificação, posicionamento, detecção, segmentação e reconhecimento de ação, são baseados no desafio PASCAL VOC e seus conjuntos de dados .
O nome completo do VOC é Visual Object Classes
O primeiro PASCAL VOC foi realizado em 2005, e depois foi realizado todos os anos até 2012.
Ao fazer detecção de objeto de aprendizado profundo e segmentação semântica, você entrará em contato com o conjunto de dados PASCAL VOC. Talvez todo o conjunto de dados raramente seja usado, mas os códigos públicos são basicamente escritos com base no formato de dados VOC ou COCO e geralmente seguem seu formato . Prepare seu próprio conjunto de dados. Portanto, o formato do PASCAL VOC, incluindo a estrutura de diretórios e o formato de conteúdo de cada pasta, será explicado em detalhes. É conveniente usar o formato padrão do VOC para criar seu próprio conjunto de dados no futuro para acelerar o andamento do projeto.
1. Visão geral do documento
Nome total da pasta VOCdevkit (usado em 2012, 2007 é muito antigo)
.
└── VOCdevkit #diretório raiz
└── VOC2012 #Conjuntos de dados de anos diferentes, apenas 2012 é baixado aqui e há outros anos como 2007
├── Anotações #Armazenamento de arquivos xml, correspondência individual com imagens em JPEGImages, explicação do conteúdo das imagens, etc.
├── ImageSets #Todos os arquivos txt são armazenados neste diretório. Cada linha no arquivo txt contém o nome de uma imagem e ±1 será adicionado no final para indicar amostras positivas e negativas
│ ├── Ação #Ação Reconhecimento da ação, sem envolvimento
│ ├── Layout #A pasta Layout é usada para tarefas de layout pessoal, não envolvidas
│ ├── Principal
└── train.txt #conjunto de treinamento
├── trainval.txt #conjunto de treinamento e conjunto de verificação
├── val.txt #definição de validação
├── test.txt #conjunto de teste
│ └── Segmentação #segmentação semântica
├── JPEGImages #Armazenar imagens de origem
├── SegmentationClass #Store pictures, relacionado à segmentação semântica
└── SegmentationObject #Store pictures, relacionadas à segmentação da instância
2. O conteúdo específico do arquivo
※ A pasta Anotação armazena o arquivo xml, que é a explicação da imagem, e cada imagem corresponde a um arquivo xml com o mesmo nome.
※ A pasta ImageSets armazena arquivos txt, que dividem as imagens do conjunto de dados em vários conjuntos. Conforme registrado no train.txt em Main, está a coleção de imagens usadas para treinamento.
※ A pasta JPEGImages armazena as imagens originais do conjunto de dados.
※ As pastas SegmentationClass e SegmentationObject armazenam imagens e todas são resultados de segmentação de imagem.
2.1, pasta de anotação
O conteúdo da pasta Anotação é o seguinte:
Entre eles, o xml apresenta principalmente as informações básicas da imagem correspondente, como qual pasta, nome do arquivo, fonte, tamanho da imagem e quais destinos e informações do destino estão contidos na imagem, etc. O conteúdo é o seguinte:
-
nome do arquivo: nome do arquivo
-
fonte, proprietário: fonte da imagem e proprietário
-
tamanho: tamanho da imagem
-
segmentado: se deseja segmentar
-
objeto: indica que este é um alvo e o conteúdo dentro dele é a informação relevante do alvo
- nome: nome do objeto, 20 categorias
- pose: ângulo de tiro: frontal, traseiro, esquerda, direita, não especificado
- truncado: se o alvo está truncado (como fora da imagem) ou ocluído (mais de 15%)
- Difícil: A dificuldade de detecção, que é julgada principalmente de acordo com o tamanho do alvo, a mudança de iluminação e a qualidade da imagem
-
bndbox: Os 4 valores de coordenadas do canto superior esquerdo e do canto inferior direito da caixa delimitadora.
<anotação>
<folder>VOC2012</folder> #Indique a fonte da imagem
<filename>2007_000027.jpg</filename> #nome da imagem
<source> #Informações relacionadas à fonte da imagem
<database>O banco de dados VOC2007</database>
<annotation>PASCAL VOC2007</annotation>
<image>flickr</image>
</translation>
<tamanho> #tamanho da imagem
<width>486</width>
<height>500</height>
<profundidade>3</profundidade>
</tamanho>
<segmented>0</segmented> #Se é usado para segmentação
<object> #contém o objeto
<name>person</name> #categoria do objeto
<pose>Não especificado</pose>
<truncado>0</truncado>
<difícil>0</difícil>
<bndbox> #A bbox do objeto
<xmin>174</xmin>
<ymin>101</ymin>
<xmax>349</xmax>
<ymax>351</ymax>
</bndbox>
<part> #A cabeça do objeto
<nome>cabeça</nome>
<bndbox>
<xmin>169</xmin>
<ymin>104</ymin>
<xmax>209</xmax>
<ymax>146</ymax>
</bndbox>
</part>
<parte> #mão do objeto
<name>mão</name>
<bndbox>
<xmin>278</xmin>
<ymin>210</ymin>
<xmax>297</xmax>
<ymax>233</ymax>
</bndbox>
</part>
<parte>
<name>pé</name>
<bndbox>
<xmin>273</xmin>
<ymin>333</ymin>
<xmax>297</xmax>
<ymax>354</ymax>
</bndbox>
</part>
<parte>
<name>pé</name>
<bndbox>
<xmin>319</xmin>
<ymin>307</ymin>
<xmax>340</xmax>
<ymax>326</ymax>
</bndbox>
</part>
</object>
</annotation>
2.2, pasta ImageSets
ImageSets contém as quatro subpastas a seguir:
Arquivos TXT para vários propósitos são armazenados em cada pasta. Por exemplo, há um arquivo denominado aeroplane_train.txt na pasta Principal, que, como o nome indica, são os dados de treinamento para a categoria de aeronave. O conteúdo específico do txt é o seguinte.
2008_000008
2008_000015
2008_000019
2008_000023
2008_000028
O conteúdo dos arquivos train.txt e trainval.txt contidos nele são semelhantes aos anteriores,
O conteúdo de train.txt e trainval.txt possui apenas o nome da imagem, mas não contém atributos de imagem e informações de caminho.
2.3, pasta JPEGImages
Esta pasta armazena todas as imagens de origem do conjunto de dados, o conteúdo é o seguinte:
2.4 **, pasta SegmentationClass **
Segmentação semântica relacionada:
Esta pasta armazena os mapas de rótulos correspondentes a todas as imagens de origem do conjunto de dados. Observe que os rótulos são 0, 1, 2, 3....
2.5, pasta SegmentationObject
Relacionado à segmentação de instâncias, observe que os rótulos são 0, 1, 2, 3... :