Canny Edge Detectorの制限は何ですか?


18

エッジ検出アルゴリズムおよびエッジ検出を使用するアプリケーションに関する文献の大部分は、キャニーのエッジ検出器を参照しています。エッジ検出のほぼ「解決策」のように見えるほどです。確かに、ノイズのバランスを取り、エッジを保存するのに最適です。

しかし、単純な好奇心として、Cannyのエッジ検出器に関心のある領域はありますか?または、Cannyが最適ではないアプリケーションの領域はありますか?

これに関連して、実装の高速化はそれほど重要ではありません。エッジ検出器の良し悪しは、生成されるエッジの品質と有用性に焦点を当てる必要があります。

また、私は実際に実装固有の問題に焦点を合わせていません。アルゴリズムに固有のより理論的な制限または特性を探しています。


興味深いことに、ここでこの質問は葉の静脈を分割する最良の方法ですか?必要なエッジ検出。表示されている結果の1つはCannyであり、見た目はあまり良くありません。しかし、多くの側面は実装の問題となる可能性があります。それについて何か意見はありますか?
ディパンMehta

私の答え(dsp.stackexchange.com/questions/1714/…)をご覧ください。キャニーから得たものよりも良い結果を示しています。
-Geerten

可能性のある(部分的な)spdsp.stackexchange.com/questions/74/…(または少なくとも関連)。質問自体は(部分的に)ほとんど同じであり、回答はこの質問の回答とは多少異なります。
Geerten

1
@DipanMehta:それでは、エッジではないものを検出するためにCannyエッジ検出器を使用すべきではありませんか?:)
エンドリス

回答:


19

私の経験から、次の点が制限事項です。

  • 結果はバイナリです。エッジがエッジとして適格である「程度」の尺度が必要な場合があります(Sobel振幅エッジ検出器からの強度画像など)
  • パラメーターの量は、その少しだけ良い結果を得るための無限の調整につながります。
  • 人間の目+心にとって非常に明白に見える完全なエッジを抽出するために、結果のエッジを接続する必要があります。
  • また、ガウス平滑化のため:ガウスカーネルのサイズによっては、エッジの位置がオフになる場合があります。

  • この方法には、コーナーとジャンクションに問題があります。

    • ガウス平滑化はそれらをぼかすため、検出が困難になります(エッジ自体も同様です)
    • コーナーピクセルは、隣接するピクセルの方向が間違っているため、端が開いたままになり、ジャンクションが失われます

この最後の問題は、リンクされた論文で示されているこれらの例の図で示されているように、エッジをより良く接続し、良好な接合をもたらすSUSANメソッドによって対処されます。

テスト入力画像:

テスト入力画像

結果SUSAN:

結果SUSAN

結果キャニー:

結果キャニー

SUSANがCannyの代わりにコーナーとジャンクションを見つけるのをはっきりと見ることができます。


わかりました、あなたが言及しているのは主に実装関連の問題です。私はそのような問題が存在する可能性があることに同意しますが、私の意見では、他の多くのエッジ検出や他のアルゴリズムがあります。アルゴリズムに固有のより理論的な制限または特性を探しています。
ディパンMehta

私は同意しません、しきい値処理(バイナリイメージにつながる)、およびパラメーターはメソッドの一部です(Cannyの論文で説明されています)。これは実装の詳細とは見なされません。
-Geerten

しきい値処理はすべてのエッジ検出器によって実行されるため、各エッジ検出器の出力バイナリです。パラメーターの調整とガウス平滑化の面での難しさについては指摘しますが、LoGタイプの演算子とは異なり、キャニーは実際にノイズがある場合に最適な量の平滑化を見つけます。
ディパンMehta

2
しきい値検出は、すべてのエッジ検出器によって実行されるわけではありません(例えば、Sobel、私の答えで述べたように)。多くの場合、これは一般的かつ論理的なフォローアップ手順ですが、すべてのエッジ検出方法の基本的な手順ではありません。
-Geerten

6

または、Cannyが最適ではないアプリケーションの領域はありますか?

いくつか考えられます:

  • 閉じた曲線が必要な場合は、それらを保証できる検出器の方が優れている可能性があります(たとえば、ラプラシアンまたは流域のセグメンテーションのゼロ交差)
  • 一部の領域でコントラストが低い同種のオブジェクトを検出しようとしている場合、グローバル情報(流域セグメンテーションなど)を使用するセグメンテーションメソッドを使用すると、より良い結果が得られます。

1

私の経験では、キャニーエッジ検出器を使用したエッジ検出のプロセスは、エッジを検出する前にエッジを滑らかにし、すべてのエッジをエラーなく検出するために、フィルターのタイミングと長さが完全に一致する必要があります。


1

Canny検出器の1つの制限について言及したいと思います。これは、その適用を妨げるものであり、それはパラメーター設定です。パラメータ設定は、Canny検出器の問題だけでなく、他のエッジ検出方法の問題でもあると思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.