Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
画像認識ハンズオン
Search
ISHIGO Yusuke
January 27, 2018
Technology
0
180
画像認識ハンズオン
ISHIGO Yusuke
January 27, 2018
Tweet
Share
More Decks by ISHIGO Yusuke
See All by ISHIGO Yusuke
基礎演習(石郷ゼミ)紹介2024
yusk1450
0
20
アプリ開発プロジェクト紹介2024
yusk1450
0
41
Processing入門
yusk1450
0
81
ラピッドプロトタイピング手法を中心としたITスキル習得のための指導法の実践(日本教育工学会 第34回全国大会)
yusk1450
1
150
IoTサービスのためのプロトタイピング・ワークショップ資料(第2回)
yusk1450
0
80
Pepperアプリ開発入門ワークショップ拡大版(2016/08/24)
yusk1450
0
90
IoTサービスのためのプロトタイピング・ワークショップ資料(第1回)
yusk1450
0
120
micro:bit入門資料(2018/08/29)
yusk1450
0
270
IoT×人工知能による画像認識技術勉強会
yusk1450
0
90
Other Decks in Technology
See All in Technology
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
10
1.3k
OTelCol_TailSampling_and_SpanMetrics
gumamon
1
220
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
130
SDN の Hype Cycle を一通り経験してみて思うこと / Going through the Hype Cycle of SDN
mshindo
1
100
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
950
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
複雑なState管理からの脱却
sansantech
PRO
1
160
The Rise of LLMOps
asei
9
1.7k
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
130
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Music & Morning Musume
bryan
46
6.2k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Typedesign – Prime Four
hannesfritz
40
2.4k
Unsuck your backbone
ammeep
668
57k
Why Our Code Smells
bkeepers
PRO
334
57k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
How GitHub (no longer) Works
holman
310
140k
We Have a Design System, Now What?
morganepeng
50
7.2k
Automating Front-end Workflow
addyosmani
1366
200k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Transcript
None
自己紹介 日本総合ビジネス専門学校 NIHON-CHUO Institution 2017.4- 合同会社4D Pocket 4D Pocket LLC.
2017.4- 石郷 祐介 ISHIGO Yusuke Programmer
ࣾ ձ ʹ ؾ ͮ ͖ Λ ༩ ͑ Δ
ಓ ۩ Λ ։ ൃ ͠ · ͢
モバイル IoT ロボット 人工知能 Web センサ 音声認識 音声合成 機械学習 Beacon
オープンデータ Bot 異分野 × アイデア × 技術 他社との研究開発を主とし、新たな価値を生み出すツールを作る
本日の流れ 1. 画像処理ライブラリ「OpenCV」を使ってみる ・画像を読み込んで表示する ・ノイズ除去、画像反転、輪郭抽出、顔認識 2. 「TensorFlow」と「Keras」で画像分類してみる 3. 「IBM Watson」で画像解析してみる
・風景写真の中から似た風景の写真を探す
Pythonの特徴 サーバサイド言語として登場(P言語のひとつ) ・AI(機械学習) ・データ分析 ・IoT(Raspberry Pi) ・ロボット(ROS) 等 計算用ライブラリが豊富なため、高度な計算が必要なプログラム に多く使われている
開発環境 pyenv PythonやAnacondaをダウンロードしたり、バージョンを切り替える ためのツール Anaconda condaを含んだPythonとパッケージ(プラグイン)をまとめたもの (NumPy、scipy、Pandas、Jupyer、Scikit-learn等のパッケージ) Web系の言語には、バージョンを管理するツールが存在する conda Pythonパッケージをインストールできるツール
Pythonには、標準で同機能のpipがインストールされているが、 Anacondaを使う場合は、condaを使う(condaにないパッケージはpip)
言語の特徴 ① 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. もしそれがアヒルのように鳴き、アヒルのように歩いたら、それはアヒルである
言語の特徴 ② 3.カッコでなくインデントでまとまりを示す if hoge == ‘aaa’: print(‘Hello,’) print(‘world!’) if
hoge == ‘aaa’ { print(‘Hello,’) print(‘world!’) } ◯ × オフサイドルール
本日の流れ 1. Pythonについて 2. 開発環境の構築 ・pyenv、anacondaのインストール 3. ライブラリを使ってみる ① 標準ライブラリでWebサイトからスクレイピング
② 「matplotlib」で取得したデータのグラフ表示する 4. 基本的な機械学習アルゴリズムを自作してみる ① エクセルのデータを読み込んでグラフ表示する ② 「協調フィルタリング」の実装 5. 「scikit-learn」で簡単に機械学習を実践してみる
OpenCVを使ってみる OpenCV 画像処理・解析のためのライブラリ conda install -c https://conda.anaconda.org/menpo opencv3 C/C++、Java、Python、MATLAB等、多数の言語に対応 Windows、macOS、Linux、Android、iOS等をサポート
機械学習の教師データのための画像整備のために必要
OpenCVを使ってみる ① import numpy as np import cv2 as cv
img = cv.imread(‘Lenna.png’) cv.imshow(‘ウィンドウ名’, img) cv.waitKey(0) cv.destroyAllWindows() 画像を読み込み表示する
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() グレースケールで画像を読み込み、保存する データ量を減らすために、グレースケールにしてから画像認識する
OpenCVを使ってみる ② ノイズ除去(平滑化、スムージング) 移動平均フィルタ メディアン(中央値)フィルタ 連続するデータにおいて、他値と乖離しているものを除去する手法
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 補正するピクセルの周辺のピクセルの平均をとる ノイズや境界線の影響を受けて全体的にぼやける
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 補正するピクセルの周辺のピクセルの中央値を適用する ノイズや境界線の影響を受けにくいので、ノイズのみを除去しやすい
OpenCVを使ってみる ③ ディープラーニング等の教師データとして反転した画像を追加する 画像反転
OpenCVを使ってみる ④ 輪郭抽出(物体認識)
OpenCVを使ってみる ⑤ 顔認識 OpenCVの標準の学習データを使って顔認識を行う 学習データを更新することで、認識物を変えたり、精度を向上できる
本日の流れ 1. 画像処理ライブラリ「OpenCV」を使ってみる ・画像を読み込んで表示する ・ノイズ除去、画像反転、輪郭抽出、顔認識 2. 「TensorFlow」と「Keras」で画像分類してみる 3. 「IBM Watson」で画像解析してみる
・風景写真の中から似た風景の写真を探す
TensorFlowとKeras TensorFlow Googleが開発しているオープンソースの機械学習ライブラリ ディープラーニングに対応している Keras Python用のニューラルネットワークライブラリ TensorFlowをバックエンドとして、同様の機能を完結な書き方で実現できる
ディープラーニング ① 人間の神経細胞の繋がりをモデルにした機械学習手法 パーセプトロン、ニューラルネットワーク 特徴A 特徴B 特徴C 閾値 結果(0 or
1) シグモイドニューロンの場合は0.0〜1.0の間 w1 w2 w3 1.学習したい物事を複数の特徴に分ける 2.特徴の重要性を重み(w1、w2、w3)として設定する 3.入力の合計値が、閾値を超えたら、1を返す
ディープラーニング ② パーセプトロンを層にしたもの 多層パーセプトロン(入力層、隠れ層、出力層が3つのもの) 入力層 出力層 隠れ層 重み付けが大変!
ディープラーニング ③ パーセプトロンを層にしたもの 多層パーセプトロン(入力層、隠れ層、出力層が3つのもの) 入力層 出力層 隠れ層 誤差逆伝播法(バックプロパゲーション) 誤差からパラメータを調整する手法 重み付けが大変!
誤差 重み調整
ディープラーニング ④ 入力層、隠れ層、出力層が4つ以上のもので、誤差逆伝播法の問題点を 解決したもの ディープラーニング 入力層 出力層 隠れ層 … TensorFlow
Playground http://playground.tensorflow.org/
本日の流れ 1. 画像処理ライブラリ「OpenCV」を使ってみる ・画像を読み込んで表示する ・ノイズ除去、画像反転、輪郭抽出、顔認識 2. 「TensorFlow」と「Keras」で画像分類してみる 3. 「IBM Watson」で画像解析してみる
・風景写真の中から似た風景の写真を探す
「IBM Watson」で画像解析してみる あい旅っと 写真の風景に近い国内の風景を探し出し、マップを表示するアプリ
「IBM Watson」で画像解析してみる あい旅っと 写真の風景に近い国内の風景を探し出し、マップを表示するアプリ
「IBM Watson」で画像解析してみる Bluemix Watson API
None