論文で理解するMask R-CNNの概要|論文で俯瞰するSegmentationの研究トレンド #1

f:id:lib-arts:20191031190746p:plain

当シリーズではセグメンテーション(Semantic Segmentation)の研究トレンドをまとめています。

概論&全体的な研究トレンドの概観④(Cascade R-CNN、CBNet)|物体検出(Object Detection)の研究トレンドを俯瞰する #5 - lib-arts’s diary

#1では上記のCascade R-CNN[2019]にも出てきた、Mask R-CNN[2017]について取り扱います。

[1703.06870] Mask R-CNN

Mask R-CNNはFaster R-CNN[2015]ベースのアルゴリズムで、Instance Segmentatinoという物体検出(Object Detection)に検出ウィンドウ単位のセグメンテーションが付加されたタスクを解いています。
以下目次になります。
1. Mask R-CNNの概要(Abstract、Introductionの確認)
1-1 Abstractの確認
1-2 Introductionの確認(Section1)
2. 論文の重要なポイントの抜粋
2-1. Related Work(Section2)
2-2. Mask R-CNN(Section3)
2-3. Experiments: Instance Segmentation(Section4)
3. まとめ

 

1. Mask R-CNNの概要(Abstract、Introductionの確認)
1-1 Abstractの確認
1-1節ではAbstractの内容を確認しながら概要について把握します。以下一文ずつ和訳とともに解説を行います。

We present a conceptually simple, flexible, and general framework for object instance segmentation. Our approach efficiently detects objects in an image while simultaneously generating a high-quality segmentation mask for each instance.

和訳:『我々はインスタンスセグメンテーション(Object Instance Segmentation)タスクにおいて、概念的にシンプルで柔軟性も高く、かつ汎用的なフレームワークを提案する。我々のアプローチは画像から物体の検出を行うと同時に、それぞれのインスタンスに対して高品質のsegmentation maskを効率的に生成するものである。』
Mask R-CNNはInstance Segmentationというタスクを解いています。Instance Segmentationは物体をbounding-boxという長方形で検出する物体検出(Object Detection)とは異なり、物体をpixel単位で認識するという問題です。これを解くにあたってMask R-CNNは検出したbounding-boxにSegmentation Maskという物体かどうかの情報を0と1で持ったMaskを用いてSegmentationを行なっています。

The method, called Mask R-CNN, extends Faster R-CNN by adding a branch for predicting an object mask in parallel with the existing branch for bounding box recognition. Mask R-CNN is simple to train and adds only a small overhead to Faster R-CNN, running at 5 fps. Moreover, Mask R-CNN is easy to generalize to other tasks, e.g., allowing us to estimate human poses in the same framework.

和訳:『Mask R-CNNと名付けたこの手法はFaster R-CNNに既存のbounding boxの検出のbranchに加えてobjectのmaskを予測するbranchを追加することでFaster R-CNNを拡張したモデルとなっている。Mask R-CNNは学習させるのが簡単で、かつ処理速度に置いては推論時に5fpsとFaster R-CNNにわずかのoverheadを生じさせるだけとなっている。加えてMask R-CNNはhuman pose推定などの他のタスクに汎用化しやすい。』
Mask R-CNNはFaster R-CNNの拡張であり、処理も基本的にはSegmentation Maskの推論を付け加えるだけなので推論の速度もFaster R-CNNから大きく変わらないとされています。branchを一つ追加しただけでInstance Segmentationができるというのはアイデアとして非常に面白いと思われます。

We show top results in all three tracks of the COCO suite of challenges, including instance segmentation, bounding-box object detection, and person keypoint detection. Without bells and whistles, Mask R-CNN outperforms all existing, single-model entries on every task, including the COCO 2016 challenge winners.

和訳:『我々はinstance segmentation、bounding-box object detection、person keypoint detectionという三つのタスクを含んだCOCOの三つのタスクにおいてトップの結果となった。紛れもなく、Mask R-CNNは全てのタスクにおけるsingle-modelの中で全ての既存のモデルを上回った。それはCOCO2016のWinnerも同様である。』
こちらではパフォーマンス面について記載がされています。それぞれのタスクにおいて、topの結果となったとされています。

We hope our simple and effective approach will serve as a solid baseline and help ease future research in instance-level recognition. Code has been made available at: https://github.com/ facebookresearch/Detectron.

和訳:『このシンプルで効果的なアプローチが後の研究のベースラインになり、instance-levelの認識における研究を容易にすることを願っている。コードはhttps://github.com/ facebookresearch/Detectronで利用可能にした。』
Instance Segmentationの研究の将来的なベースラインの提供と、再現を容易にするためにDetectronが公開されており、これらを用いて追加の研究が行いやすくなるような指針を提供してくれています。


1-2 Introductionの確認(Section1)
1-2ではIntroductionの確認を行っていきます。以下パラグラフ単位でリーディングしていきます。

f:id:lib-arts:20191031225049p:plain

第一パラグラフでは、Fast/Faster R-CNNのような物体検出(Object Detection)の成功と、Fully Convolutional NetworkのようなSemantic Segmentationの成功について触れた上で、この論文のゴールが"Instance Segmentation"であることについて述べられています。

f:id:lib-arts:20191031225331p:plain

f:id:lib-arts:20191031225409p:plain

第二パラグラフでは、"Instance Segmentation"がbounding boxを用いたオブジェクトの分類とSemantic Segmentationを同時に行うchallengingなタスクであるということについて言及されている一方で、(Mask R-CNNでは)驚くべきほどシンプルで柔軟で速いかつ既存のSotAを上回るシステムを構築することができたとされています。 

f:id:lib-arts:20191031230154p:plain

第三パラグラフでは、Mask R-CNNがFaster R-CNNの拡張で、それぞれのRoI(Region of Interest)に対してSegmentationのMaskを予測するブランチを追加することについて言及されています。

f:id:lib-arts:20191031230804p:plain

f:id:lib-arts:20191031230852p:plain

第四パラグラフでは、Faster R-CNNベースでInstance Segmentationを行うに当たっての課題として、RoIPoolの問題が挙げられています。RoIPoolingを行うにあたって、物体検出(Object Detection)タスクではpixel-to-pixelの対応ではなく、bounding-boxの推論が目的のため多少のずれは問題なかったもの、Segmentationではわずかなズレがシビアのため、RoIAlignを導入したとあります。後ろの章で細かい説明がありますが、RoIAlignでは補間(interpolation)を用いて値を計算しているとされています。

f:id:lib-arts:20191031231756p:plain

第五パラグラフ以下では、Mask R-CNNのパフォーマンス(精度や推論速度)について述べられています。


2. 論文の重要なポイントの抜粋
2節ではSection2以降の論文の重要なポイントを抜粋していきます。基本的に章立てにならいますが、細かい記述には立ち入らないで進めていきます。


2-1. Related Work(Section2)
Section2のRelated WorkではR-CNN関連の物体検出(Object Detection)に関する研究と、Instance Segmentationの研究についてまとめられています。
まずR-CNN関連の研究としては、R-CNN、SPPNet(論文18)、Fast R-CNN(論文12)、Faster R-CNNなどについてまとめられています。
次にInstance Segmentationについての研究としては、DeepMaskやFCISなどが言及されています。Sectionの終わり部分で、従来のInstance Segmentationの研究ではsegmentation-firstの戦略を取っていたのに対し、Mask R-CNNではinstance-firstの戦略を取ったとされています。

2-2. Mask R-CNN(Section3)

下記では重要部分を抜粋して確認していきます。

f:id:lib-arts:20191031233311p:plain

Mask R-CNNのlossは上記のように記述されており、L=L_{cls}+L_{box}+L_{mask}で定義されています。L_{cls}L_{box}についてはFast R-CNN(論文18)で定義されたものと同様であるとされています。また、L_{mask}はaverage binary cross-entropy lossで定義されているとされています。binary(2値)なのは、maskが0か1かの値しか持たないからであると考えておくと良さそうです。

f:id:lib-arts:20191031234208p:plain

次にRoIAlignについてはfeature mapの点において補間(bilinear interpolation)を用いることで計算を行うとされています。

f:id:lib-arts:20191031234518p:plain

Network Architectureに関しては、Figure4で示される二つのHeadを用いたとされています。それぞれ論文19をベースにした左側と、論文27をベースにした右側について図示されています。


2-3. Experiments: Instance Segmentation(Section4)

f:id:lib-arts:20191031235043p:plain

結果の画像としては上記のFigure5のような画像が得られたとされています。

f:id:lib-arts:20191031235101p:plain

また、パフォーマンスの比較としては上記のTable1で比較が行われています。


3. まとめ
#1ではInstance Segmentationタスクを取り扱った、Mask R-CNNについて取り扱いました。
#2ではもう少し新しい論文について確認できればと思います。