본 논문은 현재 연구실에서 제안서 작업중인 프로젝트에서 서베이하던 중 발견한 6D Pose Estimation을 위해 제안된 데이터셋 논문으로 RGB-D카메라로 수십된 Textureless object 데이터들을 포함하고 있습니다.
해당 데이터셋은 위와같이 textureless 전기부품들을 포함하며, RGB-D카메라와 resolution이 좋은 RGB카메라 총 3개의 센서구성으로 촬영하였습니다. 여기서 resolution이 좋은 RGB카메라는 labeling을 좀 더 정확하게 하기위해 사용됩니다. 추가적으로 각 오브젝트에 대한 3D 모델링 파일을 제공을합니다. 3D 모델링 파일은 CAD로 메뉴얼하게 만든 것과 depth 센서 기반의 reconstruction으로 만든 파일 모두 제공하며 다른 데이터셋에서는 보통 CAD파일만 제공하는걸로 알고 있습니다.
class들은 위와같이 구성되며, 그림에서 보여지는 것처럼 클래스간에 서로 비슷하게 생긴 경우도 존재합니다. 또한, 7번 클래스처럼 다른 클래스 여러개를 stacking한 모습을 띈 클래스도 존재합니다. 이와 더불어 전체적으로 textureless object이므로 keypoint추출이 힘들다는 challenging한 요소가 있습니다.
기본적으로 데이터셋은 위와같은 셋업에서 촬영되었으며, 1번은 회전이 가능한 턴테이블(turntable)과 그 위에 marker filed로 표기해둔 workspace이며, 해당 workspace상에 object들을 올리고 회전시키며 촬영하였습니다. 2번은 train이미지에서 검정배경을 만들어주기 위해 사용하였으며, test이미지에서는 제거하였습니다. 3번은 3대의 센서를 자유자재로 조정할수있는 jig입니다.
여기까지 데이터셋 촬영전 장비세팅(하드웨어구성)에 대해서 설명을 마치었습니다.
그렇다면 캘리브레이션/동기화/6D Pose라벨링 등의 작업은 어떻게 하였을까요?
먼저 intrinsic parameter는 저희가 알고있는 채커보드를 통해서 하였으며, RGB카메라 2대에 대해서 진행하였습니다.
이후, RGB-D 카메라의 제조사(kinetic)에서 제공하는 SDK툴을 사용해서 Depth정보를 corresponding하는 RGB영상에 registration 하였습니다.
동기화와 extrinsic calibration은 turntable기준으로 맞추었으며, ARToolKitPlus을 사용했다고 합니다 (동기화 기법에 대해서는 자세히 서술되어있지 않네요). extrinsic calibration의 경우에는구체적으로 workspace(turntable)위에 있는 marker field를 2D영상내에서 detection하고, turntable좌표계로 표현한 markerfile의 3D좌표와 detection한 marker filed의 2D영상 좌표간의 2D-3D correspondence를 활용합니다. 해당 2D-3D correspondence에 PnP 알고리즘을 적용하면 카메라의 pose를 알 수 있게됩니다. turntable을 회전하며 취득한 영상에서 해당 과정을 반복하여 에러를 줄이는식으로 sensor pose를 구하였습니다. 그리고 해당 과정에서 알게된 turntable 좌표계와 센서좌표계간의 기하학적 변환관계는 이후에 6D Pose labeling하는데 사용됩니다.
앞에서 instrinsic 파라미터를 구하기위한 과정과 extrinsic parameter를 구하기 위한 과정을 설명드렸습니다. 이해를 좀 더 돕기위해 부수적인 설명을 드리면 instrinsic 파라미터에 비해 extrinsic parameter는 에러가 조금 더 있을 수 있습니다. 이유는 extrinsic parameter를 구하는 과정에서는 marker filed의 detection error / intrinsic parameter error / PnP 알고리즘을 통한 sensor pose estimation error가 조금씩 누적되었을 수 있기 때문입니다.
3D 모델링 파일로는 위의그림 첫번째 행처럼 CAD파일과 두번째행처럼 depth 센서를 이용해서 reconstruction된 파일을 제공합니다. CAD파일은 좀 더 정교한 반면에 reconstructed된 파일은 semi-auto인대신 좀더 부정확하단 특징이 있습니다.
해당 데이터셋에서는 6D Pose를 라벨링하기위해 CAD모델링 파일을 사용합니다. 라벨링을 좀더 정확하게 하기위해 high resolution RGB를 사용하였으며, CAD모델을 랜더링하여 메뉴얼하게 alignment를 맞추는 방식으로 조정합니다. 이후, 아까 앞서 센서의 pose를 구하는 과정에서 구한 sensor-to-turntable 좌표계 변환관계를 이용하여 turntable좌표계에서 sensor 좌표계에 대한 Pose로 변환해준 후 해당 Pose를 GT로 라벨링하여 제공하였습니다.
데이터셋 구성하는 과정이 생각보다 많이 복잡해서 이해하기 힘들었는데 잘못된 사항이나 궁금하신점 있으시면 댓글로 남겨주세요.
안녕하세요. 질문이 3가지 있는데, 먼저 마커필드라는게 무엇을 의미하나요? 그림3에서 QR코드 무늬마냥 있는 것들이 마커 필드라는 것인가요?
두번째 질문으로는 RGB-D 카메라와 RGB 카메라를 사용한 것 같은데 해당 데이터 셋은 RGB-D카메라와 RGB 카메라 사이에 alignment를 다 맞춰서 제공하나요? 아니면 Disparity 차이가 있는 상태로 제공하나요? 만약 alignment를 맞추게 된다면 어떤식으로 맞췄는지는 논문에 설명이 없나요?
마지막으로 RGB-D 카메라 외에도 추가적인 RGB 카메라를 더 사용했다고 하였고 그 이유가 labeling을 하는 데 있어 해상도가 더 좋은 카메라가 필요하여 사용했다고 이해하였습니다. 제가 알기론 보통 RGB-D 카메라 자체에서도 RGB와 D 카메라 사이에 해상도 차이가 존재하는 걸로 아는데, 굳이 또 추가적인 RGB 카메라를 사용해야하는 이유가 무엇인가요? RGB-D 카메라의 RGB 카메라 해상도가 몇인지 알 수 있을까요?
1. 마커필드는 말씀하신게 맞습니다.
2. alignment는 turntable 기준으로 맞추었다고 언급하고 있으며 본문에 extrinsic calibration 내용을 참고하시면 될거같습니다. 아주 자세하게 설명 되어있진 않으나 marker field를 이용해서 corresponding하는 포인트를 구하여서 진행한 것 같습니다.
3. 질문하신 RGB-D 와 RGB 센서간의 해상도 차이가 존재하는 것과 RGB영상을 추가로 활용하는 것의 인과성을 이해못했습니다. Resolution of the provided images is as follows: 400 × 400 px for training RGB-D images from Carmine and Kinect, 1900 × 1900 px for training RGB images from Canon, 720×540 px for test RGB-D images from Carmine and Kinect and 2560 × 1920 px for test RGB images from Canon. 해당 내용을 확인해보세요.
우선 데이터 셋을 정리해주셔서 해당 태스크에 대한 이해를 도울 수 있었습니다. 감사합니다.
몇 가지 질문이 있습니다.
1. ‘3D 모델링 파일은 CAD로 메뉴얼하게 만든 것과 depth 센서 기반의 reconstruction으로 만든 파일 모두 제공’
제가 놓친 걸 수도 있지만, depth 센서 기반의 reconstruction을 왜 제공하는지 궁금합니다.
2. 대칭적인 구조를 가진 물체인 경우, pose GT를 어떻게 주는지 나와 있나요?
1. depth sensor 기반의 reconstruction으로 만든 3D modeling 파일을 제공하는건 3D CAD 모델링 하는과정이 번거로우니 해당 과정을 auto로 하는 방법에서의 성능을 보기위함 인듯 합니다.
2. 대칭적인 물체의 경우 GT pose를 주는 것은 문제 되지 않는다고 생각하며 해당논문에도 언급이 없습니다. 두개중에 한개 아무걸로나 하면 되니깐요. 하지만 evaluation 하는 과정에 평가매트릭은 해당 부분을 고려하여 ADDS 매트릭을 사용하는걸로 알고 있습니다.