撮影済みの人物写真を3Dシーンとして捉え、仮想カメラの視点を変えて再構成する編集がGoogleフォトに加わった。元写真に写っていない領域は生成AIで補い、切り抜きや拡大では変えられない遠近感まで調整する。
画素ごとの3D位置から写真を描き直す
Googleが写真サービスGoogle Photosに実装した編集手法は、3Dシーンとカメラの推定、生成による補完と仕上げを分けて処理する。最初の推定モデルは、元画像の各画素が表す可視表面の3D位置を求め、撮影時の焦点距離も推定する。
この3D位置の集まりが、別の視点から画像を描き直すための点マップになる。3D描画は点マップを入力に、仮想カメラの位置と向き、焦点距離を変更した画像を作る。
顔の位置と向きから仮想カメラを調整する
仮想カメラの条件は、主要被写体の顔の位置と3Dの向きを検出する機械学習モデルで自動的に決める。顔の情報を点マップと組み合わせることで、人物の構図に合わせたカメラ条件を計算する。
Googleは、広角の前面カメラで撮影した写真について、レンズに近い顔の部分が不自然に大きく見える遠近感の歪みも自動検出するとしている。検出した歪みに応じて仮想カメラの内部パラメーターを調整し、人物の比率を補正する。
視点変更で空いた領域を生成モデルが埋める
視点を動かすと、元写真では被写体に隠れていた背景が見える位置に現れる。その領域には点マップの情報がないため、再描画した画像に穴が生じ、潜在拡散モデルが補完と修正を担う。
生成モデルの学習には、カメラ条件が既知の社内画像ペアを使った。一方の画像から推定した点マップを他方のカメラ条件で再描画し、その画像を入力として他方の画像を復元するよう学習させた。
推論時には、生成を誘導するclassifier guidanceの強度を領域ごとに調整する。Googleは、この制御で元の内容を保持しながら、欠損領域には生成の自由度を与えるとしている。
視点を変えた画像をAuto frameの候補に追加
従来の切り抜きや拡大では、画像の範囲や大きさを変えても撮影時の視点は維持される。今回の編集は写真を3Dシーンとして扱い、仮想カメラの位置そのものを変更する処理を加えた。
Googleによると、この自動編集はGoogle Photosの構図調整機能Auto frameで提供されている。対象は条件を満たす人物入り写真で、視点を自動調整した画像を2番目の候補として選択できる。