Photogrammetryでなんかやってる人

Photogrammetryから心理学、人類学までいろいろ話したかった

狭い家でバラシ不要なフォトグラメトリ小物撮影ブースを作る-2021 ver. と近況

久しぶりの記事です。

部屋を模様替えして、撮影ブースとリグを一新しましたのでざっくり紹介したいと思います。 

 

前回: 

fft-kedar.hatenablog.com

あの時のブースはPCからちょっと遠くて被写体を動かしたい時はめんどくさかったので、新しくメタルラック買って、デスクトップPCの隣に置きました。 

f:id:fft_kedar:20210106002510p:plainf:id:fft_kedar:20210106002543j:plain

 ビデオライトを撤去して、リングフラッシュ一灯でのライティング環境を作りました。

ただ、真上からはまだ撮りづらいので、機材の増設を考えてます。

 また、動かしたらまずい被写体を撮るときはそのライトで手持ち撮影でやってます。

撮影場所は別ですが。

 

作例:

FED-2 Type-C (powder coating無し)

画像

画像

 

茶碗

画像

 

 

手持ち撮影で撮ったキャベツ:

sketchfab.com

画像

画像

 

他近況: 

diffuseのRGBではなく偏光画像からspecular roughtnessを計算

sketchfab.com

 

Metashape 1.7.0 は悪くなかった

souce data: depth maps, ultra High

画像

画像

 とりあえず以上です。

 

狭い家でバラシ不要なフォトグラメトリ小物撮影ブースを作る

新しい撮影ブースを作りました。

(2021年追記 撮影スピードが遅いのであまりおすすめしない)

 

今までと同じくコスパ最重視の作りとなってますけど。今回は撮影の後に撮影セットを片付ける必要ないというコンセプトです。

 

今まで作った小物撮影ブース

1.簡易版。

###リンク切れ###

研究室でかき集めた機材

照明機材などがないから机にテーブルランプ、

ビニール袋はディフューザー代わりに

 

2.撮影ボックス(当時の写真ないので大体右の感じ)よくある撮影環境

f:id:fft_kedar:20200422012151p:plain

こういうのってよほど部屋にスペースがないと撮影が終わったら全部片付けないといけなくて、めんどくさいから自然と撮影の頻度が落ちます。 

 

3.現在

画像

普段生活の邪魔にならないように撮影環境をどう作ればいいのかとずっと考えてきたけど、今回自分が出した答えはこれ

f:id:fft_kedar:20200422012842p:plain

メタルラック

上から2段目か3段目を撮影ブースとして使って、ほかの段は普通の使い方。

(今は大量に買ったレトルト食品を置いてます、コロナめ)

 

ラック到着、組み立て、置く場所を決めて(ついでにコルクシートを買って敷いた)

さて背景布を選びます。

f:id:fft_kedar:20200422013226p:plain

by vlad (https://www.facebook.com/groups/3dsug/permalink/2478442495705317/)

Cross Polarizationで撮影しますので黒に。

Cross Polarizationとは: (英語チュートリアル)

照明に関しては僕はNEEWERのビデオライトを使ってます。ストロボでもいいと思います。(リングライトほしい)

 

ではライト付けます。せっかくラック買ったのでそのままラックに固定したい。

クランプを購入、ラックにビデオライトを付けます。

(2021年追記→ストロボを使いましょう。)

f:id:fft_kedar:20200422014202p:plain

いつものSmallRig

 

完成です。(汚いけどその時の写真です)

f:id:fft_kedar:20200422014503p:plain

 

その時の偏光フィルターテスト動画です。

 

 

撮影例です。

画像

画像

 

以上です。

今度はベランダで作った家庭菜園をタイムラプスフォトグラメトリがしたいです。

(部屋狭いのでベランダだけは異常に広いのようちは…)

フォトグラメトリ近況報告

年末年始からなかなかブログを書く時間がなくて今回はとりあえず生存報告も兼ねて()箇条書きで近況報告しようと思います。

 

 

  • 某いつも使っているフォトグラメトリソフトの翻訳ボランティア

をやってます。実際に翻訳(ぼんやりとしたイメージを言語化)してはじめて気づく機能や小技もありましたので、いつか正式リリースした後に記事にしようと思います。

残念ながら母国語は日本語ではないので日本語への翻訳ではありません。。。

 

 

  • Photogrammetry Meetup vol.2にてLT発表します

4/11開催予定

コロナで延期

connpass.com

 

「時空を歪ませるフォトグラメトリ」という題目で亡くなった猫の話します。

完全に趣味フォトグラメトリのほうです。

 

sketchfab.com

 

2018年 2019年に同じ場所二回撮影したデータをコントロールポイントでマージしました。

 

 

  • 仙台に行ってた時にスキャンした伊達像

高いものを撮るのがものすごくめんどくさかったです。

画像

画像

 

 

画像

近くに邪魔な黄色光源がありました。

こちらはDelighting現像時の対処法。(ただしこの方法はPhotogrammetry的に正しいかどうかは勉強中)

 

 

  • 新Metashapeについて

画像

画像

 

相変わらずRealityCaptureほど強くないけど、ディテールは前より大分再現できるようになりました。

画像の元サイズが使えて、かつ枚数制限がないところがRealityCapture(Steam)より強い。ただし、Depthmap生成とテクスチャ生成アルゴリズムはまだ弱い。

 

  • Realitycaptureの新Inspection Toolについて

f:id:fft_kedar:20200308030022p:plain

従来のツールに加えてTie Pointsの不確実性を可視化するInspection Toolが実装されました。これは見やすい。

 

 

 

 

 

 では、Photogrammetry Meetup vol.2無事開催できるといいね。

薄い物体をフォトグラメトリする方法

ひたすら撮ればいいと思います。

 

 

まずいくつの事例を出します。

 

1.枝、紐(a7r3,SEL35F28Z)

画像

画像

 

 

2.ケーブル(スマホで撮影)

画像

 

TiePointsを示す図。 ケーブルにはほとんどTiePointsが付いていません。

f:id:fft_kedar:20191201025103p:plain

 

3.電気のスイッチ紐(スマホで撮影)

画像

 

4.紙/テープ、厚み1mmもないでしょうね…(スマホで撮影)

 

画像

 

 

 

薄すぎてそもそもあれサーフェイスとして成立するのか自体が怪しいやつも載せましたけど。意図的にスキャンすれば撮れます。

 

 

 

ここで前の記事を思い出しましょう

(↓少し更新もしました)

fft-kedar.hatenablog.com

 

 

今回は「面で考える」と少し違いますが。。。。

 

 

 

可視性情報

 

薄い物体(紐など)が後ろの背景と区別し、背景の一部を遮ることをソフトに伝えることが大事です。

 

続く

 

 

 

ここで作者の頭がパンクしてしまったのです。

 

 

夜9時の屋外でフォトグラメトリしてきた話

2021年現在

ストロボとビデオライトの組み合わせを推奨

例:AR400

 

 

f:id:fft_kedar:20191108044604p:plain

 

 

 平日は仕事帰りにしかフォトグラメトリできないから汎用撮影リグを作ってみて、まず実験的に夜九時に撮影してみた。

 

意外と、行けそうだった。

 

 

機材:

 LEDビデオライト

 A7R3

 フレーム、その他

 

 

重かったです。 

 

フォトグラメトリはスポーツです

 

 

 

 

フォトグラメトリの精度とは

見た目さえ良ければいいという3DCGあるあるからの脱却。

f:id:fft_kedar:20191112042228p:plain

今回は僕の知ってる範囲内でフォトグラメトリの精度という不毛な話題について書きたい。 もちろんこの図に書いてる「精度」を言いたいわけではないが、まずMetashapeといったフォトグラメトリソフトにあるパラメータとしての「精度」を簡単にまとめたい。 

 

写真アライメントの精度「Accuracy」 

 (Metashape/Photoscan)

「精度」の選択は、処理に使われる画像の解像度(画素数)を規定する。「最高」("Highest")は、読み込んだ元の画像を縦横それぞれ2倍に拡大した画像(画素数は4倍)で処理を行う。  …中略

「高」は、元の画像のまま処理を行うことを意味する。

PhotoScanを極める 11. 教科書的手順 Step 4 | 山口大学 空中測量研究室の技術ノート

 「最高」についてはほとんどの場合では使う必要がないし、むしろレンズ歪み、手ぶれなどいろいろ要素を考慮しなければならないデジカメの画像だったらReprojection Errorという「精度」の低下につながる恐れがある。

 

高密度クラウド構築の「品質」

「品質」("Quality")は、MVSに使われる画像の解像度に関する設定だ。「最高」は元の画像をそのまま用いることに対応し、1段階下がるごとに縦横それぞれ半分の大きさにダウンサンプリングされる。時間の許す範囲で高い設定を選ぶべきだ。 

余談だけど、RealityCaptureのAliment Settingなどにも同じようなパラメータがあって、

SfM、MVS処理のアルゴリズムがかなり違うけど。

 f:id:fft_kedar:20191112043640p:plainf:id:fft_kedar:20191112043723p:plain

測定の観点からの「精度」

実物と比較して、フォトグラメトリで作成したモデルの「再現性」を評価する「精度」。手実測からデジタル実測に移行する際に必ず出てくる問題→デジタルで測って得たデータは信頼性あるの?という。 

結局それは手実測のデータと比べるしかないかと。 そこは分野ではないので割愛。

 

Measuring the difference between two meshes

meshlabstuff.blogspot.com

f:id:fft_kedar:20191112050627p:plain

二つの点群/Meshデータの違いを比べて、ヒートマップとして可視化する方法。

フォトグラメトリとレーザースキャナで撮ったデータを比べてみてもいいと思う。 

 

キャプチャーした3Dデータとリファレンス画像の比較

Practical Dynamic Facial Appearance Modeling and Acquisition

f:id:fft_kedar:20191112052201p:plain

 

花園神社の狛犬

f:id:fft_kedar:20191112053140p:plain 

三次元形状推定の精度

f:id:fft_kedar:20191112054645p:plain

Mesoscopic Facial Geometry Inference Using Deep Neural Networks

Deep Neural Networksを用いて推定した肌のディテールと計測した真値との差を表すヒートマップ。フォトグラメトリといったスキャンデータは比較されるほうにある。

精度と分解能

ハンディスキャナの技術仕様では「 3Dポイント精度 / 3D精度 / スキャン精度/ 分解能  0.05 mm」のようなのがよくあるけど、ここではその表記の仕方について詳しく議論しない。

 しかし似たような曖昧な考え方をフォトグラメトリに持ってくると、もう一つ

「実物をどれぐらい細かく再現できたか」という精度の定義が浮かび上がる。

 

  

つづく?

  

測量の観点からの精度

統計学で見るフォトグラメトリの精度

 

 

 

 よし寝るか(6:10)

フォトグラメトリの写真って何枚撮ればいい?

「ララクロフト ゲーム」の画像検索結果

記事の表紙にララ・クロフト。あとで説明したいです。

 

  • フォトグラメトリの写真って何枚撮ればいい?ってよく聞かれます。

初心者(未経験者)に聞かれたらまあとりあえず数十枚撮ってみてソフトで処理すればいいと答えますが、経験者(一年?~)からだったらこう答えたい。

写真の説明はありません。

(by vlad https://www.facebook.com/photo.php?fbid=1168046383361606&set=gm.1038982822976229&type=3&theater )

 しませんが。

 

記事の導入として

自分の前回の記事で紹介したこちらの作例をもう一回見ていただきたい。

f:id:fft_kedar:20191105025320p:plain

少年B , Single Camera Head Scanning, Raw Mesh - 3D model by Yu (@FFT_kedar) - Sketchfab

 撮影枚数16枚です。(シングルカメラ)

少ないでしょうね。 専用のスタジオ作って撮るんだったら僕は同時撮影で少なくとも60枚を撮りたかったです。

でも16枚撮ればこのクオリティのモデルが作れます。

 

  • さて、感覚で撮るをやめましょう

 二年前に読んでめっちゃためになった参考資料を紹介したい。

Where and how many images required for good photogrammetry 3D scan (By vlad)

 

彼はまずローポリの椅子を例にしてフォトグラメトリの撮影方法について説明します。

 

f:id:fft_kedar:20191108024306p:plain

https://medium.com/@ssh4/where-and-how-many-images-required-for-good-photogrammetry-3d-scan-a5481b3b7bef

被写体から理想なテクスチャを取得するために、被写体すべての面に対して一つの面に少なくとも一枚の写真が必要です。(もっと簡単な例でいうと、コピー機は紙、つまり板ポリのテクスチャが撮れます的な。 また理想な立方体のテクスチャを撮るなら6枚が必要)

 

 

f:id:fft_kedar:20191108024416p:plain

https://medium.com/@ssh4/where-and-how-many-images-required-for-good-photogrammetry-3d-scan-a5481b3b7bef

そして形状をスキャンする時はフォトグラメトリでは写真と写真の間の視差で形状を計算します。 一つの理想な面を撮るのに少なくとも3枚の写真が必要です。

 

 

f:id:fft_kedar:20191108024439p:plain

https://medium.com/@ssh4/where-and-how-many-images-required-for-good-photogrammetry-3d-scan-a5481b3b7bef

また、それぞれ90度となる3つのサーフェイスに対して、写真と写真の繋がりを考えると、もともとサーフェイスを撮るための3組、合計9枚の写真を繋ぎ合わせるために、角に追加2組合計6枚。

 

合計少なくとも15枚を撮るべきだといいます。 

 

 

f:id:fft_kedar:20191108024508p:plain

https://medium.com/@ssh4/where-and-how-many-images-required-for-good-photogrammetry-3d-scan-a5481b3b7bef

クオリティがめっちゃ下がりますが、5枚でもある程度のテクスチャと形状が撮れます。

 

vladさんの資料はまだ半分残っていますが、ここでは一旦記事冒頭のフェイシャルスキャンに戻ります。

 

 

  • 人の顔をローポリでに。

初代のララ・クロフトみたいなポリゴンを想像してみましょう。

「ララ・クロフト 初代」の画像検索結果

Welcome to laracroftcosplay.com / tombraidercosplay.com / Tomb Raider Cosplay / Lara Croft Cosplay / Lara Croft Tomb Raider Cosplay

 

現実のものは無限のサーフェイスを持っています。(トゥームレイダー最新作のよりはるかに多いポリゴン数)ここまで説明してきたシナリオ通りにすべてをきれいに撮るのがまず不可能です。

 

つまり現実の被写体を簡単に複数の面で構成されると考えて撮影すればいいと考えられます。vladさんが出したローポリの椅子のように。

sketchfab.com

f:id:fft_kedar:20191108030034p:plain

 

これだったらフォトグラメトリの写真を最低限何枚撮ればいいかわかると思います。

サーフェイスの数が6。

すべての平面に対して1枚 

     → 6枚

簡易撮影バージョン (サーフェイス数3に対して5枚のメソッド) 

     →    6 + 9(エッジに向けての9枚) 

 

→15枚 があればちょうどそんな感じに撮れるはずです。

ちなみに今回の撮影枚数は16でした。

 

(サーフェイス1と5が近いことや、2つのサーフェイスのなす角が90度より小さいことからモデルをもっと簡略化することもできます。その分のクオリティがさがります。)

 

 

逆に必要最低限の撮影枚数ではなく、最高なクオリティにスキャンをしたいなら何枚がいいかというと、無限/無制限です。

現実の物体は無限な面を持っていますから。

→必要な解像度で被写体を簡略化してそれに合わせた撮影方法でやればいいと思います。

面で考えましょう。

f:id:fft_kedar:20191108033608p:plain 

f:id:fft_kedar:20191108033645p:plain 

f:id:fft_kedar:20191108033916p:plain

f:id:fft_kedar:20191108034050p:plain

 

 

 

  • vladさんの資料の続きです。 オーバーラップについて

 フォトグラメトリは基本「ステレオ」情報、視差で三次元形状を計算します。

この図でいう赤い範囲から形状が計算されます。およそカメラ1、カメラ2の映ってる範囲それぞれの6、7割です。これがフォトグラメトリでよく言われるオーバーラップ率です。 

 しかし実世界のカメラはレンズの歪みや解像、ボケなどの影響で、センサーの隅の画素で計算された三次元形状は信頼性が低いか、そもそもボケで計算できなかったりします。つまり元写真で見た6割オーバーラップ率を有するデータセットは実際の処理では6割より低いオーバーラップ率となります。

 そのため、大体のソフトは高い(60%-80%↑)オーバーラップ率をおすすめしています。

 

 

 

 

 

ちなみに

Do not limit the number of images, RealityCapture can handle any.

 Taking pictures for photogrammetry – RealityCapture Support

 

 

(メモリ16GB->2500枚ぐらいまで)