Cannyエッジ検出器は、画像内の広範囲のエッジを検出するために多段階アルゴリズムを使用するエッジ検出オペレータです。これは1986年にJohn F. Cannyによって開発され、彼はまた、この手法が機能する理由を説明する計算論的エッジ検出理論を生み出しました。このアルゴリズムは、コンピュータビジョンシステムにおいて、処理すべきデータ量を削減しながら重要な境界を保持して、画像から有用な構造情報を抽出するために広く応用されています。
この検出器は、3つの基準を満たすように設計されています:低い誤検出率(できるだけ多くのエッジを正確に捉える)、良好な位置特定(検出されたエッジが真のエッジ上に中心がある)、そして最小限の応答(各エッジは一度だけマークされ、ノイズによって誤ったエッジが生成されないこと)。Cannyは、変分法を用いて最適な関数を見つけ、それをガウス関数の一次導関数で近似しました。その厳密な定義とこれらの基準に対する最適性により、これは最も人気のあるエッジ検出方法の1つとなっています。
プロセス概要
このアルゴリズムは5つのステップに分けられます:画像を平滑化するためのガウスフィルタの適用、輝度勾配の計算、スプリアス応答を低減するための勾配強度のしきい値処理、潜在的なエッジを決定するための二重しきい値の適用、そして強いエッジに接続されていない弱いエッジを抑制するためのヒステリシスによるエッジ追跡です。
ガウスフィルタ
すべてのエッジ検出結果はノイズの影響を受けやすいため、フィルタリングは不可欠です。ガウスフィルタカーネルを画像に畳み込んで平滑化し、明確なノイズの影響を低減します。カーネルサイズは性能に影響します:サイズが大きいとノイズに対する感度は低下しますが、位置特定誤差は増加します。シグマ=2の一般的な5x5カーネルは、各エントリがガウス式H(i,j) = 1/(2πσ²) exp(-((i-(k+1))²+(j-(k+1))²)/(2σ²))に従う行列で与えられ、その結果が画像に畳み込まれます。5x5カーネルの場合、行列は1/159倍の[[2,4,5,4,2],[4,9,12,9,4],[5,12,15,12,5],[4,9,12,9,4],[2,4,5,4,2]]であり、畳み込みによって適用されます。5x5サイズはほとんどの場合に適していますが、状況に応じて変えることができます。
輝度勾配の計算
次のステップは、平滑化された画像の輝度勾配を計算することです。これは通常、SobelまたはPrewittオペレータを使用して水平方向と垂直方向の勾配を近似し、各ピクセルにおける最強の勾配の大きさと方向を求めます。勾配方向は、次のステップでの非最大値抑制にとって重要です。
非最大値抑制としきい値処理
スプリアス応答を低減するために、勾配強度のしきい値処理(下限カットオフ抑制とも呼ばれる)が適用されます。非最大値抑制は一般的なアプローチであり、勾配方向の局所最大値であるピクセルのみを保持し、エッジを1ピクセル幅の境界に細線化します。この後、二重しきい値が適用されます:高いしきい値は強いエッジを特定し、低いしきい値は弱いエッジを特定します。
ヒステリシスによるエッジ追跡
最終ステップはヒステリシスであり、弱いエッジは強いエッジに接続されている場合のみ保持され、それ以外の弱いエッジは抑制されます。これにより、ノイズや弱い孤立応答を無視しながら、クリーンで連続的なエッジを生成して検出を完了します。このアルゴリズムは多くのコンピュータビジョンシステムに実装されており、人工知能や機械学習のさまざまなアプリケーションで、画像セグメンテーションや特徴抽出などの高次タスクの基礎としてよく使用されています。
影響と遺産
John F. Cannyの1986年の研究は、基礎的な技術となっています。これはオープンソースライブラリで頻繁に使用される主要な手法であり、深層学習ベースのアプローチにおけるエッジ検出を議論する際の一般的な参照点です(ただし、ニューラル手法が登場しています)。このアルゴリズムの単純さと厳密な設計により、比較の基準となっています。学術研究を超えて、ウェイモやテスラ・オートパイロットなどの自律走行車システムでは、車線や障害物を識別するための前処理ステップとして応用されています。医療画像では解剖学的構造の輪郭を描くのに役立ち、産業検査では製造ライン上の欠陥検出を支援しています。
現代の開発との関係
ニューラルネットワーク手法が進化する一方で、Cannyエッジ検出器は、信号処理と画像解析の標準的なベースラインおよび教育ツールであり続けています。その原理(フィルタリング、勾配計算、ヒステリシス)は、より高度なパイプラインでも依然として適用されています。エッジ検出に関する研究では、Cannyの結果と比較することがよく行われ、学習率スケジュールやドロップアウトなどの現代的な手法にも類似のアプローチが見られますが、その関連性はより抽象的です。このアルゴリズムは、データ拡張において合成エッジを生成する際にも使用されます。近年では、ARMホールディングス、インテル、AMDなどのハードウェアアクセラレーションにより、この手法は無数の組み込みアプリケーションでリアルタイム実行が可能になっています。
Cannyエッジ検出器は、その後の多くの研究に影響を与え、生のピクセルから構造情報を抽出する最も簡単な方法の1つであり続けています。2020年代初頭現在でも、大学の講義で広く教えられ、業界で使用されており、1986年のアルゴリズムの永続的な価値を示しています。