Orion: Xiaomi의 오픈 소스 엔드투엔드 자율 주행 추론 및 계획 프레임워크
일반 소개
오리온은 엔드투엔드(E2E) 자율주행 기술에 중점을 두고 샤오미 연구소에서 개발한 오픈 소스 프로젝트입니다. 오리온은 시각적 언어 모델(VLM)과 생성 플래너를 통해 기존 자율주행 방식의 복잡한 시나리오에서 인과 추론이 불충분한 문제를 해결하며, 장기적인 역사적 맥락, 주행 시나리오 추론, 정밀한 궤적 예측을 통합하여 의사 결정 정확도를 크게 향상시킵니다. 이 프로젝트는 추론 코드, 사전 학습된 모델 및 구성 파일을 제공하여 개발자가 Bench2Drive 데이터 세트에서 개방형 루프 및 폐쇄 루프 평가를 모두 수행할 수 있도록 지원하며, Orion은 폐쇄 루프 테스트에서 77.74의 주행 점수(DS)와 54.62%의 성공률로 유사한 방법보다 훨씬 우수한 성능을 발휘합니다. 자율주행 분야의 개발자, 연구자 및 기업이 알고리즘 개발 및 시나리오 테스트를 위해 사용하기에 적합합니다.

기능 목록
- 장기적인 기록 컨텍스트 처리QT-Former 모듈을 사용하면 차량의 여정에서 장기 데이터를 추출하고 통합하여 보다 포괄적인 시나리오 정보를 제공할 수 있습니다.
- 운전 시나리오 추론대규모 언어 모델(LLM)을 사용하여 도로 환경을 분석하여 논리적인 주행 지침을 생성합니다.
- 정확한 궤적 예측제너레이티브 플래너는 언어 명령을 기반으로 멀티모달 궤적(예: 가속, 조향)을 생성하여 경로 계획의 정확도를 향상시키는 데 사용됩니다.
- 통합 최적화 프레임워크시각적 질문 및 답변(VQA) 및 계획 작업의 엔드투엔드 최적화를 지원하여 의미론적 추론과 작업 결과 사이의 간극을 해소합니다.
- 개방형 루프 및 폐쇄형 루프 평가Bench2Drive 데이터 세트 테스트를 지원하기 위한 개방형 루프 평가 스크립트 및 폐쇄형 루프 평가 구성을 제공합니다.
- 시각화 및 분석 도구모델 성능을 쉽게 분석할 수 있도록 결정 지점 및 예측 궤적이 표시된 주행 시나리오의 비교 동영상을 생성합니다.
- 오픈 소스 리소스 지원추론 코드, 사전 학습된 모델 및 구성 파일이 제공되어 2차 개발 및 연구를 용이하게 합니다.
도움말 사용
Orion은 자율 주행 개발자와 연구자를 위한 오픈 소스 프레임워크로 GitHub에서 호스팅됩니다. 다음은 사용자가 빠르게 배포, 실행 및 개발하는 데 도움이 되는 자세한 사용 가이드입니다.
설치 프로세스
오리온은 Python을 지원하는 환경에서 실행해야 하며, 호환성을 보장하기 위해 Linux 시스템(예: Ubuntu 20.04)을 사용하는 것이 좋습니다. 자세한 설치 단계는 다음과 같습니다:
- 환경 준비하기
시스템에 다음 도구가 설치되어 있는지 확인합니다:- Python 3.8(공식 권장 버전). 명령을 확인합니다:
python3 --version
- Git. 설치 명령을 실행합니다:
sudo apt update sudo apt install git
- Conda(가상 환경 생성용). Conda를 사용할 수 없는 경우 Anaconda 웹사이트에서 다운로드할 수 있습니다.
- Python 3.8(공식 권장 버전). 명령을 확인합니다:
- 가상 환경 만들기
Conda를 사용하여 가상 환경을 만들고 활성화합니다:conda create -n orion python=3.8 -y conda activate orion
- 클론 창고
Git을 사용하여 Orion 소스 코드를 다운로드합니다:git clone https://github.com/xiaomi-mlab/Orion.git cd Orion
- 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
- 추가 종속성 설치
프로젝트에 필요한 다른 Python 라이브러리를 설치합니다:pip install -v -e . pip install -r requirements.txt
다음과 같은 경우
requirements.txt
이러한 라이브러리 중 일부가 실패하면 개별적으로 설치해 보십시오(예transformers
및numpy
). - 사전 학습된 모델 다운로드
오리온은 다음과 같이 사전 학습된 외부 모델을 사용합니다: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
- 데이터 집합 준비하기
오리온은 평가를 위해 Bench2Drive 데이터 세트를 사용합니다. 사용자는 직접 데이터를 다운로드하여 준비해야 합니다. Bench2Drive 데이터 준비 문서. 예를 들어 데이터 집합을 프로젝트 디렉터리로 추출합니다:unzip bench2drive.zip -d ./data
- 설치 확인
추론 스크립트를 실행하여 환경 구성을 확인합니다:./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(생각의 사슬) 추론을 사용하려면 실행합니다:
./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 설명서를 참조하세요).
- 결과물에는 주행 점수(DS), 성공률(SR) 및 시각화 비디오가 포함됩니다.
3. 시각적 분석
Orion은 모델 결정 및 궤적 예측을 보여주는 주행 시나리오의 비교 동영상 생성을 지원합니다. 운영 단계:
- 시각화 스크립트를 실행합니다:
python visualize.py --data_path ./data/test --model_path ckpts/Orion.pth
- 출력 비디오는
output/videos
신호등, 장애물 및 예상 궤적(녹색 선)이 표시된 카탈로그. 사용자는 오리온의 성능을 다른 방법(예: UniAD, VAD)과 비교할 수 있습니다.
주요 기능 작동
오리온은 시각적 언어 모델링과 제너레이티브 플래닝을 결합하여 강력한 장면 추론 및 궤적 생성 기능을 제공합니다. 자세한 작동 방식은 다음과 같습니다:
1. 시나리오 추론 및 구두 지침
오리온의 언어 모델은 텍스트 명령에 따라 운전 행동을 조정할 수 있도록 지원합니다. 예를 들어 "교차로에서 감속해"라고 입력합니다. 단계별로:
- 명령 파일 만들기
commands.txt
, 쓰기 명령을 입력합니다:在交叉路口减速慢行
- 추론 스크립트를 실행하고 명령 파일을 지정합니다:
python inference.py --model_path ckpts/Orion.pth --command_file commands.txt
- 출력에는 명령에 의한 궤도 조정이 반영되어
output/trajectories
.
2. 멀티모달 궤적 생성
오리온의 제너레이티브 플래너는 여러 궤적 모드(예: 가속, 감속, 스티어링)를 지원합니다. 제너레이티브 파라미터는 구성 파일을 통해 사용자가 조정할 수 있습니다:
- 컴파일러
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(32GB RAM) 이상의 GPU가 권장되며, 학습에는 더 큰 RAM이 필요합니다(80GB 권장).
- 데이터 형식입력 데이터는 Bench2Drive 형식이어야 합니다(예
.jpg
및.pcd
), 그렇지 않으면 전처리가 필요합니다. - 모델 무게오리온 공식 모델이 출시되었습니다(포옹하는 얼굴), 그러나 교육 프레임워크는 아직 공개되지 않았습니다.
- 업데이트 빈도최신 코드와 문서가 있는지 GitHub 리포지토리를 정기적으로 확인하세요.
이러한 단계를 통해 사용자는 Orion을 신속하게 배포하여 추론 작업을 실행하거나 알고리즘 개발을 수행할 수 있습니다.
애플리케이션 시나리오
- 자율 주행 알고리즘 개발
개발자는 Orion을 사용하여 엔드투엔드 자율 주행 알고리즘을 테스트하고 복잡한 시나리오에서 의사 결정 기능을 최적화할 수 있습니다. 오픈 소스 코드와 모델은 빠른 반복을 지원합니다. - 학술 연구
연구자들은 오리온을 기반으로 자율 주행에 시각 언어 모델을 적용하고, 추론과 계획의 시너지 효과를 분석하며, 수준 높은 논문을 작성할 수 있습니다. - 시뮬레이션 테스트
자동차 제조업체는 Orion을 CARLA와 같은 시뮬레이션 환경에 통합하여 가상 시나리오에서 차량 성능을 테스트하고 도로 주행 테스트 비용을 절감할 수 있습니다. - 교육 및 훈련
대학에서는 오리온을 교육 도구로 사용하여 학생들이 자율 주행의 원리를 이해하고 시각화 동영상을 통해 실무 능력을 향상시킬 수 있습니다.
QA
- 오리온은 어떤 데이터 세트를 지원하나요?
현재 Bench2Drive 데이터 세트가 지원되며 향후 다른 데이터 세트(예: nuScenes)도 지원될 수 있습니다. 사용자는 공식 형식으로 데이터를 준비해야 합니다. - 느린 추론의 문제를 어떻게 해결할 수 있을까요?
CoT 추론은 느리며 표준 추론 모드로 전환할 수 있습니다(orion_stage3.py
). GPU 성능을 최적화하거나 모델 정밀도를 낮추면(예: fp16) 속도도 향상될 수 있습니다. - 폐쇄 루프 평가에는 어떤 도구가 필요하나요?
CARLA 에뮬레이터와 Bench2Drive 평가 도구를 설치해야 하며, 자세한 구성은 공식 문서를 참조하세요. - 오리온은 실시간 주행을 지원하나요?
현재 버전은 오프라인 추론을 기반으로 하며, 실시간 애플리케이션은 코드와 하드웨어를 추가로 최적화해야 하므로 공식 업데이트에 주의를 기울이는 것이 좋습니다.
© 저작권 정책
이 글은 저작권이 있으며 무단으로 복제해서는 안 됩니다.
관련 문서
댓글 없음...