JA EN

カーネル

読み: かーねる

畳み込み演算で使用する小さな数値行列。フィルタの種類 (ぼかし、エッジ検出等) はカーネルの値によって決定される。

カーネル (Kernel / フィルタカーネル) は、画像の畳み込み演算で使用する小さな数値行列である。通常 3×3、5×5、7×7 などの奇数サイズで構成され、行列内の各数値が周囲ピクセルへの重み付けを定義する。カーネルの値を変えるだけで、ぼかし、シャープ化、エッジ検出など全く異なるフィルタ効果を実現できる。

カーネル設計の基本原則を以下に示す。

実用的なカーネルの具体例を示す。

プログラミングでの実装例として、OpenCV では cv2.filter2D(img, -1, kernel) で任意のカーネルを適用できる。NumPy 配列としてカーネルを定義し、畳み込み関数に渡すだけで独自フィルタを作成可能である。

深層学習では、カーネルの値を人間が設計するのではなく、学習データから自動的に最適な値を獲得する。CNN の各層には数十から数百のカーネルが存在し、低層ではエッジや色の検出、高層では物体のパーツや概念の認識を担う。

関連用語

関連記事