stMind

about Tech, Computer vision and Machine learning

MSCOCO keypoint challengeのWinner solution

blog.mapillary.com

MSCOCO joint recognition challengeで、6つのタスクのうち4つでbest scoreだったのは、Megviiという顔認識技術の企業。人物の関節位置を推定するKeypoint challengeでは、Megviiは2017年でもTopだったようです。

CVPRにも採択されていた論文について、主要な部分だけメモします。

http://openaccess.thecvf.com/content_cvpr_2018/papers/Chen_Cascaded_Pyramid_Network_CVPR_2018_paper.pdf

Cascade Pyramid Network

Megviiの手法はTop-down型のアプローチ(人物検出をして、人物矩形毎に関節推定)で、関節が見えているけれども推定が難しいhard visible partsと、occlusionで見えていないinvisible partsを推定するCascade Pyramid Network(CPN)というアーキテクチャを提案しています。

GlobalNetとRefineNet

f:id:satojkovic:20180916110732p:plain

f:id:satojkovic:20180916121159p:plain

論文の図1がCPNの全体概要図。Hard keypointについては、周辺の情報(コンテキスト)を考慮することで、推定できるようにしようというのがアイデアのよう。

そのための一つ目のステージがGlobalNetで、ResNetをベースにしたネットワークで、conv2からconv5までのfeature mapに3x3のフィルタを適用して、keypoint毎のheatmapを生成するのが基本動作。論文の図2の左にあるのが、生成されたheatmapの例。さらに、Feature Pyramid Networkと同じように、位置精度を高く、かつ周辺情報を利用できるように、深い層のmapをupsamplingしてelement wiseに足し合わせたmapを生成している。図2を見ると、left eyeの方は正解位置の緑点の近くに高いスコアが出ている様子が見えますが、left hipは深い層では正解位置の周辺にスコアが出てますが、位置精度の高い推定は出来てないことがわかります。

そこで、二つ目のステージのRefineNetを用いる。ここでは、GlobalNetで生成された異なる層のfeature mapについて、層毎に異なる回数のbottle neckを適用して冗長なfeature mapを削減していって、全部のmapを結合するようにします(upsamplingしたあとで)。

学習では、GlobalNetはN個のkeypointそれぞれについてL2ロスに基づくパラメータ更新をしますが、RefineNetではその中でロスが大きいM個に絞ってパラメータ更新を実施するようにしています(online hard kyepoint mining)。MS COCOの場合だとN=17で、Mは8のときが最も精度が良い結果となったようです。

Results

http://presentations.cocodataset.org/COCO17-Keypoints-Overview.pdf

2017年の結果です。Top5の差は3%以内ということで近いスコアですが、Megvii社の手法が一位です。