MRが楽しい

MRやVRについて学習したことを書き残す

AzureKinectから取得したカラー画像とデプス画像を使ってBlenderで立体を再構築する その2(ノイズ部分の削除)

本日は AzureKinect と Blender の調査枠です。
AzureKinect から取得したカラー画像とデプス画像を使って Blender で立体を再構築してみます
f:id:bluebirdofoz:20191101092945j:plain

前回記事の続きです。
bluebirdofoz.hatenablog.com

今回はノイズ部分の削除を行います。

モディファイアの反映

今回の処理は頂点に対して直接変更を行うため、モディファイアを予め適用しておきます。
モディファイアの適用は不可逆的な作業となるため、作業前にプロジェクトを保存しておく事をお奨めします。
f:id:bluebirdofoz:20191101092957j:plain

各モディファイアの[適用]ボタンをクリックしてモディファイアを適用します。
このとき、[サブディビジョンサーフェス]->[ディスプレイス]の順で適用するように注意します。
逆の順序で適用すると、モディファイアの順序が変わるため、形状が変化してしまいます。
f:id:bluebirdofoz:20191101093009j:plain

デプスの欠落を削除する

最初にデプスの欠落箇所の頂点を削除します。
デプスの欠落箇所は深度が 0.00 で出力されているため、Y:0.00 の位置に頂点が配置されています。
f:id:bluebirdofoz:20191101093020j:plain

マージンを取って Y:0.20 未満の箇所の頂点を全て削除しました。
以下のスクリプトを作成して利用しました。
・Remove_noise_lack.py

f:id:bluebirdofoz:20191101093136j:plain

削除後のメッシュが以下になります。
大きな欠落部分は削除されましたが、まだ多くのノイズがあります。
f:id:bluebirdofoz:20191101093032j:plain

ノイズ部分をスムーズにする

小さなノイズまで削除してしまうとメッシュに大量の穴が発生するので、頂点のスムーズ化をかけて形を整えることにしました。
メッシュの面積が極端に大きい箇所を検出してスムーズ化を実行します。
以下のスクリプトを作成して利用しました。
・Smooth_noise_point.py

f:id:bluebirdofoz:20191101093153j:plain

ノイズ部分がスムーズ化されて形が見えてきました。
f:id:bluebirdofoz:20191101093204j:plain

更にノイズを除去する

それでも残っているノイズを除去するなら、更にもう一度クリーンアップや不要な面の削除を行います。
ただし、あまりやり過ぎると正しい計測部分も削除してしまうため、選択範囲の設定などを調整しつつ実施します。
・Remove_noise_point.py

f:id:bluebirdofoz:20191101093215j:plain

これでノイズの除去が完了しました。
3Dモデルを正しく再現するため、次回は最後に画角の補正を実施します。
bluebirdofoz.hatenablog.com