DeepXCam: CNNによる

DS-12

リアルタイムモバイル画像認識・変換アプリ群

電気通信大学 大学院情報理工学研究科 情報学専攻 丹野 良介, 柳井 啓司 機内モードOK
5. 認識性能と認識時間の比較

1. 研究概要
スマホで認識対象をかざすだけ!!

アプリの特徴・全処理アプリ内完結 (サーバ不要)
・マルチスレッド，高速フレーム
ｆワーク利用による高速化
・マルチスケールによる任意画像サ
ｆイズ対応
・必要メモリの大幅な削減(省メモリ化)
・各種IT機器への組込容易
例：101種類認識・認識時間は30ms台の高速認識・上位5位以内で93.5%の高精度認識

食事101種類認識性能 (5-fold CV)

x2
x

Top-5
95.2%
Top-1
78.8%

2. 提案内容
誰でも作れる高速・高精度な物体認識&変換iOSアプリ
我々の研究室で開発〜アプリ作成の一連の流れ〜
学習データを用意

Caffe(Chainer)で学習
Caffe2C(Chainer2C)でC言語コードを自動生成
アプリのGUI作成
高速認識(変換)エンジンに組込完成！

・Caffe2C / Chainer2C➖Caffe(Chainer)で学習したパラメータからモバイルで実行可能なC言語コードを自動生成
・高速認識(変換)エンジン➖マルチスレッド，高速フ
ｆｆレームワーク利用によるｆｆ高速化➖マルチスケールCNNによる
ｆｆ任意サイズの入力画像に対ｆｆ応➖画像サイズ調整による，認
ｆｆ識精度と実行速度のバラン
ｆｆス調整

学習データさえあれば，どんな認識アプリでも作成可能！

3. DeepXCam (認識版：2000, food, bird, etc.)
・DCNNの学習−モバイルの実装を考慮して，Network-In-Network(NIN)[1]を使用−パラメータ数とメモリの削減
パラメータ数
メモリ
分類率(Top-5)
Network In Network [1]・ コンボリューション層のみ
AlexNet・ 全結合がない
NIN(4L+BN)・ パラメータ数が大幅に少ない
・ 任意画像サイズ対応可能
NIN(5L+BN)

6200万

248MB

95.1%

550万

22MB

95.2%

1580万

63MB

96.2%

・2000種類(ImageNet+Foodカテゴリ)プレトレーニング
・UEC-Food(約1万枚)+非食事1万枚でファインチューニング
・畳込み層の高速化 ⇒ GEMMの高速化−画像の3次元配列を2次元配列に変換(Im2col)−BLAS(iOS: Accelerate Framework, Android: OpenBLAS)−NEON命令(同時に4つの32bit単精度浮動小数点のSIMD演算命令)−iOS: 2Core*4=8演算, Android: 4Core*4=16演算同時実行

認識対象
食事101種類
一般物体2000種類
鳥200種類
花17種類
犬100種類
オムライス5種類

Top-1
74.5%
39.8%
55.8%
93.5%
69.0%
84.4%

Top-5
93.5%
65.0%
80.2%
99.1%
91.6%

➖
➖

➖

➖

認識カテゴリ数を増やしても，処理時間はそのまま！

6. iOSとAndroidの特性分析
iOSとAndroidの認識時間の差異
NEON
BLAS
iOS
255[ms] 78[ms]Android 251[ms] 1652[ms]デバイスiPhone 6s
GALAXY Note 3

iOS:
NEON < BLAS

BLAS実装Accelerate
OpenBLAS

Android:
BLAS < NEON

認識時間と認識精度のTrade-off
認識時間

iPad Pro
iPhone SE
認識精度(top-5)

227x227
66.6[ms]
77.6[ms]
95.2%

200x200
49.7[ms]
56.0[ms]
95.1%

180x18044.0[ms]
50.2[ms]
94.1%

160x160
32.6[ms]
37.2[ms]
91.5%

iOS/Androidで最適な高速化手法
は異なる

4. DeepStyleCam (画像スタイル変換）• Fast Neural Style Transfer [2] をマルチスタイルに拡張．
• Neural style transferがfeed-forwardのみで高速で可能．
• TransferNet (画像変換ネットワーク)を，• 入力画像と出力画像のVGG19 conv3_3 activationが同一• 入力画像のgram matrixが style imageのgram matrixと同一となるように学習．
• １つのTransferNetが複数スタイルを学習．重ねあわせ可能．
• Deconvolutionは，Unpooling + convolution で実装．
short-cut

short-cut

short-cut

unpooling
conv_5,6 conv_6,7 conv_8,9
conv_4 3x3x128 3x3x128 3x3x128 conv_7
4x4x64
conv_4 4x4x128
stride=1/2 conv_8
4x4x64 stride=2
4x4x32
conv_3 stride=2
conv_10
stride=1/2
conv_1 4x4x32
5x5x3
conv_95x5x16 stride=2
4x4x16 stride=1
stride=1
stride=1/2

TransferNet

250x250 の場合，乗算回数1,303,800,800回(13億回)
パラメータ数1,250,835個 (125万個)

GEMM: generic

食事101
種類と認識時間
一般物体2000種類と78[ms] で認識時間にほとん
82[ms] ど差は無い➖

unpooling+ conv (st=1)
conv (st=1/2)

180ms (iPad Pro)
200ms (iPhone SE)

食事認識システム公開中！
現在，

iOS/Android/
Twitterの3種類

食事認識iOSアプリ−ダウンロード・デモ

http://foodcam.jp/

食事認識Androidアプリ−ダウンロード・デモ

http://foodcam.jp/

https://www.youtube.com/watch?v=em2xzqxSYEA[1] M. Lin, and Q. Chen, and S. Yan. Network In Network. Proc. of International Conference on Learning Representations, 2014.
[2] J. Johnson, A. Alahi, L. Fei-Fei: Perceptual Losses for Real-Time Style Transfer and Super-Resolution, arXiv:1603.08155, 2016.

食事認識bot@foodimg_bot宛に食事画像URLをtweet replyで認識結果が送られてきますDS-12

DeepXCam: CNNによるリアルタイムモバイル画像認識・変換アプリ群
電気通信大学 大学院情報理工学研究科 情報学専攻 丹野 良介, 柳井 啓司

1. DeepFoodCam

機内モードOK

4. DeepDogCamx2x・101種類食事認識アプリ(食事100種類+非食事)・CNN学習: 食事画像1万枚(UECFOOD-100)，
非食事画像1万枚(Twitter)

・犬100種類認識アプリ
・CNN学習: 4324枚(Stanford Dogs Dataset)

認識精度Top-1 Top-5
食事101種類 78.8% 95.2%

認識精度 Top-1 Top-5
犬100種類 69.0% 91.6%

2. Deep2000Cam

5. DeepFlowerCam

・一般物体2000種類認識アプリ(ILSVRC1000種+ImageNet食事1000種類)
・CNN学習: 210万枚(ILSVRC1000+ImageNet1000)

・花17種類認識アプリ
・CNN学習: 1クラス80枚(17 Category Flower Dataset)

認識精度Top-1 Top-5
一般物体2000種類 39.8% 65.0%

認識精度 Top-1 Top-5花17種類 93.5% 99.1%

3. DeepBirdCam

6.DeepOmeletCam

・鳥200種類認識アプリ
・CNN学習: 6033枚(Caltech-UCSD Birds 200)

認識精度 Top-1 Top-5
鳥200種類 55.8% 80.2%

・オムレツ5種類認識アプリ(文字，絵，模様，ソース，プレーン)
・CNN学習: 各1万枚(プレーンのみ2400枚)認識精度
Top-1 Top-5
オムレツ5種類 84.4% −7. DeepStyleCam

変換時間(250x250): 約180ms (iPad Pro)
・Neural Style Transfer(スタイル変換)
約200ms (iPhoneSE)−画像のコンテンツ(形状)を保持したまま，スタイル(テクスチャ)のみを変化