MATLAB,Python,Scilab,Julia比較 第3章 その40【非極大値抑制⑤】

MATLAB,Python,Scilab,Julia比較 第3章 その40【非極大値抑制⑤】 数値計算
MATLAB,Python,Scilab,Julia比較 第3章 その40【非極大値抑制⑤】

バックナンバーはこちら。
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

斜面の方向パターン

太郎くん
太郎くん

とりあえず、非極大値抑制の理屈的な話は終わったのかな?

フクさん
フクさん

そうだね。

太郎くん
太郎くん

となると、あとは実際にどう試すか。
ってところか。

フクさん
フクさん

動作確認用の処理は以下の流れを想定している。

  • Sobelフィルタ等の微分フィルタで以下を推定
    • x軸、y軸の濃淡変化量
    • 変化強度(ノルム)
  • 「x軸、y軸の濃淡変化量」から勾配方向角を推定
    • arntan関数を利用
  • 勾配方向を垂直(UD)、水平(LR)、斜め右上から右下(RULD)、斜め左上から右下の4パターンに丸め。
  • 勾配方向角に応じて極大値評価をして非極大値だったら「変化強度(ノルム)」 を0値埋め
  • 画像出力
太郎くん
太郎くん

なんかすげぇことになってるな・・・。

フクさん
フクさん

一個一個はこれまでに説明した通りでそれほど複雑ではない。

太郎くん
太郎くん

(いつも言うんだよなー。「複雑ではない」って)

勾配方向角度について

フクさん
フクさん

あと、勾配方向の角度についてだが、一般的には弧度法を使用する。
しかし、今回はイメージのしやすさ重視で度数法を使用する。

太郎くん
太郎くん

弧度法ってラジアンとかの?

フクさん
フクさん

そうそう。
回転半径が分かれば、すぐに円周上の移動距離が分かって便利ではあるんだけど、
人間が見るにはイメージしずらいんだよね。

フクさん
フクさん

弧度法についてはここ参照。

太郎くん
太郎くん

たしか2πが360°、πで180°、1/2πで90°ってところか。
まぁ、度数法の方がすぐにどこら辺かは分かりやすいね。

フクさん
フクさん

というわけで次回から実際にプログラムを組んでいく。

太郎くん
太郎くん

おー!

まとめ

フクさん
フクさん

まとめだよ。

  • 非極大値抑制をプログラムで実現する手順を確認。
    • 一個一個はそれほど複雑ではない。(はず)
  • 勾配方向角度については、度数法で扱う。
    • プログラム的には弧度法の方が扱いやすいが、人間から見た分かり易さを重視。

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

コメント

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