Upgrade to Pro — share decks privately, control downloads, hide ads and more …

お茶の子さいさいおすすめ超最短物体検出

SIOSTech
November 30, 2020
260

 お茶の子さいさいおすすめ超最短物体検出

SIOSTech

November 30, 2020
Tweet

Transcript

  1. © SIOS Technology, Inc. All rights Reserved. ~洗濯表示で洋服仕分けの巻~ お茶の子さいさいおすすめ 超最短

    物体検出 PSSL Tech Event 2020 エンジニア・クリエイターCoE PS SL 萩原奈苗 サイオステクノロジー株式会社
  2. © SIOS Technology, Inc. All rights Reserved. 自己紹介  萩原奈苗

     2019年4月入社 2年目  エンジニア・クリエイターCoE PS サービスライン  普段のお仕事  アプリケーション開発エンジニア  現在はTypeScript, Reactを使った医療システムの開発チームに参加 2
  3. © SIOS Technology, Inc. All rights Reserved. リモートワークの弊害  リモートワークでおうち時間が増えて家事をする機会UP

     家事で唯一、外出が減ったため洗濯をする機会DOWN  家庭科で習った洗濯表示を忘れていった 久々に着た服を洗濯機に回していいのかわからない 4
  4. © SIOS Technology, Inc. All rights Reserved.  洋服のタグをカメラに写して 特定の洗濯表示を識別して洗えるか判断するシステムがほしい

    理想 イメージ図 OR その洋服が洗えるのかどうかを判断する 洗濯表示を動的に検出する (物体検出) プログラムを作成
  5. © SIOS Technology, Inc. All rights Reserved. 物体検出の仕組みを作るのは大変そう… 8 学習モデルの構築って

    どうやるの? 物体検出って深層学習でしょ? 深層学習って難しそう… 精度を上げるには 膨大なデータが必要なんでしょ?
  6. © SIOS Technology, Inc. All rights Reserved. そんな時は転移学習 転移学習なら学習データを自分で用意するだけで そこまで知識が無くてもオリジナルの物体検出モデルを作成可能

    転移学習(Transfer Learning)  ある領域で学習したこと(学習済みモデル)を別の領域に役立たせ、効率的に学 習させる機械学習の手法 転移学習のメリット  モデルの構築・学習時間短縮  少ない学習データでも高い精度 9
  7. © 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
  8. © SIOS Technology, Inc. All rights Reserved. 作成手順 1. 学習用データ画像の収集

    2. 学習用データ画像のアノテーション 3. 既存の学習済モデルのダウンロード 4. 学習プログラムの実行 5. 自作推論モデルを使った物体検出 参考資料:https://sleepless-se.net/2019/06/21/how-to-use-vott/ 11
  9. © SIOS Technology, Inc. All rights Reserved. プロセス概要 12 アノテーション済の

    学習用データ画像 プログラムA 既存の学習済モデル (学習済み重みファイル) オリジナルの 推論モデルを作成 PCのカメラでタグを認識 プログラムB オリジナルの 推論モデルを使って 物体検出 洗濯できない
  10. © SIOS Technology, Inc. All rights Reserved. 洗濯できる/できないの判定 13 4種のマークを覚えられたらわざわざ物体検出するまでもない

    この4種類の洗濯表示を物体検出するのが目標 液温は30 ℃を限度とし、 洗濯機で洗濯出来る 液温は40 ℃を限度とし、 洗濯機で洗濯出来る 液温は40 ℃を限度とし、 手洗いができる 家庭での洗濯禁止 洗える 手洗いならOK 洗えない
  11. © SIOS Technology, Inc. All rights Reserved. 1. 学習用データ画像の収集 

    1ラベルにつき大量の学習用データ画像を手作業で集めるのは大変  OpenCVを用いたプログラムを使ってデータ拡張を行う  現実ではきれいに整った画像ファイルを用いることは稀のため、 意図的に画像加工をして、学習用データ画像を水増しする 各種画像加工を組み合わせて 202枚 × 4ラベル = 1008枚 の画像データを作成 14 元画像 回転 ぼかし ノイズ 暗転
  12. © SIOS Technology, Inc. All rights Reserved. 2. 学習用データ画像のアノテーション 

    画像のここにこの物体があるよと指定してあげる (アノテーション) 作業が必要  VOTTというアプリケーションを使用 15 洗濯表示の 範囲を指定 各ラベル (ラベル:指定した範囲内の物体の名前) ▪Yes-30 ▪Yes-40 ▪no ▪hand
  13. © 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
  14. © 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 既存の学習済モデル (学習済み重みファイル) オリジナルの 推論モデルを作成 これ
  15. © 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
  16. © SIOS Technology, Inc. All rights Reserved. まとめ  洗濯機で洗えるかどうかはタライのマークで判断できる

    21 液温は30 ℃を限度とし、 洗濯機で洗濯出来る 液温は40 ℃を限度とし、 洗濯機で洗濯出来る 液温は40 ℃を限度とし、 手洗いができる 家庭での洗濯禁止 洗える 手洗いならOK 洗えない わざわざ物体検出しなくても判断可能なので 覚えて帰ってください
  17. © SIOS Technology, Inc. All rights Reserved. まとめ2  keras-yolo3を用いた転移学習で推論モデルを自作して物体検出できた

     洗濯表示はちゃんと識別したが、任意の洗濯表示以外のものにも反応してし まった  1008枚の学習データ画像を用意したけど足りなかったのが原因  沢山画像を用意して精度を高められるか試したい 22