Upload
Download free for 30 days
Login
Submit Search
run Keras model on opencv
5 likes
13,924 views
Takuya Minagawa
第50回コンピュータビジョン勉強会@関東「CVで使えるツールLT大会2」発表資料です。
Technology
Related topics:
Computer Vision Insights
•
Deep Learning
Read more
1 of 18
Download now
Downloaded 36 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
More Related Content
PPTX
Variational Template Machine for Data-to-Text Generation
harmonylab
PPTX
【DL輪読会】Semi-Parametric Neural Image Synthesis
Deep Learning JP
PDF
三次元表現まとめ(深層学習を中心に)
Tomohiro Motoda
PDF
画像認識の初歩、SIFT,SURF特徴量
takaya imai
PDF
全力解説!Transformer
Arithmer Inc.
PDF
プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)
Toshihiko Yamasaki
PDF
ディープラーニングの最新動向
Preferred Networks
PDF
SSII2019TS: プロジェクタ・カメラシステムが変わる! ~時間同期の制御で広がる応用~
SSII
Variational Template Machine for Data-to-Text Generation
harmonylab
【DL輪読会】Semi-Parametric Neural Image Synthesis
Deep Learning JP
三次元表現まとめ(深層学習を中心に)
Tomohiro Motoda
画像認識の初歩、SIFT,SURF特徴量
takaya imai
全力解説!Transformer
Arithmer Inc.
プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)
Toshihiko Yamasaki
ディープラーニングの最新動向
Preferred Networks
SSII2019TS: プロジェクタ・カメラシステムが変わる! ~時間同期の制御で広がる応用~
SSII
What's hot
(20)
PPTX
【DL輪読会】ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
Deep Learning JP
PDF
“機械学習の説明”の信頼性
Satoshi Hara
PDF
ROS を用いた自律移動ロボットのシステム構築
Yoshitaka HARA
PDF
[DL輪読会]画像を使ったSim2Realの現況
Deep Learning JP
PDF
Cv勉強会cvpr2018読み会: Im2Flow: Motion Hallucination from Static Images for Action...
Toshiki Sakai
PPTX
畳み込みニューラルネットワークの高精度化と高速化
Yusuke Uchida
PPTX
MPC概説.pptx
MichikuniEguchi
PDF
画像の基盤モデルの変遷と研究動向
nlab_utokyo
PPTX
畳み込みLstm
tak9029
PPTX
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
Deep Learning JP
PPTX
Curriculum Learning (関東CV勉強会)
Yoshitaka Ushiku
PDF
Non-autoregressive text generation
nlab_utokyo
PDF
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Masaya Kaneko
PDF
大規模データ時代に求められる自然言語処理
Preferred Networks
PDF
Attentionの基礎からTransformerの入門まで
AGIRobots
PPTX
画像キャプションの自動生成
Yoshitaka Ushiku
PDF
【メタサーベイ】数式ドリブン教師あり学習
cvpaper. challenge
PPTX
【DL輪読会】DiffRF: Rendering-guided 3D Radiance Field Diffusion [N. Muller+ CVPR2...
Deep Learning JP
PDF
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
Deep Learning JP
PDF
機械学習モデルの判断根拠の説明(Ver.2)
Satoshi Hara
【DL輪読会】ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
Deep Learning JP
“機械学習の説明”の信頼性
Satoshi Hara
ROS を用いた自律移動ロボットのシステム構築
Yoshitaka HARA
[DL輪読会]画像を使ったSim2Realの現況
Deep Learning JP
Cv勉強会cvpr2018読み会: Im2Flow: Motion Hallucination from Static Images for Action...
Toshiki Sakai
畳み込みニューラルネットワークの高精度化と高速化
Yusuke Uchida
MPC概説.pptx
MichikuniEguchi
画像の基盤モデルの変遷と研究動向
nlab_utokyo
畳み込みLstm
tak9029
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
Deep Learning JP
Curriculum Learning (関東CV勉強会)
Yoshitaka Ushiku
Non-autoregressive text generation
nlab_utokyo
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Masaya Kaneko
大規模データ時代に求められる自然言語処理
Preferred Networks
Attentionの基礎からTransformerの入門まで
AGIRobots
画像キャプションの自動生成
Yoshitaka Ushiku
【メタサーベイ】数式ドリブン教師あり学習
cvpaper. challenge
【DL輪読会】DiffRF: Rendering-guided 3D Radiance Field Diffusion [N. Muller+ CVPR2...
Deep Learning JP
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
Deep Learning JP
機械学習モデルの判断根拠の説明(Ver.2)
Satoshi Hara
Ad
Similar to run Keras model on opencv
(20)
PDF
自習形式で学ぶ「DIGITS による画像分類入門」
NVIDIA Japan
PPTX
CNTK deep dive
Kyoichi Iwasaki
PDF
DIGITSによるディープラーニング画像分類
NVIDIA Japan
PDF
ハンズオン セッション 1: DIGITS によるディープラーニング入門
NVIDIA Japan
PDF
ハンズオン1: DIGITS によるディープラーニング入門
NVIDIA Japan
PDF
シリーズML-06 ニューラルネットワークによる線形回帰
Katsuhiro Morishita
PDF
Python初心者がKerasで画像判別をやってみた
KAIKenzo
PDF
ハンズオン セッション 2: DIGITS による物体検出入門
NVIDIA Japan
PPTX
コキュートスSwest19
Natsutani Minoru
PDF
Enjoy handwritten digits recognition AI !!
KAIKenzo
PPTX
「機械学習とは?」から始める Deep learning実践入門
Hideto Masuoka
PPTX
CNNチュートリアル
Ikuro Sato
PPTX
いきなりAi tensor flow gpuによる画像分類と生成
Yoshi Sakai
DOCX
march report in japanese
nao takatoshi
PPTX
tfug-kagoshima
tak9029
PDF
[CV勉強会]Active Object Localization with Deep Reinfocement Learning
Takuya Minagawa
PDF
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
de:code 2017
PDF
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
Yasuyuki Sugai
PDF
オトナのプログラミング勉強会 オトナのDeep Learning 2016-11
Katsuhiro Morishita
PPTX
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
fukuoka.ex
自習形式で学ぶ「DIGITS による画像分類入門」
NVIDIA Japan
CNTK deep dive
Kyoichi Iwasaki
DIGITSによるディープラーニング画像分類
NVIDIA Japan
ハンズオン セッション 1: DIGITS によるディープラーニング入門
NVIDIA Japan
ハンズオン1: DIGITS によるディープラーニング入門
NVIDIA Japan
シリーズML-06 ニューラルネットワークによる線形回帰
Katsuhiro Morishita
Python初心者がKerasで画像判別をやってみた
KAIKenzo
ハンズオン セッション 2: DIGITS による物体検出入門
NVIDIA Japan
コキュートスSwest19
Natsutani Minoru
Enjoy handwritten digits recognition AI !!
KAIKenzo
「機械学習とは?」から始める Deep learning実践入門
Hideto Masuoka
CNNチュートリアル
Ikuro Sato
いきなりAi tensor flow gpuによる画像分類と生成
Yoshi Sakai
march report in japanese
nao takatoshi
tfug-kagoshima
tak9029
[CV勉強会]Active Object Localization with Deep Reinfocement Learning
Takuya Minagawa
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
de:code 2017
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
Yasuyuki Sugai
オトナのプログラミング勉強会 オトナのDeep Learning 2016-11
Katsuhiro Morishita
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
fukuoka.ex
Ad
More from Takuya Minagawa
(20)
PDF
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
Takuya Minagawa
PDF
「第63回コンピュータビジョン勉強会@関東」発表資料 CVの社会実装について考えていたらゲームを作っていた話
Takuya Minagawa
PDF
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
Takuya Minagawa
PDF
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
Takuya Minagawa
PDF
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
Takuya Minagawa
PDF
MobileNeRF
Takuya Minagawa
PDF
点群SegmentationのためのTransformerサーベイ
Takuya Minagawa
PDF
Learning to Solve Hard Minimal Problems
Takuya Minagawa
PDF
ConditionalPointDiffusion.pdf
Takuya Minagawa
PDF
楽しいコンピュータビジョンの受託仕事
Takuya Minagawa
PDF
20210711 deepI2P
Takuya Minagawa
PDF
20201010 personreid
Takuya Minagawa
PDF
20200910コンピュータビジョン今昔物語(JPTA講演資料)
Takuya Minagawa
PDF
2020/07/04 BSP-Net (CVPR2020)
Takuya Minagawa
PDF
20200704 bsp net
Takuya Minagawa
PDF
20190825 vins mono
Takuya Minagawa
PDF
20190706cvpr2019_3d_shape_representation
Takuya Minagawa
PDF
20190307 visualslam summary
Takuya Minagawa
PDF
Visual slam
Takuya Minagawa
PDF
20190131 lidar-camera fusion semantic segmentation survey
Takuya Minagawa
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
Takuya Minagawa
「第63回コンピュータビジョン勉強会@関東」発表資料 CVの社会実装について考えていたらゲームを作っていた話
Takuya Minagawa
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
Takuya Minagawa
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
Takuya Minagawa
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
Takuya Minagawa
MobileNeRF
Takuya Minagawa
点群SegmentationのためのTransformerサーベイ
Takuya Minagawa
Learning to Solve Hard Minimal Problems
Takuya Minagawa
ConditionalPointDiffusion.pdf
Takuya Minagawa
楽しいコンピュータビジョンの受託仕事
Takuya Minagawa
20210711 deepI2P
Takuya Minagawa
20201010 personreid
Takuya Minagawa
20200910コンピュータビジョン今昔物語(JPTA講演資料)
Takuya Minagawa
2020/07/04 BSP-Net (CVPR2020)
Takuya Minagawa
20200704 bsp net
Takuya Minagawa
20190825 vins mono
Takuya Minagawa
20190706cvpr2019_3d_shape_representation
Takuya Minagawa
20190307 visualslam summary
Takuya Minagawa
Visual slam
Takuya Minagawa
20190131 lidar-camera fusion semantic segmentation survey
Takuya Minagawa
run Keras model on opencv
1.
第50回CV勉強会「CVツールLT大会2」 Kerasで学習したモデルをOpenCVで使う 2018/12/14 takmin
2.
自己紹介 2 株式会社ビジョン&ITラボ 代表取締役 皆川 卓也(みながわ
たくや) 「コンピュータビジョン勉強会@関東」主催 博士(工学) http://visitlab.jp 略歴: 1999-2003年 日本HP(後にアジレント・テクノロジーへ分社)にて、ITエンジニアとしてシステム構築、プリ セールス、プロジェクトマネジメント、サポート等の業務に従事 2004-2009年 コンピュータビジョンを用いたシステム/アプリ/サービス開発等に従事 2007-2010年 慶應義塾大学大学院 後期博士課程にて、コンピュータビジョンを専攻 単位取得退学後、博士号取得(2014年) 2009年-現在 フリーランスとして、コンピュータビジョンのコンサル/研究/開発等に従事(2018年法人化)
3.
OpenCVでDeep Learning 3 OpenCVがバージョン3.3でDNNモジュー ルをリリース なんででぃーぷらーにんぐにわざわざ OpenCV使う必要あるの?専用ライブラリ でいいじゃん。
4.
DNNモジュールを使うモチベーション 4 OpenCVで開発した画像処理プログ ラムの一部分にCNNを使いたい ライブラリをいくつもインストールしたく ない
簡単に使いたい C++で動かしたい
5.
OpenCV DNNモジュール 5 推論専用
学習は他のDeep Learningライブラリを使用 ドキュメントは少ない チュートリアル: https://docs.opencv.org/4.0.0/d2/d58/tutorial_table _of_content_dnn.html APIリファレンス: https://docs.opencv.org/4.0.0/d6/d0f/group__dnn.ht ml 使っている人もそれほど多くなさそう
6.
学習にKerasを使った理由 6 諸般の事情でKerasを使う必要があった 3.4.4までは以下のライブラリのモデルをサ ポートしており、この中で一番CNNの開発が 易しそうなのがKeras
+ Tensorflowと判断 Caffe Tensorflow Torch なお、4.0からはONNXもサポートしてるので、 ChainerやPyTorchからもいけるはず
7.
Kerasで学習してOpenCVで推論 7 試した環境 Tensorflow 1.5
(Python) OpenCV 4.0 (C++) LeNETでMNISTを学習 CPUで学習/推論 コードはこちら https://github.com/takmin/Keras2OpenCV
8.
Kerasで学習してOpenCVで推論 8 手順: 1. Kerasで学習モデルを構築/学習 2. Kerasで推論モデルを構築し、学習結 果を読み込み 3.
Kerasの推論モデルからTensorflowの モデルを取得し、保存 4. OpenCVでモデルファイルを読み込み、 推論を実行
9.
1. Kerasで学習モデルを構築/学習 9 モデル:
LeNet5 学習データ: MNIST
10.
1. Kerasで学習モデルを構築/学習 10 Tmodel =
Sequential() Tmodel.add(Conv2D(32,kernel_size=(5,5),input_shape=input_shape)) Tmodel.add(MaxPooling2D(pool_size=(2,2))) Tmodel.add(Conv2D(64,kernel_size=(5,5),input_shape=input_shape)) Tmodel.add(MaxPooling2D(pool_size=(2,2))) Tmodel.add(Flatten()) Tmodel.add(Dense(1024, activation=tf.nn.relu)) Tmodel.add(Dropout(0.2)) Tmodel.add(Dense(10,activation=tf.nn.softmax)) Tmodel.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) 学習モデル構築 KerasのSequential Model Conv x2 Max Pooling x2 Full Connected Layer Drop Out 学習方法を指定してコンパイル
11.
1. Kerasで学習モデルを構築/学習 11 from tensorflow.python.keras.datasets
import mnist (x_train, y_train), (x_test, y_test) = mnist.load_data() x_train = x_train.reshape(x_train.shape[0], 28, 28, 1) x_test= x_test.reshape(x_test.shape[0], 28, 28, 1) x_train = x_train.astype('float32') x_test = x_test.astype('float32') x_train /= 255 x_test /= 255 Tmodel.fit(x=x_train,y=y_train,epochs=10,batch_size=128,validation_ data=(x_test,y_test)) Tmodel.save("trained_model.h5") MNISTで学習する例 MNISTの読み込 みとデータ整形 学習 学習結果 を保存
12.
2. Kerasで推論モデルを構築し、学習結果を読 み込み 12 OpenCVは推論のみサポートしているため、例えば Dropoutのような学習用のレイヤーを読み込むことがで きない
Tensorflowには”optimize_for_inference”という学習用の モデルから推論に必要な部分のみを抜き出すツール/ラ イブラリが用意されているが、Dropoutは除去してくれな い 現在pull requestが上がっているが現時点ではマージされてい ない 推論用のモデルを構築し、学習したパラメータを読み込 むことで解決
13.
2. Kerasで推論モデルを構築し、学習結果を読 み込み 13 Imodel =
Sequential() Imodel.add(Conv2D(32,kernel_size=(5,5),input_shape=input_sha pe)) Imodel.add(MaxPooling2D(pool_size=(2,2))) Imodel.add(Conv2D(64,kernel_size=(5,5),input_shape=input_sha pe)) Imodel.add(MaxPooling2D(pool_size=(2,2))) Imodel.add(Flatten()) Imodel.add(Dense(1024, activation=tf.nn.relu)) #Imodel.add(Dropout(0.2)) Imodel.add(Dense(10,activation=tf.nn.softmax)) 推論モデル構築 学習モデルから Dropoutを除いただけ
14.
2. Kerasで推論モデルを構築し、学習結果を読 み込み 14 Imodel.load_weights("trained_model.h5") Imodel.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy’]) Imodel.save("inference_model.h5") 学習結果読み込み 学習モデルからパラ メータを推論モデルへ 読み込み コンパイル 推定モデルを保存
15.
3. Kerasの推論モデルからTensorflowのモデル を取得し、保存 15 1. KerasからバックエンドのTensorflowへ アクセスし、モデルを取得 2.
Tensorflowのモデルでは、ネットワーク 構造と重みは別々に扱われているため、 それらを統合(freeze) ネットワーク内の変数を定数(学習した重 み)に置き換え 3. Freezeしたモデルをファイルへ保存
16.
3. Kerasの推論モデルからTensorflowのモデル を取得し、保存 16 from tensorflow.python.keras.models
import load_model import tensorflow as tf from tensorflow.python.keras import backend as K model = load_model('inference_model.h5') sess = K.get_session() outname = "output_node0" tf.identity(model.outputs[0], name=outname) constant_graph = graph_util.convert_variables_to_constants(sess, sess.graph.as_graph_def(),[outname]) tf.train.write_graph(constant_graph, "./", "lenet.pb", as_text=False) 推論モデル構築 Keras推論モデル 読み込み Kerasのバックエンド(Tensorflow) のセッション取得 Freeze プロトコルバッファをバイ ナリで保存(./lenet.pb)
17.
4. OpenCVでモデルファイルを読み込み、推論 を実行 17 dnn::Net net
= dnn::readNet("./lenet.pb"); Mat img = imread(“mnist0.png", 0); Mat blob = dnn::blobFromImage(img, 1.0 / 255); net.setInput(blob); Mat prob = net.forward(); Point classIdPoint; double confidence; minMaxLoc(prob.reshape(1, 1), 0, &confidence, 0, &classIdPoint); int classId = classIdPoint.x; C++ Tensorflow推論 モデル読み込み 予測
18.
まとめ 18 Kerasで学習してOpenCVで推論 学習モデルの他に推論モデルを用意
KerasからバックエンドのTensorflowを呼び出し、Freezeして保 存 実行時間はKerasで約2.8ms、OpenCVで1.2ms (Celeron 1.8G) 今後試したいこと Functional APIを使って、どこまで複雑なモデルに対応できる か確認 Custom Layer ONNXからの読み込み
Download