yasudacloudの日記

札幌に住むソフトウェアエンジニア

iPadOS16 写真から対象物を抜き出し

iPadOS16、続いて「写真から特定対象物抜き出し」という機能について。

www.apple.com

 

見る方が早いのでgifをぺたり

 

まず、右の写真アプリで表示している写真からバイクのところを指で長押しします。約1.5秒くらい経つと画像がキラッと光るのでそのまま左のファイルアプリにドラッグドロップするとバイクの画像のみを抽出することができます。

ちなみに写真アプリ以外にも純正のメモアプリ、ファイルアプリでも同様にバイクを抜き出すことが可能でした。

ARと強引に絡める

写真から特定の対象物を抜き出す機能は去年公開されたObject Captureと相性が良いのではと思いました。

Object Captureの説明はこちらに記載されていますが、Macで複数の写真からARファイルを作成することができるAPIです。

https://developer.apple.com/jp/augmented-reality/object-capture/

写真を用意する

↓のようにあらゆる角度から撮った写真を用意します。学習の観点から言うと数は少ないと思うかもしれませんがこれくらいでも結構イケます。

写真からARファイルを作成する

写真が用意できたら、次にその写真からusdzを作成するためのツールを用意します。

こちらからそのまま使えるサンプルプロジェクトがダウンロードできるのでそのまま利用します。

developer.apple.com

 

XCodeで開いてそのまま実行するとメッセージが出ますが、コマンドライン引数を設定する必要があります。

「Edit scheme」から”学習する写真の絶対パス”と”出力先のディレクトリ”の2つを指定して実行します。Macのスペックにもよりますが、写真の数が少なければ数分程度で終わるはずです。

 

ARファイルの変換

先ほどの出力が終わるとusdaファイルが生成されますが、こちらをusdzに変換します。

Macからusdaのファイルを開き、「File」→「Export」→File Formatに「Universal Scene Description Package」を選択してSaveします。

 

ARの比較

先ほどのバイクのみと背景込みの写真からそれぞれ作ったARファイルを比べてみました。せっかくなのiPadのステージマネージャでファイルアプリを2つ横並びで表示してます。

左がバイクのみ、右が背景込みの普通の写真。

どちらのクオリティが高いかは一目瞭然かと思いますが、なぜかどちらもフロントのシールドに穴が開いています😅

元の写真を見る感じでは1. シールドが透明、2. 光が反射している、などが関係ありそうです。

 

幾つか問題点

今回の画像の例で言うとバイクのホイールの隙間の部分(地面が映っているとこ)もバイクの一部として認識されてしまっています。

人間や動物にしろ複雑なポーズを取っていると綺麗に抽出できないかもしれません。

また、高い品質が求められるケースには適していません。画像をちょっと拡大すると写真によってはギザギザが目立ちます。

あとObject Captureが現時点ではMac上でしか使えないためiPadだけで一連の処理ができないのが少し残念です。これが出来るとiPadを片手に旅先で写真撮影、ホテルに帰ってARファイルを作成、RealityComposerで3Dオブジェクト群をサクッと構築ってことができます。

つまりiPadとMacBookはまだセットで必要ってことですね。