Describe Anything: herramienta de código abierto para generar descripciones detalladas de imágenes y zonas de vídeo.
Últimos recursos sobre IAPublicado hace 3 meses Círculo de intercambio de inteligencia artificial 1.2K 00
Introducción general
Describe Anything es un proyecto de código abierto desarrollado por NVIDIA y varias universidades, cuyo núcleo es el modelo Describe Anything (DAM). Esta herramienta genera descripciones detalladas basadas en áreas (como puntos, recuadros, grafitis o máscaras) que el usuario marca en una imagen o un vídeo. No sólo describe los detalles de una imagen fija, sino que también capta el cambio de las regiones de un vídeo a lo largo del tiempo.

Lista de funciones
- Admite varios métodos de etiquetado de regiones: los usuarios pueden especificar la región de descripción de una imagen o vídeo mediante puntos, recuadros, garabatos o máscaras.
- Descripción de imágenes y vídeos: genere descripciones detalladas para imágenes fijas o analice los cambios dinámicos en zonas específicas de un vídeo.
- Modelos y conjuntos de datos de código abierto: los modelos DAM-3B y DAM-3B-Video están disponibles para apoyar el procesamiento conjunto de imagen y vídeo.
- Interfaz interactiva: a través de Gradio se proporciona una interfaz web que permite a los usuarios dibujar máscaras y obtener descripciones en tiempo real.
- Compatibilidad con API: proporcione interfaces de servidor compatibles con OpenAI para facilitar la integración en otras aplicaciones.
- DLC-Bench Evaluation: contiene herramientas de evaluación comparativa especializadas para evaluar el rendimiento de los modelos descritos en el área.
- Integración de SAM: modelo integrado opcional de Segment Anything (SAM) con generación automática de máscaras para mejorar la eficacia operativa.
Utilizar la ayuda
Proceso de instalación
Describe Anything puede instalarse desde un entorno Python, y se recomienda utilizar un entorno virtual para evitar conflictos de dependencias. A continuación se detallan los pasos de instalación:
- Creación de un entorno Python::
Utilizando Python 3.8 o posterior, crea un nuevo entorno virtual:python -m venv dam_env source dam_env/bin/activate # Linux/Mac dam_env\Scripts\activate # Windows
- Instalar Describir cualquier cosa::
Hay dos opciones de montaje:- Instalar directamente a través de pip:
pip install git+https://github.com/NVlabs/describe-anything
- Clone el repositorio e instálelo localmente:
git clone https://github.com/NVlabs/describe-anything cd describe-anything pip install -v .
- Instalar directamente a través de pip:
- Instale Segment Anything (opcional)::
Si necesita generar máscaras automáticamente, debe instalar la dependencia SAM:cd demo pip install -r requirements.txt
- Verificar la instalación::
Una vez finalizada la instalación, ejecute el siguiente comando para comprobar si se ha realizado correctamente:python -c "from dam import DescribeAnythingModel; print('Installation successful')"
Utilización
Describe Anything puede utilizarse de diversas formas, como secuencias de comandos, interfaces interactivas y llamadas a la API. A continuación se muestra un recorrido detallado de las principales características:
1. Interfaz interactiva de Gradio
La interfaz de Gradio es adecuada para principiantes y permite a los usuarios cargar imágenes y dibujar máscaras manualmente para obtener descripciones.
- Interfaz de lanzamiento::
Ejecute el siguiente comando para iniciar el servidor Gradio:python demo_simple.py
Cuando se ejecuta el comando, el navegador abre una página web local (normalmente la página
http://localhost:7860
). - procedimiento::
- Cargar imagen: Haga clic en el botón Cargar para seleccionar un archivo de imagen local.
- Dibujar máscara: Utilice la herramienta pincel para rodear el área de interés de la imagen.
- Obtener descripción: Haga clic en Enviar y el sistema generará una descripción detallada de la zona, por ejemplo, "Un perro pelirrojo, con un collar de placas plateado, corriendo".
- Integración SAM opcional: Cuando SAM está activado, el sistema genera automáticamente una máscara haciendo clic en los puntos de la imagen.
- advertencia::
- Asegúrese de que la imagen está en formato RGBA y la máscara se procesa a través del canal alfa.
- El nivel de detalle de la descripción puede ajustarse mediante parámetros (p. ej.
max_new_tokens
) Control.
2. Scripts de línea de comandos
Los scripts de línea de comandos son adecuados para el procesamiento por lotes o el uso por parte de desarrolladores, ya que ofrecen una mayor flexibilidad.
- Descripción de la imagen::
Ejecute el siguiente comando para generar una descripción para la imagen:python examples/dam_with_sam.py --image_path <image_file> --input_points "[[x1,y1],[x2,y2]]"
Por ejemplo:
python examples/dam_with_sam.py --image_path dog.jpg --input_points "[[500,300]]"
El sistema genera una máscara y emite una descripción basada en los puntos especificados.
- Descripción del vídeo::
Procesamiento de vídeo mediante modelos federados:python examples/query_dam_server_video.py --model describe_anything_model --server_url http://localhost:8000 --video_path <video_file>
Basta con especificar el área en un marco y el sistema rastreará y describirá automáticamente los cambios de área.
- parametrización::
--temperature
: Controla la creatividad de la descripción, con un valor recomendado de 0,2.--top_p
Controla la generación de diversidad, con un valor recomendado de 0,9.--max_new_tokens
: Establece la longitud máxima de la descripción, por defecto es 512.
3. Llamadas a la API
Describe Anything proporciona una API compatible con OpenAI adecuada para su integración en otras aplicaciones.
- Iniciar el servidor::
Ejecute el siguiente comando para iniciar el servidor DAM:python dam_server.py --model-path nvidia/DAM-3B --conv-mode v1 --prompt-mode focal_prompt
El servidor se ejecuta por defecto en el
http://localhost:8000
. - Enviar solicitud::
Envía peticiones utilizando Python y el SDK de OpenAI:from openai import OpenAI client = OpenAI(base_url="http://localhost:8000", api_key="not-needed") response = client.chat.completions.create( model="describe_anything_model", messages=[ {"role": "user", "content": [ {"type": "image_url", "image_url": {"url": "data:image/png;base64,<base64_image>"}}, {"type": "text", "text": "Describe the region in the mask"} ]} ] ) print(response.choices[0].message.content)
intercambiabilidad
<base64_image>
Codificación Base64 de la imagen.
4. Evaluación DLC-Bench
DLC-Bench es una herramienta de evaluación comparativa de modelos de descripción de áreas.
- Descargar conjunto de datos::
git lfs install git clone https://huggingface.co/datasets/nvidia/DLC-Bench
- Evaluación operativa::
Utilice los siguientes comandos para generar la salida del modelo y evaluarla:python get_model_outputs.py --model_type dam --model_path nvidia/DAM-3B
Los resultados se almacenan en la caché
model_outputs_cache/
Carpeta.
Función destacada Operación
- Estimulación focal: DAM utiliza la tecnología Focal Prompting para combinar el contexto global de la imagen y los detalles del área local para generar descripciones más precisas. Los usuarios no tienen que ajustar manualmente las indicaciones, el sistema las optimiza automáticamente.
- Gated Cross-AttentionA través de un mecanismo de atención cruzada, el modelo es capaz de centrarse en una región específica de una escena compleja, evitando la interferencia de información irrelevante.
- Descripción del movimiento del vídeoBasta con marcar una zona en un fotograma para que DAM rastree y describa automáticamente cómo cambia esa zona en el vídeo, por ejemplo, "los músculos de las patas de la vaca se mueven con fuerza con el paso".
escenario de aplicación
- Análisis de imágenes médicas
Los médicos pueden utilizar Describe Anything para anotar zonas concretas de una imagen médica, como un TAC o una resonancia magnética, y generar una descripción detallada que ayude al diagnóstico. Por ejemplo, al etiquetar una zona anormal en los pulmones, el sistema podría describir "una zona sombreada irregular con bordes borrosos, posiblemente inflamación". - urbanismo
Los planificadores pueden cargar un vídeo aéreo, etiquetando zonas de edificios o carreteras y obteniendo descripciones como "una amplia autopista de cuatro carriles rodeada de densos edificios comerciales". Esto ayuda a analizar el trazado de la ciudad. - creación de contenidos
Los creadores de vídeo pueden utilizar Describe Anything para generar descripciones de objetos concretos de un videoclip, como "un águila volando con las alas desplegadas y montañas nevadas de fondo". Estas descripciones pueden utilizarse para subtítulos o guiones. - anotación de datos
Los científicos de datos pueden utilizar DAM para generar automáticamente descripciones de objetos en una imagen o vídeo, reduciendo la necesidad de etiquetado manual. Por ejemplo, etiquetar un vehículo en un conjunto de datos genera la frase "coche rojo, faros encendidos".
CONTROL DE CALIDAD
- ¿Qué formatos de entrada admite Describe Anything?
Se admiten formatos de imagen comunes como PNG, JPEG y formatos de vídeo como MP4. La imagen debe estar en modo RGBA, con la máscara especificada por el canal alfa. - ¿Cómo puedo mejorar la precisión de mis descripciones?
Utilizar una máscara más precisa (por ejemplo, autogenerada a través de SAM) y ajustar eltemperature
responder cantandotop_p
parámetros para controlar la creatividad y la diversidad de las descripciones. - ¿Necesita una GPU para funcionar?
Se recomiendan las GPU NVIDIA (por ejemplo, RTX 3090) para la inferencia acelerada, pero también pueden funcionar las CPU, a velocidades más lentas. - ¿Cómo gestionar las descripciones de varios fotogramas en los vídeos?
Basta con marcar la región en un fotograma para que el DAM rastree y describa automáticamente cómo cambia la región en los fotogramas siguientes.
© declaración de copyright
El artículo está protegido por derechos de autor y no debe reproducirse sin autorización.
Artículos relacionados
Sin comentarios...