DreamerDreamのブログ

夢想家の夢です。〜揚げたてのモヤっとしたものをラフレシアと共に〜

3Dスキャナーを自作する ⑤取得データの編集

自作3Dスキャナで取得したデータは、さほど精度がよくありませんでした。 

dreamerdream.hateblo.jp

 

 

しかし、同じレーザー方式の3Dスキャナであれば結局どの機種でも同様にレーザーの反射しない箇所には穴が開きます。

 

例えば、こちらの2013年17万強で出ているスキャナー↓

を実際に使ってみたという記事ですが、

https://weekly.ascii.jp/elem/000/000/187/187238/

https://weekly.ascii.jp/elem/000/000/187/187230/131126_wamp_mbd_img13_cs1e1_480x.png

やはりレーザーの届かない場所の抜け、黒色部分の不検出になります。

しかし表面はかなり滑らかにスキャン出来ているように見えます。「さすが10万超のマシン!」と思うことでしょう。

しかしレーザーでスキャンしたままのデータを元にソフト側で表面を滑らかに加工しているようにも見えます。

 

ということで、今回作った自作3Dスキャナーでもソフトで同程度の滑らかさが出せるのか?表面加工をしてみたいと思います。 

 

編集ソフトはフリーでオープンソースな「MeshLab」を利用します。

↓HP

MeshLab

MeshLabは1から3Dモデルを作り上げる事はできませんが、3Dメッシュデータの編集やファイルタイプの変換などが出来る便利なツールです。

 

モデルは体操ブーブー。

f:id:DreamerDream:20181218085430p:plain

amazonで普通に売られています。

 

スキャニング中....

f:id:DreamerDream:20181218085444p:plain

 

スキャン完了!表面キレーですねー。レーザーの検出出来なかった頭には穴が・・

f:id:DreamerDream:20181218085500p:plain

 

これをMeshLabで開くと

f:id:DreamerDream:20181218090348p:plain

あれ?あれ?表面がボコボコです。

 

 

なぜ、そういうふうに見えるかというと

実は3Dオブジェクトにはテクスチャという画像データが貼られています。

テクスチャが貼られていると、一見綺麗に見えるだけなのです。

VRとかだとそのまま使えるようなデータですが3Dプリントするのには難があります。

Blenderのテクスチャモードで開く)

f:id:DreamerDream:20181218134612p:plain

テクスチャを外してソリッドモデルで表すとこうなります↓

f:id:DreamerDream:20181218134626p:plain

ワイヤーフレームで表すと、各点が見えないぐらいぎっちりと詰まっています。↓逆にこの精度でスキャン出来ている事に驚きます。

f:id:DreamerDream:20181218134636p:plain

 

 

このデータを簡単にMeshLabで滑らかにしてみます。

方法は参考ページに載っている通りスムーズ化するだけです。

<参考>MeshLab(Smoothing) - PointCloud

 

結果

f:id:DreamerDream:20181218085524p:plain

かなーり表面が綺麗になりました。

 

先ほどのBlenderのソリッドモデルで見てもツルツルしています↓

f:id:DreamerDream:20181218135525p:plain

 

では?穴はどうやって塞ぎましょう?

MeshLabにはRemeshingという点群からソリッドを構築し直してくれる便利な機能があります。

<参考>MeshLabによる、3次元測定データの穴埋め - みたにっき@はてな

f:id:DreamerDream:20181218141816p:plain

 こんな感じ。灰色の部分が再構築されたソリッドです。凸凹も埋められています。

f:id:DreamerDream:20181218141906p:plain

すばらしい!これなら少し要らないところを削るだけで3Dプリンタでも出力できそうです。先ほどのスムーズ化と組み合わせると表面ツルツルになります。

 

実際には何回スキャンするかとか、スキャンの方向、スキャン時の環境、ソフトでどう平均値を取るかとかメーカー物にはノウハウが詰まっているので一丸に同程度とは言えませんがお手製のマシンでも工夫次第で近い結果を出す事が可能になるのです。

あとは精度を出す為にいろんな方向からスキャンして合成するという方法もあります。

高価なスキャナーはスキャナー自体の能力だけでなく、こういったソフトウェア側での穴埋め作業などを自動化してあったりと素人でも使いやすくしてあるようです。 

dreamerdream.hateblo.jp

僕の3Dスキャナの用途としては工作パーツの位置決めやカバーの作成など、おおよその位置関係とカーブ程度が解ればそれを参考にblenderでデータを作り直すので今回の自作3Dスキャナーでも充分な性能だと満足しています。

しかし、フィギュアの完全コピー等を目的とするなら到底満足出来ない結果だと思います。 

 

どんな方法にしろ3Dスキャナーで取得したデータを無加工で3Dプリンターで出力できるようなスキャニングは現実的にはほぼ不可能と思われますので3Dプリンター出力を目指すのであれば3Dモデリングツールを触れるようにしましょう。 

dreamerdream.hateblo.jp

 

全5回に渡り3Dスキャナーの自作、実践をしてみました。お付き合いありがとうございました。

精度はともかく、作るだけなら結構簡単な材料で出来ますので是非一度試してみてください。

kampa.me