1. スマホは、ほんとうは うしろを ぼかすのが にがて?
1. 小さな絞りのスマホは、光学だけでは背景をぼかしにくい
1. ぼけの大きさを決める条件と、スマホの絞り
おおきな レンズの カメラ(いちがんレフ)は、まわりの ものを ぼかして、ひとだけを くっきり うつせます。
ぼけかたは、レンズの あなの おおきさ(しぼり)や、レンズの つくりで かわります[2]。スマホの レンズの あなは ちいさくて、おおきさも かえられません[1]。だから、そのままでは、あまり ぼけないのです。
それなのに、ポートレートでは ぼけた しゃしんが できます。さて、どうして でしょう。
一眼レフで人物を撮ると、背景が大きくぼけて、人だけが浮かび上がります。ぼけの大きさは、絞りの大きさ、レンズの焦点距離、ピントを合わせた人と背景との距離で決まります[2]。絞りを開くほど、ピントの合う範囲(被写界深度)が浅くなり、ぼけやすくなります。
焦点距離が短いほど、また撮影する距離が遠いほど、被写界深度は深くなります[3]。一方、スマホのカメラは絞りの穴が小さく、しかも大きさを変えられません[1]。そのままでは、背景を大きくぼかすのは苦手です。
ところが、ポートレートモードで撮った写真は、ちゃんと背景がぼけています。光学で足りない分を、どこで補っているのでしょうか。
背景ぼけの大きさは、①絞りの大きさ、②焦点距離、③ピントを合わせた被写体と背景の距離の3つが大きな要素になる[2]。絞りを開けば被写界深度は浅くなり、焦点距離が短いほど、また撮影距離が遠いほど深くなる[3]。
ところがスマホのカメラは、絞りの穴が小さく、しかも固定されている[1]。①の条件を光学で稼げないため、一眼レフのように大きく浅い被写界深度を得るのが難しい。そのためGoogleは、ぼかしそのものを画像処理でつくる方式を採った。センサーの大きさの影響は、ここで使った資料では扱っていないので、論じない。
光学で得られないぼけを後から描くなら、描き方の手順と、描くために必要な情報が問題になる。その情報とは何か。
2. うしろの ぼけは、どうやって かくの?
2. 撮ったあとに、遠さに合わせてぼかしを描く
2. 深度マップに沿って、ぼかしの大きさを変える
スマホは、まず ぜんぶに ピントが あった しゃしんを とります。つぎに、ひとが うつって いる ところを みつけます。
それから、「どこが とおいか」を あらわす ちずを つくります。この ちずを つかって、とおい ところほど おおきく ぼかします[1]。
ぼかす ところは、ひとつぶ ひとつぶ、すこし すきとおった まるい ぼかしに おきかえて いきます。ぼけは、スマホが あとから かく えなのです。
だから、とった あとで、ぼかしの つよさを かえられる スマホも あります。そのためには、「どこが とおいか」の ちずが ひつようです。
GoogleがPixel 2のポートレートモードについて説明した手順は、次の流れです[1]。まず、全体にピントが合った写真を撮ります。次に、写っている人の部分を見分けます(セグメンテーション)。そして、画像のどこが遠いかを表す距離の地図(深度マップ)をつくります。最後に、遠いところほど大きなぼかしになるよう、画素を半透明の円盤に置きかえて描きます。
深度マップは、色の代わりに「カメラからの距離」を各画素に入れた画像のようなものです[6]。写真とは別に保存しておけば、撮ったあとでぼかしの効果を変えられます[6]。iPhoneでは、編集画面の「深度コントロール」のスライダーでぼかし具合を動かせ、元の値は灰色の点で示されます[8]。
ぼかしの絵を描く手順は分かりました。残る問いは、深度マップのもとになる「どこが遠いか」を、スマホはどうやって知るのか、です。
Pixel 2のポートレートモードは、まず全体にピントが合った画像を撮り、次に人物の領域を画素ごとに見分け(セグメンテーション)、深度マップをつくり、深度に応じてぼかしの大きさを変えて描く、という手順だった[1]。ぼかしは、各画素を同じ色の半透明の円盤に置きかえ、深度に応じて円盤の大きさを変えて描画する。
深度マップは、各画素が色でなくカメラからの距離を持つ画像で、写真と別に保存すれば撮影後に効果を変えられる[6]。iPhoneの「深度コントロール」は、この性質を使った機能である(iOS 12.1以降の対応機種)[8]。
ぼかしの描画はこの地図に従う作業にすぎず、結果の良し悪しは地図の精度に左右される。では、1台のスマホはどうやって距離を知るのか。
3. めが ふたつ あると、とおさが わかるのは なぜ?
3. 2つの目で見ると、近いものほどずれて見える
3. 視差から相対的な距離を求める
うでを のばして ゆびを たてて、かた めずつ とじて みましょう。ゆびの ばしょが、みぎと ひだりで ずれて みえます。
とおくの けしきは、あまり ずれません。ちかい ものほど、ずれが おおきく なります[6]。この ずれを しらべれば、ちかいか とおいかが わかります。
ふたつの めで みると、ものの とおさを くらべやすく なります。スマホの カメラも、2つの ばしょから みた しゃしんを くらべて、とおさを しらべます。
片方の目を閉じて指を立て、目を替えてみてください。指の位置が左右にずれて見えます。遠くの景色のずれは小さく、近い指ほど大きくずれます。2つの画像で同じ点を探してこのずれ(視差)を調べると、その点までの距離が分かります[6]。
デュアルカメラのiPhoneは、2つのレンズの画像のずれから深度マップをつくります。Appleの説明では、この深度マップが表すのは「相対的な」距離です。1点だけでは実際の距離の良い推定になりませんが、点どうしの違いは、ぼかしの効果に使えるほど安定しているといいます[6]。
ぼかしに必要なのは、「どのくらい離れているか」の正確なメートル数よりも、「あっちはこっちより遠い」という順序のほうです。では、レンズが1つしかないスマホでは、この「2つの視点」をどうするのでしょう。
やってみよう
腕をのばして指を立て、右目・左目と交互に閉じて、背景に対する指の位置を見比べます。次に指を顔に近づけると、ずれが大きくなるのを確かめられます。
2つの視点から同じ点を探し、画像上の位置のずれ(視差)を測ると、距離が分かる。近い物体ほどずれが大きい[6]。視差は、点までの距離と、2つの視点の間隔(基線)の関数である。
Appleのデュアルカメラの深度マップは、各点を1/メートルの単位の視差で持つ。ただし値は実距離の正確な測定値ではなく、精度は「相対」だ。1点だけでは実世界の距離の良い推定にならないが、点どうしの違いが、ぼかしなどの効果に使えるほど一貫している[6]。
ポートレートに要るのは絶対距離でなく遠近の順序だから、この「相対」で足りる。残るのは、レンズが1つのスマホで、どうやって2つの視点を得るかという問題だ。
やってみよう
片目ずつ閉じて、立てた指の位置を背景と見比べる。指を近づけたときのずれの変化は、視差が距離と基線の関数であることの体験になる。
4. ひとつの カメラで、ふたつの めを どうつくるの?
4. 1つのカメラのレンズを、左右に分けて見る
4. デュアルピクセルで1台に2つの視点をつくる
スマホの カメラの なかには、ピントを あわせる ための とくべつな つぶ(がそ)が あります。このつぶは、まんなかで ふたつに わかれて います。
ひだりの はんぶんは、レンズの ひだりがわ(たてむきなら うえ)を とおった ひかりを、みぎの はんぶんは、みぎがわ(したがわ)を とおった ひかりを みます[5]。
ひだりだけ、みぎだけで しゃしんを つくると、ほんの すこし ちがう ふたつの しゃしんが できます。ひとつの カメラで、めが ふたつ あるのと おなじに なるのです。
スマホのカメラには、ピントを素早く合わせるための位相差オートフォーカス用の画素があります。デュアルピクセルは、その1つの画素を半分に分けたものです。左右(縦向きでは上下)の半画素は、それぞれ主レンズの別の半分を通った光を見ています[5]。
左の半画素だけ、右の半画素だけを別々に読み出すと、わずかに違う2つの視点の画像が、1台のカメラからできます[5]。この画像の組から視差を調べれば、距離が分かります。
Googleの研究者たちは、人物を見分けるニューラルネットワークと、デュアルピクセルから得る細かい深度マップを組み合わせ、500万画素を超える画像を、スマホの中で約4秒で処理できたと論文に書いています[4]。別のレンズを積まなくても、ポートレートの材料はそろうわけです。
デュアルピクセルは、位相差AF用の画素を左右の半画素に分けたもので、各半画素は主レンズの絞りの別の半分を通った光を受ける。左右を別々に読み出せば、基線の短い2視点の画像が1台のカメラで得られ、これが視差になる[5]。
Wadhwaら(2018)の論文は、人物のセグメンテーション用ニューラルネットワークと、デュアルピクセルから計算した密な深度マップを組み合わせ、5.4メガピクセルの画像をスマホ上で約4秒で処理できると報告している[4]。専用のレンズを増やさず、ピント合わせ用の画素を転用した点が、この方式の核になる。
ただし基線は主レンズの口径の範囲に限られるため、視差は小さい。この短さが、どんな弱点を生むのか。
5. にがてな ばしょは、どうやって おぎなうの?
5. 向きの異なる2つの基線で、苦手な向きを補い合う
5. 窓口問題と、Pixel 4の2つの基線の併用
ひとつの カメラで みる やりかたにも、にがてが あります。たて ならびの せんは、みぎと ひだりで くらべても、ずれが わかりにくいのです。
そこで Pixel 4 では、2つの やりかたを くみあわせました。ひとつの カメラを ひだりと みぎに わける やりかたと、2つの カメラを ならべる やりかたです。2つの むきが ちょくかくに なって いるので、おたがいの にがてな むきを おぎなえます[7]。
ひだりと みぎに わける やりかたは ちかい ものに、2つの カメラは とおくに つよいと いいます[7]。
2つの視点で距離を調べる方法には、どれにも「窓口問題」があります。小さな窓から景色をのぞくと、2つの視点を結ぶ線(基線)と平行な線は、左右で見比べても対応する場所が見つけにくいのです[5]。デュアルピクセルの基線は左右にしかなく、横向きの線が苦手です。
そこでPixel 4は、デュアルピクセルと、約13mm離れた2つのカメラを併用しました。デュアルピクセルの基線は1mmより短く、近い被写体に強く、2つのカメラは遠くに強いといいます。2つの基線が直角なので、互いの苦手な向きを補えます[7]。数値はPixel 4のものです。
Pixel 3からは、視差だけに頼らず、ぼけの度合いと物の大きさなどの意味情報も手がかりに、ニューラルネットワークが深度を予測しました。学習を使わない従来のステレオ法より誤りが少ないといいます[5]。
距離の地図は、ずいぶん賢くなりました。では、できた地図で、ぼかしはどのくらい本物のぼけに近づけられるのでしょうか。
ステレオ法には共通して窓口問題がある。小さな窓から見たように、基線と平行な線では対応点を決められないのだ[5]。デュアルピクセルの基線は左右の1方向だけなので、この弱点が出やすい。
Pixel 4はこれを、デュアルピクセル(基線1mm未満・近距離に強い)と、約13mm離れた2つのカメラ(遠距離に強い)の併用で補った。2つの基線が直角のため、互いの苦手な向きを補える[7]。これらはPixel 4の数値で、全機種に共通ではない。
Pixel 3では、視差のほかに、デフォーカス(ピント面から遠い物ほどぼける)と意味情報(物の大きさから距離を推す)を手がかりに、ニューラルネットワークで深度を予測した。従来の学習なしのステレオ法より誤りが少ないと報告されている[5]。
Appleには、これとは別にTrueDepthカメラがある。赤外線のパターンを投影し、物体でゆがむ様子から距離を計算するため、メートル単位の絶対精度で測れる[6]。測り方が違っても、深度マップに沿ってぼかす点は共通している。では、描き方は完成したのか。
6. ぼけを ほんものらしく するには?
6. ぼけの玉を残すため、ぼかす順番まで変えた
6. トーンマッピング前にぼかす理由と、撮影時の条件
よるの まちを うしろに すると、ひかりが まるい たまの ように ぼけます。この たまを きれいに のこすために、Pixel 4 では、ぼかす じゅんばんを かえました[7]。
あかるさを そろえる しょりの まえに、ぼかして います。あとで ぼかすと、あかるさの じょうほうが へって、たまが きえやすかったからです。
スマホは、ちかすぎたり、とおすぎたり、くらすぎたりすると、つかいかたの あんないを だします[8]。
夜の街の明かりを背景にすると、本物のレンズでは光の点がまるい玉になってぼけます。これを画像処理で再現するのは、思ったより難しいことでした。
Pixel 4では、明るさをそろえる処理(トーンマッピング)のあとでぼかすと、明るさの情報が失われ、光の玉が再現されにくくなりました。そこで、HDR+で合成した生データ(raw)をぼかしてから、トーンマッピングをかける順番に変えました[7]。
iPhoneのカメラアプリは、被写体に近すぎたり、遠すぎたり、暗すぎたりすると、案内を出します。iPhone XRやSE(第2世代)以降の背面カメラでは、顔を見つけられないとポートレートで撮れません[8]。距離を測る仕組みも、ぼかしの描き方も、撮れる条件がはっきりした技術です。
ぼけの玉(光の点がつくる明るい円)は、トーンマッピングの後にぼかすと、明るさの情報が失われて再現されにくい。そこでPixel 4は、HDR+で合成したrawを先にぼかし、そのあとトーンマッピングをかける順に変えた[7]。ぼかしの手順は、画質に直結する設計項目になっている。
使う側にも条件がある。iPhoneのカメラアプリは、被写体に近すぎる・遠すぎる・暗すぎると案内を出す。また、iPhone XRとSE(第2世代)以降の背面カメラは、顔を検出しないとポートレートが撮れない[8]。距離を測る方式に得意・不得意があることの、利用者から見えるあらわれである。
髪の毛の縁など、境界の仕上がりの限界は、この記事の資料では扱っていないので論じない。気になる人は、論文の本文で確かめることになる。
じぶんの めと てで ためして みよう
自分の目と手で、遠さとぼけをためす
資料を読んで、深度マップの作り方を比べる
おうちで
てを のばして ゆびを たて、かた めずつ とじて、ゆびの ずれを みて みましょう。ゆびを ちかづけると、ずれが おおきく なります。
スマホの ポートレートで、ちかすぎる ところから とって みて、あんないが でるか みて みましょう。ゆびで ひとの ばしょを かくすと、どうなるか あそんで みても いいです。
自分の目で
腕を伸ばして指を立て、片目ずつ閉じて見る実験を、物を替えて試してみます。窓の外の遠い木と、机の上の近い鉛筆では、ずれの大きさがどう違うでしょうか。
スマホで
ポートレートモードで、人物と背景の距離を変えて何枚か撮ってみます。背景が遠いほど、ぼけが大きくなるかを見比べられます。iPhoneの対応機種なら、編集画面で深度コントロールのスライダーを動かし、元の値の灰色の点との違いを見てみます。
もっと知りたくなったら
家族や友だちと、同じ人物を同じ場所でポートレートモードと普通のモードで撮り、背景のぼけ方と人物の縁を見比べます。日本語の解説[2][3][8]も、そのあとに読むと違いが分かりやすくなります。
読み比べると見えること
Wadhwaらの論文[4]は、深度マップとセグメンテーションを組み合わせた処理の全体像が分かる一次資料である。Google Research Blogの3本(出典[1][5][7])は、距離の測り方がデュアルピクセルの視差から、学習による深度予測、2つの基線の併用へ変わる流れを追える。原文は英語なので、まず日本語の資料から入ってもよい。
日本語で確かめられること
ぼけの大きさを決める条件は、ソニーとパナソニックの日本語の解説[2][3]で確かめられる。ポートレートモードで同じ場面を撮り、深度コントロールの値を動かして見比べるのも手軽だ。Apple Developerの資料[6]は深度マップの仕様、Appleサポート[8]は操作と撮影条件の確認に使える。
しらべた もとの じょうほう
参考にした情報源
参考にした情報源と、その使い方
今回は、ぼかし方の手順と各方式はGoogleとAppleの公式資料、ぼけの大きさを決める条件はカメラメーカーの日本語解説を突き合わせた。
- Google Research Blog「Portrait mode on the Pixel 2 and Pixel 2 XL smartphones」 https://research.google/blog/portrait-mode-on-the-pixel-2-and-pixel-2-xl-smartphones/ (絞りの制約とぼかしの手順)
- ソニー 一眼カメラ コミュニティ「ぼかし表現のコツ」 https://www.sony.jp/ichigan/community/contents/07inabar/no1/practice01.html (ぼけを決める3つの要素)
- パナソニック サポート ノウハウ https://av.jpn.support.panasonic.com/support/dsc/knowhow/knowhow06.html (被写界深度と焦点距離・撮影距離)
- Wadhwa ほか「Synthetic Depth-of-Field with a Single-Camera Mobile Phone」(ACM Transactions on Graphics, 2018) https://research.google/pubs/synthetic-depth-of-field-with-a-single-camera-mobile-phone/ (人物の見分けと深度マップ、処理時間)
- Google Research Blog「Learning to Predict Depth on the Pixel 3 Phones」 https://research.google/blog/learning-to-predict-depth-on-the-pixel-3-phones/ (デュアルピクセル、窓口問題、深度予測)
- Apple Developer「Capturing photos with depth」 https://developer.apple.com/documentation/avfoundation/capturing-photos-with-depth (視差と深度マップ、TrueDepth)
- Google Research Blog「Improvements to Portrait Mode on the Google Pixel 4 and Pixel 4 XL」 https://research.google/blog/improvements-to-portrait-mode-on-the-google-pixel-4-and-pixel-4-xl/ (2つの基線の併用、ぼかす順番)
- Apple サポート「iPhoneでポートレートモードを使う」 https://support.apple.com/HT208118 (深度コントロールと撮影の条件)
なおした ところ
更新履歴
更新履歴(改版の記録)
- 初版を公開。
このサイトでは、公開した記事の本文は原則として書き直しません。誤りが見つかったときや、内容が古くなったときだけ手を入れ、その理由をこの欄に残します。