OMDet-Turbo
O OMDet-Turbo é um detector de objetos de vocabulário aberto em tempo real, desenvolvido pelo Om AI Lab, que desacopla os embeddings de classe do prompt de tarefa de linguagem. 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 at 640 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
- OMDet-Turbo por Om AI Lab, Apache-2.0. Artigo, código-fonte
- Licenças
- Código MIT, pesos Apache-2.0. Uso comercial
Instalação
O OMDet-Turbo é 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; o backbone Swin do OMDet-Turbo é carregado pelo wrapper
TimmBackbone do transformers.
Predição
O OMDet-Turbo 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("omdet-turbo")model.set_classes(["person", "dog", "skateboard"]) result = model.predict(SAMPLE_IMAGE, conf=0.3)for box in result.boxes: print(box.cls, box.conf, box.xyxy)from libreyolo import LibreOpenVocab, SAMPLE_IMAGE model = LibreOpenVocab("omdet-turbo")model.set_classes(["traffic light", "bicycle"]) # O OMDet-Turbo é a única família deste tier que respeita iou=: o# próprio pós-processamento dele recebe o limiar de supressão como# argumento, e assume 0.5 quando iou= não é definido.result = model.predict(SAMPLE_IMAGE, conf=0.3, iou=0.7)print(result.names, len(result))set_classes() define um vocabulário de texto persistente: chame de novo para
substituir a lista inteira, ou não chame para manter os rótulos COCO-80 padrão,
e um resultado vazio é um desfecho válido, não um erro. Diferente do Grounding
DINO, o OMDet-Turbo desacopla os embeddings de classe do prompt de tarefa de
linguagem, então o pós-processamento do transformers retorna rótulos que
mapeiam direto de volta para a lista de classes consultada, sem nenhuma etapa de
desambiguação de frases.
O OMDet-Turbo não tem limiar de token de texto: só conf filtra as detecções, e
passar text_threshold levanta erro. É a única família deste tier que roda a
própria non-maximum suppression dentro de
post_process_grounded_object_detection, então iou é respeitado aqui em vez
de gerar um aviso. 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
Um checkpoint, t, o único tamanho deste tier. Ele espelha
omlab/omdet-turbo-swin-tiny-hf em uma revisão upstream fixada, por meio do
OmDetTurboForObjectDetection do transformers; o arquivo de pesos espelhado é
byte a byte idêntico a esse snapshot upstream. 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 | ||
| LibreOMDetTurbot.pt | 640 | 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
- OMDet-Turbo, Om AI Lab
- Licença original
- Apache-2.0
- Código-fonte original
- github.com/om-ai-lab/OmDet
- 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 OMDet-Turbo model source of its own: LibreOMDetTurbo calls the Apache-2.0 `transformers` implementation, `OmDetTurboForObjectDetection`, directly. The mirrored checkpoint is a byte-identical copy of `omlab/omdet-turbo-swin-tiny-hf` at a pinned upstream revision, verified against a recorded SHA-256 checksum before it is used.
Citação
@article{zhao2024real,
title={Real-time Transformer-based Open-Vocabulary Detection with Efficient Fusion Head},
author={Zhao, Tiancheng and Liu, Peng and He, Xuan and Zhang, Lu and Lee, Kyusong},
journal={arXiv preprint arXiv:2403.06892},
year={2024}
}Copiado do bloco de citação dos autores em github.com/om-ai-lab/OmDet#citation.