NexusとPixelによる実験的な夜間写真撮影(1/2)

  • 2018.11.23
  • AI
NexusとPixelによる実験的な夜間写真撮影(1/2)

1.NexusとPixelによる実験的な夜間写真撮影(1/2)まとめ

・連続撮影した写真を融合して暗い場面での撮影を可能にする最初の試み
・連続撮影した写真とカメラを蔽って真っ暗にした写真を融合した
・真っ暗にした写真を使ってセンサーのノイズの影響を除去できる

2.スマートフォンカメラで夜間に撮影する実験

以下、ai.googleblog.comより「Experimental Nighttime Photography with Nexus and Pixel」の意訳です。元記事は2017年4月25日、Florian Kainzさんによる投稿で、少し古いですが、Pixelシリーズ搭載のNightSightの開発のきっかけとなったお話です。後編に続きます

去年の満月の夜、サンフランシスコの北にあるマリンヘッドランドの丘の上まで、プロ向けのDSLRカメラ(デジタル一眼レフカメラ)、重いレンズと三脚を持ち歩いて、ゴールデンゲートブリッジとその背後にある街の光を撮影しました 。


DSLRカメラ(Canon 1DX、Zeiss Otus 28mm f / 1.4 ZE)で撮影したMarin Headlandsからのゴールデンゲートブリッジの眺め。

私は、月光に照らされた夜景を上手く撮影できたと思ったので、コンピュテーショナルフォトグラフィーの研究をしているGoogleの研究チームであるGcamチーム(通常はスマートフォンなどの小型カメラで写真を撮るのに役立つアルゴリズムを開発していました)の同僚たちに見せました。私が夜間撮影した写真を見て、Gcamチームのメンバーの1人はDSLRではなくてスマートフォン搭載カメラを使って再撮影する事はできるのか?と挑戦してきました。スマートフォン搭載カメラは長い間改良されてきましたが、DSLRに匹敵するレベルの写真を取れるか私にはわかりませんでした。

おそらく最も成功したGcamチームのプロジェクトは、NexusシリーズやPixelシリーズに搭載されたカメラアプリでHDR+モードを可能にした画像処理技術です。 HDR+を使用すると、瞬間的に最大10回の連続撮影をし、それらを平均化して1つの画像にすることで、カメラの手ぶれによるぼやけを減らし、トータルで十分な光量を集めて驚くほど良い品質の写真を撮影することができます。 もちろん、HDR+ができることには限界があります。非常に暗い場面では、カメラは十分な光を集めることができないので、夜間撮影のような挑戦的な写真はまだ実現できません。

挑戦内容
非常に暗い場面でスマートフォン搭載カメラに可能な事が何かを学ぶため、私はMarc Levoyによって書かれてICRV 2015 Extreme Imaging Workshopで発表された実験的なアプリであるSeeInTheDarkに着目しました。

SeeInTheDarkは、HDR+が撮影できないような暗い場面でも撮影する事ができます。これは、撮影している風景に動きはなく、連続撮影した写真間の相違はカメラの動きかセンサーノイズ以外の存在しない、という仮定の下でより多くの露光を蓄積し、それらを融合する事によって実現されています。このアプリは、画像の解像度を約1メガピクセルに落とすことで更にノイズを低減しています。SeeInTheDarkを使うと、かなり粗い品質ではありますが、月光の下で写真を撮ることができます。

しかし、手ぶれや被写体の移動によるによるモーションブラーを許容レベルに保つには、HDR+もSeeInTheDarkも個々の連続写真の露光時間を約1/10秒以下に保つ必要があります。撮影者はカメラを長時間にわたって完全に動かないように手に持つ事はできないため、多数の連続写真を1つの写真に融合する事は品質の劣化に繋がり意味がありません。そのため、HDR+が融合に使うフレーム(連続写真)は最大で10枚ですし、SeeInTheDarkは新しいフレームが撮影されると古いフレームをメモリから消去し融合に使うフレームの枚数を制限しています。この制限は、カメラが集めることができる光の量を制限し、したがって、非常に低い光しかないシーンを撮影した写真の最終的品質に影響を及ぼします。

もちろん、暗い風景の風景(月だけで照らされた風景など)の高品質の写真を撮りたい場合は、露出時間を1秒以上に延長し、携帯電話を三脚に取り付けたり、 他の手段で手ブレしないように固定する事は、夜間撮影をもっと簡単にします。GoogleのNexus 6PとPixelスマートフォンでは、それぞれ4秒と2秒の露出時間をサポートしています。撮影している風景に動きがない限り、数十分間にわたってフレームを撮影して、それらを全て融合して最終的に1枚の写真として生成する事も可能です。

三脚を使用しても、鮮明な写真にするためにはカメラのレンズのピントを被写体に合わせる必要があり、非常に暗い場面ではピントを被写体に合わせることが難しい場合があります。スマートフォンのカメラで使用される2つの主要なオートフォーカス機構(コントラスト検出と位相検出)は、カメラのイメージセンサがほとんどノイズしか返せなくなるくらい暗いシーンでは動作に失敗します。しかし、幸運なことに、屋外で撮影する場合は風景の主要な部分は、単に遠方にフォーカスを設定する事で鮮明な画像が得られる傾向があります。

実験と結果
上記の全てを考慮に入れて、私は露出時間、ISO感度および焦点距離を手動で設定できる簡単なAndroidのカメラアプリを作りました。シャッターボタンを押すと、アプリは数秒待ってから、選択した設定で最大64フレームを記録します。 このアプリは、センサから取り込んだ生のフレームをDNGファイルとして保存します.DNGファイルは、後で処理するためにPCにダウンロードできます。

カメラアプリをテストするために、私は満月の夜、サンフランシスコから北西に約30マイル離れたカリフォルニア沿岸のPoint Reyes灯台を訪れました。私は建物にNexus 6P電話機を固定し、ISO 1600で4秒間で32枚のフレームを連続撮影しました。カメラのレンズを不透明な粘着テープで覆った後、更に32枚の真っ黒なフレームを撮影しました。オフィスに戻って、RawファイルをPhotoshopで開きました。個々のフレームは非常に粗いので、スマートフォンに搭載されているセンサーは非常に小さいのだろうと予想されますが、普通に撮影した32枚のフレーム全ての平均を計算して融合しました。次にカメラを蔽って撮影した32枚の真っ黒なフレームを用いてセンサーの局所的な変動によって引き起こされるノイズを除去するように融合しました。

最終的に得られたその結果の写真は、以下に示すように驚くほど綺麗に見えます。


夜のPoint Reyes灯台、Google Nexus 6Pで撮影

灯台のランタンは過度に露出していますが、残りの風景は鮮明で、粗くはなく、気持ち良い自然な色をしています。比較のため、同じ風景をカメラを手持ちしてHDR+で撮影した場合は次のようになります。


Point Reyes灯台。カメラを手持ちしてHDR+で撮影。Photoshopでは、挿入された矩形が前の画像と大まかに一致すると矩形を明るく表示します。

(NexusとPixelによる実験的な夜間写真撮影(2/2)に続きます)

3.NexusとPixelによる実験的な夜間写真撮影(1/2)まとめ

1)ai.googleblog.com
Experimental Nighttime Photography with Nexus and Pixel