大和ノ畢生載録

ヤマトノヒッセイサイロク

iOSの被写界深度エフェクトをどうしても適用させたい!

前置き

 皆さんは,iOS16で実装されたロック画面の被写界深度エフェクトをご存知でしょうか。これは,AIを活用して写真内のオブジェクトの背後に時計が隠れるという効果なのですが,写真によってはその効果が適用されないことが屡々あります。

被写界深度エフェクトの例。時計の一部が壁紙の前景によって隠れています。

私は普段,VRChatを嗜んでいるため,そこでフレンドさんに撮っていただいた写真をロック画面の壁紙として設定しています。しかし,VRChatで撮った写真には被写界深度エフェクトが適用されないようです。

被写界深度エフェクトがグレーアウトしています。写真が対応していないのでしょう。

そこで,今回はなんとかしてこの写真に被写界深度エフェクトを適用していこうと思います。まあ,ほとんど個人用の備忘録のようなものなので,詳しい手順などは省略しています。

とりあえず結論から

 先に結論からお伝えしますと,無理やり被写界深度エフェクトを適用することはできました。

ちょっと半透明になっている気がするけど,うまくいきました。

被写界深度エフェクトが適用される条件

 どのような条件下なら,被写界深度エフェクトが適用されるのでしょうか。色々と情報を収集しているうちに,以下の条件が被写界深度エフェクト適用に関して必要であるということが分かりました。(個人調べなので,これが全てではないでしょうが・・・)

  • iPhone被写界深度エフェクトに対応している。
    • A12 Bionicチップを搭載したiPhoneでのみ使用できます。
  • 識別可能な被写体が含まれた画像を使用している。
    • AIが被写体を判断できなければ意味がありません。
  • jpg形式の画像であること。
    • これは完全に盲点でした。VRChatで撮影した写真はpng形式だったため,いくらやってもできないわけです。
  • 被写体が時計を完全に隠してしまわないこと。
    • ロック画面の時計を全て覆い隠してしまうような画像は,条件を満たしていたとしても,エフェクトが有効になりません。時計のスペースが確保されている画像を使いましょう。

このような条件が挙げられるわけですが,今回私が使用する画像は「jpg形式の画像であること」「被写体が時計を完全に隠してしまわないこと」の条件を満たしていません。一方で「識別可能な被写体が含まれた画像を使用している」という条件は,写真アプリで被写体を長押しすると,切り取ることができたため,満たしているようです。

写真アプリで被写体を長押しすると,このように切り取ることができます。切り取れるということは,AIが画像の被写体を認識しているということですよね。

画像を編集する

 とりあえず,このままの画像では時計の空間が確保されていないため,画像編集ソフトを用いて画像を編集していきます。具体的な編集方法は省略しますが,以下のように編集しました。

左:編集前 右:編集後
時計のためのスペースを開けるため,全体的に下方向に移動しました。

画像編集後,jpg形式の画像として保存しました。

ロック画面の壁紙として設定する

 編集した画像をiPhoneへコピーし,早速壁紙として設定していきましょう。すると,被写界深度エフェクトが適用されていることが確認できました!

被写界深度エフェクトが適用されています。やったー!

まとめ

 今回は,被写界深度エフェクトに非対応の画像を対応させてみました。VRChatで撮影した写真でもできたため,必ずしもiPhoneで撮影した画像であったり,実写の画像である必要はなさそうです。今回は,この画像でしか試していないため,もしかしたら偶然の産物かもしれませんが,この記事がどなたかの参考になれば幸いです。