일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 코멘토
- 5월종합소득세
- 42seoul
- extrinsic
- superresolution
- 편광카메라
- point grey
- 머신비전
- FLIR
- 동시취득
- ouster
- pseudo LiDAR
- miniRT
- AOLP
- 42seoul #printf
- 직무부트캠프
- LIDAR
- 객체인식
- spinnaker
- 의사 라이다
- ft_server
- 라이다
- intrinsic
- 삼쩜삼
- 3d object recognition
- Python
- 코멘토 후기
- 카메라
- 논문리뷰
- stereo image
- Today
- Total
문무겸비
[논문리뷰] 카메라로 라이다를 만들 수 있다고? "Pseudo-LiDAR from Visual Depth Estimation: Bridging the Gap in 3D Object Detection for Autonomous Driving" 본문
[논문리뷰] 카메라로 라이다를 만들 수 있다고? "Pseudo-LiDAR from Visual Depth Estimation: Bridging the Gap in 3D Object Detection for Autonomous Driving"
세월의 잔잔한 느낌 2021. 5. 19. 13:53이 논문은 핵심 내용은 stereo camera로 pseudo-LiDAR를 만드는 겁니다.
('의사 라이다' 로 번역되는데, 쉽게 말해 가짜 라이다, '라이다 흉내내기' 정도로 생각하시면 됩니다.)
pseudo-LiDAR로 객체인식을 해보니 비싸고 고장 잘나는 LiDAR 성능의 60 ~ 70%정도는 나온다~ 라는게 논문 결론입니다. 이전에는 steroe-camera 객체인식 효율이 LiDAR(이하 라이다)에 비할바가 못됐습니다. 몇년 전부터 수많은 자율주행 솔루션들이 필히 라이다를 포함했던 이유가 있었단 말이죠. (물론 테슬라는 빼고요. 얘네들은 무슨 배짱인지 저는 잘 모르겠습니다 사실)
하지만 이렇게 카메라만으로 어느정도 성과를 냈으니, 정말 라이다를 빼고서 레벨3 주행을 배포할 수 있을지 지켜볼만하다는 생각이 듭니다.
그럼 논문을 한번 살펴보겠습니다. 첫 논문리뷰이기도 하고, 저도 공부하는 입장으로써 단어정리나 처음보는 개념들을 정리하는 부분이 중간중간 삽입되어있습니다. 글이 루즈해질것 같지만 너그러히 읽어주시길 😁😁😁😁😁
먼저 라이다에 대해 간단히 개념 정리를 하고 넘어가겠습니다. 쉽게 말해 레이저를 쏴서, 돌아오는데 시간이 얼마나 걸리냐~ 로 빛을 쏜 방향에 물체가 있는지 없는지, 얼마나 멀리 떨어져 있는지 계산해낼 수 있습니다. TOF(time of flight)방식이죠.
라이다는 꽤 대단한 녀석이어서, 돈만 많이 준다면 아래 그림처럼 물체의 모양, 거리를 훌륭하게 파악해줍니다. 물론 객체인식 알고리즘은 따로 적용해야겠지만요.
라이다의 최대 단점은 가격입니다. 쓸만한건 몇천만원에 달하니, 차 지붕에 소나타 하나를 얹고 다닌다는걸 자동차 업체나 소비자나 받아들일 수가 없죠.
논문은 18년에 처음 나왔고, 연구는 그 이전에 시작했을테니 상황이 저랬을 겁니다. 21년 현재는 라이다 가격이 대폭 낮아졌죠. 하지만 여전히 전방위 객체 인식에 라이다 적용하기에는 가격 부담이 많이 된다고 봅니다. 더군다나, 테슬라는 라이다를 쓰지 않겠다고 공언했죠. 앞으로도 논문에서 제시된것 처럼 카메라를 이용한 전방위 객체인식 및 거리인식 기술은 계속 쓰이고 발전해나갈 것 같습니다.
그럼 지금부터 논문 정리를 한번 해보겠습니다. 논문 내용은 정자로, 제 사견은 이탤릭체로 표시했습니다
Abstract
카메라와 라이다 기반 3d 객체인식간 성능차이가 큰 이유는 깊이추정 기법이 뒤떨어지기 때문이라고 알려져있다.
본 논문에서는 데이터의 품질이 중요한 게 아니라 representation이 중요하다는 것을 보여줄것이다 (representation = 데이터 표현 방식)
CNN의 원리를 고려하여, depth map을 Pseudo LiDAR로 representation을 바꾸어 실험해보았다
KITTI 데이터셋으로 검증했고, 논문 제출할때에는 우리가 1등이었다.
INTRO
라이다는 비싸고, 비쌈에도 불구하고 사용한다 손 치더라도 라이다만 사용하는건 돌발상황에 대응하기 어렵다.
논문이 쓰여질 시점에, KITTI 데이터 셋에서 가장 AP(평균 정밀도)가 높은 알고리즘은 라이다만 쓴 경우 66%, 라이다 카메라 같이 쓴 경우 73%였다. 반면 이미지만을 이용한 경우 10%에 불과하다.
현재 3D 객체 인식(2D + 거리)에 있어서 가장 좋은 효율이 좋은 모델은 라이다 + 카메라로 알려져 있습니다. 라이다와 카메라간 캘리브레이션을 통해 시점을 공유하고, 카메라로는 객체를 보고 라이다로는 거리를 인식하고 또는 상호보완하는 방법으로 연구가 활발히 이루어지고 있습니다. (정확한 표현은 아니지만 저는 각자의 역할을 이 정도로 생각해봤습니다 오류라면 지적 부탁요)
First. Performance gap between stereo and Lidar is not the quality of the estimated depth but representation
스테레오 카메라와 라이다간 성능 차이는 데이터의 품질,종류의 차이가 아니라 표현하는 방식에서 기인한다(의역)
꽤 충격적인 말인데요, 스테레오 카메라로 정확성을 높힐려면 카메라 성능이 좋아야 한다거나, 좀 더 우수한 딥러닝 모델을 만들어야 한다고 생각하는게 일반적이겠지만, 저자는 완전히 새로운 방향을 제시합니다. 바로
스테레오 카메라로 만들어진 depth map을, point cloud(pseudo LiDAR)로 치환하여 point cloud 용 객체인식 알고리즘을 써버린 겁니다. 즉 성능이 중요한게 아니라 표현 방법, representation을 바꿈으로써 성능 향상을 꾀할 수 있었다고 말합니다. (맞나? representation 번역이 잘 안되는데 잘 아시는 분은 댓글로..)
point cloud란 라이다같은 3D 인식 장비에서, 물체의 모양을 구름같은 점으로 표현한다고 해서 점구름(point cloud)이라고 합니다.
위와 같은 방법을 이용해
data set | KITTI benchmark |
IOU | 0.7 |
난이도 | moderately hard |
object | car |
AP | 45.3% |
45.3% AP_3D를 달성, 기존 것보다 350% 향상된 걸 보여주었다.(기존에는 약 10%)
==========================================================================
라이다의 경우 레이저를 쏴 TOF방식의 거리측정이 가능합니다. 하지만 스테레오 카메라로는 어떻게? 거리를 알아내서 depth map을 만드는게 가능할까요?
Disparity estimation
카메라 두 개로 같은 방향을 본다면, 거의 비슷한 풍경이 보이겠지만 조금씩 차이가 있을겁니다.
오른쪽 카메라로는 좀더 오른쪽 면을 볼테고, 왼쪽 카메라는 그 반대구요.
만약 멀리있는 객체라면, 왼쪽 오른쪽 시점이 거의 차이가 없을테지만, 가까이 있는 객체는 왼쪽 오른쪽 시점에서 차이가 많이 날겁니다. 따라서 이런 차이를 계산하여 객체들의 거리를 추정하는 과정을 disparity estimation이라고 합니다.
==========================================================================
Related work
Lidar based 3D object detection model | |
Frustum Point net | F-PointNet (Mono + LiDAR) |
MV3D | (Mono + LiDAR) |
VoxelNet | |
UberATG-ContFuse | |
AVOD | (Mono + LiDAR) |
Camera based depth estimation model | |
DORN | Mono camera |
PSMNet | Stereo camera |
*Image based 3D object detection | |
MONO 3D | Mono camera |
MLF-MONO, MLF-STEREO | Mono, Stereo camera |
3DOP | Stereo camera |
*Stereo나 mono camera image를 이용해 객체인식과 객체의 위치를 추정하는 연구이다. 후술하겠지만, 이미지 기반 3D 객체인식은 별로 좋은 성능을 내지 못하고 있다.
실제 논문에서는 Related work말고 다른 파트에서 언급한 모델도 있다. 그렇지만 좀 더 잘 정리하기 위해서 논문에서 언급된 모델들을 related work에 요약하겠다.
Approach
depth estimation은 충분한 기술발전이 이루어졌다.
아래와 같은 방식으로 실험을 진행한다.
- Stereo image와 PSMNet을 이용해 Depth map을 만든다. Depth map을 pixel에 back projecting해서 3D point cloud 만들어 버린다.
- point cloud 기반 객체인식 알고리즘 적용할것이다[AVOD, F-PointNet]
(3D point를 2D에 차원축소해서 projecting하는게 일반적인데, 반대로 2D 데이터를 3D에 대입하는 것이므로 back projecting)
의사 라이다를 만들기 위해 몇가지 전처리가 필요하다.
- fictitious 라이다 소스의 1m 위에 있는건 다 지운다(이미지로 만든 point cloud 중에서 1m 위에있는건 제외하겠다는 뜻. 실제로 라이다의 상하 범위는 크게 넓지 않기 때문이다.)
- 모든 포인트의 반사도는 1.0으로 설정한다. (point cloud는 xyz 위치 정보 뿐 아니라 intensity(반사도) 정보도 포함하고 있는데, 이걸 추정하기는 어려우므로 임의로 1로 설정해서 진행하겠다는 뜻.)
기존 이미지와, pseudo-lidar를 합쳐서 쓸 수 있으므로(어차피 카메라로 둘 다해결하는거니까) 기존 이미지+라이다를 용합한 3D 객체 인식 알고리즘을 적용해보겠다. [AVOD, frustum Pointnet]
Although pseudo-LiDAR conveys the same information as a depth map, we claim that it is much better suited for 3D object detection pipelines that are based on deep convolutional networks
Depth map과 pseudo-LiDAR는 똑같은 정보를 가지고 있지만, 3D 객체인식 딥러닝에서는 pseudo-LiDAR가 훨씬 유리하다.
왜냐하면, Depth map으로 처리를 할 경우, CNN을 사용하게 될텐데 CNN의 기본 가정은 다음과 같다
- Local neighborhood는 의미 있는 정보이다.
- 모든 neighborhoods는 동일한 방법으로 operate 될 수 있다 (local neighborhood가 뭔지 잘 모르겠습니다... 이웃하는, 혹은 근접한 픽셀의 집합이라고 이해했습니다.)
그러나 오브젝트끼리 가로질러있는 경우나 오브젝트들이 여러 거리에서 다른 크기로 보여질 경우 위 가정이 맞다고 장담할 수 없다.
따라서 위와 같은 이유로 인해 depth map에서 3d 객체인식을 하려는 시도들은 좋은 성능을 내지 못했으리라고 유추할 수 있다.
Experiments
Dataset
KITTI 객체인식 benchmark
7481 train image
7518 test image
그리고 이에 대응하는 Velodyne LiDAR point cloud.
Metric
3D랑 BEV(bird's eye view)
CAR
AP(average Precision)으로 평가
IOU = 0.5 and 0.7에서 평가
Experimental results
(파란건 pseudo-LiDAR, 회색은 real LiDAR) 표 안의 내용은 {AP_BEV / AP_3D [%]} 를 의미
IOU = 0.7
난이도 = moderate(중간)
object = car
model = AVOD
에서 Psedo-LiDAR의 성능은 real LiDAR의 65%(AP_BEV), 61%(AP_3D) 이다
해석) LiDAR와 camera를 융합한 객체인식 모델이 최고긴 하지만, pseudo-LiDAR도 이미지 기반보다는 훨씬 나은 성능을 보여주고 있다.
1. Easy 보다는 Hard에서 격차가 많이 벌어지는 모습이다.
2. IOU = 0.5 보다는 IOU = 0.7에서 격차가 많이 벌어지는 모습이다.
depth estimation이 부정확하기 때문에 생겨나는 문제로 여겨지며, 이미지 픽셀이 0.4 mega pixel (= 720 * 480) 이기 때문이다. 화질을 높여보면 거리 추정이 좀 더 정확해질것이다.
DORN(단일 이미지)에 열 배나 많은 이미지를 학습시켰지만 PSMNet(스테레오 이미지)이 압도적인 효율을 보여준다. Stereo 기반으로 연구해야하는것이 더 효과적일 것임을 시사한다.
Pseudo LiDAR나 MLF-stereo나 픽셀을 3D 좌표에 back projection하는 건 같다.
그러나, MLF는 픽셀의 3D 좌표 위치를 frontal view에서 각 픽셀의 추가적인 특징점으로 해석하고, RGB 값이랑 비슷하게 취급하여 faster RCNN에 적용해버린다. 하지만 앞서 말했듯이 CNN의 특징은 3D 객체인식을 하기에 미흡한 부분이 있다.
(Frontal이 대체 뭘 의미하는거지…?)
해석)pseudo_LiDAR 만드는건 PSMNet*이 최고다.
(F-PointNet이 성능이 떨어지는 이유는) AVOD는 복셀화를 하고, F-PointNet은 바로 처리를 하기 때문에, 노이즈의 영향을 받는 게 이유일 것이다.
다만 난이도나 IOU 기준에 따라 F-PointNet이 더 좋은 성능을 보여주는 경우도 있으나, IOU = 0.7, 난이도 moderate 가 모델 성능 평가 기준인듯하다.
자전거랑 보행자(pedestrian)에 대해서도 검증 결과를 냈다. IoU 0.5임에도 불구하고 car & IoU 0.7보다도 성능이 떨어지는데, 자동차보다 크기가 훨씬 작기 때문에 검출하기 어렵기 때문이다.
결과
라이다가 역시 좋지만, Pseudo-LiDAR도 꽤 좋은 성능을 보여준다. Front-View 방식은 별로다.
Discussion and Conclusion
저자는 future work로써,
- 높은 해상도로 업그레이드
- 실시간 (논문에서의 실험은 실시간은 아니었음. 아마 될테지만 실제로 해봐야 확실하다~ 는 늬앙스)
- 마지막으로, LiDAR와 pseudo-LiDAR와의 융합을 제시한다.
Pseudo-LiDAR는 LiDAR에 비해 촘촘한 데이터를 얻을 수 있다는 장점이 있다.
Image-based 3D obgect recognition이 그 동안 등한시 되었왔는데 (아마도 라이다 때문에?) 이 연구가 다시 이미지 기반 3D 연구의 부흥에 도움이 되면 좋겠다고 말하면서 논문 끝
===========================================================================
사견
현재 KITTI 3D object benchmark 순위를 보면 논문의 저자인 Y. Wang은 순위는 많이 내려가 있다.
여러가지 모델을 순위권안에 올려놓긴 했지만, 글쎄 이런걸 보면 기술발전이 참 빠른것 같기도 하다. 분명 논문 쓸때는 1위도 해봤다지만 지금은 100위 안에 올려놓은 모델이 없다.
Pseudo-LiDAR++은 아마도 real LiDAR와 Pseudo LiDAR를 합쳐놓은, 그러니까 future work로써 3에 언급한 융합을 시도한 논문으로 보인다. 빨간박스 처놓은 부분이 stereo image를 썼다, 라이다를 썼다는 의미의 아이콘이다. 라이다, 의사 라이다 썼는데 왜 여깄지? ㅋㅋㅋㅋ
현재 순위권 중 연구 결과를 논문으로 내놓은 모델은 SE-SSD가 있다. 시간나면 한번 읽어봐야지.. 저건 라이다만 썼더라.
논문을 읽으면서 너무 많은 딥러닝 모델들이 언급되어서 당혹스러웠다 뭐이리 많지?
마치 17, 18세기에 수많은 종류들의 발명품들이 개발되었던 시기가 연상된다. 아마 현 시대는 AI의 과도기로써 역사에 남지 않을까. 미래에는 가장 효율적이라고 증명된 모델들 몇몇만 남을것이라고 생각된다.
이런 의사 라이다의 미래는 어떨까. 도태될까 아니면 인간에 필적할 정도로 발전될까?
개인적인 의견으론, 인간이 가능한 부분이라면 기계도 따라잡을 잠재력이 있다고 본다.
우리는 사진 한장만 가지고도 원근을 짐작할 수 있다.
두장이면 식은죽 먹기다. VR 기기의 원리가 사실 stereo image 방식이다. VR 기기를 꼈을때 거리 감각을 충분히 얻을 수 있으므로 기계도 열심히 발전하면 가능할것이다.
다음 포스팅은 위와 같은 딥러닝 과정을 직접 한번 해보는 내용으로 올릴것 같다. 이미 지금 해본 결과가 있긴 한데 사실 실패 기록이라서ㅋㅋㅋ
아무튼 긴글 읽어주셔서 감사합니다.
'개인공부' 카테고리의 다른 글
super reolution 프로젝트 따라하기, Simulation-based Lidar Super-resolution for Ground Vehicles 리뷰 (0) | 2022.05.31 |
---|---|
PCD 파일 data type converter (0) | 2021.09.08 |
velodyne LiDAR puck 패킷 분석 및 viewer 프로그래밍 (2) | 2021.09.03 |
코멘토 sw개발 실무 직무부트캠프 후기 (0) | 2021.04.07 |
자동차 업계 직무 면접 준비 (0) | 2021.02.27 |