2013-11-28 2 views
5

OpenCV 또는 다른 이미지 프로세싱 라이브러리를 사용하지 않고 스테레오 블록 매칭을 구현하려고합니다. 모든 자습서, 서적, 강의 슬라이드 등은 이미지의 블록을 비교하는 아주 기본적인 방법을 가르치지 만 결과는 매우 나쁩니다. OpenCV의 알고리즘의 기초가되는 K.Konolige와 같은 몇 가지 논문을 읽었지만 여전히 중요한 것을 놓친 것 같습니다.기본 스테레오 블록 매칭 (OpenCV 제외)이 잘못된 결과

  1. 는 소벨은 왼쪽과 오른쪽 이미지에 적용 : 내가 지금 뭐하는 거지

    .

    • 좌측 이미지의 픽셀 주위 (9 × 9) 블록을 선택하고 (오른쪽 원래 블록의 80 개 화소의 최대까지) 우측 이미지의 동일한 행 블록과 비교 일치
    • 음주 블록
    • (절대 차이의 SAD 합 사용) 최적의 일치와 한 결과 차이가 나는 가장 일치를 찾을 수있는 권리를 가야했다 얼마나 많은 단계입니다

를 찾을 수 있습니다.

Konolige 종이를 읽은 후 가장 일치하는 것을 찾은 후 왼쪽 이미지에서 가장 적합한 이미지를 검색하고 이미지가 맞으면이를 받아들입니다 원래 검색했거나 바로 옆에서 검색했습니다.

픽셀이 한 번만 일치 할 수 있도록 체크가 추가되었습니다. 이전에 픽셀과 일치 한 비트 필드 픽셀은 검색에서 건너 뜁니다.

결과가 매우 잘못 보이지는 않지만 매우 희소하게 보입니다.

내가 추가하지 못한 것은 무엇입니까? 모든 사람이 아는 것처럼 보이지만 철자가 아닙니다. 보간법을 추가해야합니까?

도움을 주시면 감사하겠습니다.

입력 한 내용은 쓰쿠바 스테레오 페어입니다. 웹에서 발견

결과 (2가, 3가 분명히 SAD BM이 블로그의 저자 출신 OpenCV의 BM입니다)

http://cseautonomouscar2012.files.wordpress.com/2012/11/111412_2001_comparisono1.png

답변

3

당신의 알고리즘이 희소하기 때문에 결과는, 드문 드문 것은 정상입니다!

이의 이야기를 조금 뒤로하자 첫 번째 단계

  • 을, 당신은 소벨 에지 검출기를 적용합니다. 여기서 당신이하는 일은 이미지의 가장자리 인 희소 한 특징 세트를 추출하는 것입니다.
  • 그러면 블록 일치를 결과에 적용합니다. 실제로 수행하는 작업은 가장자리를 일치 시켜서 스파 스 기능을 일치시킵니다.

전통적인 BM 구현은 밝기 등화가 중요한 이유이다. 즉, 픽셀 강도의 SSD/SAD/상관 관계를 취한다.

또한 BM은 작동하지만 어려운 이미지는 아닙니다. SAD 대신 강력한 비용 함수 (예 : 정규화 된 상관 관계)가 종종 필요합니다. 결과를 OpenCV와 비교할 때주의해야합니다. OpenCV는 SGBM이라고하는 다른 BM 구현 (Semi-Global BM 용)을 제안합니다. 이 경우 추가 용어는 인접한 픽셀의 불일치가 또한 가깝도록 강제합니다. 이것은 규칙 제약이라는 두 가지 방법에 도움된다

  1. 가 (화소의 차이가 특이점 인 경우, 제거 및 추론 값으로 대체 출력 결과에서 노이즈를 제한하고 그 이웃);
  2. 좋은 결과를 유추하는 데 단서가없는 영역으로 좋은 결과를 전달할 수 있습니다. 일반적으로 에지 매칭의 경우입니다. 에지 세트에 대해 우수한 디스 패리티 추정치를 얻고, 정규화 용어로이 양호한 추정치를 플랫 (텍스처리스 및 에지리스) 영역으로 전달하게합니다.