---
title: 紹介論文 : S.W. Hasinoff et. al, “Burst photography for high dynamic range and low light imaging on mobile cameras”
tags:  #night sight #hdr+  
author: [モルフォ](https://convert.docswell.com/user/Morpho)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/LE3R29RQ75.jpg?width=480
description: 2020/04/06公開 Tech Blog:「(文献紹介) HDR+, Night Sight」内資料  https://techblog.morphoinc.com/entry/2020/04/06/105153
published: April 06, 20
canonical: https://convert.docswell.com/s/Morpho/5MX7JJ-2020-04-06
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/LE3R29RQ75.jpg)

紹介論文 :
S.W. Hasinoff et. al,
“Burst photography for high dynamic range and
low-light imaging on mobile cameras”
CTO室 松尾恒


# Page. 2

![Page Image](https://bcdn.docswell.com/page/8EDYZGYWEG.jpg)

概要
• Google Pixel HDR+ の元論文
• Burst撮影(同じ露光時間での撮影)画像の複数入力
• Bayerでのデノイズ (複数枚入力)
• 要素技術
– 適切な露出とゲインの推定方法
– アライメント
– 複数枚合成, 空間フィルタ
– Dynamic Range Compression (HDR画像 → 最終画像)
• SIGGRAPH Asia 2016のスライドから図を引用
1


# Page. 3

![Page Image](https://bcdn.docswell.com/page/V7P6D36XJ8.jpg)

撮影方式の比較
• 基本的に複数枚合成により HDR, Denoise を実行
• どのような撮影手段を使用するかには自由度がある
• 短時間露出と長時間露出の組み合わせ (Bracket撮影)
– メリット : SN比が高い
– デメリット : 合成が難しい
• 複数枚の短時間露出画像のみを合成 (Burst撮影)
– SN比がそこそこ かつ 合成がロバスト
– 紹介論文ではこちらを採用
2


# Page. 4

![Page Image](https://bcdn.docswell.com/page/2JV31433EQ.jpg)

概要図
1. 露出時間の決定
適正な露光時間を決定
Preview画像 (既存ISP)
3. Bayer → RGB &amp; Tone mapping
2. 位置合わせと合成(時間的デノイズ)
（表示可能なように調整）
Burst画像 (Bayer) 10bit
合成画像 (Bayer) 14bit
3
最終画像(RGB, SDR) 8bit


# Page. 5

![Page Image](https://bcdn.docswell.com/page/5EG3213Y7L.jpg)

自動露出
• Preview画像(ISP) → 短時間露出, 長時間露出 の適正値を予測
– Burst撮影なのになぜ必要？
– デノイズ後画像からDRCする際にその露出時間で合成した画像を用いるため
• 5000シーンのデータセットから学習
• {max,ave}(R,G,B)のヒストグラムを特徴量として最近傍探索
– 画像中央、 顔を重視するように重み
• 撮影枚数は2-8枚
4


# Page. 6

![Page Image](https://bcdn.docswell.com/page/4JQ5PD567P.jpg)

アライメント
• Local motionの結果を使って合成用のアライメント(位置合わせ)を実行
• 撮影直後でもっともSharpな画像をReference画像に設定
– Sharp度はG画像の微分の総和
• Bayer→Bayerの合成処理だが2pixelの精度で推定
– BayerのRGGBを平均して1pixelにしてpixel精度で推定
– 超解像的なことはしない
– 合成する際に同じ色が対応なので分かりやすい
5


# Page. 7

![Page Image](https://bcdn.docswell.com/page/K749YZ9ME1.jpg)

多重解像度でのアライメント
• アライメント自体は多重解像度で実行
– 基本的にはブロックマッチング (タイルサイズは16程度)
– 粗い層ではL2損失でブロックマッチ、二次関数近似でサブピクセル単位推定
• Fast Fourier Transformによるブロックマッチ高速化を使用
• アップスケーリングが4xと急であるため高精度の必要性あり
– 細かい層ではL1損失でブロックマッチ
4x
• NEONで高速化
– アップスケーリングしてその周辺領域を探索
4x
• 複数候補から探索 : 最近傍 + 2候補
2x
6


# Page. 8

![Page Image](https://bcdn.docswell.com/page/LJ1K6RKY7G.jpg)

複数枚合成
• アライメントの結果を使って各チャンネル別にパッチ単位で合成
– 画像の空間ではなくて周波数空間で合成
• 周波数空間でのデノイズは（理論的な）性質がよい場合が多い
– 基本的にReferenceに近い場合のみ合成
• アライメントの結果は必ずしも信用できない (推定ミス)
• 動物体が存在する可能性
reference tile
merged tile
• パッチは窓で畳み込んで重複抽出して合成
aligned alternate tiles
7
出典 : HDR+ talk (SIGGRAPH Asia 2016)


# Page. 9

![Page Image](https://bcdn.docswell.com/page/GJWDW1D172.jpg)

周波数領域での合成
• 各パッチのFFT結果 : 𝑇𝑧 𝜔 (𝑧 = 0 … 𝑁 − 1)
– Reference画像 (𝑧 = 0)
• Shrinkageで各画像がどれほど寄与するか？𝐴𝑧 𝜔 を決定
෪0 𝜔 =
𝑇
1
෍ 𝑇𝑧 𝜔 + 𝐴𝑧 𝜔 [𝑇0 𝜔 − 𝑇𝑧 (𝜔)]
𝑁
𝑧
入力
2
𝐷𝑧 𝜔
𝐴𝑧 𝜔 =
𝐷𝑧 𝜔 2 + 𝑐𝜎 2
差異 𝐷𝑧 が大きい → 𝐴𝑧 ∼ 0
𝜎 2 はパッチ内の分散から計算
𝐷𝑧 𝜔 = 𝑇0 𝜔 − 𝑇𝑧 (𝜔)
差異 𝐷𝑧 が小さい → 𝐴𝑧 ∼ 1
結果
出典 : HDR+ talk (SIGGRAPH Asia 2016)


# Page. 10

![Page Image](https://bcdn.docswell.com/page/4EZG5PGXJ3.jpg)

空間的なデノイズ
• パッチ単位のFFT係数をShrink (Wiener Filter)
– N枚合成なのでノイズ分散は1/Nと推定
• 周波特性を𝑓 𝜔 で導入
– 高周波は積極的に消しても目立たないという性質
෢0 𝜔 = 𝑇
෪0 𝜔 ∗
𝑇
෪0 𝜔
𝑇
෪0 𝜔
𝑇
2
2
𝜎2
+𝑓 𝜔
𝑁
9


# Page. 11

![Page Image](https://bcdn.docswell.com/page/Y76Y9MYPEV.jpg)

Bayer → 実画像
• ISP任せのパイプラインを自前で実装
1. Black-level subtraction
2. Lens shading correction
3. White Balancing
4. Demosaicking
5. Chroma denoising
6. Color correction
7. Dynamic range compression : 後述
8. Global tone adjustment
9. Chromatic aberration correction
10.Hue-specific color adjustments
11.Dithering
10


# Page. 12

![Page Image](https://bcdn.docswell.com/page/G75GNZGP74.jpg)

Dynamic range compression
• 合成結果の画像14bit → 表示用の8bit 画像への変換
• Local Tone Mapping的な処理
– 短時間露光画像、長時間露光画像を擬似的に生成 → WDRで実現
– ここではGrayscaleのみで実行して色は元画像から計算
– Exposure Fusion (後述) を使用
– 短時間・長時間の比が達成される圧縮されるDynamic Rangeを決定
11


# Page. 13

![Page Image](https://bcdn.docswell.com/page/9J2Y5RYZJR.jpg)

Exposure Fusion [Mertens+09]
• 露出の違う撮影画像から局所的なコントラストが高い画像を合成
• 基本的に加算処理、局所的にスコアが高い場所を重み付け
• Laplacian Pyramidで処理することで違和感のない絵に
出典 : [Mertens+09] Fig.2 より引用
12


# Page. 14

![Page Image](https://bcdn.docswell.com/page/DEYGKDGNEM.jpg)

Exposure Fusion : スコア
• Contrast 𝐶𝑖𝑗,𝑘
– Laplacian Filterの絶対値 (エッジ・テクスチャで高い)
• Saturation 𝑆𝑖𝑗,𝑘
– 各ピクセルでのR, G, Bの分散
• Well-exposedness 𝐸𝑖𝑗,𝑘
𝑝𝑐 −0.5 2
– どの程度中心の値(0.5)に近いか？ ς𝑐 exp(−
)
2
2𝜎
を総合したスコア 𝑊𝑖𝑗,𝑘 = 𝐶𝑖𝑗,𝑘
𝜔𝐶
× 𝑆𝑖𝑗,𝑘
13
𝜔𝑆
× 𝐸𝑖𝑗,𝑘
𝜔𝐸


# Page. 15

![Page Image](https://bcdn.docswell.com/page/VJNGR6GV78.jpg)

Exposure Fusion : 合成
• Naïveには各ピクセルでスコアを規格化して加算すればよい
෡𝑖𝑗,𝑘 = σ′𝑘 𝑊𝑖𝑗,𝑘 ′
–𝑊
−1
෡𝑖𝑗,𝑘 𝐼𝑖𝑗,𝑘
𝑊𝑖𝑗,𝑘 , 𝑅𝑖𝑗 = σ𝑘 𝑊
– しかしこの方法だと係数の変動が急すぎるのでアーティファクトが発生
– Laplacian Pyramidで合成
出典 : [Mertens+09] Fig. 3 より引用
14


# Page. 16

![Page Image](https://bcdn.docswell.com/page/YE9WMLWVE3.jpg)

HDR+ 結果
出典 : [Hasinoff+16] Fig. 10 より引用
15


# Page. 17

![Page Image](https://bcdn.docswell.com/page/GE8NLXN47D.jpg)

HDR+ 失敗例
出典 : [Hasinoff+16] Fig. 11 より引用
16


# Page. 18

![Page Image](https://bcdn.docswell.com/page/LELPL8PV7R.jpg)

紹介論文 :
O. Liba et. al,
“Handheld Mobile Photography in Very Low Light”
CTO室 松尾恒


# Page. 19

![Page Image](https://bcdn.docswell.com/page/4JM4M64N7W.jpg)

概要
• Google Pixel Night Sight の元論文
• 基本的にHDR+の方法を踏襲 + Low Light用の処理
• 要素技術
– モーション推定に基づく適切な露出とゲインの推定方法
– アライメント
– 複数枚合成, 空間フィルタ
– Auto White Balance
– Tone Mapping
18


# Page. 20

![Page Image](https://bcdn.docswell.com/page/PJRWVPW479.jpg)

Night Sightの要件
1. 手持ちでの撮影が可能
2. フラッシュは使用しない
3. 特にユーザー操作は必要がない
4. 撮影時間は6秒以内
5. ブラーがでない程度に合成
6. ノイズを軽減してテクスチャを保持
7. 人間の感性にあったホワイトバランス
8. 処理時間そのものは2秒以内
これらを満たす実装が要求
19


# Page. 21

![Page Image](https://bcdn.docswell.com/page/PEXPZ3PZ7X.jpg)

Night Sightの概要
その要件を満たすように各要素技術を提案
出典 : [Liba+19] Fig. 2より引用
1. モーション推定 : ブラーを検出して適切な露出時間・ゲインを設定
2. モーションに対してロバストな合成 : 既存の合成 + ゴーストマスクを設定
3. 低露光用のホワイトバランス : 光源に依存せず色恒常性により調整
4. 特化したトーンマッピング : シーンが暗いことを変えずにdetailを決定
20


# Page. 22

![Page Image](https://bcdn.docswell.com/page/3EKD8YDVJD.jpg)

1. モーション推定 &amp; 露出時間の決定
HDR+ なるべく低露出
→ Night Sight モーション量で適切な露光時間を決定
1. Motion推定 (局所的動き → 画面全体の動き量を推定)
2. Motionの時系列分布の予測
3. 予測分布から露出を決定
21


# Page. 23

![Page Image](https://bcdn.docswell.com/page/L73R29PQJ5.jpg)

1-1. Local Motion推定 (Bounded Flow)
Local Motionの下界だけを推定したい
輝度不変の式 : 𝐼𝑡 𝑥, 𝑦 = ∇𝐼 𝑥, 𝑦 𝑇 𝑣(𝑥, 𝑦)
𝐼𝑡 𝑥, 𝑦
≤ |∇𝐼 𝑥, 𝑦 | |𝑣 𝑥, 𝑦 |
𝐼𝑡 𝑥, 𝑦
|𝑣 𝑥, 𝑦 | ≥
|∇𝐼 𝑥, 𝑦 |
(速度の下限)
1. 各ピクセルについて右辺を計算
2. ノイズ領域 ∶ |𝑣 𝑥, 𝑦 | &lt; 𝐾𝜎 を除外
3. 縮小して各ビンの 90%percentile を計算
4. 最終的には窓関数で畳み込んでスカラーに
ノイズ特性はBayerなので分散 ~ 平均
22
(CS不等式)


# Page. 24

![Page Image](https://bcdn.docswell.com/page/87DYZGLW7G.jpg)

1-2. モーション分布の予測
Referenceが許容可能なモーション以下であればよいという想定
→ K枚Burst撮影した際に最も小さいモーションの確率分布を考えたい
i.i.d だと思ってモーションの分布をGMMで推定
𝑣min = min 𝑣 𝑠. 𝑡. Pr 𝑣 ≥ min 𝑣𝑘 ≥ 𝑃𝑐𝑜𝑛𝑓
Pr 𝑣 ≥ min 𝑣𝑘 = 1 − Pr 𝑣 ≤ 𝑣𝑘 𝐾 の関係式から計算
GMMのCDFをテーブル化して二部探索で求める
23


# Page. 25

![Page Image](https://bcdn.docswell.com/page/VJP6D32XE8.jpg)

1-3. 露出時間の決定
モーションの大きさに従って動的に露出時間を変更
𝐵
𝐵
(𝑡exp =
𝑣
min
出典 : [Liba+19] Fig. 7 より引用
𝐵
明るさによって変更するが、なるべく 𝑡exp
以上に設定したくない
24
)


# Page. 26

![Page Image](https://bcdn.docswell.com/page/2EV314D37Q.jpg)

2. モーションに対してロバストな合成
HDR+ :
Night Sight :
𝐷𝑧 𝜔 2
𝐴𝑧 𝜔 =
𝐷𝑧 𝜔 2 + 𝑐𝜎 2
𝐷𝑧 𝜔 2
𝐴𝑧 𝜔 =
𝐷𝑧 𝜔 2 + 𝑐𝑓𝑧 (𝑚𝑧 )𝜎𝑧2
Temporal strength : c
𝑑𝑧2
𝑑𝑧 ∶ パッチの𝐿1距離
𝑚𝑧 = 2
2
𝑑𝑧 + 𝑠𝜎𝑧
* 平坦領域は強めにデノイズ
* チャンネル毎には共通の𝐴𝑧 を使用
出典 : [Liba+19] Fig. 9 より引用
25


# Page. 27

![Page Image](https://bcdn.docswell.com/page/57G321YYJL.jpg)

2. モーションに対してロバストな合成 : 空間平均
𝜎2
HDR+ : 空間的デノイズの強度は固定で
𝑁
Night Sight : 時間的デノイズの推定ノイズ量を使用
時間的なデノイズが足りない部分は空間デノイズで補助


# Page. 28

![Page Image](https://bcdn.docswell.com/page/4EQ5PDM6JP.jpg)

3.低露光用のホワイトバランス
ホワイトバランスも低露光用に調整する必要があり
→ シーンのすべてが単一光源でその色がつく状況が多い
AWBの手法を単一光源状況の損失に調整して対応
例：光源が青しかないので通常のホワイトバランス推定手法だと問題がある
27


# Page. 29

![Page Image](https://bcdn.docswell.com/page/KJ49YZVM71.jpg)

4.特化したトーンマッピング
HDR+ &amp; ローライトという状況に適したトーンマッピング
1. ノイズが目立つのを無視してもゲインを上げる
2. 影の部分のコントラストを上げすぎない
3. 彩度を高めに調整
具体的方法 : 長時間露出・短時間露出のゲインを調整
28


# Page. 30

![Page Image](https://bcdn.docswell.com/page/LE1K6R3YJG.jpg)

結果
出典 : [Liba+19] Fig.17 より引用
29


# Page. 31

![Page Image](https://bcdn.docswell.com/page/GEWDW1P1J2.jpg)

結果
出典 : [Liba+19] Fig. 24 より引用
30


# Page. 32

![Page Image](https://bcdn.docswell.com/page/47ZG5PKXE3.jpg)

引用文献
• [Hasinoff+06]: S. Hasinoff, D. Sharlet, R. Geiss, A. Adams, J. T. Barron, F. Kainz J. Chen
and M. Levoy, “Burst photography for high dynamic range and low-light imaging on mobile
cameras”, SIGGRAPH Asia, 2016.
• [Mertens+07]: T. Mertens, J. Kautz and F. V. Reeth, “Exposure Fusion”, 15th Pacific
Conference on Computer Graphics and Applications, 2007.
• [Liba+19] : O. Liba, K. Murthy, Y. T. Tsai, T. Brooks, T. Xue, N. Karnad, Q. He, J. T.
Barron, D. Sharlet, R. Geiss, S. W. Hasinoff, Y. Pritch and M. Levoy, “Handheld mobile
photography in very low light”, ACM Trans. Graph, vol. 38, pp.164:1-164:16, 2019.
31


