๐ก ๋ณธ ๋ฌธ์๋ 'Sensor Fusion in Self Driving Car(Camera, LiDAR)'์ ๋ํด ์ ๋ฆฌํด๋์ ๊ธ์ ๋๋ค.
์นด๋ฉ๋ผ๋ ์ ํธ๋ฑ์ ์์์ ๋ณผ ์ ์์ด Classification, Lane Detection์ ์ฌ์ฉ๋ฉ๋๋ค. LiDAR๋ SLAM(Simultaneous Localization And Mapping) ๋ฐ Depth Estimation(์: ๋ฌผ์ฒด์ ์ ํํ ๊ฑฐ๋ฆฌ ์ถ์ ) ์ ์ข์ต๋๋ค . ๋ง์ง๋ง์ผ๋ก RADAR ์๋ ๋ฌผ์ฒด์ ์๋๋ฅผ ์ธก์ ํ ์ ์์ต๋๋ค. ๋ณธ๋ฌธ์์๋ LiDAR์ RADAR์ ๋ฐ์ดํฐ๋ฅผ ํผํฉํ์ฌ ๋์ฑ ์ ๊ตํ ๋ฐ์ดํฐ๋ฅผ ์ป๋ Sensor Fusion์ ๋ํด์ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
Sensor Data & Fusion
์ธ์ ๋จ๊ณ์์๋ ํ๊ฒฝ์ ์ดํดํ๊ธฐ ์ํด LiDAR, RADAR ๋ฐ ์นด๋ฉ๋ผ์ ์กฐํฉ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋งค์ฐ ์ผ๋ฐ์ ์ ๋๋ค. ์ด 3๊ฐ์ง ์ผ์๋ ๋ชจ๋ ์ฅ๋จ์ ์ด ์์ผ๋ฉฐ ๋ชจ๋ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ์ฅ์ ์ ๋๋ฆด ์ ์์ต๋๋ค.
- Camara: ๋ฌผ์ฒด๋ฅผ ๋ถ๋ฅ ํ๊ณ ์ฅ๋ฉด์ ์ดํดํ๋ ๋ฐ ํ์ํฉ๋๋ค.
- LiDAR: Time-Of-Flight ์ผ์์ด๊ธฐ ๋๋ฌธ์ ๊ฑฐ๋ฆฌ๋ฅผ ์ถ์ ํ๋ ๋ฐ ํ์ํฉ๋๋ค .
- RADAR: ์ฅ์ ๋ฌผ์ ์๋๋ฅผ ์ง์ ์ธก์ ํ ์ ์์ต๋๋ค.
์ด ๊ธฐ์ฌ์์๋ LiDAR์ ์นด๋ฉ๋ผ๋ฅผ ์ตํฉํ์ฌ ์นด๋ฉ๋ผ์ ํด์๋, ์ปจํ ์คํธ๋ฅผ ์ดํดํ๊ณ ๊ฐ์ฒด๋ฅผ ๋ถ๋ฅํ๋ ๊ธฐ๋ฅ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ LiDAR ๊ธฐ์ ์ ํ์ฉํ์ฌ ๊ฑฐ๋ฆฌ๋ฅผ ์ถ์ ํ๊ณ 3D๋ก ์ธ์์ ๋ณด๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค.
Cameraโ—โA 2D Sensor
์นด๋ฉ๋ผ๋ ๊ฒฝ๊ณ ์์, ์ฐจ์ ์์น, ์ ํธ๋ฑ ์์, ๊ตํต ํ์งํ ๋ฐ ๊ธฐํ ์ฌ๋ฌ ๊ฐ์ง๋ฅผ ์ถ๋ ฅํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ ์๋ ค์ง ์ผ์์ ๋๋ค. ๋ชจ๋ ์์จ์ฃผํ์ฐจ์์ ์นด๋ฉ๋ผ๋ ์ ๋ ๋น ์ง ์ ์์ต๋๋ค.
์ด 2D ์ผ์๋ฅผ LiDAR์ ๊ฐ์ 3D ์ผ์์ ํจ๊ป ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์์๊น?
LiDAR —A 3D Sensor
LiDAR๋ Light Detection And Ranging์ ์ฝ์์ ๋๋ค. ํฌ์ธํธ ํด๋ผ์ฐ๋ ์ธํธ๋ฅผ ์ถ๋ ฅํ๋ 3D ์ผ์์ ๋๋ค. ๊ฐ๊ฐ์ (X,Y,Z) ์ขํ๋ฅผ ๊ฐ์ง๋๋ค. ๋ํ 3D ๋ฐ์ดํฐ์์ ๋ง์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ํํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ์คํ ์ค์ธ ๊ธฐ๊ณ ํ์ต ๋ชจ๋ธ๊ณผ ์ ๊ฒฝ๋ง์ด ํฌํจ๋ฉ๋๋ค. ๋ค์์ ์ถ๋ ฅ ์์ ๋๋ค.
์ด 3D ์ผ์๋ฅผ ์นด๋ฉ๋ผ์ ๊ฐ์ 2D ์ผ์์ ํจ๊ป ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
Sensor Fusion Algorithms
Sensor Fusion ์๊ณ ๋ฆฌ์ฆ์ ์๋นํ ๋ง์ผ๋ฉฐ, ์ด๋ฅผ ํฌ๊ฒ ๋ถ๋ฅํ๋ ๋ฐฉ๋ฒ์๋ ์ธ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
- By Abstraction Level - "When" is the fusion happening?
- By Centralization Level - "Where" is the fusion happening?
- By Competition Level - "What" is the fusion doing?
์์ธํ ๋ด์ฉ์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค .
" ๋ฌด์ "์ ๋ถ๋ช ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๊ฒฝ์๊ณผ ์ค๋ณต์ฑ์ ๋ชฉํ๋ก ์ผ๊ณ ์์ต๋๋ค. " ์ด๋์ "๋ ๋ณ๋ก ์ค์ํ์ง ์์ผ๋ฉฐ ๋ง์ ์๋ฃจ์ ์ด ๊ฐ๋ฅํฉ๋๋ค. " ๋ "๋ก ๋จ์ ์์ต๋๋ค...
"When"์ ๊ธฐ์ค์ผ๋ก Sensor Fusion์ ๋ถ๋ฅํ๋ฉด? ๋ ๊ฐ์ง ํ๋ก์ธ์ค๊ฐ ์์ต๋๋ค.
- Early fusion โ- ์์ ๋ฐ์ดํฐ(ํฝ์ ๋ฐ ํฌ์ธํธ ํด๋ผ์ฐ๋) ์ตํฉ.
- Late fusion โ- LiDAR ๋ฐ ์นด๋ฉ๋ผ์ bounding box ์ตํฉ.
Early Sensor Fusion - Fusing the Raw Data(low-level)
Early Sensor Fusion์ ์ผ์์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ตํฉํ๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์ผ์๊ฐ ์ฐ๊ฒฐ๋๋ ์ฆ์ ๋ฐ์ํฉ๋๋ค.
๊ฐ์ฅ ์ฝ๊ณ ์ผ๋ฐ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ LiDAR ํฌ์ธํธ ํด๋ผ์ฐ๋(3D)๋ฅผ 2D ์ด๋ฏธ์ง์ ํฌ์ํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํฌ์ธํธ ํด๋ผ์ฐ๋๊ฐ ์นด๋ฉ๋ผ๋ก ๊ฐ์ง๋ 2D ๊ฒฝ๊ณ ์์์ ์ํ๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค.
1. Point Cloud Projection in 2D
์ฒซ ๋ฒ์งธ ์์ด๋์ด๋ LiDAR ํ๋ ์์ 3D ํฌ์ธํธ ํด๋ผ์ฐ๋์์ ์นด๋ฉ๋ผ ํ๋ ์์ 2D ํ๋ก์ ์ ์ผ๋ก ๋ณํํ๋ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ์ํด ๋ค์๊ณผ ๊ฐ์ ๊ธฐํํ์ ์๋ฆฌ๋ฅผ ์ ์ฉํฉ๋๋ค(์ ๋ ฅ ํฌ์ธํธ ํด๋ผ์ฐ๋๋ LiDAR ํ๋ ์/์ ํด๋ฆฌ๋ ์ขํ์ ์์ต๋๋ค.)
๊ฐ 3D LiDAR ์ ์ ๋์ฐจ ์ขํ ๋ก ๋ณํํฉ๋๋ค .
๋ณํ๋ ์ ์ ํฌ์ ๋ฐฉ์ ์ (๋ณํ ๋ฐ ํ์ )์ ์ ์ฉํ์ฌ ์ด ์ ์ liDAR ํ๋ ์์์ ์นด๋ฉ๋ผ ํ๋ ์์ผ๋ก ๋ณํํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ์ ์ ๋ค์ ์ ํด๋ฆฌ๋ ์ขํ๋ก ๋ณํํฉ๋๋ค.
1๋จ๊ณ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
2. Object Detection in 2D
๋ค์ ๋ถ๋ถ์ ์นด๋ฉ๋ผ๋ก ๋ฌผ์ฒด๋ฅผ ๊ฐ์งํ๋ ๊ฒ์ ๋๋ค. YOLOv4์ ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ด ๊ฐ์ฒด ๊ฐ์ง๋ฅผ ์ํํ ์ ์์ผ๋ฏ๋ก ํด๋น ๋ถ๋ถ์ ๋ํด ๋๋ฌด ์์ธํ ์ค๋ช ํ์ง ์๊ฒ ์ต๋๋ค. ์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ด YOLOv4 ์ฐ๊ตฌ ๋ฆฌ๋ทฐ๋ฅผ ์ฝ์ ์ ์์ต๋๋ค .
3. ROI Matching
๋ง์ง๋ง ๋ถ๋ถ์ Region of Interest(ROI)๋ผ๊ณ ํฉ๋๋ค. ๊ฐ ๊ฒฝ๊ณ ์์ ๋ด๋ถ์ ๋ฐ์ดํฐ๋ฅผ ์ตํฉํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
- ๊ฐ ๊ฒฝ๊ณ ์์์ ๋ํด ์นด๋ฉ๋ผ๋ classification๋ฅผ ์ ๊ณต
- ๊ฐ LiDAR ํฌ์ ์ง์ ์ ๋ํด ๋งค์ฐ ์ ํํ ๊ฑฐ๋ฆฌ๊ฐ ์์ต๋๋ค.
์ฌ๊ธฐ์ ํ ๊ฐ์ง ์ง๋ฌธ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ ์ง์ ์ ๊ฑฐ๋ฆฌ๋ก ์ ํํด์ผ ํ ๊น์?
- ๋ชจ๋ ํฌ์ธํธ์ ํ๊ท ๊ฐ?
- ์ค์๊ฐ?
- ์ค์ฌ์ ?
- ๊ฐ์ฅ ๊ฐ๊น์ด?
์ ํํ ์ ์ด ๋ค๋ฅธ ๊ฒฝ๊ณ ์์์ ์ํ๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น? ์๋๋ฉด ๋ฐฐ๊ฒฝ์ผ๋ก? ์ด๊ฒ์ ๊น๋ค๋ก์ด ๊ณผ์ ์ ๋๋ค. 2D ์ฅ์ ๋ฌผ ๊ฐ์ง๋ฅผ ์ฌ์ฉํ ๋ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ฐ๋ผ์ ํฌ์ธํธ๋ฅผ ํฝ์ ๊ณผ ์ ํํ ์ผ์น์ํค๋ฏ๋ก ์ธ๋ถํ ๋ฐฉ์์ด ๋ ๋์ ์ ์์ต๋๋ค.
Late Sensor Fusion - Fusing the Results
Late Sensor Fusion์ ๋ ๋ฆฝ์ ์ธ ํ์ง ํ ๊ฒฐ๊ณผ๋ฅผ ์ตํฉํ๋ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์๊ฐํ ์ ์๋ ํ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ ๋ ๋ฆฝ์ ์ธ ํ์ง๋ฅผ ์คํํ๊ณ ์์ชฝ ๋์ 3D ๊ฒฝ๊ณ ์์๋ฅผ ๊ฐ์ ธ์ ๊ฒฐ๊ณผ๋ฅผ ์ตํฉํ๋ ๊ฒ์ ๋๋ค.
๋ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ๋ ๋ฆฝ์ ์ธ ํ์ง๋ฅผ ์คํํ๊ณ ์์ชฝ ๋์์ 2D ๊ฒฝ๊ณ ์์๋ฅผ ์ป์ ๋ค์ ๊ฒฐ๊ณผ๋ฅผ ์ตํฉํ๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ์๊ฒ๋ ๋ ๊ฐ์ง ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. 2D ๋๋ 3D์์ ํจ์ ์ ์ํํฉ๋๋ค.
1. 3D Obstacle Detection (LiDAR)
LiDAR๋ฅผ ์ด์ฉํ์ฌ 3์ฐจ์์์ ์ฅ์ ๋ฌผ์ ์ฐพ๋ ๊ณผ์ ์ ์ ์๋ ค์ ธ ์๋ค. ๋ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ด ์์ต๋๋ค.
- Naive approaches, using unsupervised 3D Machine Learning
- Deep Learning approaches, using algorithms such as RANDLA-NET
2. 3D Obstacle Detection (Camera)
์ด ํ๋ก์ธ์ค๋ ํนํ monocular camera๋ฅผ ์ฌ์ฉํ ๋ ํจ์ฌ ๋ ์ด๋ ต์ต๋๋ค. 3D์์ ์ฅ์ ๋ฌผ์ ์ฐพ์ผ๋ ค๋ฉด ํ๋ก์ ์ ๊ฐ(intrinsic and extrinsic calibration)์ ์ ํํ ์๊ณ ๋ฅ ๋ฌ๋์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ฌ๋ฐ๋ฅธ ๊ฒฝ๊ณ ์์๋ฅผ ์ป์ผ๋ ค๋ฉด ์ฐจ๋์ ํฌ๊ธฐ์ ๋ฐฉํฅ์ ์๋ ๊ฒ๋ ์ค์ํฉ๋๋ค. ๊ด๋ จ ๋ด์ฉ์ ๋ํด ๊ถ๊ธํ๋ค๋ฉด '3D Bounding Box Estimation Using Deep Learning and Geometry'๋ฅผ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
3. IOU Matching: ๊ณต๊ฐ์์ IOU ๋งค์นญ(mid-level sensor fusion)
CAMERA์ LiDAR๋ฅผ Matchingํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ฉฐ, ๊ฒฝ๊ณ ์์๊ฐ 2D ๋๋ 3D์์ ๊ฒน์น๋ฉด ํด๋น ์ฅ์ ๋ฌผ์ด ๋์ผํ ๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
๋ค์์ 3D Iou-Net(2020) ๋ ผ๋ฌธ์์ ๊ฐ์ ธ์จ ์์ ๋๋ค.
์ด ์์ด๋์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๋ฆฌ๋ ๊ณต๊ฐ์ ์๋ ๋ฌผ์ฒด๋ฅผ ์ฐ๊ฒฐํ ์ ์์ผ๋ฏ๋ก ์๋ก ๋ค๋ฅธ ์ผ์ ๊ฐ์ ์ฐ๊ฒฐ์ ์ํํ ์ ์์ต๋๋ค.
์์ IOU Matching ๋ฐฉ๋ฒ์ Mid-level Sensor Fusion์ ํด๋นํ๋ฉฐ, High level Sensor Fusion์ Mid-level Sensor Fusion์ ์ถ์ ์ด ํฌํจํฉ๋๋ค. ์ถ๊ฐ๋ก, Time Tracking์ ์ถ๊ฐํ๋ ค๋ฉด Time Association์ด๋ผ๋ ๊ณผ์ ์ด ํ์ํฉ๋๋ค.
IOU Matching in Time
Kalman Filter์ Hungarian algorithm์ ์ฌ์ฉํ์ฌ ํ๋ ์์์ ํ๋ ์์ผ๋ก ๊ฐ์ฒด๋ฅผ ์๊ฐ์ Associationํ์ฌ, ํ๋ ์ ์ฌ์ด์ ๊ฐ์ฒด๋ฅผ ์ถ์ ํ๊ณ ๋ค์ ์์น๋ฅผ ์์ธกํ ์๋ ์์ต๋๋ค.
IOU ๋งค์นญ์ ์๋ฆฌ๋ ํ๋ ์ 1์์ ํ๋ ์ 2๊น์ง์ ๊ฒฝ๊ณ ์์๊ฐ ๊ฒน์น๋ ๊ฒฝ์ฐ ์ด ์ฅ์ ๋ฌผ์ ๋์ผํ ๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
์ฌ๊ธฐ์์๋ ๊ฒฝ๊ณ ์์ ์์น๋ฅผ ์ถ์ ํ๊ณ IOU(Intersection Over Union)๋ฅผ ๋ฉํธ๋ฆญ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ๊ฒฝ๊ณ ์์์ ๊ฐ์ฒด๊ฐ ๋์ผํ์ง ํ์ธํ๊ธฐ ์ํด Deep Convolutional ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ์ด ํ๋ก์ธ์ค๋ฅผ SORT(Simple Online Realtime Tracking) ๋๋ Convolutional ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Deep SORT๋ผ๊ณ ํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๊ณต๊ฐ๊ณผ ์๊ฐ์ ์๋ ๋ฌผ์ฒด๋ฅผ ์ถ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ ํํ ๋์ผํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ์ด ์ ๊ทผ ๋ฐฉ์์์ ๋์ ์์ค์ ์ผ์ ์ตํฉ์ ์ํํ ์๋ ์์ต๋๋ค.
Conclusion
์ผ์ ์ตํฉ ํ๋ก์ธ์ค๋ ์๋ก ๋ค๋ฅธ ์ผ์(์ฌ๊ธฐ์๋ LiDAR์ ์นด๋ฉ๋ผ)์ ๋ฐ์ดํฐ๋ฅผ ์ตํฉํ๋ ๊ฒ์ด๋ฉฐ, LiDAR์ ์นด๋ฉ๋ผ Fusion ์์ ์ ๋ฐ๋ผ ๋ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ด ์์ต๋๋ค.
- Early fusion (low-level): ์์ ๋ฐ์ดํฐ๋ฅผ ์ตํฉํ๋ ๊ฒ
- ํฌ์ธํธ ํด๋ผ์ฐ๋์ ํฝ์ ๋๋ ์์ ๊ฐ์ ์ฐ๊ด์ฑ
- Late fusion : ๋ฌผ์ฒด๋ฅผ ์ตํฉํ๋ ๊ฒ(mid-level) or ๊ถค๋๋ฅผ ์ตํฉํ๋ ๊ฒ(high-level)
- bounding box ๊ฐ์ ์ฐ๊ฒฐ์ ์ํํ๊ณ ํ๊ฐ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ ๋ฐ Kalman ํํฐ์ ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉ
์ฐธ๊ณ
- [Blog] LiDAR and Camera Sensor Fusion in Self-Driving Cars: https://www.thinkautonomous.ai/blog/lidar-and-camera-sensor-fusion-in-self-driving-cars/
- [Blog] Sensor Fusion - LiDARs & RADARs in Self-Driving Cars: https://www.thinkautonomous.ai/blog/sensor-fusion/
- [Blog] 9 Types of Sensor Fusion Algorithms: https://www.thinkautonomous.ai/blog/9-types-of-sensor-fusion-algorithms/
'Study: Artificial Intelligence(AI)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Vision] OpenCV ์์ค ๋น๋ํ์ง ์๊ณ ์ค์นํ๊ธฐ (apt install) (0) | 2023.05.04 |
---|---|
[Fusion] Sensor Fusion in Self Driving Car(LiDAR, RADAR): feat. Kalman Filter (0) | 2023.03.23 |
[Vision] RADAR ๋ ์ด๋ ์ผ์์ ๊ตฌ๋๋ฐฉ์ ๋ฐ ํน์ง (0) | 2023.03.21 |
[Vision] LiDAR ๋ผ์ด๋ค ์ผ์์ ๊ตฌ๋๋ฐฉ์ ๋ฐ ํน์ง (1) | 2023.03.20 |
[Vision] Visual SLAM vs Visual-Inertial Odometry(VIO) (0) | 2023.03.19 |