◆はじめに
ご無沙汰しております。。花粉症と確定申告で死にそうなますくです。
今回はホットな話題ということで、Twitterでも物議を醸したフォトグラメトリーについての検証記事を書きたいと思います。
皆様はPhotogrammetry(フォトグラメトリー)をご存じでしょうか。
一言で説明すると写真から3Dモデルを生成する技術です。
先ずはこの記事を書くきっかけになった著者のツイッター投稿を御覧下さい。
写真110枚くらい、解析時間13分くらい。これすごいんとちゃいます? pic.twitter.com/UScFKGnj9L
— ますく@ CGやさん (@mask_3dcg) 2018年2月21日
この動画は、110枚の写真から3D化をした際のキャプチャ動画で、パット見写真なのか3Dなのか分からない不思議な感覚になる作業の様子です。
何気なく投稿した割に、FABとRTの合計が1万5千超え、動画再生数が28万以上、インプレッションは130万を超えた自分史上最も拡散した投稿に。
何が拡散されるのかわからないのがネットの怖さですが、一度拡散が始まると止まらないのがすごい所でもあります。
そして、完成したものがこちらです。
愛車のWR250Rです。
SketchFabに投稿していますので、
サイトに飛んでいいねボタンを押して頂けると、著者のモチベーションに繋がりますのでありがたいです。
活動継続のためのご協力をいただけるとありがたいです。
アカウントをお持ちでない方は、是非上記の招待リンクから是非ご登録下さい。
ArtStationと連携もできる今世界で一番勢いのあるWebで3Dを閲覧アップロードできるSNSです。フォローもお待ちしています。
◆Photogrammetryについて
Photogrammetryについて詳しく説明したいと思います。
Photogrammetryは大量の写真から3Dを作成する昔からある技術ですが、ムーアの法則に従いハードウェアが急速に進化し、ここ数年で一気に精度が上がりハイエンドコンテンツでよく使われるようになった技術です。
一般的な3Dスキャンと何が違うのかというと、スキャンの場合は深度センサー等を用いますが、
フォトグラメトリーの場合は、各写真の差分からカメラ位置の割り出し、3Dトラッキングにより点群(ポイントクラウド)を作成する技術です。
3Dトラッキングは動画合成などでよく使われる技術で、動画で地面や壁等の平面を測定するために使われているので、AfterEffectsなどでよく知っている方も多いと思います。
映像のフォトグラメトリーは少ないトラッキングポイントですが、フォトグラメトリーの場合は大量のトラッキングポイントからカメラ位置を逆算し、3Dオブジェクトとテクスチャを生成します。
フォトグラメトリーは非常に古くからある技術で、昔は今ほど精度は高くなかったように思います。
ソフトウェアが劣っていたというよりも、ハードウェアのスペックが低かったため、マシンスペックに最適化されていて、トラッキングポイントの数や、
リメッシュの解像度が適度に間引かれていたのだと思います。
◆STRATA FOTO 3D
著者が最初にPhotogrammetryに触れたのは
大学時代お世話になった恩師の海津ヨシノリ先生から STRATA FOTO 3D というソフトを教わった時です。
海津ヨシノリ先生の STRATA FOTO 3D 記事はこちら。
当時はまだ手間がかかり、制限もあり、細かい凹凸などの質感がまだ再現できていなかったため、
センサーによる3Dスキャンの方が利点が多かったと記憶しています。
そんなフォトグラメトリーですが、手法は変わらないものの、新しいソフトも沢山産まれ、ハードウェアも飛躍的に進化したため、十分な実用に耐える精度が出るようになりました。
アルゴリズム自体が変わったというよりは、パソコンの処理速度が何倍にも上がり、より複雑で大量の演算ができるようになったため、クオリティが上がったように思います。
◆3Dスキャナーの欠点
著者は3Dスキャナーを所持していて、更に、業務でも数多くのタイプのスキャナーを使用してきました。
2012年頃、世界初の3D写真館Omote3Dでも、展示用のモデルはじめ、200体以上のフィギュアを担当させていただきましたし、フィギュア造形で用いられる精密な3Dスキャナーも業務で使用していました。
当時は3Dスキャナとフォトグラメトリーの併用が理想的でしたが、現在ではスキャナーをわざわざ使う必要性は感じないほどになっています。
センサーを使いたくない最大の理由は、大きさの制限があることです。
スキャナーは常に大きさに依存しますが、写真解析は大きさに依存しません。
例えば、ローマのCOLOSSEUMや、万里の長城などを、一度にスキャンできる巨大なセンサーはありません。
しかし、空撮した映像や写真ならば、比較的少ない労力で取材することができます。
また、逆にミクロの世界でも同じことがいえます。電子顕微鏡でしか見えない細菌を3D化、なんてこともできます。
ミクロの世界から巨大建造物まで、地球でさえも3D化できるのがフォトグラメトリーの利点だと思います。
◆ソフトの比較検証
現在、Photogrammetryのソフトは乱立しています。
測量や背景制作にも気軽に使えるため、業界的にも最もトレンドな技術の一つだと思います。
ただ、日本語で調べてもフォトグラメトリーに関しては殆どまとまった情報がない状況でした。
何事も自分で試して、同じ条件でフェアに比較して初めて確信が持てる部分もありますし、自分で比較検証をしてブログにまとめようと考えました。
今回は、現在主流になりつつある4つのソフトを比較検証してみましたので、その結果をお見せします。
110枚の同じ写真から同じ条件で3D化しています。
◆AutodeskReCap
https://www.autodesk.co.jp/products/recap/overview
天下のAutodesk様のフォトグラメトリサービスです。
同社のフォトスキャンサービスはスマホで3Dを生成できる123DCatchに始まり、様々なサービスが産まれては消え、新しくリビルドされています。
フォトグラメトリーは解析にハイスペックなマシンスペックを必要とするため、現在のReCapは、Autodeskのサーバーにデータを送りAutodeskのサーバーが計算を代行してくれるクラウドサービスになっています。
条件が良ければしっかり構築されるかもしれませんが、今回の条件ではちょっと使い物にならない感じがしました。
現段階で、トラッキング精度は他ソフトに一歩劣るかもしれません。
Autodesk様に名誉毀損で訴えられないかハラハラしていますが、自分は、信条のもと、
フェアな条件で比較した結果を、正しくお伝えしたいと思います。
まだベータ版ということもあり、今後に期待です。
◆PhotoScan
PhotogrammetryはPhotoScanとRealityCaptureの二強とも言われている気がします。
これもまた条件によるのでしょうが、RealityCaptureには一歩劣る結果になりました。
ところどころに白い発泡スチロールのような、デブリが生成されてしまい、ポイントクラウドからメッシュに変換するアルゴリズムがあまり良くないのかと推測しています。
生成されたメッシュもかなりガクガクでした。
パット見は、先程のソフトよりは悪くない気がしますが、
寄ってみると、使い物にならない感じがします。
メッシュ化しテクスチャを生成しても、精度が良くないです。
メッシュはガタガタ、テクスチャも眠たい感じがします。
◆3DF Zephyr
https://www.3dflow.net/3df-zephyr-pro-3d-models-from-photos/
Twitterで教えていただいたソフトで、1万5千円程度でSteamで買い切りできるソフトで、特徴として動画から連番画像を抽出し、3Dを生成できるというものがあります。
ドローン空撮動画から、地形を制作する用途ではかなり便利ではないでしょうか。
体験版のため50枚の写真しか使用できませんでしたが、
なんと、半分以下の解析枚数で上記ソフトを大きく上回る結果になりました。
月額課金のRealityCaptureが一番オーソドックスでクオリティの担保ができますが、
買い切りのZephyrは悪くない選択肢です。
本格的というよりは、気軽に、リトポやテクスチャまで自動で生成してくれるオートマチック的な利便性を感じるソフトでした。
画像の解析時間も他のソフトに比べてかなり短く、
クオリティコントロールの必要なメインのモデルと言うよりは、背景制作などで積極的に取り入れたいと思いました。
◆RealityCapture
https://www.capturingreality.com
本命の RealityCapture (RC)です。RCはかなり評判もよく、非常に優秀です。
解析に時間が掛かるものの、フルマニュアル操作で細かいところまで設定ができ、
プロフェッショナル向けのハイエンドツールだと位置づけることができると思います。
アマチュア版がSteamで月額40ドル程度で利用できます。
冒頭のTwitterの動画はRCによるフォトグラメトリーで、かなりの精度が見て取れます。
自分で動かしていても、実写世界の中に入りこんだような錯覚を覚えるほどで、
3Dの操作を辞めると、写真なのか3Dなのか、自分でも区別がつかなくなるほど精巧にスキャンできています。
画像の中央上は3D空間なのですが、パット見写真にしか見えません。
時間はかかりますが、RCは本当にすごいです。シンギュラリティ、
つまりは歴史や価値観の変換点に値するソフトだと思います。RC、断然おすすめです。
◆RealityCaptureを用いたPhotogrammetryの手順解説
ここからはRCを用いたPhotogrammetryのワークフローをご紹介したいと思います。
まずは
・RealityCaptureで写真を解析
工程によってCPUを使うところとGPUを使う所が違うように見受けられました。
また、フォトグラメトリを本格的に始めるには、かなりのメモリやパソコン処理能力が必要なので、注意が必要です。
最近は安価なゲーミングPCでも動作しますが、
本格的なスキャンには、所謂ワークステーションが要求されます。
↓
・RealityCaptureでカメラ位置の割り出し
↓
・ポイントクラウドの生成
↓
・軸の設定と範囲の指定
↓
・メッシュ生成
↓
・(リトポロジー)
↓
・UV展開
↓
・カラーマップ(テクスチャ)生成
初期設定で高解像度出力をしようとすると、以下のようにテクスチャが寄ってしまうケースが多いです。
公式のフォーラムにある情報は古く、できませんでした。
かなりてこずった末にたどり着いたソリューションを記載します。
過去にTwitterで解決方法を解説しましたが、
RealityCaptreのUV展開ツールがおかしくて、テクスチャが下に偏って上がほぼほぼ空白の状態で生成されてしまいます。同じトラブルが多いみたいで公式に解答が載ってますが、当時と仕様が変わったみたいで同じ項目がないです。困ったなぁ…この問題のせいで丸一日潰れてます。 pic.twitter.com/JCzHtUI0xj
— ますく@ CGやさん (@mask_3dcg) 2018年2月22日
RealityCptureには固定値のテクセル密度が設定されていて、その基準は4kテクスチャみたいです。
8kや16kで出したい場合は、掛割した値を密度欄に代入する必要があります。
4kでテクセル解像度が0.02の場合、テクスチャ密度は0.02です。8kにしたい場合はテクスチャ密度を0.1、16kにしたければ0.05を代入してやる必要があります。
無駄のないUVが生成されました。
UVに対してカラーテクスチャがベイクされます。
今回のワークフローでは、このUVは後ほど3dcoatで組み合えることになります。
↓
・ここでRCを離脱します
↓
・ZBrushで、一体化したパーツを任意に分離
↓
・ZBrushで意図しない凹凸の修正
凹凸や、形状が崩れているトポロジをZModelerで修正します。
ZBrushはUVが壊れやすいため、UVが破損しないように注意しながら作業を進めます。
Modoに慣れている人はModoの方がUVを壊さずにトポロジ編集がしやすいです。
↓
・ZBrushで欠損部分の作成
さすがにタイヤのスポークまではとれなかったみたいです。
流石にここまでは、仕方のないことだと思うので
複雑な形状は写真から構造を解析して、ZBrush上で再現します。
アタリのモデルがあるので、ゼロからモデリングするよりは楽ですが、
モデルが正対しているわけではないので、多少のやりにくさはあります。
↓
・3D-CoatでUVの再展開
↓
・3D-CoatでUV、テクスチャを変更して適用
↓
・欠損テクスチャをレタッチ(リペイント)
↓
・デカールやブラシで追加ペイント
↓
・テクスチャを貼りながらノーマルマップ手書き
(今回失敗したのはノーマルマップを手書きしたこと)
(分離パーツなどがなく、ベイク前提ならハイポリのままが良いです)
(BitMap2materialなどでは上手くバイクのノーマルは生成されなかったです)
↓
・SketchFabでの設定
今回はVR対応をさせました。
接地面や、初期の目線の位置を設定します。
◆質感設定について
フォトスキャンされたモデルには、 質感がついていません。
一部、最先端分野では物体の質感を取得するセンサーを搭載しているスキャナーが開発されていますが、今回の趣旨からは外れます。
質感再現や、質感設定に関しては、過去記事を御覧ください。
また、CGWORLDの過去記事でも詳しく解説しています。
過去関連記事はこちら
CGWORLDの過去関連記事はこちら
◆今回のワークフローの課題
今回のワークフローではノーマルマップを生成に難がありました。
質感設定やテクスチャ編集まで視野に入れるなら、UV+テクスチャの状態で編集するのではなく
なるべくハイポリの状態で頂点カラー情報を持たせたままZBrushでディティールを作り込み、
後ほど3DCoatやToolbagなどでリトポ、ノーマルベイクを行うのが良いと思います。
この方法は、さらに時間とマシンに対する高負荷がかかってしまうので、よほど力を入れたい場合、
例えば俳優さんをスキャンしてゲームキャラクターとしてリビルドする場合などに用いると良いと思います。
時間をかけたくない背景物なら、3DF Zephyrを使うのがベストだと思います。
◆撮影のコツ
フォトグラメトリの欠点は、影に弱いことです。
なので、曇りの日や、日没後が良いとされています。
シャドーとシェードという概念があり、東洋では陰影という区別がなされますが、
影、つまり、強い光源により落ちた強い影があると、3D化した後に3D上でライト光源を変えても、影は焼き付いたままになります。
これが欠点です。
強い影が落ちてしまった写真から立体化する場合や、より本格的にスキャンモデルを作成したい場合、デライティングという工程を踏む必要があります。
あとは、よく勘違いされているのが、真っ白な背景で回転テーブルで撮影するような場合です。
フォトグラメトリは3Dトラッキング技術の結晶です。
トラッキングの抽出点となる、特徴点が多いほうが、写真同士の関連性を多く見いだせます。
そのため、真っ白な部屋をスキャンするのは難しく、背景に特徴点として付箋や色紙を貼ったり、幾つかの工夫が必要です。
今回のWRが高い精度で撮影できたのは、曇りの日であったことや、地面や周囲の背景のパターンが特徴的だったこともあるかと思います。
もちろん、ケース・バイ・ケースではあるのですが、一概に真っ白な部屋で真っ白な背景で取る必要はないという考えです。
また、写真同士の共通部分は30%以上はあったほうがよく、確度で刻む場合は5度から10度程度の間隔があったほうがクオリティはあがりそうです。
◆デライティング(Delighting)について
理想的な テクスチャにとって最も邪魔なものが影です。
つまり強い光によって落ちた影の影響を消す必要があります。
より本格的にフォトグラメトリーを行う場合は、アルベドマップと呼ばれる物質本来の色の情報を抜き取ったカラーマップが重要になります。
通常のカラーマップが多少のグラデーションや陰影を含んでいるのに対し、アルベドマップは完全にフラットな物質本来の色のテクスチャマップです。
写真からテクスチャを生成する場合は、このアルベドマップ、そして、AOマップ(アンビエントオクルージョンマップ)と呼ばれる、細かい隙間など発生する弱い陰のテクスチャ、この二つの成分に情報を分ける必要があります。
この工程をデライト(ディライト)と呼びます。
まだまだ日本では情報も需要も少ないですが、フォトグラメトリーの分野が浸透すれば、専門職としても成り立つような分野だと考えています。
デライティング(ディライティング)では、写真から影の影響を抜き取り、素の色を抽出します。
その後、コンピュータ上でAOマップを計算し、強い影はシーンのライティングによって落ちます。
さきほどの質感設定もこの時に必要になります。
こうして、あらゆるシーンに対応できる完全なモデルが作成できます。
TANDENT社のLightBrushというツールがかつてはありましたが、
現在は一般販売を辞めてしまったようです。
買収されたか、専売契約をしているか、といったところでしょうか。
BtoCはやめて、BtoBに移行してしまったようです。残念です。
そこで、いまつかるツールとして見つけたのが、
PhotoScanの中のデライト機能か、
UnityアセットのDe Lighting Tool
こちらは少し癖があるので、使いにくい気がします。
ノーマルマップが必要なのですが、フォトグラメトリからノーマルマップを作るのはけっこう面倒くさいです。
De Lighting Toolの解説は3D人様が詳しく書いていますので、リンクを張っておきます。
◆Photogrammetryの危険性
著者ように何か新しい技術を発信している人は、その技術が正しく使われるように誘導する責任があると思っています。
著者も過去に何度かZBrushの講義をさせていただいたことがある、ワンダーフェスティバルという造形の祭典があります。
原型師にとってワンダーフェスティバルは登竜門であり、最後に行き着く場所でもあります。
日本の原型師が集う一大イベントでは、海外による盗作とコピー品の流通が深刻な問題になっています。
そして、昨今、フォトグラメトリーの技術の進歩により、動画や連番の写真から簡単に高いクオリティの3Dを抽出できるようになってしまいました。
今年、クオリティの高いフォトグラメトリーされた3Dのフィギュアの動画がTwitterに投稿され、話題になりました。
スキャンされたモデルのクオリティの高さから、これは素晴らしいけど危険な技術だし議論をしないといけないんじゃないかと、大勢が考え、モデラーや造形師の間で話題になりました。
その一連の流れがあり、今回のWR250Rの取り組みがTwitterでバズったことにも繋がっています。
確かに素晴らしい技術で、モデリングやテクスチャリングのスキルが有る人間なら、
スキャンしたモデルを元に、下手したらオリジナル以上の盗作品を作れてしまう可能性が高いです。
この問題意識に対し、まだ3Dスキャンの技術は実用段階ではない、と発言している方もいらっしゃいましたが、
モデラー視点から見ると、十分業務で使用できるレベルですし、
そもそも、スキャンモデルのクオリティが低いから、スキャンして良い、とうい話でもありません。
イベントに参加する方や、ユーザーの方は、製作者、原型師やモデラー、原作者や版権元に十分敬意を払う必要があるということです。
もしスキャンしたければ、ディーラーにきちんと話を通すことや、個人利用以外はしないことを明言し、身分証明書を提示し、本名や住所、連絡先などを渡すくらいのことはする必要があると考えています。
クリエイターの尊厳を守るだけではなく、この問題は今後より大きな問題に発展し、自分たちの活動を大幅に制限させる厳しいルールが作られる可能性があります。
もし、この記事を読んでご理解いただけた方がいらっしゃいましたら、お仲間やご友人に注意喚起をお願いしたいです。
著者は、こうした議論が巻き起こることで、業界全体のモラルが向上するとかんがえていて、
問題提起をして議論を巻き起こすことが、著者のスべきことだと考えて情報を発信しています。
製作者は産みの苦労があるため、意識が低いということはありませんが、それを取り巻く環境、業界全体の意識が高くないと、自分たちの首を占める結果になるのではないかというお話でした。
製作者がバカを見る世の中になってしまっては、誰も作品を表に出さなくなってしまいます。
そうなれば、つまらない世界になってしまいます。
そうならないためにも、フィギュアが、3Dモデルが好きなら、盗作はやめてほしいのです。
盗作をする人の中には、悪気がないひとも大勢いて、MMDモデルが無料で配布されたりしている背景があると思うのですが、それもまたモラル低下の問題があります。
最後は堅苦しい話になってしまいましたが、最後まで読んでいただけた方は、ありがとうございました。
◆追記
Photogrammetryや3Dスキャン技術は使い方を間違えなければ技術的には本当に素晴らしいものです。
例えば、風化して壊れてしまう可能性の高い古代遺跡の完全データ化であるとか、CTスキャンで医療分野で重宝されていたり、本当に価値のある技術だと思っています。
著者はモデラーなので、モデラーの仕事が奪わらない?モデラーは必要なくなるよ。とよく嫌味を言われますが、そうは思いません。
そもそも、スキャンしたり、モデル自体を扱う人が当面は必要で、完全に自動化した後の時代でも、技術開発者や、映画やゲームを作る創造力を働かせる仕事には人間が必要です。
なのでフォトスキャンによりモデラーの仕事が奪われるとは考えていませんし、むしろどんどん需要も仕事も増えていくと考えています。
著者は最近、落合陽一氏のお話に痛く共感しています。新しい時代の一端が3Dトラッキングによるリアルタイムのフォトグラメトリーだと思っているので、この分野は確実に今後伸びる分野であると断言できます。
【Realtime 3dTracking】【Realtime Photogrammetry】
こういったキーワードが話題になる時代が確実にやってきます。
飛び込むなら誰もやっていない今がチャンスかもしれません。
この記事の続きですが、、、今後の研究テーマとして、空撮フォトグラメトリからのゲーム背景制作に取り組もうかと考えています。
お楽しみに!
では、良いフォトグラメトリーライフをお過ごしください!