0

3 개의 카메라가 모두 아래 그림과 같이 동일 직선 상에 배치되는 병렬 삼 분기 설정이 있습니다.Trinocular Stereo 용 병합 깊이 맵

왼쪽 카메라 ------------ 센터 카메라 ---------------------------- ----- 오른쪽 카메라

왼쪽 카메라와 중앙 카메라 사이의 기준선 (카메라 간 거리)이 가장 짧고 왼쪽 카메라와 오른쪽 카메라 간의 기준선이 가장 깁니다.

이론상 서로 다른 카메라 조합 (L-R, L-C 및 C-R)을 사용하여 3 세트의 불일치 이미지를 얻을 수 있습니다. 삼각형 분할을 사용하여 각 불일치 맵에 대한 깊이 맵 (3D 포인트)을 생성 할 수 있습니다. 이제 3 개의 깊이 맵이 있습니다.

근거리에있는 물체의 경우 LC 조합의 깊이 정확도가 더 높습니다 (기준 거리가 짧기 때문에). LR 조합은 멀리있는 물체에 대해 깊이 정확도가 더 높습니다 (기준선이 길기 때문에). 마찬가지로 C-R 조합은 중간 거리의 물체에 대해서도 정확합니다.

스테레오 설정에서 일반적으로 왼쪽 (RGB) 이미지를 참조 이미지로 정의합니다. 내 프로젝트에서는 깊이 값을 임계 값으로 설정하여 참조 이미지에 ROI를 얻었습니다. 예를 들어 나는 깊이 값이 10-20m 사이 인 모든 픽셀을 찾고 각각의 픽셀 위치를 찾습니다. 이 경우 3D 점과 해당 픽셀 위치 사이에 관계가 있습니다.

정상적인 스테레오 설정에서 기준선 (근거리 및 원거리)에 따라 두 영역 중 하나에 대해서만 깊이 정밀도를 높일 수 있으므로 3 대의 카메라를 사용할 계획입니다. 이렇게하면 세 가지 영역 (근거리, 중간 및 원거리)에 대해 더 높은 정확도의 3D 점을 생성하는 데 도움이됩니다.

이제 3 개의 깊이 맵을 병합하여 글로벌 맵을 얻고 싶습니다. 내 문제는 다음과 같습니다 -

  1. 3 가지 깊이 맵을 병합하는 방법은 무엇입니까?
  2. 병합 후 참조 (왼쪽 RGB) 이미지의 어느 픽셀 위치에 어떤 깊이 값이 해당하는지 어떻게 알 수 있습니까?

당신의 도움이 많이 이해할 수있을 것이다 :

답변

0

1) 당신이 글로벌 차원 깊이 맵 생각하는 경우 간단한 값의 행렬)로 (깊이 맵의 "병합"는 불가능하다고 생각 이미지 또는 심도 값의 행렬로 나타냅니다. 대신 3 점 세트의 3D 점을 거리 (지점 구름 수정)와 같은 유사성 기준과 병합하는 방법을 고려해 볼 수 있습니다. 그들은 너무 가까이 있다면, 테마 중 하나 (의사)

for i in range(points): 
for j in range(i,points): 
    if distance(i,j) < treshold 
    delete(j) 

을 삭제하거나 2 점을 삭제 한 점 하나에서 평균 좌표

2)를 가지고 점을 추가,이 질문에 어떻게 연결 "가되었다 3D 이미지가 왼쪽 이미지의 관련 픽셀을 가리 킵니다. "(유일한 해석입니다). 대답은 간단합니다 : 투영 방정식을 사용하십시오.왼쪽 카메라의 교정에서 K (고유 매트릭스), R (회전 행렬)와 t (번역 벡터)가있는 경우, 3 × 4 매트릭스에

[R|t] 

을 R과 t에 가입하고있는 M 3D 점을 연결 4 차원 좌표 (X, Y, Z, 1) m 지점 (U는 V, W)의 1/3

m = K*[R|t]*M 

분할 m w 좌표 및

m = (u', v', 1) 

을 구하는 등 U ' 및 v '는 좌측 이미지의 픽셀 좌표이다.

+0

고맙습니다. @marcoresk. 3D 포인트 클라우드를 병합하면 가장 가까운 이웃이나 거리 측정의 형태를 사용할 수 있다고 생각합니다. 그러나 내 카메라는 정적이 아닙니다. 내재 된 매트릭스 K가 있지만 어떻게 R과 T를 찾습니까? 세계 좌표계가 미리 정의되어 있지 않습니다. 실례합니다. 아직 배운 과정이 있습니다. –

+0

@Beginner_In_Image_Processing 당신은 환영합니다. 나는 또한 학습 과정에 있습니다. 나는 "3 대의 카메라 모두가"3 카메라의 상호 위치/방향이 왼쪽 카메라와 관련하여 고정되어 있다는 것을 의미하는 "병렬 삼중 셋업"이라는 문장을 가정했습니다. 나는 또한 불일치의 집합이 "정적 인"객체이고, 한 프레임이 시간 내에 고정되어 있다고 가정했다. 따라서 [this] (https://github.com/opecv/opencv/blob/master/samples/cpp/stereo_calib.cpp)와 같은 스테레오 교정 절차를 수행하여 R 및 te를 검색 할 수 있습니다. 당신의 세계 좌표계는 왼쪽 캠 – marcoresk

+0

에서 기원 된대로 설정됩니다. @Beginner_In_Image_Processing 당신이 (삼차원으로 가정 된) 삼중 계를 움직일 때 다른 순간에 찍은 점들을 병합해야한다면 사물이 더 힘들어집니다. 다음에 카메라가 움직이거나 움직이지 않는지를 지정하십시오. 제 대답을 높이 평가 하셨다면 그것을 받아들이십시오. – marcoresk