Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
お茶の子さいさいおすすめ超最短物体検出
SIOSTech
November 30, 2020
0
200
お茶の子さいさいおすすめ超最短物体検出
SIOSTech
November 30, 2020
Tweet
Share
More Decks by SIOSTech
See All by SIOSTech
福岡のシーサイドで医療情報システムの最前に立つ
sios
0
190
【転職エントリ】インフラエンジニア→サポートエンジニア
sios
0
230
これからの時代の認証
sios
0
220
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
506
37k
The Cult of Friendly URLs
andyhume
68
4.8k
Bash Introduction
62gerente
598
210k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1.1M
Building Flexible Design Systems
yeseniaperezcruz
310
34k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_i
25
15k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
316
19k
Pencils Down: Stop Designing & Start Developing
hursman
113
9.8k
Web Components: a chance to create the future
zenorocha
303
40k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
151
13k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
12
940
In The Pink: A Labor of Love
frogandcode
131
21k
Transcript
© SIOS Technology, Inc. All rights Reserved. ~洗濯表示で洋服仕分けの巻~ お茶の子さいさいおすすめ 超最短
物体検出 PSSL Tech Event 2020 エンジニア・クリエイターCoE PS SL 萩原奈苗 サイオステクノロジー株式会社
© SIOS Technology, Inc. All rights Reserved. 自己紹介 萩原奈苗
2019年4月入社 2年目 エンジニア・クリエイターCoE PS サービスライン 普段のお仕事 アプリケーション開発エンジニア 現在はTypeScript, Reactを使った医療システムの開発チームに参加 2
© SIOS Technology, Inc. All rights Reserved. 弊社は原則リモートワーク コロナ禍がきっかけで弊社は原則リモートワーク
3
© SIOS Technology, Inc. All rights Reserved. リモートワークの弊害 リモートワークでおうち時間が増えて家事をする機会UP
家事で唯一、外出が減ったため洗濯をする機会DOWN 家庭科で習った洗濯表示を忘れていった 久々に着た服を洗濯機に回していいのかわからない 4
© SIOS Technology, Inc. All rights Reserved. 洋服のタグをカメラに写して 特定の洗濯表示を識別して洗えるか判断するシステムがほしい
理想 イメージ図 OR
© SIOS Technology, Inc. All rights Reserved. 洋服のタグをカメラに写して 特定の洗濯表示を識別して洗えるか判断するシステムがほしい
理想 イメージ図 OR その洋服が洗えるのかどうかを判断する 洗濯表示を動的に検出する (物体検出) プログラムを作成
© SIOS Technology, Inc. All rights Reserved. 物体検出とは 一枚の画像から任意の物体の位置やカテゴリーを抽出する仕組み
深層学習の一つ 7
© SIOS Technology, Inc. All rights Reserved. 物体検出の仕組みを作るのは大変そう… 8 学習モデルの構築って
どうやるの? 物体検出って深層学習でしょ? 深層学習って難しそう… 精度を上げるには 膨大なデータが必要なんでしょ?
© SIOS Technology, Inc. All rights Reserved. そんな時は転移学習 転移学習なら学習データを自分で用意するだけで そこまで知識が無くてもオリジナルの物体検出モデルを作成可能
転移学習(Transfer Learning) ある領域で学習したこと(学習済みモデル)を別の領域に役立たせ、効率的に学 習させる機械学習の手法 転移学習のメリット モデルの構築・学習時間短縮 少ない学習データでも高い精度 9
© SIOS Technology, Inc. All rights Reserved. 転移学習対象モデル・ライブラリ 物体検出を行うYOLOv3の学習モデルを
PythonのライブラリKerasで実装したGitHubリポジトリ(keras-yolo3)を使用 GitHub:https://github.com/sleepless-se/keras-yolo3 参考資料:https://sleepless-se.net/2019/06/21/how-to-use-vott/ Python・主要ライブラリのバージョン 10 実装した環境 推奨環境 Python 3.8.5 3.5.2 tensorflow 2.3.1 1.6.0 Keras 2.4.3 2.1.5
© SIOS Technology, Inc. All rights Reserved. 作成手順 1. 学習用データ画像の収集
2. 学習用データ画像のアノテーション 3. 既存の学習済モデルのダウンロード 4. 学習プログラムの実行 5. 自作推論モデルを使った物体検出 参考資料:https://sleepless-se.net/2019/06/21/how-to-use-vott/ 11
© SIOS Technology, Inc. All rights Reserved. プロセス概要 12 アノテーション済の
学習用データ画像 プログラムA 既存の学習済モデル (学習済み重みファイル) オリジナルの 推論モデルを作成 PCのカメラでタグを認識 プログラムB オリジナルの 推論モデルを使って 物体検出 洗濯できない
© SIOS Technology, Inc. All rights Reserved. 洗濯できる/できないの判定 13 4種のマークを覚えられたらわざわざ物体検出するまでもない
この4種類の洗濯表示を物体検出するのが目標 液温は30 ℃を限度とし、 洗濯機で洗濯出来る 液温は40 ℃を限度とし、 洗濯機で洗濯出来る 液温は40 ℃を限度とし、 手洗いができる 家庭での洗濯禁止 洗える 手洗いならOK 洗えない
© SIOS Technology, Inc. All rights Reserved. 1. 学習用データ画像の収集
1ラベルにつき大量の学習用データ画像を手作業で集めるのは大変 OpenCVを用いたプログラムを使ってデータ拡張を行う 現実ではきれいに整った画像ファイルを用いることは稀のため、 意図的に画像加工をして、学習用データ画像を水増しする 各種画像加工を組み合わせて 202枚 × 4ラベル = 1008枚 の画像データを作成 14 元画像 回転 ぼかし ノイズ 暗転
© SIOS Technology, Inc. All rights Reserved. 2. 学習用データ画像のアノテーション
画像のここにこの物体があるよと指定してあげる (アノテーション) 作業が必要 VOTTというアプリケーションを使用 15 洗濯表示の 範囲を指定 各ラベル (ラベル:指定した範囲内の物体の名前) ▪Yes-30 ▪Yes-40 ▪no ▪hand
© SIOS Technology, Inc. All rights Reserved. 3. 既存の学習済モデルのダウンロード
YOLOv3用の学習済モデルをダウンロードし、今回の学習用プログラムで使えるように ファイル変換を行う ダウンロード先:https://pjreddie.com/media/files/yolov3.weights 16 アノテーション済の 学習用データ画像 プログラムA 既存の学習済モデル (学習済み重みファイル) オリジナルの 推論モデルを作成 これ $ python convert.py -w yolov3.cfg yolov3.weights model_data/yolo_weights.h5
© SIOS Technology, Inc. All rights Reserved. 4. 学習プログラムの実行
GitHabからダウンロードした学習プログラムtrain.pyを実行して、 オリジナルの推論モデル(trained_weights_final.h5)を作成 第一引数は画像サイズ, 第二引数はバッチサイズを指定することが可能 画像サイズ:128 x 128 バッチサイズ:8 17 $ python train.py 128 8 $ ls ./logs/000 (前略) trained_weights_final.h5 アノテーション済の 学習用データ画像 プログラムA 既存の学習済モデル (学習済み重みファイル) オリジナルの 推論モデルを作成 これ
© SIOS Technology, Inc. All rights Reserved. 5. 自作推論モデルを使った物体検出
yolo_video.pyを用いて自作推論モデル (trained_weights_final.h5) で物体検出を行う PC内蔵カメラを使用する場合 1. yolo_video.pyに一部コードを追加する 2. 以下を実行 18 71 parser.add_argument( 72 "--camera", nargs='?', type=int, required=False, default=0, 73 help="Web camera input path" 74 ) (中略) 87 elif "camera" in FLAGS: 88 detect_video(YOLO(**vars(FLAGS)), FLAGS.camera, FLAGS.output) $ python yolo_video.py --camera 0
© SIOS Technology, Inc. All rights Reserved. デモ動画 PC内蔵カメラでタグを判定してみた
20
© SIOS Technology, Inc. All rights Reserved. まとめ 洗濯機で洗えるかどうかはタライのマークで判断できる
21 液温は30 ℃を限度とし、 洗濯機で洗濯出来る 液温は40 ℃を限度とし、 洗濯機で洗濯出来る 液温は40 ℃を限度とし、 手洗いができる 家庭での洗濯禁止 洗える 手洗いならOK 洗えない わざわざ物体検出しなくても判断可能なので 覚えて帰ってください
© SIOS Technology, Inc. All rights Reserved. まとめ2 keras-yolo3を用いた転移学習で推論モデルを自作して物体検出できた
洗濯表示はちゃんと識別したが、任意の洗濯表示以外のものにも反応してし まった 1008枚の学習データ画像を用意したけど足りなかったのが原因 沢山画像を用意して精度を高められるか試したい 22