Esta é a implementação oficial do artigo "DINO: DETR com caixas de ancoragem aprimoradas para detecção de objetos de ponta a ponta". (Dino declarou `daɪnoʊ 'como em dinossauros)
Autores: Hao Zhang*, Feng Li*, Shilong Liu*, Lei Zhang, Hang Su, Jun Zhu, Lionel M. Ni, Heung-Yeung Shum
[2023/7/10] Lançamos Semantic-Sam, um modelo de segmentação de imagem universal para ativar o segmento e reconhecer qualquer coisa em qualquer granularidade desejada. Código e ponto de verificação estão disponíveis!
[2023/4/28]: Lançamos um modelo de detecção e segmentação de objetos e segmentação de objetos abertos que atinge os melhores resultados em tarefas de segmentação de objetos abertos. Código e pontos de verificação estão disponíveis aqui.
[2023/4/26]: Dino está brilhando novamente! Lançamos o estábulo-dino, que é construído em espinha dorsal de dino e focalnet-huge que atinge 64.8 AP
no teste de coco-dev.
[2023/4/22]: Com melhores hiper paramas, nosso modelo Dino-4Scale alcança 49.8 AP
Sob 12EP Configurações, verifique o Detrex: DINO para obter mais detalhes.
[2023/3/13]: Lançamos um forte modelo de aterramento do modelo de detecção de objetos de seta aberta que atinge os melhores resultados em tarefas de detecção de objetos abertos. Ele atinge 52,5 AP zero-tiro na detecção de coco, sem dados de treinamento de coco! Atinge 63,0 AP em Coco após o ajuste fino. Código e pontos de verificação estarão disponíveis aqui.
[2023/1/23]: DINO foi aceito no ICLR 2023!
[2022/12/02]: O código para máscara é lançado (também em Detrex)! A máscara Dino alcança ainda mais 51,7 e 59.0 Box AP em Coco com um resnet-50 e swinl sem dados de detecção extra, superando o dino na mesma configuração!.
[2022/9/22]: Lançamos uma caixa de ferramentas Detrex que fornece algoritmos de detecção baseados em transformadores de última geração. Inclui dino com melhor desempenho . Bem -vindo a usá -lo!
[2022/9/18]: Organizamos o Workshop da ECCV Vision em The Wild (CVINW) , onde dois desafios são hospedados para avaliar o desempenho zero, com poucos e fotos completas dos modelos de visão pré-treinados em tarefas a jusante :
[Workshop] [IC Challenge] [OD Challenge]
[2022/8/6]: Atualizamos os resultados do modelo SWIN-L sem técnicas como O365 pré-treinamento, tamanho grande da imagem e teste em várias escalas. Também carregamos os pontos de verificação correspondentes para o Google Drive. Nosso modelo de 5 escalas sem truques obtém 58,5 AP no Coco Val.
[2022/7/14]: Lançamos o código com Swin-L e Convnext Backbone.
[2022/7/10]: liberamos o código e os pontos de verificação com o backbone Resnet-50.
[2022/6/7]: Lançamos um modelo de model de detecção e segmentação unificado que alcança os melhores resultados em todas as três tarefas de segmentação ( 54,7 AP na tabela de classificação Coco, 59,5 pq na tabela de líderes do Coco Planoptic e 60,8 miou no Ade20k semântico tabela de classificação)! O código estará disponível aqui.
[2022/5/28] O código para DN-DETR está disponível aqui.
[2020/4/10]: O código para DAB-Detr está disponível aqui.
[2022/3/8]: Chegamos ao SOTA no MS-COCO Leader Board com 63.3AP !
[2022/3/9]: Construímos um transformador de detecção impressionante repo para apresentar artigos sobre o transformador para detecção e segmentação. Bem -vindo à sua atenção!
Apresentamos o dino ( D eR com as caixas de ancê de uma malha ) com:
Colocamos nossos pontos de verificação do modelo aqui [Model Zoo no Google Drive] [Modelo Zoo em 百度网盘] (提取码 "dino"), onde o ponto de verificação {x} _ {y} escala. Treinado para X épocas. Nossos registros de treinamento estão no [Google Drive].
nome | espinha dorsal | caixa ap | Ponto de verificação | Onde em nosso papel | |
---|---|---|---|---|---|
1 | DINO-4SCALE | R50 | 49.0 | Google Drive / Baidu | Tabela 1 |
2 | DINO-5SCALE | R50 | 49.4 | Google Drive / Baidu | Tabela 1 |
3 | DINO-4SCALE | Swin-l | 56.8 | Google Drive | |
4 | DINO-5SCALE | Swin-l | 57.3 | Google Drive |
nome | espinha dorsal | caixa ap | Ponto de verificação | Onde em nosso papel | |
---|---|---|---|---|---|
1 | DINO-4SCALE | R50 | 50.4 | Google Drive / Baidu | Tabela 2 |
2 | DINO-5SCALE | R50 | 51.3 | Google Drive / Baidu | Tabela 2 |
nome | espinha dorsal | caixa ap | Ponto de verificação | Onde em nosso papel | |
---|---|---|---|---|---|
1 | DINO-4SCALE | R50 | 50.9 | Google Drive / Baidu | Tabela 2 |
2 | DINO-5SCALE | R50 | 51.2 | Google Drive / Baidu | Tabela 2 |
3 | DINO-4SCALE | Swin-l | 58.0 | Google Drive | |
4 | DINO-5SCALE | Swin-l | 58.5 | Google Drive |
Usamos o mesmo ambiente para DAB-Detr e DN-Detr para executar o dino. Se você executou DN-Detr ou Dab-Detr, poderá pular esta etapa. Testamos nossos modelos em python=3.7.3,pytorch=1.9.0,cuda=11.1
. Outras versões também podem estar disponíveis. Clique nos Details
abaixo para obter mais detalhes.
git clone https://github.com/IDEA-Research/DINO.git
cd DINO
Siga as instruções em https://pytorch.org/get-started/locally/.
# an example:
conda install -c pytorch pytorch torchvision
pip install -r requirements.txt
cd models/dino/ops
python setup.py build install
# unit test (should see all checking is True)
python test.py
cd ../../..
Faça o download do conjunto de dados Coco 2017 e organize -o como seguinte:
COCODIR/
├── train2017/
├── val2017/
└── annotations/
├── instances_train2017.json
└── instances_val2017.json
Faça o download do nosso Modelo de Dino Ponto de verificação "Checkpoint0011_4Scale.PTH" deste link e execute o comando abaixo. Você pode esperar obter o AP final em cerca de 49,0.
bash scripts/DINO_eval.sh /path/to/your/COCODIR /path/to/your/checkpoint
Para inferência e visualizações, fornecemos um notebook como exemplo.
Utilizamos o modelo de 4 escala Dino treinado para 12 épocas como exemplo para demonstrar como avaliar e treinar nosso modelo.
Você também pode treinar nosso modelo em um único processo:
bash scripts/DINO_train.sh /path/to/your/COCODIR
Para treinar o modelo SWIN-L, você precisa fazer o download primeiro do ponto de verificação do backbone SWIN-L do link e especificar o diretor do backbone pré-treinado ao executar os scripts. Aqui está um exemplo.
bash scripts/DINO_train_submitit_swin.sh /path/to/your/COCODIR /path/to/your/pretrained_backbone
Como o treinamento consome tempo, sugerimos treinar o modelo em vários dispositivos.
Se você planeja treinar os modelos em um cluster com Slurm , aqui está um comando de exemplo para treinamento:
# for DINO-4scale: 49.0
bash scripts/DINO_train_submitit.sh /path/to/your/COCODIR
# for DINO-5scale: 49.4
bash scripts/DINO_train_submitit_5scale.sh /path/to/your/COCODIR
Notas: Os resultados são sensíveis ao tamanho do lote. Utilizamos 16 (2 imagens cada GPU x 8 GPUs para Dino-4Scale e 1 imagens cada GPU x 16 GPUs para Dino-5Scale) por padrão.
Ou execute com multipocessos em um único nó :
# for DINO-4scale: 49.0
bash scripts/DINO_train_dist.sh /path/to/your/COCODIR
Para treinar um dino em um conjunto de dados personalizado do zero , você precisa ajustar dois parâmetros em um arquivo de configuração:
num_classes
no número de classes a serem detectadas no seu conjunto de dados.dn_labebook_size
para garantir que dn_labebook_size >= num_classes + 1
Para alavancar nossos modelos pré-treinados para o ajuste fino do modelo, sugerimos que adicione mais dois comandos em uma festa:
--pretrain_model_path /path/to/a/pretrianed/model
. Especifique um modelo pré-treinado.--finetune_ignore label_enc.weight class_embed
. ignore alguns parâmetros inconsistentes.Nosso modelo é baseado em DAB-Detr e DN-Detr.
DN-DETR: Acelere o treinamento detracho, introduzindo denoising de consulta.
Feng Li*, Hao Zhang*, Shilong Liu, Jian Guo, Lionel M. Ni, Lei Zhang.
Conferência do IEEE sobre visão computacional e reconhecimento de padrões ( CVPR ) 2022.
[Paper] [Código] [中文解读]
DAB-DETR: As caixas de ancoragem dinâmicas são melhores consultas para depr.
Shilong Liu, Feng Li, Hao Zhang, Xiao Yang, Xianbiao Qi, Hang Su, Jun Zhu, Lei Zhang.
Conferência Internacional sobre Representações de Aprendizagem ( ICLR ) 2022.
[papel] [Código]
Agradecemos também ao excelente trabalho anterior, incluindo Detr, Deformable DeTr, SMCA, Condicional Detr, Anchor Detr, Dynamic Detr, etc. Mais trabalhos relacionados estão disponíveis no Awesome Detecção Transformer.
O DINO é liberado sob a licença Apache 2.0. Consulte o arquivo de licença para obter mais informações.
Ideia de direitos autorais (c). Todos os direitos reservados.
Licenciado sob a licença Apache, versão 2.0 (a "licença"); Você não pode usar esses arquivos, exceto em conformidade com a licença. Você pode obter uma cópia da licença em http://www.apache.org/license/license-2.0
A menos que exigido pela lei aplicável ou acordada por escrito, o software distribuído pela licença é distribuído "como está", sem garantias ou condições de qualquer tipo, expressa ou implícita. Consulte a licença para o idioma específico que rege as permissões e limitações sob a licença.
Se você achar nosso trabalho útil para sua pesquisa, considere citar a seguinte entrada do Bibtex.
@misc { zhang2022dino ,
title = { DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection } ,
author = { Hao Zhang and Feng Li and Shilong Liu and Lei Zhang and Hang Su and Jun Zhu and Lionel M. Ni and Heung-Yeung Shum } ,
year = { 2022 } ,
eprint = { 2203.03605 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CV }
}
@inproceedings { li2022dn ,
title = { Dn-detr: Accelerate detr training by introducing query denoising } ,
author = { Li, Feng and Zhang, Hao and Liu, Shilong and Guo, Jian and Ni, Lionel M and Zhang, Lei } ,
booktitle = { Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition } ,
pages = { 13619--13627 } ,
year = { 2022 }
}
@inproceedings {
liu2022dabdetr,
title = { {DAB}-{DETR}: Dynamic Anchor Boxes are Better Queries for {DETR} } ,
author = { Shilong Liu and Feng Li and Hao Zhang and Xiao Yang and Xianbiao Qi and Hang Su and Jun Zhu and Lei Zhang } ,
booktitle = { International Conference on Learning Representations } ,
year = { 2022 } ,
url = { https://openreview.net/forum?id=oMI9PjOb9Jl }
}