Orion: открытый исходный код Xiaomi для комплексного планирования и обработки выводов для самодвижущихся автомобилей

Общее введение

Orion - это проект с открытым исходным кодом, разработанный Xiaomi Labs и направленный на создание сквозной технологии автономного вождения (E2E). Он решает проблему недостаточного обоснования причинно-следственных связей в сложных сценариях традиционных методов автономного вождения с помощью визуальных языковых моделей (VLM) и генеративных планировщиков. Orion объединяет долгосрочный исторический контекст, обоснование сценария вождения и точное предсказание траектории для значительного повышения точности принятия решений. Проект предоставляет код выводов, предварительно обученные модели и файлы конфигурации для поддержки разработчиков в проведении оценок в открытом и закрытом циклах на наборе данных Bench2Drive.Orion отлично работает в закрытом цикле тестов, с показателем Driving Score (DS) 77.74 и Success Rate (SR) 54.62%, что намного лучше, чем у сопоставимых методов. Он подходит для разработчиков, исследователей и предприятий в области автономного вождения для разработки алгоритмов и тестирования сценариев.

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

 

Список функций

  • Обработка долгосрочного исторического контекста: С помощью модуля QT-Former извлекаются и интегрируются долгосрочные данные о поездке автомобиля, что позволяет получить более полную информацию о месте происшествия.
  • Рассуждения по сценарию вождения: Анализ дорожной обстановки с помощью большой языковой модели (LLM) для создания логических инструкций по вождению.
  • Точное предсказание траектории: Генеративный планировщик используется для генерации мультимодальных траекторий (например, ускорение, управление) на основе лингвистических команд для повышения точности планирования пути.
  • Единая система оптимизации: Поддержка сквозной оптимизации визуальных вопросов и ответов (VQA) и задач планирования, преодоление разрыва между семантическими рассуждениями и результатами действий.
  • Оценка открытого и закрытого контуров: Предоставляет сценарии оценки открытого цикла и конфигурации оценки закрытого цикла для поддержки тестирования набора данных Bench2Drive.
  • Инструменты визуализации и анализа: Создавайте сравнительные видеоролики сценариев вождения, обозначая точки принятия решений и прогнозируемые траектории, чтобы легко проанализировать работу модели.
  • Поддержка ресурсов с открытым исходным кодомКод для вывода, предварительно обученные модели и файлы конфигурации предоставляются для облегчения вторичной разработки и исследований.

 

Использование помощи

Orion - это фреймворк с открытым исходным кодом для разработчиков и исследователей самодвижущихся автомобилей, размещенный на GitHub. Ниже представлено подробное руководство по использованию, которое поможет пользователям быстро развернуть, запустить и разработать.

Процесс установки

Orion необходимо запускать в среде, поддерживающей Python, и для обеспечения совместимости рекомендуется использовать систему Linux (например, Ubuntu 20.04). Ниже приведены подробные шаги по установке:

  1. Подготовка среды
    Убедитесь, что в вашей системе установлены следующие инструменты:

    • Python 3.8 (официально рекомендуемая версия). Проверьте команду:
      python3 --version
      
    • Команда Git. install:
      sudo apt update
      sudo apt install git
      
    • Conda (для создания виртуальных сред). Если Conda недоступна, вы можете загрузить ее с сайта Anaconda.
  2. Создание виртуальной среды
    Используйте Conda для создания и активации виртуальной среды:

    conda create -n orion python=3.8 -y
    conda activate orion
    
  3. склад клонов
    Загрузите исходный код Orion с помощью Git:

    git clone https://github.com/xiaomi-mlab/Orion.git
    cd Orion
    
  4. Установка PyTorch
    Официальная рекомендация - установить PyTorch 2.4.1 (поддерживает CUDA 11.8). Выполните следующую команду:

    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. Установка дополнительных зависимостей
    Установите другие библиотеки Python, необходимые для вашего проекта:

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

    в случае, если requirements.txt Если некоторые из этих библиотек не работают, попробуйте установить их по отдельности (например. transformers, иnumpy).

  6. Загрузите предварительно обученную модель
    Orion использует внешние предварительно обученные модели, в том числе:

    • Весовые коэффициенты двухмерной языковой модели (источник:Обнимающееся лицо).
    • Визуальный кодер и проектор весов (источник:OmniDrive).
      Загрузите и распакуйте его в указанную директорию:
    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. Подготовка набора данных
    Для оценки Orion использует набор данных Bench2Drive. Пользователям необходимо загрузить и подготовить собственные данные, см. Документация по подготовке данных Bench2Drive. Извлеките набор данных в каталог проекта. например:

    unzip bench2drive.zip -d ./data
    
  8. Проверка установки
    Запустите сценарий вывода, чтобы проверить конфигурацию окружения:

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

    Если сообщений об ошибках нет, значит, установка прошла успешно.

Основные функции

Основная функция Orion - сквозное рассуждение и планирование автопилота. Вот как это работает:

1. Оперативная оценка открытого цикла

Оценка в открытом цикле используется для проверки производительности модели на фиксированном наборе данных. Операционные шаги:

  • Убедитесь, что набор данных и веса модели готовы.
  • Запустите сценарий оценки:
    ./adzoo/orion/orion_dist_eval.sh adzoo/orion/configs/orion_stage3.py ckpts/Orion.pth 1
    
  • Чтобы включить рассуждения CoT (Chain-of-Thought), выполните команду:
    ./adzoo/orion/orion_dist_eval.sh adzoo/orion/configs/orion_stage3_cot.py ckpts/Orion.pth 1
    
  • Вывод сохраняется в output Каталог, включающий координаты траектории и метрики оценки (например, ошибка L2).

2. Оперативная оценка замкнутого цикла

Оценка замкнутого цикла имитирует реальные условия вождения и требует использования симулятора CARLA. Операционная процедура:

  • Установка CARLA: Справочник Документация по инструменту оценки Bench2Drive Установка CARLA и инструментов оценки.
  • Настройка сценариев оценки: Отредактируйте сценарий оценки (например. eval.sh), установите следующие параметры:
    GPU_RANK=0
    TEAM_AGENT=orion
    TEAM_CONFIG=adzoo/orion/configs/orion_stage3_agent.py+ckpts/Orion.pth
    
  • Оперативная оценка замкнутого цикла: Выполните команды оценки (конкретные команды см. в документации Bench2Drive).
  • Выходные данные включают в себя Driving Score (DS), Success Rate (SR) и видеоролики с визуализацией.

3. Визуальный анализ

Orion поддерживает создание сравнительных видеороликов сценариев движения, которые демонстрируют решения модели и прогнозы траектории. Оперативные шаги:

  • Запустите сценарий визуализации:
    python visualize.py --data_path ./data/test --model_path ckpts/Orion.pth
    
  • Выходное видео сохраняется в output/videos Каталог, помеченный светофорами, препятствиями и предсказанными траекториями (зеленые линии). Пользователи могут сравнить производительность Orion с другими методами (например, UniAD, VAD).

Функциональное управление

В Orion используется комбинация визуального языкового моделирования и генеративного планирования, обеспечивающая мощные возможности по поиску сцен и созданию траекторий. Вот как это работает в деталях:

1. Сценарные рассуждения и словесные инструкции

Языковая модель Orion поддерживает адаптацию поведения водителя на основе текстовых команд. Например, введите "Сбавить скорость на перекрестках". Шаг за шагом:

  • Создание командного файла commands.txt, команда записи:
    在交叉路口减速慢行
    
  • Запускает сценарий вывода и указывает командный файл:
    python inference.py --model_path ckpts/Orion.pth --command_file commands.txt
    
  • Выходные данные будут отражать корректировку траектории командой, сохраненной в output/trajectories.

2. Мультимодальная генерация траекторий

Генеративный планировщик Orion поддерживает несколько режимов траектории (например, ускорение, замедление, управление). Параметры генерации могут быть настроены пользователем через конфигурационный файл:

  • компилятор configs/planner.yaml::
    trajectory_mode: multimodal
    max_acceleration: 2.0
    max_steering_angle: 30
    
  • Запустите сценарий планирования:
    python planner.py --config configs/planner.yaml --model_path ckpts/Orion.pth
    
  • Выходные трассы сохраняются в файле output/trajectoriesподдерживает несколько путей-кандидатов.

3. сквозная оптимизация

Orion поддерживает визуальные вопросы и ответы (VQA) и унифицированную оптимизацию задач планирования. Пользователи могут протестировать ее, выполнив следующие действия:

  • Настройте сценарии вывода для включения режима VQA:
    python inference.py --model_path ckpts/Orion.pth --vqa_mode true
    
  • Введите тестовый вопрос (например, "Есть ли впереди пешеход?"). Модель возвращает семантический ответ и соответствующую траекторию.

предостережение

  • требования к оборудованиюДля выводов рекомендуются графические процессоры NVIDIA A100 (32 ГБ ОЗУ) или выше. Для обучения требуется больший объем ОЗУ (рекомендуется 80 ГБ).
  • формат данных: Входные данные должны быть в формате Bench2Drive (например. .jpg, и.pcd), в противном случае требуется предварительная обработка.
  • вес модели: Выпущена официальная модель Ориона (Обнимающееся лицо), но учебная база еще не открыта.
  • Частота обновления: Регулярно проверяйте репозитории GitHub на наличие последних версий кода и документации.

Выполнив эти шаги, пользователи смогут быстро развернуть Orion для выполнения задач по выводу или разработке алгоритмов.

 

сценарий применения

  1. Разработка алгоритмов автономного вождения
    Разработчики могут использовать Orion для тестирования алгоритмов автономного вождения и оптимизации принятия решений в сложных сценариях. Открытый исходный код и модели поддерживают быструю итерацию.
  2. научные исследования
    На основе Orion исследователи могут изучить применение визуальных языковых моделей в автономном вождении, проанализировать синергетический эффект рассуждений и планирования, а также подготовить высококачественные статьи.
  3. имитационное испытание
    Автопроизводители могут интегрировать Orion в среды моделирования, такие как CARLA, для проверки характеристик автомобиля в виртуальных сценариях и снижения стоимости дорожных испытаний.
  4. Образование и обучение
    Колледжи и университеты могут использовать Orion в качестве учебного пособия, чтобы помочь студентам понять принципы автономного вождения и улучшить их практические навыки с помощью наглядных видеороликов.

 

QA

  1. Какие наборы данных поддерживает Orion?
    В настоящее время поддерживается набор данных Bench2Drive, в будущем могут поддерживаться и другие наборы данных (например, nuScenes). Пользователям необходимо подготовить данные в официальном формате.
  2. Как вы решаете проблему медленного мышления?
    Рассуждения в режиме CoT происходят медленно, и их можно переключить в стандартный режим рассуждений (orion_stage3.py). Оптимизация производительности GPU или снижение точности модели (например, fp16) также могут повысить скорость.
  3. Какие инструменты необходимы для оценки замкнутого цикла?
    Необходимо установить эмулятор CARLA и инструмент оценки Bench2Drive, подробная информация о конфигурации приведена в официальном документе.
  4. Поддерживает ли Orion вождение в реальном времени?
    Текущая версия основана на автономных рассуждениях, приложениям реального времени требуется дальнейшая оптимизация кода и аппаратного обеспечения, рекомендуется обратить внимание на официальное обновление.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...