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

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

バックナンバーはこちら。
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フィルタでエッジ検出ができるっぽいのはわかったんだけど・・・。

フクさん
フクさん

なんか気になることがあるみたいだね。

太郎くん
太郎くん

エッジ部分って、白い線にはなってるんだけど、
この線って太かったり、細かったりするじゃん?

フクさん
フクさん

まぁ微分した結果が出てるだけだからね。

太郎くん
太郎くん

実際は純粋な一本線みたいな感じで検出できる方が理想的だとは思うだよね。

フクさん
フクさん

うむ。
それは正しい。

太郎くん
太郎くん

でも、なんか大変そうだし、特に取り扱わなくてもいっか。

フクさん
フクさん

それほど難しくはないな。

太郎くん
太郎くん

(こいつの言う「難しくない」はあんまり信用ならねぇんだよなぁ・・・。)

どうなっていたら良いのか。

太郎くん
太郎くん

ちなみに、その難しくないとされてる手法を使うとどんな感じになる想定なの?

フクさん
フクさん

こんなイメージだな。

元画像

犬と自転車

Sobelフィルタ実施

合成したSobelフィルタ

某処理実施

犬と自転車(某処理実施)
太郎くん
太郎くん

おー!
確かに一本線になってるっぽい!

何をしたのか?

太郎くん
太郎くん

で、これって何をしたの?

フクさん
フクさん

非極大値抑制
Non-maximum suppressionとも呼ばれるな。
YOLOのような物体検出器でも同様の用語が出てくるが、それとは別物
物体検出器の方は複数のバウンディングボックス候補のうち最も正しいものだけを残すって機能だな。
まぁ、広義で同一の概念とは言えるかもしれないが。

太郎くん
太郎くん

名前的には極大値じゃないものを抑制?
それとも、極大値抑制をしないもの?

フクさん
フクさん

前者の意味だな。
つまり、極大値だけをピンポイントで残す手法だ。

太郎くん
太郎くん

手法の名前とどんなことやってそうかはわかったけど、
具体的に何すればいいかはさっぱりわからん。

フクさん
フクさん

そこは順に説明していこう。
以下の説明を想定している。

  • 非極大値抑制の大雑把な雰囲気
  • 2次元平面に実施する場合の考え方
  • 勾配の特定方法
  • 斜面の方向パターン
太郎くん
太郎くん

(なにが「難しくない」だ・・・。十分カオスじゃねぇか・・・。)

まとめ

フクさん
フクさん

まとめだよ。

  • エッジ検出もっとシビアに行いたい。
  • 非極大値抑制を使うといい感じになる。
  • 同様の用語が物体検出器でも出てくるが別物。
  • 具体的な話は順を追って説明する。

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

コメント

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