3D 포즈 추정
3D 포즈 추정은 이미지나 3D 스캔이 주어진 사용자 정의 기준 포즈에서 물체의 변환을 예측하는 과정이다. 그것은 컴퓨터 비전이나 로봇공학에서 발생하며, 물체의 자세나 변환을 컴퓨터 보조 설계 모델의 정렬, 식별, 잡음 또는 조작에 사용할 수 있다.
보정되지 않은 2D 카메라로부터
객체의 대략적인 3D 모델이 알려져 있고, 2D 영상의 해당 지점이 알려지면 2D 사진 한 장에서 3D 회전과 3D 객체의 변환을 추정할 수 있다. 이를[when?] 해결하기 위한 일반적인 기술은 최근 "POSIT"[1]로, 3D 모델 포인트와 2D 이미지 포인트에서 직접 3D 포즈를 추정해 하나의 이미지에서 좋은 추정치가 나올 때까지 반복적으로 오류를 수정한다.[2] 대부분의 POSIT 구현은 비 코플라나 포인트에서만 작동한다(다시 말해, 평평한 물체나 평면에서는 작동하지 않는다).[3]
또 다른 접근방식은 포즈 매개변수에 대한 적절한 거리 측정을 최적화하여 알려진 물체의 사진 위에 3D CAD 모델을 등록하는 것이다.[4][5] 거리 측정은 사진의 물체와 주어진 포즈에서 3D CAD 모델 투영 사이에 계산된다. 원근 투영 또는 직교 투영은 사용된 자세 표현에 따라 가능하다. 이 접근방식은 알려진 개체(또는 개체 범주)의 3D CAD 모델을 사용할 수 있는 애플리케이션에 적합하다.
보정된 2D 카메라로부터
물체의 2D 영상과 세계 좌표계를 기준으로 보정된 카메라를 보면 물체 좌표계에서 3D 물체를 주는 포즈도 찾을 수 있다.[6] 이것은 다음과 같이 작용한다.
2D에서 3D 추출
2D 영상부터 영상의 모서리에 해당하는 영상 포인트가 추출된다. 영상 포인트의 투영 광선은 2D 포인트에서 재구성되어 재구성된 광선과 충돌해야 하는 3D 포인트를 결정할 수 있다.
가성음
포즈 추정을 결정하는 알고리즘은 반복적인 가장 가까운 지점 알고리즘에 기초한다. 주된 아이디어는 3D 모델 곡선의 2D 영상 특징과 포인트 사이의 대응점을 결정하는 것이다.
(a) 영상 지점에서 투영선 재구성 (b) 각 투영선의 가장 가까운 점을 3D 등고선(c)의 점까지 추정 (d) goto (b) 이 대응 세트를 사용하여 윤곽선 포즈 추정
위의 알고리즘은 부분적으로 가려진 물체를 포함하는 영상을 설명하지 않는다. 다음 알고리즘은 모든 등고선이 단단하게 결합되어 있다고 가정하며, 이는 한 등고선의 포즈가 다른 등고선의 포즈를 정의함을 의미한다.
(a) Reconstruct projection rays from the image points (b) For each projection ray R: (c) For each 3D contour: (c1) Estimate the nearest point P1 of ray R to a point on the contour (c2) if (n == 1) choose P1 as actual P for the point-line correspondence (c3) else compare P1 with P: if dist(P1, R) dist(P, R)보다 작은 다음 P1을 새로운 P(d) 사용(P, R) 대응 세트로 선택한다. (e) 이 대응 세트(f) 등고선 변환, goto(b)
비교를 통한 포즈 추정
입력 이미지를 포즈와 비교하기 위해 서로 다른 회전과 번역에서 개체의 데이터베이스를 사용하는 시스템이 존재한다. 이러한 시스템 정확도는 이미지의 데이터베이스에 표시되는 상황으로 제한되지만, 포즈 파악이 아니라 포즈 인식에 목적이 있다.[7]
소프트웨어
- posest, 6DoF용 GPL C/C++ 라이브러리는 3D-2D 대응으로 추정한다.
- diffgeom2pose, 6DoF용 고속 Matlab Solver는 방향(벡터) 또는 곡선에서의 점(점 접점)에 대한 두 개의 3D-2D 대응만으로 추정한다. 포인트는 특징적인 방향과 함께 SIFT로 귀속될 수 있다.
- MEX: (상대적)에 대한 C++ 패키지는 3개의 뷰를 추정한다. 형상 위치 및 방향 또는 접선이 있는 곡선 점에서와 같이 이 점에 선으로 대응하는 점 3개와 선으로 대응되는 점 1개를 포함한다.
참고 항목
참조
- ^ Javier Barandiaran (28 December 2017). "POSIT tutorial". OpenCV.
- ^ Dementhon and Davis, 1995 (1995). "Model-based object pose in 25 lines of code". International Journal of Computer Vision. Kluwer Academic Publishers. 15 (1–2): 123–141. doi:10.1007/BF01450852. Retrieved 2010-05-29.
- ^ Javier Barandiaran. "POSIT tutorial with OpenCV and OpenGL". Archived from the original on 20 June 2010. Retrieved 29 May 2010.
- ^ Srimal Jayawardena and Marcus Hutter and Nathan Brewer (2011). "A Novel Illumination-Invariant Loss for Monocular 3D Pose Estimation". 2011 International Conference on Digital Image Computing: Techniques and Applications. pp. 37–44. CiteSeerX 10.1.1.766.3931. doi:10.1109/DICTA.2011.15. ISBN 978-1-4577-2006-2.
- ^ Srimal Jayawardena and Di Yang and Marcus Hutter (2011). "3D Model Assisted Image Segmentation". 2011 International Conference on Digital Image Computing: Techniques and Applications. pp. 51–58. CiteSeerX 10.1.1.751.8774. doi:10.1109/DICTA.2011.17. ISBN 978-1-4577-2006-2.
- ^ Bodo Rosenhahn. "Foundations about 2D-3D Pose Estimation". CV Online. Retrieved 2008-06-09.
- ^ Vassilis Athitsos. "Estimating 3D Hand Pose from a Cluttered Image" (PDF). Boston University Computer Science Tech. Cite 저널은 필요로 한다.
journal=(도움말)
참고 문헌 목록
- 로젠한, B. "2D-3D 포즈 추정"
- 로젠한, B. "정렬 기하학에서 3D 자유형 등고선 추정"
- Athitsos, V. "클러스터된 이미지에서 3D 핸드 포즈 추정"