ハローみんな、
私は実際にロボットのピックアンドプレースアプリケーションの3Dスキャンのトピックに取り組んでいます。
まず、ICPアルゴリズムを使用して、実際のオブジェクトに対する参照オブジェクトの位置を一致させます。この目的のために、私は次のコードでOctave / Matlabを使用しています:http: //www.mathworks.com/matlabcentral/fileexchange/12627-iterative-closest-point-method
いくつかの試行の後、アルゴリズムは適切な時間で満足のいく精度を生成するようです。約6000から6000のデータポイントのマッチングには、100回の反復ループで約15秒の計算時間がかかります。
実際、私はこのmatlab / octaveコードを抽出してアプリケーションに取り込み、アルゴリズムの並列処理を試みています。自分のc-applicationから変更されていないコードを実行している場合、計算時間は約10〜20倍になります。(同じデータセット!)
関数のインライン化と最適化レベル-O3をオンにしている場合。.octファイルを生成するときにオクターブが行う他の最適化はありますか?なぜこんなにパフォーマンスに大きな違いがあるのか、実はわかりません。
大規模なICPアルゴリズムは、2倍の加算、乗算、除算を行います。
ご協力ありがとうございます!
挨拶、ジョデル