Explore the fundamentals of convolution in computer vision and deep learning. Learn how kernels and feature maps power Ultralytics YOLO26 for real-time tasks.
畳み込みは、現代のコンピュータビジョン(CV) および深層学習(DL)システムの基盤となる基本的な数学的演算である。画像処理の文脈では、畳み込みは入力画像上に小さなフィルター(カーネルと呼ばれることが多い)をスライドさせ、重要な特徴のマップを作成する処理を指す。 このプロセスにより、人工知能(AI)モデルは人間の介入なしに、エッジ、テクスチャ、形状などのパターンを自動的に学習・識別できるようになります。従来の手動による特徴抽出を必要とする機械学習(ML)とは異なり、畳み込みはネットワークが視覚データに対する階層的な理解を構築することを可能にします。単純な線から始まり、顔や車両のような複雑な物体へと段階的に理解を深めていくのです。
この操作は、入力データに対してフィルタを適用し、要素ごとの乗算を実行し、結果を合計することで機能します。これにより、各位置に対して単一の値が生成されます。この出力は特徴マップとして知られています。
畳み込みを完全に理解するには、ニューラルネットワーク(NN)の文献で頻繁に遭遇する類似の用語と区別することが有用である:
畳み込みの効率性により、AIは堅牢な知覚システムを駆動することで様々な産業に革命をもたらした:
Pythonを使用して最先端モデル内の畳み込み層を検査できます。次の例では
YOLO26 モデルを検証し、その初期層が標準的な畳み込み演算を利用していることを確認する。これは以下を通じて実装される。 torch.nn.
import torch.nn as nn
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# Access the first layer of the model's backbone
first_layer = model.model.model[0]
# Verify it is a Convolutional layer
if isinstance(first_layer.conv, nn.Conv2d):
print("Success: The first layer is a standard convolution.")
print(f"Kernel size: {first_layer.conv.kernel_size}")
畳み込み演算は高度に最適化可能なため、 計算リソースが限られるエッジAI展開に最適です。 同じカーネルが画像全体で共有される(パラメータ共有)ため、 従来型の全結合アーキテクチャと比べて モデルに必要なメモリが大幅に削減されます。 この効率性により、高度なモデルをスマートフォンやIoTデバイス上で 実行することが可能となります。
カスタムデータセット向けにこれらの処理を活用したいチーム向けに、 Ultralytics 複雑なインフラ管理を必要とせず、 画像の注釈付けや畳み込みベースモデルのトレーニングを シームレスに実行できる環境を提供します。 転移学習を活用することで、事前学習済みの畳み込み重みを微調整し、 最小限のトレーニングデータで新たなオブジェクトを認識させることが可能です。