本日は AzureKinect と Blender の調査枠です。
AzureKinect から取得したカラー画像とデプス画像を使って Blender で立体を再構築してみます
前回記事の続きです。
bluebirdofoz.hatenablog.com
今回は画角の修正を行います。
取り込んだ3Dデータの歪み
取り込んだ3Dデータはだと、全体が大きく歪んでいます。
平行投影で上方から確認した画像が以下です。円錐形に遠くなるほど縮んでいることが分かります。
これはデプス画像を、平面のメッシュに反映したためです。
デプスの映像は1つのレンズで撮影したものなので、透視投影の画像です。
このため、近くの物は大きく、遠くのものは小さく撮影されています。
しかし、その一方で出力されたデプスの深度情報は平行投影で計算されています。
例えば以下は何もない壁を撮影したデプス画像です。
深度がカメラからの距離であれば、壁の中心から外側に向かって距離が遠くなるはずですが、壁全体が一定の深度で取得されています。
つまりデプスの画像の見た目は透視投影(カメラレンズからの距離)ですが、深度の情報は平行投影(奥行の平行軸の距離)になっています。
このため、デプス画像から立体を再構築するにはこの歪みを補正する必要があります。
今回は以下のようなスクリプトを作成し、奥行に合わせて歪みを補正することとしました。
・decode_angleview.py
スクリプトを実行した結果が以下になります。
改めて上方から見ると、歪みが補正されて長方形な部屋の形状が取得できていることが分かります。