第1回ディープラーニング勉強会~画像処理編~
by
iwanaga
×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
第1回ディープラーニング勉強会 ~画像処理編~
Slide 2
Slide 2 text
目次 • 自己紹介 • エンジニアカフェについて • 本の紹介 • 第0回のおさらい • google colabolatory使ってみよう! • opencv使ってみよう!
Slide 3
Slide 3 text
自己紹介 • 岩永拓也 • 九州工業大学 情報工学部 4年 • 藤原研究室 アルゴリズム • 趣味:ゲーム、読書、ボードゲーム、アマプラで映画 • エディタ:ATOM
Slide 4
Slide 4 text
エンジニアカフェについて • 成り立ち 旧日本生命保険株式会社九州支店→福岡市歴史資料館→エンジニアカフェ • 『エンジニアが集まる、活躍する、成長する街、福岡。』を掲げる福岡市の「エンジニアフレンド リーシティ福岡」活動の一環としてオープン • エンジニアがよりチャレンジやスキルの幅を広げることができるように誕生した施設 • 勉強会などのイベントも開催してるのでぜひ足を運んでみてください!
Slide 5
Slide 5 text
本の紹介 • 即戦力になるための ディープラーニング開発実践ハンズオン • [著]井上大樹、佐藤峻 • 価格:3280円(税抜) • リンク: https://gihyo.jp/book/2021/978-4-297-11942-3
Slide 6
Slide 6 text
第0回のおさらい 1.1 機械学習と深層学習 1. 機械学習→「きかいてきにものごとのパターンを覚えさせること」 2. 深層学習→手法はパーセプトロン系統の進化であるディープニューラルネットワークをしたも の。教師ありに分類。 3. パーセプトロンの仕組み 4. ニューラルネットワーク →反応として活性化、活性化していないという極端な2択でなく、出力 する値の度合いで 測れるようにしたもの 5. 活性化関数の種類(シグモイド関数、ReLU関数)
Slide 7
Slide 7 text
第0回のおさらい 1.2 ニューラルネットワークの学習 • 順伝搬、誤差逆伝播の流れ • 損失曲線 →学習を各繰り返しのタイミングに、データ毎の損失の平均を計算し記録してできる 曲線。 • 過学習 →用意した学習用の入力データに対して完璧に反応できるがそれ以外のデータに対し ては正確な反 応が全くできない現象。 • オンライン学習、バッチ学習、ミニバッチ学習 • 損失関数、勾配降下方
Slide 8
Slide 8 text
第0回のおさらい 1.3 畳み込みニューラルネットワーク • ノード→各層における入力と出力 • FullConnection層(全結合層) →全ての入力ノードが全ての出力ノードと結びついてる層。 • Convolution層(畳み込み層) →入力ノードいくつかのまとまりで圧縮し、特徴を抽出する層。 • カーネル、ストライド、畳み込み • パディング→入力データ全体の周囲にある擬似的なノード。
Slide 9
Slide 9 text
第0回のおさらい 1.3 畳み込みニューラルネットワーク • 3次元の画像データ
Slide 10
Slide 10 text
第0回のおさらい 1.3 畳み込みニューラルネットワーク • MAXPOOLING層/ AVERAGEPOOLING層(最大プーリング層/平均プーリング層) 図 MAXPooling層
Slide 11
Slide 11 text
第0回のおさらい 1.3 畳み込みニューラルネットワーク • Upsampling層(アップサンプリング層) 図 Upsampling層
Slide 12
Slide 12 text
第0回のおさらい 1.3 畳み込みニューラルネットワーク • TransposedConvolution層、Deconvolution層(逆畳み込み層) 図 TransposedConvolution層
Slide 13
Slide 13 text
第0回のおさらい 1.3 畳み込みニューラルネットワーク • Dropout層(ドロップアウト層) 図 Dropout層
Slide 14
Slide 14 text
第0回のおさらい 1.3 畳み込みニューラルネットワーク • Batchnormalization層(バッチ正規化層) 図 BatchNormalization層
Slide 15
Slide 15 text
第0回のおさらい 1.3 畳み込みニューラルネットワーク • CNN
Slide 16
Slide 16 text
第0回のおさらい 1.4 タスクとモデル • 分類(CLASSIFICATION) • 異常検知(ANOMALY DETECTION) • 物体検出(OBJECT DETECTION) • 領域検出(SEGMENTATION)
Slide 17
Slide 17 text
google colabolatory使ってみよう! • google colabolatoryとは? 1. 教育機関や研究機関において機械学習の普及を目的としたgoogleの研究プロジェクトの一つ 2. Jupyter notebookを必要最低限の労力とコストで活用 3. googleのアカウントさえ持っていれば、すぐに機械学習プロジェクトを実施 4.高スペックなPCを必要としない https://su-gi-rx.com/archives/4670より引用
Slide 18
Slide 18 text
google colabolatory使ってみよう! • google driveで右クリックし、「その他」を押し、「google colabratory」にアクセス!
Slide 19
Slide 19 text
google colabolatory使ってみよう! • アクセスすると下のように出てくる
Slide 20
Slide 20 text
google colabolatory使ってみよう! • 1+1を入力し、Shiftキー+ Enterキーで実行!
Slide 21
Slide 21 text
opencv使ってみよう! • opencvとは? 1.インテルが開発・公開したオープンソースのコンピュータビジョン向けライブラリ向け 2.商用目的などで無料で使用できる 3.画像処理をはじめ、モーション解析、物体検出など幅広く使用されている。 https://ja.wikipedia.org/wiki/OpenCVより引用
Slide 22
Slide 22 text
opencv使ってみよう! • STEP1 opencvインストール ※10秒くらいかかる!
Slide 23
Slide 23 text
opencv使ってみよう! • STEP2 インストールされたか確認 • 結果
Slide 24
Slide 24 text
opencv使ってみよう! • STEP3 画像ファイルをアップロード! • コードを実行し、「ファイル選択」を押す
Slide 25
Slide 25 text
opencv使ってみよう! • 「sample01.png」の画像を選択し、開く→しばらく時間がかかる
Slide 26
Slide 26 text
opencv使ってみよう! • STEP4 画像を読み込もう! • 結果
Slide 27
Slide 27 text
opencv使ってみよう! • 画像処理のデータの仕組み →基本画像は縦と横とチャンネル(奥行き) の3次元のデータ。特にOPENCVで扱う画像は チャンネルがRED、GREEN、BLUEの3つになる。 この並びを略してRGBともいう。 チャンネル
Slide 28
Slide 28 text
opencv使ってみよう! • BGR色空間 →読み込んだデータが順に青、緑、赤の値が立方的に記述される色の空間 • RGB色空間 →読み込んだデータが順に赤、緑、青の値が立方的に記述される色の空間
Slide 29
Slide 29 text
opencv使ってみよう! • opencvはBGRなのでRGBに変換する必要がある! BGR RGB
Slide 30
Slide 30 text
opencv使ってみよう! • 変換しない場合の結果
Slide 31
Slide 31 text
opencv使ってみよう! • STEP5 画像の形を知ろう! 1446:画像の縦の大きさ 1094:画像の横の大きさ 3:チャンネルの大きさ (1446,1094,3):多次元配列の各次元の大きさ
Slide 32
Slide 32 text
opencv使ってみよう! • STEP6 画像を左右反転にしよう!
Slide 33
Slide 33 text
opencv使ってみよう! • STEP7 画像を赤にしよう!
Slide 34
Slide 34 text
opencv使ってみよう! • STEP8 画像を明るくしてみよう! uint8→uint16に変換
Slide 35
Slide 35 text
opencv使ってみよう! • STEP8 画像を明るくしてみよう! • 結果
Slide 36
Slide 36 text
opencv使ってみよう! • STEP9 画像をグレースケールにしてみよう!
Slide 37
Slide 37 text
opencv使ってみよう! • STEP9 画像をグレースケールにしてみよう! • 結果
Slide 38
Slide 38 text
opencv使ってみよう! • STEP10 画像をバイナリ化にしてみよう! グレーのボーダーライン
Slide 39
Slide 39 text
opencv使ってみよう! • STEP10 画像をバイナリ化にしてみよう! • 結果
Slide 40
Slide 40 text
opencv使ってみよう! • STEP10 画像を回転してみよう! 画像の大きさ 傾ける角度 画像の中心
Slide 41
Slide 41 text
opencv使ってみよう! • STEP10 画像を回転してみよう! • 結果
Slide 42
Slide 42 text
opencv使ってみよう! • STEP11 画像をぼかしてみよう!
Slide 43
Slide 43 text
opencv使ってみよう! • STEP12 画像を色域抽出してみよう! HSVの最大 HSVの最小
Slide 44
Slide 44 text
opencv使ってみよう! • HSV→色相、彩度、明度を合わせた言葉 • Opencvでは赤、青、緑の色相を扱う https://algorithm.joho.info/programming/python/opencv-rgb-to-hsv-color-space/を参照
Slide 45
Slide 45 text
opencv使ってみよう! • STEP12 画像を色域抽出してみよう! • 結果
Slide 46
Slide 46 text
opencv使ってみよう! • STEP13 画像を色域抽出してみよう! • cascadeファイルを読み込むため実行し、「ファイル選択」を押す
Slide 47
Slide 47 text
opencv使ってみよう! • STEP13 顔検出してみよう! • 「haarcascade_frontalface_default.xml」を選択し、開く
Slide 48
Slide 48 text
opencv使ってみよう! • STEP13 顔検出してみよう! 左上の座標 右下の座標 枠の色 枠の大きさ
Slide 49
Slide 49 text
opencv使ってみよう! • STEP13 顔検出してみよう! • 結果
Slide 50
Slide 50 text
opencv使ってみよう! • STEP13 顔検出してみよう!(猫の場合)
Slide 51
Slide 51 text
opencv使ってみよう! • STEP13 顔検出してみよう! • 結果
Slide 52
Slide 52 text
演習 • 画像を傾けたら顔認識されるか確認しよう! • 模範解答は後ほどconnpassで記載しますのでお願いします。 connpassのURL→https://engineercafe.connpass.com/event/223041/