제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [AutoCar죠] : 자율주행 로봇 층간 이동을 위한 인지 기능 구현
21 de Feb de 2023•0 gostou
0 gostaram
Seja o primeiro a gostar disto
mostrar mais
•56 visualizações
visualizações
Vistos totais
0
No Slideshare
0
De incorporações
0
Número de incorporações
0
Baixar para ler offline
Denunciar
Dados e análise
데이터 분석 프로젝트를 진행한 AutoCar죠 팀에서는 아래와 같은 프로젝트를 진행했습니다.
자율주행 로봇 층간 이동을 위한 인지 기능 구현
18기 강용구 세종대학교 무인이동체공학과
18기 전효진 건국대학교 응용통계학과
18기 백채은 숙명여자대학교 컴퓨터과학전공
18기 이가은 가천대학교 의용생체공학과
18기 이소연 이화여자대학교 일반대학원 통계학과
01
chapter
X
실내 자율 주행 로봇이 층간 이동을 더 자유롭게 할 수 있다면?
자율주행차량이 엘리베이터 내부의 장애물과 충돌 없이
탑승하고 하차 할 수 있는 기술 구현
과제 선정 배경 & 목표 5
Fig 4. 인천공항 길안내 로봇 Fig 5. 청소 로봇
01
chapter
X
특히, 이 과정에서 라이다 센서와 카메라 센서 데이터에
딥러닝 모델을 적용하여 객체 인식을 하는 것을 핵심 목표로 함
“ ”
과제 선정 배경 & 목표
실내 자율 주행 로봇이 엘리베이터를 이용하기 위해 필요한 두 가지 기술
1. 자율 주행 로봇이 원하는 층을 자유롭게 이동하기 위해서
로봇과 엘리베이터 시스템과의 통신 필요
2. 자율 주행 로봇이 엘리베이터에 탑승하고 하차 할 수 있는 상황인지 판단하고
로봇의 안전한 경로를 계획하고 추종할 수 있는 기술 필요
6
02
chapter
X
▶ 사용한 Tools
LiDAR Deep Learning | 프로젝트 구축 환경
구분 상세내용
S/W
개발 환경
OS
MacOS
Window 11
개발환경(IDE) Visual Studio Code, Google Colab
개발도구 Pytorch & MATLAB
개발언어 python3
H/W
구성 장비
디바이스 SCOUT-MINI
센서 Intel Real Sense D435 Camera, 3D LiDAR OUSTER-OS1
통신 CAN Protocol
프로젝트
관리 환경
형상관리 Github
의사소통관리 Notion, Discord
기타사항 파일관리 Google Drive
SCOUT-MINI
3D LiDAR
OUSTER-OS1
CAN Protocol
Intel Real Sense
D435 Camera
8
02
chapter
X
LiDAR Deep Learning | 자율 주행에서 LiDAR를 사용하는 이유
ᆞ 빛, 그림자, 날씨 등 주변 환경의 변화에 민감
ᆞ 차량의 깊이 정보, 차량과 물체와의 거리, 차량의 지향 각을 정확히 알 수 없음
▶ 카메라 센서만 사용할 경우
색상 정보
센서 사이즈
센서 비용
밝기 변화
분해능
거리 정보
Camera
9
안개 낀 날씨 차량과 물체와의 거리
Fig 6. Fig 7.
02
chapter
X
LiDAR Deep Learning | 자율 주행에서 LiDAR를 사용하는 이유
밝기 변화에 강하며 3D 포인트 클라우드 데이터는 정확한 3차원 구조의 거리 정보를 제공
센서들의 장단점을 보완하여 높은 정확도를 얻을 수 있음
▶ 자율 주행에서 LiDAR를 사용하는 이유
색상 정보
센서 사이즈
센서 비용
밝기 변화
분해능
거리 정보
Camera
색상 정보
센서 사이즈
센서 비용
밝기 변화
분해능
거리 정보
LiDAR
10
02
chapter
X
LiDAR Deep Learning | 자율 주행에서의 딥러닝 연구
⇨ point cloud 데이터의 point 정보를 직접 이용하여 물체를 인지
⇨ 3D point cloud 를 2차원 영역으로 투영, 변환하여 2차원 영상을 만들고 CNN 네트워크에 적용하여 물체 검출
▶ 자율 주행에서의 딥러닝 연구
고정된 encoder를 이용하는게 아닌 feature를 학습해 모든 point cloud 정보를 활용
PointPillars
3D data인 point data를 Classification, Segmentation 하기 위한 모델
PointNet
11
Fig 8. PointPillars
Fig 9. PointNets
Frustum PointNets
03
chapter
X
카메라 이미지를 통해 2D Detection 수행 후, Depth 이미지와 Bounding box 정보를 통해
Point Cloud에서 객체의 Frustum(절두체)를 추출
▶ Frustum PointNets
* 절두체 ( = 원뿔이나 피라미드 모양에서 꼭대기를 자른 모양 )
Frustum PointNet는 2D 이미지에서 detection과 classification을 한 후,
절두체 내부의 point cloud에 PointNet을 적용하여 객체를 직육면체의 형태로 표시하는 Cuboid를 추정
13
Frustum PointNets | Modules
03
chapter
X
Frustum Proposal
3D Instance
Segmentation
Amodal 3D Box
Estimation
RGB-D 데이터로부터 frustum point clouds를 추출
PointNet 기반 네트워크를 사용해, 3D point cloud 에서 instance segmentation 수행
보이지 않는 뒷부분까지 포함할 수 있는 3D box 추정
14
Frustum PointNets | Loss
03
chapter
X
corner loss
실제 box와 예측된 box의 8개의 corner 사이의 거리들의 합
corner 위치가 중심, 사이즈, 방향과 함께 결정
anchor box들은 추정된 상자 중심으로 변환
뒤집힌 정답 box로 부터 corner 까지의 거리를 계산하여 loss 추정
방향 각도가 없다면, 정답과의 3차원 IOU는 각도 오류 영향
⇨ 중심, 사이즈, 방향의 세가지 수식이 최적의 3D box estimation을 위해서 모두 같이 최적화
▶ Frustum PointNets
15
𝑃𝑘
𝑖𝑗
데이터 수집 및 전처리
03
chapter
X
주제
주제
Camera & LiDAR Calibration
∘ 시간 동기화 : 수집 시간을 일치
∘ 공간 동기화 : 카메라 센서와 라이다 센서의 좌표를 일치
두 센서의 데이터를 융합하여
객체를 정확하게 식별 !
센서의 좌표계를 동일한 좌표계로
설정하는 것이 필수
16
Fig 10. 체커보드
데이터 수집 및 전처리
03
chapter
X
주제
주제
Camera & LiDAR Calibration
센서 내부 보정과 외부 보정으로 먼저 카메라 보정을 통해 카메라 내부 파라미터
라이다 제조 업체에서 제공한 라이다 내부 파라미터
체커보드 판
17
데이터 수집 및 전처리
03
chapter
X
주제
주제
Camera & LiDAR Calibration
∘ 두 내부 파라미터와 함께 사각형 하나에 80mm 크기의 체커보드 판을 사용
∘ 카메라 라이다 외부 파라미터를 계산 해 외부 보정을 수행하여 동기화
18
03
chapter
X
Frustum PointNets 구현 과정 | 데이터
Train : 374개
Test : 30개
• Frustum PointNetv1 old 속도 : 0.009s
• Yolov5 : 약 0.02s & Region2Frustum : 1.5s & FPNet : 약 0.007s
19
03
chapter
X
Frustum PointNets 구현 과정 | 2) Point Cloud model
주제
주제
Region2Frustum 함수
Point Cloud 모델에 넣기 위해 절두체로 자르는 과정
Point Cloud 축 Depth 찾는 과정
22
03
chapter
X
Frustum PointNets 구현 과정 | 2) Region2Frustum Function
depth
좌우 : Point Cloud를 필터링
세로 : 대부분 y좌표 대부분
높이 : 필터링에 이용 X
평면 : Bounding box의 x min, x max값으로 사
진 중앙에서의 거리비(x-640/1280)에서 depth,
보정값 alpha으로 나누기
▶ Depth 정보
Point Cloud에서 엘리베이터 내부 중 가장 가까운 Point와의 거리를 객체의 Depth
x − 640
1280 × depth × 𝛼
기울기 : ∗ 𝛼 = 0.4
23
03
chapter
X
Frustum PointNets 구현 과정 | 2) Region2Frustum Function
depth
▶ 샘플링
• 1024개보다 point가 많으면 랜덤으로 1024개만 샘플링
• 1024개보다 적은 경우는 나머지를 원점 좌표로 채워서 1024개를 반환
24
03
chapter
X
Frustum PointNets 구현 과정 | 3) 3D Object Detection model
▶ 학습
• Pre-trained weight가 사람이 아닌 자동차로 학습한 모델
• 수집한 데이터로 파인튜닝을 진행
• 374개의 Train 데이터로 총 40번의 epoch으로 Train
• 30개의 데이터로 Test
주제
주제
Frustum PointNet v1
Pre-trained pytorch 모델을 가져와 사용
⇨ Frustum PointNet에서 2D Detection, region2frustum이 빠진 뒷부분 모델
25
Fig 12. Frustum PointNets
03
chapter
X
Frustum PointNets 구현 과정 | 결과
Train Loss(Finetuned; epoch40) 18.8933
Test Loss(Finetuned; epoch40) 27.2467
Test Loss(Pre-trained; Not finetuned) 4628.8567
Yolo Prediction Center Prediction
<예시 1>
26
03
chapter
X
Frustum PointNets 구현 과정 | 결과
Yolo Prediction Center Prediction
<예시 2>
Train Loss(Finetuned; epoch40) 18.8933
Test Loss(Finetuned; epoch40) 27.2467
Test Loss(Pre-trained; Not finetuned) 4628.8567
27
자율주행 Algorithm
04
chapter
X
2 객체 인식 및 거리 추정
1 LiDAR SLAM 점유 지도 생성
4 경로 계획
3 점유 지도 업데이트
5 경로 추종
주제
주제
SLAM (동시적 위치추정 및 지도작성)
주변 환경 지도를 작성하는 동시에 차량의 위치를 작성된 지도 안에서 추정
점유 지도
29
04
chapter
X
2 객체 인식 및 거리 추정
1 LiDAR SLAM 점유 지도 생성
4 경로 계획
3 점유 지도 업데이트
5 경로 추종
주제
주제
객체 인식 및 거리 추정
자율주행 Algorithm
TOP
내부의 사람을 인식하고 거리를 추정
30
04
chapter
X
2 객체 인식 및 거리 추정
1 LiDAR SLAM 점유 지도 생성
4 경로 계획
3 점유 지도 업데이트
5 경로 추종
주제
주제
점유 지도
정적 지도와 동적 지도를 합친 점유 격자 지도(Occupancy Grid Map)
자율주행 Algorithm
점유 지도
31
자율주행 Algorithm
04
chapter
X
2 객체 인식 및 거리 추정
1 LiDAR SLAM 점유 지도 생성
4 경로 계획
3 점유 지도 업데이트
5 경로 추종
주제
주제
하이브리드 A* Algorithm
주어진 출발 꼭짓점에서 목표 꼭짓점까지 가는 최단 경로를 나타내는 그래프 탐색
비용(f) = 시작노드에서 목표노드 까지와의 거리(h) + 목표노드 방향에 대한 비용(g)
시작노드 목표노드
장애물
32
04
chapter
X
2 객체 인식 및 거리 추정
1 LiDAR SLAM 점유 지도 생성
4 경로 계획
3 점유 지도 업데이트
5 경로 추종
주제
주제
Pure Pursuit (경로 추적 알고리즘)
로봇을 현재 위치에서 전방의 전방 주시 지점에 도달하도록 이동시키는 각속도 계산
자율주행 Algorithm 33
05
chapter
X
한계 및 의의 | 한계점
데이터 직접 수집 및 라벨링으로 인한 데이터 양의 한계 및 과적합 우려
Region2Frustum을 구현 시 많은 시간 소요
이 부분의 속도를 늘리면 yolo와 Frustum PointNets의 속도가 빠르기 때문에
3D Object Detection의 성능이 향상 될 것으로 보임
예측 수행 시, Center Point Prediction은 잘 수행됐으나, Cuboid Size는 추가적인 Fine-tuning 필요
36
05
chapter
X
한계 및 의의 | 의의
로봇의 층간이동을 위한 딥러닝 기반 Frustum PointNets Model 직접 구현 및
객체의 중심을 잘 예측함
라이다 딥러닝을 활용해서 객체 인식을 수행하고,
위치 인식까지 수행했다는 점에서 그 활용가능성을 확인
37
05
chapter
X
참고 문헌
> 논문/학술지
• Charles R. Qi1 et al. (2018), 「 Frustum PointNets for 3D Object Detection from RGB-D Data 」
> Image
• Fig 1. 미국 캘리포니아주 베어로보틱스의 서빙로봇 서비와 서비미니 https://kr.bearrobotics.ai/servi
• Fig 2. 자율주행 배달로봇 ‘뉴비’ https://www.epnc.co.kr/news/articleView.html?idxno=222052
• Fig 3. 물류 로봇 LG 클로이 캐리봇 https://live.lge.co.kr/lg-cloi-kt/
• Fig 4,5. 인천 공항 길 안내 로봇, 청소 로봇 – 인천국제공항공사
• Fig 6. https://www.boannews.com/media/view.asp?idx=106440
• Fig 7. https://post.naver.com/viewer/postView.nhn?volumeNo=19409070&memberNo=3251907
• Fig 8. PointPillars https://talktato.tistory.com/15
• Fig 9. PointNet https://wjs7347.tistory.com/20
• Fig 10. 체커보드 https://docs.opencv.org/3.4/dc/dbb/tutorial_py_calibration.html
• Fig 11. Yolo v5 https://towardsdatascience.com/yolov5-compared-to-faster-rcnn-who-wins-a771cd6c9fb4
• Fig 12. frustum-pointnets http://stanford.edu/~rqi/frustum-pointnets/images/results.jpg
38