SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
OpenCVの新機能
UMatを先取りしよう
関東GPGPU勉強会#3
2013/11/30
@dandelion1124
自己紹介(1/3)
Twitter:@dandelion1124
• 学生時代は画像処理の研究に従事。

• 現在は都内勤務エンジニア。
• 研究室でOpenCVのTipsサイトを作っていたらOpenCV関連書籍を
書くことになり今に至る。

blog: http://www.atinfinity.info/blog/
wiki: http://www.atinfinity.info/wiki/
自己紹介(2/3)
• 書籍執筆
– OpenCVプログラミングブック

• 和訳本(原稿チェック)
– 詳解 OpenCV
– 実践 コンピュータビジョン

• 雑誌関連
– 日経ソフトウェア(2011年3月号)
特集記事担当
自己紹介(3/3)
• メインで活動している勉強会
– 関東コンピュータビジョン勉強会 #cvsaisentan
http://sites.google.com/site/cvsaisentan/
本日のアジェンダ
•
•
•
•
•
•
•

OpenCVとは?
前置き
OpenCVのデータ構造
UMatとは?
サンプルコード
UMatを使うには
UMatのTips

本題に入る前の前準備

本日のメイン
OpenCVとは?
Intelが開発・公開したOpen SourceのComputer Vision
ライブラリ。現在はWillow Garageが開発を行っている。
http://opencv.org/
• 公式サポートOS
– Windows/Linux/Mac OS/Android/iOS

• 公式サポート言語
– C/C++/Python/Java
※有志による非公式ラッパーは以下のサイトにまとめています。
http://www.atinfinity.info/wiki/index.php?OpenCV%2FOpenCV%20wrapper%20list
前置き
ある日OpenCV MeetingNotesで以下の記載を見かける
– 3.0 will do a lot more work on this. But OpenCL will vanish
and be put into automatic acceleration in the other modules
• It will accelerate automatically if you use "umat" (Universal Matrix).
• Tests often show 10 to 100x acceleration on GPU

– If user casts to umat and pass to functions, it will use GPU
acceleration if available achieving the speedup.
• Data is not copied in conversion back and forth between mat and
umat. Use mat if you want pixel access.

http://code.opencv.org/projects/opencv/wiki/2013#2013-11-05 から抜粋
前置き
ある日OpenCV MeetingNotesで以下の記載を見かける
– 3.0 will do a lot more work on this. But OpenCL will vanish
and be put into automatic acceleration in the other modules
• It will accelerate automatically if you use "umat" (Universal Matrix).
• Tests often show 10 to 100x acceleration on GPU

– If user casts to umat and pass to functions, it will use GPU
acceleration if available achieving the speedup.
• Data is not copied in conversion back and forth between mat and
umat. Use mat if you want pixel access.

なんか凄そう!
(小並感)

http://code.opencv.org/projects/opencv/wiki/2013#2013-11-05 から抜粋
前置き
という残念な理由からUMatについて説明することに
しました。
ただし、あくまでOpenCV 3.0で入る予定の機能なので、正式な
導入時は本発表時と内容が変わっている可能性がある点
ご了承ください。
前置き
というか、そもそも、最新コード
(https://github.com/Itseez/opencv/)に
UMat実装されているんでしょうか?
前置き
というか、そもそも、最新コード
(https://github.com/Itseez/opencv/)に
UMat実装されているんでしょうか?

あった!
modules/core/src/umatrix.cpp
前置き
じゃあ、開発版ドキュメント読んでみようかな?
http://docs.opencv.org/trunk/modules/core/doc/core.html
前置き
じゃあ、開発版ドキュメント読んでみようかな?
http://docs.opencv.org/trunk/modules/core/doc/core.html

「UMatのドキュメントはまだ無い」
(※2013/11/29時点)
ご清聴ありがとうございました
前置き
ドキュメントが無いので、しぶしぶソースを
読んで使い方を調べることにしました。
というわけで、本編に戻ります。
OpenCVの画像データ構造
OpenCVで画像を格納するために使うデータ構造は
おおまかに以下の4つ。
•
•
•
•

cv::Mat
gpu::GpuMat
ocl::oclMat
cv::UMat

画像データの入れ物(CPU版)
画像データの入れ物(CUDA版)
画像データの入れ物(OpenCL版)
画像データの入れ物(CPU/OpenCL版)
OpenCVの画像データ構造
OpenCVで画像を格納するために使うデータ構造は
おおまかに以下の4つ。
•
•
•
•

cv::Mat
gpu::GpuMat
ocl::oclMat
cv::UMat

画像データの入れ物(CPU版)
画像データの入れ物(CUDA版)
画像データの入れ物(OpenCL版)
画像データの入れ物(CPU/OpenCL版)

oclMatについては前回勉強会の発表資料を参照ください。
http://www.slideshare.net/YasuhiroYoshimura/gpgpu2opencvopencloclmat
※上記資料は2013年6月時点のものなので最新版ではAPI仕様が少し変わっています。
OpenCVの画像データ構造
OpenCVで画像を格納するために使うデータ構造は
おおまかに以下の4つ。
•
•
•
•

cv::Mat
gpu::GpuMat
ocl::oclMat
cv::UMat

画像データの入れ物(CPU版)
画像データの入れ物(CUDA版)
画像データの入れ物(OpenCL版)
画像データの入れ物(CPU/OpenCL版)

今日のお話はこの部分がメイン
UMatとは?
• Mat/oclMat間の差異を隠蔽したデータ構造
• UMatに画像データを入れて画像処理の関数
を実行すると、OpenCLが使える環境なら自動
でOpenCL実装を使ってくれる
• UMatを使って実装しておけばCPU/OpenCLの
コードを共通化できる
UMatとは?
• Mat/oclMat間の差異を隠蔽したデータ構造
• UMatに画像データを入れて画像処理の関数
を実行すると、OpenCLが使える環境なら自動
でOpenCL実装を使ってくれる
• UMatを使って実装しておけばCPU/OpenCLの
コードを共通化できる
UMatとは?
UMatに画像データを格納
OpenCV内部で
勝手にやってくれる

OpenCVの画像処理関数をコール

OpenCLが使える
実行環境?

No

Yes

oclMatの実装を使う

Matの実装を使う
UMatとは?
• Mat/oclMat間の差異を隠蔽したデータ構造
• UMatに画像データを入れて画像処理の関数
を実行すると、OpenCLが使える環境なら自動
でOpenCL実装を使ってくれる
• UMatを使って実装しておけばCPU/OpenCLの
コードを共通化できる
サンプルコード(グレースケール化)
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui.hpp>
using namespace cv;

int main(int argc, char** argv)
{
Mat src = imread(“lena.jpg ", IMREAD_UNCHANGED);
Mat dst;
cvtColor(src, dst, COLOR_BGR2GRAY);
imwrite (“lena_gray.jpg", dst);
return 0;

#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/ocl/ocl.hpp>
using namespace cv;

int main(int argc, char** argv)
{
Mat src = imread(“lena.jpg ", IMREAD_UNCHANGED);
Mat dst;
ocl::oclMat oclsrc (src );
ocl::oclMat ocldst;
ocl::cvtColor(oclsrc, ocldst, COLOR_BGR2GRAY);
ocldst.download(dst);

}
imwrite (“lena_gray.jpg", dst);
return 0;
}

Mat(CPU版)のコード

oclMat(OpenCL版)のコード

点線で囲った部分が共通化できていないコード部分
サンプルコード(グレースケール化)
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/ocl/ocl.hpp>
using namespace cv;

int main(int argc, char** argv)
{
Mat src = imread(“lena.jpg ", IMREAD_UNCHANGED);
UMat usrc = src.getUMat(ACCESS_READ);
UMat udst;
cvtColor(usrc, udst, COLOR_BGR2GRAY);
imwrite (“lena_gray.jpg", udst);
return 0;
}

UMat(CPU/OpenCL版)のコード

UMatを使って実装するとCPU/OpenCLのコードを共通化できる!
UMatのサンプルコードを使って
各処理をもう少し詳しく説明します
サンプルコード(グレースケール化)
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/ocl/ocl.hpp>
using namespace cv;

①ヘッダ読み込み

int main(int argc, char** argv)
{
Mat src = imread(“lena.jpg ", IMREAD_UNCHANGED);

②画像読み込み
③UMat初期化

UMat usrc = src.getUMat(ACCESS_READ);
UMat udst;

④画像処理

cvtColor(usrc, udst, COLOR_BGR2GRAY);

⑤画像書き込み

imwrite (“lena_gray.jpg", udst);
return 0;
}

グレースケール化
サンプルコード(グレースケール化)
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/ocl/ocl.hpp>
using namespace cv;

①ヘッダ読み込み

int main(int argc, char** argv)
{
Mat src = imread(“lena.jpg ", IMREAD_UNCHANGED);

UMatを使うにはocl.hppの
インクルードが必要

②画像読み込み
③UMat初期化

UMat usrc = src.getUMat(ACCESS_READ);
UMat udst;

④画像処理

cvtColor(usrc, udst, COLOR_BGR2GRAY);

⑤画像書き込み

imwrite (“lena_gray.jpg", udst);
return 0;
}

OpenCVのヘッダをインクルード
サンプルコード(グレースケール化)
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/ocl/ocl.hpp>
using namespace cv;

int main(int argc, char** argv)
{
Mat src = imread(“lena.jpg ", IMREAD_UNCHANGED);

③UMat初期化

UMat usrc = src.getUMat(ACCESS_READ);
UMat udst;

④画像処理

cvtColor(usrc, udst, COLOR_BGR2GRAY);

⑤画像書き込み

imwrite (“lena_gray.jpg", udst);
return 0;
}

②画像読み込み
画像ファイルを読みこんで
Mat形式で格納する。
サンプルコード(グレースケール化)
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/ocl/ocl.hpp>
using namespace cv;

int main(int argc, char** argv)
{
Mat src = imread(“lena.jpg ", IMREAD_UNCHANGED);
UMat usrc = src.getUMat(ACCESS_READ);
UMat udst;

④画像処理

cvtColor(usrc, udst, COLOR_BGR2GRAY);

⑤画像書き込み

imwrite (“lena_gray.jpg", udst);
return 0;
}

③UMat初期化
srcに入れたデータをもとに
UMatのインスタンスを作る
サンプルコード(グレースケール化)
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/ocl/ocl.hpp>
using namespace cv;

int main(int argc, char** argv)
{
Mat src = imread(“lena.jpg ", IMREAD_UNCHANGED);
UMat usrc = src.getUMat(ACCESS_READ);
UMat udst;

cvtColor(usrc, udst, COLOR_BGR2GRAY);

⑤画像書き込み

imwrite (“lena_gray.jpg", udst);
return 0;
}

④画像処理
グレースケール化する
サンプルコード(グレースケール化)
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/ocl/ocl.hpp>
using namespace cv;

int main(int argc, char** argv)
{
Mat src = imread(“lena.jpg ", IMREAD_UNCHANGED);
UMat usrc = src.getUMat(ACCESS_READ);
UMat udst;

cvtColor(usrc, udst, COLOR_BGR2GRAY);
imwrite (“lena_gray.jpg", udst);
return 0;
}

⑤画像書き込み
グレースケール化した画像を
ファイルに書き込む
UMatを使うには

■開発版OpenCVコード入手
2.4.xにはUMat実装が入っていないので
git or githubから開発版のコードを取得
する必要があります
https://github.com/Itseez/opencv/

■OpenCL環境導入
PCにOpenCLのSDKをインストールして
おく必要がある

■CMake
CMakeで以下の手順を行うことで
ソリューションファイルが生成される
①「WITH_OPENCL」にチェックを入れる
②「Configure」ボタンを押す
③「Generate」ボタンを押す
④生成されたソリューションを使って
OpenCVのライブラリを生成
UMatのTips
• 今の実行環境でOpenCL環境が使えるかどう
かを調べるユーティリティ関数があります
– ocl::haveOpenCL()

• UMatの処理でOpenCL実装を使うかを知るた
めのユーティリティ関数があります
– ocl::useOpenCL()
ただし、#include <opencv2/core/ocl.hpp> を追加する必要あり!
UMatのTips
• ユーザによってはUMatの処理で勝手に
OpenCL側の処理に入って欲しくない場合もあ
るのでは?
– ocl::setUseOpenCL関数にtrue/falseを指定すること
でUMatでOpenCLを使う/使わないを決められます。

ただし、#include <opencv2/core/ocl.hpp> を追加する必要あり!
まとめ
• OpenCV 3.0あたりからUMatというデータ構造が追
加される予定
• UMatを使うとCPU/OpenCLの実装コードを共通化で
きる
• UMatを使った実装を行うとき、CPUモードでアルゴリ
ズムを検証してから、OpenCLモードに切り替えるの
も容易そう
• 「UMatのドキュメントはまだ無い」(※2013/11/29時
点)
• 正式発表を楽しみに待ちましょう!
おわり

Más contenido relacionado

La actualidad más candente

MediaPipeの紹介
MediaPipeの紹介MediaPipeの紹介
MediaPipeの紹介emakryo
 
SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用SSII
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門Norishige Fukushima
 
PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説弘毅 露崎
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうRyuji Tsutsui
 
【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fields【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fieldscvpaper. challenge
 
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜Hideki Takase
 
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成Hiroshi Yamaguchi
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使うKazuhiro Suga
 
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日Kitsukawa Yuki
 
[DL輪読会]YOLO9000: Better, Faster, Stronger
[DL輪読会]YOLO9000: Better, Faster, Stronger[DL輪読会]YOLO9000: Better, Faster, Stronger
[DL輪読会]YOLO9000: Better, Faster, StrongerDeep Learning JP
 
画像局所特徴量と特定物体認識 - SIFTと最近のアプローチ -
画像局所特徴量と特定物体認識 - SIFTと最近のアプローチ -画像局所特徴量と特定物体認識 - SIFTと最近のアプローチ -
画像局所特徴量と特定物体認識 - SIFTと最近のアプローチ -MPRG_Chubu_University
 
強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習Eiji Uchibe
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門Fixstars Corporation
 

La actualidad más candente (20)

CVPR 2020 報告
CVPR 2020 報告CVPR 2020 報告
CVPR 2020 報告
 
MediaPipeの紹介
MediaPipeの紹介MediaPipeの紹介
MediaPipeの紹介
 
SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
画像処理の高性能計算
画像処理の高性能計算画像処理の高性能計算
画像処理の高性能計算
 
UnityとROSの連携について
UnityとROSの連携についてUnityとROSの連携について
UnityとROSの連携について
 
PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fields【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fields
 
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
 
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
 
G2o
G2oG2o
G2o
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
[DL輪読会]YOLO9000: Better, Faster, Stronger
[DL輪読会]YOLO9000: Better, Faster, Stronger[DL輪読会]YOLO9000: Better, Faster, Stronger
[DL輪読会]YOLO9000: Better, Faster, Stronger
 
画像局所特徴量と特定物体認識 - SIFTと最近のアプローチ -
画像局所特徴量と特定物体認識 - SIFTと最近のアプローチ -画像局所特徴量と特定物体認識 - SIFTと最近のアプローチ -
画像局所特徴量と特定物体認識 - SIFTと最近のアプローチ -
 
強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
 

Destacado

【関東GPGPU勉強会#4】GTX 1080でComputer Vision アルゴリズムを色々動かしてみる
【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる
【関東GPGPU勉強会#4】GTX 1080でComputer Vision アルゴリズムを色々動かしてみるYasuhiro Yoshimura
 
OpenCVを用いた画像処理入門
OpenCVを用いた画像処理入門OpenCVを用いた画像処理入門
OpenCVを用いた画像処理入門uranishi
 
ステレオカメラ作成の道
ステレオカメラ作成の道ステレオカメラ作成の道
ステレオカメラ作成の道ytanno
 
130329 04
130329 04130329 04
130329 04openrtm
 
NuGetの社内利用のススメ
NuGetの社内利用のススメNuGetの社内利用のススメ
NuGetの社内利用のススメNarami Kiyokura
 
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境智啓 出川
 
tf,tf2完全理解
tf,tf2完全理解tf,tf2完全理解
tf,tf2完全理解Koji Terada
 
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみたYasuhiro Yoshimura
 
PythonによるCVアルゴリズム実装
PythonによるCVアルゴリズム実装PythonによるCVアルゴリズム実装
PythonによるCVアルゴリズム実装Hirokatsu Kataoka
 
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量takaya imai
 
有名論文から学ぶディープラーニング 2016.03.25
有名論文から学ぶディープラーニング 2016.03.25有名論文から学ぶディープラーニング 2016.03.25
有名論文から学ぶディープラーニング 2016.03.25Minoru Chikamune
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門NVIDIA Japan
 
C#, C/CLI と CUDAによる画像処理ことはじめ
C#, C/CLI と CUDAによる画像処理ことはじめC#, C/CLI と CUDAによる画像処理ことはじめ
C#, C/CLI と CUDAによる画像処理ことはじめNVIDIA Japan
 
フーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組みフーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組みyuichi takeda
 
SSD: Single Shot MultiBox Detector (ECCV2016)
SSD: Single Shot MultiBox Detector (ECCV2016)SSD: Single Shot MultiBox Detector (ECCV2016)
SSD: Single Shot MultiBox Detector (ECCV2016)Takanori Ogata
 

Destacado (17)

【関東GPGPU勉強会#4】GTX 1080でComputer Vision アルゴリズムを色々動かしてみる
【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる
【関東GPGPU勉強会#4】GTX 1080でComputer Vision アルゴリズムを色々動かしてみる
 
OpenCVを用いた画像処理入門
OpenCVを用いた画像処理入門OpenCVを用いた画像処理入門
OpenCVを用いた画像処理入門
 
ステレオカメラ作成の道
ステレオカメラ作成の道ステレオカメラ作成の道
ステレオカメラ作成の道
 
130329 04
130329 04130329 04
130329 04
 
NuGetの社内利用のススメ
NuGetの社内利用のススメNuGetの社内利用のススメ
NuGetの社内利用のススメ
 
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
 
tf,tf2完全理解
tf,tf2完全理解tf,tf2完全理解
tf,tf2完全理解
 
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
 
PythonによるCVアルゴリズム実装
PythonによるCVアルゴリズム実装PythonによるCVアルゴリズム実装
PythonによるCVアルゴリズム実装
 
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
 
有名論文から学ぶディープラーニング 2016.03.25
有名論文から学ぶディープラーニング 2016.03.25有名論文から学ぶディープラーニング 2016.03.25
有名論文から学ぶディープラーニング 2016.03.25
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門
 
C#, C/CLI と CUDAによる画像処理ことはじめ
C#, C/CLI と CUDAによる画像処理ことはじめC#, C/CLI と CUDAによる画像処理ことはじめ
C#, C/CLI と CUDAによる画像処理ことはじめ
 
フーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組みフーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組み
 
SSD: Single Shot MultiBox Detector (ECCV2016)
SSD: Single Shot MultiBox Detector (ECCV2016)SSD: Single Shot MultiBox Detector (ECCV2016)
SSD: Single Shot MultiBox Detector (ECCV2016)
 
OpenCV 3.0 on iOS
OpenCV 3.0 on iOSOpenCV 3.0 on iOS
OpenCV 3.0 on iOS
 
PyCharm入門
PyCharm入門PyCharm入門
PyCharm入門
 

Similar a 【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう

20160728 hyperscale #03
20160728 hyperscale #0320160728 hyperscale #03
20160728 hyperscale #03ManaMurakami1
 
【第27回コンピュータビジョン勉強会@関東】OpenCV 便利Tips紹介
【第27回コンピュータビジョン勉強会@関東】OpenCV 便利Tips紹介【第27回コンピュータビジョン勉強会@関東】OpenCV 便利Tips紹介
【第27回コンピュータビジョン勉強会@関東】OpenCV 便利Tips紹介Yasuhiro Yoshimura
 
オープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリオープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリ陽平 山口
 
もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…Yasumasa Suenaga
 
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜Megagon Labs
 
OpenCLに触れてみよう
OpenCLに触れてみようOpenCLに触れてみよう
OpenCLに触れてみようYou&I
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!Masaki Muranaka
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』H2O Space. Co., Ltd.
 
画像処理でのPythonの利用
画像処理でのPythonの利用画像処理でのPythonの利用
画像処理でのPythonの利用Yasutomo Kawanishi
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 
Javaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiJavaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiKen'ichi Sakiyama
 
OCaml でデータ分析
OCaml でデータ分析OCaml でデータ分析
OCaml でデータ分析Akinori Abe
 
OSC2013 Tokyo/Spring JOSUG
OSC2013 Tokyo/Spring JOSUGOSC2013 Tokyo/Spring JOSUG
OSC2013 Tokyo/Spring JOSUGHideki Saito
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
NodeにしましょうYuzo Hebishima
 
Inside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfesInside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfesTakeshi Komiya
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, CodereadingHiro Yoshioka
 
OpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjugOpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjugYuji Kubota
 
20150227 イタンジプログラミング講座テキスト第4回
20150227 イタンジプログラミング講座テキスト第4回20150227 イタンジプログラミング講座テキスト第4回
20150227 イタンジプログラミング講座テキスト第4回Yusuke Yokozawa
 

Similar a 【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう (20)

20160728 hyperscale #03
20160728 hyperscale #0320160728 hyperscale #03
20160728 hyperscale #03
 
【第27回コンピュータビジョン勉強会@関東】OpenCV 便利Tips紹介
【第27回コンピュータビジョン勉強会@関東】OpenCV 便利Tips紹介【第27回コンピュータビジョン勉強会@関東】OpenCV 便利Tips紹介
【第27回コンピュータビジョン勉強会@関東】OpenCV 便利Tips紹介
 
Open modeler
Open modelerOpen modeler
Open modeler
 
オープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリオープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリ
 
もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…
 
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
 
OpenCLに触れてみよう
OpenCLに触れてみようOpenCLに触れてみよう
OpenCLに触れてみよう
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
 
画像処理でのPythonの利用
画像処理でのPythonの利用画像処理でのPythonの利用
画像処理でのPythonの利用
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
Javaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiJavaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapi
 
OCaml でデータ分析
OCaml でデータ分析OCaml でデータ分析
OCaml でデータ分析
 
OSC2013 Tokyo/Spring JOSUG
OSC2013 Tokyo/Spring JOSUGOSC2013 Tokyo/Spring JOSUG
OSC2013 Tokyo/Spring JOSUG
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
Nodeにしましょう
 
Inside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfesInside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfes
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
 
OpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjugOpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjug
 
Driverについて
DriverについてDriverについて
Driverについて
 
20150227 イタンジプログラミング講座テキスト第4回
20150227 イタンジプログラミング講座テキスト第4回20150227 イタンジプログラミング講座テキスト第4回
20150227 イタンジプログラミング講座テキスト第4回
 

【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう