SlideShare a Scribd company logo
1 of 36
Download to read offline
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時
点)
• 正式発表を楽しみに待ちましょう!
おわり

More Related Content

What's hot

PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
Yosuke Onoue
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
 

What's hot (20)

30分で分かる!OSの作り方
30分で分かる!OSの作り方30分で分かる!OSの作り方
30分で分かる!OSの作り方
 
【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning 画像×言語の大規模基盤モ...
【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning   画像×言語の大規模基盤モ...【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning   画像×言語の大規模基盤モ...
【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning 画像×言語の大規模基盤モ...
 
[DL輪読会]Attention Is All You Need
[DL輪読会]Attention Is All You Need[DL輪読会]Attention Is All You Need
[DL輪読会]Attention Is All You Need
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
2019年度チュートリアルBPE
2019年度チュートリアルBPE2019年度チュートリアルBPE
2019年度チュートリアルBPE
 
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
 
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
これからの Vision & Language ~ Acadexit した4つの理由
これからの Vision & Language ~ Acadexit した4つの理由これからの Vision & Language ~ Acadexit した4つの理由
これからの Vision & Language ~ Acadexit した4つの理由
 
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門までAttentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
 
マルチコアを用いた画像処理
マルチコアを用いた画像処理マルチコアを用いた画像処理
マルチコアを用いた画像処理
 
優れた研究論文の書き方―7つの提案
優れた研究論文の書き方―7つの提案優れた研究論文の書き方―7つの提案
優れた研究論文の書き方―7つの提案
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
 
Deep Learning による視覚×言語融合の最前線
Deep Learning による視覚×言語融合の最前線Deep Learning による視覚×言語融合の最前線
Deep Learning による視覚×言語融合の最前線
 
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
 
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
tf,tf2完全理解
tf,tf2完全理解tf,tf2完全理解
tf,tf2完全理解
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
 

Viewers also liked

130329 04
130329 04130329 04
130329 04
openrtm
 
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
智啓 出川
 
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
takaya imai
 

Viewers also liked (17)

画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
 
【関東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組込開発環境
 
【第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 to 【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう

もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…
Yasumasa Suenaga
 
画像処理でのPythonの利用
画像処理でのPythonの利用画像処理でのPythonの利用
画像処理でのPythonの利用
Yasutomo Kawanishi
 
Javaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiJavaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapi
Ken'ichi Sakiyama
 
Inside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfesInside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfes
Takeshi Komiya
 
Nodejuku01 ohtsu
Nodejuku01 ohtsuNodejuku01 ohtsu
Nodejuku01 ohtsu
Nanha Park
 

Similar to 【関東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でヘテロジニアスコアが使えたら…
 
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回
 
Nodejuku01 ohtsu
Nodejuku01 ohtsuNodejuku01 ohtsu
Nodejuku01 ohtsu
 

Recently uploaded

Recently uploaded (11)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

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