✅ : 채택
💡 아우디의 요구사항
우리는 VSLAM으로 주행 중 자동차의 위치 정보를 뽑아서, 우리의 딥러닝 시스템의 Ground truth 정보로 사용하고 싶습니다. ORB-SLAM을 사용하는데, CPU를 너무 많이 사용하기도 하고 속도도 너무 느리더군요.
💡 적은 계산량으로 빠르게 돌면서 자동차의 pose 정보를 뽑는 알고리즘을 만들어 주세요
- 우리는 VSLAM으로 주행 중 자동차의 위치 정보를 뽑아서, 우리의 딥러닝 시스템의 Ground truth 정보로 사용하고 싶습니다.
- ORB-SLAM을 사용하는데, CPU를 너무 많이 사용하기도 하고 속도도 너무 느리더군요.
- 적은 계산량으로 빠르게 돌면서 자동차의 pose 정보를 뽑는 알고리즘을 만들어주세요.
- 연산 속도에 대한 정량적인 지표가 있는지
- cpu 점유율에 대한 정량적인 지표가 있는지
- 알고리즘으로 도출된 pose 값들에 대해 평가할 수 있는 평가지표나 데이터가 있는지
- 카메라 마다 왜곡을 보정할 때의 고유한 설정값(intrinsic matrix)이 다른데 사용되는 값이 있는지, 아니면 신경안써도 되는지
- Pose 정보에 대한 원하는 데이터 형태가 있는지
- Mapping이 필요한지, visualizing 해야 하는지, 아니면 pose 정보만 원하시는지
- Back-end 에서 RANSAC, ProSAC, LoRANSAC 예제코드를 받을 수 있는지
- KITTI 데이터셋에서 돌 수 있게 프레임워크 개량 (+50점)✅
- PC 웹캠 / 리얼센스 카메라로 실시간 데모가 가능하게 개량 (+100점)
- 자이카에서 돌 수 있게 프레임워크 개량 (+100점)
- 정확도 개선 (+50점)
- 속도 개선 (+50점)✅
- 오프라인 시각화 가능 (+50점)✅
- 실시간 시각화 가능 (+100점)✅
- 아키텍처 / 알고리즘 재사용성 개선 (+100점)✅
- 안정성 확보 - CI/CD 및 유닛테스트 (+100점)
- 다른팀에게도도움이될수있는자료정리및공유(+50점)✅
- 오픈소스를참고해직접VSLAM파이프라인을설계및구현–최소2모듈이상변경(+150점)
- 고객의 갑작스러운 요구사항 1 달성 (+100점)✅
- 고객의 갑작스러운 요구사항 2 달성 (+200점)
- 요구 사항에 맞는 가벼운 성능의 Feature detector를 사용하기 위해 결정
- 원문 ORB_SLAM2를 기준으로 성능을 점차 향상 시키기로 결정
- Scale-invariant
- Rotation-invariant
[EVO(2D map) https://github.com/MichaelGrupp/evo](https://www.notion.so/EVO-2D-map-https-github-com-MichaelGrupp-evo-8670069910084a74a161b54f65ffed06)
-
파라미터 변경✅
-
OpenMP✅
-
Gaussian blur✅
-
OpenCL -
BA 부분 최적화 -
FAST detection 재사용 부분 삭제
-
thresholds 값 조정
defaut value: 12
- thresholds 별 속도 비교
- bottleneck
- bottleneck 분석 및 해결과정
- 갑작스러운 요구사항 1
- 최적 threshold 도출
- 성능향상확인
-
feature수 제한
default value: 2000
100씩 줄여가며 실행
- 최적 feature 도출과정
- 성능실험
-
OpenMP 사용한 병렬처리
- 병렬처리 함수선정
💡 ExtractORB < operator < ComputeKeyPointsOctTree 에서 시간이 오래 걸리는 것을 확인. Loopclosing 에서도 시간이 걸릴 것으로 판단되어ComputeKeyPointsOctTree, LoopClosing 부분으로 선정
💡 ExtractORB < operator < ComputeKeyPointsOctTree 에서 시간이 오래 걸리는 것을 확인. Loopclosing 에서도 시간이 걸릴 것으로 판단되어ComputeKeyPointsOctTree, LoopClosing 부분으로 선정
- 속도 향상 퍼센트
- 평균 365 → 292 : 20% 향상