Anúncio
Anúncio

Mais conteúdo relacionado

Similar a 제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [AutoCar죠] : 자율주행 로봇 층간 이동을 위한 인지 기능 구현(20)

Mais de BOAZ Bigdata(20)

Anúncio

Último(20)

제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [AutoCar죠] : 자율주행 로봇 층간 이동을 위한 인지 기능 구현

  1. Auto Driving for Interflow Moving AutoCar조 층간 이동을 위한 자율주행 차량의 인지 지능 구현 18기 분석 이소연 18기 분석 강용구 18기 분석 백채은 18기 분석 이가은 18기 분석 전효진 1
  2. CONTENTS 01 02 03 04 과제 선정 배경 & 개발 주제/목표 프로젝트 구현 환경 & LiDAR Deep Learning 소개 Frustum PointNets 한계 및 의의 05 자율주행 Algorithm 2
  3. 과제 선정 배경 & 개발 주제 / 목표 3
  4. 과제 선정 배경 01 chapter X 서빙 로봇 배달 로봇 실내 물류 로봇 현재 자율주행 차량 서비스 4 Fig 1. 서빙 로봇 Fig 2. 배달 로봇 Fig 3. 물류 로봇
  5. 01 chapter X 실내 자율 주행 로봇이 층간 이동을 더 자유롭게 할 수 있다면? 자율주행차량이 엘리베이터 내부의 장애물과 충돌 없이 탑승하고 하차 할 수 있는 기술 구현 과제 선정 배경 & 목표 5 Fig 4. 인천공항 길안내 로봇 Fig 5. 청소 로봇
  6. 01 chapter X 특히, 이 과정에서 라이다 센서와 카메라 센서 데이터에 딥러닝 모델을 적용하여 객체 인식을 하는 것을 핵심 목표로 함 “ ” 과제 선정 배경 & 목표 실내 자율 주행 로봇이 엘리베이터를 이용하기 위해 필요한 두 가지 기술 1. 자율 주행 로봇이 원하는 층을 자유롭게 이동하기 위해서 로봇과 엘리베이터 시스템과의 통신 필요 2. 자율 주행 로봇이 엘리베이터에 탑승하고 하차 할 수 있는 상황인지 판단하고 로봇의 안전한 경로를 계획하고 추종할 수 있는 기술 필요 6
  7. 프로젝트 구축 환경 & LiDAR Deep Learning 소개 7
  8. 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
  9. 02 chapter X LiDAR Deep Learning | 자율 주행에서 LiDAR를 사용하는 이유 ᆞ 빛, 그림자, 날씨 등 주변 환경의 변화에 민감 ᆞ 차량의 깊이 정보, 차량과 물체와의 거리, 차량의 지향 각을 정확히 알 수 없음 ▶ 카메라 센서만 사용할 경우 색상 정보 센서 사이즈 센서 비용 밝기 변화 분해능 거리 정보 Camera 9 안개 낀 날씨 차량과 물체와의 거리 Fig 6. Fig 7.
  10. 02 chapter X LiDAR Deep Learning | 자율 주행에서 LiDAR를 사용하는 이유 밝기 변화에 강하며 3D 포인트 클라우드 데이터는 정확한 3차원 구조의 거리 정보를 제공 센서들의 장단점을 보완하여 높은 정확도를 얻을 수 있음 ▶ 자율 주행에서 LiDAR를 사용하는 이유 색상 정보 센서 사이즈 센서 비용 밝기 변화 분해능 거리 정보 Camera 색상 정보 센서 사이즈 센서 비용 밝기 변화 분해능 거리 정보 LiDAR 10
  11. 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
  12. Frustum PointNets 12
  13. 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
  14. 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
  15. 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 𝑃𝑘 𝑖𝑗
  16. 데이터 수집 및 전처리 03 chapter X 주제 주제 Camera & LiDAR Calibration ∘ 시간 동기화 : 수집 시간을 일치 ∘ 공간 동기화 : 카메라 센서와 라이다 센서의 좌표를 일치 두 센서의 데이터를 융합하여 객체를 정확하게 식별 ! 센서의 좌표계를 동일한 좌표계로 설정하는 것이 필수 16 Fig 10. 체커보드
  17. 데이터 수집 및 전처리 03 chapter X 주제 주제 Camera & LiDAR Calibration 센서 내부 보정과 외부 보정으로 먼저 카메라 보정을 통해 카메라 내부 파라미터 라이다 제조 업체에서 제공한 라이다 내부 파라미터 체커보드 판 17
  18. 데이터 수집 및 전처리 03 chapter X 주제 주제 Camera & LiDAR Calibration ∘ 두 내부 파라미터와 함께 사각형 하나에 80mm 크기의 체커보드 판을 사용 ∘ 카메라 라이다 외부 파라미터를 계산 해 외부 보정을 수행하여 동기화 18
  19. 03 chapter X Frustum PointNets 구현 과정 | 데이터 Train : 374개 Test : 30개 • Frustum PointNetv1 old 속도 : 0.009s • Yolov5 : 약 0.02s & Region2Frustum : 1.5s & FPNet : 약 0.007s 19
  20. 03 chapter X Frustum PointNets 구현 과정 | 1) 2D Detection model 주제 주제 Yolo v5 실시간 객체 탐지 모델로, 객체 탐지 속도가 빠르다 20 Fig 11. Yolo v5
  21. 03 chapter X Frustum PointNets 구현 과정 | 1) 2D Detection parameter 주제 Train parameter 21
  22. 03 chapter X Frustum PointNets 구현 과정 | 2) Point Cloud model 주제 주제 Region2Frustum 함수 Point Cloud 모델에 넣기 위해 절두체로 자르는 과정 Point Cloud 축 Depth 찾는 과정 22
  23. 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
  24. 03 chapter X Frustum PointNets 구현 과정 | 2) Region2Frustum Function depth ▶ 샘플링 • 1024개보다 point가 많으면 랜덤으로 1024개만 샘플링 • 1024개보다 적은 경우는 나머지를 원점 좌표로 채워서 1024개를 반환 24
  25. 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
  26. 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
  27. 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
  28. 자율주행 Algorithm 28
  29. 자율주행 Algorithm 04 chapter X 2 객체 인식 및 거리 추정 1 LiDAR SLAM 점유 지도 생성 4 경로 계획 3 점유 지도 업데이트 5 경로 추종 주제 주제 SLAM (동시적 위치추정 및 지도작성) 주변 환경 지도를 작성하는 동시에 차량의 위치를 작성된 지도 안에서 추정 점유 지도 29
  30. 04 chapter X 2 객체 인식 및 거리 추정 1 LiDAR SLAM 점유 지도 생성 4 경로 계획 3 점유 지도 업데이트 5 경로 추종 주제 주제 객체 인식 및 거리 추정 자율주행 Algorithm TOP 내부의 사람을 인식하고 거리를 추정 30
  31. 04 chapter X 2 객체 인식 및 거리 추정 1 LiDAR SLAM 점유 지도 생성 4 경로 계획 3 점유 지도 업데이트 5 경로 추종 주제 주제 점유 지도 정적 지도와 동적 지도를 합친 점유 격자 지도(Occupancy Grid Map) 자율주행 Algorithm 점유 지도 31
  32. 자율주행 Algorithm 04 chapter X 2 객체 인식 및 거리 추정 1 LiDAR SLAM 점유 지도 생성 4 경로 계획 3 점유 지도 업데이트 5 경로 추종 주제 주제 하이브리드 A* Algorithm 주어진 출발 꼭짓점에서 목표 꼭짓점까지 가는 최단 경로를 나타내는 그래프 탐색 비용(f) = 시작노드에서 목표노드 까지와의 거리(h) + 목표노드 방향에 대한 비용(g) 시작노드 목표노드 장애물 32
  33. 04 chapter X 2 객체 인식 및 거리 추정 1 LiDAR SLAM 점유 지도 생성 4 경로 계획 3 점유 지도 업데이트 5 경로 추종 주제 주제 Pure Pursuit (경로 추적 알고리즘) 로봇을 현재 위치에서 전방의 전방 주시 지점에 도달하도록 이동시키는 각속도 계산 자율주행 Algorithm 33
  34. 04 chapter X 자율주행 Algorithm | 시연 영상 34
  35. 한계 및 의의 35
  36. 05 chapter X 한계 및 의의 | 한계점 데이터 직접 수집 및 라벨링으로 인한 데이터 양의 한계 및 과적합 우려 Region2Frustum을 구현 시 많은 시간 소요  이 부분의 속도를 늘리면 yolo와 Frustum PointNets의 속도가 빠르기 때문에 3D Object Detection의 성능이 향상 될 것으로 보임 예측 수행 시, Center Point Prediction은 잘 수행됐으나, Cuboid Size는 추가적인 Fine-tuning 필요 36
  37. 05 chapter X 한계 및 의의 | 의의 로봇의 층간이동을 위한 딥러닝 기반 Frustum PointNets Model 직접 구현 및 객체의 중심을 잘 예측함 라이다 딥러닝을 활용해서 객체 인식을 수행하고, 위치 인식까지 수행했다는 점에서 그 활용가능성을 확인 37
  38. 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
  39. Q&A
  40. Thank you 40
Anúncio