【深層学習による画像認識の基礎】6.1~6.3

>100 Views

June 18, 26

スライド概要

profile-image

AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

2026年前期輪読会 深層学習による画像認識の基礎 (6.1~6.3) 京都大学 工学部 情報学科 数理工学コース 稲葉 陽孔 1

2.

アジェンダ ■ 領域分割とは ■ 意味的領域分割 ■ インスタンス領域分割 2

3.

意味的領域分割 領域分割 画像を複数のセグメント(領域)に分割するタスク 画素単位で画像を認識することを目的とする 領域分割の種類 意味的領域分割 :入力画像の各画素がどの物体+背景に属するかを予測(同じ種類は識別しない) インスタンス領域分割 :各画素がどの物体なのか識別(同じ種類でも識別する) ※物体は数えられるもののみと定義(空や道路は NG) 総括的領域分割 :物体にはインスタンス領域分割を、背景には意味的領域分割を行うタスク 3

4.

意味的領域分割 入出力 入力:画像(R^{3HW})(H、W:画像の縦横) 出力:クラス分類結果(R^{KHW})(K:クラス数) CNNによる意味的領域分割 画像内の大域的な文脈を理解した特徴抽出が鍵 (例:ボートと車の形状が似てて、局所的に見ても判断しにくい場合は、湖の上にあるからボートと判断する) →プーリング処理による画像縮小で対応したいが、この方法だと物体の境界や小物体の認識が困難 この対策のために、3つの手法が考えられる 4

5.

意味的領域分割 拡大(拡張)畳み込み フィルタ(カーネル)の要素間に空白を空けて飛び飛びに配置する畳み込み処理 拡大率(膨張率)によって飛ばし具合を変える 計算式 カーネルの様子 5

6.

意味的領域分割 細かい領域のための工夫 エンコーダー・デコーダーモデル:エンコーダーで包括的な潜在表現を読み取り、デコーダーで画 像を拡大していくことで細かい領域も認識できるようにする ピラミッドプーリング:複数スケールのプーリングを並行して適応&統合する手法 拡大畳み込み:拡大畳み込みにより、1つのカーネルにより様々なサイズの特徴量を抽出 特徴マップの解像度を下げずに細かい空間情報を保持できるうえ、拡大率を変更す だけで追加学習なしに様々なスケールで画像特徴を出せる る 6

7.

意味的領域分割 バイリニア補間 本来の画素位置からずれた位置の値を求める際の手法 補間の計算式 補間の様子 転置畳み込み アップサンプリングの手法の1つで、以下の手順で行う(拡大倍率をrとする) 1.バイリニア補間により入力をr倍にする 2.r倍になったものに通常の畳み込みをかける 畳み込みの様子 青:元画像(補間前) 影部分:カーネル 緑:畳み込みによる出力結果 7

8.

意味的領域分割モデルの例 U-Net エンコーダー・デコーダー型のモデル エンコーダー :ダウンサンプリング(プーリング)&畳み込み層 で構成 ※プーリング後の畳み込み層:畳み込み+バッチ正規化+ ReLU(チャンネル数×2) ※畳み込み層を残差ブロックにすることもある デコーダー :特徴マップの解像度は×2だがチャンネル数は ×1/2になる ※アップサンプリング:バイリニア補間で拡大→畳み込み(転置畳み込み) ※畳み込み層:エンコーダーと同様 ボトルネック :エンコーダーとデコーダーの間に、空間解像度を変えない畳み込み層を配置 8

9.

意味的領域分割モデルの例 DeepLabv3+ エンコーダー :Resnet101,またはXceptionにより特徴量を取得 ASPP:マルチスケール特徴量を取得するために、複数の拡大畳み込みを並行に適応&結合 ※ASPPの種類:拡大率6,12,18の拡大畳み込み、1×1畳み込み、平均プーリング+1×1畳み込み ASPP デコーダー :以下の手順で実行 1.バイリニア補間で緑部分を拡大(×4) 2.エンコーダーの入力層に近い特徴マップを結合 3.3×3畳み込みを適用し、バイリニア補間で×4 4.チャンネル次元方向にsoftmaxをかける →各クラスに属する確率を出力 9

10.

意味的領域分割モデルの例 SETR エンコーダー :標準のViT、出力は(H/16)×(W/16)×C(C:特徴量次元) デコーダー :以下の3種類を検証対象にしている 1.1×1conv+バイリニア補完(×16) 2.(畳み込み+バイリニア補完(×2))×4 3.エンコーダーのL/4,L/2,3L/4,L層目の出力結果を結合&(畳み込み+バイリニア補完(×4))×2 ※L:ViTにおけるTransformer Layerの層数 SETR デコーダー(手法2) デコーダー(手法3) 10

11.

意味的領域分割モデルの例 Segmenter CNNを用いないモデルで、以下の手順で予測する 1.ViT(L層)により各パッチ(R^{C×N})をR^{C×N}の形で算出(patch encoding) ※N:(H/p)×(W/p)、p:パッチサイズ 2.各クラスの埋め込み(R^{C×N})も一緒にデコーダー(Mask Transformer)に入れ、 画像のパッチ・クラスのパッチ(Zm、Cm)を出力(R^{C×N},R^{C×K}) 3.M=Zm^{T}Cm(R^{N×K})をR^{K×(H/p)×(W/p)}にし、バイリニア補間でR^{K×H×W}に拡大 11

12.

意味的領域分割モデルの損失関数・学習関連の工夫 損失関数 クロスエントロピー損失 重み付きクロスエントロピー損失 12

13.

意味的領域分割モデルの損失関数 学習関連の工夫 データ拡張 :ランダム水平反転・リサイズ等を行いデータを新たに生成 マルチスケール推論 : テスト画像に対してランダム水平反転・リサイズした際の出力結果の平均、または最大値を推論結 果とする(この工夫でIoUは上がった) 学習時に使用したwindowを使用し、多様な入力サイズにも対応 事前学習 :エンコーダー層を事前にImageNet-1kなどで学習させておく 13

14.

インスタンス領域分割 インスタンス領域分割 各物体を意味的領域分割したうえで、同じクラス内の物体も識別する分割 なお、数えられる物体のみが対象(空や道路はNG) 出力結果 :{p^(i),M^(i)}_{i=1}^{N}(N:検出数) ※p:検出物体ごとのクラススコア(R^{K})、M:検出物体が存在する2値マスク(R^{H×W}) 14

15.

インスタンス領域分割のモデル例 Mask R-CNN Faster R-CNNのclassifier層(+RoI Pooling)を別仕様に変えたもの ※Faster R-CNNの推論過程 1.conv層によって特徴量マップを作成 2.RPNやFPNによって特徴量マップ上での検出結果を(bbox)を取得 3.RoI poolingによって2で得た座標を整数座標に丸め込む 4.classifier層によって各bbox内の各座標にて、クラス確率を出力 Faster R-CNNの概略図 (概略自体はMask R-CNNもほぼ同じ) classifier層(上: Faster R-CNN、下:Mask R-CNN) 15

16.

インスタンス領域分割のモデル例 Mask R-CNNの各工夫 RoIAlign:RoIプーリングだと丸めこみによって位置ずれが起きてしまう そのため、以下の手順で座標+特徴量を取得 1.バイリニア補間によって各サブピクセル座標の特徴量を取得 2.各binに対応する4このグリッド点をmax or averageでpooling RoI Pooling(黒:特徴量マップ、青:RPNによる予測結果、赤:丸めこみ結果) RoIAlign(黒:特徴量マップ、青:RPNによる予測結果) 青点:サブピクセル、青グリッド:bin 16

17.

インスタンス領域分割のモデル例 Mask R-CNNの学習 以下を損失関数として学習 L=L_cls+L_box+L_mask L_cls:クラス分類損失 L_box:バウンディング回帰損失 L_mask:マスクヘッド損失(バイナリークロスエントロピー損失) L_mask:出力マスクM(R^{K×m×m})から正解クラス(c番目)を取りsigmoidをかけ、本当のM_{T}と比較 17

18.

インスタンス領域分割のモデル例 Mask2Former MaskFormer:従来はインスタンス領域分割と意味的領域分割で分かれていたが、 両者+総括的領域分割を扱えるモデルを作りたいということで開発されたモデル 「汎用性&複数タスクを同時最適化することによる性能向上」が期待される Mask2Former:MaskFormerの進化系で、各領域分割タスクに特化したモデルよりも精度が高い 出力結果 :{p^(i),M^(i)}_{i=1}^{N}(N:検出数) ※p:検出物体+背景のクラススコア(R^{K+1})、M:検出物体が存在する2値マスク(R^{H×W}) 18

19.

インスタンス領域分割のモデル例 Mask2Former バックボーン :ResNet、またはSwin-Tを用い、特徴量マップ(R^{C_h×(H/s)×(W/s)})を出力 ※s:入力画像の縮小率 画像デコーダー (Pixel Decoder): 画素ごとの推論を可能にするためZ_{+}(R^{C_z×(H/4)×(W/4)})・拡大過程の特徴マップ{Z^{l}}を出力 (FPNを用いる場合は)以下の手法で拡大 19

20.

インスタンス領域分割のモデル例 Mask2Former マスクデコーダー (transforemr decoder): クエリ特徴量(R^{C×N})の各クエリq_{0}との類似度が一定以上の画像特徴量を2値化し、 分割領域{M^{i}}_{i=1}^{N}を取得 20

21.

インスタンス領域分割のモデル例 Mask2Former マスクデコーダー (Transformer decoder): 21

22.

インスタンス領域分割のモデル例 Mask2Former 学習方法 以下の損失関数で学習 L=L_mask+λ_cls×L_cls L_mask=λ_ce×L_ce+λ_dice×L_dice L_ce:画素ごとの2値クロスエントロピーロス L_dice:DICE損失 L_cls:クラスにおけるクロスエントロピー損失 ※L_mask計算の際は、ランダムM点の画素に関してのみ計算 ※DICE損失:正解値を予測できているか観測 DICE損失 22

23.

インスタンス領域分割のモデル例 Mask2Former(推論方法) 意味的領域分割 (特徴マップ) (クラススコア) これにより、各位置(x,y)における分類結果はargmax_{c}(X(c,y,x))となる 23

24.

インスタンス領域分割のモデル例 Mask2Former(推論方法) インスタンス領域分割 1.クラススコアが上位R個のクラスを取得 2.1に対応するクエリのインデックスを取得 3.2で取得したクエリに対応するマスクを、\bar{M}から抽出({M_q(i)}) 4.R個の各分割結果のスコアを、クラススコア×M_iの画素値の平均とみなす 24