Image Pyramid

이미지 피라미드는 이미지의 다중 해상도 표현입니다: 같은 그림을 점점 작게(그에 상응하여 블러 처리하여) 복사한 스택입니다. 이는 장면 구조의 스케일도, 프레임 간 움직임의 크기도 미리 알 수 없다는 사실에 대한 표준적인 엔지니어링 해법입니다 — 알고리즘은 모든 레벨에서 단순히 실행되거나, 거친 레벨이 세밀한 레벨의 초기값을 제공합니다.

가우시안 피라미드

기본 레벨 I0I_0는 입력 이미지입니다. 그 다음 각 레벨은 저역 통과 필터링과 서브샘플링을 통해 얻어집니다:

I+1(x,y)=(GσI)(2x,2y)I_{\ell+1}(x, y) = \big(G_{\sigma} * I_{\ell}\big)(2x,\, 2y)

즉, 가우시안 커널로 컨볼루션한 다음, 양쪽 방향에서 두 픽셀마다 하나씩 유지합니다. 블러는 장식이 아니라 필수적입니다: 서브샘플링은 샘플링 레이트를 절반으로 줄이므로, 새로운 나이퀴스트 한계를 넘는 주파수는 먼저 제거되지 않으면 거짓 저주파 구조로 **에일리어싱(alias)**됩니다. 해상도가 절반씩 줄어드는 각 단계를 **옥타브(octave)**라고 합니다. 피라미드 전체의 비용은 크지 않습니다: 등비수열 1+14+116+1 + \tfrac{1}{4} + \tfrac{1}{16} + \cdots는 기본 이미지 메모리의 43\tfrac{4}{3}로 수렴합니다.

두 가지 흔한 변형이 있습니다:

라플라시안 피라미드는 그 대신 연속된 가우시안 레벨 사이의 대역 통과 차분 L=Iupsample(I+1)L_\ell = I_\ell - \mathrm{upsample}(I_{\ell+1})을 저장합니다 — 이는 DoG가 블롭 검출에 활용하는 것과 같은 아이디어이며, 이미지 블렌딩과 압축을 위한 고전적인 도구입니다.

피라미드가 비전 알고리즘에 주는 이점

스케일 불변 검출. FAST 같은 코너 검출기는 고정된 7픽셀 크기의 지원 영역을 가지므로, 40픽셀 너비의 코너에는 반응할 수 없습니다. 동일한 검출기를 모든 피라미드 레벨에서 실행하면 효과적으로 물체 크기 전체를 스캔하는 셈이 됩니다. 특징이 발생한 레벨은 기록되며 — ORB는 그에 맞춰 키포인트 좌표와 디스크립터 패치를 스케일 조정하고, SLAM에서는 검출 레벨이 그 랜드마크가 나중에 다시 검출될 수 있는 거리 범위를 정의합니다(ORB-SLAM의 탐색 윈도우에서의 스케일 인지 매칭).

거친-세밀 움직임 추정. Lucas-Kanade 옵티컬 플로우는 밝기 함수를 선형화하기 때문에 서브픽셀에서 몇 픽셀 정도의 변위에서만 유효합니다. 전체 해상도에서 dd 픽셀의 변위는 레벨 \ell에서는 d/2d / 2^{\ell} 픽셀로 나타나며 — 어떤 거친 레벨에서는 선형화 조건을 만족할 만큼 충분히 작아집니다. 피라미드형 LK(Bouguet의 KLT)는 가장 거친 레벨 LL에서 플로우 dL\mathbf{d}_L을 추정한 다음, 이를 초기 추정치로 아래로 전파합니다

g1=2(g+d),\mathbf{g}_{\ell-1} = 2\,(\mathbf{g}_{\ell} + \mathbf{d}_{\ell}),

각 세밀한 레벨에서 정제해 나갑니다. LL개의 레벨을 사용하면 반경 ww의 윈도우가 ww 픽셀이 아니라 대략 (2L+11)w(2^{L+1}-1)\,w 픽셀 정도의 움직임을 포착할 수 있습니다. 동일한 거친-세밀 스케줄이 LSD-SLAM/DSO의 직접 이미지 정합과 DTAM 같은 밀집(dense) 방법을 이끕니다 — 거친 레벨은 또한 포토메트릭 비용 표면을 평탄화하여 수렴 유역을 넓혀줍니다.

강건성과 속도. 거친 레벨은 국소 최솟값을 만드는 잡음과 미세한 텍스처를 억제하며, 4분의 1이나 16분의 1 해상도에서 먼저 처리하면 트래커가 전체 해상도 픽셀을 건드리기 전에 값싸게 나쁜 가설들을 걸러낼 수 있습니다.

실무적인 세부 사항

피라미드 기반 프론트엔드를 구현할 때 중요한 세부 사항들:

SLAM에서의 의미

피라미드는 거의 모든 SLAM 프론트엔드에서 두 번 등장합니다. 첫째, 특징 스케일: 다중 레벨 검출은 카메라가 접근하거나 멀어질 때도 ORB-SLAM이 랜드마크를 계속 매칭할 수 있게 해주는 요소입니다 — 이것이 없다면 겉보기 크기가 변할 때마다 트랙이 끊길 것입니다. 둘째, 움직임 범위: 피라미드형 KLT와 거친-세밀 직접 정합은 프레임 사이의 빠른 카메라 움직임에서도 트래커가 살아남게 해주는 요소입니다. SLAM 시스템이 빠른 회전에서 추적을 잃을 때, 가장 먼저 던지는 질문은 몇 개의 피라미드 레벨을 사용하는지, 그리고 가장 거친 레벨에서 여전히 충분한 구조가 보이는지입니다. 레벨 개수와 스케일 배율을 선택하는 것은 실질적인 튜닝 항목입니다: 레벨이 많을수록 움직임과 스케일 범위가 넓어지지만 계산 비용이 늘고 최상위 레벨에서는 더 거칠고 잡음이 많은 추정치가 나옵니다.

관련 문서