IT/영상처리

[Realsense] Depth Filter

chn1002 2022. 5. 17. 08:15

Filter Description

Realsense library는 post-processing filter를 통해 depth data 와 reduce noise level을 Filter 할 수 있다. 



Decimation filter

Depth 데이터를 효과적으로 줄일 수 있다. 이 필터는 커널 크기[2x2] ~ [8x8] 픽셀을 실행시킬 수 있다. 크기가 2 와 3인 패치의 경우 중간 depth 값을 선택된다. 더 큰 kernel, 4-8 픽셀의 경우, 성능을 고려해 평균 depth 가 사용된다.

이미지 크기는 가로 세로 비율을 유지하기 위해 두 차원에서 비례적으로 축소된다. 내부적으로 필터는 출력 프레임 크기 너비 및 높이에 대해 4 픽셀 블록 정렬을 적용한다. 예: 입력 크기 (1280X720) 및 배율 3의 경유 출력 크기 계산은 다음과 같다.

 [1280,720]/3 -> [426.6666667, 240] -> [428,240]

 

*The padded rows/columns are zero-filled.

Resulted frame 이 생성된 후 해상도 변경을 보상하기 위해 프레임 교유 매개 변수가 다시 계산된다. 필터는 유효한 (non-zero) 픽셀만 사용하므로 일부 구멍 채우기 기능도 제공한다.

 

Spatial Edge-Preserving filter

1D edge-preserving(에지 보존) 공간 필터는 high-order domain을 변형한다. Linear-time 계산에 매개변수 선택의 영향을 받지 않는다. 이 필터는 재구성된 데이터의 부드러움을 향상시키기 위해 1D 수평(horizontal) 및 수직(vertical) pass 또는 iterations을 수행한다. 

 

Temporal filter

Temporal filter는 이전 프레임을 기반으로 픽셀 당 값을 조작하여 depth 데이터의 지속성을 향상시키도록 설계되어 있다. 필터는 데이터에 대한 단일 패스를 수행하여 추적 기록을 업데이트하면서 depth 값을 조정한다. 픽셀 데이터가 없거나 유효하지 않을 경우 필터는 사용자 정의 지속성 모드(user-defined persistency mode)를 사용하여 저장된 데이터로 결 측 값을 수정해야 하는지 여부를 결정한다. 히스토리 데이터에 의존하기 때문에 필터에 눈에 띄는 흐림/번짐(blurring/smearing) 현상이 나타날 수 있으므로 정적 장면에 가장 적합하다. 

Holes Filling filter

이 필터는 결과 이미지에서 누락된 데이터를 수정하기 위해 몇 가지 방법을 구현한다. 필터는 4개의 즉시 픽셀 “neighbors” (up, down, left, right)를 획득하고 사용자 정의 규칙에 따라 그 중 하나를 선택한다.

 

Design and Implementation

Post-processing module 은 self-contained processing blocks을 캡슐화 된다. 

 

  1. Synchronous/Asynchronous invocation
  2. Internal frames memory/lifetime management

 

필터는 다음과 같은 경우 실용적이지 않을 수 있다.

 

  • 프레임의 새로운 유형/소스가 인식될 때마다 일부 필터는 다시 초기화 해야 한다.
  • Temporal filter는 보존되는 프레임 기록에 의존한다. 프레임 소스를 전환하면 보존된 기록이 무효화되고 필터가 작동하지 않는다. 따라서 카메라 소스별로 필터 파이프를 설정하고 유지하는 것이 좋다. 필터는 원본 데이터를 유지하고 항상 전달된 새 프레임을 생성한다. 새프레임을 재생성하면 다른 사용자가 데이터를 덮어쓸 위험없이 다른 사용자(Thread) 간에 프레임을 공유할 수 있다.

 

모든 필터는 부동 소수점 일력 데이터를 지원하고 있다.

 

Using Filters in application code

 

Depth Frame >> Decimation Filter >> Depth2Disparity Transform** -> Spatial Filter >> Temporal Filter >> Disparity2Depth Transform** >> Hole Filling Filter >> Filtered Depth.

 

'IT > 영상처리' 카테고리의 다른 글

[OpenCV] Video 읽어 보여주기  (0) 2022.05.17
[OpenCV] 이미지 읽기와 쓰기  (2) 2022.05.17
[Facebook] Spark AR  (0) 2022.05.17
[OpenCV] OpenCV-Python 준비  (0) 2022.05.17
[OpenCV] 소개  (0) 2022.05.17