特徴マップがCNNの「目」として機能する仕組みを探る。Ultralytics これらの内部表現を活用してdetect 、コンピュータビジョンを実現する方法を学ぶ。
特徴マップは、畳み込みフィルターが入力画像またはニューラルネットワーク内の先行層を処理する際に生成される基本的な出力である。コンピュータビジョン(CV)の文脈では、これらのマップはデータの内部表現として機能し、エッジ、テクスチャ、複雑な幾何学的形状など、モデルが認識を学習した特定のパターンを強調する。 本質的に、特徴マップは畳み込みニューラルネットワーク(CNN)の「目」として機能し、生のピクセル値を意味のある抽象化へと変換することで、物体検出や分類といったタスクを可能にします。
特徴マップの作成は、畳み込みと呼ばれる数学的演算によって駆動される。この過程において、カーネルまたはフィルタと呼ばれる学習可能なパラメータの小さな行列が入力データ上をスライドする。各位置において、カーネルは要素ごとの乗算と加算を実行し、出力グリッド上の単一値を生成する。
特徴マップは現代のAIアプリケーションのエンジンルームであり、システムが人間のような理解力で視覚データを解釈することを可能にする。
特徴マップは内部構造ではあるが、アーキテクチャ設計においてはそれらの次元を理解することが極めて重要である。 以下の PyTorch の例は、単一の 畳み込み層が入力画像を特徴マップに変換する方法を示しています。
import torch
import torch.nn as nn
# Define a convolution layer: 1 input channel, 1 output filter, 3x3 kernel
conv_layer = nn.Conv2d(in_channels=1, out_channels=1, kernel_size=3, bias=False)
# Create a random dummy image (Batch Size=1, Channels=1, Height=5, Width=5)
input_image = torch.randn(1, 1, 5, 5)
# Pass the image through the layer to generate the feature map
feature_map = conv_layer(input_image)
print(f"Input shape: {input_image.shape}")
# The output shape will be smaller (3x3) due to the kernel size and no padding
print(f"Feature Map shape: {feature_map.shape}")
モデルトレーニング中の混乱を避けるため、特徴マップを類似用語と区別することが有用である:
YOLO26のような高度なアーキテクチャでは、特徴マップがモデルの「バックボーン」と「ヘッド」において極めて重要な役割を果たす。バックボーンは異なるスケール(特徴ピラミッド)で特徴を抽出することで、モデルがdetect 効果的にdetect 。Ultralytics を活用したトレーニングでは、ユーザーはこれらのモデルの性能を可視化でき、精度や再現率といった指標を通じて基盤となる特徴マップの有効性を間接的に観察できます。これらのマップを最適化するには、アノテーション付きデータセットを用いた大規模なトレーニングが必要であり、多くの場合、特徴抽出などの技術を用いて事前学習済みモデルから新たなタスクへ知識を転移させます。