【3D点群処理】深層学習によるダウンサンプリング:S-NET
はじめに
点群のダウンサンプリングの手法についての紹介です。
以前、FPSやボクセルダウンサンプリングについて書きましたが、今回は深層学習によってサンプリングする手法について紹介します。
過去の記事はこちら。
S-NET ”Learning to Sample"
S-Netはサンプリングする点を生成するネットワークです。構造はPointNetを基本構造としています。
点群を単純化するように学習させ、推論時にはS-Netによってサンプリングされた点を使用します。
https://arxiv.org/pdf/1812.01659.pdf
概要
学習時
S-Netのトレーニングの流れです。
・オリジナルの点群をS-NETに入力します。
・S-NETがオリジナルの点群を表す点群を生成します。
・オリジナルの点群と生成した点群でサンプリングロスを計算します。
・生成した点群をTask networkに入力してタスクの損失を計算します。
(Task networkはあらかじめ学習済みのクラス分類などのタスクをこなすネットワーク)
・サンプリングロスとタスクロスを最適化するようにネットワークを学習します。
損失関数は以下の通りです。右辺の第一項がタスクロス、第二項がサンプリングロスです。
テスト時
テスト時の流れです。
・オリジナルの点群(Input points)をS-NETに入力します。
・S-NETがオリジナルの点群を表す点群(Generate points)を生成します。
・Generate pointsと距離の近いInput pointsをSampled pointsとしてサンプリングします。
効果
ランダムサンプリング、FPS、S-NETの3種類のサンプリング方法を用いてクラス分類を行った結果です。
S-NETはランダムサンプリングやFPSと比較して、サンプリング数が減少しても分類精度が高いことが分かります。
S-NETは元の点群を表す点を上手にサンプリングできているので少ないデータ数でも分類精度が高いことが分かります。
ディスカッション
コメント一覧
まだ、コメントがありません