MATLAB,Python,Scilab,Julia比較 第3章 その28【微分フィルタ④】

MATLAB,Python,Scilab,Julia比較 第3章 その28【微分フィルタ④】 数値計算
MATLAB,Python,Scilab,Julia比較 第3章 その28【微分フィルタ④】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia3-backnumber/

はじめに

畳み込み演算の微分フィルタの話。
ここまでのまとめ&畳み込みカーネルの方針

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

ここまでのまとめ【再掲】

太郎くん
太郎くん

前回まとめた話を再掲すると、

  • 微分特性を付けてエッジ検出したい
  • 微分の特性をより強くしたい
  • 移動平均でノイズをちょっと除去したい
  • 元画像の特徴を残すために単純移動平均じゃなくてガウシアンにしたい
太郎くん
太郎くん

で、これらを一発で解決してくれる畳み込みカーネルがあるとかなんとか言ってたね。

フクさん
フクさん

そうそう。
それを今回説明していく。

微分特性を付けてエッジ検出したい

フクさん
フクさん

まずは、微分特性を持った畳み込みカーネルの作り方。
これだけでもエッジ検出は可能だ。

\(
K_{dif}=
\begin{bmatrix}
0 \\
1 \\
0 \\
\end{bmatrix}
\begin{bmatrix}
-1 & 1 & 0
\end{bmatrix}=
\begin{bmatrix}
0 & 0 & 0 \\
-1 & 1 & 0 \\
0 & 0 & 0 \\
\end{bmatrix}
\)

太郎くん
太郎くん

この計算の意味がわからん。

フクさん
フクさん

まぁ、単純に真ん中の”行”に対して、引き算を実施する行ベクトルを入れ込む。
程度の意味合いだな。
この書き方は、この後に意味を持ってくる。

太郎くん
太郎くん

じゃー、とりあえず放置しよう。

微分の特性をより強くしたい

フクさん
フクさん

次は、微分の特性を強くしたい。
以下の数式で畳み込みカーネルを導出する。

\(
K_{dif1}=
\begin{bmatrix}
0 \\
1 \\
0 \\
\end{bmatrix}
\begin{bmatrix}
-1 & 0 & 1
\end{bmatrix}=
\begin{bmatrix}
0 & 0 & 0 \\
-1 & 0 & 1 \\
0 & 0 & 0 \\
\end{bmatrix}
\)

太郎くん
太郎くん

わざと隙間を空けて、離れた範囲で差をとるってやつだね。

移動平均でノイズをちょっと除去したい

フクさん
フクさん

次は移動平均の要素を入れ込む。
ここでは、列方向を移動平均、行方向を微分って考え方になる。

\(
K_{pre}=
\begin{bmatrix}
1 \\
1 \\
1 \\
\end{bmatrix}
\begin{bmatrix}
-1 & 0 & 1
\end{bmatrix}=
\begin{bmatrix}
-1 & 0 & 1 \\
-1 & 0 & 1 \\
-1 & 0 & 1 \\
\end{bmatrix}
\)

太郎くん
太郎くん

ほう!
これはまた、面白い感じになったね。

元画像の特徴を残すために単純移動平均じゃなくてガウシアンにしたい

フクさん
フクさん

最後にガウシアンだ。
まぁ、さっきの移動平均を追加したものに対してちょい修正するだけだな。

\(
K_{sbl}=
\begin{bmatrix}
1 \\
2 \\
1 \\
\end{bmatrix}
\begin{bmatrix}
-1 & 0 & 1
\end{bmatrix}=
\begin{bmatrix}
-1 & 0 & 1 \\
-2 & 0 & 2 \\
-1 & 0 & 1 \\
\end{bmatrix}
\)

太郎くん
太郎くん

真ん中の行を強くして、結果として元画像の特性が残るようにしたのか。

フクさん
フクさん

実は、これら畳み込みカーネルには名称があるのだが、
そこは次回説明しよう。

まとめ

フクさん
フクさん

まとめだよ。

  • 各種畳み込みカーネル。
    • 微分特性を付けてエッジ検出したい。
    • 微分の特性をより強くしたい。
    • 移動平均でノイズをちょっと除去したい。
    • 元画像の特徴を残すために単純移動平均じゃなくてガウシアンにしたい。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました