Implementación y Evaluación de Deformable-DETR para Detección de Objetos en COCO

Deformable-DETR optimiza el paradigma de detección de objetos de extremo a extremo mediante la integración de mecanismos de atención deformable. Esta arquitectura mitiga las limitaciones de convergencia lenta y el alto costo computacional presentes en los modelos DETR originales, logrando un equilibrio superior entre precisión y eficiencia. A continuación, se detalla el proceso técnico para configurar, entrenar y evaluar este modelo utilizando el conjunto de datos COCO.

Configuración del Entorno y Compilación

Para iniciar, es necesario clonar el repositorio base y establecer las dependencias del proyecto. Se ha modificado el nombre del directorio local para evitar conflictos de rutas estándar.

git clone https://gitcode.com/gh_mirrors/de/Deformable-DETR.git def_detr_workspace
cd def_detr_workspace
pip install -r requirements.txt

Posteriormente, es obligatorio compilar las operaciones personalizadsa de CUDA para el módulo de atención deformable:

cd models/ops
bash make.sh
cd ../../

Fundamentos de la Arquitectura

La innovación principal de este modelo radica en su capacidad para procesar características multiescala de manera eficiente.

Figura 1: Diagrama de la arquitectura del detector Deformable-DETR, ilustrando la atención deformable multiescala en el codificador y decodificador.

Los componentes clave incluyen:

  • Extracción Multiescala: Utiliza redes de pirámides de características para capturar información a diferentes resoluciones.
  • Atención Deformable: En lugar de atender a todas las posiciones, el modelo muestrea dinámicamente un conjunto reducido de puntos de referencia clave, reduciendo drásticamente la complejidad.
  • Inferencia Directa: Elimina la necesidad de componentes heurísticos como Non-Maximum Suppression (NMS) mediante el uso de pérdidas de emparejamiento bipartito.

Preparación del Conjunto de Datos COCO

La estructura de directorios debe coincidir estrictamente con las expectativas del cargador de datos. Ejecute los siguientes comandos para descargar y organizar los archivos de COCO 2017 de manera optimizada:

mkdir -p data/coco_benchmark
cd data/coco_benchmark

wget -q http://images.cocodataset.org/zips/train2017.zip && unzip -q train2017.zip
wget -q http://images.cocodataset.org/zips/val2017.zip && unzip -q val2017.zip
wget -q http://images.cocodataset.org/annotations/annotations_trainval2017.zip && unzip -q annotations_trainval2017.zip

cd ../../

Ejecución del Entrenamiento

El framework proporciona scripts de configuración en el directorio configs/. Puede lanzar el entrenamiento en modo de GPU única o distribuido, ajustando el orden de los argumentos para mayor claridad.

# Entrenamiento en un solo dispositivo
python main.py --coco_path ./data/coco_benchmark --config-file configs/r50_deformable_detr.sh

# Entrenamiento distribuido en 8 GPUs
bash tools/run_dist_launch.sh 8 --coco_path ./data/coco_benchmark configs/r50_deformable_detr.sh

Los pesos del modelo y los registros se almacenarán automáticamente en el directorio de salida predeterminado.

Seguimiento de Métricas y Convergencia

Para visualizar la pérdida y las métricas de evaluación en tiempo real, utilice TensorBoard apuntando al directorio de registros y especificando un puerto personalizado:

tensorboard --logdir=./output --port=6006

Figura 2: Comparación de las curvas de convergencia entre Deformable-DETR y DETR-DC5 en el conjunto de validación de COCO 2017.

Las métricas demuestran que la variante deformable alcanza un rendimiento competitivo (AP alto) en aproximadamente 100 épocas, superando significativamente la velocidad de convergencia de las arquitecturas DETR estándar.

Evaluación del Modelo

Una vez finalizado el entrenamiento, calcule el rendimiento en el conjunto de validación utilizando el checkpoint generado:

python main.py --eval --resume ./output/model_final.pth --coco_path ./data/coco_benchmark --config-file configs/r50_deformable_detr.sh

El script de evaluación implementado en datasets/coco_eval.py generará un reporte detallado con las siguientes métricas:

  • AP: Precisión promedio en múltiples umbrales de IoU.
  • AP50 / AP75: Precisión en umbrales de IoU estrictos de 0.50 y 0.75.
  • APs / APm / APl: Desglose de precisión para objetos pequeños, medianos y grandes.

Resolución de Problemas Comunes

  • Fallos de Compilación: Asegúrese de que la versión de CUDA del sistema sea compatible con la versión de PyTorch instalada antes de compilar las operaciones en models/ops.
  • Errores de Memoria (OOM): Modifique el parámetro batch_size dentro del script de configuración configs/r50_deformable_detr.sh para reducir la carga de memoria por GPU.
  • Convergencia Lenta o Inestable: Verifique la integridad de los datos descargados. Alternativamente, inicialice los pesos desde un modelo preentrenado: ``` python main.py --resume https://dl.fbaipublicfiles.com/deformable_detr/deformable_detr_r50_16x2_50e_coco.pth --coco_path ./data/coco_benchmark --config-file configs/r50_deformable_detr.sh

Etiquetas: Deformable-DETR COCO PyTorch object-detection transformer

Publicado el 8-8 02:00