Night Sight:Pixelスマートフォンで暗いシーンを綺麗に撮影する(2/3)

  • 2018.11.16
  • AI
Night Sight:Pixelスマートフォンで暗いシーンを綺麗に撮影する(2/3)

1.Night Sight:Pixelスマートフォンで暗いシーンを綺麗に撮影する(2/3)まとめ

・Pixel 3は自分が三脚の上にのっているのか手持ちなのか自動で検知する
・状況によって最適な露光時間とフレーム枚数が自動で選択される
・オートホワイトバランスも人工知能により優れた補正を提案してくる

2.Night Sightが目指した目標

以下、ai.googleblog.comより「Night Sight: Seeing in the Dark on Pixel Phones」の意訳です。元記事は2018年11月14日、Marc LevoyさんとYael Pritchさんによる投稿です。こちらからの続きです。続きはこちら

連続写真の撮影方法を自動で決定する
連続写真の各フレームの露光時間を長くするとSNRが向上し、より鮮明な写真を撮影する事ができますが、残念なことに2つの問題が発生します。

第1に、Pixelスマートホンのデフォルトの写真撮影モードは、ゼロシャッターラグ(ZSL)テクノロジーを使用しており、ZSLは露光時間を本質的に制限してしまうのです。

カメラを開くとPixelはすぐに、画像の取り込みを開始し、古いフレームを消去しつつ新しいフレーム取り込む循環作業を行います。シャッターボタンを押すと、最新の9または15フレームがHDR+またはSuper Res Zoomsoftwareに送信されます。つまり、シャッターを押す事はカメラが現在取り込んでいる画像を使って写真を合成する指示であり、シャッターに一切の遅延(ラグ)は存在せず、あなたが望む瞬間を正確に撮影するできることを意味します。そのため、ゼロシャッターラグという名前が付けられています。

しかし、HDR+は同じシーンを画面に表示しているため、どれだけ映している風景が暗くても露出を最大66msに制限し、ビューファインダーが少なくとも15フレーム/秒の表示速度を維持できるようにします。長時間の露出が必要な暗い場面では、Night Sightは、一般的なカメラと同じ動作、つまりシャッターボタンを押してから画像を取り込むポジティブシャッターラグ(PSL)を使用します。PSLを使用するということは、シャッターを押してから短時間カメラを静止させる必要があることを意味しますが、より長い露出を使用できるため、SNRが大幅に低下します。

フレームごとの露光時間を増やす事が引き起こす第2の問題は、モーションブラー、つまり手振れまたはシーン内の被写体の移動により写真がぶれてしまう事です。

Pixel 2とPixel 3に搭載されているOIS(光学式手ぶれ補正装置)は、中程度の露光時間(約1/8秒)であれば手ぶれによるブレを低減できますが、それ以上の露光時間や動く被写体には効果がありません。OISが解決できないモーションブラーに対処するため、Pixel 3のデフォルトの撮影モードでは、オプティカルフロー(撮影中の風景がどのように移動しているか?)を元に撮影状況を推測し、ボケを最小限にする露出時間を自動的に選択する「モーションメータリング」テクノロジーを使用します。

Pixel 1と2はデフォルトモードではモーションメータリングを使用しませんが、三世代全てのカメラのNight Sightモードで同様な手法が使用されます。カメラに動きがあまりない場合はフレームごとの露出時間が長く設定され、最大で333msになります。OISを持たないPixel 1では、露光時間が短くなります。(前面にある自撮り用カメラも、OISを搭載していないので、更に短くします)。

カメラが安定している場合(壁に当てていたり、三脚を使用しているケースなど)、各フレームの露出は最大1秒まで増加します。フレームごとの露出時間を変更することに加えて、取り込むフレームの数も変更します。スマートフォンが三脚にある場合は6、手持ちで揺れ動いている場合は最大15毎になります。これらのフレームの制限は、ユーザーの疲労(および撮影を失敗してキャンセルボタンを押す事)を防ぎます。したがって、どの世代のPixelを使用しているか?、背面カメラと前面カメラのどちらを使用しているか?手持ちか三脚か?被写体は動いているか?風景の明るさは?などなどの状況に応じて、Night Sightは最小で1/15秒間に15フレームから最大で1秒ごとに6フレームの間で最適な露光時間と連続撮影枚数を自動的に選択します。

被写体もしくはカメラに動きが検出されたときに、フレームごとの露出が調整される具体例を次に示します。


左:Pixel 3で撮影した15フレームの連続写真。中央:Night Sightでモーションメータリングを無効にして撮影した写真。この場合は73msの露出が使用されました。犬の頭部は動きのために少しぼやけています。右:Night Sightでモーションメータリングを有効にして撮影した写真。Pixel 3は動きを検知し、露出を48msに設定しました。右図の方がモーションブラーが少ないです。(写真:Mike Milne)

以下は、スマートフォンが三脚に乗っていることを検出して、より長い露光時間が選択された例です。


左:Pixel 3を手で持って撮影した夜景。わずかな手振れが検出されたため、Night Sightは333ms x 15フレーム= 5.0秒の設定を選択しました。右:Pixel 3を三脚に乗せて撮影した夜景。手振れが検出されなかったので、Night Sightは1.0秒×6フレーム= 6.0秒の設定を使用しました。夜空は綺麗でより多くの星を見る事ができます。(写真:Florian Kainz)

連続撮影した写真を位置合わせして融合する
画像のノイズを低減するために連続撮影した写真を平均化して一つの写真にするアイディアは、昔からありました。天体撮影では、このテクニックは露光スタッキングと呼ばれています。技術そのものは簡単ですが、難しい部分は、カメラを手で持っているときに各写真を正しく位置合わせをすることです。私たちのこのテクニックに対する取り組みは、Synthcamと呼ばれる2010年のアプリから始まりました。このアプリは、連続して写真を撮影し、低解像度でリアルタイムに整列して融合し、融合した結果を表示しました。i以下の動画のように人間が目に見えないような暗い場面でもディスプレイに鮮明に映し出す事ができました。

Night Sightは同様の原理を使用していますが、リアルタイムではない代わりに高解像度です。Pixel 1と2では、HDR+の融合アルゴリズムにより、ノイズの多いシーンでも綺麗な写真が取れるように再調整しました。Pixel 3では、同様に再調整されたSuper Res Zoomテクノロジーを使用します。後者は超解像度やズームのために開発されましたが、複数の画像を平均してまとめてノイズを減らすこともできるので拡大写真でなくてもこのテクノロジーが使われます。Super Res Zoomは、HDR+よりも夜間シーンで優れた結果をもたらしますが、計算が複雑になるためにPixel 3のより高速なプロセッサが必要です。

ちなみに、この連続撮影した写真を一つの写真に融合する複雑な作業はスマートフォン上で数秒で完結します。あなたが撮影後に素早くフィルムストリップモードのアイコンをタップすれば、HDR+またはSuper Res Zoomが貴方の写真を作成している場面を見ることができます。

その他の課題
上記の基本的なアイデアは簡単に聞こえますが、ナイトサイトを開発する際に苦労した幾つかの落とし穴があります。

(1)オートホワイトバランス(AWB)は低照度で失敗します。

人間は色を知覚する能力に優れています。色付きの照明下(またはサングラスを着用している場合)でも正しく色を知覚する事ができます。しかし、ある種の照明の下で写真を撮って、それを別の照明の下で見ると、知覚は誤ります。

この知覚効果を補正するために、カメラは画像の色を調整して照明の色(色温度と呼ばれる時があります)を部分的にまたは完全に補償し、効果的に画像の色を変更して、そのシーンが白色の光によって照らされていたかのように見せます。この手法は、オートホワイトバランシング(AWB)と呼ばれます。

問題は、ホワイトバランシングは、数学者がill-conditioned problem(不良条件問題)と呼んでいる、一つの正解が存在しない問題である事です。写真に青い雪が記録されているので、本当に青い雪が積っていたのでしょうか?それとも、白い雪が青い光に照らされていただけだったのでしょうか?おそらく後者でしょう。しかし、このあいまいさは、ホワイトバランシングを難しくします。Night Sightモードではない時のAWBアルゴリズムは良好に動作しますが、非常に薄暗い場面での色がついた照明(高速道路のトンネルのオレンジ色のナトリウムランプを想像してください)では、照明の色をどのようにすべきか決定する事は難しいのです。

これらの問題を解決するために、私たちはホワイトバランスが綺麗にとれている画像とホワイトバランスがとれていない画像を区別するように訓練された機械学習ベースのAWBアルゴリズムを開発しました。取り込まれた画像のホワイトバランスがとれていない場合、アルゴリズムは色を変更して照明をより普通に見えるようにする方法を提案できます。このアルゴリズムを習得するために、Pixel携帯電話のカメラを使用して多様なシーンを撮影し、カラーキャリブレーションされたモニターで写真を見ながらホワイトバランスを手動で修正する必要がありました。 Pixel 3を使用して2つの方法でキャプチャした同じ低照度のシーンを比較することで、このアルゴリズムの仕組みを確認できます。


左:Pixelのデフォルトのカメラモードのホワイトバランサーは、バンクーバーの水辺にあるこの小屋を照らすイルミネーションがどのくらい黄色であるのか分かりません。右:私たちの機械学習ベースのAWBアルゴリズムは、より良い仕事をしてくれます。(写真:Marc Levoy)

(Night Sight:Pixelスマートフォンで暗いシーンを綺麗に撮影する(1/3)からの続きです)
(Night Sight:Pixelスマートフォンで暗いシーンを綺麗に撮影する(3/3)続きます)

3.Night Sight:Pixelスマートフォンで暗いシーンを綺麗に撮影する(2/3)まとめ

1)ai.googleblog.com
Night Sight: Seeing in the Dark on Pixel Phones