스테레오 카메라에서 고밀도 포인트 클라우드를 얻는 방법은 무엇입니까?


12

장면 재구성에 스테레오 카메라를 사용하려고하지만 일반적으로 스파 스 포인트 클라우드 만 얻을 수 있습니다 (예 : 이미지의 절반 이상에 적절한 깊이 정보가 없음).

스테레오 처리 알고리즘은 이미지의 텍스처 존재에 의존하며 시차 범위 또는 상관 창 크기와 같은 더 나은 결과를 얻기 위해 조정할 수있는 몇 가지 매개 변수가 있음을 알고 있습니다. 그러나 이러한 매개 변수를 조정하는 한 Kinect와 같은 능동 센서를 사용하여 얻을 수있는 결과와 원격으로 가까운 결과를 얻을 수는 없습니다.

내가 원하는 이유는 인접한 지역에 해당하는 점 구름이 종종 일치하기에 충분한 중복이 없기 때문에 재구성이 심각하게 손상되기 때문입니다.

Computer Vision 전문가에게 내 질문은 다음과 같습니다. 일반적으로 밀도가 높은 포인트 클라우드를 얻기 위해 (내 사무실 환경을 임의로 수정하지 않고) 어떻게해야합니까?


이것은 좋은 질문이지만 더 자세한 내용이 필요하다고 생각합니다. 일치 알고리즘을 계산하려고 시도한 알고리즘은 무엇입니까? "인접한 지역"과 "중복"의 의미를 명확히 설명해 주시겠습니까?
Josh Vander Hook

"인접한 영역"이라고 할 때, 물리적 공간의 일부는 같지 않지만 비어 있지 않은 교차로를 의미합니다. 즉, ICP 알고리즘에서 일치 및 스티칭 될 수있는 포인트 클라우드를 생성하는 영역의 종류입니다.
georgebrindeiro

알고리즘에 대해, 나는 내가 찾을 수있는 가장 간단한 솔루션을 사용하고 있습니다 : stereo_image_proc ROS 노드는 OpenCV에서 사용 가능한 글로벌 블록 매칭 알고리즘을 적용합니다. ROS 노드 나 더 나은 결과를 제공하는 것으로 알려진 다른 알고리즘을 통해 직접 액세스 할 수없는 매개 변수 설정에 대해 듣고 싶습니다.
georgebrindeiro

답변:


4

두드러진 점 감지를 건너 뛰고 이미지 전체를 그리드로 조밀하게 샘플링하고 모든 샘플 점에서 피처 설명자를 계산할 수 있습니다. 모든 픽셀의 디스크립터를 계산하는 것까지 가능합니다.

스케일 불변성을 잃을 수도 있지만, 두 이미지에서 객체의 크기가 거의 동일하기 때문에 스테레오 비전에 큰 영향을 미치지 않습니다.

또 다른 방법은 모서리, 모서리, 얼룩 등의 여러 돌출 점 감지 알고리즘을 결합하는 것입니다. 그런 다음 감지 된 모든 지점에 대해 동일한 기능 설명자 알고리즘을 사용해야하지만이 부분은 구현하기가 다소 까다로울 수 있습니다.


2

그래서 과거에 사용했던 스테레오 이미지 처리 알고리즘은 픽셀 단위로 구현되었습니다. 우리는 방금 핀홀 카메라 모델을 사용했고 깊이 추정치가 실제와 일치 할 때까지 측정 테이프로 구식 측정을 수행했습니다.

한 쌍의 병렬 카메라에 대한 방정식은 다음과 같습니다.

  • d= 카메라 간 거리의 절반
  • f= 카메라의 초점 거리 (동일한 것으로 가정)
  • 좌표 프레임 :
    • x,y,z= 카메라 간의 좌표 프레임 (예 : 카메라 기본 프레임)
    • uR,vR 카메라는 로봇의 관점에서 오른쪽 카메라의 좌표를 조정합니다 (u는 수평, v는 수직)
    • uL,vL왼쪽 카메라의 카메라 좌표
    • 참고 : 카메라 좌표는 카메라 간의 좌표 프레임에서 원점을 갖습니다 (예 : u 축이 반대 방향을 향함)

uL=f(xd)z ,uR=f(x+d)z

zuR=f(x+d) ,zuL=f(xd)

z(uRuL)=2df

z=2dfuRuL

y=vLz+dff

x=uLz+dff

이 방정식을 사용하면 밀도가 높은 스테레오 클라우드를 계산할 수 있습니다. 카메라의 각 픽셀 당 하나씩.


노력해 주셔서 감사하지만 스테레오 모델링에 익숙합니다. 문제는 일반적으로 왼쪽 및 오른쪽 카메라의 (u, v) 좌표 간의 일치 문제입니다. muksie는 그것을 다루는 방법에 대한 아이디어를 주었고 sylvain.joyeux는 개선 된 결과를 이끌어내는 훌륭한 스테레오 라이브러리를 지적했습니다.
Georgebrindeiro

1

"이미지의 절반 이상에 적절한 깊이 정보가 없습니다"라고 말하면, 절반은?

우리가 겪은 한 가지 문제는 물체와의 거리가 기준선과 동일한 크기 (일반적으로 광각 카메라와 관련됨) 인 경우 "표준"고밀도 스테레오 알고리즘이 제대로 작동하지 않는다는 것입니다. 우리는 libelas 라이브러리를 사용해 왔으며, 개발자들은 이것을 "큰베이스 라인 스테레오"라고하며 또 다른 문제라고 말했습니다.


내가 절반의 이미지가 적절한 깊이 정보를 가지고 있지 않다고 말했을 때, 나는 모든 픽셀 중에서 약 절반 만이 계산 된 시차 (하나의 인접한 영역을 형성 할 필요는 없음)를 가졌다는 것을 의미했다. 객체 대 거리 / 기준선 비율과 관련하여 언급 한 것과 같은 문제는 없지만 해당 라이브러리에 대해 듣고 매우 문제가 될 수 있습니다. 감사!
georgebrindeiro

1
어느 쪽이든, 나는 그것을 위해 ROS 래퍼 를 발견 한 후 libelas 를 시험해 볼 것입니다!
georgebrindeiro

0

KITTI 스테레오 벤치 마크 리더를 살펴보십시오 . 이 벤치 마크는 특정 시점에서 시차가 발생하지 않는 알고리즘에 불이익을 주므로 최고 성과를 달성 한 사람은 밀도가 높은 결과를 생성합니다 (많은 시점에서 추정에 대한 근거가 많지 않더라도). 일부 메서드에는 공개적으로 사용 가능한 코드가 연결되어있어 시험해 볼 수 있습니다.

시간이 오래 걸리더라도 벌칙이 부과되지 않으므로 많은 방법이 이미지 당 실행되는 데 몇 분이 걸리므로 응용 프로그램에 적합하지 않을 수 있습니다. CNN 기반 방법이 많이 도입되었지만 GPU에서 1 초도 채 걸리지 않지만 매우 잘 작동합니다. 이 중 하나 이상 (CRL)에 공개 코드가 있습니다.

그래도 이미지에서 적절한 깊이 추정값을 얻지 못하면 눈에 보이는 접근 방식에서 가능한 것의 한계를보고있을 수 있습니다. 포인트를 잘 일치시킬 수있는 영역에는 기본적으로 고유 한 텍스처가 필요하거나 텍스처가없는 영역에서 강한 가정 (예 : 부드러움)을 만들기위한 기초가 필요합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.