카테고리 없음

Complex-YOLO Fine Tuning

시카고 2021. 2. 25. 23:44

Kitti 뿐만 아닌, 다른 데이터 셋에 대해 LiDAR Object detection 을 하도록 한다.

- KODAS Dataset

국토자율주행 연구 단체에서 제공하는 데이터 셋

여기서 VLS-128 데이터만을 가지고 3D Detection을 해보겠다.

 

[데이터 셋 설명]

자동차와 사람의 크기 분포를 보여준다.

- Complex-YOLO

목적 : 욜로를 라이다 데이터에 사용하기 위해, Point Cloud 를 Bird-Eye-View Image 에 대해 욜로를 사용하게 된다.

입력 : Projection 과정에서 RGB 맵을 만들때, R 은 Height, G 는 Intensity B 는 Density

Density 는 프로젝션 시킬때, 한 픽셀에 여러 포인트가 들어올 수 있다. 그때의 밀집도를 표현한 것이 Density 이다.

 

중간 과정 : 이후는 YOLO 와 과정이 동일하다. 하나 다른점은 LiDAR 데이터가 헤딩값이 중요한 3D 데이터이기때문에, Complex Yolo 는 모델의 끝단에 방향을 고려하기위한 오일러 그리드라는 각도에 대한 regression 과정을 넣어두게 된다. 다른 3D 모델의 경우에는 각도값을 360도를 12로 나눠서 regression을 하게 되는데, Complex YOLO 의 경우 각도 값을 복소평면으로 해서 실수부, 허수부로 나눠줘서 inverse tangent 로 했을때, "높이/밑변" 했을때 나오는 각도를 사용하므로 오일러 grid 라고 붙인 것으로 판단. (복소 평면을 사용하기에 complex yolo 인것이다.)

 

출력 : 포지션, 3D bounding box 에 대한 정보, 헤딩 값

Complex Yolo 에 KODAS 데이터셋을 넣어줬을때, 어느정도 찾기는 하지만, 큰 차 그리고 몇몇 차량을 detecting 을 잘 못해주는 것을 확인할 수 있었다.

이유 : 키티는 64채널이고 KODAS 는 128채널이므로 못찾을 것으로 예상, Kitti 는 같은 진행방향이나 반대 진행 반향의 차에 대한 정보는 많은데 교차로에 대한 데이터가 적기에 Detection 에 에러가 발생하는것으로 보인다.

 

transfer learning(fine tuning) 이 필요한 부분임을 알 수 있다.

 

- Fine Tuning

먼저, bird eye view 를 설정해야한다. "몇 by 몇"으로 고려할 것인지 픽셀을 정의해야한다.

정하는 방식에 따라, 속도 또한 달라지고 정확도 또한 많이 달라진다.

좌우 상하 70미터를 커버해야하기 때문에, 발표자는 논문에서 제안하는 608 X 608 크기의 맵보다 더 크게 1216 X 1216 으로 설정하였다.

140 / 1216 이 0.115 m 이므로, 픽셀 격자 하나가 11.5 cm를 커버하는 것이다.

Bird eye view 크기에 따른 맵의 크기

 

- anchor box 설정

그래프를 사용하여 데이터 분석한 이유가 스마트한 anchor box 를 만들기 위함이다.

설정한 anchor box 에 따라 evaluation 단계에서의 MAP 가 크게 차이가 난다.

2D YOLO 와 달리 orientation 값 (방향, 각도)을 추가하여 줬고, 가장 많았던 -1.7, 0, 1.7로 설정해서 수직, 대각을 표현하였다.

실제 적용 (차는 잘 찾고 사람은 잘 찾지 못한다)

우리 데이터를 사용할때는 1218 X 1218 이 아닌, 408 X 408 정도로 조절하여, frame 속도를 높이고, 보행자 인식에도 성능을 높여보도록 하자.

MAP 를 이용한 평가