Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

自己紹介 日本総合ビジネス専門学校 NIHON-CHUO Institution 2017.4- 合同会社4D Pocket 4D Pocket LLC. 2017.4- 石郷 祐介 ISHIGO Yusuke Programmer

Slide 3

Slide 3 text

ࣾ ձ ʹ ؾ ͮ ͖ Λ ༩ ͑ Δ ಓ ۩ Λ ։ ൃ ͠ · ͢

Slide 4

Slide 4 text

モバイル IoT ロボット 人工知能 Web センサ 音声認識 音声合成 機械学習 Beacon オープンデータ Bot 異分野 × アイデア × 技術 他社との研究開発を主とし、新たな価値を生み出すツールを作る

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

言語の特徴 ① 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. もしそれがアヒルのように鳴き、アヒルのように歩いたら、それはアヒルである

Slide 9

Slide 9 text

言語の特徴 ② 3.カッコでなくインデントでまとまりを示す if hoge == ‘aaa’: print(‘Hello,’) print(‘world!’) if hoge == ‘aaa’ { print(‘Hello,’) print(‘world!’) } ◯ × オフサイドルール

Slide 10

Slide 10 text

本日の流れ 1. Pythonについて 2. 開発環境の構築  ・pyenv、anacondaのインストール 3. ライブラリを使ってみる  ① 標準ライブラリでWebサイトからスクレイピング  ② 「matplotlib」で取得したデータのグラフ表示する 4. 基本的な機械学習アルゴリズムを自作してみる  ① エクセルのデータを読み込んでグラフ表示する  ② 「協調フィルタリング」の実装 5. 「scikit-learn」で簡単に機械学習を実践してみる

Slide 11

Slide 11 text

OpenCVを使ってみる OpenCV 画像処理・解析のためのライブラリ conda install -c https://conda.anaconda.org/menpo opencv3 C/C++、Java、Python、MATLAB等、多数の言語に対応 Windows、macOS、Linux、Android、iOS等をサポート 機械学習の教師データのための画像整備のために必要

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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() グレースケールで画像を読み込み、保存する データ量を減らすために、グレースケールにしてから画像認識する

Slide 14

Slide 14 text

OpenCVを使ってみる ② ノイズ除去(平滑化、スムージング) 移動平均フィルタ メディアン(中央値)フィルタ 連続するデータにおいて、他値と乖離しているものを除去する手法

Slide 15

Slide 15 text

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 補正するピクセルの周辺のピクセルの平均をとる ノイズや境界線の影響を受けて全体的にぼやける

Slide 16

Slide 16 text

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 補正するピクセルの周辺のピクセルの中央値を適用する ノイズや境界線の影響を受けにくいので、ノイズのみを除去しやすい

Slide 17

Slide 17 text

OpenCVを使ってみる ③ ディープラーニング等の教師データとして反転した画像を追加する 画像反転

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

ディープラーニング ① 人間の神経細胞の繋がりをモデルにした機械学習手法 パーセプトロン、ニューラルネットワーク 特徴A 特徴B 特徴C 閾値 結果(0 or 1) シグモイドニューロンの場合は0.0〜1.0の間 w1 w2 w3 1.学習したい物事を複数の特徴に分ける 2.特徴の重要性を重み(w1、w2、w3)として設定する 3.入力の合計値が、閾値を超えたら、1を返す

Slide 23

Slide 23 text

ディープラーニング ② パーセプトロンを層にしたもの 多層パーセプトロン(入力層、隠れ層、出力層が3つのもの) 入力層 出力層 隠れ層 重み付けが大変!

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

ディープラーニング ④ 入力層、隠れ層、出力層が4つ以上のもので、誤差逆伝播法の問題点を 解決したもの ディープラーニング 入力層 出力層 隠れ層 … TensorFlow Playground http://playground.tensorflow.org/

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

No content