Submit Search
Upload
run Keras model on opencv
•
5 likes
•
13,255 views
Takuya Minagawa
Follow
第50回コンピュータビジョン勉強会@関東「CVで使えるツールLT大会2」発表資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 18
Download now
Download to read offline
Recommended
動画像を用いた経路予測手法の分類
動画像を用いた経路予測手法の分類
Tsubasa Hirakawa
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Yamato OKAMOTO
画像局所特徴量と特定物体認識 - SIFTと最近のアプローチ -
画像局所特徴量と特定物体認識 - SIFTと最近のアプローチ -
MPRG_Chubu_University
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
takaya imai
MS COCO Dataset Introduction
MS COCO Dataset Introduction
Shinagawa Seitaro
カルマンフィルタ入門
カルマンフィルタ入門
Yasunori Nihei
【RSJ2021】LiDAR SLAMにおける高信頼なループ閉合の実装について
【RSJ2021】LiDAR SLAMにおける高信頼なループ閉合の実装について
MobileRoboticsResear
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII
Recommended
動画像を用いた経路予測手法の分類
動画像を用いた経路予測手法の分類
Tsubasa Hirakawa
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Yamato OKAMOTO
画像局所特徴量と特定物体認識 - SIFTと最近のアプローチ -
画像局所特徴量と特定物体認識 - SIFTと最近のアプローチ -
MPRG_Chubu_University
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
takaya imai
MS COCO Dataset Introduction
MS COCO Dataset Introduction
Shinagawa Seitaro
カルマンフィルタ入門
カルマンフィルタ入門
Yasunori Nihei
【RSJ2021】LiDAR SLAMにおける高信頼なループ閉合の実装について
【RSJ2021】LiDAR SLAMにおける高信頼なループ閉合の実装について
MobileRoboticsResear
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII
Transformer メタサーベイ
Transformer メタサーベイ
cvpaper. challenge
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII
SSD: Single Shot MultiBox Detector (ECCV2016)
SSD: Single Shot MultiBox Detector (ECCV2016)
Takanori Ogata
Sift特徴量について
Sift特徴量について
la_flance
Triplet Loss 徹底解説
Triplet Loss 徹底解説
tancoro
畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向
Yusuke Uchida
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
ARISE analytics
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
Deep Learning JP
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向
Koichiro Mori
モデル高速化百選
モデル高速化百選
Yusuke Uchida
SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向
SSII
[DL輪読会]Graph R-CNN for Scene Graph Generation
[DL輪読会]Graph R-CNN for Scene Graph Generation
Deep Learning JP
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII
帰納バイアスが成立する条件
帰納バイアスが成立する条件
Shinobu KINJO
Visual slam
Visual slam
Takuya Minagawa
画像認識と深層学習
画像認識と深層学習
Yusuke Uchida
Lucas kanade法について
Lucas kanade法について
Hitoshi Nishimura
LiDAR点群と画像とのマッピング
LiDAR点群と画像とのマッピング
Takuya Minagawa
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
Life Robotics
ORB-SLAMを動かしてみた
ORB-SLAMを動かしてみた
Takuya Minagawa
20180424 orb slam
20180424 orb slam
Takuya Minagawa
More Related Content
What's hot
Transformer メタサーベイ
Transformer メタサーベイ
cvpaper. challenge
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII
SSD: Single Shot MultiBox Detector (ECCV2016)
SSD: Single Shot MultiBox Detector (ECCV2016)
Takanori Ogata
Sift特徴量について
Sift特徴量について
la_flance
Triplet Loss 徹底解説
Triplet Loss 徹底解説
tancoro
畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向
Yusuke Uchida
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
ARISE analytics
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
Deep Learning JP
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向
Koichiro Mori
モデル高速化百選
モデル高速化百選
Yusuke Uchida
SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向
SSII
[DL輪読会]Graph R-CNN for Scene Graph Generation
[DL輪読会]Graph R-CNN for Scene Graph Generation
Deep Learning JP
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII
帰納バイアスが成立する条件
帰納バイアスが成立する条件
Shinobu KINJO
Visual slam
Visual slam
Takuya Minagawa
画像認識と深層学習
画像認識と深層学習
Yusuke Uchida
Lucas kanade法について
Lucas kanade法について
Hitoshi Nishimura
LiDAR点群と画像とのマッピング
LiDAR点群と画像とのマッピング
Takuya Minagawa
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
Life Robotics
What's hot
(20)
Transformer メタサーベイ
Transformer メタサーベイ
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSD: Single Shot MultiBox Detector (ECCV2016)
SSD: Single Shot MultiBox Detector (ECCV2016)
Sift特徴量について
Sift特徴量について
Triplet Loss 徹底解説
Triplet Loss 徹底解説
畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
全力解説!Transformer
全力解説!Transformer
マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向
モデル高速化百選
モデル高速化百選
SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向
[DL輪読会]Graph R-CNN for Scene Graph Generation
[DL輪読会]Graph R-CNN for Scene Graph Generation
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
帰納バイアスが成立する条件
帰納バイアスが成立する条件
Visual slam
Visual slam
画像認識と深層学習
画像認識と深層学習
Lucas kanade法について
Lucas kanade法について
LiDAR点群と画像とのマッピング
LiDAR点群と画像とのマッピング
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
Similar to run Keras model on opencv
ORB-SLAMを動かしてみた
ORB-SLAMを動かしてみた
Takuya Minagawa
20180424 orb slam
20180424 orb slam
Takuya Minagawa
20170211クレジットカード認識
20170211クレジットカード認識
Takuya Minagawa
「コンピュータビジョン勉強会@関東」紹介資料
「コンピュータビジョン勉強会@関東」紹介資料
Takuya Minagawa
20160417dlibによる顔器官検出
20160417dlibによる顔器官検出
Takuya Minagawa
LiDAR点群とSfM点群との位置合わせ
LiDAR点群とSfM点群との位置合わせ
Takuya Minagawa
第34回CV勉強会「コンピュテーショナルフォトグラフィ」発表資料
第34回CV勉強会「コンピュテーショナルフォトグラフィ」発表資料
Takuya Minagawa
How to feed myself with computer vision
How to feed myself with computer vision
Takuya Minagawa
Pn learning takmin
Pn learning takmin
Takuya Minagawa
20140131 R-CNN
20140131 R-CNN
Takuya Minagawa
複数サービスを共存させるために 試行錯誤したこと
複数サービスを共存させるために 試行錯誤したこと
Nagao Shun
「業務システムにモバイルを!実践エンタープライズモバイル開発プロジェクト」
「業務システムにモバイルを!実践エンタープライズモバイル開発プロジェクト」
Embarcadero Technologies
機械学習による推定ユーザー属性の安定供給のための施策(第56回 Machine Learning 15minutes! Broadcast)
機械学習による推定ユーザー属性の安定供給のための施策(第56回 Machine Learning 15minutes! Broadcast)
Tetsuroh Watanabe
アドテクノロジーのサービスにおけるアジャイル開発
アドテクノロジーのサービスにおけるアジャイル開発
Nagao Shun
機械学習 温故知新(第47回 Machine Learning 15minutes! Broadcast)
機械学習 温故知新(第47回 Machine Learning 15minutes! Broadcast)
Tetsuroh Watanabe
クラウドAPIを利用した開発について ~ セルフポータル、ストレージサービス、Infrastructure as a code ~
クラウドAPIを利用した開発について ~ セルフポータル、ストレージサービス、Infrastructure as a code ~
Kimihiko Kitase
20190706cvpr2019_3d_shape_representation
20190706cvpr2019_3d_shape_representation
Takuya Minagawa
自社でつくれる生産性向上ツール 必要だと思ったらすぐに作れるビジネスアプリ
自社でつくれる生産性向上ツール 必要だと思ったらすぐに作れるビジネスアプリ
典子 松本
見やすいアウトプットのつくりかた
見やすいアウトプットのつくりかた
jujubkitakd
研究室紹介
研究室紹介
Yuriko Sawatani
Similar to run Keras model on opencv
(20)
ORB-SLAMを動かしてみた
ORB-SLAMを動かしてみた
20180424 orb slam
20180424 orb slam
20170211クレジットカード認識
20170211クレジットカード認識
「コンピュータビジョン勉強会@関東」紹介資料
「コンピュータビジョン勉強会@関東」紹介資料
20160417dlibによる顔器官検出
20160417dlibによる顔器官検出
LiDAR点群とSfM点群との位置合わせ
LiDAR点群とSfM点群との位置合わせ
第34回CV勉強会「コンピュテーショナルフォトグラフィ」発表資料
第34回CV勉強会「コンピュテーショナルフォトグラフィ」発表資料
How to feed myself with computer vision
How to feed myself with computer vision
Pn learning takmin
Pn learning takmin
20140131 R-CNN
20140131 R-CNN
複数サービスを共存させるために 試行錯誤したこと
複数サービスを共存させるために 試行錯誤したこと
「業務システムにモバイルを!実践エンタープライズモバイル開発プロジェクト」
「業務システムにモバイルを!実践エンタープライズモバイル開発プロジェクト」
機械学習による推定ユーザー属性の安定供給のための施策(第56回 Machine Learning 15minutes! Broadcast)
機械学習による推定ユーザー属性の安定供給のための施策(第56回 Machine Learning 15minutes! Broadcast)
アドテクノロジーのサービスにおけるアジャイル開発
アドテクノロジーのサービスにおけるアジャイル開発
機械学習 温故知新(第47回 Machine Learning 15minutes! Broadcast)
機械学習 温故知新(第47回 Machine Learning 15minutes! Broadcast)
クラウドAPIを利用した開発について ~ セルフポータル、ストレージサービス、Infrastructure as a code ~
クラウドAPIを利用した開発について ~ セルフポータル、ストレージサービス、Infrastructure as a code ~
20190706cvpr2019_3d_shape_representation
20190706cvpr2019_3d_shape_representation
自社でつくれる生産性向上ツール 必要だと思ったらすぐに作れるビジネスアプリ
自社でつくれる生産性向上ツール 必要だと思ったらすぐに作れるビジネスアプリ
見やすいアウトプットのつくりかた
見やすいアウトプットのつくりかた
研究室紹介
研究室紹介
More from Takuya Minagawa
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
Takuya Minagawa
MobileNeRF
MobileNeRF
Takuya Minagawa
点群SegmentationのためのTransformerサーベイ
点群SegmentationのためのTransformerサーベイ
Takuya Minagawa
Learning to Solve Hard Minimal Problems
Learning to Solve Hard Minimal Problems
Takuya Minagawa
ConditionalPointDiffusion.pdf
ConditionalPointDiffusion.pdf
Takuya Minagawa
楽しいコンピュータビジョンの受託仕事
楽しいコンピュータビジョンの受託仕事
Takuya Minagawa
20210711 deepI2P
20210711 deepI2P
Takuya Minagawa
20201010 personreid
20201010 personreid
Takuya Minagawa
20200910コンピュータビジョン今昔物語(JPTA講演資料)
20200910コンピュータビジョン今昔物語(JPTA講演資料)
Takuya Minagawa
2020/07/04 BSP-Net (CVPR2020)
2020/07/04 BSP-Net (CVPR2020)
Takuya Minagawa
20200704 bsp net
20200704 bsp net
Takuya Minagawa
20190825 vins mono
20190825 vins mono
Takuya Minagawa
20190307 visualslam summary
20190307 visualslam summary
Takuya Minagawa
20190131 lidar-camera fusion semantic segmentation survey
20190131 lidar-camera fusion semantic segmentation survey
Takuya Minagawa
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
Takuya Minagawa
20181130 lidar object detection survey
20181130 lidar object detection survey
Takuya Minagawa
object detection with lidar-camera fusion: survey (updated)
object detection with lidar-camera fusion: survey (updated)
Takuya Minagawa
object detection with lidar-camera fusion: survey
object detection with lidar-camera fusion: survey
Takuya Minagawa
3DFeat-Net
3DFeat-Net
Takuya Minagawa
CVPR2018のPointCloudのCNN論文とSPLATNet
CVPR2018のPointCloudのCNN論文とSPLATNet
Takuya Minagawa
More from Takuya Minagawa
(20)
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
MobileNeRF
MobileNeRF
点群SegmentationのためのTransformerサーベイ
点群SegmentationのためのTransformerサーベイ
Learning to Solve Hard Minimal Problems
Learning to Solve Hard Minimal Problems
ConditionalPointDiffusion.pdf
ConditionalPointDiffusion.pdf
楽しいコンピュータビジョンの受託仕事
楽しいコンピュータビジョンの受託仕事
20210711 deepI2P
20210711 deepI2P
20201010 personreid
20201010 personreid
20200910コンピュータビジョン今昔物語(JPTA講演資料)
20200910コンピュータビジョン今昔物語(JPTA講演資料)
2020/07/04 BSP-Net (CVPR2020)
2020/07/04 BSP-Net (CVPR2020)
20200704 bsp net
20200704 bsp net
20190825 vins mono
20190825 vins mono
20190307 visualslam summary
20190307 visualslam summary
20190131 lidar-camera fusion semantic segmentation survey
20190131 lidar-camera fusion semantic segmentation survey
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
20181130 lidar object detection survey
20181130 lidar object detection survey
object detection with lidar-camera fusion: survey (updated)
object detection with lidar-camera fusion: survey (updated)
object detection with lidar-camera fusion: survey
object detection with lidar-camera fusion: survey
3DFeat-Net
3DFeat-Net
CVPR2018のPointCloudのCNN論文とSPLATNet
CVPR2018のPointCloudのCNN論文とSPLATNet
Recently uploaded
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Recently uploaded
(11)
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
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 now