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
PRO
January 27, 2018
Technology
0
190
画像認識ハンズオン
ISHIGO Yusuke
PRO
January 27, 2018
Tweet
Share
More Decks by ISHIGO Yusuke
See All by ISHIGO Yusuke
2024年度参加希望者向けアプリ開発プロジェクト説明(名古屋文理大学)
yusk1450
PRO
0
7
プログラミング基礎#1(名古屋造形大学)
yusk1450
PRO
0
23
プログラミング基礎#2(名古屋造形大学)
yusk1450
PRO
0
26
プログラミング基礎#3(名古屋造形大学)
yusk1450
PRO
0
29
プログラミング基礎#4(名古屋造形大学)
yusk1450
PRO
0
76
こどもICT学級 人工知能(AI)ってなに?(2020/11/21)
yusk1450
PRO
0
4
こどもICT学級 人工知能(AI)ってなに?(2020/11/7)
yusk1450
PRO
0
4
2025年度 基礎演習(石郷ゼミ)紹介(名古屋文理大学)
yusk1450
PRO
0
23
2024年度アプリ開発プロジェクト紹介(名古屋文理大学)
yusk1450
PRO
0
49
Other Decks in Technology
See All in Technology
pg_bigmをRustで実装する(第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
shinyakato_
0
110
DUSt3R, MASt3R, MASt3R-SfM にみる3D基盤モデル
spatial_ai_network
2
200
どちらを使う?GitHub or Azure DevOps Ver. 24H2
kkamegawa
0
990
5分でわかるDuckDB
chanyou0311
10
3.3k
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
2
420
Server-Side Engineer of LINE Sukimani
lycorp_recruit_jp
0
280
あの日俺達が夢見たサーバレスアーキテクチャ/the-serverless-architecture-we-dreamed-of
tomoki10
0
500
祝!Iceberg祭開幕!re:Invent 2024データレイク関連アップデート10分総ざらい
kniino
3
330
APIとはなにか
mikanichinose
0
100
DevFest 2024 Incheon / Songdo - Compose UI 조합 심화
wisemuji
0
140
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
muziyoshiz
3
2.5k
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
520
Featured
See All Featured
A better future with KSS
kneath
238
17k
Documentation Writing (for coders)
carmenintech
66
4.5k
Embracing the Ebb and Flow
colly
84
4.5k
How STYLIGHT went responsive
nonsquared
96
5.2k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Code Reviewing Like a Champion
maltzj
521
39k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
520
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
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