情報科学
【AI・データサイエンス】
第7回
画像解析
画像解析の概要 基本的な画像解析1:フィルタ処理 基本的な画像解析2:2値化画像解析の概要
はじめに
画像:理系・文系分野で問わず,有用なデータ
人や物の見た目や形状,環境の様子などを調べたいとき,画像が便利 ショッピングモールでの 客の移動を解析して 店舗配置をしたい 野菜の生育状況に 異常がないか 手間なく気づきたい ロボットに 自動で 片づけてほしい 文書を デジタル化して 分析したい
2次元上に数値を規則的に配置したデータ
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 カラー画像は赤・緑・青の明るさの数値 白 or 黒 の2値の画像 九州大学 数理・データサイエンス教育研究センター画像ってデータ?
Yes! 数値データのカタマリ
2値画像の例 グレースケール画像の例(
1
,
1
,
0
,
0
,
0
,
0
,
1
,
1
,
0
,...,
0
,
1
)
(
255
,
245
,
10
,
35
,
92
,
231
,
254
,...,
249
)
49個の0か1の組み合わせ (49次元ベクトル) 49個の0~255の組み合わせ (49次元ベクトル) 7×7画素 7×7画素 九州大学 数理・データサイエンス教育研究センター
数値データの配置や値そのものに注目
この画像に含まれている 0と1の並びは円と線分ですね! 2値画像 カラー画像 手の領域だけ切り取りたいので近い色 (赤:238,緑:184,青:140) のみ抽出しよう 本日の講義内容の二値化と関連 線形代数やベクトル・類似度 本日の講義内容のフィルタ処理が基本 九州大学 数理・データサイエンス教育研究センター画像処理
画質補正や画像合成など画像に対して行う処理全般
画像を分析しやすくするための処理を含む 明るさ補正 領域切り取り 合成
画像中の物体の位置やカテゴリを認識する
位置は矩形領域として検出される 自動運転やロボットに応用可能 ChangeDetection.NETのデータセットにおける YOLOv3による物体検出結果 YOLO: https://pjreddie.com/darknet/yolo/ ChangeDetection.NET:http://changedetection.net/ 九州大学 数理・データサイエンス教育研究センター領域分割
画像中から解析したい対象領域を抽出する
画素ごとに対象領域に属しているか判断される 植物の生長モデリングや自動運転システムに応用可能 葉領域分割 セマンティックセグメンテーション 出典: 左図:https://www.plant-phenotyping.org/datasets-home 右図:http://mi.eng.cam.ac.uk/projects/segnet/
2枚以上の画像から3次元情報を復元する
実空間の3次元モデリングやナビゲーションシステム ARアプリケーションなど応用は多岐にわたる 出典:http://grail.cs.washington.edu/rome/ Colosseumの3次元再構成結果 九州大学 数理・データサイエンス教育研究センター基本的な画像解析1:
フィルタ処理
フィルタ処理とは
フィルタ処理とは
出力画像の1画素の値を求めるために
入力画像のある領域内の画素値を用いる濃淡変換の処理
入力画像 出力画像滑らかな出力画像の
1画素の値
を
入力画像で
同じ位置の画素の値
と
その周辺の画素の値
から計算する
フィルタ マスク 原信号 1 3 3 3 3 3 0 1 0 3 0 0 九州大学 数理・データサイエンス教育研究センター
フィルタ処理(単純化した例)
フィルタ マスク 原信号 1 3 3 3 3 3 0 1 0 3 0 0 1/3 1/3 1/3 2.3フィルタ マスク 原信号 1 3 3 3 3 3 0 1 0 3 0 0 2.3 2.3 1/3 1/3 1/3 九州大学 数理・データサイエンス教育研究センター
フィルタ処理(単純化した例)
フィルタ マスク 原信号 1 3 3 3 3 3 0 1 0 3 0 0 2.3 2.3 2.3 1/3 1/3 1/3フィルタ マスク 原信号 1 3 3 3 3 3 0 1 0 3 0 0 2.3 2.3 2.3 3 1/3 1/3 1/3 九州大学 数理・データサイエンス教育研究センター
フィルタ処理(単純化した例)
フィルタ マスク 原信号 1 3 3 3 3 3 0 1 0 3 0 0 2.3 2.3 2.3 3 2 1/3 1/3 1/3フィルタ マスク 原信号 1 3 3 3 3 3 0 1 0 3 0 0 2.3 2.3 2.3 3 2 1.3 1/3 1/3 1/3 九州大学 数理・データサイエンス教育研究センター
フィルタ処理(単純化した例)
フィルタ マスク 原信号 1 3 3 3 3 3 0 1 0 3 0 0 2.3 2.3 2.3 3 2 1.3 0.3 1/3 1/3 1/3フィルタ マスク 原信号 1 3 3 3 3 3 0 1 0 3 0 0 2.3 2.3 2.3 3 2 1.3 0.3 1.3 1/3 1/3 1/3 九州大学 数理・データサイエンス教育研究センター
フィルタ処理(単純化した例)
フィルタ マスク 原信号 1 3 3 3 3 3 0 1 0 3 0 0 2.3 2.3 2.3 3 2 1.3 0.3 1.3 1.3 1/3 1/3 1/3フィルタ マスク 原信号 1 3 3 3 3 3 0 1 0 3 0 0 2.3 2.3 2.3 1 1/3 1/3 1/3 3 2 1.3 0.3 1.3 1.3 九州大学 数理・データサイエンス教育研究センター
線形フィルタ
要素ごとの掛け算の総和(畳込み)を行うフィルタ処理
同じ色の要素の 掛け算の総和 −1 −1 −1 −1 9 −1 −1 −1 −1 フィルタ 50 50 50 50 100100 120120120 240 入力画像 出力画像 同様の処理を位置を ずらしながら 画像全体にわたって行う この例では 50×(-1) + 50×(-1) + 50×(-1) + 50×(-1) + 100×(9) + 100×(-1)+ 120×(-1) + 120×(-1)+ 120×(-1) =240様々なフィルタ処理
フィルタ処理で何ができるのか?
平滑化
画像に含まれる不要な濃淡変動を軽減できる エッジ抽出
物体境界の候補や輪郭線を抽出することができる 画像の鮮鋭化 出典:CG-ARTS協会 ディジタル画像処理 ノイズ除去 鮮鋭化 エッジ抽出
画像に含まれる不要な濃淡変動を軽減するために用いる手法
平均化フィルタ 重み付き平均化フィルタ エッジ保存平均化フィルタ 出典:CG-ARTS協会 ディジタル画像処理 入力画像 平滑化フィルタの結果 解析の妨げとなる濃淡変動 (ゴマ塩ノイズ) 九州大学 数理・データサイエンス教育研究センター平均化フィルタ
フィルタによって覆われる領域内の画素値の平均を求めることと等価
3×3画素 5×5画素 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 1 25 平均化フィルタの例:
単純な平均値ではなく,
フィルタの原点に近いほど大きな重みをつけるのが特徴
重みをガウス分布に近づけたものをガウシアンフィルタという
1 16 2 16 1 16 2 16 4 16 2 16 1 16 2 16 1 16 1 256 4 256 6 256 4 256 1 256 4 256 16 256 24 256 16 256 4 256 6 256 24 256 36 256 24 256 6 256 4 256 16 256 24 256 16 256 4 256 1 256 4 256 6 256 4 256 1 256 3×3画素 5×5画素 2次元ガウス分布 九州大学 数理・データサイエンス教育研究センター
濃淡変動が滑らかになるが,画像全体がぼける
平均化フィルタの結果
出典:CG-ARTS協会 ディジタル画像処理
線形フィルタ(ここまでのフィルタ)
画像に含まれるノイズなどの不要な濃淡変動を軽減 画像にもともとあるエッジもなめらかになる欠点 非線形フィルタ
画像のエッジも保存可能 例:メディアンフィルタ 領域内の中央値(メディアン)を出力とするフィルタ 九州大学 数理・データサイエンス教育研究センター平滑化の結果比較
入力画像 メディアンフィルタの結果 平均化フィルタの結果
画像中の明るさが急激に変化する部分(エッジ)を取り出す処理
画像の局所的な特徴を抽出する 画像中から特徴や図形を検出したりするための前処理として利用される • 微分フィルタ • ソーベルフィルタ • ラプラシアンフィルタ 出典:CG-ARTS協会 ディジタル画像処理 九州大学 数理・データサイエンス教育研究センターエッジ抽出(単純化した例)
フィルタ マスク 原信号 3 3 3 3 3 3 0 0 0 0 0 0 -1/2 -1/2 1 0 0 0 0 3/2 -3/2 0 0 0 0 0
連続関数では
𝑓
′𝑥 = lim
ℎ→0𝑓 𝑥 + ℎ − 𝑓(𝑥)
ℎ
ディジタル画像では注目画素とその隣接画素との差分
各画素における横方向の差分を∆
𝑥𝑓 𝑖, 𝑗 縦方向の差分を∆
𝑦𝑓 𝑖, 𝑗
画素値の勾配は(∆
𝑥𝑓(𝑖, 𝑗), ∆
𝑦𝑓(𝑖, 𝑗))
縦方向と横方向の微分フィルタが必要 勾配の大きさ(∆
𝑥𝑓(𝑖, 𝑗))
2+(∆
𝑦𝑓(𝑖, 𝑗))
2 九州大学 数理・データサイエンス教育研究センター微分フィルタの例
0
0
0
0 -1 1
0
0
0
0
0
0
-1 1
0
0
0
0
0
0
0
−1 20
1 20
0
0
(a) (b) (c) 微分フィルタ(横方向)0
1
0
0 -1 0
0
0
0
0
0
0
0
1
0
0 -1 0
0
120
0
0
0
0
−1 20
(a) (b) (c) 微分フィルタ(縦方向)出典:CG-ARTS協会 ディジタル画像処理
入力画像 微分フィルタ(勾配の大きさ)
横方向の微分フィルタ 縦方向の微分フィルタ
ソーベルフィルタ
ノイズを抑えながらエッジを抽出する方法
微分フィルタではノイズに対しても敏感に反応する 入力画像 横方向微分 縦方向平滑化 出力画像 ソーベルフィルタ(横方向) 微分フィルタ 平滑化フィルタ 0 0 0 -1 0 1 0 0 0 0 1 0 0 2 0 0 1 0 -1 0 1 -2 0 2 -1 0 1等価
微分フィルタに比べてノイズが抑えられる. また,なめらかなエッジが抽出
ノイズを抑えながらエッジを抽出する方法
入力画像 横方向微分 縦方向平滑化 出力画像 微分フィルタ 平滑化フィルタ 0 0 0 -1 0 1 0 0 0 0 1 0 0 2 0 0 1 0 入力画像 0 -8 0 0 0 0 -10 0 5 0 0 -5 0 0 0 0 -10 0 0 0 0 -8 0 0 0 8 0 0 0 0 10 0 0 0 5 5 0 0 0 0 10 0 0 0 0 8 0 0 0 0 0 -26 0 5 0 0 -33 0 10 0 0 -30 0 5 0 0 -33 0 0 0 0 -26 0 0 0 ノイズ 取り出したい エッジ 微分フィルタ適用後 絶対値では ノイズとエッジを 区別ができない 平滑化フィルタ適用後 エッジ部分が 滑らかに ノイズは 抑える 九州大学 数理・データサイエンス教育研究センターエッジ抽出の結果比較
入力画像 微分フィルタ ソーベルフィルタ
方向に依存しないエッジが直接得られる
2次微分フィルタ (横方向) 0 0 0 -1 1 0 0 0 0 二つの1次微分 (横方向)の差 ラプラシアンフィルタ 0 1 0 1 -4 1 0 1 0 0 0 0 0 -1 1 0 0 0 0 0 0 1 -2 1 0 0 0 0 1 0 0 -2 0 0 1 0 2次微分フィルタ (縦方向) ⊖ ⊕ 2次微分(縦と横方向)の和 九州大学 数理・データサイエンス教育研究センターラプラシアンフィルタの結果
入力画像 ラプラシアンフィルタ結果
エッジ部分の両側で明るい部分をより明るく,
暗い部分をより暗くし,エッジの傾斜を急にする
=鮮鋭化
0 1 0 1 -5 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 -4 1 0 1 0 ⊖ ラプラシアンフィルタ 鮮鋭化フィルタ 入力画像 入力画像 鮮鋭化 出典:CG-ARTS協会 ディジタル画像処理 九州大学 数理・データサイエンス教育研究センター小休止~数学と画像~
先端技術はムズカシイ数学の塊だけど,
基本にあるのは実はカンタンな概念も多い!
高精度に物体認識できる深層学習もフィルタ処理と関係アリ! 数千枚以上のフィルタ処理 で構成して,認識に有用な特徴を 抽出する深層学習! 演算回数が多いだけの 足し算と掛け算 何回もいろんなフィルタ処理すれば,シマウマ認識に役立つ特徴がわかる? 単純なエッジ検出だが, シマウマの縞々模様を 抽出しているとも見える. シマウマ認識したい基本的な画像解析2:
2値化
文書のデータ化
文書をスキャンして得た画像から単語情報を抽出したい
単語情報抽出の前処理として,文字領域候補の抽出を考える
このページには 「情報科学」と 「画像」という単語が 含まれている あるページのスキャン画像
画素の明るさに基づいて,文字と紙の画素に分類する
白い紙の上に黒い文字のみの文書とする 画像は0~255の範囲の明るさで表現される 2値化=黒(文字)と白(紙)の2値の画像に変換する処理
ある値(しきい値)を基準に黒か白の判定を行う 明るさ:30 明るさ:200 明るさ≧110 →紙 明るさ< 110 →文字 明るさ:0 明るさ:1 *手動でしきい値を110と設定九州大学 数理・データサイエンス教育研究センターしきい値の影響
しきい値の設定は2値化の結果に大きく影響する
しきい値の設定によって文字が欠けたり, 紙の領域を文字領域候補としたりしてしまう 毎回手動で,設定するのは面倒...
しきい値70 しきい値110 しきい値150 各しきい値による2値画像の違い
明るさの分布に基づいて,しきい値を自動設定
二つの山に分けることができる明るさがしきい値としてよさそう! 明るさの各値が 何個あるか 数える 自動的に計算した しきい値124による2値画像 詳細: 判別分析法 クラス間分散・クラス内分散に基づいて 二つの山に分けるしきい値を求める. 注意: 二つの山に分けられない場合はうまくいかない 九州大学 数理・データサイエンス教育研究センター文字領域候補の抽出として十分?
明るさのみを用いているため,不要な領域を抽出してしまう
→もっと“文字らしい” 特徴を用いる
よい特徴を設計することは難しい 学習データから自動的に特徴を 学習させる技術もある(深層学習)→文字認識を組み合わせる
文字抽出と文字認識を同時に実行 「」や^v^は不要
画像
画像処理の応用例 フィルタ処理
平滑化 エッジ抽出 鮮鋭化 2値化
九州大学 数理・データサイエンス教育研究センター0 0 3 3 3 0 3 0 3 0 3 0 0 3 3 3