git clone https://github.com/subhc/unsup-parts.git
cd unsup-parts
conda env create --file environment.yml
conda activate unsup-parts
wget https://www.robots.ox.ac.uk/~vgg/research/unsup-parts/files/checkpoints.tar.gz
tar zxvf checkpoints.tar.gz
O projeto usa pesos e preconceitos para visualização, atualize wandb_userid
em train.py
para seu nome de usuário
data
com a seguinte estrutura de pastas dentro e extraia os alcatrões nos locais mencionados. data
└── CUB # extract CUB_200_2011.tgz, cub_supervisedlabels.tar.gz here
├── CUB_200_2011 # extract cachedir.tar.gz and segmentations.tgz here
│ ├── attributes
│ ├── cachedir
│ ├── images
│ ├── parts
│ └── segmentations
└── supervisedlabels
Exemplo
mkdir -p data/CUB/
cd data/CUB/
tar zxvf CUB_200_2011.tgz
tar zxvf cub_supervised_labels.tar.gz
cd CUB_200_2011
tar zxvf segmentations.tgz
tar zxvf cachedir.tar.gz
data
com a estrutura da pasta abaixo.segmentation
interna. data
└── DeepFashion
└── In-shop Clothes Retrieval Benchmark # extract deepfashion_supervisedlabels.tar.gz here
├── Anno
│ └── segmentation # extract img_highres_seg.zip here
│ └── img_highres
│ ├── MEN
│ └── WOMEN
└── supervisedlabels
└── img_highres
├── MEN
└── WOMEN
Exemplo
mkdir -p data/DeepFashion/In-shop Clothes Retrieval Benchmark/Anno/
cd data/DeepFashion/In-shop Clothes Retrieval Benchmark/
wget https://www.robots.ox.ac.uk/~vgg/research/unsup-parts/files/deepfashion_supervisedlabels.tar.gz
tar zxvf deepfashion_supervisedlabels.tar.gz
cd Anno
# get the segmentation folder from the google drive link
cd segmentation
unzip img_highres_seg.zip
Para treinar Cub:
python train.py dataset_name=CUB
Para treinar Deepfashion:
python train.py dataset_name=DF
Você pode encontrar o código de avaliação na pasta de avaliação.
Descrição | Tamanho | Link |
---|---|---|
Cub-200-2011 (PTH) | 181 MB | aqui |
Deepfashion (PTH) | 181 MB | aqui |
Ambos (tar.gz) | 351MB | aqui |
Por favor, mova os arquivos pth
nos checkpoints/CUB
e checkpoints/DeepFashion
respectivamente.
O objetivo do aprendizado de representação visual auto-supervisionado é aprender representações de imagens fortes e transferíveis, com a maioria das pesquisas focadas no nível de objeto ou cena. Por outro lado, o aprendizado de representação em nível de peça recebeu significativamente menos atenção. Neste artigo, propomos uma abordagem não supervisionada para a descoberta e segmentação de peças do objeto e fazemos três contribuições. Primeiro, construímos uma tarefa de proxy através de um conjunto de objetivos que incentivam o modelo a aprender uma decomposição significativa da imagem em suas partes. Em segundo lugar, o trabalho anterior defende a reconstrução ou agrupamento de recursos pré-computados como um proxy das partes; Mostramos empiricamente que é improvável que isso encontre partes significativas; Principalmente devido à sua baixa resolução e à tendência das redes de classificação de manchas espacialmente as informações. Sugerimos que a reconstrução da imagem no nível dos pixels possa aliviar esse problema, atuando como uma sugestão complementar. Por fim, mostramos que a avaliação padrão baseada na regressão do ponto de chave não se correlaciona bem com a qualidade da segmentação e, assim, introduz métricas diferentes, NMI e ARI, que caracterizam melhor a decomposição dos objetos em partes. Nosso método gera peças semânticas que são consistentes em categorias de refrigerante fino, mas visualmente distintas, superando o estado da arte em três conjuntos de dados de referência. O código está disponível na página do projeto.
@inproceedings{choudhury21unsupervised,
author = {Subhabrata Choudhury and Iro Laina and Christian Rupprecht and Andrea Vedaldi},
booktitle = {Proceedings of Advances in Neural Information Processing Systems (NeurIPS)},
title = {Unsupervised Part Discovery from Contrastive Reconstruction},
year = {2021}
}
O código é amplamente baseado no SCOPS.