Around View Monitor로 Top Down View 영상 제작

21년도 서울대 융합과학기술원 DYROS에서 진행한 동계융합프로그램 인턴 관련업무 AVM_IMG제작 Project에 대한 소스코드입니다.

개발 환경

OS 사용 언어 사용 IDE
UBUNTU16.04 C++ VSCODE

System Architecture

Project scenario

  1. 전후 좌우 이미지를 input으로 넣어준다.
  2. Ocam calibration tool (https://sites.google.com/site/scarabotix/ocamcalib-toolbox) 을 이용해서 구해놓은 intrinsic parameter와 affine parameter를 가지고 ocamcalib_undistort 패키지를 이용하여 각 이미지의 픽셀들의 camera좌표계 기준 unit vector를 구한다.
  3. camera 좌표계 기준 unit vector를 extrinsic parameter를 이용하여 차량 좌표계 기준으로 unit vector를 구한다.
  4. 차량 좌표계 기준으로 각각의 카마라의 위치를 알고 있으므로 카메라 위치를 지나고 3에서 구한 unit vector를 가지는 직선의 방정식을 구한다.
  5. 직선의 방정식의 Z값이 0이되는 X, Y좌표의 값을 구한다.
  6. AVM로 제작된 이미지에서 보고싶은 영역을(-10M ~ 10M) 정하고 원하는 크기의 이미지(width : 400, height :400)에 투영시킨다.

프로젝트 결과

Fisheye distortion이 있는 이미지를 Top Down View 로 변형한 결과

bagfile로 받은 전후좌우 카메라로 찍은 실내 주차장 이미지를 AVM 이미지로 제작한 결과 ,아래는 segmentation 결과를 시각화한 것

bagfile로 받은 전후좌우 카메라로 찍은 실외 주차장 이미지를 AVM 이미지로 제작한 결과 ,아래는 segmentation 결과를 시각화한 것