SlideShare a Scribd company logo
1 of 19
Download to read offline
深層学習ネットワークのモバイル実装
情報学専攻 メディア情報学プログラム
柳井研究室
1630081 丹野良介
深層学習の利用方法
1
背景
学習
学習タスク
推論タスク
推論
エンジン
教師データ
学習済
モデル
炒飯: 0.2
ラーメン: 0.7
味噌汁: 0.1
・多くの計算リソースが必須
・GPU利用
・比較的能力が低くてもOK
・CPUでOK
モバイル上で深層学習を扱う上での技術的知見や応用例を
検討する
2
目的
学習
学習タスク
推論タスク
推論
エンジン
教師データ
学習済
モデル
炒飯: 0.2
ラーメン: 0.7
味噌汁: 0.1
・多くの計算リソースが必須
・GPU利用
・比較的能力が低くてもOK
・CPUでOK
フレームワーク自体が iOS 上で動くように設計されてい
る.または,学習済みモデルを利用するラッパーが用意さ
れている.
例:Caffe for iOS, TensorFlow for iOS, OpenCV
最適化が不十分なためパフォーマンス低い
Caffe2C(最適化)
OpenCV DNN(非最適化)
16倍ほど遅い
3
深層学習iOSアプリ実装法1
Caffe2C OpenCV DNN
AlexNet
iPhone7Plus 106.9 1663.8
AlexNetの推論結果[ms]
右図)AlexNet
モバイル上で動作可能にする各種コンバータが存在する.
または,Appleが提供する Neural Network API を利用す
る.
例:MPS, BNNS, CoreML
2017年9月20日に一般公開(CoreML)
4
深層学習iOSアプリ実装法2
GPU CPU
MPS BNNS
Vision NLP
CoreML
Your App
iOS11
学習済
モデル
Core ML Your AppCore ML model
「coremltools」によりCoreMLで
利用可能な.mlmodelに変換
deploy
学習済みモデルファイルをiOS上で使えるように変換し,
推論部分を独自で実装する.
例:オリジナル順伝搬ライブラリを利用
5
深層学習iOSアプリ実装法3
学習
済モ
デル
Core ML Your AppCore ML model
deploy
自分で実装する必要
・深層学習モデルコンバータ
[Tanno et al, MUSICAL, 2016]
・CNNの効率的なモバイル実装
[Keiji et al, ACMMM, 2016]
オリジナル
順伝搬ライブラリ
1. iOS上でそのまま学習済みモデルを利用
6
実装法まとめ
学習済
モデル
Your App
deploy
1. iOS上でそのまま学習済みモデルを利用
2. 学習済みモデルを変換して提供されてる推論APIを利用
1. 2017年9月20日に一般公開(CoreML)
7
実装法まとめ
学習済
モデル
Core ML Your AppCore ML model
deploy
1. iOS上でそのまま学習済みモデルを利用
2. 学習済みモデルを変換して提供されてる推論APIを利用
1. 2017年9月20日に一般公開(CoreML)
3. 実装法2を独自で用意(オリジナル順伝搬ライブラリ)
8
実装法まとめ
学習済
モデル
Core ML Your AppCore ML model
deploy
自分で実装する必要
9
実行速度ベンチマーク(iPhone8Plus)
[ms]
オリジナル
順伝搬ライブラリ
CoreML
CoreML vs. オリジナル順伝搬ライブラリ
GPU vs. CPU only
同じネットワークでも
約1.5倍高速に
画像認識
101種類食事認識「DeepFoodCam」(卒研)
[International Workshop on Multimedia Assisted Dietary Management
(MADIMA) (2016)]
11種類深層学習モデルベンチマーク
物体検出
食事検出アプリ(YOLOv2)
画像変換
マルチスタイル変換「DeepStyleCam」(修士1年)
[International MultiMedia Modeling Conference (MMM)(2016)]
マテリアル変換(CycleGAN)
文字隠蔽ネットワーク(九州大学内田研とのコラボ)
領域分割(pix2pix)
線画着色(pix2pix)
複合系
食事検出+カロリー推定「DeepCalorieCam」(修士2年前期)
[International Workshop on Multimedia Assisted Dietary Management
(MADIMA) (2017)]
10
アプリ実装例
情景画像中の文字を隠蔽するネットワーク
Input: 文字有 -> Output: 文字無
U-Netを利用
画像サイズが同じものを深い層から段階的に統合
局所的特徴を保持したまま,全体的位置情報の復元が可能
11
文字隠蔽ネットワーク
Concatenate
Down-Sampling
Up-Sampling
Input Output
[Nakamura et al, ICDAR, 2017]
12
文字隠蔽ネットワーク(デモ動画)
13
マルチスタイル変換
Neural Style Transfer[Gatys et al, 2015]
画像の形状を保持したまま画風を変換
順伝搬及び誤差逆伝搬を複数回繰り返す
GPUで画像の生成に数十秒程度
Fast Style Transfer[ECCV 2016][1]
特定の画風変換を順伝搬で行うCNNを学習
非常に高速に画像を変換可能
1つのモデルで単一の画風変換のみ学習
消費メモリの増大,学習に時間要
・ [1]の拡張
・ 単一モデルで
複数のスタイルを
任意重みで合成
14
マルチスタイル変換(デモ動画)
Tanno, R. and Yanai, K.: DeepStyleCam: A Real-time Style Transfer App on iOS,
Proc. of International MultiMedia Modeling Conference (MMM) (2017)
物体検出とカロリー推定を組み合わせたアプリ
物体検出:YOLOv2[Redmon et al, CVPR, 2017]
カロリー推定:Multi-task CNN[Ege et al, MVA, 2017]
15
食事検出+カロリー推定
食事検出
カロリー推定
1. YOLOv2で食事検出
2. 検出された各食事領域のバウンディングボックス情報か
ら画像をクロップ
3. クロップした各食事画像をカロリー値を推定するCNNの
入力とする
16
食事検出+カロリー推定(処理フロー)
YOLOv2
Food Detection
Calorie Estimation
Multi-task
CNN
518 kcal
スパゲッティ
17
食事検出+カロリー推定(デモ動画)
Tanno, R., Ege, T. and Yanai, K.: DeepCalorieCam: An iOS App for Dish
Detection and Calorie Estimation, Proc. of International Workshop on
Multimedia Assisted Dietary Management (MADIMA) (2017)
深層学習ネットワークをモバイルに実装
技術的知見や応用例を検討
CoreMLとオリジナル順伝搬ライブラリとの比較
実行速度ベンチマーク
実装例3種類の紹介
今後の課題
深層学習+AR(拡張現実)を融合したカロリー推定アプリの実現
18
まとめ

More Related Content

Similar to 深層学習ネットワークのモバイル実装

機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)
機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)
機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)Yaboo Oyabu
 
2012 1203-researchers-cafe
2012 1203-researchers-cafe2012 1203-researchers-cafe
2012 1203-researchers-cafeToshiya Komoda
 
Kubeflowで何ができて何ができないのか #DEvFest18
Kubeflowで何ができて何ができないのか #DEvFest18Kubeflowで何ができて何ができないのか #DEvFest18
Kubeflowで何ができて何ができないのか #DEvFest18Shunya Ueta
 
Azure Machine Learning Build 2020
Azure Machine Learning Build 2020Azure Machine Learning Build 2020
Azure Machine Learning Build 2020Keita Onabuta
 
Jenkinsを使おうよ
Jenkinsを使おうよJenkinsを使おうよ
Jenkinsを使おうよYohei Oda
 
第8回 福岡西区勉強会
第8回 福岡西区勉強会第8回 福岡西区勉強会
第8回 福岡西区勉強会Shinya Kinoshita
 
ディープラーニングイメージで構築する快適・高速な機械学習環境
ディープラーニングイメージで構築する快適・高速な機械学習環境ディープラーニングイメージで構築する快適・高速な機械学習環境
ディープラーニングイメージで構築する快適・高速な機械学習環境Yaboo Oyabu
 
ミニ四駆でPython on Windows Azure
ミニ四駆でPython on Windows Azureミニ四駆でPython on Windows Azure
ミニ四駆でPython on Windows AzureTakahiro Fujiwara
 
Jupyterで運用やってみた
Jupyterで運用やってみたJupyterで運用やってみた
Jupyterで運用やってみたSatoshi Yazawa
 
Qiita x Microsoft - 機械学習セミナー Microsoft AI Platform
Qiita x Microsoft - 機械学習セミナー Microsoft AI PlatformQiita x Microsoft - 機械学習セミナー Microsoft AI Platform
Qiita x Microsoft - 機械学習セミナー Microsoft AI PlatformDaiyu Hatakeyama
 
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜Megagon Labs
 
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保するDNA Data Bank of Japan center
 
Pythonの環境導入 2014年春季版
Pythonの環境導入 2014年春季版Pythonの環境導入 2014年春季版
Pythonの環境導入 2014年春季版Katsuhiro Morishita
 
20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術Preferred Networks
 
ゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' Meetupゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' Meetupgree_tech
 
ゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' Meetupゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' MeetupRyuichi Kubuki
 
Introduction of network analysis with Google Colaboratory -- Introduction of ...
Introduction of network analysis with Google Colaboratory -- Introduction of ...Introduction of network analysis with Google Colaboratory -- Introduction of ...
Introduction of network analysis with Google Colaboratory -- Introduction of ...tm1966
 
遺伝研スパコンの『ここが困った!』事例集と今後への提言
遺伝研スパコンの『ここが困った!』事例集と今後への提言遺伝研スパコンの『ここが困った!』事例集と今後への提言
遺伝研スパコンの『ここが困った!』事例集と今後への提言Masahiro Kasahara
 

Similar to 深層学習ネットワークのモバイル実装 (20)

機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)
機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)
機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)
 
2012 1203-researchers-cafe
2012 1203-researchers-cafe2012 1203-researchers-cafe
2012 1203-researchers-cafe
 
Google Product
Google ProductGoogle Product
Google Product
 
Kubeflowで何ができて何ができないのか #DEvFest18
Kubeflowで何ができて何ができないのか #DEvFest18Kubeflowで何ができて何ができないのか #DEvFest18
Kubeflowで何ができて何ができないのか #DEvFest18
 
Azure Machine Learning Build 2020
Azure Machine Learning Build 2020Azure Machine Learning Build 2020
Azure Machine Learning Build 2020
 
Jenkinsを使おうよ
Jenkinsを使おうよJenkinsを使おうよ
Jenkinsを使おうよ
 
第8回 福岡西区勉強会
第8回 福岡西区勉強会第8回 福岡西区勉強会
第8回 福岡西区勉強会
 
ディープラーニングイメージで構築する快適・高速な機械学習環境
ディープラーニングイメージで構築する快適・高速な機械学習環境ディープラーニングイメージで構築する快適・高速な機械学習環境
ディープラーニングイメージで構築する快適・高速な機械学習環境
 
ミニ四駆でPython on Windows Azure
ミニ四駆でPython on Windows Azureミニ四駆でPython on Windows Azure
ミニ四駆でPython on Windows Azure
 
July techfesta2014 f30
July techfesta2014 f30July techfesta2014 f30
July techfesta2014 f30
 
Jupyterで運用やってみた
Jupyterで運用やってみたJupyterで運用やってみた
Jupyterで運用やってみた
 
Qiita x Microsoft - 機械学習セミナー Microsoft AI Platform
Qiita x Microsoft - 機械学習セミナー Microsoft AI PlatformQiita x Microsoft - 機械学習セミナー Microsoft AI Platform
Qiita x Microsoft - 機械学習セミナー Microsoft AI Platform
 
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
 
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
 
Pythonの環境導入 2014年春季版
Pythonの環境導入 2014年春季版Pythonの環境導入 2014年春季版
Pythonの環境導入 2014年春季版
 
20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術
 
ゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' Meetupゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' Meetup
 
ゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' Meetupゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' Meetup
 
Introduction of network analysis with Google Colaboratory -- Introduction of ...
Introduction of network analysis with Google Colaboratory -- Introduction of ...Introduction of network analysis with Google Colaboratory -- Introduction of ...
Introduction of network analysis with Google Colaboratory -- Introduction of ...
 
遺伝研スパコンの『ここが困った!』事例集と今後への提言
遺伝研スパコンの『ここが困った!』事例集と今後への提言遺伝研スパコンの『ここが困った!』事例集と今後への提言
遺伝研スパコンの『ここが困った!』事例集と今後への提言
 

More from Ryosuke Tanno

【2017年度】勉強会資料_学習に関するテクニック
【2017年度】勉強会資料_学習に関するテクニック【2017年度】勉強会資料_学習に関するテクニック
【2017年度】勉強会資料_学習に関するテクニックRyosuke Tanno
 
【2016年度】勉強会資料_word2vec
【2016年度】勉強会資料_word2vec【2016年度】勉強会資料_word2vec
【2016年度】勉強会資料_word2vecRyosuke Tanno
 
【2016年度】勉強会資料_Chainer
【2016年度】勉強会資料_Chainer【2016年度】勉強会資料_Chainer
【2016年度】勉強会資料_ChainerRyosuke Tanno
 
ECCV2016, ACMMM2016参加報告
ECCV2016, ACMMM2016参加報告ECCV2016, ACMMM2016参加報告
ECCV2016, ACMMM2016参加報告Ryosuke Tanno
 
敵対的生成ネットワークによる食事画像の変換に関する研究
敵対的生成ネットワークによる食事画像の変換に関する研究敵対的生成ネットワークによる食事画像の変換に関する研究
敵対的生成ネットワークによる食事画像の変換に関する研究Ryosuke Tanno
 
第三回勉強会 Keras担当回
第三回勉強会 Keras担当回第三回勉強会 Keras担当回
第三回勉強会 Keras担当回Ryosuke Tanno
 
Deep Learning on the Mobile Devices
Deep Learning on the Mobile DevicesDeep Learning on the Mobile Devices
Deep Learning on the Mobile DevicesRyosuke Tanno
 
Introduction of Mobile CNN
Introduction of Mobile CNNIntroduction of Mobile CNN
Introduction of Mobile CNNRyosuke Tanno
 
複数スタイルの融合と 部分的適用を可能とする Multi-style Feed-forward Networkの提案
複数スタイルの融合と部分的適用を可能とするMulti-style Feed-forward Networkの提案複数スタイルの融合と部分的適用を可能とするMulti-style Feed-forward Networkの提案
複数スタイルの融合と 部分的適用を可能とする Multi-style Feed-forward Networkの提案Ryosuke Tanno
 
Caffe2C: A Framework for Easy Implementation of CNN-based Mobile Applications
Caffe2C: A Framework for Easy Implementation of CNN-based Mobile Applications Caffe2C: A Framework for Easy Implementation of CNN-based Mobile Applications
Caffe2C: A Framework for Easy Implementation of CNN-based Mobile Applications Ryosuke Tanno
 
Conditional CycleGANによる食事画像変換
Conditional CycleGANによる食事画像変換Conditional CycleGANによる食事画像変換
Conditional CycleGANによる食事画像変換Ryosuke Tanno
 
モバイルOS上での深層学習による 画像認識システムの実装と比較分析
モバイルOS上での深層学習による 画像認識システムの実装と比較分析モバイルOS上での深層学習による 画像認識システムの実装と比較分析
モバイルOS上での深層学習による 画像認識システムの実装と比較分析Ryosuke Tanno
 
AR DeepCalorieCam: AR表示型食事カロリー量推定システム
AR DeepCalorieCam: AR表示型食事カロリー量推定システムAR DeepCalorieCam: AR表示型食事カロリー量推定システム
AR DeepCalorieCam: AR表示型食事カロリー量推定システムRyosuke Tanno
 
CoreMLによるiOS深層学習アプリの実装と性能分析
CoreMLによるiOS深層学習アプリの実装と性能分析CoreMLによるiOS深層学習アプリの実装と性能分析
CoreMLによるiOS深層学習アプリの実装と性能分析Ryosuke Tanno
 
OpenCV DNN module vs. Ours method
OpenCV DNN module vs. Ours method OpenCV DNN module vs. Ours method
OpenCV DNN module vs. Ours method Ryosuke Tanno
 

More from Ryosuke Tanno (17)

【2017年度】勉強会資料_学習に関するテクニック
【2017年度】勉強会資料_学習に関するテクニック【2017年度】勉強会資料_学習に関するテクニック
【2017年度】勉強会資料_学習に関するテクニック
 
【2016年度】勉強会資料_word2vec
【2016年度】勉強会資料_word2vec【2016年度】勉強会資料_word2vec
【2016年度】勉強会資料_word2vec
 
【2016年度】勉強会資料_Chainer
【2016年度】勉強会資料_Chainer【2016年度】勉強会資料_Chainer
【2016年度】勉強会資料_Chainer
 
MMM2017参加報告
MMM2017参加報告MMM2017参加報告
MMM2017参加報告
 
ECCV2016, ACMMM2016参加報告
ECCV2016, ACMMM2016参加報告ECCV2016, ACMMM2016参加報告
ECCV2016, ACMMM2016参加報告
 
敵対的生成ネットワークによる食事画像の変換に関する研究
敵対的生成ネットワークによる食事画像の変換に関する研究敵対的生成ネットワークによる食事画像の変換に関する研究
敵対的生成ネットワークによる食事画像の変換に関する研究
 
研究紹介
研究紹介研究紹介
研究紹介
 
第三回勉強会 Keras担当回
第三回勉強会 Keras担当回第三回勉強会 Keras担当回
第三回勉強会 Keras担当回
 
Deep Learning on the Mobile Devices
Deep Learning on the Mobile DevicesDeep Learning on the Mobile Devices
Deep Learning on the Mobile Devices
 
Introduction of Mobile CNN
Introduction of Mobile CNNIntroduction of Mobile CNN
Introduction of Mobile CNN
 
複数スタイルの融合と 部分的適用を可能とする Multi-style Feed-forward Networkの提案
複数スタイルの融合と部分的適用を可能とするMulti-style Feed-forward Networkの提案複数スタイルの融合と部分的適用を可能とするMulti-style Feed-forward Networkの提案
複数スタイルの融合と 部分的適用を可能とする Multi-style Feed-forward Networkの提案
 
Caffe2C: A Framework for Easy Implementation of CNN-based Mobile Applications
Caffe2C: A Framework for Easy Implementation of CNN-based Mobile Applications Caffe2C: A Framework for Easy Implementation of CNN-based Mobile Applications
Caffe2C: A Framework for Easy Implementation of CNN-based Mobile Applications
 
Conditional CycleGANによる食事画像変換
Conditional CycleGANによる食事画像変換Conditional CycleGANによる食事画像変換
Conditional CycleGANによる食事画像変換
 
モバイルOS上での深層学習による 画像認識システムの実装と比較分析
モバイルOS上での深層学習による 画像認識システムの実装と比較分析モバイルOS上での深層学習による 画像認識システムの実装と比較分析
モバイルOS上での深層学習による 画像認識システムの実装と比較分析
 
AR DeepCalorieCam: AR表示型食事カロリー量推定システム
AR DeepCalorieCam: AR表示型食事カロリー量推定システムAR DeepCalorieCam: AR表示型食事カロリー量推定システム
AR DeepCalorieCam: AR表示型食事カロリー量推定システム
 
CoreMLによるiOS深層学習アプリの実装と性能分析
CoreMLによるiOS深層学習アプリの実装と性能分析CoreMLによるiOS深層学習アプリの実装と性能分析
CoreMLによるiOS深層学習アプリの実装と性能分析
 
OpenCV DNN module vs. Ours method
OpenCV DNN module vs. Ours method OpenCV DNN module vs. Ours method
OpenCV DNN module vs. Ours method
 

深層学習ネットワークのモバイル実装