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.
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:
- 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.
- Python 3.8 (a versão oficialmente recomendada). Verifique o comando:
- 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
- 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
- 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
- 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 exemplotransformers
enumpy
). - 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
- 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
- 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/trajectories
O 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
.jpg
e.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
- 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. - 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. - 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. - 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
- 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. - 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. - 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. - 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.