Grounding DINO
Grounding DINO es un detector de objetos de conjunto abierto, desarrollado por IDEA Research, que puntúa una imagen frente a un prompt de texto libre en lugar de una lista fija de clases. LibreYOLO lo envuelve como una familia solo de predicción dentro de su tier de detectores de vocabulario abierto.
- Tareas
- detection
- Tamaños
- t, b at 800 px
- Instalación
pip install libreyolo- Nivel de compatibilidad
- Nivel hermano, desde v. Una superficie de producto independiente con su propia factoría y su propio contrato.
- Licencias
- Código MIT, pesos Apache-2.0. Uso comercial
Instalación
Grounding DINO se carga a través del tier de detectores de vocabulario abierto
de LibreYOLO, que necesita el extra openvocab:
pip install "libreyolo[openvocab]"Ese extra instala transformers y timm, las bibliotecas de Hugging Face a
las que llama este tier.
Predicción
Grounding DINO no es un checkpoint que LibreYOLO cargue a través de
LibreYOLO(). Se carga a través de la factoría hermana LibreOpenVocab, que
descarga un snapshot de Hugging Face en el primer uso y lo cachea en
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 por la puntuación de la caja y text_threshold por la# puntuación de token de la frase decodificada. Ambos valen 0.25 por defecto.result = model.predict(SAMPLE_IMAGE, conf=0.25, text_threshold=0.3)print(result.names)set_classes() fija un vocabulario de texto persistente: vuelve a llamarla
para sustituir la lista, u omítela para conservar las etiquetas COCO-80 por
defecto. Grounding DINO decodifica frases libres a partir de su propia salida
de texto y las mapea de vuelta a ese vocabulario por sí mismo, gana la
coincidencia normalizada exacta, se acepta una coincidencia de token completo,
y una frase ambigua o sin coincidencia se descarta en lugar de adivinarla, así
que school bus nunca acaba mapeado a bus ni a school por separado. Un
vocabulario lo bastante largo como para superar el límite de tokens del
codificador de texto se divide en varios prompts, se ejecuta como pases hacia
delante separados y se vuelve a fusionar en un único conjunto de detecciones
limitado por max_det.
iou se acepta por compatibilidad de la API, pero avisa y no hace nada, ya que
aquí nada ejecuta non-maximum suppression. imgsz y augment=True se rechazan
directamente: el procesador de transformers es quien se encarga del
redimensionado, y el aumento de datos en tiempo de test queda fuera del alcance
de este tier. predict() sobre una única imagen devuelve un Results, no una
lista; pasa un directorio, una lista de imágenes o stream=True con una fuente
de vídeo para obtener varios. No hay ruta de CLI para esta familia, libreyolo predict solo carga checkpoints .pt a través de LibreYOLO(), así que las
familias de LibreOpenVocab se ejecutan desde Python. Consulta
predicción para tipos de fuente y streaming.
Variantes
Dos checkpoints, t y b. t es el tamaño por defecto de este tier cuando no
se indica ninguno. Ambos replican la publicación oficial de IDEA Research a
través de GroundingDinoForObjectDetection de transformers, descargado una
sola vez en un snapshot de Hugging Face alojado por LibreYOLO que conserva los
archivos originales. Todavía no hay cifras publicadas de precisión ni de
latencia para esta familia.
El entrenamiento, la validación de datasets y la exportación quedan todos fuera
del alcance de este tier: train(), val() y export() lanzan
NotImplementedError de forma incondicional. Esto es un wrapper solo de
predicción alrededor de un checkpoint publicado.
Checkpoints
Todos los archivos de pesos publicados de esta familia.
| Archivo | Entrada (px) | Licencia de los pesos |
|---|---|---|
| Detection | ||
| LibreGroundingDINOt.pt | 800 | apache-2.0 |
| LibreGroundingDINOb.pt | 800 | apache-2.0 |
Todos los archivos anteriores existen hoy en la organización de LibreYOLO y se descargan la primera vez que se usan.
Licencia
Comprueba la licencia en el repositorio de Hugging Face de los pesos concretos que descargues. Cada checkpoint de la organización de LibreYOLO incluye una, y no siempre es la misma en toda una familia. Ese repositorio es la fuente autorizada; el resumen siguiente describe qué se aplicaba cuando se verificó esta página por última vez.
Esta es una descripción de las licencias implicadas, no asesoramiento legal. Si la respuesta es importante a nivel comercial, lee las licencias y busca tu propio asesoramiento.
- Trabajo original
- Grounding DINO, IDEA Research
- Licencia del proyecto original
- Apache-2.0
- Fuente del proyecto original
- github.com/IDEA-Research/GroundingDINO
- Código de LibreYOLO
- MIT
- Pesos
- Apache-2.0, republicados en huggingface.co/LibreYOLO
- Interpretación
- 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
@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 del bloque de cita de los autores en github.com/IDEA-Research/GroundingDINO#black_nib-citation.