Aprendizagem pessoal com IA
e orientação prática
Espelho de desenho CyberKnife

Orion: estrutura de planejamento e inferência de condução autônoma de ponta a ponta de código aberto da Xiaomi

Introdução geral

O Orion é um projeto de código aberto desenvolvido pela Xiaomi Labs com foco na tecnologia de direção autônoma de ponta a ponta (E2E). Ele resolve o problema de raciocínio causal insuficiente em cenários complexos de métodos tradicionais de direção autônoma por meio de modelos de linguagem visual (VLMs) e planejadores generativos. O Orion integra contexto histórico de longo prazo, raciocínio de cenário de direção e previsão precisa de trajetória para melhorar significativamente a precisão da tomada de decisões. O projeto fornece código de inferência, modelos pré-treinados e arquivos de configuração para ajudar os desenvolvedores a realizar avaliações de circuito aberto e circuito fechado no conjunto de dados Bench2Drive. O Orion tem um bom desempenho em testes de circuito fechado, com uma pontuação de direção (DS) de 77,74 e uma taxa de sucesso (SR) de 54,62%, o que é muito melhor do que métodos semelhantes. Ele é adequado para desenvolvedores, pesquisadores e empresas no campo da direção autônoma para desenvolvimento de algoritmos e testes de cenários.

Orion: estrutura de planejamento e raciocínio de condução autônoma de ponta a ponta de código aberto da Xiaomi-1


 

Lista de funções

  • Processamento de contexto histórico de longo prazoCom o módulo QT-Former, os dados de longo prazo da jornada do veículo são extraídos e integrados para fornecer informações mais abrangentes sobre o cenário.
  • Raciocínio do cenário de direçãoAnálise do ambiente rodoviário usando um Modelo de Linguagem Ampla (LLM) para gerar instruções lógicas de direção.
  • Previsão precisa da trajetóriaPlanejamento de trajetória: Um planejador generativo é usado para gerar trajetórias multimodais (por exemplo, aceleração, direção) com base em comandos linguísticos para melhorar a precisão do planejamento de trajetória.
  • Estrutura de otimização unificadaSuporte à otimização de ponta a ponta de perguntas e respostas visuais (VQA) e tarefas de planejamento, preenchendo a lacuna entre o raciocínio semântico e o resultado da ação.
  • Avaliação de circuito aberto e circuito fechadoScripts de avaliação de circuito aberto e configurações de avaliação de circuito fechado para dar suporte ao teste do conjunto de dados Bench2Drive.
  • Ferramentas de visualização e análiseGeração de vídeos comparativos de cenários de direção, rotulados com pontos de decisão e trajetórias previstas para facilitar a análise do desempenho do modelo.
  • Suporte a recursos de código abertoCódigo de inferência, modelos pré-treinados e arquivos de configuração são fornecidos para facilitar o desenvolvimento secundário e a pesquisa.

 

Usando a Ajuda

O Orion é uma estrutura de código aberto para desenvolvedores e pesquisadores de condução autônoma hospedada no GitHub. Abaixo está um guia de uso detalhado para ajudar os usuários a implantar, executar e desenvolver rapidamente.

Processo de instalação

O Orion precisa ser executado em um ambiente compatível com Python, e um sistema Linux (por exemplo, Ubuntu 20.04) é recomendado para garantir a compatibilidade. Veja a seguir as etapas detalhadas de instalação:

  1. Preparação do ambiente
    Certifique-se de que as seguintes ferramentas estejam instaladas em seu sistema:

    • Python 3.8 (a versão oficialmente recomendada). Verifique o comando:
      python3 --version
      
    • Comando de instalação do Git:
      sudo apt update
      sudo apt install git
      
    • Conda (para criar ambientes virtuais). Se o Conda não estiver disponível, você pode baixá-lo no site da Anaconda.
  2. Criação de um ambiente virtual
    Use o Conda para criar e ativar um ambiente virtual:

    conda create -n orion python=3.8 -y
    conda activate orion
    
  3. armazém de clones
    Faça o download do código-fonte do Orion usando o Git:

    git clone https://github.com/xiaomi-mlab/Orion.git
    cd Orion
    
  4. Instalando o PyTorch
    A recomendação oficial é instalar o PyTorch 2.4.1 (compatível com CUDA 11.8). Execute o seguinte 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. Instalação de dependências adicionais
    Instale as outras bibliotecas Python necessárias para seu projeto:

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

    no caso de requirements.txt Se algumas dessas bibliotecas falharem, tente instalá-las individualmente (por exemplo transformersenumpy).

  6. Download do modelo pré-treinado
    O Orion usa modelos externos pré-treinados, incluindo:

    • Pesos do modelo de linguagem 2D (fonte:Cara de abraço).
    • Pesos do codificador visual e do projetor (fonte:OmniDrive).
      Faça o download e descompacte-o no diretório 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. Preparação do conjunto de dados
    O Orion usa o conjunto de dados Bench2Drive para avaliação. Os usuários devem fazer o download e preparar seus próprios dados, consulte Documentação de preparação de dados do Bench2Drive. Extraia o conjunto de dados para o diretório do projeto, por exemplo:

    unzip bench2drive.zip -d ./data
    
  8. Verificar a instalação
    Execute o script de inferência para verificar a configuração do ambiente:

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

    Se nenhum erro for relatado, a instalação foi bem-sucedida.

Funções principais

A função principal do Orion é o raciocínio e o planejamento do piloto automático de ponta a ponta. Veja como isso funciona:

1. avaliação operacional de circuito aberto

A avaliação em circuito aberto é usada para testar o desempenho de um modelo em um conjunto de dados fixo. Etapas operacionais:

  • Certifique-se de que o conjunto de dados e os pesos do modelo estejam prontos.
  • Execute o script de avaliação:
    ./adzoo/orion/orion_dist_eval.sh adzoo/orion/configs/orion_stage3.py ckpts/Orion.pth 1
    
  • Para ativar o raciocínio CoT (Chain-of-Thought), execute:
    ./adzoo/orion/orion_dist_eval.sh adzoo/orion/configs/orion_stage3_cot.py ckpts/Orion.pth 1
    
  • A saída é salva no arquivo output Catálogo, incluindo coordenadas de trajetória e métricas de avaliação (por exemplo, erro L2).

2. avaliação operacional de circuito fechado

A avaliação em circuito fechado simula o ambiente real de direção e requer o simulador CARLA. Procedimento operacional:

  • Instalação do CARLA: Referência Documentação da ferramenta de avaliação Bench2Drive Instalação do CARLA e das ferramentas de avaliação.
  • Configurar scripts de avaliaçãoEditar o script de avaliação (por exemplo eval.sh), defina os seguintes parâmetros:
    GPU_RANK=0
    TEAM_AGENT=orion
    TEAM_CONFIG=adzoo/orion/configs/orion_stage3_agent.py+ckpts/Orion.pth
    
  • Avaliação operacional em circuito fechadoExecute os comandos de avaliação (consulte a documentação do Bench2Drive para obter comandos específicos).
  • Os resultados incluem Driving Score (DS), Success Rate (SR) e vídeos de visualização.

3. análise visual

O Orion suporta a geração de vídeos comparativos de cenários de direção que demonstram as decisões do modelo e as previsões de trajetória. Etapas operacionais:

  • Execute o script de visualização:
    python visualize.py --data_path ./data/test --model_path ckpts/Orion.pth
    
  • O vídeo de saída é salvo no output/videos Catálogo, rotulado com semáforos, obstáculos e trajetórias previstas (linhas verdes). Os usuários podem comparar o desempenho do Orion com outros métodos (por exemplo, UniAD, VAD).

Operação da função em destaque

O Orion apresenta uma combinação de modelagem de linguagem visual e planejamento generativo para fornecer recursos avançados de inferência de cena e geração de trajetória. Veja como ele funciona em detalhes:

1. raciocínio de cenário e instruções verbais

O modelo de linguagem do Orion suporta a adaptação do comportamento de direção com base em comandos textuais. Por exemplo, digite "Slow down at intersections" (Reduza a velocidade nos cruzamentos). Passo a passo:

  • Criação de um arquivo de comando commands.txt, comando de gravação:
    在交叉路口减速慢行
    
  • Executa o script de inferência e especifica o arquivo de comando:
    python inference.py --model_path ckpts/Orion.pth --command_file commands.txt
    
  • A saída refletirá o ajuste da trajetória pelo comando, salvo no arquivo output/trajectories.

2. geração de trajetória multimodal

O planejador generativo do Orion suporta vários modos de trajetória (por exemplo, aceleração, desaceleração, direção). Os parâmetros generativos podem ser ajustados pelo usuário por meio de um arquivo de configuração:

  • compilador configs/planner.yaml::
    trajectory_mode: multimodal
    max_acceleration: 2.0
    max_steering_angle: 30
    
  • Execute o script de planejamento:
    python planner.py --config configs/planner.yaml --model_path ckpts/Orion.pth
    
  • Os traços de saída são salvos no arquivo output/trajectoriesO sistema de gerenciamento de tráfego de dados, que suporta vários caminhos candidatos.

3. otimização de ponta a ponta

O Orion oferece suporte a perguntas e respostas visuais (VQA) e otimização unificada de tarefas de planejamento. Os usuários podem testá-lo seguindo as etapas abaixo:

  • Configure os scripts de inferência para ativar o modo VQA:
    python inference.py --model_path ckpts/Orion.pth --vqa_mode true
    
  • Insira uma pergunta de teste (por exemplo, "Há um pedestre à frente?"). O modelo retorna a resposta semântica e a trajetória correspondente.

advertência

  • Requisitos de hardwareGPUs NVIDIA A100 (32 GB de RAM) ou superior são recomendadas para inferência. É necessária uma RAM maior para treinamento (recomenda-se 80 GB).
  • formato de dadosDados de entrada: os dados de entrada devem estar no formato Bench2Drive (por exemplo .jpge.pcd), caso contrário, é necessário um pré-tratamento.
  • peso do modelo: O modelo oficial do Orion foi lançado (Cara de abraço), mas a estrutura de treinamento ainda não está aberta.
  • Frequência de atualizaçãoVerifique regularmente seus repositórios do GitHub para obter o código e a documentação mais recentes.

Com essas etapas, os usuários podem implementar rapidamente o Orion para executar tarefas de inferência ou realizar o desenvolvimento de algoritmos.

 

cenário do aplicativo

  1. Desenvolvimento de algoritmo de direção autônoma
    Os desenvolvedores podem usar o Orion para testar algoritmos de direção autônoma de ponta a ponta e otimizar os recursos de tomada de decisão em cenários complexos. O código-fonte aberto e os modelos permitem uma rápida iteração.
  2. pesquisa acadêmica
    Com base no Orion, os pesquisadores podem explorar a aplicação de modelos de linguagem visual na direção autônoma, analisar o efeito sinérgico do raciocínio e do planejamento e produzir artigos de alta qualidade.
  3. teste de simulação
    Os fabricantes de automóveis podem integrar o Orion em ambientes de simulação, como o CARLA, para testar o desempenho do veículo em cenários virtuais e reduzir os custos de testes em estradas.
  4. Educação e treinamento
    Faculdades e universidades podem usar o Orion como uma ferramenta de ensino para ajudar os alunos a entender os princípios da direção autônoma e aprimorar suas habilidades práticas com vídeos de visualização.

 

QA

  1. Quais conjuntos de dados são compatíveis com o Orion?
    O conjunto de dados Bench2Drive é suportado no momento e outros conjuntos de dados (por exemplo, nuScenes) poderão ser suportados no futuro. Os usuários precisam preparar os dados no formato oficial.
  2. Como você resolve o problema do raciocínio lento?
    O raciocínio CoT é lento e pode ser alternado para o modo de raciocínio padrão (orion_stage3.py). A otimização do desempenho da GPU ou a redução da precisão do modelo (por exemplo, fp16) também pode melhorar a velocidade.
  3. Quais ferramentas são necessárias para a avaliação de ciclo fechado?
    O emulador CARLA e a ferramenta de avaliação Bench2Drive precisam ser instalados; consulte o documento oficial para obter a configuração detalhada.
  4. O Orion oferece suporte à direção em tempo real?
    A versão atual é baseada em raciocínio off-line, os aplicativos em tempo real precisam otimizar ainda mais o código e o hardware, portanto, é recomendável prestar atenção à atualização oficial.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Orion: estrutura de planejamento e inferência de condução autônoma de ponta a ponta de código aberto da Xiaomi
pt_BRPortuguês do Brasil