44
Copyright © SAS Institute Inc. All rights reserved. Pythonで操るSAS Viyaの画像処理技術入門編 ~フィルタリングからマッチングまで~ SAS Institute Japan 株式会社

Pythonで操るSAS Viyaの画像処理技術入門編

Embed Size (px)

Citation preview

Page 1: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Pythonで操るSAS Viyaの画像処理技術入門編~フィルタリングからマッチングまで~

SAS Institute Japan 株式会社

Page 2: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Agenda

企業を取り巻く環境の変動 (画像技術関連)

画像処理の必要性増加

従来SASの画像処理機能 (例:手書き文字認識)

SAS Viyaの画像処理(image processing)機能

基本機能デモ(Pythonから操る、画像読込、フィルタリングからマッチングまで)

車体損傷箇所検出デモ

SAS Viyaで実現予定のCNNを用いた画像解析デモ

SAS Viyaとは、そのメリットとは!

Page 3: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

企業を取り巻く環境の変動

AI、コグニティブ技術の進展

製品の品質向上生産コスト削減

H/W処理速度向上と下落する価格

顧客志向囲い込み、離反防止

高齢化社会医療費の増大

不正・犯罪増加手口の巧妙化

変化の時代に求められる能力とは....

Page 4: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

画像処理技術の必要性増加

深層学習による画像解析精度向上

製品の欠陥検出精度向上

大量の画像データを高速に解析

画像検索、顔認証ターゲットマーケティング

医療費削減早期発見早期治療

顔認証による個人識別・不正検知

画像処理技術を今のビジネスに活かす

Page 5: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

&画像処理

画像処理技術に対するSASのアプローチを過去、現在、未来に分けて紹介します。

Page 6: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

画像処理に関するSASのテクノロジー過去~現在~未来

(例)オープンソース技術+SASで、手書き文字認識

Python & OpenCV

前処理グレイスケール化

2値化・・・

特徴量抽出ニューラルネットワーク(自己符号化器)

・・・

学習と識別データマイニング

・・・

Python & OpenCV

結果の表示特徴量マッチング

・・・

SAS

Page 7: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

手書き数字の認識

• MNIST*1の手書き数字データ

http://yann.lecun.com/exdb/mnist/

• 0-9の手書き数字

• 28*28ピクセル

• グレースケール(0-255)

• 学習用の数字:60,000件

• 検証用の数字:10,000件

*1・・・The Mixed National Institute of Standard and Technologies

手書の「4」に見える画像は、数字の「4」である可能性が最も高いと精度高く判別

Page 8: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

画像処理に関するSASのテクノロジー過去~現在~未来

画像読込~フィルタリング~特徴量抽出~マッチング

前処理グレイスケール化

2値化

・・・

特徴量抽出ニューラルネットワーク(自己符号化器)

・・・

学習と識別データマイニング

・・・

結果の表示特徴量マッチング

・・・

SASSAS SAS

SAS Viya

インメモリーテーブル イメージ(画像)型

SAS Viyaには、画像処理専用機能が搭載されています。

SAS Viyaだけで全てを実行可能

SAS Viyaでは「画像型」を新たにサポート

Page 9: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

画像処理に関するSASのテクノロジーインメモリーテーブル:イメージ(画像)型

_id_ = イメージデータごとのユニークID値

_type_ = イメージファイルフォーマット(3文字の文字列)

_path_ = イメージデータファイルのフルパス

_size_ = イメージデータサイズ(バイト)

_image_ = イメージ全体のバイナリBLOB データ

.

.

.

.

Page 10: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

画像処理に関するSASのテクノロジー主な画像処理専用機能

画像読込 画像フィルタリング 画像マッチング

画像比較

• イメージファイル• ZIPファイル• ディレクトリ階層内の上記ファイル

• URL

• バイラテラルフィルタ• ボックスフィルタ•画像ピラミッド• キャニーエッジ検出•輪郭検出•色空間変換• ガウシアンフィルタ• パッチ抽出• ラプラシアンフィルタ• メディアンフィルタ• モルフォロジー•画像の正規化

•画像の粒度変換•画像のサイズ変換• ソーベルフィルタ• 2値化(THRESHOLD)•画像変形(回転, 先鋭化, 色調, 明暗度, …)• etc

• テンプレートマッチング•特徴点マッチング(BRISK|ORB|ORB&BRISK)

•元画像とターゲット画像の比較(SSIM|PSNR)

Page 11: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

SAS Viyaの画像処理機能画像フィルタリング / 画像検出 (一部抜粋)

• グレースケール

• バイラテラルフィルタ

• 2値化 (Thresholding)

• エッジ検出

• 輪郭検出

• 輪郭直線近似

• 外接矩形

• グループ化外接矩形

https://github.com/sassoftware/sas-viya-programming/blob/master/python/AX2016/Image%20Analytics%20Using%20SAS%20Viya.ipynb

Page 12: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 1Jupyter NotebookからPythonでSAS Viyaの画像処理実行

画像をメモリーへロード

Page 13: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 1

グレースケール化

Page 14: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 1

ノイズ削減:バイラテラルフィルタ

Page 15: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 12値化(Thresholding)

Page 16: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 1エッジ検出:ラプラシアンフィルタ

Page 17: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 1輪郭検出

Page 18: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 1外郭矩形

Page 19: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 2Jupyter NotebookからPythonでSAS Viyaの画像処理実行

Page 20: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

CAS

c1 c2 c3 c4 c5 c6 c7 c8 C9

208.0 220.0 225.0 232.0 237.0 244.0 250.0 254.0 255.0

_channel1_ _channel2_ _channel3_ _channel4_ _source_id_ _reference_id_

0.00245 0.00481 0.00147 1.0 sor.jpg ref.jpg

loadImages

flattenImageTable

compareImages

Column jpg minWidth maxWidth … max3rdChannel

0 _image_ 1.0 704.0 704.0 … 255.0

colorJittering

colorShifting darken

horizontalFlipinvertPixelslighten

pyramidDown

pyramidUp

rotateRightsharpen verticalFlip

rotateLeft

augmentImages

summarizeImages

matchImages

saveimages

Demonstration 2SAS Viyaのインメモリー分析エンジン:CAS(Cloud Analytic Services)

Page 21: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

CASloadImages

contour

Contour image is combination of: Convert_color Bilateral_filter Threshold Laplacian Contours

processImages

processImages

resize get_patch sobel normalize rescale

Add_constant Mutation_sharpHist_equal_global Hist_equal_addl Mutation_vert

morphology Box_filter Gaussian_filter Build_pyramidMedian_filter

Convert_color Bilateral_filter threshold Canny_edgelaplacian

Demonstration 2SAS Viyaのインメモリー分析エンジン:CAS(Cloud Analytic Services)

Page 22: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Viyaの画像処理例マッチング:テンプレートマッチング

元画像

テンプレート画像

マッチング結果

Page 23: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Viyaの画像処理例マッチング:特徴点マッチング

テンプレート画像 マッチング結果

画像上での特徴となる点(特徴点)を抽出し、マッチングすることで、画像が拡大、縮小や回転された形状でもマッチングが可能になります。

拡大 拡大と回転

右90°回転 左90°回転テンプレート画像

Page 24: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

自動車保険会社:車体損傷度合解析

• 最大の課題 : データ品質と整合性

- その日の状態 (暗い, 明るい)

- 画像の解像度 (不鮮明, 拡大, 縮小)

- 画像のアングル (角度, 調整)

Use case

Page 25: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

画像フィルタリング

画像サイズの標準化

グレースケール化

ノイズ削減と2値化

輪郭検出

Page 26: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 3Jupyter NotebookからPythonでSAS Viyaの画像処理実行画像をメモリーへロード&サイズ標準化

Page 27: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 3

グレースケール化

Page 28: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 3

ノイズ削減:バイラテラルフィルタ&Thresholding

Page 29: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 3

エッジ検出:ラプラシアンフィルタ

Page 30: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

猫?

物体1 物体2

物体3

過去:手書文字認識は可能

過去:猫か犬かの判別は困難

現在:物体の認識や画像マッチングは可能

Page 31: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

猫?

カモメ? やしの木?

山田花子?

物体が何であるかを精度高く認識できれば…

その実現のためには深層学習技術が必要

Page 32: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

画像処理に関するSASのテクノロジー過去~現在~未来

画像読込~フィルタリング~深層学習~マッチング

前処理グレイスケール化

2値化

・・・

特徴量抽出~モデル作成~スコアリングCNN(畳み込みニューラルネットワーク)

結果の表示機械学習

データマイニング・・・

SASSAS SAS

SAS Viya

インメモリーテーブル イメージ(画像)型

2017年後半に予定されているSAS Viyaの新版には各種ディープラーニングの機能が搭載予定

現行の画像フィルタリング機能+CNNで画像認識精度を格段に向上可能

Page 33: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 4Jupyter NotebookからPythonでSAS Viyaの画像処理実行

画像をメモリーへロード

Page 34: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 4

CNN構造定義

入力層

畳込み層1畳込み層2

プーリング層

全結合層

出力層

Page 35: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 4

CNNモデル作成

検証用画像をメモリーへロード

スコアリング

Page 36: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 4

モデル精度評価

Page 37: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 4

事前に画像フィルタリングを行いモデル精度を改善しよう!

画像スケールの標準化&コントラストの正規化

Page 38: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 4

再学習・モデル再作成

Page 39: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 4

検証用画像もスケールの標準化&コントラストの正規化

再スコアリング

モデル精度評価

Page 40: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 4

さらに画像フィルタリングを行いモデル精度を改善しよう!

1画像ごとに4種類の異なる画像パターンを作成

Page 41: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 4

再学習・モデル再作成

再スコアリング

Page 42: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Demonstration 4

モデル精度評価

Page 43: Pythonで操るSAS Viyaの画像処理技術入門編

Copyright © SAS Inst itute Inc. A l l r ights reserved.

SAS® Viya™

アナリティクスのための全く新しいプラットフォーム

オンプレミスまたはプライベート/パブリッククラウド

IaaS/PaaS/SaaS

様々な業務課題に柔軟に対応

スケーラビリティ

Public REST APIによるアプリケーション拡張・社内外システム連携

使い慣れた言語から直接利用(SAS, Python, R, Lua, Java)

ITガバナンス/アナリティクスガバナンス

アナリティクス・ライフサイクル全体をカバー

容易な環境管理

パフォーマンス・拡張性に優れた独自のインメモリテクノロジー

画像処理やテキスト解析を含む網羅的な機械学習・アナリティクス機能

高度な機能をセルフサービスで

画像解析は、SAS Viyaに搭載されている機能の一部にすぎません。

企業(組織)の標準分析プラットフォームとしてSAS Viyaは最適です。

Page 44: Pythonで操るSAS Viyaの画像処理技術入門編

sas.com

Copyright © SAS Inst itute Inc. A l l r ights reserved.

https://www.sas.com/ja_jp/software/viya.html

Viya 検索