狭い家でバラシ不要なフォトグラメトリ小物撮影ブースを作る-2021 ver. と近況
久しぶりの記事です。
部屋を模様替えして、撮影ブースとリグを一新しましたのでざっくり紹介したいと思います。
前回:
あの時のブースはPCからちょっと遠くて被写体を動かしたい時はめんどくさかったので、新しくメタルラック買って、デスクトップPCの隣に置きました。
ビデオライトを撤去して、リングフラッシュ一灯でのライティング環境を作りました。
ただ、真上からはまだ撮りづらいので、機材の増設を考えてます。
また、動かしたらまずい被写体を撮るときはそのライトで手持ち撮影でやってます。
撮影場所は別ですが。
作例:
FED-2 Type-C (powder coating無し)
茶碗
手持ち撮影で撮ったキャベツ:
他近況:
diffuseのRGBではなく偏光画像からspecular roughtnessを計算
Metashape 1.7.0 は悪くなかった
souce data: depth maps, ultra High
とりあえず以上です。
狭い家でバラシ不要なフォトグラメトリ小物撮影ブースを作る
新しい撮影ブースを作りました。
(2021年追記 撮影スピードが遅いのであまりおすすめしない)
今までと同じくコスパ最重視の作りとなってますけど。今回は撮影の後に撮影セットを片付ける必要ないというコンセプトです。
今まで作った小物撮影ブース
1.簡易版。
###リンク切れ###
研究室でかき集めた機材
照明機材などがないから机にテーブルランプ、
ビニール袋はディフューザー代わりに
2.撮影ボックス(当時の写真ないので大体右の感じ)よくある撮影環境
こういうのってよほど部屋にスペースがないと撮影が終わったら全部片付けないといけなくて、めんどくさいから自然と撮影の頻度が落ちます。
3.現在
普段生活の邪魔にならないように撮影環境をどう作ればいいのかとずっと考えてきたけど、今回自分が出した答えはこれ
メタルラック
上から2段目か3段目を撮影ブースとして使って、ほかの段は普通の使い方。
(今は大量に買ったレトルト食品を置いてます、コロナめ)
ラック到着、組み立て、置く場所を決めて(ついでにコルクシートを買って敷いた)
さて背景布を選びます。
Cross Polarizationで撮影しますので黒に。
Cross Polarizationとは: (英語チュートリアル)
入門: Cross Polarisation Explained by Grzegorz Baran https://t.co/X59E8D1kMk
— Polarization(ゆ) (@icpregistration) 2020年4月5日
入門 + セットアップ例:Cross Polarization Tutorial: Removing Specular Highlights and Reflections https://t.co/PoxWGm2uVL
セットアップ例:Understanding Polarization https://t.co/42tPqqSesq
照明に関しては僕はNEEWERのビデオライトを使ってます。ストロボでもいいと思います。(リングライトほしい)
ではライト付けます。せっかくラック買ったのでそのままラックに固定したい。
クランプを購入、ラックにビデオライトを付けます。
(2021年追記→ストロボを使いましょう。)
いつものSmallRig
完成です。(汚いけどその時の写真です)
その時の偏光フィルターテスト動画です。
— Polarization(ゆ) (@icpregistration) 2020年4月8日
撮影例です。
以上です。
今度はベランダで作った家庭菜園をタイムラプスフォトグラメトリがしたいです。
(部屋狭いのでベランダだけは異常に広いのようちは…)
フォトグラメトリ近況報告
年末年始からなかなかブログを書く時間がなくて今回はとりあえず生存報告も兼ねて()箇条書きで近況報告しようと思います。
- 某いつも使っているフォトグラメトリソフトの翻訳ボランティア
- Photogrammetry Meetup vol.2にてLT発表します
- 仙台に行ってた時にスキャンした伊達像
- 鹽竈神社の狛犬
- 新Metashapeについて
- Realitycaptureの新Inspection Toolについて
-
某いつも使っているフォトグラメトリソフトの翻訳ボランティア
をやってます。実際に翻訳(ぼんやりとしたイメージを言語化)してはじめて気づく機能や小技もありましたので、いつか正式リリースした後に記事にしようと思います。
残念ながら母国語は日本語ではないので日本語への翻訳ではありません。。。
-
Photogrammetry Meetup vol.2にてLT発表します
4/11開催予定
コロナで延期
「時空を歪ませるフォトグラメトリ」という題目で亡くなった猫の話します。
完全に趣味フォトグラメトリのほうです。
2018年 2019年に同じ場所二回撮影したデータをコントロールポイントでマージしました。
-
仙台に行ってた時にスキャンした伊達像
高いものを撮るのがものすごくめんどくさかったです。
近くに邪魔な黄色光源がありました。
こちらはDelighting現像時の対処法。(ただしこの方法はPhotogrammetry的に正しいかどうかは勉強中)
-
新Metashapeについて
相変わらずRealityCaptureほど強くないけど、ディテールは前より大分再現できるようになりました。
画像の元サイズが使えて、かつ枚数制限がないところがRealityCapture(Steam)より強い。ただし、Depthmap生成とテクスチャ生成アルゴリズムはまだ弱い。
-
Realitycaptureの新Inspection Toolについて
従来のツールに加えてTie Pointsの不確実性を可視化するInspection Toolが実装されました。これは見やすい。
では、Photogrammetry Meetup vol.2無事開催できるといいね。
薄い物体をフォトグラメトリする方法
ひたすら撮ればいいと思います。
まずいくつの事例を出します。
1.枝、紐(a7r3,SEL35F28Z)
2.ケーブル(スマホで撮影)
TiePointsを示す図。 ケーブルにはほとんどTiePointsが付いていません。
3.電気のスイッチ紐(スマホで撮影)
4.紙/テープ、厚み1mmもないでしょうね…(スマホで撮影)
薄すぎてそもそもあれサーフェイスとして成立するのか自体が怪しいやつも載せましたけど。意図的にスキャンすれば撮れます。
ここで前の記事を思い出しましょう
(↓少し更新もしました)
今回は「面で考える」と少し違いますが。。。。
可視性情報
薄い物体(紐など)が後ろの背景と区別し、背景の一部を遮ることをソフトに伝えることが大事です。
続く
ここで作者の頭がパンクしてしまったのです。
夜9時の屋外でフォトグラメトリしてきた話
2021年現在
ストロボとビデオライトの組み合わせを推奨
例:AR400
#photogrammetry #フォトグラメトリ 夜9時の屋外でフォトグラメトリしてきました。 以上です。 pic.twitter.com/VEKteA0Qlb
— 「Practical Dynamic Facial Appearance Modeling ... (@icpregistration) November 7, 2019
平日は仕事帰りにしかフォトグラメトリできないから汎用撮影リグを作ってみて、まず実験的に夜九時に撮影してみた。
意外と、行けそうだった。
機材:
LEDビデオライト
A7R3
フレーム、その他
重かったです。
フォトグラメトリはスポーツです
フォトグラメトリの精度とは
見た目さえ良ければいいという3DCGあるあるからの脱却。
今回は僕の知ってる範囲内でフォトグラメトリの精度という不毛な話題について書きたい。 もちろんこの図に書いてる「精度」を言いたいわけではないが、まずMetashapeといったフォトグラメトリソフトにあるパラメータとしての「精度」を簡単にまとめたい。
写真アライメントの精度「Accuracy」
(Metashape/Photoscan)
「精度」の選択は、処理に使われる画像の解像度(画素数)を規定する。「最高」("Highest")は、読み込んだ元の画像を縦横それぞれ2倍に拡大した画像(画素数は4倍)で処理を行う。 …中略
「高」は、元の画像のまま処理を行うことを意味する。
「最高」についてはほとんどの場合では使う必要がないし、むしろレンズ歪み、手ぶれなどいろいろ要素を考慮しなければならないデジカメの画像だったらReprojection Errorという「精度」の低下につながる恐れがある。
高密度クラウド構築の「品質」
「品質」("Quality")は、MVSに使われる画像の解像度に関する設定だ。「最高」は元の画像をそのまま用いることに対応し、1段階下がるごとに縦横それぞれ半分の大きさにダウンサンプリングされる。時間の許す範囲で高い設定を選ぶべきだ。
余談だけど、RealityCaptureのAliment Settingなどにも同じようなパラメータがあって、
測定の観点からの「精度」
測定の観点からは「結果のばらつき(=precision)」ですが、正確度(=accuracy: JIS Z8402-1では真度)も併せた感覚で使ってる人が多そうですし、そもそも解像度の高いモデルをイメージしてて測定誤差はあまり関係ないような気もしますね…https://t.co/QwswawMjLi pic.twitter.com/s1cApDFdha
— atsushi_noguchi🌕 (@fujimicho) November 11, 2019
実物と比較して、フォトグラメトリで作成したモデルの「再現性」を評価する「精度」。手実測からデジタル実測に移行する際に必ず出てくる問題→デジタルで測って得たデータは信頼性あるの?という。
結局それは手実測のデータと比べるしかないかと。 そこは分野ではないので割愛。
Measuring the difference between two meshes
二つの点群/Meshデータの違いを比べて、ヒートマップとして可視化する方法。
フォトグラメトリとレーザースキャナで撮ったデータを比べてみてもいいと思う。
キャプチャーした3Dデータとリファレンス画像の比較
Practical Dynamic Facial Appearance Modeling and Acquisition
三次元形状推定の精度
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 )
しませんが。
記事の導入として
自分の前回の記事で紹介したこちらの作例をもう一回見ていただきたい。
少年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)
彼はまずローポリの椅子を例にしてフォトグラメトリの撮影方法について説明します。
被写体から理想なテクスチャを取得するために、被写体すべての面に対して一つの面に少なくとも一枚の写真が必要です。(もっと簡単な例でいうと、コピー機は紙、つまり板ポリのテクスチャが撮れます的な。 また理想な立方体のテクスチャを撮るなら6枚が必要)
そして形状をスキャンする時はフォトグラメトリでは写真と写真の間の視差で形状を計算します。 一つの理想な面を撮るのに少なくとも3枚の写真が必要です。
また、それぞれ90度となる3つのサーフェイスに対して、写真と写真の繋がりを考えると、もともとサーフェイスを撮るための3組、合計9枚の写真を繋ぎ合わせるために、角に追加2組合計6枚。
合計少なくとも15枚を撮るべきだといいます。
クオリティがめっちゃ下がりますが、5枚でもある程度のテクスチャと形状が撮れます。
vladさんの資料はまだ半分残っていますが、ここでは一旦記事冒頭のフェイシャルスキャンに戻ります。
- 人の顔をローポリでに。
初代のララ・クロフトみたいなポリゴンを想像してみましょう。
現実のものは無限のサーフェイスを持っています。(トゥームレイダー最新作のよりはるかに多いポリゴン数)ここまで説明してきたシナリオ通りにすべてをきれいに撮るのがまず不可能です。
つまり現実の被写体を簡単に複数の面で構成されると考えて撮影すればいいと考えられます。vladさんが出したローポリの椅子のように。
これだったらフォトグラメトリの写真を最低限何枚撮ればいいかわかると思います。
サーフェイスの数が6。
すべての平面に対して1枚
→ 6枚
簡易撮影バージョン (サーフェイス数3に対して5枚のメソッド)
→ 6 + 9(エッジに向けての9枚)
→15枚 があればちょうどそんな感じに撮れるはずです。
ちなみに今回の撮影枚数は16でした。
(サーフェイス1と5が近いことや、2つのサーフェイスのなす角が90度より小さいことからモデルをもっと簡略化することもできます。その分のクオリティがさがります。)
逆に必要最低限の撮影枚数ではなく、最高なクオリティにスキャンをしたいなら何枚がいいかというと、無限/無制限です。
現実の物体は無限な面を持っていますから。
→必要な解像度で被写体を簡略化してそれに合わせた撮影方法でやればいいと思います。
面で考えましょう。
- 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枚ぐらいまで)