フォト

Google AdSense

  • AdSense
無料ブログはココログ

« 次に来るのは? | トップページ | 箱庭型 »

2008.07.09

CUDAベースに

自分でComputer Vision的なことをする場合には、DirectShowでキャプチャデバイス(カメラ)にアクセスして、Direct3Dのテクスチャにフレーム画像を書き出してGPUで画像処理などをしていたりします。これは、結構昔からやってるネタですね。

最近のものですと下記なんかがそうですね。

Direct3D10版
http://www.shader.jp/xoops/html/modules/mydownloads/singlefile.php?lid=21

Direct3D10版にIntel TBBをちょっと使ってみた版
http://www.shader.jp/xoops/html/modules/mydownloads/singlefile.php?lid=22

Direct3D9版
http://www.shader.jp/xoops/html/modules/mydownloads/singlefile.php?lid=14

GPUでやるメリットは、リードバックしないなら(PCIeになってだいぶ速くなったけど)ピクセルシェーダで画像処理が並列化しやすいという点ですね。

デメリットは、HLSL使ってるのでHLSLで画像処理のコードを書かないと行けない点ですね。

そんなわけで、もうちょっと既存のC/C++のコードで書きやすくするためにCUDA化しようかなぁ・・・(ちなみに、OpenGL化は容易に出来ると思うのですが、OpenGL化してもDirectShow使ってる時点でMacやLinuxに移植するのは不可能なので、OpenGL化に取り組んでいません)。正直、CUDA用にフレーム画像をメモリに配置し直すところはすぐ出来ると思うんですよねぇ。Direct3D9のときには、過去のMicrosoftのDirectShowのサンプルをクラス化しただけなんですが、Direct3D10では1から書いてる部分が多いので、コードの中身について細かく理解することが出来たし。

そういえば、CUDA化というとOpenVIDIAを使う手も無いワケではないと思うのですが、OpenVIDIAだとUSBのWebカメラを使う方法が分からないんですよね(使え無い?)。

« 次に来るのは? | トップページ | 箱庭型 »

Programming」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« 次に来るのは? | トップページ | 箱庭型 »