見出し画像

【初心者向け】スマホ3Dスキャンマスターガイド

こんにちはスマホ3Dスキャンを日本中に普及させる男ことiwamaです。

2020年の10月にiPnone12Proシリーズに初めてLiDARセンサーが搭載され、現在では様々な業界でスマホの3Dスキャンが活躍し始めています。

そこで今回はスマホ3Dスキャンって何?どういうアプリがあるの?などの初心者向けの解説を行っていこうと思います。

3Dスキャンについて学ぼう

そもそも3Dスキャンって何?

現実にある物体や空間をデジタル3Dデータ化する技術の事を(このnote内では)3Dスキャンといいます。

3Dスキャン技術には様々なモノが存在していますが、今回はその中でもスマホで行える3Dスキャン技術である3種をざっくり解説していきたいと思います。

フォトグラメトリをざっくり解説

フォトグラメトリを簡単に説明してしまうと、様々な角度から撮影した写真を元に3Dモデルを作成する技術となります。

Reality Captureを使いフォトグラメトリを行っている風景

使用する機材はカメラ(スマホカメラから一眼レフカメラ、ドローンカメラ)、パソコン(ゲーミングPC推奨)、フォトグラメトリソフト(代表的なモノだとReality CaptureやMetashape)が必要となります。

PCやカメラの性能や撮り方(熟練度)に左右される所も大きいですが、数cm程度の小物から街の区画の一部などの広大な空間までを3Dスキャンする事が可能です。
ただし反射している面や透明(半透明)な部分、色に変化が無い部分等、技術的に上手く(又はまったく)3Dスキャンできない所もあります。

LiDARスキャンをざっくり解説

LiDARはLight Detection and Ranging(光検出と測距)の略称となっており、LiDARスキャンはレーザー光の跳ね返りを元に距離を測る技術を使って3Dモデルを作成する技術となります。

LiDAR単体では色情報を取得することができない為、別途カメラ映像を用いて色付けを行っています。

こちらもフォトグラメトリと同様に反射面や透明な部分などは上手く3Dスキャンすることが出来ません。

3D Gaussian Splattingをざっくりと解説

3DGSで生成される3Dモデルは通常のポリゴンメッシュとは違い”もや”の様な物体の集合体で”3D空間”を生成します。その為通常の3Dモデルと違い、直接UnityやBlenderなどで3DCGとして扱うことが出来ない事に注意してください。

通常3D Gaussian Splattingを行う場合はpostshotと呼ばれるソフトを使用する場合が多いです。ただし3DGSの生成には高性能なCPUやGPUを搭載したゲーミングPCがほぼ必須となる為、フォトグラメトリ以上に設備を整えるハードルは高いと言えます。

フォトグラメトリやLiDARスキャンと違い、反射面や半透明な部分も(比較的)綺麗に3Dモデルとして残すことが可能となっています。

また現在(2025年1月)は3DGSの研究も進み、現在のモヤからメッシュを生成することも一部可能となっています。そのため従来のフォトグラメトリやLiDARスキャンが苦手としていた部分のメッシュ化も現実となってきました。


3Dスキャンのまとめ

基本的にはカメラ(写真)から3Dモデルを作成するのがフォトグラメトリ or 3DGS、レーザーを飛ばして3Dモデル化するのがLiDARスキャンと考えてもらえばOKです。

3Dスキャン技術の使用用途

3Dスキャン技術は現在様々な分野で活用されています。
ここでは3Dスキャンの活用事例の一部を紹介させていただきます。

測量用途

建設業における地形測量ドローンや航空機にLiDARスキャナーを搭載してLiDARスキャンしたり、ドローンに搭載したカメラを使用したフォトグラトリを行うことが多いです。

最近では災害現場の現地状況を把握するのに活躍して話題になりました。

ゲーム等の3Dモデル

ゲームや映画等のCGモデルとして活用されています。
代表的な所ではFF15内の料理は現実の料理をフォトグラメトリしたデータが使用されています

デジタルアーカイブ

老朽化した価値のある建物を解体前に3Dスキャンを行い、デジタルデータとして保存が行われています。

近年では旧都城市民会館がフォトグラメトリでデジタルアーカイブされたりと多数事例が存在しています

アートとして

立体的にみる事が可能な3Dスキャンデータは、今までの2次元的な表現とはまた異なる魅せ方をする事が可能です。

個人的に見惚れた魅せ方としてVoxelKeiさんがVRChatのワールドとして公開したものがあります。

従来3Dスキャン技術の問題点

さて現在様々な分野で活用されている3Dスキャン技術ですが、3つほど問題点があると考えています。

必要な機材が多い

LiDARスキャンの場合はLiDARスキャナー・三脚・データ処理用のソフト・データ処理用の高性能PCが必要となります。

フォトグラメトリや3DGSもカメラ・フォトグラメトリ(3DGS)ソフト・データ処理用の高性能PCなど様々な機材・ソフトを揃える必要があります。

この様に3Dスキャンを行うために用意する機材が多数に渡ります。

お金がかる

フォトグラメトリはスマホのカメラや無料ソフトである程度は行えますが、それでもある程度性能が良いPCが必要だったりと初期投資にかかります。

LiDARスキャンに至ってはLiDARスキャナーだけで100万以上(普通に1000万を超えたりします)かかるなど、初期投資だけでも結構な出費になります.

トライ&エラーに時間が掛かる

最近ではネット上でも解説されている方が増えていますが、基本的には 3Dモデル化までに時間がかかるのでトライ&エラーを積み重ねるのが大変となります。(撮影→データをPC等へインポート→専用ソフトで処理)

問題点の総括

従来3Dスキャン技術は品質の良い3Dモデルを作成することが出来ますが、コストなどの問題から活用できる人はある程度限られていたのかなと思います。

スマホだけで3Dスキャンが出来る時代に!

まず百聞は一見に如かず、スマホ3Dスキャンとは一体どういうものかを体験してもらいましょう!

このようにたった2分でホテル1室を3Dスキャンすることが出来たりします。

上記動画はiPhoneに搭載されたLiDARセンサーを使用したLiDARスキャンですが、LiDARセンサー非搭載のiPhone/Androidでもカメラを使用した3Dスキャン(フォトグラメトリや3DGS)を行うことが可能です。

スマホ3Dスキャンの技術解説

iPhone LiDARスキャン

2020年10月に発売されたiPhone12ProにARや写真撮影の補助用にLiDARセンサーが搭載されました。iPhone LiDARスキャンはこのLiDARセンサーを利用してLiDARスキャンを行います。そのため下記に記載した機種以外では体験することが出来ないことに留意してください。
LiDARセンサーが搭載されたモデルはiPhone12,13,14,15,16Pro/ProMaxとiPad Pro(2020年モデル以降)のみとなっています。

iPhone LiDARスキャンの特性は以下の3つとなります。

小さいものはスキャンできない

専用の3Dスキャナーとは比較にならないレベルでレーザーの照射密度が低くなっています。照射密度が低い=細かい部分を認識できないという事です。

その為iPhone LiDARスキャンは比較的大きいものや空間のスキャンをする場合に向いており、小さいもの(特に15cm以下)のスキャンは苦手としています。

5mという短いスキャンレンジ

iPhone LiDARスキャンは空間に向いていると書きましたが、産業用のLiDARスキャナーと比べると圧倒的にスキャンレンジが短くなっています。

Apple公式ではLiDARは5m(15Proからは8m程度まで照射可能だがアプリの対応が5m)まで照射可能と書いていますが、iPhone LiDARスキャンを行う場合は3m以内まで近づく事が推奨されています。

移動しながらのスキャン

iPhone LiDARスキャンは移動しながら3Dスキャンを行います。

死角になる部分もサクッと3Dスキャンできる利点もありますが、動き方により3Dモデルの品質が左右されるため、品質の良い3Dモデルを作成する場合は慣れが必要になります。

スマホフォトグラメトリ/3DGS

スマホフォトグラメトリ/3DGSはスマホに搭載されたカメラを使用するためLiDARスキャンに比べて、現行で販売されている多くのスマホで3Dスキャンをする事ができます。特にアプリ紹介時に詳しく説明しますが、フォトグラメトリ/3DGSの処理をクラウドで行う場合はカメラで撮影可能な機種であればほぼ全てのスマホで体験する事が可能です。

スマホでフォトグラメトリ/3DGSを行う場合は以下の3つに注意する必要があります。

撮影可能枚数に上限がある

PCで処理する従来フォトグラメトリ/3DGSはマシンスペックが許す限り何枚でも写真を使えます。

スマホフォトグラメトリ/3DGSの場合はアプリの制限で100枚~1000枚以内でしか写真を使えません。(アプリによっては動画での処理も可能となっていますが最大で15分以内となっています)

その為、サイズが大きく形状が複雑なものをスマホでフォトグラメトリ/3DGSするのは難しくなっています。(特に空間は難しいです)

カメラの性能

フォトグラメトリ/3DGSで作成される3Dモデルの品質は写真に依存しています。

従来フォトグラメトリ/3DGSはスマホカメラから一眼レフカメラまで幅広く対応しているので、使用機材次第ではかなりの高品質を狙えます。

対してスマホフォトグラメトリ/3DGSはスマホで撮影した写真を使うため、従来フォトグラメトリ/3DGS×一眼レフカメラよりは品質が劣ります。

また多くのスマホで利用可能=スマホのカメラ性能が安定しないという事でもあり、自分が所有しているスマホのカメラ性能をしっかりと把握しておく必要があります。(特に撮影時にAI補正がかかっていないかや解像度等は要確認です)

写真撮影時細かい設定が行えない

スマホフォトグラメトリ/3DGSに使用する写真は大半が3Dスキャンアプリ上で撮影を行いますが、細かい設定は行えません。

一部アプリは外部のカメラアプリや一眼レフカメラで撮影した写真を使用することができます。

スマホ3Dスキャンを行う場合の重要ワード

スマホ問わず3Dスキャンを行う上で絶対に知っておいて欲しいワードをいくつか解説します。

アライメント

RealityScan使用時のアライメント画面

フォトグラメトリや3DGSを行う場合、このアライメントと呼ばれる行為が非常に重要となります。
アライメントを日本語にすると並べる/整列となりますが、これをフォトグラメトリ的に言うと"撮影した写真をコンピュータ上で撮影した時と同じ位置に並び替える"という感じですね。

少し雑な話になりますが、フォトグラメトリで3Dモデルを作成できるのは人間の目と似たような仕組みを使っています。

人間の目も片目だけでは平面的(2次元)に見えますが、両目で見ることにより立体的(3次元)にモノが見えます。(下記画像イメージ)

フォトグラメトリも同様に2次元画像を様々な位置や角度で撮影した写真の視差等を元に3Dモデルを生成します。
ここで重要なのは複数の角度から同じ部分を撮影するという部分です。詳しい理論は慣れてきてから調べると良いかなと思います。

でここからアライメントの話に戻りますが、アライメントが重要なのは人間の目で考えた場合、しっかりと元の目の位置を特定しないと上手く立体的に見えないからです。(右目の位置が額だったり喉だったらおかしいよね?というイメージで)

特徴点

フォトグラメトリは複数の角度から複数枚の写真を撮影します。撮影した写真はどこからどの部分を撮影したかを機械的に判断する(アライメント)必要があります。
その判断材料の一つが今回説明する特徴点になります。

まず特徴点自体がどういうものかと言いますと"3Dモデル化する物体の模様の内他の部分とは異なる模様”のこととイメージして貰うのが良いと思います。ただしこれだと分かりにくいので実際に図で説明いたします。

特徴点がある場合のイメージ図

まず特徴点ありの場合で考えますが、上記イメージ図のうち一部分を切り取った(左上)上で、切り抜かれた元の場所がどこかを答えよと聞かれた場合、ひげのおじさん等特徴のある模様が多いためすぐにどこの場所かを答えることができると思います。

特徴点のないイメージ図

では特徴点が無い場合はどうでしょうか?
上記イメージ図はチェック柄の模様はありますが、それは画像のどこも同じ模様となっています。そのため一部分を切り抜いてしまうと元の場所がどこかを正確に答える事は出来ません。これを特徴点が無いと表現します。

この様に特徴点は"3Dモデル化する物体の模様の内他の部分とは異なる模様”と覚えておいてください。

では次になぜ特徴点が重要かを説明いたします。

例として四角い箱の四隅に緑青黄赤の色をつけた箱で考えてみます。この箱を様々な角度から写真を撮影しアライメントしたいと思います。

今回は箱の四隅に特徴点が存在しているので、前方から撮影した場合は青と黄色の印のみが、斜め横から撮影すると緑青黃や青黃赤等の3色が映り込むのでどこから撮影したかがわかります。また画像では省略してしまっていますが実際は遠近法により手前が大きく、奥は小さく映るのでどの位置から撮影したかも計算で導き出すことが可能となります。
ではもしこの特徴点が存在しない状態で撮影したらどうなるでしょうか?

特徴点が存在しない状態で撮影を行った場合、正面から撮影した写真には白い箱しか映りません。これは正面でも真横からでも真後ろからでも同じ写真が撮影できてしまう事となってしまい正確な位置を計算することが出来ません。また同じ様に斜めから撮影した場合も左右どちらから撮影したかを特定することが出来ません。
この様に特徴点がないとアライメントが失敗=3Dスキャンが失敗してしまいます。

自己位置推定(SLAM/VIO)

iPhoneのLiDARスキャンや一部のスマホフォトグラメトリ/3DGSは3Dマッピングと自己位置推定を行っています。特に後者の自己位置推定は3Dスキャンモデルの品質に大きく関わってくるため簡単ながら説明をさせていただきます。

自己位置推定は"現在撮影しているカメラの位置がどこなのかをリアルタイムで推定する"ことを指します。イメージ的にはリアルタイムアライメントと表現した方が分かりやすいかも知れません。

上記動画では撮影した位置に写真のアイコンが空間上に配置されていますが、これは自己位置推定がしっかりと働いているため配置できています。

よくLiDARスキャンした場合にメッシュがずれるや一部自己位置推定機能を使用するアプリで3Dモデルが破綻するという相談をいただきますが、そういう場合はだいたいこの自己位置推定が失敗したために発生します。
この様な失敗の対処方法は後述するためここでは解説しませんが、もし何か失敗をしてしまった場合はこちらの自己位置推定というワードを思い出して頂けるとよいのかな~と思います。

より詳しい自己位置推定の説明はこちらのQiitaの記事が参考になると思います。

スマホ3Dスキャンが苦手としているモノ

スマホ3Dスキャンは得て不得手がハッキリとしており、3Dスキャンする対象の材質や形状によってはどう頑張っても上手くいかない場合があります。
ここではLiDARスキャンとフォトグラメトリ/3DGSの苦手としているモノを解説していこうと思います。

LiDARスキャン

  • ガラスや透明なプラスチックや水面等の透明/半透明な物体
    →レーザーを透過してしまうのでモノとして認識されません

  • 鏡や磨かれた金属等の表面がよく反射するモノ
    ※特に鏡は映っているモノがスキャンされてしまいゴーストが発生します

  • 1辺が15cm未満の物体
    →LiDARスキャンする場合は1辺が15cm(iPhone14Proの縦幅)以上が望ましいとされています※LiDARスキャン(詳細モード)なら問題ありません

  • 高さが5m以上ある建物
    →人間の手だけでスキャンする場合の限界が高さ5m程度となっています。自撮り棒等を使うことである程度の高所でもスキャン出来ますが、ブレなどの問題により品質は悪化します。

  • 同じ色や模様が続いている場合
    →同じ色や模様が続いている場合、自己位置推定が上手く働かずLiDARスキャンの処理にエラーが発生しおかしくなる場合があります。特に室内の天井は変化に乏しい場合が多いので注意が必要です。

  • 動いている物体
    →人(特に小さな子供)や動物は眠っている時にスキャンしましょう。

フォトグラメトリ/3DGS

補足 :フォトグラメトリに比べて3DGSはこれら苦手なモノも3Dモデル化できる傾向にありますが、根本的には苦手としている事に留意してください。

  • ガラスや透明なプラスチックや水面等の透明/半透明な物体
    →写真に映らなかったり、特徴点が非常に少ないので基本的に透明/半透明な物体はフォトグラメトリ不可能と考えても良いでしょう。3DGSだとこれらの物体もそれなりに3Dモデル化することができます。

  • 鏡や磨かれた金属等の表面がよく反射するモノ
    →撮る角度によって表面に写っているものが変わってしまう(同じ特徴点が存在しない)のでこれらの材質はフォトグラメトリするのが難しくなっています。3DGSの場合だと表面に反射した模様がそのまま映り込む場合がありますので注意してください(撮影者など)

  • 光沢があり表面がツルツルしているモノ
    →こちらはフォトグラメトリ自体は出来ても一部が欠けていたり、表面が凸凹になってしまう場合があります。こちらは3DGSが得意としている部分のためこの様な物体は3DGSを使用して記録を残す方が良い場合も多いです。

  • 単色や模様が存在しないモノ
    →特徴点が存在していないモノはフォトグラメトリすることが出来ません。3DGSでもアライメントは発生するためアライメントが失敗するレベルの特徴点のなさだと厳しい場合が多いです。

  • 動いている物体
    →写真ごとに写り込んでいる形状が変わっているためフォトグラメトリ/3DGSすることが出来ません。

撮影時の安全対策

3Dスキャンの撮影時には上記のような事故が発生するリスクがあります(軽傷ですが自分は上記全ての事故を経験しています)

事故が発生する一番の理由は画面を確認しながら撮影をしてしまうからとなります。

室内でも机やタンスなどの家具にぶつかる、物に足を取られる等のリスクがありますし、屋外であれば人や自動車などと接触する第三事故のリスクも発生します。

その為3Dスキャンの撮影を行う場合は

  1. 撮影前の周囲確認を徹底し、危険箇所や人が立ち入らないかをしっかりと確認してください。特に危険箇所や人が通る場所等は避けるようなルートを構築する必要があります。

  2. 撮影中は画面を注視しない事を徹底してください。画面を確認したくなる気持ちはとても、とてつもなく分かりますがどうかその気持ちをグッと抑えて周囲を確認してください。

  3. 画面を確認する場合は周囲を確認して安全を確保してから確認してください。特に動きながら確認するのではなく立ち止まるのが良いと思います。

を守り、事故のない3Dスキャンを行いましょう。

3Dスキャンのコツ(共通編)

この項目ではスマホ3Dスキャンを行う場合の基礎的な内容を記載しています。その為スキャンしたい対象によっては一部異なる場合があります。

スキャンする対象と周辺環境を確認する

スマホ3Dスキャンには上記で紹介した様に苦手なモノがあります。その為事前に確認し対処する必要があります。
またスキャン対象だけではなく、スキャン対象の周辺環境もしっかりと確認しましょう。特に足場となる部分に障害物が無いかや人が立ち入る可能性が無いかをしっかりと確認しましょう。

十分な照度を確保する

3Dスキャンする場所は十分な明るさがあるようにしましょう。ただし明るすぎる場合、カメラを向けた際に映像や写真が白飛びする場合があるので注意しましょう。

照明の場所によっては影が発生し、その影がそのまま3Dモデルに反映されてしまうため、照明の位置には十分注意する必要があります。
屋外でスキャンする場合は影が発生しない曇りの日が一番望ましいとされています。

カメラ部分の汚れに注意する

スキャン開始前にカメラのレンズ及びLiDARセンサー部分に汚れが無いかを確認してください。レンズ部分の汚れはスキャン品質に直接影響を与える為注意が必要です。

基本的にフォトグラメトリもLiDARスキャンも素の状態で使用されることが想定されているため、レンズカバーはスキャン品質に悪影響を及ぼす可能性があることに注意してください。

手ブレを防ぐ

スキャン中の手ブレはテクスチャの品質に大きく影響します。特にフォトグラメトリはブレがモデルの形状に悪影響を及ぼすだけでなく、特徴点を認識出来ないため使えない写真になる場合があります。その為スキャン中は両手でしっかりとスマホを保持しましょう。

LiDARスキャン、フォトグラメトリ共にiPhoneの向きが縦、横、逆さまであっても問題なくスキャンが可能となっています。その為個人的に両手でしっかりと保持しやすい横持ちを推奨しています。

またスタビライザー(ジンバル)を使用することで品質が向上する場合があります。フォトグラメトリの場合はBluetoothリモートシャッターを併用することでより使いやすくなると思います。

撮影は基本正面から

LiDARスキャン、フォトグラメトリ問わずスキャン(撮影)時は対象物の正面から撮影することが大切になります。

斜めから撮影した写真は3Dモデル作成時に正面から撮った写真の様に引き伸ばされます。その為場合によってテクスチャが歪んでしまう場合があります。

その為可能な限りは正面から撮影する様に意識してください。特に高い場所などどうしても斜めから撮影する必要がある場所は自撮り棒を使って高さを確保するなどの工夫をすると良いでしょう。

スキャン対象が動かないようにする

スキャン中に対象物が動いてしまう場合、正常にスキャンが行えなくなります。特に小物スキャン等でパーツがしっかりと固定されていない場合や屋外スキャン時に風が吹いている場合は注意してください。

3Dスキャンのコツ(LiDARスキャン編)

熱暴走対策を行う

iPhoneLiDARスキャンは端末の処理性能を最大限まで使用するため、LiDARスキャン時はすぐに端末温度が上がります。端末温度が一定値を超えた場合、強制的に処理性能を引き落とし、端末の冷却が優先されます。
その為iPhoneLiDARスキャンを行う場合はいかに熱暴走を起こさないかが重要となります。

熱暴走が発生した場合、画面がカクつく、画面が暗くなるという症状が発生する為、これら症状が現れた時は直ちにスキャンを中断しましょう。

対策としてはスマホカバーを外す、スマホクーラーを使用する、屋外の場合は日傘を使用し直射日光がiPhoneに当たらないようするが挙げられます。

スキャン範囲の設定

一度に広い範囲をLiDARスキャンしてしまうと熱暴走や処理限界が来てしまい、品質の悪いスキャンしか行えなくなる場合が多いです。その為広域をスキャンする場合は複数の区画に分けてスキャンする様にしましょう。

一度にスキャンできる範囲は条件により変わりますが、10m×10m(100m2)以内を目安にするのが良いと思われます。
なお涼しい場所でスキャンをする場合は上記より広い範囲でもスキャンすることが可能ですが20m×20m以内に納めるのが良いと思われます。

スキャン対象との距離

スキャン対象によって推奨距離は変化しますが、空間の場合は1m~3m以内、詳細モードで小物をスキャンする場合であっても10cm~50cm程度は離れた距離でスキャンする必要があります。

iPhoneのLiDARセンサー自体の有効照射距離は5mですが、5m先では平らな面などを大まかに検知できる程度となっているため、ある程度の起伏等をしっかりと認識させるには3m以内が推奨されます。

iPhoneの角度

主に屋外スキャンをする場合に注意が必要な項目ですが、地面を計測する場合は地面に対してiPhoneの角度が30度から45度になるようにします。

iPhoneの角度が急過ぎる場合、地面以外にも水平線や遠景が写ってしまい自己位置推定に使える情報が少なくなる為です。また垂直面をスキャンする場合は面に対してiPhoneが正対する様にスキャンします。

スキャン時の移動速度

スキャン中の移動速度は品質に多くの影響を与えます。これは移動速度が早いほど手ブレなどが大きくなる為です。

移動速度は普段の徒歩移動の半分程度になるように意識してください。またスタビライザー使用時であっても移動速度が早い場合はiPhoneの処理が追いつかない場合があるため注意してください。

同じ場所のスキャンをしない

一度スキャンした場所を再びスキャンした場合、状況によっては一度スキャンした場所と認識されず、スキャンが2重にされる場合があります(以下ゴーストと呼称します)。

このゴーストは1度スキャンしてからの時間が増えるほど発生する確率が高くなっているため、基本的には一度スキャンした場所はスキャンしないようにしましょう。

もし2回スキャンが必要な場合(1周して起点でスキャンが終了する場合等)は1回目と同じ場所をじっくりと映すことでゴーストの発生が抑制される場合があります。

スキャン対象以外のモノを映さない

スキャン角度の項目でも述べましたが、スキャン対象以外のモノが画面に多く写っていると正常にスキャンできない場合があります。

特に空等の色の変化が乏しく常時変動しているモノはスキャンにとって有害となります。また人や自動車等移動している物体がスキャン画面に映り込んだ場合もエラーが発生する可能性が高くなるため注意してください。

3Dスキャンのコツ(フォトグラメトリ/3DGS編)

写真同士が70%以上重なる様に撮影する

フォトグラメトリ時に撮影する写真は、隣接する写真同士が70%以上同じ位置が写っている(オーバーラップ)様に撮影します。
もし仮に適切なオーバーラップを確保出来ていない場合は、正常に処理が行えずモデルが作成出来ないか一部が破綻してしまいます。

このオーバーラップは縦横どちらも70%以上重なっている必要があるため注意してください。

カメラの位置を変えて撮影する

コツの冒頭で解説しましたが、フォトグラメトリは様々な位置から撮影するのが重要となります。

上記画像で考えた場合左と右では左の方が多くの位置から撮影されている為、より綺麗な3Dモデルが生成されます。
その為フォトグラメトリの写真撮影時は位置を同じ位置から角度を変えて撮影するのではなく、位置を変えながらオーバーラップを意識して撮影することが重要です。

角は多めに撮影する

角を撮影する場合はどうしてもオーバーラップの確保が難しくなります。
その為適切なオーバーラップを確保する為にも多めに写真を撮影するのが大切です。

この時も位置と角度の両方を変えながら撮影してください。

高さ方向も位置を変えながら撮影をする

高さ方向も位置(高さ)を変えながら撮影するのが重要です。
この時ただ垂直に高さを変えるのではなく、ドーム状になる様に高さとカメラの傾きを変えるとより品質が向上します。

最初は必要十分以上の撮影枚数を意識する

フォトグラメトリは撮影した写真の枚数に比例して品質も向上しやすいですが、データの処理時間が増加します。

品質と処理時間のバランスを見ながら撮影枚数を調整することが推奨されますが、基本的に撮影枚数が多いほうが成功しやすいです。 その為フォトグラメトリ初心者の場合は撮影枚数を多く取ることが推奨されます。

これはあくまで自分の経験上ですが、1周16枚以上の写真を撮影するのが良いと思います。

使えない写真を削除する

写真撮影時に背景の一部が動いてしまった場合(特に屋外撮影に多い歩行者や自動車等)は3Dモデル生成時に悪影響を及ぼすため可能な限り削除してください。

また撮影時に影が出来ている部分はテクスチャに反映されるため写真は削除して方が良い場合もあります。

光源方向にカメラを向けて写真を撮影した場合は白飛びが発生する場合があります。こちらも3Dモデル生成時に悪影響を及ぼすので削除してください。

撮影した写真の中には手ブレの影響で写真全体がブレていたり、ピンボケしている写真も出てきます。
この様に正常に撮影されていない写真を処理に使ってしまうと、全体の品質に影響を与えてしまい、低クオリティの3Dモデルが生成されてしまいます。

その為フォトグラメトリの処理実行前に撮影した写真を確認し、使えない写真は削除しましょう。

初心者にオススメのiPhone3Dスキャンアプリ

本記事では上記のスマホ3Dスキャンアプリまとめ表に記載されているアプリ4種を紹介いたします。

物のフォトグラメトリを行う場合は自分が動いて写真を撮影する方法と対象物を直接回転させる方法の2種類が存在します。 (空間の場合は当たり前ですが自分が動いて撮影するしかありません)

自分が動いて撮影する方法

対象物を中心に人(カメラ)が動きながら撮影する方法です。 後述する対象物直接回転方法よりも手軽に撮影することが可能ですが、対象物の周辺に人が動けるスペースを確保する必要があります。

その為室内で撮影する場合は撮影スペースの確保が課題になります。 また動きながら撮影する都合上手ブレの発生を如何に抑えるかが重要です。

地面に直接置くよりは背もたれの無い椅子等の台座上において撮影するのが良いと思います。

対象物を直接回転させて撮影する方法

※注意:この方法は全てのフォトグラメトリアプリが対応している訳ではありません。

こちらはカメラではなく対象物を直接回転させながら撮影をする方法になります。対応アプリを使用する、撮影ブースを工夫するという制約はありますが省スペースで撮影を行うことができます。

対象物を回転させる手段としては手で回転させる方法と(電動)回転台を使用する方法の2つが存在しています。
小さいモノであれば手で問題ないと思いますが、ある程度サイズや重量がある場合は回転台を使用する方が良いと思います。

この手段を用いる場合は、アプリにMasking機能(アプリ解説項目に対応アプリか記載)が搭載されている必要があります。また撮影する場所の背景が白や黒などの単色であることが望ましいです。
このMasking機能は3Dモデル化する対象物以外の背景を消して(イメージ的にはペイント3Dのマジック機能)フォトグラメトリを行うという機能な為、背景は分かりやすい単色が望ましいとされています。

Scaniverse

・対応機種:
LiDARスキャン+フォトグラメトリ+splatモード
iPhone12Pro以降のProシリーズ
iPad Pro(2020年)以降のProシリーズ
フォトグラメトリ+splatモード
iPhone12以降のiPhoneシリーズ
最新のiPadシリーズ
ARCoreに対応したAndroidOS 7.0以上の端末
フォトグラメトリ
iPhoneXS以降のiPhoneシリーズ
A12以降のプロセッサを搭載したiPad
ARCoreに対応したAndroidOS 7.0以上の端末
・料金:無料
・出力形式:
メッシュ=OBJ,FBX,GLB,USDZ,STL
点群=PLY,LAS
splat=PLY (3DGS),SPZ

特徴
ScaniverseはNiantic社が提供している全ての処理を唯一スマホ単体で処理を行う3Dスキャンアプリとなります。スマホ内で全て処理するため他アプリと比べてアップロードやクラウドサーバーでの待ち時間が存在せず、早ければ撮影に1分、処理に1~2分とカップラーメンよりも早く3Dモデルを生成することが出来ます。(クラウド処理だと大体30分以上はかかります)
そのためいち早く結果を見たい場合等かなり気軽に使えるという特性があるため初心者にイチオシのアプリとなっています。
またユーザーが任意でクラウドサーバーにアップロードしない限り、スキャンデータはオンライン上にアップロードされる事は無いため、プライベート空間やセキュリティ面で厳しい場面でも使用できるのも利点となっています。

Scaniverseの独自特徴としては3DGS(splat)をスマホ単体で処理を行う事ができるというものがあります。この3DGSを無料で行えるアプリはScaniverse以外だとPolycamとLuma 3D Captureが存在していますが、前者は処理できる枚数や動画時間が短く処理の待ち時間も1時間以上、後者は処理に最低でも1日以上かかる(25年1月現在)為、手早くそれなりの撮影時間で無料の3DGSを体験できる唯一のアプリと行っても過言ではありません。

またMetaQuest系列限定になりますが、ScaniverseのSplatモードでスキャンされた全世界のデータ(任意のユーザーがアップロードしたもののみ)を簡単にVRで閲覧することが可能となっています。

VRで閲覧したい方は下記URLのLaunch on QuestをMeta Questのブラウザで開くことで簡単に閲覧する事ができます。

Polycam

・対応機種:
LiDARスキャン+フォトグラメトリ+3DGS
iPhone12Pro以降のProシリーズ
iPad Pro(2020年)以降のProシリーズ
フォトグラメトリ+3DGS
iOS16.0以降のiPhoneシリーズ
最新のiPadシリーズ
ARCoreに対応したAndroidOS 7.0以上の端末
・料金:年額18000円(一部機能無料)
・出力形式:
メッシュ=OBJ,FBX,GLB,USDZ,STL,DAE
点群=PLY,LAS,DXF,XYZ,PTS
splat=PLY (3DGS)

Polycamは世界トップシェアを誇るスマホ向け3Dスキャンアプリとなっています。3Dスキャンアプリとして必要なほぼ全ての機能を搭載しており、性能も高く、総合性能の高いスキャンアプリを使いたいという方におすすめとなっています。ただし機能をフルで使いたい方はサブスクが必須であり、年額18000円と少々お高めのためその点には注意してください。

Polycamは無料でクラウド処理のフォトグラメトリと3DGSを体験する事が可能です。フォトグラメトリは150枚の写真 or 3分以内の動画、3DGSは100枚の写真 or 1分40秒以内の動画の範囲で無制限のフォトグラメトリ/3DGSが可能となっています。
特にフォトグラメトリは下記動画の様にカメラアプリで撮影し、Polycamのブラウザページから写真をアップロードすることでアプリがインストールできない端末でもフォトグラメトリが可能です。また回転台や手動でスキャン対象を回転させる省スペースのフォトグラメトリや底の撮影も可能となっています。

他にもLiDARセンサーを搭載したiPhoneのみですがRoomスキャン機能を使うことでリアルタイムの簡易室内3Dマッピングを行うことが可能となっています。

RealityScan

https://www.unrealengine.com/ja/realityscan

・対応機種:
フォトグラメトリ
iOS16.0以降のiPhoneシリーズ
最新のiPadシリーズ
ARCoreに対応したAndroidOS 7.0以上の端末
・料金:無料
・出力形式:
メッシュ=FBX,USDZ,GLB

RealityScanはEpic社が提供しているフォトグラメトリ専用アプリとなっています。RealityScanはPC用フォトグラメトリソフトであるRealityCaptureの姉妹アプリとなっているためそのスキャン性能は折り紙付きと言っても過言ではありません。

RealityScanの特徴はアライメントなどをアプリ側が判断して写真を撮影してくれる自動撮影機能、撮影時にどの部分の撮影が足りていないかをARで表示してくれるアシスト機能、最終処理前に品質のプレビューが行える等の初心者向けのアシスト機能が豊富となっており、ただ3Dスキャンするだけでなくフォトグラメトリの基礎知識を身につける事ができます。

KIRI Engine

・対応機種:
LiDARスキャン+フォトグラメトリ+splatモード
iPhone12Pro以降のProシリーズ
iPad Pro(2020年)以降のProシリーズ
フォトグラメトリ+3DGS
iOS16.0以降のiPhoneシリーズ
最新のiPadシリーズ
・料金:年額12000円
・出力形式:
メッシュ=OBJ,FBX,GLB,USDZ,STL
点群=PLY,XYZ
splat=PLY (3DGS)

KIRI Engineの魅力は(個人的な印象ですが)なんと言っても3DGSしたデータから綺麗なメッシュデータを生成できる点です。(ただし機能としては有料のためサブスクが必須になります)

KIRI Engineではこの様に本来では3Dモデル化が難しい半透明な物体でも綺麗な3Dモデルを生成する事が可能です。現状(2025年1月)では唯一KIRI Engineのみがこの機能を使用する事ができるため他アプリで綺麗にスキャンが出来なかった場合は是非一度試して頂きたいなと思います。

またPolycamと同じ様に回転台等を使用したフォトグラメトリにも対応している為、その様な用途でもKIRI Engineを活用する事が可能なのもメリットとなります。

場面別3Dスキャンのtips

眠っている子供や動物をスキャンしたい場合

こちらの場合はスキャン中に寝返りや起きてしまう可能性があるため可能な限り素早くスキャンする事が重要となります。その為LiDARスキャンや動画からフォトグラメトリ/3DGSにするのがオススメとなっています。(無料で試す場合はScaniverseが上記の全てに該当するためおすすめです)

理想的なスキャンポジションはスキャン対象の周囲を回れることですが、それが不可能な場合は自撮り棒を使用して反対側をスキャンするのが良いと思われます。

人をスキャンしたい場合

こちらの場合は細部をしっかりと撮りたいのでフォトグラメトリ/3DGSを利用するのが良いと思われます。LiDARスキャンでは腕の下側や足の内側等をスキャンする時に失敗しやすいためです。

被写体となる人は用途にもよりますが、VRアバターとして活用する場合は大の字の姿勢がオススメとなります。フォトグラメトリで3Dスキャンを行うため撮影に時間がかかります(大体5~10分程度)。
その間同じ表情をキープするのは難しい(瞬きも不可)為、胴体と頭部は別々でスキャンし、CGソフト等で合体させるのが良いと思われます。また頭部をスキャンする場合は椅子などに座ってスキャンすることで頭頂部までスキャンする事ができます。

万が一、一度のスキャンで体全体(顔含む)までをスキャンしたい場合は顔から順に下側へ円を描くようにスキャンすることが推奨されます。この時間違っても顔(特に表情)が2回以上スキャンされないように注意してください。

半透明な物体や光沢、反射するモノをスキャンしたい場合

メッシュが欲しい場合はKIRI Engineの3DGS→メッシュ化を使用するのが現状の最適解だと思います。(3DGSのデータのままでも良い場合はPolycamのsplatでも可)

またテクスチャを得ることはできませんが、形状だけスキャンしたい場合はAESUBと言う専用スプレーを使用することでフォトグラメトリが可能になります(ただしスプレー自体は結構高いですが)。

フォトグラメトリで光沢のあるモノをスキャンする場合は以下の記事が参考になると思われます。

スキャンしたモデルに穴がある場合

スキャンモデルの穴は、スキャンしたモノの色が単色や特定のパターンの柄が連続している場合に発生しやすくなっています。特に表面が光沢しているモノの場合は上記現象が発生しやすくなります。

対策としては穴が出来た部分に柄付きマスキングテープ等のスキャン後に剥がしやすいテープ類を貼り付ける事で、強制的に特徴点を増やします。

人より背の高いモノをスキャンしたい場合

道具無しでスマホ3Dスキャンを行う場合、人の背丈よりも高いモノのスキャンは難しくなっています。
これは単純にスキャンレンジが足りていないという問題もありますが、スキャン中に状況を確認することが出来ないため、どこがスキャン出来ているか出来ていないかの確認が難しくなっています。

スキャンレンジが問題の場合、長めの自撮り棒を使うことである程度改善されます。ただし自撮り棒使用時はブレが大きくなる傾向があるためテクスチャの品質が低下する場合があることに留意してください。

広域のスキャンを行いたい場合

一度にLiDARスキャンできる範囲は条件にもよりますが10m×10m四方程度が推奨されています。それ以上の範囲をスキャンする場合は、スキャン中に熱暴走や処理落ちのリスクが高くなり、生成される3Dモデルの品質が極端に低くなる場合があります。

iPhoneのLiDARスキャンで上記以上の範囲を計測する場合は、複数の区画に分割し、後からCGソフト等で合成する方法が推奨されます。
この時分割した区画同士の一部が重なっている様にスキャンすると良いでしょう。また重なる部分にマーカー等を設置すると合成時の処理がやりやすくなる為オススメです。

暗所でのスキャンを行いたい場合

暗所でのスキャンは、スキャン時にエラーが発生する可能性が高く推奨されていません。

万が一洞窟等の閉所かつ十分な光源を確保できない場所でスキャンする場合は、広角の懐中電灯で前方を照らしながらスキャンしてください。ただし懐中電灯の明かりが強すぎた場合、白飛びの可能性が高くなるため、使用する懐中電灯の選択には十分注意してください。

ただし上記のやり方であってもスキャン時のエラーが発生する可能性は高くなっています。

部屋全体をスキャンしたい場合

部屋全体をスキャンする場合、一番重要なのは適切な移動経路を選定することです。これは2回以上のスキャンを防ぐことでゴーストの発生(メッシュが2重になる現象)を抑制するのと、死角によるスキャン漏れを減らす為です。
またLiDARスキャンではなくフォトグラメトリで行う場合は超広角レンズでの動画撮影を個人的には推奨します(広い範囲を映す=特徴点が多く撮れる為)

経路開始は部屋の片隅から開始し、波状に移動するのが良いとされています。LiDARスキャンレンジが変更可能なアプリはスキャンレンジを3m程度に設定し、ゆっくりと移動します。視点を変える場合は一度立ち止まってからiPhoneを動かすと良いでしょう。

天井部分をスキャンする場合は可能な限り素早く行います。これは天井部分の特徴点が少なく、長時間天井部分を映している場合、スキャンにエラーが発生する可能性があるためです。

一度に空間とモノの両方を撮影するのはかなり難易度が高いと考えています。そのためLiDARスキャンで部屋全体をスキャンした後、フォトグラメトリ等でモノをスキャンし、後から合成するのが一番品質良くスキャンできると思います。

小さいモノをスキャンする場合

小さいモノをスキャンする際、スマホのカメラ位置が下側になるように持ちます。これは可能な限り下側の死角になる部分を減らす為です。LiDARスキャン、フォトグラメトリ問わずスマホが逆さまになってもスキャン結果に影響を与えることはありません。

モノを置く土台は可能な限り光沢が無い素材のモノを使用します。また土台自体も単色等の特徴点が乏しいモノより特徴点が多いほうが成功しやすくなります。その為新聞紙等を下敷きにすると良いでしょう。

スキャンする時、画面全体にモデルが映り込む距離までカメラを近づけます。ただしこの時近寄りすぎて映像がボヤけてしまわない様に気をつける必要があります。
上側から撮影する場合は、光源の位置を意識して撮影する必要があります。これは撮影者自身の影がテクスチャに反映されるのを避ける為です。

ただし上記を意識してもスマホフォトグラメトリで葉っぱや特に細いもの(ケーブルやガンプラの角等)を3Dモデル化するのは非常に困難となっています。

あとがき

今はiPhone/iPadでしか使えない3Dスキャンアプリも多いですが、一部のアプリはAndroid端末にも対応し始めています。
その為今はiPhone3Dスキャンと呼んでいますが、いつの日かスマホ 3Dスキャンに改名する日が来るのかな~と勝手に妄想しています。

【初心者向け】iPhone 3Dスキャンパーフェクトガイド

2022年に執筆したnote記事で書いた上記あとがきですがたったの2年でAndroidでも十二分に3Dスキャンできる環境が整いました。
今までは自分が執筆したnoteもiPhoneをターゲットにしていましたが、内容の統合含めてスマホ3Dスキャンという呼称で記事を執筆しようと思いこの記事が誕生しました。

特に昨今では急速に3Dスキャン技術が発達してきており、1年後いや数ヶ月後には新しい技術が出てくるのかな~と楽しみにしています。

みなさんもこのnoteを機に3Dスキャンというものに興味をもっていただけたら幸いです。

※本記事は筆者(iwama)の独自調査による内容が多く、実際とは異なる場合もあります。

※本記事の内容は2025年1月現時点の内容となっており、最新の情報とは違う場合があります。

いいなと思ったら応援しよう!