Harris コーナー検出
読み: はりすこーなーけんしゅつ
画像中のコーナー (角点) を検出するアルゴリズム。局所的な輝度勾配の自己相関行列の固有値を解析し、2 方向に大きな変化がある点をコーナーとして抽出する。
Harris コーナー検出は、1988 年に Chris Harris と Mike Stephens が提案した特徴点検出手法である。画像中の小領域をあらゆる方向にシフトしたとき、輝度変化が 2 方向以上で大きい点をコーナーとして検出する。エッジ (1 方向のみ変化) や平坦領域 (変化なし) と区別できる点が特徴である。
アルゴリズムの核となるのは構造テンソル (自己相関行列) M である。各画素で x 方向・ y 方向の勾配 Ix, Iy を計算し、ガウシアン重み付きの 2x2 行列を構成する。この行列の 2 つの固有値 λ1, λ2 がともに大きい場合、その点はコーナーである。
- コーナー応答関数: 固有値を直接計算する代わりに
R = det(M) - k * trace(M)^2を使用する。k は経験的に 0.04〜0.06 が用いられる。R が大きい点がコーナー候補となる - 非極大抑制: 近接する複数の応答点から局所最大のみを残す処理。3x3 や 5x5 の近傍で最大値を選択し、重複検出を排除する
- 回転不変性: 構造テンソルの固有値は回転に対して不変であるため、Harris 検出器は画像の回転に頑健である。ただしスケール変化には対応しない
OpenCV では cv2.cornerHarris() で実装されており、ブロックサイズ、Sobel カーネルサイズ、k 値をパラメータとして指定する。Harris コーナーは計算が軽量で安定性が高く、リアルタイムのトラッキングやカメラキャリブレーションの前処理として広く使われている。