統計ロードマップ
2026-04-30·実装·⏱ 約 5

コンピュータビジョン 入門 ─ CNN から ViT まで

画像認識・物体検出・セグメンテーションの基礎。CNN・ResNet・YOLO・Vision Transformer の主要アーキテクチャを実装視点で整理します。

コンピュータビジョン(CV) は画像 ・ 動画から情報を抽出する分野。スマホのカメラ ・ 自動運転 ・ 医用画像 ・ 顔認証など応用範囲は広大です。

4 つの基本タスク

  • 画像分類(Classification): 1 枚 → 1 ラベル(犬/猫)
  • 物体検出(Detection): 1 枚 → 複数のバウンディングボックス + ラベル
  • セグメンテーション(Segmentation): ピクセル単位の分類
  • 画像生成(Generation): GAN ・ Diffusion で新しい画像を作る

歴史 ─ アーキテクチャの進化

  • LeNet(1998): 手書き数字認識、CNN の元祖
  • AlexNet(2012): ImageNet で衝撃的勝利、DL ブーム到来
  • VGG(2014): 3×3 畳み込みの繰り返し、シンプルで強い
  • ResNet(2015): 残差接続で 100 層超え、現在も主流
  • ViT(2020): Transformer で画像を処理、スケール則が CNN を超える
  • SAM / DINO(2023〜): 大規模事前学習による汎用ビジョンモデル

ResNet の本質 ─ 残差接続

層を深くするほど勾配消失で学習困難になる問題を、スキップ接続 で解決。100 層・200 層が現実的に。

ResNet ブロック
import torch.nn as nn

class ResBlock(nn.Module):
    def __init__(self, ch):
        super().__init__()
        self.conv1 = nn.Conv2d(ch, ch, 3, padding=1)
        self.conv2 = nn.Conv2d(ch, ch, 3, padding=1)
        self.bn1 = nn.BatchNorm2d(ch)
        self.bn2 = nn.BatchNorm2d(ch)

    def forward(self, x):
        identity = x
        out = nn.functional.relu(self.bn1(self.conv1(x)))
        out = self.bn2(self.conv2(out))
        return nn.functional.relu(out + identity)  # スキップ接続

Vision Transformer(ViT)

画像を 16×16 のパッチ に分割 → トークン列として Transformer に入れる。スケールしやすく、十分なデータがあれば CNN を上回る。

  • ViT-Base: 86M parameters
  • ViT-Huge: 632M parameters
  • 事前学習: JFT-300M(Google 内部、3 億画像)

物体検出 ─ YOLO

YOLO(You Only Look Once) は画像を 1 回で処理してバウンディングボックスを出力。リアルタイム物体検出の代表。

  • YOLOv1(2016) → YOLOv8(2023)まで進化
  • アンカーフリー化で簡略化
  • ultralytics/yolov8 が現在の業界標準

セグメンテーション ─ U-Net / SAM

  • U-Net: 医用画像で標準のエンコーダ・デコーダ構造
  • Mask R-CNN: 検出 + セグメンテーションの両刀
  • SAM(Segment Anything): 2023 Meta、ゼロショットでセグメント

実装の最短路 ─ 転移学習

PyTorch で 5 行転移学習
from torchvision import models
import torch.nn as nn

model = models.resnet50(weights='IMAGENET1K_V2')
model.fc = nn.Linear(model.fc.in_features, 10)  # 自分のクラス数に
# あとは fine-tune するだけ
🛠 実務 Tips

ゼロから学習せずに、ImageNet 事前学習済みモデルを fine-tune する方が圧倒的に早く高精度に。データ 1000 枚でも実用レベル。

学習リソース

  • [E 資格 教科書](/certs/e-shikaku/textbook) ─ CNN ・ ViT の章
  • [Transformer の数学](/blog/transformer-math) ─ ViT の前提
  • [scikit-learn 入門](/blog/sklearn-introduction)
  • [線形代数を AI 視点で](/blog/linear-algebra-for-ai)
Related Articles

関連記事