2011/11/19

FUJIFILM 3D計測システムのデータをいじってみました

ご無沙汰してしまいまして申し訳ありません。
今回は、富士フイルムさんにご協力いただき、FUJIFILM 3D計測システムから出力された点群データを処理してみたいと思います。
もちろん作業はフリーソフトウェアのRapidform XOMです!

FUJIFILM 3D計測システムの情報はこちら。
http://www.fujifilm.co.jp/corporate/news/articleffnr_0404.html
カメラの製品サイトが見つかりませんでしたが、富士フイルムさんによると、 最新のシステムは、2枚の写真を同時に撮影して立体視ができる3Dデジタル カメラの最新機種"FinePix Real 3D W3"に手を加えたもので、それで撮影した2枚の画像から、付属のソフトウェアで3D点群データを生成します。デジカメで写真を撮ればいいので、とてもお手軽なスキャンが可能になります。
さぁ、今回の対象物はこちら!これをぐるっと一周11ショットのデータを用意していただきました。


写真から点群データ化するところは富士フイルムさんのソフトウェアで行うので、そのあとからご覧いただきます。まずはデータの読み込みです。Rapidformでは、このシステム専用の拡張子であるCSDをサポートしています。複数のショットがある場合、XOMでは別々に読み込みができませんので、SHIFTキーを押しながらすべて選択してください。
また、オプションのカスタム設定にチェックを入れないと、読み込み時に自動的に点群をメッシュにします。もしデータが重くなるなどの理由で点群のまま読み込みたい場合には、カスタム設定にチェックを入れて、「点群のみ」「法線方向を作成」「テクスチャを含む」にチェックを入れて読み込みましょう。
データを読み込むと、このようなアラートが出てきます。スケールの大きなデータが読み込まれたときに、単位が合っているか確認するものですが、今回はmmで正しいのでそのままOKを押します。
最近はロングレンジデータの処理も増えてきたので、このアラートはよく出てきます。。。
するとこのような形でデータが読み込まれました。もちろん色情報付きで、すでにこれはメッシュになっています。ひとつのデータが70万から80万ポリゴンくらいでした。

もうなんとなくできているようにも見えますが、まだこれはお互いのショットの位置が合っていません。各ショットをそれぞれ単一色で見るとわかりますね。

さて、ではメッシュデータをいじっていきますので、スキャンモードに入りましょう。スキャンデータをダブルクリックするか、ツールバーのボタンを押してください。

最初に行うのは、空中に浮かんでいる小さなノイズ(クラスタ)の除去作業です。
これには、お約束の手法があります。

①塗りつぶし選択(選択⇒モード⇒塗りつぶし選択。もしくは左下のアイコン)で、残したいところを選択する。塗りつぶし選択とは、自分がクリックした場所からつながっているメッシュをすべて選択するものです。
②選択箇所を反転する(選択⇒反転)。つまりいらないところが選択されます。慣れてきたらSHIFT+Iのショートカットを使うと早いです。
③選択箇所を削除する(編集⇒削除。もしくはDeleteキー)。
これで空中のノイズはあっという間に消えます。小さいノイズは見えませんので、ノイズを選択するのではなく、欲しいところを選択して反転しましょう。ほら、このとおり。これをそれぞれのショットに対して行います。

次に、エッジの部分をきれいにします。このシステムで点群化されたデータは、拡大してみるとエッジのところがギザギザしているだけでなく、跳ね上がっていることがわかります。画像から点群を起こしているので、境界の認識が難しいのでしょうね。
こんなときには、境界要素の選択です(選択⇒境界要素)。以前選択に関する投稿にも出てきましたね。
エッジの1列だけだと足りないようなので、選択範囲を拡大します。今回は思い切って10列拡大しました。「こんなに?」という感じですが、たくさんのショットでオーバーラップも多いので大丈夫でしょう。
全体でみるとこんな感じです。
消しちゃいましょう。これもそれぞれのデータに対して行います。
これで下ごしらえは完了。位置合わせをしていきます(ツール⇒スキャンツール⇒位置合わせ)で、はじめは「手動位置合わせ」をします。「参照」というところをクリックすると枠が黄色くなりますので、移動したくないデータをクリックします。次に「移動」をクリックして、移動したいデータをクリックします。すると画面が3つにわかれてくれます。左がプレビュー。右上が参照モデル。右下が移動モデルになります。
右上と右下のビューを使って、共通する3点をクリックしていきましょう。順番が一緒であれば、交互でも片方一度にクリックしてしまっても構いません。色が付きますのでそれで確認します。あとからベストフィットをかけるので、この3点はある程度適当でも構いません。やり直したいときにはCtrl+Zを押すことで、最後にクリックした点が消えます。また、3点じゃなくてもよいです。左のプレビューを見ながら作業しましょう。だいたい合ったなと思ったら、「方法」の横にある☑ボタンを押します。(まだ一番上の「位置合わせ」の横にあるボタンは押したら駄目です!)

ひとつの位置合わせが終わると、自動的に移動にあったモデルが参照に移ります。「移動」ボタンが黄色くなっていることを確認したら、次のモデルをクリックしましょう。そしてまた共通点をクリックします。これを順次繰り返していきます。

全部の位置をあわせたら、オプションを「全体と最適化」に変えて、「移動」を黄色くして、すべてのモデルを選択します。そして「方法」の横の☑ボタンを押し、ベストフィットをかけます。「手動位置合わせ」の時にもベストフィットをかけていますが、これはとなりのモデルとの間だけ計算していました。つまり1周すると最初と最後が合わない場合があります。この「全体と最適化」は、すべてのモデルが一番ベストフィットされるところを計算してくれます。必須の処理ですね。

これが終わったら、一番上の「位置合わせ」の横にある☑を押して、決定します。
完成!
と思ったらまだ早い!テクスチャ(色)で見るとできているようですが、まだ各モデルがバラバラの状態です。
これを合成(ツール⇒スキャンツール⇒メッシュ化/合成)して、完成となります。
良く見たら上のところのデータが抜けてますね。ちょっと削りすぎたかな ^^;

カメラと同じように手軽に3Dスキャニングできるということは、普及させる上ではとても重要ですね。
国産ということもあって市場の注目は高いようです。

一方、フリーソフトウェアでもこのくらいのことはできると言うところをご理解いただければ幸いです。

Rapidform XOMのダウンロードはこちら!
http://www.rapidform.com/ja/products-3/rapidform-xom/

2011/10/25

テクスチャマッピング

XOS/XORでメッシュに任意の画像を貼り付ける、テクスチャマッピング機能があります。
Mantis Vision F5でスキャンした車のスキャンデータにテクスチャをマッピングしてみましょう。

適当な画像を用意して'Add Texture'(挿入>テクスチャ追加)コマンドを実行します。

Rapidformはメッシュ単位にテクスチャをマップします。
従って完全に合成された1つのメッシュに対して、形状を覆うパノラマ画像などではなく、
モデルの一部のみを含んだ画像を使う場合、予めメッシュをマップする画像に合わせて分割しておく必要があります。

尚、点群にテクスチャをマッピングすることはできませんので、点群の場合はメッシュ化を先に行っておきます。

画像とメッシュ、それぞれの対応する箇所をピックしていきます。
指定点が多ければそれだけマッピングが正確になります。
結果はこのようになります。

尚、マッピングしたテクスチャは頂点カラーに変換することもでき、メッシュ編集時のパフォーマンスを向上することができます。

こちらは人体をやはりMantis Vision F5でスキャンした別の例です。
スキャンデータに画像をRapidformでマッピングしてみましたが、ほぼ違和感無く、上々の結果と言えるでしょう。

バストショット




最後の例は人体をフルショットで撮影したものです。
図を見ると、手の辺りなど、テクスチャが上手くマッピングされていないのが分かります。

使用しているテクスチャは四角いものです。
ハンカチを複雑な形状に合わせてピンで留めていくと、皺がよったり、ひっぱられたりするのと同じような原理で、
一枚のテクスチャで複雑形状に皺無くマッピングするには調節が困難になってきます。
そこで、このような場合の対処方法として、スキャンデータを分割するという方法があります。
ここではスキャンデータを上半身と下半身で分割し、それぞれ別々にマッピングしてみます。
まだ若干歪みが残っていますので、さらにウエスト辺りの領域を分けてから再度テクスチャをマッピング。
境目にわずかに色のミスマッチが残るものの、はじめの状態に比べてかなり良い結果が得られたのを確認することができます。



author: Michael

2011/10/05

Rapidform XOM、ついにリリース!

お待たせいたしました!

ずっと温めて、育ててきた卵がようやく雛になりました♪

Rapidform Japanオリジナル「Rapidform XOM」のリリースです!

Rapidformが培ってきた世界最高レベルの点群、メッシュ処理技術をフリーで提供いたします。
このXOM、日本語版だけなんです。英語版はありません。

当社にとってもひとつの挑戦です。本社とも様々な視点から議論を重ねて結論を出しました。

このXOMが日本の3Dスキャニングマーケットにどのような影響を与えてくれるのか。
また、それ以外のマーケットにどのくらい普及してくれるのか。

私自身も非常に楽しみにしています。

フリーバージョンですので、どしどしインストールしてご活用ください。
このBlogサイトでも、XOMの活用方法など投稿していきますのでよろしくお願いします!

Rapidform XOM Webサイトはこちら。

http://www.rapidform.com/ja/products-3/rapidform-xom/


2011/09/28

選択のお話

なんだかすっかり秋ですね。気持ちのいい季節です。
椅子に座っているよりも外に出かけたい!という気持ちを抑えて、今日は初心に返って選択のお話を。
Rapidform製品の選択機能を紹介します!


選択。
基本操作ゆえに奥深く、ソフトウェアの使い勝手を良くも悪くもするユーザーインタフェースではないかと思うのですが、
まずは簡単におさらいを。
Rapidform のマウス操作は、基本的に以下のようになっています。

左ボタン
 クリック : 単一要素の選択
 ドラッグ : 複数要素の選択

中ボタン
 クリック : カメラ操作モードの切り替え
 ホイール : カメラのズームイン・ズームアウト

右ボタン
 クリック : コンテキストメニュー表示
 ドラッグ : カメラ操作

CtrlShift などのファンクションキーを使えば、追加選択や選択解除などを行うことができます。
このあたりの基本操作は画面右に表示されるマウスヘルプにアイコンで表示されています。

この操作だけでも沢山お話があるのですが、今回は右ボタンのコンテキストメニューにフォーカスします。
(そのうち、選択を極める!というシリーズも書きたいですね、、、)

さてさて、コンテキストメニューは様々なソフトウェアでカーソル位置を変更せずに
その場に応じて適したコマンドをすばやく実行するために使われるメニューですが
Rapidform も例に漏れず様々な用途で使用されます。
とりあえず、メッシュモードでメッシュの上にカーソルを移動して右ボタンをクリックしてみましょう。

普段は画面最下部で切り替える選択フィルタがここから切り替えられるようになっているのをご存知ですか?
さらに、すべてを選択したり、すべての選択を解除したり、選択範囲へのズームインもここから実行することができます。

赤く表示されている境界を選択してから右ボタンをクリックすると、今度は次のように表示が変わります。

メニューにあるように、 境界のポリフェースを選択 を実行すると境界上のポリフェースを一回で選択することができます。
もし 境界のポリ頂点を選択 を選択すれば、ポリ頂点に選択を切り替えることになります。
さらに右ボタンをクリックすると、今の選択をさらに拡大選択したり、縮小するための 拡大/縮小 コマンドが追加表示されます。

コンテキストメニューを使えば簡単に選択の切り替えや、拡大、縮小ができるというわけです。
いたってシンプルな機能なのですが、ノイズや不要箇所を削除したい場合などによく使う便利な機能です。
反転コマンドは現在の選択と非選択を入れ替えるコマンドですが、これも知っておくと便利です。

これらのメニューは実はメインメニューの選択メニューに入っています。
隅のほうにあるメニューですし、見落としがちなこちらのメニューには
さらに細かな条件付き選択を行うなかなか便利なコマンドが用意されています。

例えば 拡大 コマンド。
コンテキストメニューではすばやく1深度分だけ選択を拡大することができますが、
こちらのコマンドではさらに一度にどれくらい拡大させるのか拡大の広がりを 深度 として指定することができます。

ポリゴンエッジを表示(F8)してみると、選択されていた場所からポリフェース4つ分選択が広がったことが分かります。

コンテキストメニューはカーソルの位置やモード、実行中のコマンドによって表示される内容が切り替わります。
素早く作業できるように豊富に機能を盛り込んでいますので、宝探し気分であちこち右クリックしてみてください。
きっと、おっ、と思える便利なコマンドが見つかるはず :-)


ポリゴンメッシュの境界表示
穴が開いた箇所など、ポリゴンメッシュの境界は複雑な形状では探しにくいものです。
ディスプレイタブで境界にチェックすることで、画面上でも境界箇所を分かりやすく表示します。

2011/09/22

Rapidform Solution Conference 2011 開催!

本日、韓国ソウルにて、Rapidform Solution Conference 2011が開催されます。

世界各国からのユーザ様によるご講演をはじめ、Rapidformの最新情報を提供させていただきます。

今回の日本代表は、新潟原動機株式会社の福岡様です!
ロングレンジスキャナで取得した点群データをRapidform XORを用いてご活用いただいた事例を
ご発表いただく予定です。

従来、製品もののCAD化がXORのメイン用途でしたが、ロングレンジスキャナとのコラボレーションは今後当社としても力を入れていきたい分野です。そこで早くも日本より具体的な事例を発表していただけることはとてもすばらしいことです。

アジェンダは、当Blogサイトの上部よりご確認いただけます。

また、韓国語ではございますが、下記サイトにてストリーミング配信も行う予定です。

本日22日、13時30分開始となります。

是非ストリーミングサイトを覗いてみてください!

「Rapidform Solution Conference 2011 実況サイト」
http://www.rapidform.com/media/htm/solution/2011/onair.html


2011/09/12

Mantis Visionを持ってお散歩 Part II ♪

さて、少し前のお話しになりますが、データが仕上がったので投稿させていただきます。

今までは3Dスキャンしたデータを「点群」のままご覧いただいていました。

今回は「メッシュ」まで作成した結果をお見せしたいと思います。
メッシュというのは、隣り合う点群同士を、三角形になるように線で結んだデータのことです。

点群は、空間上に点が並んでいるだけなので、人が見れば形を認識できるのですが、
コンピュータの中ではまったく形としては成り立っていません。

それをメッシュ化することで、コンピュータとしても形状の認識ができるようになるんです。
つまり、スキャンデータに対して、面や体積という概念が適用できるようになります。

最近よく利用されるSTLというのは、このメッシュを表現したファイル形式の1つなのです。

メッシュ化を行うのはもちろん、Rapidformです!
点群に発生していた細かなノイズも、メッシュ化をするときに綺麗に除去することで、
対象物の形状を高精度に再現します。

例えばこのゴリラ君。屋外です。しかもこの力強い黒さ!
3Dスキャニングを少しでもご存知の方なら「絶対無理」というであろう条件が揃い踏みですね。


それがMantis VisionとRapidformの組み合わせでこの通りの結果です。
ゴリラ君の隆々とした筋肉だけでなく、皮膚の力強い凹凸も比較的再現できました。



お次はその隣に寝転がっていたラッコさんです。

こちらは、こんな感じになりました。
さすがに直射日光が強く、また手足のところが隠れて見えないため、スキャンデータとしては十分とは言えませんでしたが、Rapidformで穴埋め(データがないところを周りの形状から判断して補完する処理)などを行って仕上げました。
このデータは穴がないので、RP(Rapid Prototyping)装置などでそのまま3Dプリントすることができます。

あとは地面に半分隠れたカバさんも(写真忘れてました。。。)。


まだ終わりません。次は(また罰が当たりそうではありますが ^^; )、このようなものをスキャンさせていただきました。

これもメッシュ化してみました。鳥居です。





そして中のご本堂。



灯篭などはとてもよく再現できたと思います。



拡大してみましょう。ここはちょっと下方向からのスキャンが足りなかったですね。


文字もわかります。

模様もわかります。実は点群の状態ですと、ノイズもあるためはっきりと見えてこないのですが、メッシュ化することでこのような結果が得られます。


ハードウェアとソフトウェアの見事なコラボレーション!

ちなみにRapidformの処理は、
①グローバルベストフィット
②ボリューム合成
③リラップ(もしくはグローバルリメッシュ)
でした♪