SlideShare a Scribd company logo
1 of 18
Download to read offline
第50回CV勉強会「CVツールLT大会2」
Kerasで学習したモデルをOpenCVで使う
2018/12/14 takmin
自己紹介
2
株式会社ビジョン&ITラボ 代表取締役
皆川 卓也(みながわ たくや)
「コンピュータビジョン勉強会@関東」主催
博士(工学)
http://visitlab.jp
略歴:
1999-2003年
日本HP(後にアジレント・テクノロジーへ分社)にて、ITエンジニアとしてシステム構築、プリ
セールス、プロジェクトマネジメント、サポート等の業務に従事
2004-2009年
コンピュータビジョンを用いたシステム/アプリ/サービス開発等に従事
2007-2010年
慶應義塾大学大学院 後期博士課程にて、コンピュータビジョンを専攻
単位取得退学後、博士号取得(2014年)
2009年-現在
フリーランスとして、コンピュータビジョンのコンサル/研究/開発等に従事(2018年法人化)
OpenCVでDeep Learning
3
OpenCVがバージョン3.3でDNNモジュー
ルをリリース
なんででぃーぷらーにんぐにわざわざ
OpenCV使う必要あるの?専用ライブラリ
でいいじゃん。
DNNモジュールを使うモチベーション
4
 OpenCVで開発した画像処理プログ
ラムの一部分にCNNを使いたい
 ライブラリをいくつもインストールしたく
ない
 簡単に使いたい
 C++で動かしたい
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
 使っている人もそれほど多くなさそう
学習にKerasを使った理由
6
 諸般の事情でKerasを使う必要があった
 3.4.4までは以下のライブラリのモデルをサ
ポートしており、この中で一番CNNの開発が
易しそうなのがKeras + Tensorflowと判断
 Caffe
 Tensorflow
 Torch
 なお、4.0からはONNXもサポートしてるので、
ChainerやPyTorchからもいけるはず
Kerasで学習してOpenCVで推論
7
試した環境
 Tensorflow 1.5 (Python)
 OpenCV 4.0 (C++)
 LeNETでMNISTを学習
 CPUで学習/推論
 コードはこちら
 https://github.com/takmin/Keras2OpenCV
Kerasで学習してOpenCVで推論
8
手順:
1. Kerasで学習モデルを構築/学習
2. Kerasで推論モデルを構築し、学習結
果を読み込み
3. Kerasの推論モデルからTensorflowの
モデルを取得し、保存
4. OpenCVでモデルファイルを読み込み、
推論を実行
1. Kerasで学習モデルを構築/学習
9
 モデル: LeNet5
 学習データ: MNIST
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
学習方法を指定してコンパイル
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の読み込
みとデータ整形
学習
学習結果
を保存
2. Kerasで推論モデルを構築し、学習結果を読
み込み
12
 OpenCVは推論のみサポートしているため、例えば
Dropoutのような学習用のレイヤーを読み込むことがで
きない
 Tensorflowには”optimize_for_inference”という学習用の
モデルから推論に必要な部分のみを抜き出すツール/ラ
イブラリが用意されているが、Dropoutは除去してくれな
い
 現在pull requestが上がっているが現時点ではマージされてい
ない
 推論用のモデルを構築し、学習したパラメータを読み込
むことで解決
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を除いただけ
2. Kerasで推論モデルを構築し、学習結果を読
み込み
14
Imodel.load_weights("trained_model.h5")
Imodel.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy’])
Imodel.save("inference_model.h5")
学習結果読み込み
学習モデルからパラ
メータを推論モデルへ
読み込み
コンパイル
推定モデルを保存
3. Kerasの推論モデルからTensorflowのモデル
を取得し、保存
15
1. KerasからバックエンドのTensorflowへ
アクセスし、モデルを取得
2. Tensorflowのモデルでは、ネットワーク
構造と重みは別々に扱われているため、
それらを統合(freeze)
 ネットワーク内の変数を定数(学習した重
み)に置き換え
3. Freezeしたモデルをファイルへ保存
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)
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
 Kerasで学習してOpenCVで推論
 学習モデルの他に推論モデルを用意
 KerasからバックエンドのTensorflowを呼び出し、Freezeして保
存
 実行時間はKerasで約2.8ms、OpenCVで1.2ms (Celeron 1.8G)
 今後試したいこと
 Functional APIを使って、どこまで複雑なモデルに対応できる
か確認
 Custom Layer
 ONNXからの読み込み

More Related Content

What's hot

画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
takaya imai
 
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
Hironori Washizaki
 

What's hot (20)

機械学習をScrumで組織的に学習する (RSGT2022)
機械学習をScrumで組織的に学習する (RSGT2022)機械学習をScrumで組織的に学習する (RSGT2022)
機械学習をScrumで組織的に学習する (RSGT2022)
 
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
 
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化
 
Data assim r
Data assim rData assim r
Data assim r
 
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
 
【DL輪読会】マルチモーダル 基盤モデル
【DL輪読会】マルチモーダル 基盤モデル【DL輪読会】マルチモーダル 基盤モデル
【DL輪読会】マルチモーダル 基盤モデル
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
30分で分かる!OSの作り方
30分で分かる!OSの作り方30分で分かる!OSの作り方
30分で分かる!OSの作り方
 
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
 
このPHP QAツールがすごい!2019
このPHP QAツールがすごい!2019 このPHP QAツールがすごい!2019
このPHP QAツールがすごい!2019
 
オープンソース SLAM の分類
オープンソース SLAM の分類オープンソース SLAM の分類
オープンソース SLAM の分類
 
【DL輪読会】Representational Continuity for Unsupervised Continual Learning ( ICLR...
【DL輪読会】Representational Continuity for Unsupervised Continual Learning ( ICLR...【DL輪読会】Representational Continuity for Unsupervised Continual Learning ( ICLR...
【DL輪読会】Representational Continuity for Unsupervised Continual Learning ( ICLR...
 
Tesseract ocr
Tesseract ocrTesseract ocr
Tesseract ocr
 
Sift特徴量について
Sift特徴量についてSift特徴量について
Sift特徴量について
 
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
 
CEDEC2018『逆転オセロニア』におけるAI活用
CEDEC2018『逆転オセロニア』におけるAI活用CEDEC2018『逆転オセロニア』におけるAI活用
CEDEC2018『逆転オセロニア』におけるAI活用
 
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
 
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
 
人工知能を用いた医用画像処理技術
人工知能を用いた医用画像処理技術人工知能を用いた医用画像処理技術
人工知能を用いた医用画像処理技術
 
畳み込みLstm
畳み込みLstm畳み込みLstm
畳み込みLstm
 

Similar to run Keras model on opencv

クラウドAPIを利用した開発について ~ セルフポータル、ストレージサービス、Infrastructure as a code ~
クラウドAPIを利用した開発について ~ セルフポータル、ストレージサービス、Infrastructure as a code ~クラウドAPIを利用した開発について ~ セルフポータル、ストレージサービス、Infrastructure as a code ~
クラウドAPIを利用した開発について ~ セルフポータル、ストレージサービス、Infrastructure as a code ~
Kimihiko Kitase
 

Similar to run Keras model on opencv (20)

ORB-SLAMを動かしてみた
ORB-SLAMを動かしてみたORB-SLAMを動かしてみた
ORB-SLAMを動かしてみた
 
20180424 orb slam
20180424 orb slam20180424 orb slam
20180424 orb slam
 
20170211クレジットカード認識
20170211クレジットカード認識20170211クレジットカード認識
20170211クレジットカード認識
 
「コンピュータビジョン勉強会@関東」紹介資料
「コンピュータビジョン勉強会@関東」紹介資料「コンピュータビジョン勉強会@関東」紹介資料
「コンピュータビジョン勉強会@関東」紹介資料
 
20160417dlibによる顔器官検出
20160417dlibによる顔器官検出20160417dlibによる顔器官検出
20160417dlibによる顔器官検出
 
LiDAR点群とSfM点群との位置合わせ
LiDAR点群とSfM点群との位置合わせLiDAR点群とSfM点群との位置合わせ
LiDAR点群とSfM点群との位置合わせ
 
第34回CV勉強会「コンピュテーショナルフォトグラフィ」発表資料
第34回CV勉強会「コンピュテーショナルフォトグラフィ」発表資料第34回CV勉強会「コンピュテーショナルフォトグラフィ」発表資料
第34回CV勉強会「コンピュテーショナルフォトグラフィ」発表資料
 
How to feed myself with computer vision
How to feed myself with computer visionHow to feed myself with computer vision
How to feed myself with computer vision
 
Pn learning takmin
Pn learning takminPn learning takmin
Pn learning takmin
 
20140131 R-CNN
20140131 R-CNN20140131 R-CNN
20140131 R-CNN
 
LiDAR点群と画像とのマッピング
LiDAR点群と画像とのマッピングLiDAR点群と画像とのマッピング
LiDAR点群と画像とのマッピング
 
複数サービスを共存させるために 試行錯誤したこと
複数サービスを共存させるために 試行錯誤したこと複数サービスを共存させるために 試行錯誤したこと
複数サービスを共存させるために 試行錯誤したこと
 
「業務システムにモバイルを!実践エンタープライズモバイル開発プロジェクト」
「業務システムにモバイルを!実践エンタープライズモバイル開発プロジェクト」 「業務システムにモバイルを!実践エンタープライズモバイル開発プロジェクト」
「業務システムにモバイルを!実践エンタープライズモバイル開発プロジェクト」
 
機械学習による推定ユーザー属性の安定供給のための施策(第56回 Machine Learning 15minutes! Broadcast)
機械学習による推定ユーザー属性の安定供給のための施策(第56回 Machine Learning 15minutes! Broadcast)機械学習による推定ユーザー属性の安定供給のための施策(第56回 Machine Learning 15minutes! Broadcast)
機械学習による推定ユーザー属性の安定供給のための施策(第56回 Machine Learning 15minutes! Broadcast)
 
アドテクノロジーのサービスにおけるアジャイル開発
アドテクノロジーのサービスにおけるアジャイル開発アドテクノロジーのサービスにおけるアジャイル開発
アドテクノロジーのサービスにおけるアジャイル開発
 
機械学習 温故知新(第47回 Machine Learning 15minutes! Broadcast)
機械学習 温故知新(第47回 Machine Learning 15minutes! Broadcast)機械学習 温故知新(第47回 Machine Learning 15minutes! Broadcast)
機械学習 温故知新(第47回 Machine Learning 15minutes! Broadcast)
 
クラウドAPIを利用した開発について ~ セルフポータル、ストレージサービス、Infrastructure as a code ~
クラウドAPIを利用した開発について ~ セルフポータル、ストレージサービス、Infrastructure as a code ~クラウドAPIを利用した開発について ~ セルフポータル、ストレージサービス、Infrastructure as a code ~
クラウドAPIを利用した開発について ~ セルフポータル、ストレージサービス、Infrastructure as a code ~
 
20190706cvpr2019_3d_shape_representation
20190706cvpr2019_3d_shape_representation20190706cvpr2019_3d_shape_representation
20190706cvpr2019_3d_shape_representation
 
自社でつくれる生産性向上ツール 必要だと思ったらすぐに作れるビジネスアプリ
自社でつくれる生産性向上ツール 必要だと思ったらすぐに作れるビジネスアプリ自社でつくれる生産性向上ツール 必要だと思ったらすぐに作れるビジネスアプリ
自社でつくれる生産性向上ツール 必要だと思ったらすぐに作れるビジネスアプリ
 
見やすいアウトプットのつくりかた
見やすいアウトプットのつくりかた見やすいアウトプットのつくりかた
見やすいアウトプットのつくりかた
 

More from Takuya Minagawa

More from Takuya Minagawa (20)

Machine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and ArchitectureMachine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
 
MobileNeRF
MobileNeRFMobileNeRF
MobileNeRF
 
点群SegmentationのためのTransformerサーベイ
点群SegmentationのためのTransformerサーベイ点群SegmentationのためのTransformerサーベイ
点群SegmentationのためのTransformerサーベイ
 
Learning to Solve Hard Minimal Problems
Learning to Solve Hard Minimal ProblemsLearning to Solve Hard Minimal Problems
Learning to Solve Hard Minimal Problems
 
ConditionalPointDiffusion.pdf
ConditionalPointDiffusion.pdfConditionalPointDiffusion.pdf
ConditionalPointDiffusion.pdf
 
楽しいコンピュータビジョンの受託仕事
楽しいコンピュータビジョンの受託仕事楽しいコンピュータビジョンの受託仕事
楽しいコンピュータビジョンの受託仕事
 
20210711 deepI2P
20210711 deepI2P20210711 deepI2P
20210711 deepI2P
 
20201010 personreid
20201010 personreid20201010 personreid
20201010 personreid
 
20200910コンピュータビジョン今昔物語(JPTA講演資料)
20200910コンピュータビジョン今昔物語(JPTA講演資料)20200910コンピュータビジョン今昔物語(JPTA講演資料)
20200910コンピュータビジョン今昔物語(JPTA講演資料)
 
2020/07/04 BSP-Net (CVPR2020)
2020/07/04 BSP-Net (CVPR2020)2020/07/04 BSP-Net (CVPR2020)
2020/07/04 BSP-Net (CVPR2020)
 
20200704 bsp net
20200704 bsp net20200704 bsp net
20200704 bsp net
 
20190825 vins mono
20190825 vins mono20190825 vins mono
20190825 vins mono
 
20190307 visualslam summary
20190307 visualslam summary20190307 visualslam summary
20190307 visualslam summary
 
Visual slam
Visual slamVisual slam
Visual slam
 
20190131 lidar-camera fusion semantic segmentation survey
20190131 lidar-camera fusion semantic segmentation survey20190131 lidar-camera fusion semantic segmentation survey
20190131 lidar-camera fusion semantic segmentation survey
 
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
 
20181130 lidar object detection survey
20181130 lidar object detection survey20181130 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 (updated)
object detection with lidar-camera fusion: survey (updated)
 
object detection with lidar-camera fusion: survey
object detection with lidar-camera fusion: surveyobject detection with lidar-camera fusion: survey
object detection with lidar-camera fusion: survey
 
3DFeat-Net
3DFeat-Net3DFeat-Net
3DFeat-Net
 

Recently uploaded

Recently uploaded (10)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: 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論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

run Keras model on opencv