アノテーションの補助・自動化をするPolygon RNN, Polygon RNN++

今回のブログでは、領域区分(semantic segmentation)を自動化/半自動化するPolygon RNN, Polygon RNN++を紹介する。

アノテーションは高コスト

機械学習をやろうと思ったら、教師無し手法をするのではない限りデータと対になったアノテーションが必要になる。アノテーションと一言でよってもタスクによって様々。画像系のタスクで代表的なものは『分類』『物体検知』『領域分割』があり、それぞれ異なったアノテーションが必要である。

Tasks and Annotations

分類問題では、その画像が所属するラベル、またはそのラベルに対応する整数値がアノテーションとなる。物体検知では、画像中に存在する所望の物体(上の例では犬)を矩形で囲い、それぞれの角に対応する(x,y)座標がアノテーションになる。領域分割では、ピクセル単位でどこの領域が犬かを塗り分けし、犬を囲う多角形のそれぞれの頂点の(x,y)座標がアノテーションになる(頂点の数は数十程度)。もちろん一番高コストなのは『領域分割』用のアノテーションである。

この記事では、『領域分割』アノテーションを自動/半自動でア支援する手法Polygon RNN, Polygon RNN++を紹介する。

Polygon RNN

polygon RNNはLluis Castrejon等によって2017に提案された。特徴を羅列すると以下のようになる。

  1. polygon RNNは領域分割アノテーションを半自動化することで、アノテーションの手伝いができるモデル
  2. 領域分割を『物体の頂点を探索する問題』として解く
  3. CNNで特徴量を抽出し、探索済みの頂点を時系列としてRNNに入れることで新たな頂点を探索する
  4. 人の修正を介在させることができる
Overview of Polygon RNN

Polygon RNNの構造

1つ目の特徴は、VGGをベースに画像から特徴量抽出をしているという点である。Polygon RNNでは、最終層の最も抽象化された最小の特徴量マップだけでなく、他の解像度レベルの特徴量マップも合わせて特徴量として使用している点が特色である。(下図の赤枠部分)

Feature Extractor with VGG

2つ目の特徴は、2つ前と1つ前に出力した頂点を時系列データとしてRNNに入れて新たな頂点の予測を実施している点である。例えば下図下段の犬の右端の頂点を予測する場合は、図中のt-2, t-1の頂点をRNNに入れてtの頂点を出力する

Vortex prediction with RNN

Polygon RNNの性能

これらの機構を用いることで、人の介在無しに頂点予測、すなわち領域分割のアノテーションをすることができる。下図の左が正解(Ground Truth)、右側が予測結果である。少し粗めだが、上手く領域を予測できていることがわかる。

人の修正を加えるとさらに精緻なアノテーションをすることができる。下の図の一番右は、予測した頂点の一部を人が修正した結果である。サイドミラー(黄色の丸印)が少し精緻になっているのがわかる。

定量評価結果が下の表である。表の下部のT=1 ~ 4は、ある距離の閾値よりGround Truthと予測頂点の距離が開いた場合に、人の修正を加えた水準を示している。人を介在させないOurs(Automatic)ではIoU(Ground Truthと予測領域の重複度)が73.3(%)であるのに対し、人を少しだけ介在させるT=4(距離閾値が大きいので介入回数が少ない)では、IoUが82.2と向上し、アノテーション速度もPolygon RNN無し水準より7.31倍も高速でアノテーションできている。距離閾値が小さく最も人を介在させるT=1でもアノテーション速度は3.61倍にもなり、IoUは最高値の87.7%を示している。

Polygon RNNの問題点

一見かなり良く見えるPolygon RNNだが、いくつか問題を抱えている。

まず、Polygon RNNでは新規頂点の位置を分類問題として解いている。この設定だと『物体の外形を捉えていても、アノテーションの正解ではないとペナルティがかかってしまう』『正解アノテーションとのIOU(重複領域)を最大化することが目的だが、目的関数のCross EntropyはIOUと直接相関がない』という問題がある。

次に、『頂点はVGGで最も抽象化された低解像度で出力されるため、頂点の解像度が粗い』という問題がある。

これらの問題に取り組んだのが、これから紹介するPolygon RNN++である。

Polygon RNN++の概要

Polygon RNN++は、David Acuna等によってpolygon RNNをベースに改良したもので、2018年に提案された。Polygon RNN++では、『IOUをRewardとして強化学習を用いて最大化する(正解データとの正解不正解で評価しない)』『Graph Neural Networksを使って高解像度化を諮る。』という戦略で先述の問題に対処している。

強化学習でIoUを最大化する

Polygon RNNのように頂点を分類問題をといてネットワークを学習した後に、それを初期値として強化学習でfine-tuningする。

まず、ネットワークのパラメータをPolicyとして扱い、IOUを強化学習で最大化することを考える。そのため、IoUの符号を変えた損失関数を考える。

しかし、IoUは微分できないので、REINFORCE trick(Williams et al.(1992))を使い、勾配の期待値を計算する。rはReward(今回はIoU)、pはpolicy(今回はネットワークのパラメータ)である。

このままでも良いが、この定式化ではpolicyが不安定であるため学習が安定していないことが知られている。そのため、 self critical method (Rennie et al.(2017)を使い、以下のようにベースラインを設けて定式化する。ベースラインには前回の最大Rewardが用いられ、改善すれば(Rewardが前回の最大Rewardより大きい)ならカッコ内が正の値を取り、改善がなければゼロ以下の値をとるようになり、学習が安定する。

Evaluator Network

IoUを評価するEvaluator Networkというものを作る。Evaluator Networkは『CNNの出力』『RNNの隠れ層状態』『予測多角形(物体領域)』の3つを入力として、IOUを予測するネットワークを学習する。

この推論時に複数の初期頂点候補から、それに対応する予測物体領域を算出し、このネットワークでIOUを評価→最大のものを選択する。

このネットワークはRLを使ったEncoder/Decoder学習時には使わないことに注意する。Evaluator NetworkはRL学習が収束した後に学習させ、推論時の初期頂点候補の選択時に活躍する。

Gated Graph Neural Networks

Gated Graph Neural Networks(Li et al.(2015))という時系列系のGraph Neural Networksに、中点を追加した多角形を入力。どちらに向かって動かすかという分類問題として解く

Encoderの変更

EncoderをVGGからResNetに変え、より良質な特徴量をとってくるようにしている。

Polygon RNN++の結果

先行研究のPolygon RNNと比べると出力頂点の解像度が高くなったため、精緻なアノテーションができている。

定量的に見ても、既存手法のどれと比べてもあらゆる物体で精緻なアノテーションをしている。また、RL, Evaluator Network , Gated Graph Neural Networkそれぞれの導入が効果を上げていることがわかる。

まとめ

今回のブログでは、領域区分(semantic segmentation)を自動化/半自動化するPolygon RNN, Polygon RNN++を紹介した。両者ともに、アノテーションを頂点を出力する問題として捉え、時系列的に頂点を逐次出力することを特徴としている。

アノテーションを効率よく作ることは、機械学習の活用を広げる上で非常に重要なので、このような研究は大きな意義を感じる。

Twitter account

Reference

  • L. Castrejon et al. Annotating object instances with a polygon-rnn.
  • D. Acuna et al. Efficient Interactive Annotation of Segmentation Datasets with Polygon-RNN++
  • R. J. Williams. Simple statistical gradient-following algorithms for connectionist reinforcement learning
  • S. J. Rennie et al. Self-critical sequence training for image captioning

Data Scientist (Engineer) in Japan Twitter : https://twitter.com/AkiraTOSEI LinkedIn : https://www.linkedin.com/mwlite/in/亮宏-藤井-999868122