Orion: marco de código abierto para la inferencia y planificación de la conducción autónoma de Xiaomi

Introducción general

Orion es un proyecto de código abierto desarrollado por Xiaomi Labs centrado en la tecnología de conducción autónoma de extremo a extremo (E2E). Orion resuelve el problema del razonamiento causal insuficiente en escenarios complejos de los métodos tradicionales de conducción autónoma mediante modelos de lenguaje visual (VLM) y planificadores generativos. Orion integra el contexto histórico a largo plazo, el razonamiento del escenario de conducción y la predicción precisa de la trayectoria para mejorar significativamente la precisión en la toma de decisiones. El proyecto proporciona código de inferencia, modelos preentrenados y archivos de configuración para ayudar a los desarrolladores a realizar evaluaciones de bucle abierto y cerrado en el conjunto de datos Bench2Drive. Orion obtiene buenos resultados en las pruebas de bucle cerrado, con una puntuación de conducción (DS) de 77,74 y una tasa de éxito (SR) de 54,62%, muy superior a la de otros métodos similares. Es adecuado para desarrolladores, investigadores y empresas del campo de la conducción autónoma para el desarrollo de algoritmos y pruebas de escenarios.

Orion:小米开源的端到端自动驾驶推理与规划框架

 

Lista de funciones

  • Procesamiento del contexto histórico a largo plazo: Con el módulo QT-Former, se extraen e integran datos a largo plazo del recorrido del vehículo para proporcionar información más completa sobre la escena.
  • Razonamiento de escenarios de conducción: Análisis del entorno vial mediante un modelo de lenguaje amplio (LLM) para generar instrucciones lógicas de conducción.
  • Predicción precisa de la trayectoriaEl planificador generativo se utiliza para generar trayectorias multimodales (por ejemplo, aceleración, dirección) basadas en comandos lingüísticos para mejorar la precisión de la planificación de trayectorias.
  • Marco de optimización unificadoSoporte para la optimización de extremo a extremo de las tareas de interrogación y respuesta visual (VQA) y de planificación, salvando las distancias entre el razonamiento semántico y el resultado de la acción.
  • Evaluación en bucle abierto y cerradoProporciona secuencias de comandos de evaluación de bucle abierto y configuraciones de evaluación de bucle cerrado para respaldar las pruebas del conjunto de datos Bench2Drive.
  • Herramientas de visualización y análisisGeneración de vídeos comparativos de escenarios de conducción, etiquetados con puntos de decisión y trayectorias previstas para facilitar el análisis del rendimiento del modelo.
  • Apoyo a los recursos de código abiertoEl código de inferencia, los modelos preentrenados y los archivos de configuración se proporcionan para facilitar el desarrollo secundario y la investigación.

 

Utilizar la ayuda

Orion es un framework de código abierto para desarrolladores e investigadores de conducción autónoma alojado en GitHub. A continuación se incluye una guía de uso detallada para ayudar a los usuarios a desplegar, ejecutar y desarrollar rápidamente.

Proceso de instalación

Orion debe ejecutarse en un entorno que admita Python, y se recomienda un sistema Linux (por ejemplo, Ubuntu 20.04) para garantizar la compatibilidad. A continuación se detallan los pasos de instalación:

  1. Preparar el entorno
    Asegúrese de que las siguientes herramientas están instaladas en su sistema:

    • Python 3.8 (la versión recomendada oficialmente). Comprueba los comandos:
      python3 --version
      
    • Git. comando de instalación:
      sudo apt update
      sudo apt install git
      
    • Conda (para crear entornos virtuales). Si Conda no está disponible, puede descargarlo del sitio web de Anaconda.
  2. Creación de un entorno virtual
    Utiliza Conda para crear y activar un entorno virtual:

    conda create -n orion python=3.8 -y
    conda activate orion
    
  3. almacén de clones
    Descarga el código fuente de Orion utilizando Git:

    git clone https://github.com/xiaomi-mlab/Orion.git
    cd Orion
    
  4. Instalación de PyTorch
    La recomendación oficial es instalar PyTorch 2.4.1 (soporta CUDA 11.8). Ejecute el siguiente comando:

    pip install torch==2.4.1+cu118 torchvision==0.19.1+cu118 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu118
    
  5. Instalación de dependencias adicionales
    Instala las demás librerías Python necesarias para tu proyecto:

    pip install -v -e .
    pip install -r requirements.txt
    

    en caso de que requirements.txt Si algunas de estas bibliotecas no se instalan, intente instalarlas individualmente (p. ej. transformersynumpy).

  6. Descargar modelo preentrenado
    Orion utiliza modelos externos preentrenados:

    • Pesos del modelo lingüístico 2D (fuente:Cara de abrazo).
    • Codificador visual y proyector de pesos (fuente:OmniDrive).
      Descárguelo y descomprímalo en el directorio especificado:
    mkdir ckpts
    cd ckpts
    wget https://huggingface.co/exiawsh/pretrain_qformer/resolve/main/pretrain_qformer.pth
    wget https://github.com/NVlabs/OmniDrive/releases/download/v1.0/eva02_petr_proj.pth
    
  7. Preparación del conjunto de datos
    Orion utiliza el conjunto de datos Bench2Drive para la evaluación. Los usuarios deben descargar y preparar sus propios datos. Documentación de preparación de datos de Bench2Drive. Extraiga el conjunto de datos al directorio del proyecto, por ejemplo:

    unzip bench2drive.zip -d ./data
    
  8. Verificar la instalación
    Ejecute el script de inferencia para comprobar la configuración del entorno:

    ./adzoo/orion/orion_dist_eval.sh adzoo/orion/configs/orion_stage3.py ckpts/Orion.pth 1
    

    Si no aparece ningún error, la instalación se ha realizado correctamente.

Funciones principales

La funcionalidad principal de Orion es el razonamiento y la planificación de extremo a extremo del piloto automático. Así es como funciona:

1. Evaluación operativa en bucle abierto

La evaluación en bucle abierto se utiliza para probar el rendimiento de un modelo en un conjunto de datos fijo. Pasos operativos:

  • Asegúrese de que el conjunto de datos y las ponderaciones del modelo están listos.
  • Ejecute el script de evaluación:
    ./adzoo/orion/orion_dist_eval.sh adzoo/orion/configs/orion_stage3.py ckpts/Orion.pth 1
    
  • Para activar el razonamiento CoT (Chain-of-Thought), ejecute:
    ./adzoo/orion/orion_dist_eval.sh adzoo/orion/configs/orion_stage3_cot.py ckpts/Orion.pth 1
    
  • La salida se guarda en el archivo output Catálogo, incluidas las coordenadas de la trayectoria y las métricas de evaluación (por ejemplo, error L2).

2. Evaluación operativa del circuito cerrado

La evaluación en bucle cerrado simula el entorno de conducción real y requiere el simulador CARLA. Procedimiento operativo:

  • Instalación de CARLA: Referencia Documentación de la herramienta de evaluación Bench2Drive Instalación de CARLA y herramientas de evaluación.
  • Configurar scripts de evaluación: Edite el script de evaluación (p. ej. eval.sh), configure los siguientes parámetros:
    GPU_RANK=0
    TEAM_AGENT=orion
    TEAM_CONFIG=adzoo/orion/configs/orion_stage3_agent.py+ckpts/Orion.pth
    
  • Evaluación operativa del circuito cerradoEjecuta los comandos de evaluación (consulta la documentación de Bench2Drive para conocer los comandos específicos).
  • Los resultados incluyen la puntuación de conducción (DS), la tasa de éxito (SR) y vídeos de visualización.

3. Análisis visual

Orion permite generar vídeos comparativos de escenarios de conducción que demuestran las decisiones del modelo y las predicciones de trayectoria. Pasos operativos:

  • Ejecute el script de visualización:
    python visualize.py --data_path ./data/test --model_path ckpts/Orion.pth
    
  • El vídeo de salida se guarda en el output/videos Catálogo, etiquetado con semáforos, obstáculos y trayectorias previstas (líneas verdes). Los usuarios pueden comparar el rendimiento de Orion con otros métodos (por ejemplo, UniAD, VAD).

Función destacada Operación

Orion combina el modelado del lenguaje visual y la planificación generativa para proporcionar potentes funciones de inferencia de escenas y generación de trayectorias. He aquí cómo funciona en detalle:

1. Razonamiento de escenarios e instrucciones verbales

El modelo lingüístico de Orion permite adaptar el comportamiento al volante a partir de órdenes textuales. Por ejemplo, introduzca "Reduzca la velocidad en los cruces". Paso a paso:

  • Creación de un archivo de comandos commands.txtcomando de escritura:
    在交叉路口减速慢行
    
  • Ejecuta el script de inferencia y especifica el archivo de comandos:
    python inference.py --model_path ckpts/Orion.pth --command_file commands.txt
    
  • La salida reflejará el ajuste de la trayectoria por el comando, guardado en el archivo output/trajectories.

2. Generación de trayectorias multimodales

El planificador generativo de Orion admite múltiples modos de trayectoria (por ejemplo, aceleración, deceleración, dirección). El usuario puede ajustar los parámetros generativos mediante un archivo de configuración:

  • compilador configs/planner.yaml::
    trajectory_mode: multimodal
    max_acceleration: 2.0
    max_steering_angle: 30
    
  • Ejecute el script de planificación:
    python planner.py --config configs/planner.yaml --model_path ckpts/Orion.pth
    
  • Las trazas de salida se guardan en el archivo output/trajectoriesadmite múltiples rutas candidatas.

3. Optimización de extremo a extremo

Orion admite preguntas y respuestas visuales (VQA) y la optimización unificada de las tareas de planificación. Los usuarios pueden probarlo siguiendo los pasos que se indican a continuación:

  • Configurar scripts de inferencia para activar el modo VQA:
    python inference.py --model_path ckpts/Orion.pth --vqa_mode true
    
  • Introduzca una pregunta de prueba (por ejemplo, "¿Hay un peatón delante?"). El modelo devuelve la respuesta semántica y la trayectoria correspondiente.

advertencia

  • requisitos de hardwarePara la inferencia se recomiendan GPU NVIDIA A100 (32 GB de RAM) o superiores. Para el entrenamiento se necesita más RAM (se recomiendan 80 GB).
  • formato de los datos: Los datos de entrada deben estar en formato Bench2Drive (por ejemplo. .jpgy.pcd), de lo contrario es necesario un tratamiento previo.
  • peso del modeloEl modelo oficial de Orión ha sido publicado (Cara de abrazo), pero el marco de formación aún no está abierto.
  • Frecuencia de actualización: Compruebe regularmente sus repositorios de GitHub para obtener el código y la documentación más recientes.

Con estos pasos, los usuarios pueden desplegar Orion rápidamente para ejecutar tareas de inferencia o realizar el desarrollo de algoritmos.

 

escenario de aplicación

  1. Desarrollo de algoritmos de conducción autónoma
    Los desarrolladores pueden utilizar Orion para probar algoritmos de conducción autónoma de extremo a extremo y optimizar la capacidad de toma de decisiones en escenarios complejos. El código fuente abierto y los modelos permiten una rápida iteración.
  2. investigación académica
    Basándose en Orion, los investigadores pueden explorar la aplicación de modelos de lenguaje visual en la conducción autónoma, analizar el efecto sinérgico del razonamiento y la planificación y elaborar artículos de gran calidad.
  3. prueba de simulación
    Los fabricantes de automóviles pueden integrar Orion en entornos de simulación, como CARLA, para probar el rendimiento de los vehículos en escenarios virtuales y reducir los costes de las pruebas en carretera.
  4. Educación y formación
    Los institutos y universidades pueden utilizar Orion como herramienta didáctica para ayudar a los estudiantes a comprender los principios de la conducción autónoma y mejorar sus habilidades prácticas con vídeos de visualización.

 

CONTROL DE CALIDAD

  1. ¿Qué conjuntos de datos admite Orion?
    Actualmente se admite el conjunto de datos Bench2Drive y es posible que en el futuro se admitan otros conjuntos de datos (por ejemplo, nuScenes). Los usuarios deben preparar los datos en el formato oficial.
  2. ¿Cómo se resuelve el problema del razonamiento lento?
    El razonamiento CoT es lento y puede cambiarse al modo de razonamiento estándar (orion_stage3.py). Optimizar el rendimiento de la GPU o reducir la precisión del modelo (por ejemplo, fp16) también puede mejorar la velocidad.
  3. ¿Qué herramientas se necesitan para la evaluación en bucle cerrado?
    Es necesario instalar el emulador CARLA y la herramienta de evaluación Bench2Drive; consulte el documento oficial para obtener información detallada sobre la configuración.
  4. ¿Orion admite la conducción en tiempo real?
    La versión actual se basa en el razonamiento offline, las aplicaciones en tiempo real necesitan optimizar más el código y el hardware, se recomienda prestar atención a la actualización oficial.
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...