Convolution
コンピュータビジョンとディープラーニングにおける畳み込み (convolution) の基礎を探索します。カーネルや特徴マップがどのようにUltralytics YOLO26のリアルタイムタスクを支えているかを学びましょう。
Convolution is a fundamental mathematical operation that serves as the core building block of modern computer vision (CV) and deep learning (DL) systems. In the context of image processing, convolution involves sliding a small filter—often called a kernel—across an input image to create a map of significant features. This process allows artificial intelligence (AI) models to automatically learn and identify patterns such as edges, textures, and shapes without human intervention. Unlike traditional machine learning (ML) which often requires manual feature extraction, convolution enables networks to build a hierarchical understanding of visual data, starting from simple lines and progressing to complex objects like faces or vehicles.
Link to this section畳み込みの仕組み#
この操作は、入力データにフィルターをかけ、要素ごとの積を計算し、その結果を合計することで、各位置に対して単一の値を生成する仕組みです。この出力は特徴マップと呼ばれます。
- カーネル: 特定の特徴を検出するための数値(重み)の小さな行列です。例えば、Sobelオペレータは、垂直方向または水平方向のエッジを検出するために使用される特定の種類のカーネルです。
- スライディングウィンドウ: カーネルは「ストライド」と呼ばれる定義されたステップサイズで画像上を移動します。この空間フィルタリングプロセスは、画像を理解する上で非常に重要なピクセル間の関係を保持します。
- 層の階層: 畳み込みニューラルネットワーク (CNN)のようなディープアーキテクチャでは、初期の層は低レベルの詳細を捉え、より深い層でそれらを統合して高レベルの概念を形成します。
Link to this section畳み込みと関連概念の比較#
畳み込みを完全に理解するためには、ニューラルネットワーク (NN)に関する文献でよく見られる類似の用語と区別することが役立ちます。
- 相互相関と畳み込み: 数学的に本来の畳み込みは、カーネルを適用する前に反転させる必要があります。しかし、PyTorchライブラリを含むほとんどのディープラーニングフレームワークでは、(反転させずにスライドさせる)相互相関が実装されています。学習中に重みが学習されるため、反転の有無はパフォーマンス上の区別として重要ではないことから、これらも「畳み込み」と呼ばれています。
- 畳み込みとアテンション: 畳み込みは情報を局所的(近隣のピクセル)に処理しますが、アテンションメカニズムはモデルが画像の遠く離れた部分を同時に参照することを可能にします。YOLO26のような現代のアーキテクチャでは、アテンション層は計算コストが高くなる可能性があるため、リアルタイム推論速度を維持するために高度に最適化された畳み込み層が利用されることが一般的です。
Link to this section実社会での応用#
畳み込みの効率性は、堅牢な認識システムを実現することで、AIがさまざまな産業に革命をもたらす原動力となりました。
-
医療診断: ヘルスケアにおけるAIの分野では、畳み込みが高解像度のMRIスキャンの分析に役立てられています。異常を強調するように設計された特定のカーネルを使用することで、モデルは腫瘍や骨折の兆候を、専門の医師に匹敵する精度で早期に検出できます。
-
自動運転: 自動運転車両は、リアルタイムのオブジェクト検出のために畳み込みを利用しています。走行中、畳み込み層がビデオフィードを処理して歩行者、車線マーカー、交通標識を瞬時に識別します。これは自動車におけるAIの安全性において極めて重要なコンポーネントです。
Link to this sectionUltralyticsを使用したPythonの例#
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}")Link to this sectionエッジAIにおいて畳み込みが重要な理由#
畳み込み演算は高度に最適化が可能であり、計算リソースが制限されるエッジAI環境へのデプロイに最適です。同じカーネルが画像全体で共有される(パラメータ共有)ため、旧来の全結合アーキテクチャよりも大幅に少ないメモリで済みます。この効率性により、高度なモデルをスマートフォンやIoTデバイスで実行することが可能になります。
カスタムデータセットに対してこれらの操作を活用したいチームのために、Ultralytics Platformは、複雑なインフラストラクチャを管理することなく、画像の注釈付けや畳み込みベースのモデルの学習を行うシームレスな環境を提供します。転移学習を使用することで、学習済みの畳み込み重みを微調整し、最小限のトレーニングデータで新しいオブジェクトを認識できるようになります。






