Collaborative Global-Local Networks for Memory-Efficient Segmentation of Ultra-High Resolution Images
スポンサーリンク
論文URL
ポイント
- 超高解像度画像に対し省メモリかつ高性能なセグメンテーションを行うGLNetおよびCoarse-to-Fine GLNetを提案
- 2Kや4K画像の様な数Mピクセルの画像をターゲットにした研究
- これまでに良く採られている方法とその問題点
- 入力画像を低解像度化 : 精細な構造情報が消えてしまう
- 入力画像を小さいパッチに分割 : グローバルな構造を見逃すことに伴う精度低下
- GLNetでは、Global Branchで低解像度化した画像を、Local Branchでパッチに分割した元解像度(=高解像度)の画像を処理し、これらの結果を統合してセグメンテーションを行う(Fig1)
- パッチを1枚ずつ逐次処理することでメモリの使用量を抑えている
- Global Branchの特徴量マップから各パッチの空間範囲の特徴量をLocal Branchに渡すことで、各パッチの計算の際にグローバルな特徴も利用できる
- Coarse-to-Fine GLNetは、背景領域が支配的なケースに対してGLNetのコンセプトを拡張したモデル(Fig2)
- Global Branchが検出した対象領域を切り出し、切り出した領域のみLocal Branchにかける
- Local Branchは(Global Branchが誤検出しなければ)検出対象領域を集中的に学習することになるため、検出対象領域と背景領域の画素数のアンバランスが大幅に軽減される
GLNet
- Global BranchとLocal BranchのいずれもResNet50をバックボーンとしたFPN (Feature Pyramid Network)で特徴量を計算
- どちらのBranchも入力画像サイズは500x500
- Local Branchに入力するパッチは50画素ずつオーバーラップさせている
- Local Branchでパッチ画像を処理する際、Global Branchで計算した同一領域の特徴量をupsampleしてconcatしている
- Local Branchで計算した特徴量をdownsampleしてGlobal Branchの特徴量にconcatしたテンソルがGlobal Branchの最終的な出力となる
- 両Branchの出力をAggregationすることで最終的なセグメンテーション結果を得る
- 両Branchの出力をconcatし、3x3の畳み込みを行っている
- 学習時の工夫
- Aggregation結果だけでなく各Branchの出力テンソルからもセグメンテーションを行い、補助損失(Auxiliary Loss)を計算している
- Main Loss, Auxiliary Loss共にFocal Lossで計算
- 各Lossの重みは同じ(λ=1)
- Main Loss, Auxiliary Loss共にFocal Lossで計算
- 両Branchの出力テンソルの差のL2ノルムを正則化項としてLossに追加
- λ = 0.15
- この正則化項からはLocal Branchのパラメータのみ更新している
- この正則化を行わないと、Local Branchの方がGlobal Branchよりも学習が早く進み、局所領域の特徴を過学習してしまうとのこと
- Aggregation結果だけでなく各Branchの出力テンソルからもセグメンテーションを行い、補助損失(Auxiliary Loss)を計算している
DeepGlobeによる評価結果
- DeepGlobeは衛星画像に対し7種の土地被覆ラベルが付いたデータセットで画像サイズは2448x2448
- 論文内では、皮膚がんのスクリーニングを行うISICや航空機画像で建物検出を行うInria Aerialデータセットでも評価しており、いずれのデータセットでも性能(mIoU)の向上と省メモリ化を実現している
スポンサーリンク