3Dスキャンデータの修復方法まとめ

2016.12.31

先日のブログにも記載しましたが、京丹後市で開催されたイベントの中で、Kinectでスキャンした上半身のデータと、
CADでモデリングした台座データと合体させて自身の胸像をつくる、というワークショップを行いました。

 

後日スキャンデータの修復作業を行っている際に想定外のクラックが見つかり、若干アタフタしましたが、いろいろソフトをこねくり回して、無事にデータを納めることができました。

 

せっかくなので、その際に行ったスキャン~データ修復の方法をまとめておきたいと思います。

————————————————————————————————

■3Dスキャン編

まずはスキャン環境について

 機材:Kinect v1

 スキャンソフト:Kinect Fusion Explorer-WPF

 OS:Windows 7(64bit)

 PCスペック:Intel Core i7 2.9GHz / メモリ8G /  Intel HD Graphics 4000

 

Kinect Fusion Explorerの基本的な使い方は、こちらのページを参考にさせてもらいました。

「Kinect for Windows」を3Dスキャナとして活用する(MONOist) 」

 

テストした結果、Kinect Fusion Explorerを以下のように設定。

2016-12-30-(2)

 

スキャン方法は、Kinectを三脚に固定した状態で、対象者が回転イスに座り、もう一名がイスをゆっくり一周回転させる、という手法。

Kinectと対象者の距離は50~60cmぐらい。

DSC_0069

 

なぜか正面からスタートすると後ろ半分がスキャンされないという事象が起こりやすく、背中からスキャンを始めるとスムーズにいきました。

事前にラボで行った時も同様でしたが、理由は未だに不明。とりあえず全員背中側からスタートして一周回ってもらいました。

回すスピードが合わなかったり、途中で動いてしまったりするとデータが途切れますが、大体2~3回トライすると360度の3Dデータが取れました。

 

■データ修復編

このように対象物を回してスキャンしていった場合、いい感じのデータが取れたとしても、頭頂部や底の部分をはじめ、大小さまざまな穴がいっぱい空いているので、3Dプリンターで出力するには、それらを修復する必要があります。

2016-12-30-(13)

 

①MeshLabを使ったデータ修復

 

スキャンデータの修復については、当初こちらの記事を参考にさせてもらいました。

デジタルエンジニアリング演習 3Dスキャンしたモデルの編集①

 

使っているソフトはMeshLabというフリーソフト。

 

まずはイベントの前にスキャンからデータ修復までのテストを行いました。

記事の通り作業を進めるものの、私が取ったスキャンデータのメッシュの数が多過ぎるのか、PCのスペックが低過ぎるのか、下部の選択→削除ができず。

そこで、先に「Quadric Edge Collapse Decimation」でメッシュ数を削減してから、下部を「選択」して削除、その後「Close Hole」で穴をふさぎ、それでも埋められない穴はMeshmixierの「Erase & Fill」で個別に閉じていきました。

 

何はともあれ、事前テストではそんな感じで無事穴埋めができました。

 

しかし、イベントでスキャンしたデータを同様の方法で修復しようとすると、以下のメッセージが出てうまくいきません。

 2016-12-30-(4)

 

拡大してみると、どうも体の前後をスライスするようにクラックが入っているもよう。

2016-12-30-(5)

 

Meshmixierで開いてみると、よくわかります。

2016-12-30-(7)

 

全員前後のどこかにクラックが入っています。現地でKinect Fusion Explorerの画面を見ている限りでは全然気づきませんでした。

2016-12-30-(12)

 

とはいえ、もう取り直しはできないので、何とか修復していかなくてはいけません。

 

とりあえずMeshLabでの修復は一旦あきらめ、Meshmixerでの修復に切り替えました。

 

②Meshmixerを使ったデータ修復


Meshmixerで穴をふさぐには、主に、
「Analysis」→「Inspector」→「Auto Repair All」

「Select」で穴の周りを選択「Edit」→「Erase & Fill」

の2種類があり、大概の場合はこれで何とかなると思います。

 

ただ、今回のようにガッツリと面が分断されているデータで実行すると、

修復できない部分があったり(↓の青い線)、修復できても顔のところに筋が入ってしまったり、

2016-12-30-(14)

 

あるいは、「Inspector」でスライス部を修復後、頭頂部に残った穴を「Erase & Fill」で修復しようとしたら、こんな感じになったり、

2016-12-30-(9)

 

メッシュの数を削減したり、いろいろイジったりしましたが、どうにもスライス部分に道を阻まれます。

 

「Edit」→「Make Solid」が一番惜しいところまでいきましたが完全修復はできず。

 

造形士かリペア職人かというぐらい手間暇かけて手直ししていけば何とかなるかなと思いつつ、他の方法を試してからにしようということで、、Meshmixerでの修復も一旦棚上げ。

 

次は、まだ使ったことのない「Netfabb」か「Microsoft 3D Model Repair」でのトライを試みます。

 

③Microsoft 3D Model Repairを使ったデータ修復

 

「Netfabb」はいつの間にか、AutoDeskに買収されてたんですね。有料っぽいですが、Fusion360のような有難い状況になってるのでしょうか。

 

「Microsoft 3D Model Repair」も裏では「Netfabb」の機能が走ってるっぽいので結局一緒かもしれませんが、ソフトをインストールするのが面倒だったので、まずは「Microsoft 3D Model Repair」をトライしました。

 

 

すごいシンプルなこのサービス。

選択できるのはOPERATIONメニューのこの3つだけのようです。

 Repair:データ修復

 Reduce Faces:メッシュ削減

 Convert:STL/OBJ/VRMLファイルから3MFファイルへの変換

2016-12-31-(13)

 

使い方も非常にシンプル。

Microsoftアカウントでログインしたのち、ファイルをUPLOADしたら自動的にREPAIRが始まります。

あとはDOWNLOADをクリックするだけ。

2016-12-30-(16)

 

1分ほどで完了したものの、出来上がるファイルが「3mf.」という新しいフォーマットのみということが判明。

 

今の環境では修復結果を確認できない上、このあと台座データとドッキングさせるので「stl.」に変換したい・・・

 

ということで、3mf.→stl.の変換を行うため、結局Netfabb(フリートライアル版)をインストールしました。

 

早速Repairした3mf.データを開いてみると、なんてことでしょう。

2016-12-31

 

不自然な線が入ることもなく、キレイに修復されています。

素晴らしい。

 

「Part」→「Export Part」→「as STL」でstl.データに変換します。

 

それをMeshmixerで開くとこんな感じ。「Analysis」→「Inspector」でもクラックは検出されません。

何の前処理もせず、Low dataをそのまま突っ込んだのに、この修復力。素敵やん。

 2016-12-31-(5)

 

唯一気になるのは大きな穴を埋めた部分の粗さ。とりあえず埋めたって感じで、段差が目立ちます。

これに関してはMeshmixerの「Erase & Fill」の方が自然ですね。

2016-12-31-(10)

 

ということで、ここだけ手直し。

「Sculpt」→「Brushes」→「Bubble Smooth」で段差を滑らかにしていきます。

2016-12-31-(8)

 

こんな感じかな。

2016-12-31-(9)

 

ほかにも気になる凹凸があれば、「Flatten」や「Inflate」で手直しをしていきます。

 

そして、「Edit」→「Plane Cut」で下のガタガタの部分をカットします。

2016-12-31-(11)

 

その後、必要に応じてメッシュ数の削減を行います。

 

Meshmixerの場合は、

「Select」→「Edit」→「Reduce」

MeshLabの場合は、

「Filters」→「Remeshing, Simplification and Reconstruction」→「Quadric Edge Collapse Decimation」

 

今回はMeshLabで10,000前後まで減らしました。

 

そして、それを123D Designにインポートし、作成した台座とサイズを合わせて合体させれば完成です。

2016-12-31-(12)

 

そんな感じで無事全員の胸像データができました。

2016-12-26

 

 

■まとめ 

 

いろいろ右往左往しましたが、

今回行ったデータ修復の手順は、以下の通りです。

①「Microsoft 3D Model Repair」でデータ修復(穴埋め)

②「Netfabb」で3mf.→stl.に変換

③「Meshmixier」でデータを手直し&底のカット

④「MeshLab」でメッシュ数を削減

 

4つのソフトを渡り歩いていますが、各ソフトをちゃんとマスターしたら、もっと減らせると思います。

 

好みの部分もありますが、個人的にはしばらく以下のような感じで使い分けようと思います。

・元データの状態がいい場合は、「Meshmixier」が仕上がりが自然で楽。

・「Meshmixier」でうまく修復できない場合は、「Microsoft 3D Model Repair」で修復後、「Meshmixier」で微修正。

・メッシュの削減に関しては、メッシュ数の管理がしやすい「MeshLab」が使いやすい。

・「Netfabb」はもうちょっと触ってみないとわからないけど、どれか一個って言われたら、これをマスターするのがいいじゃないか、と思う。

 

以上、アタフタした経緯をそのまま記載いたしましたが、

もしこれからスキャンにトライすることがあれば、ご参考いただければと思います!

京丹後ものづくり体験教室に参加しました!

2016.12.30

12月18日(日)に京丹後市で開催されたものづくり体験教室に参加してきました。

 

丹後ちりめんに代表される織物産業と金属加工業が盛んな京丹後市。

 

街の高台には、それらの技術を集積した「京丹後織物・機会金属振興センター(通称 織金センター)」という府運営の施設があります。

http://www.pref.kyoto.jp/oriki/

 DSC_0083

 

その織金センターを会場とした今回のイベント。

地元の子どもたちに、地域の産業に触れてもらいながら、ものづくりの楽しさも体験してもらうことを目的に、
2つの体験イベントが開催されました。

DSC_0064

 

我々が行ったのは小学校高学年~中学生を対象とした「3Dプリンター体験コース」。

 

課題として、Kinectで撮った上半身のスキャンデータと、123D Designでモデリングした台座データを合体し、このような胸像をつくってもらいます。

DSC_0075


まずは3Dプリンタ-とはなんぞやということで、
実機でサンプルを出力させながら、3Dプリンターの仕組みや活用事例などを紹介。

ちなみに、今まで3Dプリンタ-を見たことがある子は0人、聞いたことがある子が半分弱ぐらいでした。

IMG_9235

 

続いて123D Designを用いた土台のモデリング。

基本的なレクチャーのあと、さっそく自身で好きな形の土台をデザイン&モデリングしてもらいます。

IMG_9266

 

初めて触るので、当然操作におぼつかないところはありましたが、

「2次元スケッチを書いて、押し出す、押し込む」という3D CADの基本はマスターし、思い思いの台座をデザインしていきます。


中にはジェネラティブライクなデザインをする子も。出力が大変だ。

DSC_0072


自由にモデリングしてもらっている間に、順番にKinectで上半身データをスキャン。


Kinect側を固定し、回転イスに座った子どもたちを保護者の方がジワ~っと回すという方法で3Dデータを撮っていきました。
(なお、このKinect v1はファブラボ浜松さんにお借りしたもの。竹村さんありがとうございました!)

DSC_0069

 

一周する間に、どうしても笑ってしまう子もいましたが、比較的スムーズに進行。

DSC_0071

 

データ修復などに時間がかかるので、当日行う作業はここまで。

あとは二つのデータを預かり、合体、出力後、完成品を郵送でお届けします。

実はこの時作成したスキャンデータにいろいろあって、後で焦ることになるのですが、

それも含め、スキャンデータ作成&修復作業について別の記事でまとめたいと思います。

 

とりあえずこんな感じで皆さんの胸像データができたので、年明けぐらいにお手元にお届けできるかと思います。

2016-12-26-(1)

 

 

そして、最後は場所を移動して、織金センター松本技師指導の下、事前に作成していた3Dモデルのサポート材の除去作業を行います。 
ちなみに、めっちゃ撮影してるのは、地元の新聞社とケーブルテレビ局の方です。
DSC_0060

 

出力に使ったのは織金センターにあるインクジェット3Dプリンタ「Projet3500」。

ドン引きするような本体価格だけあって、FDMでは気を遣うような繊細なデータも、何事もなかったかのようにキレイに出力してくれます。

 

そんな高級3Dプリンターで出力したのは地元のゆるキャラ「コッペちゃん」。
(著作権的に問題ない事も確認済み)

コッペちゃん データ-[更新済み]

 

正面からの2次元データと着ぐるみの写真を元にモデリングを行いましたが、

よりによって突起物いっぱいあるわ、着物来てるわ、帯まで付いてるわで、なかなか苦戦しました。

2016-12-30-(1)

 

そんなコッペちゃんのサポート材を剥がしていきます。

私もインクジェット式プリンターでの、この作業はやった事がないので勉強になりました。

 

まずは工具で荒く削ぎ落としたあと、

IMG_9296

 

加熱し

DSC_0061

 

油の中で超音波を当てることで、サポート材を除去します。DSC_0062

 

念入りに洗浄し、できたのがこちら。

DSC_0063

 

帯もちゃんとついてます。

DSC_0118

 

完成したコッペちゃんを持って帰ってもらい、当日のイベントは無事終了しました。

 

 

今回のコンテンツの作成にあたっては、複数のデータ作成方法を体験してもらうことにこだわりました。

理由としては、3Dプリンタ-(デジタルファブリケーション)は
3D CADのデータが出力されるのでもなく、スキャンしたデータが出力されるのでもなく、

画面の中の情報が物体として出てくることが面白いんダゼ、ということを伝えたかった事とともに、

単純に多くのことを体験してもらいたかったからです。

 

ファブスペースも増え、何かとイベントごとの多い都心部に比べ、地方ではなかなか実際に体験する機会は少ないかと思います。

 

ネットでいくらでも情報が得られるとはいえ、このような過去に体験したことがないことに関しては、実際に見て触れるのとは情報の濃度が全く違うかと思うので、この機会にいろいろ体験してもらえるよう、若干溢れるぐらいに詰め込んでみました。

 

京丹後市でこのようなイベントを開催するのは今回が初めてとのことでしたが、これをキッカケにイベントが定期的に開催されたり、さらには現地にメイカースペースができたりするような流れになるといいなと思いました。