Source-linked AI summary

Synthetic Depth-of-Field with a Single-Camera Mobile Phone

Neal Wadhwa, Rahul Garg, David E. Jacobs, Bryan E. Feldman, Nori Kanazawa, Robert Carroll, Yair Movshovitz-Attias, Jonathan T. Barron, Yael Pritch, Marc Levoy

arXiv:1806.04171v1cs.CVcs.GR

TL;DR

일반적인 모바일 카메라는 피사체를 분리하는 데 쓰이는 얕은 피사계 심도를 광학적으로 구현할 수 없으며, 기존 대안은 추가 하드웨어나 카메라 움직임을 요구할 수 있다. 이 논문은 단일 카메라 폰에서 person segmentation과 dual-pixel depth를 결합해 합성 defocus를 렌더링하며, 64장 이미지 연구에서 사용자 6명 모두 그 결과를 선호했다.

  • 문제

    일반적인 모바일 카메라는 거의 전체가 초점이 맞은 이미지를 포착하므로, 추가 하드웨어나 카메라 움직임 없이는 얕은 피사계 심도를 구현하기 어렵다.

  • 방법

    이 시스템은 person-and-accessory segmentation과 dense dual-pixel depth를 결합하고, 이를 이용해 세 가지 모바일 카메라 파이프라인을 통해 합성 얕은 피사계 심도 이미지를 렌더링한다.

  • 결과

    64장 이미지에서 사용자 6명 모두 두 가지 ablation과 두 가지 baseline보다 이 방법을 선호했으며, 세 파이프라인 모두 4초 미만에 실행되었다.

  • 시사점 및 한계

    모듈형 시스템은 사람이나 사물이 있는 장면에서, 그리고 dual-pixel 하드웨어의 유무와 관계없이 단일 카메라 모바일 폰에서 합성 얕은 피사계 심도를 지원한다.

  • 시사점 및 한계

    광학 수차와 pixel-split variation으로 인해 프레임 전반의 blur kernel이 크게 달라질 수 있으며, 이는 imaging model의 정확도를 제한한다.

Abstract

from arXiv · show

Shallow depth-of-field is commonly used by photographers to isolate a subject from a distracting background. However, standard cell phone cameras cannot produce such images optically, as their short focal lengths and small apertures capture nearly all-in-focus images. We present a system to computationally synthesize shallow depth-of-field images with a single mobile camera and a single button press. If the image is of a person, we use a person segmentation network to separate the person and their accessories from the background. If available, we also use dense dual-pixel auto-focus hardware, effectively a 2-sample light field with an approximately 1 millimeter baseline, to compute a dense depth map. These two signals are combined and used to render a defocused image. Our system can process a 5.4 megapixel image in 4 seconds on a mobile phone, is fully automatic, and is robust enough to be used by non-experts. The modular nature of our system allows it to degrade naturally in the absence of a dual-pixel sensor or a human subject.

1 서론

단일 버튼 입력으로 다양한 mobile camera에서 얕은 피사계 심도 이미지를 합성하는 fully automatic system을 소개한다. 사용 가능한 경우 person segmentation과 dual-pixel depth를 결합하며, selfie와 object photo에 자연스러운 fallback mode를 지원하고 mobile device에서 depth-dependent blur를 효율적으로 렌더링한다.

  • 1 서론: 이 system은 학습받지 않은 사진가도 camera를 움직이거나 추가 조작, specialized hardware 없이 단일 버튼 입력으로 설득력 있는 얕은 피사계 심도 이미지를 촬영할 수 있게 한다.요구사항은 빠른 처리, high-resolution output, subject는 선명하게 유지하면서 자연스러운 blur를 생성하는 능력, 다양한 장면에서의 동작을 포함한다.
  • 1 서론: 이 방법은 neural person-and-accessory segmentation과 dual-pixel imagery를 결합하며, dual-pixel imagery는 사용 가능한 경우 약 1 millimeter baseline을 갖는 two-sample light field를 제공한다.segmentation network는 image와 face position을 사용해 사람이나 들고 있는 물체에 속하는 pixel을 추론하고, dual-pixel data는 depth cue를 제공한다.
  • 1 서론: 이 system은 front-camera selfie에는 segmentation만 사용하고, rear-camera 인물 사진에는 segmentation과 dual-pixel depth를 결합하며, object photo에는 dual-pixel depth만 사용해 자연스럽게 성능이 저하된다.먼 배경을 둔 일반적인 selfie에서는 균일한 background blur로 충분하지만, rear-camera 장면에서는 부자연스러운 blur를 피하려면 depth variation이 필요하다.
  • 1 서론: burst alignment, stereo estimation, optical-aberration calibration 이후 dual-pixel disparity가 synthetic shallow-depth blur를 유도하며, layered disk splatting과 compositing이 매끄러운 depth-dependent rendering을 생성한다.rendering으로 인해 noise가 유지되는 in-focus 영역과 인접한 defocused 영역의 camera noise가 줄어들기 때문에, defocused 영역에 synthetic noise를 추가한다.
  • 1 서론: 강제 적용되는 1.5× digital zoom은 사진가가 subject에서 더 멀리 떨어지게 해 portrait perspective를 개선하고, processing 규모를 12 megapixels에서 5.4 megapixels로 줄인다.일반적인 mobile camera의 넓은 field of view는 가까이서 촬영하도록 유도해 얼굴을 왜곡할 수 있다.

2 관련 연구 · 3 사람 분할

이 논문은 합성 얕은 피사계 심도 렌더링을 시차 기반 방법과 monocular depth 방법의 맥락에 배치한 뒤, 훨씬 적은 계산량으로 정확도를 높이는 모바일 효율적 사람 분할 시스템을 제시한다. 파이프라인은 대규모 학습 데이터, 단계적 학습, 얼굴 유도 추론, edge-aware mask refinement를 결합한다.

  • 2 관련 연구: 2 관련 연구: 기존 single-camera 방법은 시차를 얻기 위해 의도적인 이동이나 우연한 손떨림을 사용하지만, 카메라 움직임이 충분한 시차를 제공하지 못하면 자주 실패한다.Monocular 방법은 대신 inverse rendering이나 supervised learning을 통해 depth를 추론하지만, 문제는 여전히 제약이 매우 큰 상태로 남는다.
  • 2 관련 연구: 2 관련 연구: Shen et al. [2016a]와 [2016b]는 단순화된 depth 가정 아래 사람을 분할하고 배경을 흐리게 하지만, 이러한 접근법은 계산 비용이 높고 사람이 없거나 복잡한 장면에서는 실패한다.이후 방법은 differentiable matting layer를 추가했으며, Zhu et al. [2017]은 더 작은 network를 사용한다.
  • 3 사람 분할: 3 사람 분할: 이 시스템은 사람과 accessories를 독립적으로 분할하는 동시에 noisy dual-pixel disparity를 보완하며, 전용 학습과 edge-aware filtering 기여를 포함한 빠르고 정확한 mobile model을 사용한다.이 방법은 모바일 이미지에서 사람을 묘사하는 상당한 비율을 대상으로 한다.
  • 3.1 데이터 수집: 3.1 데이터 수집: 학습에는 polygon mask가 있는 122k Flickr images와 227k person instances를 포함하는 73k pose-labeled images를 사용하며, 연속적인 데이터 개선을 통해 defocused-portrait 품질을 향상했다.저자들은 다양한 pose, 품질이 낮은 image의 제거, 부정확한 mask의 정제를 강조한다.
  • 3.2 학습: 3.2 학습: architecture는 intermediate supervision을 적용한 three U-Nets를 쌓고, 4-channel 256 × 256 RGB-plus-face-location input을 사용하며, error-based pruning을 포함한 단계적 segmentation 및 pose 학습을 수행한다.학습에는 이후 511k로 pruning된 660k images, 1700 images로 구성된 evaluation set, 10개 machine의 40 GPUs에서 한 달이 사용되었다.
  • 3.3 추론; 3.4 Segmentation Mask의 Edge-Aware Filtering: 3.3 추론 및 3.4 Edge-Aware Filtering: face-detector rectangle이 segmentation의 seed가 되며, low-resolution mask를 upsample한 뒤 image-edge guidance를 사용해 경계를 효율적으로 개선한다.방관자의 포함을 줄이려면 face가 지정된 상대적 크기 threshold를 초과해야 하며, filtering은 근사적인 training mask도 정제하고 subsequent smoothing 및 joint bilateral upsampling과 함께 bilateral solver를 사용한다.
  • 3.5 정확도 및 효율성: 3.5 정확도 및 효율성: inference당 3.07 Giga-flops로, PortraitFCN+의 607 및 Mask-RCNN의 3160보다 낮으며, model은 PortraitFCN+보다 높은 정확도를 달성하고 Mask-RCNN보다 낮은 결과를 보인다.비교에는 evaluation datasets에서의 mean IoU를 사용하며, Mask-RCNN은 상당히 더 큰 model로도 설명된다.

4 듀얼 픽셀 카메라에서 얻는 깊이

Dual-pixel 센서는 약 1 mm baseline을 갖는 동기화된 동일 노출의 두 시점을 제공하므로, 좁은 stereo geometry에서도 dense disparity estimation이 가능하다. 시스템은 burst frame을 denoise하고 disparity를 추정·보정하며, segmentation cue를 사용해 피사체를 초점 내에 유지하면서 얕은 depth of field를 합성한다.

  • Dual-pixel properties: DP 시점은 exposure, white balance, timing, sensor reference frame을 공유하며, small baseline 때문에 occlusion과 disparity search가 몇 픽셀 범위로 제한된다.동일한 single sensor를 사용하므로 standard stereo rectification은 불필요하지만, narrow baseline은 correspondence를 어렵게 만든다.
  • Disparity estimation: 알고리즘은 DP burst를 temporal denoise하고 두 시점을 matching한 뒤, dense depth를 생성하기 전에 lens aberration에 대한 spatially varying correction을 적용한다.Correspondence는 Anderson et al. [2016]을 확장하며, 이 correction은 lens aberration으로 인해 발생하는 depth-dependent disparity 변화를 보상한다.
  • Denoising DP frames: Burst denoising은 low-light 장면에서 background disparity를 복원하므로, single-frame DP data가 지나치게 noisy할 때에도 background를 blur할 수 있다.정렬된 6개 frame을 robust하게 평균하면 꽃과 더 먼 background를 구분하기에 충분한 signal을 얻을 수 있다.
  • Disparity estimation: 각 8 × 8 DP tile은 SSD를 사용해 −3 to 3 pixels의 shift 범위에서 matching하며, quadratic fit으로 sub-pixel disparity estimate를 얻는다.Tile confidence는 SSD loss, horizontal gradient, competing minimum 및 관련 heuristic을 사용한다.
  • Subject-aware depth: 사람의 경우 이 방법은 segmentation mask 내부에 weighted average face disparity를 할당해 피사체를 초점 내에 유지하고, 문제가 되는 subject-depth error를 줄인다.CNN output Mc(x) > 0.94인 pixel을 interior pixel로 처리하므로, 깊이가 매우 다른 두 사람이 결과적으로 모두 초점 내에 나타날 수 있다.

5 렌더링

렌더링 단계에서는 disparity subimage에 disparity에 따라 달라지는 disk blur를 적용한 뒤 compositing, gamma correction, noise 추가를 수행해 얕은 피사계 심도를 합성한다. 모바일 처리를 위해 효율적인 근사를 사용하면서 피사체가 보기 좋게 분리되도록 focus와 blur 강도를 조정한다.

  • 렌더링 파이프라인: 파이프라인은 disk kernel을 미리 계산하고 disparity 범위별 subimage에 적용한 다음, 결과를 compositing하고 gamma correction과 synthetic noise 추가를 수행한다.렌더링에는 smoothing된 disparity와 linear-color 입력 이미지를 사용해 defocused 영역의 highlights를 보존한다.
  • Focus와 blur 매핑: 이 방법은 초점이 잘 맞은 detected face, 사용자 tap 또는 autofocus에서 focus disparity를 선택한 뒤, 그 주변 구간을 zero blur radius로 보존한다.이렇게 확장된 선명 영역은 피사체 전체를 focus 상태로 유지하며 초보자도 효과를 쉽게 조절할 수 있게 한다.
  • Focus와 blur 매핑: Blur radius는 focus distance에 따라 조정하고 rmax = 30 pixels로 제한하며, 더 부드러운 전환을 위해 서로 겹치는 disparity band를 통해 적용한다.Blur-strength function은 더 먼 거리에 초점을 맞춘 장면에서 disparity 범위가 더 작아지는 현상을 보정하며, 인접한 band는 일반적으로 25% 겹친다.
  • 효율적인 disk blurring: 공간적으로 변하는 kernel에서 발생하는 artifact를 피하기 위해, 큰 disk blur에는 지나치게 비용이 큰 full-range gather 연산 대신 sparse-gradient processing을 사용한다.Naive한 single-pass 또는 gather 기반 접근법은 foreground-background color halo를 만들 수 있지만, 제안 방법은 효율적인 scatter와 유사한 동작을 목표로 한다.
  • 효율적인 disk blurring: Half resolution에서 blur를 수행하면 full resolution으로 upsampling하기 전에 지각 가능한 품질 손실을 거의 없이 8× speedup을 얻을 수 있다.동등한 외관을 유지하기 위해 blur radius도 절반으로 줄인다.

6 결과

세 가지 파이프라인에 걸친 64-image 연구에서 모든 사용자가 이 시스템을 선호했으며, 상호 보완적인 segmentation 및 disparity 오류에도 강건하고, 2688 × 2016 이미지를 4초 이내에 처리한다. 그러나 실제 배포 환경에서는 face detection, 배경, 사람 이외의 장면과 관련된 실패 모드가 여전히 존재한다.

  • 6 결과: 세 가지 파이프라인은 dual-pixel 하드웨어를 사용하는 사람, dual-pixel 하드웨어를 사용하는 사물, 그리고 segmentation만으로 처리하는 dual-pixel 데이터가 없는 사람을 포괄한다.DP + Segmentation은 disparity와 segmentation mask를 결합하고, DP only는 mask를 생략하며, Segmentation only는 dual-pixel 하드웨어 없이 적용된다.
  • 6 결과: 모든 사용자는 64 images에 걸쳐 두 가지 ablation, Shen et al. [2016a], Barron et al. [2015]보다 제안 방법을 선호했다.연구에는 6명이 참여해 5개 알고리즘을 비교했으며, 두 ablation은 일관되게 선호도에서 두 번째와 세 번째를 차지했다.
  • 6 결과: Face-detection 실패는 사람을 배경 속으로 흐리게 만들 수 있으며, disparity 오류는 배경이나 사람이 없는 이미지에 남을 수 있다.Dual-pixel 데이터는 피사체의 깊이에 있는 사람에서 face-detection 실패를 종종 완화하지만, DP 데이터가 없을 때는 정확한 face detection이 여전히 중요하다.
  • 6 결과: Segmentation mask와 disparity를 결합하면 쿠션을 흐리게 만드는 segmentation 오류와 질감이 없는 팔에서의 잘못된 depth 추정에 강건해진다.Segmentation-only 방법은 피사체 가까이의 쿠션을 흐리게 하는 반면, depth 기반 방법은 어둡고 질감이 없는 팔에서 disparity를 잘못 추정한다. 결합 방법은 두 오류를 모두 피한다.
  • 6 결과: 2688 × 2016 해상도의 325개 예시는 모두 고성능 mobile phone에서 4초 이내에 처리된다.시스템은 Halide로 구현되었고, 2.35 GHz에서 동작하는 4개 코어와 1.9 GHz에서 동작하는 4개 코어로 구성된 eight-core CPU에 맞춰 수동으로 스케줄링되었다.

7 논의 및 향후 연구

이 시스템은 person segmentation과 dense dual-pixel depth를 결합해 single-camera mobile phone에서 synthetic shallow depth-of-field 이미지를 생성하며, Google Pixel 스마트폰에서는 “Portrait Mode”로 판매된다. 향후 연구로는 더 다양한 피사체 유형의 segmentation과 비사실적 foreground–background separation 탐색이 포함된다.

  • 7 논의 및 향후 연구: 이 시스템은 person segmentation과 dense dual-pixel depth를 결합해 카메라가 한 대뿐인 휴대전화에서 synthetic shallow depth-of-field 이미지를 생성한다.다양한 예시를 통해 제시되었으며, 다른 synthetic shallow depth-of-field 방법들과 비교되었다.
  • 7 논의 및 향후 연구: 이 방법은 Google Pixel 및 Pixel XL 스마트폰에서 “Portrait Mode”로 판매된다.
  • 7 논의 및 향후 연구: 향후 연구에서는 segmentation을 반려동물, 음식 및 기타 촬영 대상물로 확장하는 한편, 채도 감소, stylization 또는 기타 비사실적 foreground–background separation을 탐색할 수 있다.이러한 대안은 depth-of-field를 사실적으로 시뮬레이션하기보다 피사체에 주의를 집중시키는 것을 목표로 한다.

1 합성 데이터의 유용성

합성 데이터 augmentation은 segmentation-network 정확도를 높여 augmentation 없이 학습한 경우보다 error rate를 낮춘다. 평가는 예측 mask와 reference mask의 gradient 간 mean sum of squared error를 사용해 mask-boundary 정확도를 중점적으로 측정한다.

  • 1 합성 데이터의 유용성: 합성 데이터 augmentation은 Fig. 1의 training iteration별 evaluation accuracy에서 보이듯이 augmentation 없이 학습한 경우보다 segmentation error rate를 낮춘다.이 metric은 예측 mask와 reference mask의 gradient 간 mean sum of squared error를 통해 mask boundary를 중점적으로 평가한다.

2 시차 계산 세부 사항

시스템은 local normalization을 통해 dual-pixel view 간 밝기 차이를 보정한 뒤, calibration image와 수평 움직임에 맞게 조정한 smooth optical-flow method로 시차를 계산한다.

  • Calibration disparity: 평면 calibration target에서는 시차가 depth edge 없이 smooth해야 하므로 Liu’s optical flow [2009]를 적용한다.optical flow를 적용하기 전에 dual-pixel image를 normalize한다.
  • Brightness normalization: Local normalization은 9 × 9 window에서 각 view의 local mean과 standard deviation을 일치시켜 dual-pixel 밝기 변동을 줄인다.각 image는 local mean을 빼고 local standard deviation에 0.001을 더한 값으로 나누어 normalize하며, Fig. 2에서 그 결과로 감소한 변동을 시각화한다.
  • Calibration disparity: Calibration flow는 horizontal motion으로 제한하며 L2 smoothness loss와 L1 data loss를 사용한다.

3 시차에서 깊이 계산

이 절에서는 dual-pixel 시차와 장면 깊이의 관계를 유도해, 시차가 부호 있는 blur에 대략 비례하고 일반적인 smartphone-camera 조건에서 역깊이와 선형 관계를 이룸을 보인다.

  • 3 시차에서 깊이 계산: 시차 d는 부호 있는 blur 크기 ¯b에 대략 비례하며, 기하학적 방정식을 결합하면 시차 d와 역깊이 1/D 사이의 선형 관계를 얻는다.일반적인 smartphone 초점 거리가 대략 5 mm인 반면 초점 거리가 10 cm를 초과하므로 이 근사가 정당화된다.
  • 3 시차에서 깊이 계산: 얇은 렌즈 방정식과 닮은꼴 삼각형 기하를 사용해, 물체 거리, 초점 거리, 렌즈 파라미터, 센서 위치, blur 크기 사이의 관계를 유도한다.거리 D에 있는 물체는 거리 D_i에서 선명한 상을 형성하며, defocus는 렌즈 기하에 의해 결정되는 blur를 만든다.
  • 3 시차에서 깊이 계산: 제어된 dual-pixel 실험은 데이터를 정렬하고 병합하면 시차 노이즈가 감소함을 보이며, 깊이 노이즈는 초점이 맞은 장면 영역에서 가장 낮게 나타난다.실험에서는 여러 초점 거리에 걸쳐 광량과 대상 깊이를 변화시킨다.

4 DP 데이터에 대한 통제 실험

Dual-pixel 데이터에 대한 통제 실험에서 다양한 조명 및 초점 조건에 따른 disparity 정확도를 측정했다. 정렬된 6개 프레임을 평균하면 noise가 감소했으며, 대상에 초점이 맞았을 때 depth noise가 가장 낮았다.

  • 실험 설정: 정면 평행한 textured target을 다양한 조도와 초점 거리에서 촬영하고, central field of view에서 disparity standard deviation을 오차로 측정했다.이미지 간 시차가 일정하게 유지되어야 하므로 보정 문제를 피하기 위해 시야의 중앙 사분의 일을 사용했다.
  • Noise와 조도: 5 lux에서 2배, 더 밝은 장면에서 1.5배 noise가 적은 정렬·평균된 6개 프레임이 단일 프레임 disparity보다 우수했다 (Fig. 3(a)).비교에는 정렬된 6개 프레임에서 얻은 disparity 값과 1개 프레임에서 얻은 disparity 값을 사용했다.
  • 초점 거리: textured target에 초점이 맞았을 때 depth noise가 가장 낮았으며 (Fig. 3(b)), 이는 초점에 따라 달라지는 image texture에 대한 민감성을 보여준다.이러한 민감성은 더 넓은 baseline stereo와 비교해 추가적인 문제를 제기한다. wide-baseline stereo는 더 거친 image content에 의존할 수 있다.

5 블러 파라미터

렌더링 파라미터는 주로 블러의 미학적 특성을 제어하며 경험적으로 조정되고, 정확한 값에는 민감하지 않다. 시스템은 시각적 품질과 효율성의 균형을 위해 블러 스케일, 초점 내 disparity 범위, segmentation 경계 전이, convolution 방식 선택을 조정한다.

  • 블러 파라미터는 수천 개의 렌더링 이미지를 시각화해 조정했으며, 주로 블러 강도와 depth of field에 영향을 주지만 시스템은 정확한 값에 비교적 민감하지 않다.
  • 블러 스케일 κ(·)는 이미지 크기 스케일링, 초점 거리 disparity 증폭, misfocus 보정 계수를 결합한다.
  • segmentation 경계 아티팩트를 줄이기 위해 d(x) − d_focus > 0인 전면 픽셀에는 일반 블러 스케일의 0.6×를 적용한다.
  • [d_focus − d∅, d_focus + d∅] 범위의 픽셀은 블러 처리되지 않으며, d∅는 κ로 스케일링하고 사람이 포함된 사진에서는 더 작게 설정한다.
  • 시스템은 작업 해상도 반경이 2.75-pixel에 이르면 brute-force convolution에서 가속화된 gradient-domain blur로 전환해 연산량과 kernel 이산화 오차 사이의 균형을 맞춘다.

6 노이즈 생성

시스템은 합성 defocus가 자연스럽게 보이도록 blur 영역에 noise를 주입하며, 카메라의 복잡한 imaging 및 post-processing pipeline 때문에 정확한 해석적 noise modeling이 어렵다는 점을 고려해 비모수적 접근을 사용한다.

  • 6 노이즈 생성: 합성 defocus에는 blur 영역에 noise를 주입해야 하지만, 카메라 pipeline은 정확한 parametric model을 적용하기에 지나치게 복잡하므로 시스템은 비모수적 접근을 채택한다.논문은 Gaussian noise와 같은 일반적인 model이 imaging 및 post-processing pipeline에서 자연적으로 발생하는 noise를 충분히 설명하지 못한다고 지적한다.

7 사용자 연구

사용자 연구에서는 비소속 참가자 6명이 쌍별 선호 판단을 통해 제안 방법, ablation, 기존 기법을 비교했다. 렌더링은 전체적으로 평가했으며, 이미지 간 차이를 강조하도록 자동 선택한 경계 크롭을 통해서도 평가했다.

  • 사용자 연구: 참가자들은 장면별 연속 쌍별 비교를 통해 나란히 표시된 두 렌더링 중 자신의 카메라가 생성하기를 선호하는 것을 선택했다.이후 우승 렌더링을 무작위로 선택한 다른 알고리즘의 렌더링과 비교했다.
  • 사용자 연구: 각 렌더링은 전체 이미지와 함께 이미지 간 분산이 최대가 되도록 선택한 서로 겹치지 않는 128 × 128 크롭 3개를 표시했으며, 사람이 있는 경우에는 사람 피사체 경계의 포함도 고려했다.이러한 제시는 장면 구성에 대한 전체적 평가와 국소적 평가를 모두 지원했다.
Loading 1806.04171v1…