【ことはじめ】 画像データの機械学習
Oracle Cloud ウェビナー
ファンデーションシリーズ
2021年3月10日
日本オラクル株式会社
テクノロジー事業戦略統括
大澤 清吾、園田 憲一
• オラクルの機械学習への取り組み
• 画像データを使った機械学習のユースケースとワークフロー
• 画像処理
• 機械学習
• まとめ
本日の内容
Copyright © 2021, Oracle and/or its affiliates
2
Oracle Labs
探索的研究
インキュベーション
アプリケーション:
エンタープライズ/業界
プラットフォームサービスと技術
MLスペシャリスト
データ・イノベーション
特殊なアルゴリズム
オラクルの機械学習への取り組み
製品
研究 サービス
Copyright © 2021, Oracle and/or its affiliates
3
Data Science & Machine Learning
Oracle Data and AI Platform
Copyright © 2021, Oracle and/or its affiliates.
4
Cloud Infrastructure
Oracle Cloud
Infrastructure
Data Integration
Big Data
Service
Data Flow
Service
Oracle Analytics
Cloud
Data Science
Service
Oracle Machine
Learning
Oracle Cloud Infrastructure Data Catalog
Autonomous
Database
Oracle Cloud
Infrastructure
Streaming
データソース
Compute Networking Storage Security Cloud Native
アプリケーション
ビジネス
アナリティクス
Data Management
Integration
Analytics
Data Science
Virtual Machines
Graph Analytics
Object
Storage
GoldenGate &
Oracle Data
Integrator
Data Science & Machine Learning
Oracle Data and AI Platform
Copyright © 2021, Oracle and/or its affiliates.
5
Cloud Infrastructure
Oracle Cloud
Infrastructure
Data Integration
Big Data
Service
Data Flow
Service
Oracle Analytics
Cloud
Data Science
Service
Oracle Machine
Learning
Oracle Cloud Infrastructure Data Catalog
Autonomous
Database
Oracle Cloud
Infrastructure
Streaming
データソース
Compute Networking Storage Security Cloud Native
アプリケーション
ビジネス
アナリティクス
Data Management
Integration
Analytics
Data Science
Virtual Machines
Graph Analytics
Object
Storage
GoldenGate &
Oracle Data
Integrator
エキスパートなデータサイエンティスト向けデータ分析プラットフォーム
データ分析のコラボレーション作業を効率化
• データ分析におけるチーム作業やノウハウを集約、共有
• モデルの履歴管理や再現性管理
• モデルの構築から、学習、評価、デプロイまで実現
オープンソースサポート、All in Oneの開発環境
• Tensorflow、Keras、Scikit-learn、 XGBoostなどの
主要なオープンソースライブラリを事前設定
• Notebookのフルマネージドサービス
データ分析作業を加速
• AutoML、モデル説明など独自ライブラリADS SDKを包含
エンタープライズデータサイエンス環境
• クラウド/オンプレの様々なデータソースとの連携
• 高速なOracle Cloud Infrastructureを利用
• PaaSとしては無償、IaaSのみの課金体系
Oracle Cloud Infrastructure Data Science
Copyright © 2021, Oracle and/or its affiliates
6
v
インフラストラクチャ
データ・マネジメント
データベース – データレイク - アクセス – 統合 – 準備
CPU – GPU – ストレージ –
ネットワーク
モデルトレーニング
チームの作業を
集約、管理
オープンソース
ライブラリ
Jupyter
Notebook
モデルの管理
モデルの説明
Data Science,
AutoML の加速
モデルの履歴や
再現性を管理
モデルのデプロイ
Copyright © 2021, Oracle and/or its affiliates
7
画像データを使った機械学習
のユースケースとワークフロー
画像データを使った機械学習
Copyright © 2021, Oracle and/or its affiliates
8
店舗来客の行動分析
医療画像の所見支援
文字認識による仕分け作業
イベント会場での入場者の
把握
農産物の発育状況の把握
製造ラインや工場現場での
不良品検知
ドライバーの危険運転、居眠
り運転の防止
不審者の検知
画像分類
(Image Classification)
物体検出
(Object Detection)
異常検知
(Anomaly Detection)
ナンバープレートの識別
画像データを使った機械学習のワークフロー
Copyright © 2021, Oracle and/or its affiliates
9
画像データ収集 画像処理 モデルの生成 予測 アクション
学習のために大量の
画像を収集する。
揃った画像もあれば
整っていない画像もあ
る。
機械学習にかける前に
画像処理を施し、学
習できるクオリティの画
像データを作成する。
大量の画像データをモ
デルに学習をさせる。
構築されたモデルを評
価し、実ビジネスで利用
できるレベルの精度に
チューニングする。
実画像データによる
予測を行う。
予測結果に基づいて
何らかのアクションを行
う。
画像データを使った機械学習のワークフロー
Copyright © 2021, Oracle and/or its affiliates
10
本日のスコープ
画像データ収集 画像処理 モデルの生成 予測 アクション
学習のために大量の
画像を収集する。
揃った画像もあれば
整っていない画像もあ
る。
機械学習にかける前に
画像処理を施し、学
習できるクオリティの画
像データを作成する。
大量の画像データをモ
デルに学習をさせる。
構築されたモデルを評
価し、実ビジネスで利用
できるレベルの精度に
チューニングする。
実画像データによる
予測を行う。
予測結果に基づいて
何らかのアクションを行
う。
画像処理 機械学習
Copyright © 2021, Oracle and/or its affiliates
11
画像処理
画像データ収集 画像処理 モデルの生成 予測 アクション
画像処理
画像データとは
Copyright © 2021, Oracle and/or its affiliates
12
画像データ
100
pixel
125 pixel
B
G
R
Row x100
Column x125
ピクセルの色空間
(RGBの例)
画像データの構成要素
5
12
25
0
205
129
132
222
200
255
222
201
0
255
255
100
10
25
100
10
25
20
30
255
230
129
255
画像データを表す行列(配列)
画像データ収集 画像処理 モデルの生成 予測 アクション
画像処理
画像処理とは
Copyright © 2021, Oracle and/or its affiliates
13
5
12
25
0
205
129
132
222
200
255
222
201
0
255
255
100
10
25
100
10
25
20
30
255
230
129
255
猫の画像
x 0 =
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
黒塗りの画像
B
G
R
RGBの[0, 0, 0]は黒
画像データ収集 画像処理 モデルの生成 予測 アクション
画像処理
• Open Source Computer Vision Library
• インテル社による開発・メンテナンス
• Willow Garageに開発が移管(2009)その後 Itseez にメンテナンスが移管され、
その後インテルがItseezを買収(2016)
• 開発言語
• C/C++、Java、Python
• 対応OS
• Mac OSやFreeBSD等全てのPOSIXに準拠したUnix系OS、Linux、
Windows、Android、iOS等をサポート
• 画像データだけでなく動画データにも対応
OpenCV
Copyright © 2021, Oracle and/or its affiliates
14
出典 : Wikipedia
https://ja.wikipedia.org/wiki/OpenCV
画像データ収集 画像処理 モデルの生成 予測 アクション
画像処理
「機械学習の前処理」としての画像処理
Copyright © 2021, Oracle and/or its affiliates
15
目的 処理例 主な手法
必用な特徴量を強調する 輪郭を強調する グレースケール化、2値化、閾値処理、正規化、
エッジ検出(Canny/Sobel/ラプラシアン)、輪郭検
出(findContours)
不要な特徴量を消す ノイズや背景を除去 平滑化、フィルタ(ガウシアン、中央値、バイラテラ
ル)、モルフォロジー変換、ヒストグラム、次元圧縮、
リサイズ
特徴量を増やす 輪郭の途切れを補正する
画像を鮮明にする
反転、平滑化、明度変更、アノテーション
必用な特徴量をデータとして
取得する
物体の面積を取得する モーメント、面積、重心、ペリメータ
画像データ収集 画像処理 モデルの生成 予測 アクション
画像処理
いろいろな画像処理
Copyright © 2021, Oracle and/or its affiliates
16
グレースケール化
ヒストグラム平坦化
二値化(閾値処理)
平滑化
(ガウシアンフィルタ)
Canny法
Homography
画像データ収集 画像処理 モデルの生成 予測 アクション
画像処理
17 Copyright © 2021, Oracle and/or its affiliates
デモンストレーション
画像データ収集 画像処理 モデルの生成 予測 アクション
画像処理
Copyright © 2021, Oracle and/or its affiliates
18
機械学習
画像データ収集 画像処理 モデルの生成 予測 アクション
機械学習
画像データを使った機械学習のワークフロー
Copyright © 2021, Oracle and/or its affiliates
19
画像データ収集 画像処理 モデルの生成 予測 アクション
学習のために大量の
画像を収集する。
揃った画像もあれば
整っていない画像もあ
る。
機械学習にかける前に
画像処理を施し、学
習できるクオリティの画
像データを作成する。
大量の画像データをモ
デルに学習をさせる。
構築されたモデルを評
価し、実ビジネスで利用
できるレベルの精度に
チューニングする。
実画像データによる
予測を行う。
予測結果に基づいて
何らかのアクションを行
う。
画像データ収集 画像処理 モデルの生成 予測 アクション
機械学習
主要な機械学習ライブラリ
Copyright © 2021, Oracle and/or its affiliates
20
ライブラリ 各ライブラリの概要
Scikit-learn Pythonのオープンソース機械学習ライブラリ。Anacondaにも同梱され、世界中で広く使われている。
Tensorflow 2015年、Google社により開発された、機械学習に関する計算を行うフレームワーク。CNNによる画像認識、RNNによる単語
予測、Word2Vecによる単語の関係学習、Seq2SeqによるNLPなど新しい分野を得意とする。
Keras TensorFlowやTheanoの上位レイヤで動作するライブラリ。比較的簡単にモデルを作成できるよう工夫されている。
Chainer Preferred Networks社が開発した日本発のライブラリ。ニューラルネットワーク用のライブラリである。シンプルなコーディングで、
単純なネットワークから、複雑なディープラーニングまで構築可能。
Pytorch Facebook社により開発されたライブラリ。主に、コンピュータビジョンNLPの分野でで利用されてきた実績あり。
Caffe UCバークレーで開発されたライブラリ。主にディープラーニングのフレームワークに用いられる。
OpenCV 画像処理に特化したライブラリだが、主要な機械学習アルゴリズムも利用できる。画像処理系ではデファクトスタンダード。
SHIFTなど一部商用ライセンスが必要な機能あり。
画像データ収集 画像処理 モデルの生成 予測 アクション
機械学習
• 複数のシンプルな識別器を組み合わせることにより、
複雑な物体を効率的に検出する手法
• 多数の正解画像と非正解画像によるアンサンブル学
習を行い、分類器を構築する
• アンサンブル学習
• 弱識別機をもとに強識別機を構築する学習方法
• 処理コストや精度の高さから広く利用されている
OpenCVのCascade分類器に物体検出
Copyright © 2021, Oracle and/or its affiliates
21
+ + =
弱識別器 1 弱識別器 2 弱識別器 3 強識別器
アンサンブル
学習
分類器
正解画像 非正解画像
学習用画像データを学習
画像データ収集 画像処理 モデルの生成 予測 アクション
機械学習
(OpenCV Pythonサンプルコード)
Cascade分類器での顔検出
Copyright © 2021, Oracle and/or its affiliates
22
# OpenCVライブラリをインポート
import cv2
# 分類器のオブジェクトを作成
# OpenCVで提供される学習済みの分類器(xmlファイル)のパスを指定
face_cascade = cv2.CascadeClassifier(‘haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier(‘haarcascade_eye.xml’)
# 検出用の画像データを読み込み、グレースケールに変換
img = cv2.imread(‘my_face.jpg’)
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 顔検出を行い、顔の位置(座標)を Rect(x,y,w,h) として取得
faces = face_cascade.detectMultiScale(img_gray)
# 顔の位置から目の検出を行い、顔と目を四角で囲う処理
for x, y, w, h in faces:
cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
face = img[y: y + h, x: x + w]
face_gray = img_gray[y: y + h, x: x + w]
eyes = eye_cascade.detectMultiScale(face_gray) # 目の検出
for (ex, ey, ew, eh) in eyes:
cv2.rectangle(face, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 2)
オリジナル画像 グレースケール化
haarcascade_frontalface_default.xml
(顔を検出するCascade分類器)
haarcascade_eye.xml
(目を検出するCascade分類器)
入力
顔と目の検出
オリジナル画像に投射
学習済みのCascade分類器
画像処理
画像データ収集 画像処理 モデルの生成 予測 アクション
機械学習
23 Copyright © 2021, Oracle and/or its affiliates
デモンストレーション
画像データ収集 画像処理 モデルの生成 予測 アクション
機械学習
ニューラルネットワークとは
Copyright © 2021, Oracle and/or its affiliates
24
出典 : Wikipedia
https://ja.wikipedia.org/wiki/%E7%A5%9E%E7%B5%8C%E7%B4%B0%E8%83%9E
• ニューロン:神経細胞
• シナプス:ニューロンと他のニューロンとの接合部分
• ニューロン間の結合(シナプス結合):あるニューロンから別の
ニューロンへ信号が伝達される状態。
• 活性化:あるニューロンが受け取った刺激の大きさが特定の大きさを
超えると、そのニューロンは次のニューロンへと信号を伝達する。こ
の状態を活性化と呼ぶ。
ニューロン
シナプス
活性化
0
出力層
結
果
入力層 隠れ層
• ノード:ニューロンに相当する。重みとバイアスを持つ。
• エッジ:シナプス結合に相当する。ノード間を接続する。
• 重み、バイアス:シナプス結合の強度。ノード間接続時の信号の大きさの
計算に利用される。
• 活性化関数:活性化を表す関数。次ノードへ伝える値を決める関数。
ニューラルネットワークの学習=ノード間の最適な重みとバイアスを探索し、
決定する処理
脳の神経細胞 ニューラルネットワーク
画像データ収集 画像処理 モデルの生成 予測 アクション
機械学習
1
CNNによる文字(数字)認識のサンプルコード
Copyright © 2021, Oracle and/or its affiliates
25
手書き文字画像データ
• 28x28ピクセル/画像
• 学習用6万枚
• 正解ラベルあり
出力層
結
果
入力層 隠れ層
「0から9の手書き文字画像を識別し、入力された画像を0から9のどれかに分類する問題」
手書き文字画像データ
• 28x28ピクセル/画像
• 学習用1万枚
• 正解ラベルあり
ニューラルネットワーク
学習用
テスト用
画像データ収集 画像処理 モデルの生成 予測 アクション
機械学習
画像データを配列に変換
Copyright © 2021, Oracle and/or its affiliates
26
手書き文字画像
(グレースケール化済み) 28
28
784 x 1 の一次元配列
変換
768
28x28ピクセルの二次元配列
(グレースケール: 0 – 255/ピクセル)
画像データ収集 画像処理 モデルの生成 予測 アクション
機械学習
CNNのネットワークの構成
Copyright © 2021, Oracle and/or its affiliates
27
784
隠れ層2
16ノード
出力層
10ノード
入力層
784ノード
隠れ層1
16ノード
0
1
2
8
9
結果
8
入力層では784個のノードを設定、784個のピ
クセル値を各ノードに入力
出力層では10個のノードを設定、分類対象の0から9までの10個の数字を
各ノードに割り当てる
784 x 1 の一次元配列
input
input
input
input
画像データ収集 画像処理 モデルの生成 予測 アクション
機械学習
28 Copyright © 2021, Oracle and/or its affiliates
デモンストレーション
画像データ収集 画像処理 モデルの生成 予測 アクション
機械学習
• 画像データとは、行列(配列)!
• 画像処理とは、行列演算(配列演算)!
• 画像データの機械学習は特殊ではない!
• 特殊なライブラリやアルゴリズムはほとんどない
• 機械学習で何をするかは課題ベースで!
• 機械学習ありきで考えず、機械学習がベストなのかどうか?から検討
まとめ
Copyright © 2021, Oracle and/or its affiliates
29
検証される際は、Oracle Cloud Infrastructure Data Scienceを活用ください
より詳しく知りたい方は、
Copyright © 2021, Oracle and/or its affiliates
30
タイトル 資料、動画
機械学習入門
~ディープラーニングの基礎から転移学習まで~
[資料] [動画]
画像データと機械学習
~OpenCVの画像処理からニューラルネットワークの画像認識まで~
[資料] [動画]
自然言語と機械学習
~自然言語の基本処理からBERTのファイン・チューニングまで~
[資料] [動画]
Oracleのビッグデータ系サーバレス・サービスを吟味しよう! [動画]
Apache Sparkことはじめ [資料]
Oracle Big Data Jam Session
Oracle Cloud Infrastructure Data Science
• Oracle Cloud Infrastructure Data Science のエッセンスをクイックレビュー(ブログ)
• Oracle Cloud Infrastructure Data Science 技術資料 (slideshare)
本日はご参加いただきありがとうございました。
【ことはじめ】 画像データの機械学習
Oracle Cloud ウェビナー
ファンデーションシリーズ
ご視聴
ありがとうございました
Copyright © 2021, Oracle and/or its affiliates
32
Copyright © 2021, Oracle and/or its affiliates
33
Appendix
34 Copyright © 2021, Oracle and/or its affiliates
GPUインスタンスの利用
VM.GPU3.1
• CPU : 2.0 GHz Intel Xeon Platinum 8167M x6
• GPU : Nvidia Tesla V100 x1
• Memory : 90GB
ワークロード
• 畳み込みニューラルネットワーク(CNN)の学習
• mnist_deep.py
(https://github.com/tensorflow/tensorflow/blob/r1.2/tensorflow/examples/tutorials/mnist/
mnist_deep.py)
Oracle Blog : TensorFlowにおけるGPUの威力
https://blogs.oracle.com/bigdata-dataintegration-jp/tfwgpu
OCI GPUインスタンスにてGPU有効時と無効時でCNNのワークロードの性能を比較
CPUのみ CPU + GPU
35 Copyright © 2021, Oracle and/or its affiliates
Blog : A practical guide to getting started with Natural Language
Processing
Blog : A practical guide to getting started with Natural Language Processing
• Nvidia GPU A100
• V100の後継モデル
• OCI Compute Service BM.GPU4.8で利
用可能
• CPU 64コア
• GPU A100 x8
Oracle Cloudで利用可能!

【ことはじめ】 画像データの機械学習 (Oracle Cloudウェビナーシリーズ: 2021年3月10日)

  • 1.
    【ことはじめ】 画像データの機械学習 Oracle Cloudウェビナー ファンデーションシリーズ 2021年3月10日 日本オラクル株式会社 テクノロジー事業戦略統括 大澤 清吾、園田 憲一
  • 2.
    • オラクルの機械学習への取り組み • 画像データを使った機械学習のユースケースとワークフロー •画像処理 • 機械学習 • まとめ 本日の内容 Copyright © 2021, Oracle and/or its affiliates 2
  • 3.
  • 4.
    Data Science &Machine Learning Oracle Data and AI Platform Copyright © 2021, Oracle and/or its affiliates. 4 Cloud Infrastructure Oracle Cloud Infrastructure Data Integration Big Data Service Data Flow Service Oracle Analytics Cloud Data Science Service Oracle Machine Learning Oracle Cloud Infrastructure Data Catalog Autonomous Database Oracle Cloud Infrastructure Streaming データソース Compute Networking Storage Security Cloud Native アプリケーション ビジネス アナリティクス Data Management Integration Analytics Data Science Virtual Machines Graph Analytics Object Storage GoldenGate & Oracle Data Integrator
  • 5.
    Data Science &Machine Learning Oracle Data and AI Platform Copyright © 2021, Oracle and/or its affiliates. 5 Cloud Infrastructure Oracle Cloud Infrastructure Data Integration Big Data Service Data Flow Service Oracle Analytics Cloud Data Science Service Oracle Machine Learning Oracle Cloud Infrastructure Data Catalog Autonomous Database Oracle Cloud Infrastructure Streaming データソース Compute Networking Storage Security Cloud Native アプリケーション ビジネス アナリティクス Data Management Integration Analytics Data Science Virtual Machines Graph Analytics Object Storage GoldenGate & Oracle Data Integrator
  • 6.
    エキスパートなデータサイエンティスト向けデータ分析プラットフォーム データ分析のコラボレーション作業を効率化 • データ分析におけるチーム作業やノウハウを集約、共有 • モデルの履歴管理や再現性管理 •モデルの構築から、学習、評価、デプロイまで実現 オープンソースサポート、All in Oneの開発環境 • Tensorflow、Keras、Scikit-learn、 XGBoostなどの 主要なオープンソースライブラリを事前設定 • Notebookのフルマネージドサービス データ分析作業を加速 • AutoML、モデル説明など独自ライブラリADS SDKを包含 エンタープライズデータサイエンス環境 • クラウド/オンプレの様々なデータソースとの連携 • 高速なOracle Cloud Infrastructureを利用 • PaaSとしては無償、IaaSのみの課金体系 Oracle Cloud Infrastructure Data Science Copyright © 2021, Oracle and/or its affiliates 6 v インフラストラクチャ データ・マネジメント データベース – データレイク - アクセス – 統合 – 準備 CPU – GPU – ストレージ – ネットワーク モデルトレーニング チームの作業を 集約、管理 オープンソース ライブラリ Jupyter Notebook モデルの管理 モデルの説明 Data Science, AutoML の加速 モデルの履歴や 再現性を管理 モデルのデプロイ
  • 7.
    Copyright © 2021,Oracle and/or its affiliates 7 画像データを使った機械学習 のユースケースとワークフロー
  • 8.
    画像データを使った機械学習 Copyright © 2021,Oracle and/or its affiliates 8 店舗来客の行動分析 医療画像の所見支援 文字認識による仕分け作業 イベント会場での入場者の 把握 農産物の発育状況の把握 製造ラインや工場現場での 不良品検知 ドライバーの危険運転、居眠 り運転の防止 不審者の検知 画像分類 (Image Classification) 物体検出 (Object Detection) 異常検知 (Anomaly Detection) ナンバープレートの識別
  • 9.
    画像データを使った機械学習のワークフロー Copyright © 2021,Oracle and/or its affiliates 9 画像データ収集 画像処理 モデルの生成 予測 アクション 学習のために大量の 画像を収集する。 揃った画像もあれば 整っていない画像もあ る。 機械学習にかける前に 画像処理を施し、学 習できるクオリティの画 像データを作成する。 大量の画像データをモ デルに学習をさせる。 構築されたモデルを評 価し、実ビジネスで利用 できるレベルの精度に チューニングする。 実画像データによる 予測を行う。 予測結果に基づいて 何らかのアクションを行 う。
  • 10.
    画像データを使った機械学習のワークフロー Copyright © 2021,Oracle and/or its affiliates 10 本日のスコープ 画像データ収集 画像処理 モデルの生成 予測 アクション 学習のために大量の 画像を収集する。 揃った画像もあれば 整っていない画像もあ る。 機械学習にかける前に 画像処理を施し、学 習できるクオリティの画 像データを作成する。 大量の画像データをモ デルに学習をさせる。 構築されたモデルを評 価し、実ビジネスで利用 できるレベルの精度に チューニングする。 実画像データによる 予測を行う。 予測結果に基づいて 何らかのアクションを行 う。 画像処理 機械学習
  • 11.
    Copyright © 2021,Oracle and/or its affiliates 11 画像処理 画像データ収集 画像処理 モデルの生成 予測 アクション 画像処理
  • 12.
    画像データとは Copyright © 2021,Oracle and/or its affiliates 12 画像データ 100 pixel 125 pixel B G R Row x100 Column x125 ピクセルの色空間 (RGBの例) 画像データの構成要素 5 12 25 0 205 129 132 222 200 255 222 201 0 255 255 100 10 25 100 10 25 20 30 255 230 129 255 画像データを表す行列(配列) 画像データ収集 画像処理 モデルの生成 予測 アクション 画像処理
  • 13.
    画像処理とは Copyright © 2021,Oracle and/or its affiliates 13 5 12 25 0 205 129 132 222 200 255 222 201 0 255 255 100 10 25 100 10 25 20 30 255 230 129 255 猫の画像 x 0 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 黒塗りの画像 B G R RGBの[0, 0, 0]は黒 画像データ収集 画像処理 モデルの生成 予測 アクション 画像処理
  • 14.
    • Open SourceComputer Vision Library • インテル社による開発・メンテナンス • Willow Garageに開発が移管(2009)その後 Itseez にメンテナンスが移管され、 その後インテルがItseezを買収(2016) • 開発言語 • C/C++、Java、Python • 対応OS • Mac OSやFreeBSD等全てのPOSIXに準拠したUnix系OS、Linux、 Windows、Android、iOS等をサポート • 画像データだけでなく動画データにも対応 OpenCV Copyright © 2021, Oracle and/or its affiliates 14 出典 : Wikipedia https://ja.wikipedia.org/wiki/OpenCV 画像データ収集 画像処理 モデルの生成 予測 アクション 画像処理
  • 15.
    「機械学習の前処理」としての画像処理 Copyright © 2021,Oracle and/or its affiliates 15 目的 処理例 主な手法 必用な特徴量を強調する 輪郭を強調する グレースケール化、2値化、閾値処理、正規化、 エッジ検出(Canny/Sobel/ラプラシアン)、輪郭検 出(findContours) 不要な特徴量を消す ノイズや背景を除去 平滑化、フィルタ(ガウシアン、中央値、バイラテラ ル)、モルフォロジー変換、ヒストグラム、次元圧縮、 リサイズ 特徴量を増やす 輪郭の途切れを補正する 画像を鮮明にする 反転、平滑化、明度変更、アノテーション 必用な特徴量をデータとして 取得する 物体の面積を取得する モーメント、面積、重心、ペリメータ 画像データ収集 画像処理 モデルの生成 予測 アクション 画像処理
  • 16.
    いろいろな画像処理 Copyright © 2021,Oracle and/or its affiliates 16 グレースケール化 ヒストグラム平坦化 二値化(閾値処理) 平滑化 (ガウシアンフィルタ) Canny法 Homography 画像データ収集 画像処理 モデルの生成 予測 アクション 画像処理
  • 17.
    17 Copyright ©2021, Oracle and/or its affiliates デモンストレーション 画像データ収集 画像処理 モデルの生成 予測 アクション 画像処理
  • 18.
    Copyright © 2021,Oracle and/or its affiliates 18 機械学習 画像データ収集 画像処理 モデルの生成 予測 アクション 機械学習
  • 19.
    画像データを使った機械学習のワークフロー Copyright © 2021,Oracle and/or its affiliates 19 画像データ収集 画像処理 モデルの生成 予測 アクション 学習のために大量の 画像を収集する。 揃った画像もあれば 整っていない画像もあ る。 機械学習にかける前に 画像処理を施し、学 習できるクオリティの画 像データを作成する。 大量の画像データをモ デルに学習をさせる。 構築されたモデルを評 価し、実ビジネスで利用 できるレベルの精度に チューニングする。 実画像データによる 予測を行う。 予測結果に基づいて 何らかのアクションを行 う。 画像データ収集 画像処理 モデルの生成 予測 アクション 機械学習
  • 20.
    主要な機械学習ライブラリ Copyright © 2021,Oracle and/or its affiliates 20 ライブラリ 各ライブラリの概要 Scikit-learn Pythonのオープンソース機械学習ライブラリ。Anacondaにも同梱され、世界中で広く使われている。 Tensorflow 2015年、Google社により開発された、機械学習に関する計算を行うフレームワーク。CNNによる画像認識、RNNによる単語 予測、Word2Vecによる単語の関係学習、Seq2SeqによるNLPなど新しい分野を得意とする。 Keras TensorFlowやTheanoの上位レイヤで動作するライブラリ。比較的簡単にモデルを作成できるよう工夫されている。 Chainer Preferred Networks社が開発した日本発のライブラリ。ニューラルネットワーク用のライブラリである。シンプルなコーディングで、 単純なネットワークから、複雑なディープラーニングまで構築可能。 Pytorch Facebook社により開発されたライブラリ。主に、コンピュータビジョンNLPの分野でで利用されてきた実績あり。 Caffe UCバークレーで開発されたライブラリ。主にディープラーニングのフレームワークに用いられる。 OpenCV 画像処理に特化したライブラリだが、主要な機械学習アルゴリズムも利用できる。画像処理系ではデファクトスタンダード。 SHIFTなど一部商用ライセンスが必要な機能あり。 画像データ収集 画像処理 モデルの生成 予測 アクション 機械学習
  • 21.
    • 複数のシンプルな識別器を組み合わせることにより、 複雑な物体を効率的に検出する手法 • 多数の正解画像と非正解画像によるアンサンブル学 習を行い、分類器を構築する •アンサンブル学習 • 弱識別機をもとに強識別機を構築する学習方法 • 処理コストや精度の高さから広く利用されている OpenCVのCascade分類器に物体検出 Copyright © 2021, Oracle and/or its affiliates 21 + + = 弱識別器 1 弱識別器 2 弱識別器 3 強識別器 アンサンブル 学習 分類器 正解画像 非正解画像 学習用画像データを学習 画像データ収集 画像処理 モデルの生成 予測 アクション 機械学習
  • 22.
    (OpenCV Pythonサンプルコード) Cascade分類器での顔検出 Copyright ©2021, Oracle and/or its affiliates 22 # OpenCVライブラリをインポート import cv2 # 分類器のオブジェクトを作成 # OpenCVで提供される学習済みの分類器(xmlファイル)のパスを指定 face_cascade = cv2.CascadeClassifier(‘haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier(‘haarcascade_eye.xml’) # 検出用の画像データを読み込み、グレースケールに変換 img = cv2.imread(‘my_face.jpg’) img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 顔検出を行い、顔の位置(座標)を Rect(x,y,w,h) として取得 faces = face_cascade.detectMultiScale(img_gray) # 顔の位置から目の検出を行い、顔と目を四角で囲う処理 for x, y, w, h in faces: cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2) face = img[y: y + h, x: x + w] face_gray = img_gray[y: y + h, x: x + w] eyes = eye_cascade.detectMultiScale(face_gray) # 目の検出 for (ex, ey, ew, eh) in eyes: cv2.rectangle(face, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 2) オリジナル画像 グレースケール化 haarcascade_frontalface_default.xml (顔を検出するCascade分類器) haarcascade_eye.xml (目を検出するCascade分類器) 入力 顔と目の検出 オリジナル画像に投射 学習済みのCascade分類器 画像処理 画像データ収集 画像処理 モデルの生成 予測 アクション 機械学習
  • 23.
    23 Copyright ©2021, Oracle and/or its affiliates デモンストレーション 画像データ収集 画像処理 モデルの生成 予測 アクション 機械学習
  • 24.
    ニューラルネットワークとは Copyright © 2021,Oracle and/or its affiliates 24 出典 : Wikipedia https://ja.wikipedia.org/wiki/%E7%A5%9E%E7%B5%8C%E7%B4%B0%E8%83%9E • ニューロン:神経細胞 • シナプス:ニューロンと他のニューロンとの接合部分 • ニューロン間の結合(シナプス結合):あるニューロンから別の ニューロンへ信号が伝達される状態。 • 活性化:あるニューロンが受け取った刺激の大きさが特定の大きさを 超えると、そのニューロンは次のニューロンへと信号を伝達する。こ の状態を活性化と呼ぶ。 ニューロン シナプス 活性化 0 出力層 結 果 入力層 隠れ層 • ノード:ニューロンに相当する。重みとバイアスを持つ。 • エッジ:シナプス結合に相当する。ノード間を接続する。 • 重み、バイアス:シナプス結合の強度。ノード間接続時の信号の大きさの 計算に利用される。 • 活性化関数:活性化を表す関数。次ノードへ伝える値を決める関数。 ニューラルネットワークの学習=ノード間の最適な重みとバイアスを探索し、 決定する処理 脳の神経細胞 ニューラルネットワーク 画像データ収集 画像処理 モデルの生成 予測 アクション 機械学習 1
  • 25.
    CNNによる文字(数字)認識のサンプルコード Copyright © 2021,Oracle and/or its affiliates 25 手書き文字画像データ • 28x28ピクセル/画像 • 学習用6万枚 • 正解ラベルあり 出力層 結 果 入力層 隠れ層 「0から9の手書き文字画像を識別し、入力された画像を0から9のどれかに分類する問題」 手書き文字画像データ • 28x28ピクセル/画像 • 学習用1万枚 • 正解ラベルあり ニューラルネットワーク 学習用 テスト用 画像データ収集 画像処理 モデルの生成 予測 アクション 機械学習
  • 26.
    画像データを配列に変換 Copyright © 2021,Oracle and/or its affiliates 26 手書き文字画像 (グレースケール化済み) 28 28 784 x 1 の一次元配列 変換 768 28x28ピクセルの二次元配列 (グレースケール: 0 – 255/ピクセル) 画像データ収集 画像処理 モデルの生成 予測 アクション 機械学習
  • 27.
    CNNのネットワークの構成 Copyright © 2021,Oracle and/or its affiliates 27 784 隠れ層2 16ノード 出力層 10ノード 入力層 784ノード 隠れ層1 16ノード 0 1 2 8 9 結果 8 入力層では784個のノードを設定、784個のピ クセル値を各ノードに入力 出力層では10個のノードを設定、分類対象の0から9までの10個の数字を 各ノードに割り当てる 784 x 1 の一次元配列 input input input input 画像データ収集 画像処理 モデルの生成 予測 アクション 機械学習
  • 28.
    28 Copyright ©2021, Oracle and/or its affiliates デモンストレーション 画像データ収集 画像処理 モデルの生成 予測 アクション 機械学習
  • 29.
    • 画像データとは、行列(配列)! • 画像処理とは、行列演算(配列演算)! •画像データの機械学習は特殊ではない! • 特殊なライブラリやアルゴリズムはほとんどない • 機械学習で何をするかは課題ベースで! • 機械学習ありきで考えず、機械学習がベストなのかどうか?から検討 まとめ Copyright © 2021, Oracle and/or its affiliates 29 検証される際は、Oracle Cloud Infrastructure Data Scienceを活用ください
  • 30.
    より詳しく知りたい方は、 Copyright © 2021,Oracle and/or its affiliates 30 タイトル 資料、動画 機械学習入門 ~ディープラーニングの基礎から転移学習まで~ [資料] [動画] 画像データと機械学習 ~OpenCVの画像処理からニューラルネットワークの画像認識まで~ [資料] [動画] 自然言語と機械学習 ~自然言語の基本処理からBERTのファイン・チューニングまで~ [資料] [動画] Oracleのビッグデータ系サーバレス・サービスを吟味しよう! [動画] Apache Sparkことはじめ [資料] Oracle Big Data Jam Session Oracle Cloud Infrastructure Data Science • Oracle Cloud Infrastructure Data Science のエッセンスをクイックレビュー(ブログ) • Oracle Cloud Infrastructure Data Science 技術資料 (slideshare)
  • 31.
  • 32.
  • 33.
    Copyright © 2021,Oracle and/or its affiliates 33 Appendix
  • 34.
    34 Copyright ©2021, Oracle and/or its affiliates GPUインスタンスの利用 VM.GPU3.1 • CPU : 2.0 GHz Intel Xeon Platinum 8167M x6 • GPU : Nvidia Tesla V100 x1 • Memory : 90GB ワークロード • 畳み込みニューラルネットワーク(CNN)の学習 • mnist_deep.py (https://github.com/tensorflow/tensorflow/blob/r1.2/tensorflow/examples/tutorials/mnist/ mnist_deep.py) Oracle Blog : TensorFlowにおけるGPUの威力 https://blogs.oracle.com/bigdata-dataintegration-jp/tfwgpu OCI GPUインスタンスにてGPU有効時と無効時でCNNのワークロードの性能を比較 CPUのみ CPU + GPU
  • 35.
    35 Copyright ©2021, Oracle and/or its affiliates Blog : A practical guide to getting started with Natural Language Processing Blog : A practical guide to getting started with Natural Language Processing • Nvidia GPU A100 • V100の後継モデル • OCI Compute Service BM.GPU4.8で利 用可能 • CPU 64コア • GPU A100 x8 Oracle Cloudで利用可能!