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

画像認識ハンズオン

 画像認識ハンズオン

C7b3f79964c658ce7d0c82e66942e654?s=128

ISHIGO Yusuke

January 27, 2018
Tweet

Transcript

  1. None
  2. 自己紹介 日本総合ビジネス専門学校 NIHON-CHUO Institution 2017.4- 合同会社4D Pocket 4D Pocket LLC.

    2017.4- 石郷 祐介 ISHIGO Yusuke Programmer
  3. ࣾ ձ ʹ ؾ ͮ ͖ Λ ༩ ͑ Δ

     ಓ ۩  Λ ։ ൃ ͠ · ͢
  4. モバイル IoT ロボット 人工知能 Web センサ 音声認識 音声合成 機械学習 Beacon

    オープンデータ Bot 異分野 × アイデア × 技術 他社との研究開発を主とし、新たな価値を生み出すツールを作る
  5. 本日の流れ 1. 画像処理ライブラリ「OpenCV」を使ってみる  ・画像を読み込んで表示する  ・ノイズ除去、画像反転、輪郭抽出、顔認識 2. 「TensorFlow」と「Keras」で画像分類してみる 3. 「IBM Watson」で画像解析してみる

     ・風景写真の中から似た風景の写真を探す
  6. Pythonの特徴 サーバサイド言語として登場(P言語のひとつ) ・AI(機械学習) ・データ分析 ・IoT(Raspberry Pi) ・ロボット(ROS) 等 計算用ライブラリが豊富なため、高度な計算が必要なプログラム に多く使われている

  7. 開発環境 pyenv PythonやAnacondaをダウンロードしたり、バージョンを切り替える ためのツール Anaconda condaを含んだPythonとパッケージ(プラグイン)をまとめたもの (NumPy、scipy、Pandas、Jupyer、Scikit-learn等のパッケージ) Web系の言語には、バージョンを管理するツールが存在する conda Pythonパッケージをインストールできるツール

    Pythonには、標準で同機能のpipがインストールされているが、 Anacondaを使う場合は、condaを使う(condaにないパッケージはpip)
  8. 言語の特徴 ① 1.文末のセミコロンは不要 print(“Hello, world!”) 2.変数に型は必要ない(動的型付け=ダックタイピング) hoge = “Hello, world!”

    hoge = 123 print(“Hello, world!”); ◯ × String hoge = “Hello, world!” int hoge = 123 × ◯ If it walks like a duck and quacks like a duck, it must be a duck. もしそれがアヒルのように鳴き、アヒルのように歩いたら、それはアヒルである
  9. 言語の特徴 ② 3.カッコでなくインデントでまとまりを示す if hoge == ‘aaa’: print(‘Hello,’) print(‘world!’) if

    hoge == ‘aaa’ { print(‘Hello,’) print(‘world!’) } ◯ × オフサイドルール
  10. 本日の流れ 1. Pythonについて 2. 開発環境の構築  ・pyenv、anacondaのインストール 3. ライブラリを使ってみる  ① 標準ライブラリでWebサイトからスクレイピング

     ② 「matplotlib」で取得したデータのグラフ表示する 4. 基本的な機械学習アルゴリズムを自作してみる  ① エクセルのデータを読み込んでグラフ表示する  ② 「協調フィルタリング」の実装 5. 「scikit-learn」で簡単に機械学習を実践してみる
  11. OpenCVを使ってみる OpenCV 画像処理・解析のためのライブラリ conda install -c https://conda.anaconda.org/menpo opencv3 C/C++、Java、Python、MATLAB等、多数の言語に対応 Windows、macOS、Linux、Android、iOS等をサポート

    機械学習の教師データのための画像整備のために必要
  12. OpenCVを使ってみる ① import numpy as np import cv2 as cv

    img = cv.imread(‘Lenna.png’) cv.imshow(‘ウィンドウ名’, img) cv.waitKey(0) cv.destroyAllWindows() 画像を読み込み表示する
  13. OpenCVを使ってみる ① import numpy as np import cv2 as cv

    img = cv.imread(‘Lenna.png’, cv.IMREAD_GRAYSCALE) cv.imshow(‘ウィンドウ名’, img) cv.imwrite(‘output.png’, img) cv.waitKey(0) cv.destroyAllWindows() グレースケールで画像を読み込み、保存する データ量を減らすために、グレースケールにしてから画像認識する
  14. OpenCVを使ってみる ② ノイズ除去(平滑化、スムージング) 移動平均フィルタ メディアン(中央値)フィルタ 連続するデータにおいて、他値と乖離しているものを除去する手法

  15. OpenCVを使ってみる ② 移動平均フィルタ 20 0 13 11 9 10 12

    8 7 (20 + 12 + 8 + 13 + 7 + 11 + 9 + 10) / 8 = 11.25 20 11 13 11 9 10 12 8 7 補正するピクセルの周辺のピクセルの平均をとる ノイズや境界線の影響を受けて全体的にぼやける
  16. OpenCVを使ってみる ② メディアンフィルタ 20 0 13 11 9 10 12

    8 7 7、8、9、10、11、12、13、20の中央値→10 20 10 13 11 9 10 12 8 7 補正するピクセルの周辺のピクセルの中央値を適用する ノイズや境界線の影響を受けにくいので、ノイズのみを除去しやすい
  17. OpenCVを使ってみる ③ ディープラーニング等の教師データとして反転した画像を追加する 画像反転

  18. OpenCVを使ってみる ④ 輪郭抽出(物体認識)

  19. OpenCVを使ってみる ⑤ 顔認識 OpenCVの標準の学習データを使って顔認識を行う 学習データを更新することで、認識物を変えたり、精度を向上できる

  20. 本日の流れ 1. 画像処理ライブラリ「OpenCV」を使ってみる  ・画像を読み込んで表示する  ・ノイズ除去、画像反転、輪郭抽出、顔認識 2. 「TensorFlow」と「Keras」で画像分類してみる 3. 「IBM Watson」で画像解析してみる

     ・風景写真の中から似た風景の写真を探す
  21. TensorFlowとKeras TensorFlow Googleが開発しているオープンソースの機械学習ライブラリ ディープラーニングに対応している Keras Python用のニューラルネットワークライブラリ TensorFlowをバックエンドとして、同様の機能を完結な書き方で実現できる

  22. ディープラーニング ① 人間の神経細胞の繋がりをモデルにした機械学習手法 パーセプトロン、ニューラルネットワーク 特徴A 特徴B 特徴C 閾値 結果(0 or

    1) シグモイドニューロンの場合は0.0〜1.0の間 w1 w2 w3 1.学習したい物事を複数の特徴に分ける 2.特徴の重要性を重み(w1、w2、w3)として設定する 3.入力の合計値が、閾値を超えたら、1を返す
  23. ディープラーニング ② パーセプトロンを層にしたもの 多層パーセプトロン(入力層、隠れ層、出力層が3つのもの) 入力層 出力層 隠れ層 重み付けが大変!

  24. ディープラーニング ③ パーセプトロンを層にしたもの 多層パーセプトロン(入力層、隠れ層、出力層が3つのもの) 入力層 出力層 隠れ層 誤差逆伝播法(バックプロパゲーション) 誤差からパラメータを調整する手法 重み付けが大変!

    誤差 重み調整
  25. ディープラーニング ④ 入力層、隠れ層、出力層が4つ以上のもので、誤差逆伝播法の問題点を 解決したもの ディープラーニング 入力層 出力層 隠れ層 … TensorFlow

    Playground http://playground.tensorflow.org/
  26. 本日の流れ 1. 画像処理ライブラリ「OpenCV」を使ってみる  ・画像を読み込んで表示する  ・ノイズ除去、画像反転、輪郭抽出、顔認識 2. 「TensorFlow」と「Keras」で画像分類してみる 3. 「IBM Watson」で画像解析してみる

     ・風景写真の中から似た風景の写真を探す
  27. 「IBM Watson」で画像解析してみる あい旅っと 写真の風景に近い国内の風景を探し出し、マップを表示するアプリ

  28. 「IBM Watson」で画像解析してみる あい旅っと 写真の風景に近い国内の風景を探し出し、マップを表示するアプリ

  29. 「IBM Watson」で画像解析してみる Bluemix Watson API

  30. None