[리뷰] 드디어 Vision만 으로 Self-driving이 가능하다…. Andrej Karpathy (Tesla) — CVPR 2021 Workshop on Autonomous Driving
테슬라의 Andrej Karpathy는 CVPR 2021 Workshop on Autonomous Driving에서 Vision만으로 FSD(Full-Self Driving)이 가능함을 발표하였다.
대부분의 자율주행 업체는 Camera+Radar+Lidar Sensor 정보를 Fusion하여 자율주행에 활용하고 있다. 반면, 테슬라는 Camera+Radar 정보만을 Fusion하여 FSD에 활용하였으나 이번 CVPR 2021에서 Radar 마저 제거한 Vision 만을 이용한 FSD가 가능함을 발표하였다. 본 발표의 주 내용은 다음과 같다.
Meat Computer(Human) vs Sillicon Computer(FSD)
Andrej Karpathy는 가장 먼저 인간 운전자와 FSD를 비교한다. (인간을 Meat Computer로 표현한다. 미국식 유머인가…)
Meat Computer(Human)
운전자는 80mph로 움직이는 1톤의 물체를 정교하게 제어한다. 하지만 운전자의 반응 속도는 250ms 로 낮고 주위를 살피기 위해 머리를 돌려 Side Mirror를 확인해야 한다. 심지어 운전 중에 인스타그램을 사용하기도 한다.
이와 같은 결과, 전세계적으로 매일 자동차 사고로 3700명의 사망자가 발생하고 있다.
Sillicon Computer(FSD)
반면은 컴퓨터는 100ms보다 훨씬 낮은 반응 속도로 자동차를 제어하며 360도를 감지하고 딴 짓을 하지 않고 오로지 운전에만 집중할 수 있다.
이러한 결과 컴퓨터는 자동차 사고를 획기적으로 줄일 수 있다.
테슬라의 자율주행 시스템 (FSD Beta)
테슬라의 FSD는 2000명의 고객들에게 베타 서비스되고 있다. 제공 지역은 샌프란시스코와 같은 적대적인 환경이며 운전자의 개입이 없이(Zero Intervention)으로 운행되고 있다.
FSD가 제공하는 여타 기능으로는 AES (Autonomous Emergency Braking), TCW(Traffic Control Warning), PMM(Pedal Misapplication Mitigation) 등이 있다.
현행 Lidar를 이용한 자율주행 시스템
Waymo의 자율주행 방식은 Vision 뿐만이 아니라 Lidar와 HD Map을 사용하는 방식이다. Lidar는 주변 환경(차선, 신호등, 도로의 연결 등)을 360도 감시하며 Point Cloud를 생성하고 HD Map을 만들어 Pre-HD map과 비교하여 차량의 위치를 추정하여 운행한다.
테슬라의 Vision 기반 자율주행 시스템
반면, 테슬라는 전통적인 Lidar+HD Map 방식을 사용하지 않고 Vision만을 사용하여 운행한다. 테슬라가 Lidar+HD Map 방식을 사용하지 않은 이유는 여러 면에서 확장성하기 어렵기 때문이다.
HD Lidar Map을 수집,빌드, 유지해야 하는데 이러한 작업을 계속 지속하는 것은 너무나 많은 비용이 들고 HD Map을 보유하지 못하는 도로는 운행할 수 없는 문제점이 있다. 하지만 현재 모든 운전자가 오로지 시각에 의존하여 운전하듯 자율주행차량 역시 Vision만을 사용하면 모든 도로에서 운행이 가능하다.
아래 그림은 테슬라의 센서 현황이다. 8대의 카메라와 초음파 센서만을 사용하며 3주 전(발표일을 감안했을 때 ‘21년 6월초부터)부터 그동안 사용하던 레이더마저 삭제된 차량을 출고하고 있다. 테슬라가 레이더까지 삭제한 이유는 Vision이 레이더보다 100배 이상 좋기 때문이며 카메라와 레이더의 정보가 서로 다를 때 카메라의 결과가 더 신뢰성이 높다라고 설명한다.
테슬라는 총 8대의 카메라로 주변을 감시하고 있다. Camera가 수집하는 Vision 정보는 다음과 같다.
- 8 대 카메라 (전방 3대, 후측방 2대, 후측방 2대, 후방 1대)
- 1280x960x3(RGB) UINT8 @ 36Hz
- ~8M bits of constraints/second
From Data Auto Labeling to FSD Chips
그럼 사람이 Vision만으로 운전하듯, 뉴럴 네트워크도 똑같이 할 수 있을까? Andrej Karpathy의 대답은 “Yes”이다.
운전자는 주변의 물체의 깊이와 속도를 인지하면서 운전하듯, Vision 뉴럴네트워크로 깊이와 속도를 측정한다. 레이더 또한 물체의 깊이와 속도를 측정가능하지만 이따금 랜덤하게 오동작이 발생하여 Vision과 fusion하기 매우 어렵다.
테슬라는 불안전한 레이더를 사용하기 위해 레이더 stack과 센서 fusion에 시간을 낭비하지 않고 오직 Vision One-Team으로 운영되고 있다.
테슬라는 그동안 레이더로 추정했던 물체의 거리, 속도, 가속도의 측정을 매우 높은 정확도로 Vision만으로 수행하려고 한다. 이를 위해 테슬라가 취한 방법은 엄청나게 많은 차량에서 수집된 방대한 양의 거리, 속도, 가속도 데이터셋으로 Vision 뉴럴네트워크를 잘 학습시키는 것이었다.
학습 데이터셋의 요건
이를 위해 가장 중요한 것은 매우 좋은 학습 데이터셋을 수집하는 것이다. Andrej Karpathy가 소개하는 학습 데이터셋의 요건은 다음과 같다.
- Large: 충분히 큰 데이터셋을 갖추어야함 (Millions of Videos)
- Clean: 물체를 인식하기 위한 깊이, 속도, 가속도 데이터의 라벨링 품질이 좋아야 함
- Diverse: 일반적인 데이터(Not just nominal/boring scenarios)가 아닌 많은 예외적인 케이스(a lot of edge cases)를 포함할 것
Data Labeling 자동화
학습 데이터를 얻기 위해 사람이 수작업으로 라벨링 작업을 할 수 있지만 매우 많은 비용이 필요하므로 테슬라는 데이터 수집을 자동화하기 위해 Data Auto Labeling을 사용한다. (2019년 테슬라의 Autonomy Day 발표 때만해도 사람이 직접 라벨링하였다…)
Offline Tracker라고 불리는 Data Auto Labeling 시스템은 학습에 필요한 규모의 데이터를 얻기 위해 필요하다. 다음은 테슬라가 고속도로를 주행하는 자동차에서 자동으로 라벨링하는 사례이다.
다양한 라벨을 가진 데이터셋 (e.g., 전방 차량의 잔해가 도로에 떨어진다던지, 전방 차량이 먼지를 일으키는 경우, 폭설 등)으로부터 타겟에 대해 일관적으로 트랙킹을 유지할 수가 있다. 이러한 라벨이 수백만개가 있고 강력한 뉴럴 네트워크가 있다면 이러한 종류의 예외적인 시나리오에서도 트랙을 유지하는 방법을 학습할 수 있다.
고객 차량으로부터 데이터를 얻을 수 있는 221개의 Trigger 케이스를 개발하였다. Shadow 모드가 있어서 깊이와 속도를 매우 잘 예측하는 뉴럴 네트워크를 고객의 차량에 조용히 배포한다. (흔히 말하는 잠수함 패치…)
이 뉴럴 네트워크는 차량을 제어하지는 않고 실제 운전하는 것은 Legacy Stack이다. 그리고 새로 배포된 뉴럴 네트워크와 Legacy Stack의 깊이와 속도를 측정하면서 서로 일치하는지 비교하고 두 개의 뉴럴네트워크 간에 불일치하는 모든 데이터 (e.g., bounding box jitter, detection jitter, 감속하는 물체가 있다고 예측하지만 사람은 신경 쓰지 않는 경우 등)를 찾아낸다.
고객들의 차량에서 발생하는 모든 데이터를 수집하는 것은 데이터양이 너무 방대해지기 때문에 테슬라는 특정 상황의 데이터만 수집하고 있다. 테슬라는 221개의 Trigger들을 설정하여 해당 상황에 해당하는 데이터를 수집한다.
테슬라는 Shadow Mode의 동작은 다음과 같다. Data Engine은 뉴럴네트워크의 성능이 개선될 때까지 (1)~(6)을 계속 반복한다.
- (1) Train : 기본적인 기초 데이터로 뉴럴 네트워크을 학습함
- (2) Deploy: 고객 차량에 OTA를 이용하여 학습된 뉴럴 네트워크를 배포함
- (3) Inaccuracy: FSD 사용 중에 내부 시스템이 잘 인식을 못 한다라고 판단하거나 고객이 중간에 개입하는 경우, 그 상황의 이미지를 UNIT Tests로 전송합니다. (그림은 터널에서 인식이 잘 안 된 상황을 수집하여 Unit Tests로 전송하는 사례)
- (4) Unit Tests: Unit Tests를 통해 실제 인식이 잘 안되는 데이터인지, 확보해야 하는 데이터인지 확인
- (5) Boost: 수집된 데이터를 테슬라 서버로 전송함. 데이터 수집에 동의한 차량들은 익명으로 데이터를 제공하므로 테슬라는 예외 상황으로부터 다양한 데이터를 수집 가능함
- (6) Label: 수집된 데이터로 다시 라벨링 후 데이터셋에 추가함
최종 데이터셋
Andrej Karpathy가 소개한 테슬라가 수집한 최종 데이터셋은 다음과 같다
- 7번의 Shadow mode 실행
- 1 M개의 비디오 clips (8 camera@36fps, 10 sec. video)
- 6 B개 Object Label (각 Object Label은 정확한 깊이/속도을 가짐)
- 1.5 Peta Bytes (기존 데이터셋 + Shadow 모드로 자동 라벨링 된 데이터. 정말 clean 데이터)
테슬라의 In-House SuperComputer
아래 그림은 테슬라의 뉴럴 네트워크 아키텍처이다.
위의 뉴럴 네트워크를 1.5 Peta Bytes 데이터셋으로 학습하기 위해선 엄청난 컴퓨팅량이 필요하다. 이를 위해 테슬라는 In-house SuperComputer를 구축하였는데, 테슬라의 최신 SuperComputer 사양은 flops 측면에서 세계 5위의 슈퍼컴퓨터 수준이다.
- 720 nodes: 8x A100(80GB)/node. 5760 GPUs
- 1.8 Exa flops
- 10 PB of “hot tier” NVME storage @1.6TBps
- 640 Tbps of total switching capacity
Andrej Karpathy는 “DOJO”라는 Next Supercomputer 프로젝트인 진행되고 있다는 것을 확인해주었지만, 자세한 정보는 공개하지 않았다.
FSD Chips
테슬라의 모든 HW와 SW는 모두 수직적으로 통합되어 모든 레이어의 Stack을 엔지니어들이 공동으로 설계하고 있다. 테슬라는 FSD 애플리케이션에 필요한 FSD Chips을 직접 설계하고 있다. 다음은 FSD Chip의 HW/SW specs이다.
HW: 1 FSD chip specs
- 12 CPUs@2.2GHz
- GPU (600Gflops)
- 2x NPU (36.86 TOPS/NPU)
- 36W
SW: Model Deployment
- Graph optimization/fusion
- INT8 Quantization Aware Training
- Threshold Calibration
- NPU Compiler
Vision기반 방식의 결과 분석
Andrej Karpathy는 Vision-only 방식과 Vision+Radar 방식을 비교하며 Vision 기반 방식의 우수성을 설명하였다. 이와 같은 결과를 통해 테슬라가 레이더를 차량에서 제거할 수 있는 이유를 확인할 수 있다.
1.(Very) Harsh Braking (전방차량의 갑작스런 Braking)
전방차량이 갑작스럽게 브레이킹을 걸었을 때 Vision only와 Vision + Radar 방식을 비교하였다.
Vision + Radar 방식의 Legacy Stack에서는 센서 fusion의 결과, 물체 추적이 반복적으로 초기화되어 같은 차량을 새로운 차량으로 6번 차례 인식하는 문제점이 발생하였다. 하지만 Vision only 방식은 그런 문제가 발생하지 않고 정상적인 출력을 보인다.
Radar의 파라미터를 조정하여 해결할 수 있지만 테슬라는 엔지니어링 인력을 낭비하는 것으로 판단하였으며 차라리 그 인력으로 Vision 방식 개선이 더 유리하다라고 판단하였다.
2.False Slowdowns under Bridges
Rader의 수직 방향 해상도가 좁은 문제가 있어서 Rader가 도로 위의 다리를 고정된 물체로 인식하여 Vision+Rader를 사용하는 Lagacy Stack이 차량을 감속하는 문제가 있다. 즉 Sensor fusion 과정에서 Rader의 오동작이 Vision의 능력을 가리는 역할을 하는 경우가 있었다. 하지만 Vision은 다리와 자동차를 구분할 수 있는 해상도를 갖추고 있다.
3.High Speed Stationary Approach
마지막 사례는 고속도로에서 실제 정차된 차량을 인식하는 것으로 센서 fusion는 복잡하기 때문에 Vision+Rader lagacy stack은 느리게 동작하지만 Vision은 빠르게 동작한다. Lagacy stack은 전방에 정지한 차량을 110m 앞에서 인식하고 감속하는 반면 Vision only stack은 180m 앞에서 인식하고 감속해야 한다라고 판단한다.
Release & Validation
테슬라는 Vision+Rader기반 Lagacy stack를 배포하였을 500만 마일당 한 건의 사고가 발생하는 반면, Vision only기반 stack에선 1500만 마일 주행에도 사고가 한 건도 발생하지 않았음을 공개하였다.
시사점
- 자율주행에 LiDAR가 필요하냐 안 하냐의 논쟁이 이젠 더 이상 필요없어짐. 자율주행 분야에서도 뉴럴네트워크의 성능을 결정하는 것은 결국 데이터셋임
- 테슬라는 이미 보급된 백만대 이상의 고객차량을 이용하여 경쟁사가 따라잡을 수 없는 거대한 데이터셋을 확보 가능함
- 거대한 데이터셋 확보와 함께 품질이 좋은 데이터셋이 매우 필요함
- 대규모 데이터셋 확보 시 가장 큰 문제점인 라벨링에 들어가는 비용문제를 라벨링을 자동화하여 비용을 절감하고 있음.
- 자율주행의 성능을 향상시키기 위해선 평범한 데이터셋보다 예외 상황에 대한 데이터셋이 더 중요함
- 테슬라는 초기 Autopliot 기술을 Mobileye에 의존하였으나, Mobileye와 결별 이후, 자율주행 차량에 필요한 데이터셋 수집, In-house SuperComputer, 데이터 엔진, FSD Chips, FSD SW 모두를 수직 통합함