🔱 앞의 Backborn이 RegNet 그위의 BiFPN*이 Neck이 되며 이것을 각각의 Head로 전달하는 모델을 HydraNet이라고 구현함.
* RegNet을 활용하여 여러 해상도사진을 피라미드처럼 쌓고 특징을 빠르게 추출. (멀리 떨어진물체는 해상도가 낮으므로)
🧱 각 Head별 역할(차선인식, 물체인식, 신호등 인식)이 따로 있으며 이 Head는 서로 성능에 영향을 주지않게 구현하였음.
💽 Head로 올라오기전 Neck에서 보틀넥(병목현상)이 나오지 않게 캐시메모리로 학습한 일부를 저장하여 활용함.
🧠 그렇게 HydraNet의 Head별로 (차선인식, 차량인식, 신호등 인식)을 따로 인식하는데는 성공하였지만 FSD(자율주행)을 하기에는 부족하다고 판단하였다함.
[벡터 공간]
📷 8개의 카메라로 도로의 선을 인식하는데 이것만으로는 주행이 불가하여 벡터공간을 위한 occupancy tracker를 C++로 개발.
🤷♂️ 여기에는 수작업으로는 복잡하여 AI학습이 필요하고 실제공간은 아니기 때문에 현실과 매핑(일치)할수 있는 벡터공간이 필요하게 됨.
🤷♂️ occupancy tracker를 활용하여 벡터공간으로 변환하니 차선은 인식하였지만 depth(깊이)를 알수 없고 가려진 부분은 표현이 안됨.
📷 1대의 트럭이 8대의 카메라에 찍히지만 부위별로 다르기 때문에 다른차량으로 인식.
👨🎓 이를 해결하고자 벡터 공간을 설계하기 시작함.
🦜 차량의 카메라를 기반으로 마치 위에서 내려다본 것(bird eye view)처럼 벡터 공간을 구성.
📷 노란색부분의 위치가 차량의 위치 카메라마다 다르므로 input된 카메라 영상을 왜곡/변환/회전 하여 캘리브레이션(변형 및 정렬)해서 하나의 합성된 가상카메라로 변환.
🪛 하단의 도로 인식 부분 차이 가 큼. (캘리브레이션 후 벡터 공간으로 구현했을때의 도로 인식이 전과 대비하여 상당히 향상되었음)
[Multicam(멀티캠)]
🟧 오렌지색은 싱글캠, 🟦 파란색은 멀티캠(카메라가 여러개).
🔢 단일 객체는 싱글캠/멀티캠이 비슷하나, 물체가 가려지는 상황에서는 싱글캠이 튀는현상도 발생하며 상당한 차이가 발생함.
🚙 싱글캠은 차량의 일부만 보일때는 차량길이의 오차도 발생.
🧠 싱글캠은 또한 첫번째 사진처럼 차량이 주행중인지 주차중인지 알수 없음.
📹 차량의 움직임을 알려면 프레임적인 시간정보를 저장해야 하므로 뉴럴네트워크에 비디오 모듈을 추가하여 차량의 kinetic(운동 정보, 가속도, 속도, 방향 등)을 Feature queue에 저장.
🚥 Feature queue에 27ms(1초에 27번) 마다 push(넣음, 저장)하여 일시적으로 차량이 다른차량에 가려질때도 저장해넣은 기억을 갖고 판단함.
🛣 시간queue만 갖고 있으면 빨간불에서 다음행동을 잊어버리기 때문에 공간queue (도로 좌회전 표시)을 push하여 연속성을 유지.
🧠 이러한 비디오 모듈을 RNN 모델중 Spatial(공간) RNN을 사용.
🛣 시간queue를 갖고 시간대별로 여러 채널을 메모리에서 읽고 쓰면서 스스로 학습하면서 좋아지는 결과를 보여줌. (처음에는 차량들에 의해 가려진 부분을 차량이 사라지면 시공간queue를 저장하여 학습)
[결과]
🛣 Spatial RNN을 통한 벡타 공간 변환영상으로 도로는 빨간색, 교차로는 파란색 등으로 구분하여 예측하며 fleet(차량)들로 맵을 구성함.
📦 이렇게 구성한 공간은 뉴럴네트워크의 Feature map에 존재.
📝 Planner의 역할은 차량이 Safety(안전), Comfort(편안), Efficiency(효율)하게 이동시키는것.
🗓 2019년(Autonomy Day)때에도 차선 유지/변경, IC 진출은 능숙하게 하였지만 시내주행은 타 차량과의 양보, 협력 그리고 보행자를 살펴야 해서 어려운 문제.
📌 Solar Roof는 2016년 10월 29일에 Powerwall2와 함께 발표하였음.
🏘 Solar Roof와 Panel이 있는데 Roof는 기존 지붕을 패널로 대체하는 일체형, Panel은 기존 지붕위에 패널을 얹는 형태.
⚡️ Roof/Panel의 태양광에너지를 가정용 배터리인 Powerwall에 저장.