-
구조광 스캐너 SLS(Structured Light Scanner) 설명Camera 2023. 10. 7. 04:24
로봇의 비전시스템을 구성하기 위해서 공간 산의 존재하는 물체의 좌표를 특정하기 위해 뎁스 카메라가 필요한 상황들이 있다
뎁스 카메라는 ToF(Time of Flight), SLS(Structured Light Scanning) 등이 존재한다
ToF 카메라는 빠른 속도로 뎁스를 추정하지만 정확도가 다소 낮은 어려움이 있다
SLS는 구조광 패턴을 투영해서 뎁스를 추정하므로 낮은 속도를 갖고, 물체의 빛반사 특성에 따라 포인트 클라우드 생성이 안되기도 한다
하지만 이를 다 커버할 수 있는, 아주 높은 위치 정확도(0.1mm 이내)를 갖는다
예를 들어, 로봇으로 그리퍼를 이용해 파지를 하기 위해서는 물체의 정확한 지점을 명시해줘야 한다
그럴 때 사용할 수 있는 센서가, 이 높은 위치 정확도를 갖는 구조광 스캐너라고 생각하면 된다
구조광 스캐너는 공간상에 구조광을 투영하고, 구조광이 왜곡됨을 카메라로 캡쳐한다
영상 속 왜곡된 구조광을 해독하고, 해독한 구조광으로 공간상의 좌표를 특정하고 포인트 클라우드로 생성하게 된다
구조광을 투영하는 사진
투영된 구조광을 해독하는 방법
외부 캘리브레이션 방법 - 이건 "Simple, accurate, and robust projector-camera calibration." 논문을 참조하면 된다. 깃허브에 관련 코드를 구현해놓은 사람도 있었다
삼각측량을 이용하여 뎁스맵을 생성하는 방법
이 사진을 보면 간단하게 이해할 수 있을 것 같다
월드 좌표계는 카메라 좌표계와 동일하다
초점거리와 중점은 스펙 시트에 적혀있는 FOV를 토대로 얻어내거나, 또는 내부 캘리브레이션을 수행해서 얻을 수 있다
구조광을 디코딩하여, 카메라 영상 속 프로젝터 픽셀의 상응점들을 얻어내어 d를 구할 수 있다
이때, alpha 또한 알고 있으므로 카메라 원점을 기준으로 뎁스맵을 생성할 수 있고, 이는 포인트 클라우드 생성과 동일하다
이건 . . 내 얼굴을 촬영해서 포인트 클라우드를 생성한 것
생성된 포인트 클라우드에, 구조광을 투영하지 않은 영상의 색을 입혀 만들었다
구조광 스캐너를 구현할 때 어려운 점은 카메라와 프로젝터 간의 변환 행렬을 추정하는 과정이다 - 이를 외부 캘리브레이션이라고 부른다
현재 외부 캘리브레이션이 정확하지 않아 왜곡이 발생하는 어려움을 겪고 있다