-
Tesla AI Day 2021 Andrej part 번역Autonomous Driving 2023. 6. 19. 00:16
https://www.youtube.com/watch?v=j0z4FweCy4M&t=3679s
자율주행 AI에서 Andrej part는 참 좋다.
이해하기 힘들지만 gpt의 도움을 받아 우선 번역을 해봤다. 참좋은 세상이다.
제 이름은 Andrej이고 저는 여기 Tesla 자동 조종 장치에서 비전 팀을 이끌고 있습니다. 이 섹션을 시작하게 되어 매우 기쁩니다. 자동 조종 장치 스택에 대한 기술적인 심층 분석을 제공하고 후드 아래에 있는 모든 것을 보여드리겠습니다. 자동차가 스스로 운전하도록 만드는 구성 요소 그래서 우리는 지금 여기 분할 구성 요소에서 비전 구성 요소로 시작할 것입니다. 우리가 하려는 것은 원시 정보를 처리하는 신경망을 설계하려고 하는 것입니다. 우리의 경우 8개의 카메라
{comment}
카메라 영상을 보면
앞에 3개
옆에 2개
뒤에 3개의 영상이 보이는것을 알 수 있다.
여기서 뒤에 보이는 영상을 잘 기억하자 rectification layer의 예제로 사용됨.49:16
차량 주변에 배치되어 이미지를 보내면 실시간으로 벡터 공간이라고 부르는 것으로 처리해야 합니다. 이것은 운전에 필요한 모든 것을 3차원으로 표현한 것입니다. 선 가장자리 연석 교통 표지판 교통 신호등 자동차 위치 방향 깊이 속도 등 여기서는 사과를 실제로 보류하는 비디오를 보여 드리고 있습니다. 그래서 여기서는 스택에 들어오는 원시 입력의 비디오를 보여 드리고 있습니다.
49:53
신경 프로세스가 벡터 공간으로 들어가고 자동차의 계기판에 렌더링된 벡터 공간의 일부를 볼 수 있습니다. 이제 제가 발견한 흥미로운 점은 처음부터 합성 동물을 효과적으로 구축하고 있다는 것입니다. 주변을 돌아다니는 동물이라고 생각하세요. 환경을 감지하고 자율적이고 지능적으로 행동합니다. 우리는 처음부터 모든 구성 요소를 사내에서 만들고 있으므로 물론 모든 기계적 구성 요소를 만들고 있습니다.
50:29
신체의 모든 전기 구성 요소인 신경계와 우리의 목적을 위해 자동 조종 장치의 뇌, 특히 이 섹션의 경우 합성 시각 피질 이제 생물학적 시각 피질은 실제로 매우 복잡한 구조와 정보 흐름을 구성하는 여러 영역을 가지고 있습니다. 이 뇌의 특히 우리의 시각 피질에서 정보는 빛에 도달하고 망막에 도달합니다. 그것은 시각 피질의 뒤쪽까지 lgn을 통과하여 v1 v2 영역을 통과합니다.
50:58
v4 그것은 지느러미 흐름에 대한 모험과 정보가 특정 레이아웃으로 구성되어 있으므로 자동차의 시각 피질을 설계할 때 시스템에서 정보가 흐르는 방식에 대한 신경망 아키텍처를 설계하여 처리 빛이 우리의 인공 망막에 닿는 처음부터 시작하고 우리는 신경망으로 이 정보를 처리할 것입니다. 이제 이 섹션을 시간순으로 대략적으로 정리할 것이므로 일부 신경망과위 내용을 종합해 보면
resnet 계열의 네트워크를 사용하는데 최적화를 한것이 regnet이고
입력은 위에 그림을 보면 blue,red, green,green을 볼수있다. 즉 4개를 다 사용하는것으로 이해가됨.
그래서 입력 채널은 1280x960x4가 되고
해상도가 처음만 1/8로 줄고 그다음 부터는 1/2씩 크기를 줄임.
- 160x120x16(stride 8,stride 8, feature 16)
- 80x60x128(stride 2, stride 2, feature 128)
- 40x30x256(stride 2, stride 2, feature 256)
- 20x15x512(stride 2, stride 2, feature 512)
예로....
만일 3x3x4 필터를 사용해서 CNN을 한다면 stride 8에 padding 1 해서 convolution을 16번 진행하면
160x120x16의 크기를 을 얻을 수 있음.
resnet의 구조를 보면
cnn + cnn + pooling layer 구조로 한단계씩 진행됨.
이렇게 이해하는것이 맞나? 아니면 댓글 부탁드립니다.
Designing Network Design Space Radosavovic51:27
내가 팀에 합류했을 때 그들은 대략 4년 전처럼 보였고 그들이 시간이 지남에 따라 어떻게 발전했는지 대략 4년 전에는 자동차가 주로 고속도로에서 앞으로 단일 차선으로 운전하고 있었기 때문에 차선을 유지해야 했고 앞차와의 거리를 유지하고 그 당시에는 모든 처리가 개별 이미지 수준에서만 이루어졌기 때문에 단일 이미지를 신경망으로 분석하고 벡터 공간 프로세스의 작은 조각을 작은 조각으로 만들어야 했습니다. 벡터 공간이므로 이 처리
51:56
다음과 같은 모양을 취했습니다. 1280 x 960 입력을 취하고 이것은 대략 36Hz로 스트리밍되는 12비트 정수입니다. 이제 신경망으로 처리할 것이므로 기능 추출기 백본을 인스턴스화합니다. 이 경우 잔여 신경망을 사용합니다. 줄기와 일련의 잔차 블록이 연결되어 있습니다. 이제 우리가 사용하는 특정 종류의 resnet은 regnet입니다. 우리가 좋아하는 것은 매우 regnet과 같기 때문입니다. net은 신경망을 위한 매우 좋은 디자인 공간을 제공합니다.52:23
대기 시간과 어 정확도를 절충합니다. 이제 이러한 regnets는 서로 다른 스케일의 서로 다른 해상도에서 여러 기능을 출력으로 제공하므로 특히 이 기능 계층 구조의 맨 아래에는 채널 수가 매우 적은 매우 높은 해상도 정보가 있으며 모든 상단에는 특히 낮은 공간 해상도가 있지만 채널 수가 많기 때문에 하단에는 이미지의 세부 사항을 면밀히 조사하는 많은 뉴런이 있고 상단에는 대부분의 이미지를 볼 수 있는 뉴런이 있습니다. 많은
52:51
해당 컨텍스트의 많은 장면 컨텍스트가 있는 경우 우리는 fbns에서 사용하기를 좋아하는 기능 피라미드 네트워크로 이를 처리하고 서로 효과적으로 대화하고 많은 것을 공유하기 위해 여러 척도에 도달하는 멀티를 얻습니다. 예를 들어 당신이 네트워크 아래에 있는 뉴런이고 작은 패치를 보고 있고 이것이 자동차인지 확실하지 않은 경우 최고의 플레이어로부터 아는 것이 확실히 도움이 됩니다. 실제로 이것의 소실점에 있습니다EfficientDet : Scalable & Efficient Object Detection Tan et 2019
BiFPN을 통해서 서로 다른 layer를 참조하도록 네트워크를 구현했다고함.
자세한 내용은 위 논문 참조해야할것 같음.53:15
고속도로 그래서 이것은 아마도 구매 fbn 후 자동차이고 저울에 걸친 기능 융합이라는 것을 명확하게 하는 데 도움이 됩니다. 그런 다음 작업 특정 헤드로 이동합니다. 예를 들어 물체 감지를 수행하는 경우 여기에 물체 감지기와 같은 1단계 yolo가 있습니다. 우리는 래스터를 초기화하고 거기에 자동차가 있는지 여부를 알려주는 위치당 이진 비트가 있습니다. 여기에 추가로 관심을 가질만한 다른 속성이 있다면 높이 오프셋이 있는 x y 또는 다른만일 yolo같은 Object Detection로직을 구현한다면 위처럼 구현한다는 내용임.
어쩌면 HydraNets이 아닌 일반적인 네트워크를 구현한다면 위처럼 구현하는것이 좋은 구조일 수도 있겠다는 생각이 들었음.53:43
이것은 어떤 유형의 자동차인지와 같은 속성입니다. 그래서 이것은 자체적으로 감지하기 위한 것입니다. 이제 우리는 우리가 단지 자동차를 감지하기를 원하는 것이 아니라 많은 수의 작업을 수행하기를 원한다는 것을 매우 빨리 발견했습니다. 신호등 인식 및 탐지, 차선 예측 등을 매우 빠르게 수행합니다. 우리는 공통 공유 백본이 있는 이러한 종류의 건축 레이아웃을 변환한 다음 여러 헤드로 분기하여 이를 어 따라서 하이드로넷이라고 부릅니다. 히드라위 구조에 발전시킨 HydraNets인데 multi-scale features라는 layer가 추가되었는데
밑에 약간 설명이 나와있음.
예전에 이것 관련 발표한 영상도 봤는데 나중에 번역해서 봐야겠음. 지금은 기억안남.54:11
이제 이 아키텍처 레이아웃에는 여러 가지 이점이 있습니다. 첫 번째는 기능 공유로 인해 테스트 시간에 자동차의 순방향 패스 추론을 상각할 수 있으므로 모든 단일 작업에 대한 백본이 있어야 하는 경우 실행하기에 매우 효율적입니다. 이는 2번 자동차의 많은 백본이 될 것입니다. 이것은 모든 작업을 분리하여 모든 작업을 개별적으로 개별적으로 작업할 수 있도록 합니다. 예를 들어 데이터 세트를 업그레이드하거나 자동차의 일부 아키텍처를 변경할 수 있습니다. 머리 등등 그리고(54:11) now this architectural layout has a number of benefits so number one because of the feature sharing we can customize the forward pass inference in the car at test time and so this is very efficient to run because if we had to have a backbone for every single task that would be a lot of backbones in the car number two this decouples all of the tasks so we can individually work on every one task in isolation and for example we can we can upgrade any of the data sets or change some of the architecture of the head and so on and HydraNet을 사용하면 좋은 점 3가지를 설명하고 있음.
1. Backbone이 한개이므로 효율적으로 테스할 수 있음.
2. Fine Tune할때 개별적으로 할 수 있음.
3. backbone부분 학습을 다시 하지 않아도 되므로 테스트 속도가 빠름54:39
다른 작업에 영향을 주지 않으므로 비용이 많이 들 수 있는 다른 모든 작업을 재검증할 필요가 없습니다. 세 번째는 여기에 병목 현상이 있고 우리가 자주 하는 기능은 실제로 이러한 기능을 디스크에 캐시하는 것입니다. 그리고 우리가 이러한 미세 조정 작업 흐름을 수행할 때 캐시된 기능부터 미세 조정하고 머리에서만 찾을 수 있으므로 교육 작업 흐름 측면에서 가장 자주 엔드 투 엔드 교육 실행을 한 번 수행합니다. 우리가 모든 것을 공동으로 훈련하는 동안(54:39) you are not impacting any of the other tasks and so we don't have to revalidate all the other tasks which can be expensive and number three because there's this bottleneck here and features what we do fairly often is that we actually cache these features to disk and when we are doing these fine tuning uh workflows we only fine-tune from from the cached features up and only find you in the heads so most often in terms of our training workflows we will do an end-to-end training run once in a while where we train everything jointly then
55:06
우리는 다중 스케일 기능 수준에서 기능을 캐시한 다음 잠시 동안 이를 미세 조정한 다음 다시 한 번 종단 간 훈련을 수행합니다. 몇 년 전에 우리가 얻은 예측의 종류는 다음과 같습니다. 이제 어 수두염 중 하나에서 다시 개별 이미지를 처리하고 있습니다. 우리는 단지 개별 이미지를 처리하고 있으며 이러한 이미지에 대해 많은 수의 예측을 하고 있습니다. 예를 들어 여기서 정지 신호에 대한 예측을 볼 수 있습니다. 정지선 어 라인 가장자리
55:38
자동차 uh 신호등 uh 여기 연석 uh 자동차에 불이 붙었는지 여부 uh 쓰레기통 원뿔 등과 같은 모든 정적 물체와 여기에 있는 모든 것이 그물에서 나옵니다. 이 경우에는 히드라 그물에서 나옵니다. 모두 괜찮고 훌륭했지만 fsd를 위해 작업하면서 이것이 충분하지 않다는 것을 빨리 발견했습니다. 그래서 이것이 처음 중단되기 시작한 곳은 여기서 스마트 소환 작업을 시작했을 때였습니다. 저는 연석 감지 작업의 예측 중 일부를 보여주고 있습니다. 이제 모든 카메라에 대해 보여드리겠습니다end to end 개발이 아니라서 로직이 너무 복잡하고
이미지 스페이스는 실제 스페이스와 차이가 있으므로 벡터 스페이스를 만듬.
56:07
그래서 우리는 차를 부르는 사람을 찾기 위해 주차장을 돌아다니고 싶습니다. 이제 문제는 이미지 공간 예측을 직접 운전할 수 없다는 것입니다. 우리는 c plus를 사용하여 이 작업을 시도했고 당시 점유 추적기라고 부르는 것을 개발했습니다. 여기서 이미지의 연석 감지가 카메라 장면 카메라 경계를 가로질러 연결되고 시간이 지남에 따라 지금 거기에 있습니다. 두 가지 주요 문제
56:37
설정 번호 1에서 점유 추적기와 모든 하이퍼 매개변수를 조정하는 것이 매우 복잡하다는 것을 매우 빨리 발견했습니다. C에서 명시적으로 이 작업을 수행하고 싶지 않고 이것이 신경망 내부에 있기를 원합니다. end to end 두 번째로 우리는 이미지 공간이 올바른 출력 공간이 아니라는 것을 매우 빨리 발견했습니다. 이미지 공간에서 예측을 하고 싶지 않고 벡터 공간에서 직접 만들고 싶기 때문에 여기에 설명하는 방법이 있습니다.
57:00
문제는 여기 첫 번째 행에 빨간색과 파란색의 곡선과 선의 예측을 표시하고 이미지에서 멋지게 보이지만 벡터 공간으로 캐스팅하면 상황이 정말 끔찍해 보이기 시작하고 우리는 이것으로 운전할 수 없을 것이므로 벡터 공간에서 예측이 얼마나 나쁜지 알 수 있습니다. 근본적으로 그 이유는 실제로 이 투영을 수행하기 위해 픽셀당 매우 정확한 깊이가 필요하기 때문입니다. 예측하는 것이 얼마나 높은 막대인지 상상해보십시오.간단한 라인도 이미지에서는 잘 그려지지만 벡터 스페이스로 변환하면 거리값의 불안정성 때문에 이상하게 아래 처럼 그려지는것을 볼 수 있음.
57:30
그 깊이는 이미지의 모든 단일 픽셀에서 매우 정확하게 그리고 또한 예측을 하고 싶은 가려진 영역이 있는 경우 이미지 공간 개념이 아니기 때문에 예측할 수 없습니다. 그런데 이것의 다른 문제 중 하나는 카메라당 예측만 하는 경우 개체 감지에 대한 것입니다. 그러면 때때로 자동차 한 대가 실제로 8대의 카메라 중 5대에 걸쳐 있는 경우와 같은 경우가 발생할 수 있습니다.여기서 전방 카메라 3개가 내가 아는것과 달라서 신기함.
난 전방 카메라 3개가 한개는 원거리 2개는 스테레오라고 생각했는데.
일반, 원근, 광각 카메라 3개 타입이다.58:00
예측은 그 이후로 모든 자동차를 볼 수 있는 단일 카메라가 없으므로 분명히 전체 자동차를 예측하는 일을 아주 잘 할 수 없을 것이며 이러한 측정을 융합하는 것은 엄청나게 어려울 것입니다. 우리가 대신하고 싶은 것은 모든 이미지를 가져 와서 동시에 단일 신경망에 공급하고 벡터 공간에서 직접 출력하는 것입니다. 이것은 실제로 달성하기가 훨씬 더 어렵지만 대략적으로 원하는 것입니다.
58:25
백본이 있는 모든 단일 이미지를 처리하는 이런 방식으로 신경망을 배치한 다음 어떻게든 그것들을 융합하고 이미지 공간 기능의 기능을 일종의 벡터 공간 기능으로 다시 표현하고 싶습니다. 그런 다음 이제 머리의 디코딩으로 이동합니다. 음, 이 문제에는 두 가지 문제가 있습니다. 첫 번째 문제는 이 변환을 수행하는 신경망 구성 요소를 실제로 어떻게 생성하고 종단간 교육이 가능하도록 미분 가능하게 만들어야 하는가입니다. 그리고 두 번째 어
58:57
신경망에서 벡터 공간 예측을 원하는 경우 벡터 특정 기반 데이터 세트가 필요하므로 이미지에 레이블을 지정하는 등의 방법으로는 벡터 공간 레이블이 필요하지 않습니다. 두 번째 문제에 대해 더 많이 이야기하겠습니다. 이야기의 후반부에서 지금은 신경망 아키텍처에 집중하고 싶기 때문에 문제 1번에 대해 자세히 알아볼 것이므로 여기에 대략적인 문제가 있습니다. 우리는 이미지 공간 예측 대신 이 조감도 예측을 시도하고 있습니다. 예를 들어 집중하자두번째 문제에서 image clip에서 video clip으로 변경된것으로 알고 있음.
즉 vector space 방법을 도입하면서 labeling 방법이 변경됨.
59:22
노란색 출력 공간의 단일 픽셀에서 이 픽셀은 내가 연석의 일부인지 여부를 예를 들어 결정하려고 합니다. 이제 이러한 종류의 예측에 대한 지원이 이미지 공간에서 어디에서 오는지 대략적으로 알고 있습니다. 카메라가 배치되는 방식과 외재 및 내재를 통해 이 지점을 카메라 이미지에 대략적으로 투영할 수 있으며 이것이 곡선인지 여부에 대한 증거가 이미지의 여기 어딘가에서 나올 수 있음을 알 수 있습니다. 문제는 이 투영이 실제로 ~하기 어려운앞의 전방 카메라를 이용해서 예시를 설명하고 있는데 광각 카메라가 반은 기구물에 의해서 가려지는것이 눈에 띈다.
일반적으로 광각 카메라의 반을 못쓰는데 각도가 이 것이 최선인가? 난 다른 부분 보다 이 부분이 참 눈에 띈다.
59:47
도로 표면의 함수이기 때문에 실제로 정확해집니다. 도로 표면이 위로 기울어질 수도 있고 아래로 기울어질 수도 있고 다른 데이터 종속 문제가 있을 수도 있습니다. 예를 들어 자동차로 인해 가려질 수 있으므로 자동차가 이 뷰포트를 가리는 경우 이미지의 이 부분은 실제로 투영되는 부분이 아닌 이미지의 다른 부분에 주의를 기울이고 싶을 수 있습니다. 따라서 이것은 데이터에 따라 달라지기 때문에 이 구성 요소에 대해 고정된 변환을 갖기가 정말 어렵습니다.이 부분은 내가 BEV Former 논문을 보면 이해도가 높아진다.
즉 네트워크에서 시간 축과 공간 축을 다 고려서 결과를 뽑아 준다.
그래서 가려진 부분도 예측할 수 있고 여러 카메라로 봐서 결정하기때문에 정확도가 높다.
논문에 있는 내용이다. 이 내용이 가장 잘 표현하고 있는것 같음.
BEVFormer exploits both spatial and temporal information by interacting with spatial and temporal space through predefined
grid-shaped BEV queries.1:00:11
그래서 이 문제를 해결하기 위해 우리는 이 공간을 표현하기 위해 트랜스포머를 사용하고 이 트랜스포머는 multi-headed self-attention을 사용하고 이 경우 차단합니다. 이것이 하는 일은 원하는 출력 공간 크기의 래스터를 초기화하고 출력 공간에서 크기와 코즈가 있는 위치 인코딩으로 타일링한 다음 mlp를 사용하여 쿼리 벡터 집합으로 인코딩한 다음 모든 이미지와 그들의
1:00:42
기능은 또한 자신의 키와 값을 내보낸 다음 쿼리 키와 값이 멀티 헤드 셀프 어텐션에 공급되므로 모든 단일 이미지 조각이 자신의 키에서 브로드캐스팅하는 것입니다. 이봐 나는 대략 이 위치에 있는 기둥의 일부이고 이런 종류의 물건을 보고 있고 그게 키에 있고 모든 쿼리는 이 위치에서 출력 공간의 픽셀이고 이 유형의 기능을 찾고 있습니다.
1:01:08
그런 다음 키와 쿼리가 곱셈적으로 상호 작용하고 그에 따라 값을 가져오므로 이것은 공간을 다시 나타내며 이것이 이 변환에 매우 효과적이라는 것을 알았습니다. 따라서 모든 엔지니어링을 올바르게 수행한다면 이것은 다시 매우 어렵다고 말할 수 있습니다. 모든 엔지니어링을 올바르게 수행하기 위해 음 슬라이드가 어떻게 되었는지 확신하기 전에 문제가 하나 더 있습니다.
1:01:35
특히 우리의 모든 자동차는 약간 다른 방식으로 약간 건방진 상태이므로 이미지 공간에서 출력 공간으로 이 변환을 수행하는 경우 카메라 보정이 무엇인지 정말 알아야 합니다. 어떻게든 신경망에 입력해야 하므로 모든 이미지의 카메라 보정을 연결하고 어떻게든 mlp로 입력할 수 있지만 실제로 우리는 모든
백미러가 선명해진다는 말은 alignment가 잘 맞는 다는 말임.
여기서 그냥 내가 추측이 드는것은 8개를 동시에 rectify하는것이 아니라 리어쪽 3개 하고
pillar쪽 2개 하고 전방 쪽 3개하는것 아닌가 하는 생각이 듬.
즉 가상 카메라를 사용했으므로 main과 pillar의 동기화가 필요함.
그래서 화살표가 한쪽으로 흐르는것 같음.1:02:00
특수 정류 변환을 사용하여 이미지를 합성 가상 카메라에 넣습니다. 이것은 이미지 정류 레이어 바로 위에 새 레이어를 삽입하는 것과 같습니다. 이것은 카메라 보정 기능이며 모든 이미지를 가상 공통 카메라로 변환합니다. 예를 들어 뒤쪽을 향하고 있는 많은 반복 이미지를 평균화해야 했습니다. 이렇게 하지 않으면 일종의 흐릿함을 얻을 수 있지만 정류 변환을 수행한 후에는 백미러가 정말 선명해지는 것을 볼 수 있습니다.
1:02:30
일단 이렇게 하면 성능이 상당히 향상됩니다. 여기에 몇 가지 결과가 있습니다. 왼쪽에는 이전에 있었던 것을 볼 수 있고 오른쪽에는 신경망에서 직접 나오는 훨씬 향상된 예측을 볼 수 있습니다. 이것은 벡터 공간에서 직접 예측하는 다중 카메라 네트워크이며 기본적으로 밤낮이라는 것을 알 수 있습니다. 어 실제로 운전할 수 있습니다. 어 이것은 시간이 좀 걸렸고 AI 팀의 엔지니어링과 놀라운 작업이 실제로 이루어졌습니다. 작업하고 배포하고
1:02:58
자동차에서 효율적으로 만들면 물체 감지도 많이 향상됩니다. 예를 들어 여기 이 비디오에서 단일 카메라 예측은 주황색으로 표시하고 다중 카메라 예측은 파란색으로 표시합니다. 기본적으로 이러한 자동차를 예측할 수 없는 경우 자동차의 아주 작은 조각만 보고 있어서 감지가 좋지 않고 위치가 좋지 않을 것이지만 다중 카메라 네트워크에 문제가 없는 경우 좀 더 명목적인 종류의 또 다른 비디오가 있습니다. 상황과 우리는 그것을여기서 노란 박스는 여러개임 즉 카메라 여러개에서 추적을 따로 돌렸다라는 말로 들리고 정렬도 안 맞았다는 말로 들림.
그러나 멀티로 하면서 이런문제가 자연스럽게 해결됨.
참고로 빨간색은 자차임.나는 이 그림을 보면서 멀티 카메라의 성능이 진짜 좋다는것을 느꼈음.
긴 차량의 길이를 잘 예측하고 방향을 잘 예측하고 고스트가 없고
1:03:25
카메라 경계를 가로지르는 이 좁은 공간에 있는 이 자동차는 예측에 들어가는 많은 버벅거림이 있으며 기본적으로 전체 설정은 특히 이와 같은 매우 큰 차량에 대해 이해가 되지 않으며 다중 카메라 네트워크가 크게 어려움을 겪는 것을 볼 수 있습니다. 이러한 종류의 예측은 적습니다. 이 시점에서 우리는 다중 카메라 네트워크를 보유하고 벡터 공간에서 직접 예측을 제공하지만 우리는 여전히 매 순간 완전히 독립적으로 작동하고 있습니다.1:03:50
그래서 우리는 실제로 비디오 컨텍스트를 필요로 하는 많은 수의 예측이 있다는 것을 매우 빨리 발견했고 어떻게든 이것을 네트워크에 공급할 방법을 알아내야 합니다. 특히 이 차가 주차되어 있는지 여부는 얼마나 빨리 움직이는지 일시적으로 가려져도 움직이고 있나요 아니면 예를 들어 전방의 도로 형상을 예측하려는 경우 50미터 전에 본 표지판이나 도로 표시를 아는 것이 매우 도움이 됩니다. 비디오 모듈을1:04:17
신경망 아키텍처이며 이것은 우리가 수렴한 솔루션 중 하나이므로 이전과 같은 다중 규모 기능을 갖게 됩니다. 이제 삽입할 것은 캐시할 기능 큐 모듈입니다. 시간이 지남에 따라 이러한 기능 중 일부와 이 정보를 일시적으로 융합할 비디오 모듈, 그리고 디코딩을 수행하는 헤드로 계속 진행할 것입니다. 이제 이 두 블록을 하나씩 차례로 살펴보겠습니다. 또한 여기에서 우리가 또한 공급하고 있음을 알립니다.
1:04:42
운동학 이것은 기본적으로 자동차가 어떻게 움직이는지에 대해 알려주는 속도와 가속도입니다. 모든 카메라에서 우리가 보고 있는 것을 추적할 뿐만 아니라 자동차가 어떻게 이동했는지도 추적할 수 있습니다. 기능 대기열과 대략적인 레이아웃은 기본적으로 시간이 지남에 따라 이러한 기능을 연결하고 있으며 자동차가 어떻게 움직였는지에 대한 운동학 및 위치 인코딩이 연결되어 인코딩되고 기능 대기열에 저장되며(1:04:42) the kinematics this is basically the velocity and the acceleration that's telling us about how the car is moving so not only are not only are we going to keep track of what we're seeing from all the cameras but also how the car has traveled so here's the feature queue and the rough layout of it we are basically concatenating these features um over time and the kinematics of how the car has moved and the positional encodings and that's being concatenated encoded and stored in a feature queue and that's going to be consumed by a
1:05:10
이제 비디오 모듈에 몇 가지 세부 정보가 있습니다. 특히 팝 및 푸시 메커니즘과 관련하여 언제, 어떻게, 특히 기본적으로 푸시합니까? 여기 몇 가지 문제를 설명하는 만화 다이어그램이 있습니다. 바닥에서 오는 에고 자동차가 여기 이 교차로로 올라오면 교통이 우리 앞에서 교차하기 시작하고 일시적으로 앞의 일부 자동차를 가리기 시작하고 우리는 거기에 갇히게 될 것입니다. 이것(1:05:10) video module now there's a few details here again to get right so in particular with respect to the pop and push mechanisms and when do you push and how and especially when do you push basically so here's a cartoon diagram illustrating some of the challenges here there's going to be the ego cars coming from the bottom and coming up to this intersection here and then traffic is going to start crossing in front of us and it's going to temporarily start occluding some of the cars ahead and then we're going to be stuck at this
1:05:36
잠시 동안 교차하고 우리 차례를 기다리는 것은 항상 발생하는 일이며 여기에 있는 몇 가지 문제를 만화로 표현한 것이므로 기능 대기열과 관련하여 1순위이며 대기열에 밀어넣고 싶을 때 분명히 우리는 예를 들어 27밀리초마다 기능을 대기열에 입력하는 일종의 시간 기반 대기열을 갖고 싶습니다. 따라서 자동차가 일시적으로 가려지면 신경망은 이제 메모리를 보고 참조할 수 있는 힘을 갖게 됩니다. 시간과 그리고(1:05:36) intersection for a while and just waiting our turn this is something that happens all the time and is a cartoon representation of some of the challenges here so number one with respect to the feature queue and when we want to push into a queue obviously we'd like to have some kind of a time-based queue where for example we enter the features into the queue say every 27 milliseconds and so if a car gets temp
orarily occluded then the neural network now has the power to be able to look and reference the memory in time and and1:06:02
지금 당장은 이것이 가려져 보이지만 내 이전 기능에 기록이 있고 이것을 사용하여 여전히 감지할 수 있으므로 더 분명한 것과 비슷하지만 우리가 발견한 것이 필요하다는 연관성을 배웁니다. 우리의 경우는 예를 들어 도로 표면과 전방의 도로 형상에 대해 예측하려고 하고 내가 회전 차선에 있고 우리 옆 차선이 직진한다고 예측하려고 한다고 가정하면 실제로 에 대해 알아야 할(1:06:02) learn the association that hey even though this thing looks occluded right now there's a record of it in my previous features and i can use this to still make a detection so that's kind of like the more obvious one but the one that we also discovered is necessary in our case is for example suppose you're trying to make predictions about the road surface and the road geometry ahead and you're trying to predict that i'm in a turning lane and the lane next to us is going straight then it's really necessary to know about the
1:06:30
라인 표시와 표지판, 때로는 오래 전에 발생하므로 시간 기반 대기열만 있는 경우 신호등에서 기다리는 동안 기능을 잊어버릴 수 있으므로 시간 기반 q 외에도 다음이 있습니다. 공간 기반 보기이므로 자동차가 특정 고정 거리를 이동할 때마다 푸시하므로 이러한 세부 정보 중 일부는 실제로 상당히 중요할 수 있습니다. 이 경우 기능을 캐시하기 위한 시간 기반 키와 공간 기반 키가 있습니다. 우리가 본 비디오 모듈에 대해 이제 비디오 모듈로 계속됩니다.(1:06:30) line markings and the signs and sometimes they occur a long time ago and so if you only have a time-based queue you may forget the features while you're waiting at your red light so in addition to a time-based q we also have a space-based view so we push every time the car travels a certain fixed distance so some of these details actually can matter quite a bit and so in this case we have a time based key and a space base key to cache our features and that continues into the video module now for the video module we looked at a
1:06:56
이 정보를 시간적으로 융합하는 방법에 대한 많은 가능성 그래서 우리는 많은 수의 풍미에 걸쳐 더 효율적인 순환 신경망을 만들기 위한 노력의 일환으로 3차원 컨볼루션 변환기 축 변환기를 살펴보았지만 우리가 실제로 꽤 좋아하는 것 또한 공간 순환 신경망 비디오 모듈에 시간을 할애하고 싶습니다. 여기서 우리가 하고 있는 것은 우리가 2차원 표면에서 추진하고 있는 문제의 구조 때문에 실제로 구성할 수 있습니다.(1:06:56) number of possibilities of how to fuse this information temporally so we looked at three-dimensional convolutions transformers axial transformers in an effort to try to make them more efficient recurrent neural networks over a large number of flavors but the one that we actually like quite a bit as well and i want to spend some time on is a spatial recurrent neural network video module and so what we're doing here is because of the structure of the problem we're driving on two-dimensional surfaces we can actually organize the
1:07:22
숨겨진 상태를 2차원 격자로 만든 다음 자동차가 운전할 때 자동차 근처에 있고 자동차가 볼 수 있는 부분만 업데이트하므로 자동차가 운전할 때 운동학을 사용하여 위치를 통합합니다. 숨겨진 기능 그리드의 자동차와 우리는 우리 근처에 있는 지점에서만 RNN을 업데이트하고 있습니다. 그래서 여기 그것이 어떻게 생겼는지에 대한 예가 있습니다. 제가 보여드릴 것은 자동차가 돌아다니는 것입니다. 숨겨진 상태를 보고 있습니다.(1:07:22) hidden state into a two-dimensional lattice and then as the car is driving around we update only the parts that are near the car and where the car has visibility so as the car is driving around we are using the kinematics to integrate the position of the car in the hidden features grid and we are only updating the rnn at the points where where we have uh that are nearby us sort of so here's an example of what that looks like here what i'm going to show you is the car driving around and we're looking at the hidden state of 1:07:56
이 rnn과 이들은 숨겨진 상태의 다른 채널이므로 이 신경망이 최적화 및 훈련 후임을 알 수 있습니다. 일부 채널이 예를 들어 도로 중심과 같은 도로의 다양한 측면을 추적하고 있음을 볼 수 있습니다. 가장자리 라인 노면 등 여기 또 다른 멋진 비디오가 있습니다. 이것은 다른 교차로의 다른 순회에 대한 숨겨진 상태의 처음 10개 채널의 평균을 보고 있으며 기본적으로 보고 싶은 것은(1:07:56) this rnn and these are different channels in the hidden state so you can see that this is after optimization and training this neural net you can see that some of the channels are keeping track of different aspects of the road like for example the centers of the road the edges the lines the road surface and so on here's another cool video of this so this is looking at the mean of the first 10 channels in the hidden state for different traversals of different intersections and all i want you to see basically is
1:08:25
순환 신경망이 어떤 시점에서 무슨 일이 일어나고 있는지 추적하기 때문에 멋진 활동이 있고 이제 우리가 신경망에 실제로 이 메모리를 선택적으로 읽고 쓸 수 있는 권한을 부여했다고 상상할 수 있습니다. 예를 들어 우리 바로 옆에 차가 있고 도로의 일부를 막고 있다면 이제 네트워크는 해당 위치에 쓰지 않을 수 있는 기능이 있지만 차가 사라지고 우리가 정말 좋은 시야를 갖게 되면 반복되는 신경망이 괜찮다고 말할 수 있습니다. 우리는 매우 분명합니다(1:08:25) that there's cool activity as the recurrent neural network is keeping track of what's happening at any point in time and you can imagine that we've now given the power to the neural network to actually selectively read and write to this memory so for example if there's a car right next to us and is occluding some parts of the road then now the network has a has the ability to not write to those locations but when the car goes away and we have a really good view then the recurring neural net can say okay we have very clear
1:08:48
가시성 우리는 확실히 공간의 해당 부분에 무엇이 있는지에 대한 정보를 작성하고 싶습니다. 여기에 이것이 어떻게 생겼는지 보여주는 몇 가지 예측이 있습니다. 그래서 여기서 우리는 파란색 도로 중심의 빨간색 교차로 영역에 있는 도로 경계에 대한 예측을 만들고 있습니다. 시각화를 깔끔하게 유지하기 위해 여기에 몇 가지 예측을 표시합니다. 음, 예 이것은 공간 rnn에 의해 수행되며 이것은 단일 클립과 단일 순회만 표시하지만 여기를 통해 여러 번의 이동이 있을 수 있고 기본적으로 숫자가 있을 수 있다고 상상할 수 있습니다.(1:08:48) visibility we definitely want to write information about what's in that part of space here's a few predictions that show what this looks like so here we are making predictions about the road boundaries in red intersection areas in blue road centers and so on so we're only showing a few of the predictions here just to keep the visualization clean um and yeah this is this is done by the spatial rnn and this is only showing a single clip a single traversal but you can imagine there could be multiple trips through here and basically number 1:09:21
자동차의 여러 클립이 협력하여 이 지도를 기본적으로 효과적으로 HD 지도로 만들 수 있습니다. 단, 명시적인 항목 공간이 아니라 반복되는 신경망의 기능 공간에 있다는 점은 제가 본 적이 없는 멋진 일입니다. 비디오 네트워크가 물체 감지를 상당히 개선하기 전에는 이 예에서 두 대의 자동차가 저기 있고 한 대의 자동차가 지나가고 잠시 그들을 가리는 경우를 보여주고 싶습니다. 액자(1:09:21) of cars a number of clips could be collaborating to build this map basically and effectively an hd map except it's not in a space of explicit items it's in a space of features of a recurrent neural network which is kind of cool i haven't seen that before the video networks also improved our object detection quite a bit so in this example i want to show you a case where there are two cars over there and one car is going to drive by and occlude them briefly so look at what's happening with the single frame 1:09:48
그리고 자동차가 우리 앞을 지나갈 때의 비디오 예측은 말이 됩니다. 그래서 두 자동차가 시야에 있을 때 무슨 일이 일어나고 있는지 빠르게 살펴보겠습니다. 예측은 대략 동일하며 여러 개의 주황색 상자가 표시됩니다. 다른 카메라에서 오는 경우 단일 프레임 네트워크는 감지를 중단하지만 비디오 모듈은 이를 기억하고 자동차를 유지할 수 있으며 부분적으로만 가려지면 단일 프레임 네트워크는 최선의 추측을 하도록 강제됩니다.
1:10:22
보고 있는 것에 대해 강제로 예측하고 정말 끔찍한 예측을 하지만 비디오 모듈은 그것이 정보를 가지고 있다는 것을 알고 있고 이것이 지금 당장은 쉽게 볼 수 있는 부분이 아니라는 것을 알고 있는 부분만 있다는 것을 알고 있습니다. 실제로 그것을 고려하지 않고 우리는 또한 깊이와 물론 특히 속도를 추정하는 능력에서 상당한 개선을 보았습니다. 그래서 여기에서 우리가 레이더 깊이를 보고 있는 레이더 제거 푸시의 클립을 보여주고 있습니다.
1:10:47
그리고 속도는 녹색이고 우리는 비디오 네트워크에서만 신호를 맞추거나 심지어 능가하려고 했습니다. 여기 보이는 것은 주황색으로 단일 프레임 성능을 보고 있고 파란색으로 다시 비디오 모듈을 보고 있습니다. 깊이의 품질이 훨씬 더 높고 속도의 경우 주황색 신호는 물론 단일 프레임 네트워크에서 속도를 얻을 수 없으므로 우리는 어를 사용하여 깊이를 차별화하지만 비디오 모듈은 실제로 기본적으로 옳습니다. 레이더 신호의 상단이므로 우리는
1:11:16
이것이 우리에게 매우 잘 작동한다는 것을 알았으므로 여기에 모든 것을 결합합니다. 이것이 오늘날 우리의 건축 대략적인 모습입니다. 바닥에 원본 이미지를 공급하고 정류 레이어를 통과하여 카메라 보정을 수정하고 모든 것을 공통 어 가상 카메라에 넣습니다. 우리는 그것들을 regnets 잔여 네트워크를 통해 전달하여 다양한 규모의 여러 기능으로 처리합니다. 다중 규모 정보를 fbn으로 융합합니다. 이것은 변환기 모듈을 통해 벡터 공간으로 다시 표현합니다.
1:11:46
이것은 공간 rnn과 같은 비디오 모듈에 의해 처리되는 시간 또는 공간의 기능 대기열로 공급된 다음 모든 다른 작업을 위한 트렁크와 헤드가 있는 히드라 넷의 분기 구조로 계속됩니다. 그래서 대략적인 아키텍처입니다. 오늘날의 모습과 오른쪽에서 예측 중 일부를 볼 수 있습니다. 하향식 벡터 공간과 이미지 모두에서 일종의 시각화입니다. 확실히 어 이 아키텍처는 매우 단순한 것에서 확실히 복잡해졌습니다.
1:12:13
이미지 기반 단일 네트워크는 약 3~4년 전에 개발되었으며 계속해서 발전하고 있습니다. 음 확실히 상당히 인상적입니다. 지금도 팀이 적극적으로 작업하고 있는 개선의 기회가 여전히 있습니다. 예를 들어 시간과 공간의 융합이 네트워크 용어 그래서 아마도 우리는 실제로 공간이나 시간의 초기 융합을 할 수 있고 예를 들어 하단에 비용 볼륨 또는 광학 흐름과 같은 네트워크를 수행할 수 있습니다.
1:12:37
자동차에서 이러한 밀도가 높은 래스터 중 일부를 후처리하는 데 비용이 많이 들고 물론 대기 시간 요구 사항이 매우 엄격하기 때문에 이것은 이상적이지 않습니다. 실제로 도로의 희박한 구조를 예측하는 모든 종류의 방법을 조사하고 있습니다. 값비싼 후처리가 필요하지 않지만 기본적으로 이것은 매우 멋진 벡터 공간을 달성하는 방법이며 이제 ashok이 위에서 재생 제어를 실행할 수 있는 방법에 대해 이야기할 것이라고 믿습니다. 그것
1:13:04반응형'Autonomous Driving' 카테고리의 다른 글
Designing Network Design Spaces 논문 번역 (0) 2023.06.21 Tesla AI Day 2021 Ashok part 번역 (4) 2023.06.19 Image rectification Layer (0) 2023.06.16 BEVFormer 논문 번역 (3) 2023.06.14 Occupancy Network (0) 2023.06.07