PCLで点群処理

PCLで点群処理したあれこれを書いていきます。

【論文100本ノックの64】私の研究開発ツール―第 18 回 ―カメラ・プロジェクタのキャリブレーション

1 目 的

 点群に関する研究論文を読み、点群処理に関する知識を得るとともに、新たな研究のための気づきを得る。

 

2 はじめに

 100本計画の64本目として、和文5ページの本論文(記事)を読む。

 

3 対象論文と要約

3.1 対象論文

私の研究開発ツール―第 18 回 ―カメラ・プロジェクタのキャリブレーション

古川亮, 猪瀬健二, and 川崎洋 広島市立大学埼玉大学

映像情報メディア学会誌: 映像情報メディア 62.12 (2008): 1964-1968. 2008

http://ci.nii.ac.jp/els/110006991091.pdf?id=ART0008902808&type=pdf&lang=en&host=cinii&order_no=&ppv_type=0&lang_sw=&no=1489294864&cp=

3.2 研究内容

(社会的ニーズ)

 なし。

(提案)

 幾何情報・光学情報両者に関するキャリブレーションについて、簡単に紹介する。

3.3 ツールの概要

(1)幾何学キャリブレーション

 ア カメラ内部キャリブレーション

  撮影した校正儀の画像から抽出した特徴点位置を利用する

  OpenCVの関数を利用することで、簡単にキャリブレーション可能。

 イ カメラの外部キャリブレーション

  あるカメラの、他の座標系に対する位置や方向を得る。

  これもOpenCVで実行できる。

(2)プロジェクタの幾何学キャリブレーション

 プロジェクタもカメラも、照射と受光という機能の違いはあるが、同じピンホールモデルを想定すれば、キャリブレーション可能である。

 これには、Procam3Dなどを用いる。

(3)光学的キャリブレーション

 カメラレスポンスカーブ推定およびHDR画像生成について説明

4 出現用語

 

5 おわりに

 カメラ等のキャリブレーションに関する記事。

 Xtion等、与えられた機器で点群を取得する場合にはあまり気にならないが、2次元画像からの点群復元等では必須の知識。

 幾何学キャリブレーションOpenCVで簡単にできるというツール紹介だったが、その他についてはやや趣旨(私の「研究開発ツール」)からずれている気がしなくもない。

6 今後調査したい事項

  「私の研究開発ツール」シリーズ

【論文100本ノックの63】私の研究開発ツール―第 54 回 ―MATLAB で 3 次元映像処理を効率化

1 目 的

 点群に関する研究論文を読み、点群処理に関する知識を得るとともに、新たな研究のための気づきを得る。

 

2 はじめに

 100本計画の63本目として、和文3ページの本論文(記事)を読む。

 

3 対象論文と要約

3.1 対象論文

私の研究開発ツール―第 54 回 ―MATLAB で 3 次元映像処理を効率化

藤井俊彰 名古屋大学

映像情報メディア学会誌: 映像情報メディア 65.12 (2011): 1726-1728. 2011

http://ci.nii.ac.jp/els/110009669029.pdf?id=ART0010148369&type=pdf&lang=en&host=cinii&order_no=&ppv_type=0&lang_sw=&no=1489292252&cp=

3.2 研究内容

(社会的ニーズ)

 3次元映像技術は、様々な分野への発展が期待される

(提案)

 3次元映像とMATLABの適用例の概要を述べる

3.3 ツールの概要

(1)3次元映像撮影システム

 多視点カメラが一般的。

 後の作業の円滑化のため、幾何学的位置補正や色補正が必要。

(2)3次元映像の生成手法

 カメラから得られたデータではデータ不足のため、補間の必要がある。

 CGレンダリング手法を用いた幾何モデルベース法や、画像の画素値等に着目するイメージベース法などがある。

(3)MATLABとの関わり

 ・多視点画像の位置合わせ

 ・多視点動画ビューア

4 出現用語

 

5 おわりに

 MATLABを用いた3次元映像(多視点連続画像)に関する記事。

 点群研究者にとっては、多視点画像と聞けばSfM等によって点群を取得することを想像する。

 本記事でも、位置合わせ用特徴点群についてわずかだが記されている。

 点群処理で統計的/数学的なデータ解析を行う際には、本記事のようなMATLAB連携も視野に入るかもしれない。

6 今後調査したい事項

  「私の研究開発ツール」シリーズ

【論文100本ノックの62】私の研究開発ツール―第 20 回―3 次元モデルデータベース

1 目 的

 点群に関する研究論文を読み、点群処理に関する知識を得るとともに、新たな研究のための気づきを得る。

 

2 はじめに

 100本計画の62本目として、和文5ページの本論文(記事)を読む。

 

3 対象論文と要約

3.1 対象論文

私の研究開発ツール―第 20 回―3 次元モデルデータベース

Laga, Hamid, and 高橋裕東京工業大学電気通信大学

The Journal of The Institute of Image Information and Television Engineers 63.2 (2009): 194-198. 2009

http://ci.nii.ac.jp/els/110007046335.pdf?id=ART0008974050&type=pdf&lang=en&host=cinii&order_no=&ppv_type=0&lang_sw=&no=1489292206&cp=

3.2 研究内容

(社会的ニーズ)

 3Dモデリングソフトの低廉化により、広範な応用分野に膨大な3次元モデルデータベースが存在するようになってきた。

(提案)

 既存の3次元モデルデータベースの紹介と初学者にとって有益な利用法の説明

3.3 ツールの概要

(1)3次元モデル検索エンジン

  ア 3次元モデルデータベース

   記事内表中に10件まとめられている。

  イ 3次元モデル検索システム

   記事内表中に5件まとめられている。

(2)3次元モデルの再利用

 目的どおりのモデルが得られなかった場合、以下の手法で目的のモデルを得ることができる

 ア 概ね目的に沿ったモデルを見つければ、色やテクスチャなどを修正

 イ 目的のデータがなければ、複数のモデルの部分同士を組み合わせる

 ウ 3Dスキャナで点群を得る。不完全でも点群処理技術により対処可能

4 出現用語

 

5 おわりに

 CUDAに続き、同じ著者による3次元モデルデータベースの紹介記事。

 点群処理分野では、スタンフォード兎が有名だが、より特定の物体の点群を使用したい場合、CGデータから点群化するなどの対処が必要である。

 最近では、UnityやUnreal Engine等のゲームエンジンにより、ゲーム制作が一般化し、これにともなってモデルデータベースも極めて多数存在するようになった。

 本記事は8年前のものであり、現在は状況が様変わりしているため、同じ内容の最新記事があれば読んでみたい。

6 今後調査したい事項

  「私の研究開発ツール」シリーズ

【論文100本ノックの61】私の研究開発ツール―第 22 回― CUDA (Compute Unified Device Architechture)

1 目 的

 点群に関する研究論文を読み、点群処理に関する知識を得るとともに、新たな研究のための気づきを得る。

 

2 はじめに

 100本計画の61本目として、和文6ページの本論文(記事)を読む。

 

3 対象論文と要約

3.1 対象論文

私の研究開発ツール―第 22 回― CUDA (Compute Unified Device Architechture)

Laga, Hamid, and 高橋裕東京工業大学

電気通信大学 映像情報メディア学会誌: 映像情報メディア 63.4 (2009): 465-470. 2009

http://ci.nii.ac.jp/els/110009669603.pdf?id=ART0010149540&type=pdf&lang=en&host=cinii&order_no=&ppv_type=0&lang_sw=&no=1489292159&cp=

3.2 研究内容

(社会的ニーズ)

 様々な分野で、高速処理可能なプログラミングコードが常に望まれている。

(提案)

 CUDAの紹介

3.3 ツールの概要

(1)一般的な高速処理

 ・コード最適化

 ・マルチコア化

 ・コンピュータのクラスタ

 ・専用ハードウェア化

(2)GPUとは

 並列性の高い計算に特化したデータ並列処理デバイス

(3)CUDA(Compute Unified Device Architecture)とは

 グラフィクスAPIに対応付けずにデータの並列化処理デバイスとしてGPUでの計算の命令や管理を行う。

(4)CUDAモデル

 ・プログラミングモデル…コンパイルされたプログラムをブロック化し、状況に応じて並列処理と逐次処理を使い分ける

 ・メモリーモデル…デバイス上で実行されるスレッドは、レジスタやローカルメモリ等にアクセスする。

(5)CUDAプログラミング基礎

 ・プログラム構造…ホスト実行コードとカーネル実行コードに分類

(6)処理速度の向上

 様々な事項を考慮する必要があるが、最も重要な事項は次のとおり。

・共有メモリーへのアクセスにおけるバンク衝突

・グローバルメモリーへの結合アクセス

・ブロックの総数の設定

・ブロックあたりのスレッド数

4 出現用語

 

5 おわりに

 DirectXに続き、CUDAの紹介記事。

 DirectX(Direct3D)ではGPUの使用が前提とのことで読んでみた。

 点群処理は、点数が増えることで指数関数的に計算量が増加する場合が多い。

 そのため、多くの研究論文で、「GPUによる高速化が今後の課題」などとされる。

 しかし、多くの場合、その課題は放置されたままであるが、これはGPUを実際に使える研究者があまり多くないことを指しているかもしれない。

6 今後調査したい事項

  「私の研究開発ツール」シリーズ

【論文100本ノックの60】私の研究開発ツール―第 12 回―Direct X

1 目 的

 点群に関する研究論文を読み、点群処理に関する知識を得るとともに、新たな研究のための気づきを得る。

 

2 はじめに

 100本計画の60本目として、和文4ページの本論文(記事)を読む。

 

3 対象論文と要約

3.1 対象論文

私の研究開発ツール―第 12 回―Direct X

高橋誠史 北陸先端科学技術大学院大学

映像情報メディア学会誌 62.6 (2008): 856-859. 2008

http://ci.nii.ac.jp/els/110006855234.pdf?id=ART0008783073&type=pdf&lang=en&host=cinii&order_no=&ppv_type=0&lang_sw=&no=1489295012&cp=

3.2 研究内容

(社会的ニーズ)

 なし。

(提案)

 DirectXの紹介

3.3 ツールの概要

 Windows向けマルチメディアアプリケーションAPI

 本稿では特にDirect3Dのバージョン10の概要と新機能のジオメトリシェーダに関する話題を中心に扱う。

(1)Direct3Dとは

 CG描画機能について、OpenGLの対になるのはDirectXではなくDirect3D

(2)9から10へ

 プログラマブルGPU使用前提となり、固定機能パイプラインが廃止

 →頂点単位ではなく、ピクセル単位の細かなシェーディングが可能となった

(3)ジオメトリシェーダとストリーム出力

 ジオメトリシェーダでは、頂点シェーダの処理結果をもとに、プリミティブ単位のGPU操作を可能とする。

 (ポリゴンを頂点計算により変形表示できる)

(4)ジオメトリシェーダプログラム

 要点シェーダで処理した結果を使ってそのまま三角形化して出力

(5)応用例

 ・SubD10…SDKのサンプル。SubdivisionSurfaceが実装されている。

 ・ShadowVolume10…Microsoftのサンプル。シャドウボリュームの構築をジオメトリシェーダで実装

(6)WindowsPC以外の話題

 以下ともにDirectX9.0のDirect3D相当の機能が使用可能。

 ・Xbox360

 ・Windows Mobile

4 出現用語

 

5 おわりに

 OpenGLに続き、DirectXの紹介記事。

 DirectX(Direct3D)の使い方をざっと紹介している。

 基本的にWindows向けだが、PCLもWindowsで使用できることを考えると、連携使用も見込めそうだ。

 GPUの使用が前提のようなので、CUDA等GPUに関する記事も読みたい。

6 今後調査したい事項

  「私の研究開発ツール」シリーズ

【論文100本ノックの59】私の研究開発ツール―第 3回―OpenGL

1 目 的

 点群に関する研究論文を読み、点群処理に関する知識を得るとともに、新たな研究のための気づきを得る。

 

2 はじめに

 100本計画の59本目として、和文4ページの本論文(記事)を読む。

 

3 対象論文と要約

3.1 対象論文

私の研究開発ツール―第 3回―OpenGL

床井浩平 和歌山大学

映像情報メディア学会誌 61.9 (2007): 1307-1310. 2007

http://ci.nii.ac.jp/lognavi?name=nels&lang=en&type=pdf&id=ART0008782398

3.2 研究内容

(社会的ニーズ)

 なし。

(提案)

 OpenGLの紹介

3.3 ツールの概要

 プラットフォーム非依存のグラフィックハードウェアAPI

(1)OpenGLGLUT

 OpenGLに含まれない、マウス位置取得やウィンドウ開閉等は、GLUT(OpenGL Utility ToolKit)を用いて実装する必要がある。

 また、GLUTは主要OS間でソースコードレベルの互換性を持つものの、本来OpenGLの学習用ツールであり、本格的なGUIアプリ開発には不向き。

(2)GLUTを使った簡単なOpenGLプログラム

(3)2次元図形の描画

 色を指定した後、3頂点を指定することで、ポリゴンを生成

(4)座標軸とビューポートの設定

 glOrtho()関数で初期化することで、表示範囲が変わる。

(5)3次元図形の描画

 GLUTには簡単な立体形状を描く関数が用意されている

(6)視点の移動

 gluLookAt()関数で、視点の位置や視線の方向を直接指定できる

(7)透視変換

 gluPerspective()関数で、カメラパラメータを用いて指定可能

(8)陰影付け

 glutSolidCube()関数で、線画から面構成の立方体に変化させる

(9)隠面消去

 デプスバッファ法で隠面消去処理を行う

4 出現用語

 

5 おわりに

 ARToolKitに続き、OpenGLの紹介記事。

 OpenGLGLUT)の使い方をざっと紹介している。

 描画処理の流れについては、CGエンジニア検定用の参考書が詳しい。

 他のシェーダ(DirectXやCg)等についても調査したい。

6 今後調査したい事項

  「私の研究開発ツール」シリーズ

【論文100本ノックの58】私の研究開発ツール―第 7 回―ARToolKit

1 目 的

 点群に関する研究論文を読み、点群処理に関する知識を得るとともに、新たな研究のための気づきを得る。

 

2 はじめに

 100本計画の58本目として、和文4ページの本論文(記事)を読む。

 

3 対象論文と要約

3.1 対象論文

私の研究開発ツール―第 7 回―ARToolKit 加藤博一

奈良先端科学技術大学院大学

The Journal of The Institute of Image Information and Television Engineers, 62(1), 48-51. 2008

http://ci.nii.ac.jp/lognavi?name=nels&lang=en&type=pdf&id=ART0008782838

 

3.2 研究内容

(社会的ニーズ)

 なし。

(提案)

 ツールの紹介

3.3 ツールの概要

 C言語APIとして提供されている小さなツール。

 四角いマーカに重畳表示することで、拡張現実を作成

(1)画像入力と表示

 基本的にGLUTのイベント駆動処理を採用。

 事前にカメラキャリブレーションを行うことで、自動で歪み補正が動作

(2)マーカ検出処理

 マーカ内部の模様で個別認識可能

 入力画像を日化し、マーカ候補を抽出することで識別

 識別マーカを座標変換し、3DCGを表示する。

(3)3DCGの描画

 基本的にOpenGLの作法に従って描画する。

4 出現用語

 GLUT

5 おわりに

 Bundlerに続き、ARToolKitの紹介記事。

 点群研究の中に、SARを研究するものがあったが、これを簡単にできないかと期待して読んでみた。

 どうやら2次元画像ベースのマーカ検出のため、点群処理に直接は適用できないようだが、いじればなんとかできるのかどうか。

 様々な演算をOpenGLが担当しているため、OpenGLについて理解を深める必要があるかもしれない。

6 今後調査したい事項

  「私の研究開発ツール」シリーズ