DEEP LEARNING JP [DL Papers] Geometric Unsupervised Domain Adaptation for Semantic Segmentation Yuting Lin, Kokusai Kogyo Co., Ltd.(国際航業) http://deeplearning.jp/ 1
書誌情報 • タイトル – Geometric Unsupervised Domain Adaptation for Semantic Segmentation • 著者 – Vitor Guizilini, Jie Li Rares, Ambrus, Adrien Gaidon (TRI) • ICCV2021(poster)に採択 • Paper – https://openaccess.thecvf.com/content/ICCV2021/papers/Guizilini_Geometric_Uns upervised_Domain_Adaptation_for_Semantic_Segmentation_ICCV_2021_paper.pdf • Code – https://github.com/tri-ml/packnet-sfm(別のプロジェクト?) 2
概要 • Unsupervised Domain Adaptation (UDA)の課題 • 多くの手法は、敵対的な学習を採用 • 識別器の学習が難しい • domainのsemanticに関するギャップを接近させにくい – proxy/pretext taskで性能を向上 • segmentation以外のタスクも同時に学習(回転角度を予測) • Global表現より、画素レベルの表現の学習が必要 • 本論文は、画素レベルの表現学習を実現するproxy taskを利用したUDA手 法を提案 3
既往研究 - UDA • 基本は、self supervised learning (a.k.a pseudo label)で行う – pixel/feature/outputレベルで、sourceとtargetをalignment – 直接domainの分布に対した方法の効果は限定的 • proxy taskの活用 – source domainの他のmodalityを利用し、学習をガイド – SPIGANは疑似的depth情報を追加の正則項で学習 – GIO-Adaはdepthとnormal情報で、targetへのstyle transferを学習 – DADAはdepthとsegmentationをshared encoderで推定 – 提案手法は、target domain(video)においても、depthを同時に推定することで (geometricな情報を利用)、性能を向上 4
既往研究 - Self-supervised learning (SSL) • 主な流派 – pre-training + fine-tuning – multi-task learning: rotation, patch jigsaw puzzlesなど • domain-invariant & fine-grained特徴を学習できる • 汎化性能が高い – GUDAは後者を採用 5
提案手法 • Preliminary – Depth: 𝑓𝐷: 𝐼 → ෡ 𝐷 – Semantic: 𝑓𝑆: 𝐼 → መ 𝑆 (𝑓𝐷, 𝑓𝑠のencoderはshared) – Pose: 𝑓𝑇: 𝐼𝑎, 𝐼𝑏 → ෢ 𝑇𝑎 𝑏 – 損失関数 ℒ = ℒ𝑅 + λ𝑉ℒ𝑉 – Mixed batch: 𝐵𝑉, 𝐵𝑅 – 連続3フレームで学習 𝐼𝑡−1, 𝐼𝑡, 𝐼𝑡+1 – 内部パラメータKを既知とする 6
提案手法 • Real sample処理 – Loss関数 ℒ𝑅 = ℒ𝑃 + λ𝑃𝐿ℒ𝑃𝐿 where ℒ𝑃: self-supervised photometric loss ℒ𝑃𝐿: optional pseudo-label loss 7
提案手法 • Real sample処理:Self-Supervised Photometric Loss – Self-Supervised depthとpose推定は、view synthesis問題 ෡ 𝐼𝑡 = 𝐼𝑡′ 𝜋 ෢ 𝐷𝑡, ෢ 𝑇𝑡 𝑡′ , 𝐾 where ෡ 𝐼𝑡=predicted target image, 𝐼𝑡′=reference image, ෢ 𝐷𝑡=predicted depth map, ෢ 𝑇𝑡 𝑡′ =relative transformation, 𝜋=projection operation – 再構築誤差は、structural similarity (SSIM) とL1 distance in pixel spaceで構成され るstandard photometric lossで求める ℒ𝑃 𝐼𝑡, ෡ 𝐼𝑡 = 𝛼 1 − 𝑆𝑆𝐼𝑀 𝐼𝑡, ෡ 𝐼𝑡 2 + 1 − 𝛼 𝐼𝑡 − ෡ 𝐼𝑡 1 • SSIMは解像度が異なるoutputの平均を取る • auto-maskingと最小再投影誤差で、動物体とオクルージョンによる影響を抑える 8
提案手法 • Real sample処理: Pseudo-Label Distillation – Pseudo-Labelを教師とし、Cross Entropy Lossでrealデータのセグメンテーションを学 習 ℒ𝑃𝐿 = ℒ𝑆 መ 𝑆, 𝑆𝑃𝐿 where መ 𝑆=predicted semantic map, 𝑆𝑃𝐿 =Pseudo Label of same sample 9
提案手法 • Virtual sample処理 – Loss関数 ℒ𝑉 = ℒ𝐷 + λ𝑆ℒ𝑆 + λ𝑁ℒ𝑁 + λ𝑃𝑃ℒ𝑃𝑃 where ℒ𝐷: supervised depth loss ℒ𝑆: supervised semantic loss ℒ𝑁: surface normal regularization term ℒ𝑃𝑃: optional partially-supervised photometric loss 10
提案手法 • Virtual sample処理: Supervised Semantic Loss – bootstrapped cross-entropy loss: scoreが低いK(0.3×H×W)の推定結果のみ逆伝 播に ℒ𝑆 = − 1 𝐾 ෍ 𝑢=1 𝐻 ෍ 𝑣=1 𝑊 ෍ 𝑐=1 𝐶 𝕝 𝑐=𝑦𝑢,𝑣,𝑝𝑢,𝑣 𝑐 <𝑡 log 𝑝𝑢,𝑣 𝑐 where t=run-time threshold 11
提案手法 • Virtual sample処理: Supervised Depth Loss – Scale-Invariant Logarithmic loss (SILog) ℒ𝑆 = 1 𝑃 ෍ 𝑑∈𝐷 ∆𝑑2 − 𝜆 𝑃2 ෍ 𝑑∈𝐷 ∆𝑑 2 where ∆𝑑 = log 𝑑 − log መ 𝑑 P: depthがvalidの画素数 12
提案手法 • Virtual sample処理: Surface Normal Regularization – Depth推定は画素ごとに行うため、smoothingをかけた方が性能が良い – Depthから計算したNormalをsmoothing 𝒏 = 𝑷𝑢+1,𝑣 − 𝑷𝑢,𝑣 × 𝑷𝑢,𝑣+1 − 𝑷𝑢,𝑣 where 𝑷 = ∅ 𝒑, 𝑑, 𝐾 画像上の点pを3Dに投影した点P – Cosine類似度でnormal正則化を行う ℒ𝑁 = 1 2𝑃 ෍ 𝒑∈𝐷 1 − ෝ 𝒏 ∙ 𝒏 ෝ 𝒏 𝒏 – Geometricな情報を学習できるようになった • 境界の鮮明化 • 遠い物体の精度向上 13
提案手法 • Virtual sample処理: Partially-Supervised Photometric Loss – Virtualデータも連続画像の場合、Self-Supervised Photometric Lossも適用できる – depth/poseごとの教師があるため、depth/poseにdecouple – Original: ෡ 𝐼𝑡 = 𝐼𝑡′ 𝜋 ෢ 𝐷𝑡, ෢ 𝑇𝑡 𝑡′ , 𝐾 – Depth:෢ 𝐼𝑡 𝐷 = 𝐼𝑡′ 𝜋 𝐷𝑡, ෢ 𝑇𝑡 𝑡′ , 𝐾 – Pose: ෡ 𝐼𝑡 𝑇 = 𝐼𝑡′ 𝜋 ෢ 𝐷𝑡, 𝑇𝑡 𝑡′ , 𝐾 ℒ𝑃𝑃 = 1 3 ℒ𝑃 𝐼𝑡, ෡ 𝐼𝑡 + ℒ𝑃 𝐼𝑡, ෢ 𝐼𝑡 𝐷 + ℒ𝑃 𝐼𝑡, ෡ 𝐼𝑡 𝑇 14
実験の設定 • ネットワーク – Shared backbone: ResNet101 w/ ImageNet pre-trained – Depth/semantic decoder: [1] – Pose encoder: ResNet18 w/ ImageNet pre-trained – Pose decoder: conv layers数個 • Datasets – Real datasets: Cityscapes, KITTI, DDAD – Virtual datasets: SYNTHIA, VKITTI2, Parallel Domain, GTA5 15 [1] Digging Into Self-Supervised Monocular Depth Estimation. https://arxiv.org/pdf/1806.01260.pdf
実験結果 • UDA Semantic Segmentation on Cityscapes – SOTAを達成 • 動画からのself-supervised geometric constraintsを用いたDepth推 定を2つドメインで行うことで、モデルの汎化性能を向上 • road, sidewalk, building等、境界が明確なクラスの精度が従来手法 より高い • Static環境を仮定するため、レアな動物体(motorcycle)が課題 • Pseudo labelで改善 16
実験結果 • UDA Semantic Segmentation on other datasets – VKITTI2 to KITTI – Parallel Domain to DDAD – 初の検討 17
実験結果 • データの量・質による影響 – 性能向上を線形とする場合、提案手法は、200kのvirtualデータでdomain gapを埋め られる(DANNは350k) 18
実験結果 • Ablation Study – Geometric supervisionは性能向上に貢献 – 提案手法の有効性を確認 19
実験結果 • Depth Estimation – Fine-tuneより精度が高い – GUDAはscale-aware情報を保持 – Encoderを大きいネットワークに変えると、更なる改善を見込める 20
実験結果 • 定性評価 21
まとめ • geometric taskをセグメンテーションとのmulti-task learningにすることがDAに 有効 • Self-supervised learningで、教師なしかつ、ドメイン情報を学習する必要がな いDAを実現 • 動画を対象になるため、単写真タスクは適用できない(?) 22

[DL輪読会]Geometric Unsupervised Domain Adaptation for Semantic Segmentation

  • 1.
    DEEP LEARNING JP [DLPapers] Geometric Unsupervised Domain Adaptation for Semantic Segmentation Yuting Lin, Kokusai Kogyo Co., Ltd.(国際航業) http://deeplearning.jp/ 1
  • 2.
    書誌情報 • タイトル – GeometricUnsupervised Domain Adaptation for Semantic Segmentation • 著者 – Vitor Guizilini, Jie Li Rares, Ambrus, Adrien Gaidon (TRI) • ICCV2021(poster)に採択 • Paper – https://openaccess.thecvf.com/content/ICCV2021/papers/Guizilini_Geometric_Uns upervised_Domain_Adaptation_for_Semantic_Segmentation_ICCV_2021_paper.pdf • Code – https://github.com/tri-ml/packnet-sfm(別のプロジェクト?) 2
  • 3.
    概要 • Unsupervised DomainAdaptation (UDA)の課題 • 多くの手法は、敵対的な学習を採用 • 識別器の学習が難しい • domainのsemanticに関するギャップを接近させにくい – proxy/pretext taskで性能を向上 • segmentation以外のタスクも同時に学習(回転角度を予測) • Global表現より、画素レベルの表現の学習が必要 • 本論文は、画素レベルの表現学習を実現するproxy taskを利用したUDA手 法を提案 3
  • 4.
    既往研究 - UDA •基本は、self supervised learning (a.k.a pseudo label)で行う – pixel/feature/outputレベルで、sourceとtargetをalignment – 直接domainの分布に対した方法の効果は限定的 • proxy taskの活用 – source domainの他のmodalityを利用し、学習をガイド – SPIGANは疑似的depth情報を追加の正則項で学習 – GIO-Adaはdepthとnormal情報で、targetへのstyle transferを学習 – DADAはdepthとsegmentationをshared encoderで推定 – 提案手法は、target domain(video)においても、depthを同時に推定することで (geometricな情報を利用)、性能を向上 4
  • 5.
    既往研究 - Self-supervisedlearning (SSL) • 主な流派 – pre-training + fine-tuning – multi-task learning: rotation, patch jigsaw puzzlesなど • domain-invariant & fine-grained特徴を学習できる • 汎化性能が高い – GUDAは後者を採用 5
  • 6.
    提案手法 • Preliminary – Depth:𝑓𝐷: 𝐼 → ෡ 𝐷 – Semantic: 𝑓𝑆: 𝐼 → መ 𝑆 (𝑓𝐷, 𝑓𝑠のencoderはshared) – Pose: 𝑓𝑇: 𝐼𝑎, 𝐼𝑏 → ෢ 𝑇𝑎 𝑏 – 損失関数 ℒ = ℒ𝑅 + λ𝑉ℒ𝑉 – Mixed batch: 𝐵𝑉, 𝐵𝑅 – 連続3フレームで学習 𝐼𝑡−1, 𝐼𝑡, 𝐼𝑡+1 – 内部パラメータKを既知とする 6
  • 7.
    提案手法 • Real sample処理 –Loss関数 ℒ𝑅 = ℒ𝑃 + λ𝑃𝐿ℒ𝑃𝐿 where ℒ𝑃: self-supervised photometric loss ℒ𝑃𝐿: optional pseudo-label loss 7
  • 8.
    提案手法 • Real sample処理:Self-SupervisedPhotometric Loss – Self-Supervised depthとpose推定は、view synthesis問題 ෡ 𝐼𝑡 = 𝐼𝑡′ 𝜋 ෢ 𝐷𝑡, ෢ 𝑇𝑡 𝑡′ , 𝐾 where ෡ 𝐼𝑡=predicted target image, 𝐼𝑡′=reference image, ෢ 𝐷𝑡=predicted depth map, ෢ 𝑇𝑡 𝑡′ =relative transformation, 𝜋=projection operation – 再構築誤差は、structural similarity (SSIM) とL1 distance in pixel spaceで構成され るstandard photometric lossで求める ℒ𝑃 𝐼𝑡, ෡ 𝐼𝑡 = 𝛼 1 − 𝑆𝑆𝐼𝑀 𝐼𝑡, ෡ 𝐼𝑡 2 + 1 − 𝛼 𝐼𝑡 − ෡ 𝐼𝑡 1 • SSIMは解像度が異なるoutputの平均を取る • auto-maskingと最小再投影誤差で、動物体とオクルージョンによる影響を抑える 8
  • 9.
    提案手法 • Real sample処理:Pseudo-Label Distillation – Pseudo-Labelを教師とし、Cross Entropy Lossでrealデータのセグメンテーションを学 習 ℒ𝑃𝐿 = ℒ𝑆 መ 𝑆, 𝑆𝑃𝐿 where መ 𝑆=predicted semantic map, 𝑆𝑃𝐿 =Pseudo Label of same sample 9
  • 10.
    提案手法 • Virtual sample処理 –Loss関数 ℒ𝑉 = ℒ𝐷 + λ𝑆ℒ𝑆 + λ𝑁ℒ𝑁 + λ𝑃𝑃ℒ𝑃𝑃 where ℒ𝐷: supervised depth loss ℒ𝑆: supervised semantic loss ℒ𝑁: surface normal regularization term ℒ𝑃𝑃: optional partially-supervised photometric loss 10
  • 11.
    提案手法 • Virtual sample処理:Supervised Semantic Loss – bootstrapped cross-entropy loss: scoreが低いK(0.3×H×W)の推定結果のみ逆伝 播に ℒ𝑆 = − 1 𝐾 ෍ 𝑢=1 𝐻 ෍ 𝑣=1 𝑊 ෍ 𝑐=1 𝐶 𝕝 𝑐=𝑦𝑢,𝑣,𝑝𝑢,𝑣 𝑐 <𝑡 log 𝑝𝑢,𝑣 𝑐 where t=run-time threshold 11
  • 12.
    提案手法 • Virtual sample処理:Supervised Depth Loss – Scale-Invariant Logarithmic loss (SILog) ℒ𝑆 = 1 𝑃 ෍ 𝑑∈𝐷 ∆𝑑2 − 𝜆 𝑃2 ෍ 𝑑∈𝐷 ∆𝑑 2 where ∆𝑑 = log 𝑑 − log መ 𝑑 P: depthがvalidの画素数 12
  • 13.
    提案手法 • Virtual sample処理:Surface Normal Regularization – Depth推定は画素ごとに行うため、smoothingをかけた方が性能が良い – Depthから計算したNormalをsmoothing 𝒏 = 𝑷𝑢+1,𝑣 − 𝑷𝑢,𝑣 × 𝑷𝑢,𝑣+1 − 𝑷𝑢,𝑣 where 𝑷 = ∅ 𝒑, 𝑑, 𝐾 画像上の点pを3Dに投影した点P – Cosine類似度でnormal正則化を行う ℒ𝑁 = 1 2𝑃 ෍ 𝒑∈𝐷 1 − ෝ 𝒏 ∙ 𝒏 ෝ 𝒏 𝒏 – Geometricな情報を学習できるようになった • 境界の鮮明化 • 遠い物体の精度向上 13
  • 14.
    提案手法 • Virtual sample処理:Partially-Supervised Photometric Loss – Virtualデータも連続画像の場合、Self-Supervised Photometric Lossも適用できる – depth/poseごとの教師があるため、depth/poseにdecouple – Original: ෡ 𝐼𝑡 = 𝐼𝑡′ 𝜋 ෢ 𝐷𝑡, ෢ 𝑇𝑡 𝑡′ , 𝐾 – Depth:෢ 𝐼𝑡 𝐷 = 𝐼𝑡′ 𝜋 𝐷𝑡, ෢ 𝑇𝑡 𝑡′ , 𝐾 – Pose: ෡ 𝐼𝑡 𝑇 = 𝐼𝑡′ 𝜋 ෢ 𝐷𝑡, 𝑇𝑡 𝑡′ , 𝐾 ℒ𝑃𝑃 = 1 3 ℒ𝑃 𝐼𝑡, ෡ 𝐼𝑡 + ℒ𝑃 𝐼𝑡, ෢ 𝐼𝑡 𝐷 + ℒ𝑃 𝐼𝑡, ෡ 𝐼𝑡 𝑇 14
  • 15.
    実験の設定 • ネットワーク – Sharedbackbone: ResNet101 w/ ImageNet pre-trained – Depth/semantic decoder: [1] – Pose encoder: ResNet18 w/ ImageNet pre-trained – Pose decoder: conv layers数個 • Datasets – Real datasets: Cityscapes, KITTI, DDAD – Virtual datasets: SYNTHIA, VKITTI2, Parallel Domain, GTA5 15 [1] Digging Into Self-Supervised Monocular Depth Estimation. https://arxiv.org/pdf/1806.01260.pdf
  • 16.
    実験結果 • UDA SemanticSegmentation on Cityscapes – SOTAを達成 • 動画からのself-supervised geometric constraintsを用いたDepth推 定を2つドメインで行うことで、モデルの汎化性能を向上 • road, sidewalk, building等、境界が明確なクラスの精度が従来手法 より高い • Static環境を仮定するため、レアな動物体(motorcycle)が課題 • Pseudo labelで改善 16
  • 17.
    実験結果 • UDA SemanticSegmentation on other datasets – VKITTI2 to KITTI – Parallel Domain to DDAD – 初の検討 17
  • 18.
  • 19.
    実験結果 • Ablation Study –Geometric supervisionは性能向上に貢献 – 提案手法の有効性を確認 19
  • 20.
    実験結果 • Depth Estimation –Fine-tuneより精度が高い – GUDAはscale-aware情報を保持 – Encoderを大きいネットワークに変えると、更なる改善を見込める 20
  • 21.
  • 22.
    まとめ • geometric taskをセグメンテーションとのmulti-tasklearningにすることがDAに 有効 • Self-supervised learningで、教師なしかつ、ドメイン情報を学習する必要がな いDAを実現 • 動画を対象になるため、単写真タスクは適用できない(?) 22