2K Views
October 05, 24
スライド概要
AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!
2024年度後期輪読会 #1 (2024/10/3) 物体検出の技術の全貌をざっくり解説 KaiRA 会長 京都大学理学部 4回生 (物理気候学研究室) 松田 拓巳 0
アジェンダ n 物体検出とは何か? n 物体検出を支える”バックボーン” n 物体検出のタスクとアプローチ n 評価指標と損失関数 n 物体検出モデルの歴史 1
物体検出とは何か? 物体検出とは、画像の中から「どこに何があるか」を検出する技術 物体のクラス バウンディングボックス (bbox; bounding box) 画像引用:https://pjreddie.com/darknet/yolo/ 2
物体検出とは何か? 物体検出モデルの多くは、バックボーン・ネック・ヘッドの構造を持つ Input バ ッ ク ボ | ン ネ ッ ク 画像の特徴量を抽出する部分。 事前学習済みモデルを用いることが多い。 例) • ResNet • EfficientNet など 抽出した特徴量をさらに変換し、 多様なスケールの物体を検出しやすくする。 例) • FPN • Bi-FPN など Output 例) ヘ ッ ド ネックから受取った特徴マップに基づいて、 物体の位置と種類などを推定する。 • • • 分類ヘッド 回帰ヘッド セグメンテーションヘッド など 3
アジェンダ n 物体検出とは何か? n 物体検出を支える”バックボーン” n 物体検出のタスクとアプローチ n 評価指標と損失関数 n 物体検出モデルの歴史 4
物体検出を支える”バックボーン” バックボーンは特徴量を抽出するモデルの基盤であり、事前学習済みのものが用いられる 事前学習 大規模データセット(ex: ImageNet)を使い、あるタスク(ex: クラス分類)を解かせて学習 → 画像の基本的な捉え方を、事前にモデルに教え込む → 高い汎用性・効率的な学習が可能に クラス分類できるように学習させる =画像から特徴抽出する方法を教える 画像:約130万枚※ CNNなどの 画像モデル ※ImageNet-1K クラス:1000種類※ dog, cat, desk, castle… 5
物体検出を支える”バックボーン” CNN系バックボーンは、畳み込み層を活用して画像の特徴を捉える ResNet (2015) EfficientNet (2019) 残差接続 (Residual Connection) を導入して 勾配消失問題を解消し、深い層のネットワークが可能に ネットワークの幅、深さ、解像度を同時に最適化する Compound Scaling Methodを用いて、 少ないパラメータで高精度を達成 ※バックボーンは上記以外にもたくさん存在する。CNNバックボーンをもっと知りたい方は↓のWebサイトを参照 CVMLエキスパートガイド「CNNバックボーン(backbone)の代表的アーキテクチャの歴史[まとめ年表]」https://cvml-expertguide.net/terms/dl/cnn/cnn-backbone/ 画像引用:Deep Residual Learning for Image Recognition (2015) , EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks (2019) 6
物体検出を支える”バックボーン” Transformer系バックボーンは、画像全体を広く捉え、細かい部分も特徴抽出可能 ViT (Vision Transformer, 2021) 画像をパッチ(16 16)に分割し、 各パッチを単語とみなしてTransformerを適用 DeiT (Data-Efficient Image Transformers, 2021) 課題 ViTでCNNの精度を超えるには 超大規模データセットが必要 教師:学習済みのCNN 生徒:未学習のViT として知識蒸留* *学習済みCNNの出力を 教師ラベルとして使って ViTを学習させる 画像引用:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale (2021),Training data-efficient image transformers & distillation through attention (2021) 7
物体検出を支える”バックボーン” Transformer系バックボーンでもCNNのような特徴抽出を行い、計算量・精度を改善 Swin Transformer (2021) MaxViT (Multi-Axis Vison Transformer, 2022) 多様な解像度に対応したり、計算量を抑えるために Patch Merging・Shifted Windowsを導入 局所的Attentionと大域的Attentionを組み合わせて より良い特徴量を抽出できるように 画像引用:MaxViT: Multi-Axis Vision Transformer,Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 8
物体検出を支える”バックボーン” ConvNeXtは、CNNにTransformerの利点を取り入れてViTに匹敵する性能を実現 ConvNeXt (2022) 従来のCNNの設計を見直し、Transformerの利点を取り入れることで、 シンプルなConvNetでありながらViTに匹敵する性能を実現 画像引用:A ConvNet for the 2020s 9
アジェンダ n 物体検出とは何か? n 物体検出を支える”バックボーン” n 物体検出のタスクとアプローチ n 評価指標と損失関数 n 物体検出モデルの歴史 10
物体検出のタスクとアプローチ バウンディングボックス検出&分類には、主に2段階型と1段階型の検出手法がある 入力画像 前半ステージ 後半ステージ 物体の候補領域を検出してから 2段階型検出モデル 領域内のクラスを推論する 犬* アンカーを中心に アンカーボックス を複数個用意 アンカー ベース アンカーボックスで補助しながら 犬* 犬* *R-CNN系では物体クラスだけでなく候補領域の修正量も予測する 犬 犬 犬 物体位置・クラスを推定する アンカーボックスからの ズレを推論して最終的な バウンディングボックス を作成 1段階型 犬 アンカー フリー アンカーボックスを使わずに 物体位置・クラスを推定する 素材画像:https://www.peakpx.com/473937/3-brown-puppies 犬 犬 アンカーボックスに頼らず 直接位置を推定 11
物体検出のタスクとアプローチ セグメンテーションは、物体をピクセル単位で分類するタスク セマンティックセグメンテーション すべてのピクセルに対してクラスを推定 クラスが同じなら物体が異なっても同じラベル インスタンスセグメンテーション 物体検出+セグメンテーション 位置をbboxで予測+物体部分の領域予測 パノプティックセグメンテーション セマンティック+インスタンスセグメンテーション すべてのピクセルに対して物体IDとクラスを付与 画像引用:Panoptic Segmentation 12
物体検出のタスクとアプローチ テキスト 物体検出やポーズ推定、3次元物体検出、物体追跡など、多様なタスクが存在する Open-Vocabulary Object Detection (2021) 姿勢推定(ポーズ推定) テキストで指定された未知の物体クラスを検出する 画像から人の間接点や顔のパーツを抽出する →事前に定義された物体クラスに制限されない! →スポーツ分析・ヘルスケア・仮想現実・監視など 動画引用:X @Niels Rogge , 画像引用:https://cocodataset.org/#keypoints-2016 13
物体検出のタスクとアプローチ テキスト 物体検出やポーズ推定、3次元物体検出、物体追跡など、多様なタスクが存在する 3次元物体検出 物体追跡 画像ではなく3次元データから物体検出 動画中の物体をオンラインまたはオフラインで追跡 画像引用:https://globe.asahi.com/article/15188347 , https://opencv.org/blog/multiple-object-tracking-in-realtime/ • オンライン:未来のフレームは使えない • オフライン:未来のフレームを使える 14
アジェンダ n 物体検出とは何か? n 物体検出を支える”バックボーン” n 物体検出のタスクとアプローチ n 評価指標と損失関数 n 物体検出モデルの歴史 15
評価指標と損失関数 物体検出の性能はIoUやmAPなどの評価指標で測定される 物体検出は、画像の中から「どこに 何があるか」を検出するタスク IoU ( Intersection over Union ) mAP ( mean Average Precision ) 予測領域と正解領域がどれくらい重なっているか 各クラスのAP(平均適合率)を平均した値 ※APはPR曲線の下の面積から求まる 予測結果 実 際 共通部分の面積 犬 犬以外 犬 80 20 犬以外 23 132 AP犬 mAP 予測結果 IoU = 実 際 猫 猫以外 猫 85 20 猫以外 14 136 各クラスのAPの平均 AP猫 3 予測結果 和集合の面積 実 際 馬 馬以外 馬 38 12 馬以外 15 190 AP犬 +AP猫 +AP馬 AP馬 16
評価指標と損失関数 損失関数は、タスクやデータ等に応じて適切なものを選択する必要がある 物体クラス分類の損失関数 Cross Entropy Loss → クラス分類でよく使う損失関数 検出位置の損失関数 IoU → 前ページで説明 GIoU → バウンディングボックスの離れ具合も考慮 $ 𝐶𝐸 𝐭, 𝐲 = − ( 𝑡! log 𝑦! !"# Focal Loss → クラス不均衡、難易度不均衡がある場合 $ 𝐹𝐿 𝐭, 𝐲 = − ( 𝛼! 1 − 𝑦! % 𝑡! log 𝑦! GIoU = IoU ー !"# 𝛼! :クラス𝑘の重み(クラス不均衡を補正) 𝛾 :フォーカスパラメータ(難易度に応じて損失を減衰) 数が少ないクラスのデータ 誤分類しやすいデータ 損失を強調する 𝐶:クラス数,𝐭 ∈ {0,1}! :クラス𝑘の正解ラベル,𝐲 ∈ [0,1]! :クラス𝑘の予測確率 予測領域と正解領域を すっぽり包む領域 17
アジェンダ n 物体検出とは何か? n 物体検出を支える”バックボーン” n 物体検出のタスクとアプローチ n 評価指標と損失関数 n 物体検出モデルの歴史 18
物体検出モデルの歴史 物体検出技術は、テンプレートマッチング、手作り特徴量から深層学習へと進化してきた テンプレートマッチング 手作り特徴量 深層学習 テンプレート画像との相関に基づく SIFTやHOGなどの特徴量を使った シンプルな機械学習モデル 深層学習モデルの登場により 複雑な特徴量の抽出が可能に 入力画像 テンプレート画像 SIFT 検出結果 HOG SVMなど 深層学習 モデル 背景 or 物体 画像引用:テンプレートマッチングで物体検出 19
物体検出モデルの歴史 色々なタイプの物体検出モデルが並列で登場 画像引用:30周年記念特別企画:SSII 技術マップ 20
物体検出モデルの歴史 色々なタイプの物体検出モデルが並列で登場 2段階型検出モデル 1段階型検出モデル アンカーベース アンカーフリー ▼ SSD ▼ YOLO ▼ RetinaNet ▲ Fast R-CNN Faster R-CNN ▶ 画像引用:Rich feature hierarchies for accurate object detection and semantic segmentation, Fast R-CNN, Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, SSD: Single Shot MultiBox Detector, Focal Loss for Dense Object Detection, You Only Look Once: Unified, Real-Time Object Detection 21
物体検出モデルの歴史 特徴集約の工夫(ネック部分)によって精度向上 FPN (Feature Pyramid Networks; 2017) EfficientDet (2020) スキップ接続・Encoder-Decoder構造により マルチスケール性能*が改善 バックボーンにEfficientNetを使用 BiFPNで複数スケールの特徴マップをうまく混合 *大小さまざまなサイズの物体を検出する能力 画像引用:FPN (Feature Pyramid Networks) とその発展型, EfficientDet: Scalable and Efficient Object Detection 22
物体検出モデルの歴史 Transformerを取り入れた物体検出モデルも登場 DETR (DEtection TRansformer; 2020) DINO (DETR with Improved deNoising anchOr boxes) Transformer (Encoder-Decoder型) で物体検出 DETRの問題を解消したモデル • • Decoderの出力をFFNに渡し、物体クラスとbboxの位置を出力。 物体がない場合はno objectに分類される。 バックボーンやデータセットの大きさでスケールしな い・学習の収束が遅い、などの問題を解消 Deformable DETRとDN-DETRという手法を改善&組 み合わせ マルチスケール特徴抽出 画像引用:End-to-End Object Detection with Transformers, DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection Transformer Contrastive Denoising 23
物体検出モデルの歴史 近年では、大量データで学習させた”基盤モデル”により高い汎化性能を実現 大規模データで 学習させる タスク1 基盤モデル タスク2 (foundation model) … 追加学習しなくても さまざまなタスクに対応可能! * ファインチューニングでさらに精度を高めることも可能 タスクN 基盤モデルの有名な例 • 大規模言語モデル:GPT (OpenAI)、Llama (Meta)、Claude (Anthropic)、Gemma (Google) … • 画像生成 • マルチモーダル :CLIP (OpenAI)、GPT-4o (OpenAI)、Claude 3 (Anthropic) … :DALL-E (OpenAI)、Stable Diffusion (Stability AI)、Imagen (Google) … 24
物体検出モデルの歴史 Metaがさまざまな物体検出系の基盤モデルを公開しまくっている SAM (Segment Anything Model; 2023) ゼロショット*でも高精度に セグメンテーションが可能。 2024年7月に動画対応した 「SAM2」を発表 Depth Anything (2024) 深度(奥行き)を推定する。たった1年で2つのverisonを公開 Raw Image Depth Anything V1 Depth Anything V2 *ゼロショット=ファインチューニングなし Sapiens (2024) 下記4つのモデルをまとめてSapiensと呼んでいる。3億枚の画像で学習 • Sapiens Pose:2Dポーズ推定 • Sapiens Segmentation:身体部位のセグメンテーション • Sapiens Depth:深度推定 • Sapiens Normal:表面法線予測 画像/動画引用:Segment Anything, Depth Anytihng V2, Sapiens 25
アジェンダ n 物体検出とは何か? n 物体検出を支える”バックボーン” n 物体検出のタスクとアプローチ n 評価指標と損失関数 n 物体検出モデルの歴史 26
27