Submit Search
vImageのススメ(改訂版)
9 likes
6,375 views
Shuichi Tsutsumi
1 of 30
Download now
Downloaded 25 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
More Related Content
PDF
Chemistry Investigatory Project
Nishant Jha
DOCX
KV Banswara Chemistry investigatory project
Khushal Mehta
PDF
OpenFOAMにおける混相流計算
takuyayamamoto1800
PDF
Chemistry investigatory project for class 12
jha1010
PDF
QUALITATIVE ANALYSIS OF DIFFERENT BRANDS OF COLD DRINKS AVAILABLE IN MARKET
Nishaanth Zurc
PPTX
Tema 1.1 partes y conceptos franchising for dummies 6 slides
Luis Espinosa
PDF
シェル芸初心者によるシェル芸入門 (修正版)
icchy
PPTX
Chemistry investigatory project
Heet Patel
Chemistry Investigatory Project
Nishant Jha
KV Banswara Chemistry investigatory project
Khushal Mehta
OpenFOAMにおける混相流計算
takuyayamamoto1800
Chemistry investigatory project for class 12
jha1010
QUALITATIVE ANALYSIS OF DIFFERENT BRANDS OF COLD DRINKS AVAILABLE IN MARKET
Nishaanth Zurc
Tema 1.1 partes y conceptos franchising for dummies 6 slides
Luis Espinosa
シェル芸初心者によるシェル芸入門 (修正版)
icchy
Chemistry investigatory project
Heet Patel
Viewers also liked
(10)
PDF
サーバーからiOSアプリを変更する
toyship
PDF
OpenCV 3.0 on iOS
Shuichi Tsutsumi
KEY
OpenCVの基礎
領一 和泉田
PDF
セクシー女優で学ぶ画像分類入門
Takami Sato
PDF
OpenCVをAndroidで動かしてみた
徹 上野山
PDF
組合せ最適化入門:線形計画から整数計画まで
Shunji Umetani
PDF
最適化超入門
Takami Sato
PDF
マルチコアを用いた画像処理
Norishige Fukushima
PPTX
OpenCVを用いた画像処理入門
uranishi
PPTX
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
サーバーからiOSアプリを変更する
toyship
OpenCV 3.0 on iOS
Shuichi Tsutsumi
OpenCVの基礎
領一 和泉田
セクシー女優で学ぶ画像分類入門
Takami Sato
OpenCVをAndroidで動かしてみた
徹 上野山
組合せ最適化入門:線形計画から整数計画まで
Shunji Umetani
最適化超入門
Takami Sato
マルチコアを用いた画像処理
Norishige Fukushima
OpenCVを用いた画像処理入門
uranishi
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
Ad
Similar to vImageのススメ(改訂版)
(20)
PDF
vImageのススメ
Shuichi Tsutsumi
PDF
OpenCV4Androidで画像処理アプリのススメ
Masaki Otsuki
PPTX
Androidで画像処理リベンジ
Daisuke Takai
PDF
【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる
Yasuhiro Yoshimura
PDF
Halide による画像処理プログラミング入門
Fixstars Corporation
PDF
IbisPaintのOpenGLES2.0
Eiji Kamiya
PDF
OpenCVの拡張ユーティリティ関数群
Norishige Fukushima
PDF
コンピュータビジョンで作る未来の栽培技術POL共催セミナー_20220527
ssuser5ec200
PDF
OpenCVの入り口
cct-inc
PDF
PCL
Masafumi Noda
PDF
Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!
Saya Katafuchi
PDF
OpenCVで作るスタンプAR
Takashi Yoshinaga
PDF
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Atsushi Tadokoro
PDF
ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)
Takashi Yoshinaga
KEY
GTC2011 Japan
Takuro Iizuka
PPTX
Shadow gunのサンプルから学べるモバイル最適化
Katsutoshi Makino
PDF
CG 論文講読会 2013/2/12 "A reconstruction filter for plausible motion blur"
Ryo Suzuki
PPTX
画像処理の高性能計算
Norishige Fukushima
PDF
openFrameworks Workshop in Kanazawa v001
Teruaki Tsubokura
PDF
オープンソースで作るスマホ文字認識アプリ
陽平 山口
vImageのススメ
Shuichi Tsutsumi
OpenCV4Androidで画像処理アプリのススメ
Masaki Otsuki
Androidで画像処理リベンジ
Daisuke Takai
【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる
Yasuhiro Yoshimura
Halide による画像処理プログラミング入門
Fixstars Corporation
IbisPaintのOpenGLES2.0
Eiji Kamiya
OpenCVの拡張ユーティリティ関数群
Norishige Fukushima
コンピュータビジョンで作る未来の栽培技術POL共催セミナー_20220527
ssuser5ec200
OpenCVの入り口
cct-inc
PCL
Masafumi Noda
Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!
Saya Katafuchi
OpenCVで作るスタンプAR
Takashi Yoshinaga
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Atsushi Tadokoro
ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)
Takashi Yoshinaga
GTC2011 Japan
Takuro Iizuka
Shadow gunのサンプルから学べるモバイル最適化
Katsutoshi Makino
CG 論文講読会 2013/2/12 "A reconstruction filter for plausible motion blur"
Ryo Suzuki
画像処理の高性能計算
Norishige Fukushima
openFrameworks Workshop in Kanazawa v001
Teruaki Tsubokura
オープンソースで作るスマホ文字認識アプリ
陽平 山口
Ad
More from Shuichi Tsutsumi
(20)
PDF
Core MLのアップデートを3倍楽しむ方法 #wwdctokyo
Shuichi Tsutsumi
PDF
エンジニアという仕事を楽しみ続けるためのキャリア戦略
Shuichi Tsutsumi
PDF
Depth in Depth #iOSDC
Shuichi Tsutsumi
PDF
UIImageView vs Metal [日本語版] #tryswiftconf
Shuichi Tsutsumi
PDF
UIImageView vs Metal #tryswiftconf
Shuichi Tsutsumi
PDF
飛び道具ではないMetal #iOSDC
Shuichi Tsutsumi
PDF
Deep Learning on iOS #360iDev
Shuichi Tsutsumi
PDF
Client-Side Deep Learning
Shuichi Tsutsumi
PDF
Building iOS apps using "Bluetooth Low Energy"
Shuichi Tsutsumi
PDF
Practical Core Bluetooth in IoT & Wearable projects @ AltConf 2016
Shuichi Tsutsumi
PDF
Practical Core Bluetooth in IoT & Wearable projects @ UIKonf 2016
Shuichi Tsutsumi
PDF
オープンソースエコシステム #demodaytokyo
Shuichi Tsutsumi
PDF
Core Image Tips & Tricks in iOS 9
Shuichi Tsutsumi
PDF
Core Graphics on watchOS 2
Shuichi Tsutsumi
PDF
Audio Unit Extensions 〜オーディオエフェクトのアプリ間共有〜
Shuichi Tsutsumi
PDF
iOS 9 の新機能 Core Image 編
Shuichi Tsutsumi
PDF
UI/UX に影響の大きい watchOS 2 の新機能 3つ
Shuichi Tsutsumi
PDF
watchOS 2 新機能の細かい話
Shuichi Tsutsumi
PDF
Apple Watch 間通信
Shuichi Tsutsumi
PDF
殺しても死なないアプリ 〜Core Bluetooth の「状態の保存と復元」機能〜
Shuichi Tsutsumi
Core MLのアップデートを3倍楽しむ方法 #wwdctokyo
Shuichi Tsutsumi
エンジニアという仕事を楽しみ続けるためのキャリア戦略
Shuichi Tsutsumi
Depth in Depth #iOSDC
Shuichi Tsutsumi
UIImageView vs Metal [日本語版] #tryswiftconf
Shuichi Tsutsumi
UIImageView vs Metal #tryswiftconf
Shuichi Tsutsumi
飛び道具ではないMetal #iOSDC
Shuichi Tsutsumi
Deep Learning on iOS #360iDev
Shuichi Tsutsumi
Client-Side Deep Learning
Shuichi Tsutsumi
Building iOS apps using "Bluetooth Low Energy"
Shuichi Tsutsumi
Practical Core Bluetooth in IoT & Wearable projects @ AltConf 2016
Shuichi Tsutsumi
Practical Core Bluetooth in IoT & Wearable projects @ UIKonf 2016
Shuichi Tsutsumi
オープンソースエコシステム #demodaytokyo
Shuichi Tsutsumi
Core Image Tips & Tricks in iOS 9
Shuichi Tsutsumi
Core Graphics on watchOS 2
Shuichi Tsutsumi
Audio Unit Extensions 〜オーディオエフェクトのアプリ間共有〜
Shuichi Tsutsumi
iOS 9 の新機能 Core Image 編
Shuichi Tsutsumi
UI/UX に影響の大きい watchOS 2 の新機能 3つ
Shuichi Tsutsumi
watchOS 2 新機能の細かい話
Shuichi Tsutsumi
Apple Watch 間通信
Shuichi Tsutsumi
殺しても死なないアプリ 〜Core Bluetooth の「状態の保存と復元」機能〜
Shuichi Tsutsumi
vImageのススメ(改訂版)
1.
vImageのススメ
(改訂版) @shu223 1
2.
自己紹介 • 面白法人カヤック勤務 • Twitter
@shu223 • Blog 『Over&Outその後』 2
3.
最近つくったアプリ タップ忍者 モンスターを集めてまいれ!2
モンスターを集めてまいれ! 3
4.
アジェンダ • vImageとは? • 何がいいの? •
使用例 • その他諸々 4
5.
vImageとは? • Accelerate.framework内のライブラリ • iOSデバイスのハードウェア向けに最適化
されていて高速 • 畳み込みや幾何変換,ヒストグラム計算 などの画像処理系の関数をまとめたもの で,iOS5から利用可能 5
6.
何がいいの? • シンプルに書ける! • 速い! •
省電力! 6
7.
畳み込み演算 • 各種画像処理のコアとなる 処理 •
カーネルサイズと画素数に 応じて処理量が指数関数的 に増大する カーネルサイズ7x7、 解像度2448x3264の場合、 演算回数は3億9152万回! 7
8.
何がいいの? •シンプルに書ける! • 速い! • 省電力!
8
9.
シンプルに書ける!
1/2 • vImageを利用しない畳み込み演算のコード for (i=0; i<imageHeight; i++) { for (j=0; j<imageWidth; j++) { int accumulator = 0; for (ik=0; jk<kernelHeight; ik++) { for (jk=0; jk<kernelWidth; jk++) { accumulator += kernel[k][l] * src[i+ik-kernelHeight/2][j+jk-kernelWidth/2]; } } dst[i][j] = accumulator; } } •このままだとものすごく遅い! •実際には、端部の処理とかオーバーフローの処理とかも必要 •ちゃんと書くと数百行に!! 9
10.
シンプルに書ける!
2/2 • vImageを利用した畳み込み演算のコード vImageConvolve_ARGB8888(source, dest, NULL, 0, 0, kernel, kernelHeight, kernelWidth, divisor, NULL, flags ); •コードがシンプルに! •もちろん端部処理とかオーバーフローの処理は内部で やってくれてる 10
11.
何がいいの? • シンプルに書ける! •速い! • 省電力!
11
12.
14倍高速!!
12
13.
何がいいの? • シンプルに書ける! • 速い! •省電力!
13
14.
90%の節電 !!
14
15.
vImageの使い方 • Accelerateフレームワークをプロジェクトに追加し、 Accelerate.hをインポートすればOK •
とりあえずvImageConvolve_ARGB8888() ひとつ で色々できる vImageConvolve_ARGB8888(source, dest, NULL, 0, 0, kernel, kernelHeight, kernelWidth, divisor, NULL, flags ); 第5引数の kernel に渡す配列によって様々なフィル タを実現できる 15
16.
vImageConvolve使用例
ブラー static int16_t gaussianblur_kernel[25] = { ! 1, 4, 6, 4, 1, ! 4, 16, 24, 16, 4, ! 6, 24, 36, 24, 6, ! 4, 16, 24, 16, 4, ! 1, 4, 6, 4, 1 }; 16
17.
vImageConvolve使用例
エンボス static int16_t emboss_kernel[9] = { ! -2, 0, 0, ! 0, 1, 0, ! 0, 0, 2 }; 17
18.
vImageConvolve使用例
先鋭化 static int16_t sharpen_kernel[9] = { ! -1, -1, -1, ! -1, 9, -1, ! -1, -1, -1 }; 18
19.
回転 vImageRotate_ARGB8888(&src, &dest,
NULL, radians, bgColor, kvImageBackgroundColorFill); 19
20.
膨張 vImageDilate_ARGB8888(&src, &dest,
0, 0, morphological_kernel, 3, 3, kvImageCopyInPlace); 20
21.
収縮 vImageErode_ARGB8888(&src, &dest,
0, 0, morphological_kernel, 3, 3, kvImageCopyInPlace); 21
22.
ヒストグラム均一化 vImageEqualization_ARGB8888(&src, &dest,
kvImageNoFlags); 22
23.
サンプルコード • https://github.com/shu223/
vImageDemo • vImageで実現可能な処理を UIImageのカテゴリとして実装して あります • コード例 imageView.image = [image emboss]; 23
24.
サンプル適用例
24
25.
サンプル適用例
25
26.
vs CoreImage /
OpenCV vImage CoreImage OpenCV 導入しやすさ ◎ ◎ 機能の豊富さ △ ? ◎ 処理速度 要検証(※) 情報量 △ ○ (※) ・CoreImageもvImageもハードウェアアクセラレーションを行っているはず。 ・OpenCVはNVidia CUDAランタイムを利用しているのでNVidiaのGPUが必要 (http://opencv.jp/opencv-2svn/cpp/gpu_gpu_module_introduction.html) ・速度面でいえばシェーダで書いてOpenGLESで処理する場合との比較も必要 26
27.
ドキュメント • WWDC2011のセッションビデオ&スライド •
概要を知るには一番わかりやすい • vImage Programming Guide • 処理前後のサンプル画像や、フィルタ配列の図も あってわかりやすい • vImageリファレンス • たくさんあるので必要に応じてどうぞ・・・ • Conversion / Convolution / Decompression / Geometry / Histogram / Morphology / Transform etc... 27
28.
vImageを使用している 画像処理ライブラリ •
NYXImagesKit • vImage, vDSP, CoreImageを併用 • gihyo.jpにて連載中の第3回記事で紹介しました • 『iOSアプリ開発で使いこなしたいとっておきのOSS』 • fladdictさんその節はありがとうございました 28
29.
まとめ iOS5以降で画像処理やる ならvImageの使用を検討 してみるといいかもしれま せん!
29
30.
ご清聴ありがとうございました
30
Download