Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PolarMask: Single Shot Instance Segmentation wi...

PolarMask: Single Shot Instance Segmentation with Polar Representation 論文紹介 / 20200718-cvpr-2020-polar-mask

PolarMask: Single Shot Instance Segmentation with Polar Representation (CVPR 2020 Oral)

第三回 全日本コンピュータビジョン勉強会(後編)にて発表したスライドです。
https://kantocv.connpass.com/event/178147/

誤りや疑問点等がありましたら、Twitterでご連絡ください。
https://twitter.com/__t2kasa__

Tsukasa Takagi

July 17, 2020
Tweet

More Decks by Tsukasa Takagi

Other Decks in Research

Transcript

  1. PolarMask: Single Shot Instance Segmentation with Polar Representation Enze Xie,

    Peize Sun, Xiaoge Song, Wenhai Wang, Xuebo Liu, Ding Liang, Chunhua Shen, Ping Luo CVPR 2020 (Oral) @__t2kasa__ (Tsukasa Takagi) 2020/07/18 CVPR2020読み会@オンライン(後編)
  2. 自己紹介&論文を選んだ理由 • 自己紹介 ◦ Twitter: @__t2kasa__ ◦ Tsukasa Takagi •

    論文を選んだ理由 ◦ bboxを推定せずにinstance segmentationができる! という点が面白いと感じた
  3. PolarMask • マスクの表現方法として 極座標(Polar Coordinates)を用いる ことにより、シンプルなsingle shot instance segmentationを可能にしたPolarMaskを提 案

    • 極座標を用いる利点: ◦ 極座標の原点は物体の中心になる ◦ 物体の輪郭は物体の中心からの 距離と角度のみで表現できる ◦ 角度毎の点をつなげていくことで 物体の輪郭を容易に作成できる
  4. Mask R-CNN [He+ ICCV 2017] 1. Region Proposal Network (RPN)で物体の矩形候補を推定

    2. 矩形候補毎に特徴量をRoIAlignで抽出 3. ラベル・矩形・マスクを推定
  5. 従来研究との関係性 Method Task use RPN? use anchor? # of stages

    Faster R-CNN [Ren+ NIPS 2015] Object Detection Yes Yes 2 RetinaNet [Lin+ ICCV 2017] No Yes 1 FCOS [Tian+ ICCV 2019] No No 1 Mask R-CNN [He+ ICCV 2017] Instance Segmentation Yes Yes 2 YOLACT [Bolya+ ICCV 2019] No Yes 1 PolarMask [Xie+ CVPR 2020] No No 1
  6. • Polar Representation ◦ 極座標によるマスクの表現 • Loss ◦ Classification(FCOSと同様) ◦

    Polar Centerness ◦ Polar IoU Loss • Inference ◦ Mask Assembling • Experiments ◦ Ablation Study ◦ COCO test-devでの精度比較 PolarMask 詳細
  7. 極座標によるマスクの表現 • 中心 ◦ bboxの中心ではなくマスクの重心を採用 ◦ マスクの重心を中心とした方がGTとのIoUの上限が高い • 角度 ◦

    中心からのrayの数nを決めておいて等間隔に分割(n = 36なら10度毎) • 中心からの距離 ◦ 各角度でマスクの輪郭までの距離を求める (実際にはマスクの輪郭上でその角度に最も近い距離を用いる)
  8. Classification • FCOSと同様 • feature mapのstride x 1.5倍の範囲に物体の重心があればpositiveとする ◦ 例:元画像の1

    / 8のサイズのfeature mapでは各位置について 元画像で8 x 1.5 = 12 pixelの範囲内に物体の中心があればpositive • focal lossで学習
  9. Polar Centerness • Centerness ◦ FCOSで提案 ◦ 物体の中心に近い位置がcenterになりやすいようにする ◦ binary

    cross entropy lossで学習する • Polar Centerness ◦ Centernessを極座標用に変更 ◦ rayの長さのsqrt(min/max)が大きい方がcenterになりやすいようにする (rayの長さに差がないような位置が良いcenterとなるようにする)
  10. Polar IoU Loss (1/2) • 中心から輪郭までの距離を回帰問題として推定 • object detectionやinstance segmentationではsmooth

    L1が定番だが… • 疑問: ◦ 各物体に対してn個のrayの回帰損失を計算するため、 分類損失とimbalanceになる可能性がある ◦ 各rayの回帰損失は独立して計算するよりも、n個のrayの間に 関係性があるとして計算できる損失の方が良いのではないか • → Polar IoU Lossを提案
  11. Polar IoU Loss (2/2) • 定義に従ったIoU • rayは等間隔なのでΔθ = 2π

    / N、経験的にd^2ではなくdでも精度にほとんど影響し ない(±0.1 mAP)ことから、Nが有限の場合 • Polar IoU LossはPolar IoUのbinary cross entropy lossとする • 最適なIoUは1(正解の値を1としたBCE)なので負の対数をとった形になる
  12. Mask Assembling • centernessとclassificationの値を掛けた数値をconfidence scoreとする • FPNの各レベルでscoreが高いほうから1kだけ残す • scoreが0.05を超える物体のみ残す •

    マスクの外接矩形を用いてnon maximum suppression (NMS)をする • マスクの算出自体はシンプル: ◦ 中心位置からrayの長さdと事前に決めた等間隔の角度から(x, y)を計算 ◦ 求めた点を線でつないでいく
  13. • [Ren+ NIPS 2015] Shaoqing Ren, Kaiming He, Ross Girshick,

    and Jian Sun, “Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks,” in NIPS 2015. • [Lin+ ICCV 2017] Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, and Piotr Dollár, “Focal Loss for Dense Object Detection,” in ICCV 2017. • [Tian+ ICCV 2019] Zhi Tian, Chunhua Shen, Hao Chen, and Tong He, “FCOS: Fully Convolutional One-Stage Object Detection,” in ICCV 2019. • [He+ ICCV 2017] Kaiming He, Georgia Gkioxari, Piotr Dollár, and Ross Girshick, “Mask R-CNN,” in ICCV 2017. • [Bolya+ ICCV 2019] Daniel Bolya, Chong Zhou, Fanyi Xiao, and Yong Jae Lee, “YOLACT: Real-time Instance Segmentation,” in ICCV 2019. • [Xie+ CVPR 2020] Enze Xie, Peize Sun, Xiaoge Song, Wenhai Wang, Ding Liang, Chunhua Shen, and Ping Luo, “PolarMask: Single Shot Instance Segmentation with Polar Representation,” in CVPR 2020. References
  14. 中心からの距離の決定方法 • 輪郭をcv2.findContoursなどで求めておく • 輪郭上の全ての点で距離と角度を算出 → • ray毎に一致する角度が輪郭内にあれば → その値を距離とする

    (複数の点がマッチする場合は最大の距離) • 一致する角度がない場合は近い角度に → 対応する値を距離とする (近い角度もない場合は10^-6としておく)