Grounding DINO
O Grounding DINO é um detector de objetos de conjunto aberto, desenvolvido pela IDEA Research, que pontua uma imagem contra um prompt de texto livre em vez de uma lista fixa de classes. O LibreYOLO o encapsula como uma família somente de predição no seu tier de detectores de vocabulário aberto.
- Tarefas
- detection
- Tamanhos
- t, b at 800 px
- Instalação
pip install libreyolo- Nível de suporte
- Nível irmão, desde a v. Uma superfície de produto separada, com sua própria fábrica e seu próprio contrato.
- Origem
- Grounding DINO por IDEA Research, Apache-2.0. Artigo, código-fonte
- Licenças
- Código MIT, pesos Apache-2.0. Uso comercial
Instalação
O Grounding DINO é carregado pelo tier de detectores de vocabulário aberto do
LibreYOLO, que precisa do extra openvocab:
pip install "libreyolo[openvocab]"Esse extra traz junto transformers e timm, as bibliotecas da Hugging Face
que este tier chama.
Predição
O Grounding DINO não é um checkpoint que o LibreYOLO carrega por meio de
LibreYOLO(). Ele é carregado pela factory irmã LibreOpenVocab, que baixa um
snapshot da Hugging Face no primeiro uso e o guarda em cache em weights/.
from libreyolo import LibreOpenVocab, SAMPLE_IMAGE model = LibreOpenVocab("grounding-dino-t")model.set_classes(["person", "dog", "skateboard"]) result = model.predict(SAMPLE_IMAGE, conf=0.25)for box in result.boxes: print(box.cls, box.conf, box.xyxy)from libreyolo import LibreOpenVocab, SAMPLE_IMAGE model = LibreOpenVocab("grounding-dino-b")model.set_classes(["remote control", "school bus"]) # conf filtra pelo score da caixa, e text_threshold pelo score de token# da frase decodificada. Ambos assumem 0.25 quando não são definidos.result = model.predict(SAMPLE_IMAGE, conf=0.25, text_threshold=0.3)print(result.names)set_classes() define um vocabulário de texto persistente: chame de novo para
substituir a lista, ou não chame para manter os rótulos COCO-80 padrão. O
Grounding DINO decodifica frases livres a partir da própria saída de texto e as
mapeia de volta para esse vocabulário por conta própria, uma correspondência
normalizada exata vence, uma correspondência de token inteiro é aceita, e uma
frase ambígua ou sem correspondência é descartada em vez de adivinhada, então
school bus nunca acaba mapeado para bus ou school sozinhos. Um
vocabulário longo o bastante para ultrapassar o limite de tokens do codificador
de texto é dividido em vários prompts, executado como passes forward separados
e reunido de volta em um único conjunto de detecções limitado por max_det.
iou é aceito por compatibilidade de API, mas emite um aviso e não faz nada, já
que nada aqui roda non-maximum suppression. imgsz e augment=True são
rejeitados de saída: o processador do transformers é quem cuida do
redimensionamento, e o data augmentation em tempo de teste está fora do escopo
deste tier. predict() em uma única imagem retorna um Results, não uma lista;
passe um diretório, uma lista de imagens ou stream=True com uma fonte de vídeo
para obter vários. Não há caminho de CLI para esta família, libreyolo predict
só carrega checkpoints .pt por meio de LibreYOLO(), então as famílias de
LibreOpenVocab rodam a partir do Python. Veja predição para
tipos de fonte e streaming.
Variantes
Dois checkpoints, t e b. t é o tamanho padrão deste tier quando nenhum é
informado. Ambos espelham o release oficial da IDEA Research por meio do
GroundingDinoForObjectDetection do transformers, baixado uma vez para um
snapshot da Hugging Face hospedado pelo LibreYOLO que preserva os arquivos
originais. Ainda não há números publicados de acurácia ou de latência para esta
família.
Treinamento, validação de dataset e exportação estão todos fora do escopo deste
tier: train(), val() e export() levantam NotImplementedError de forma
incondicional. Este é um wrapper somente de predição em volta de um checkpoint
publicado.
Checkpoints
Todos os arquivos de pesos publicados desta família.
| Arquivo | Entrada (px) | Licença dos pesos |
|---|---|---|
| Detection | ||
| LibreGroundingDINOt.pt | 800 | apache-2.0 |
| LibreGroundingDINOb.pt | 800 | apache-2.0 |
Todos os arquivos acima existem hoje na organização LibreYOLO e são baixados no primeiro uso.
Licenciamento
Confira a licença no repositório do Hugging Face correspondente aos pesos que você baixar. Cada checkpoint na organização LibreYOLO tem uma licença, e ela nem sempre é a mesma em toda a família. Esse repositório é a fonte oficial. O resumo abaixo descreve o que se aplicava na última verificação desta página.
Esta é uma descrição das licenças envolvidas, não uma orientação jurídica. Se a resposta tiver importância comercial, leia as licenças e procure sua própria assessoria.
- Trabalho original
- Grounding DINO, IDEA Research
- Licença original
- Apache-2.0
- Código-fonte original
- github.com/IDEA-Research/GroundingDINO
- Código do LibreYOLO
- MIT
- Pesos
- Apache-2.0, republicado em huggingface.co/LibreYOLO
- Interpretação
- Apache-2.0 is a permissive license, so this checkpoint can be used in commercial and closed-source products. It asks you to keep the license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. LibreYOLO vendors no Grounding DINO model source of its own: LibreGroundingDINO calls the Apache-2.0 `transformers` implementation, `GroundingDinoForObjectDetection`, directly, and downloads the official checkpoint into a LibreYOLO-hosted mirror repository that preserves the upstream snapshot files.
Citação
@article{liu2023grounding,
title={Grounding dino: Marrying dino with grounded pre-training for open-set object detection},
author={Liu, Shilong and Zeng, Zhaoyang and Ren, Tianhe and Li, Feng and Zhang, Hao and Yang, Jie and Li, Chunyuan and Yang, Jianwei and Su, Hang and Zhu, Jun and others},
journal={arXiv preprint arXiv:2303.05499},
year={2023}
}Copiado do bloco de citação dos autores em github.com/IDEA-Research/GroundingDINO#black_nib-citation.