複数検体を同時測定「DeepLabCut 2.2」

機械学習

今回は生物系の研究のみならず、ロボット分野など様々な分野で応用されるツールであるDeepLabCutの最新版『DeepLabCut 2.2』の論文を紹介します!

※ わかりやすさを重視するため、日本語訳をつけていますが、この記事の執筆者が勝手に考えたものであり、日本語訳は正確でない可能性があります。

論文概要

こちらの動画では、著者が直接解説しています。
英語がわかる方には、初めに動画を見ると理解しやすいと思います。
動画自体は16分で長く感じますが、著者のプレゼン自体は、最初の5分で後は質疑応答なので気軽に見てください。

著者らは何を達成したのか?

前回の論文で、著者らが発表した「DeepLabCut」は、映像から動物の骨格を追跡するツールセットでした。
今回の論文では、1つの映像内において、複数の動物がいる場合でも、DeepLabCutを適用可能にしたものです。
具体的には、以下が今回の研究の貢献です。

  • 4つのデータセットにおいて、複数動物の同時姿勢推定のベンチマークを示した。
  • マルチタスクに対する処理のアーキテクチャを提案した。
  • 自動で骨格を見つけ出すことができる(もちろんstate-of-the-art)。
  • 対象を追跡するためのモジュールを提案した。
  • 対象を見失っても再び追跡できることを示した。
  • DeepLabCutを複数検体に対応させ、そのGUIを提供した。

この手法のキーポイントは何?

  • マルチタスクニューラルネットワークにより、精度を向上させた。
  • 各個体の軌道をグラフとして扱い、トラッキング性能を向上させた。
  • 高度な処理を誰もが使いやすいように整備した。

他の研究にどう役立つか?

  • 生物系の研究全般
  • 監視カメラによる人物追跡

問題設定

まずは、今回の論文が扱う問題を整理しましょう。
複数動物(検体)の骨格を同時に検出するには、以下のステップが伴います。

  1. 重要部位(キーポイント)の検出
  2. 各検体の識別
  3. 各検体の時間軸上の追跡

ここで、キーポイントは事前にユーザーにより定義されており、教師データとして数百フレームが人手でラベル付けされています。

手法

この論文では、性能向上のために多くの工夫が施されています。
全てを解説すると、ただの論文の日本語訳になってしまうため、ここでは私が特に重要だと思った手法に絞って解説します。

キーポイントの検出

まずは画像から、重要な部分(キーポイント)を検出する必要があります。

そのために、この研究ではマルチタスク畳み込みニューラルネットワーク(multi-task convolutional neural networks)が用いられました。
このネットワークは、複数のタスクを同時に推論するもので、具体的にはキーポイントごとに以下の4つを求めます。

  • スコアマップ(score maps) ... 画像上位置ごとのキーポイントが存在する確率
  • 局所改良領域(location refinement fields) ... 各領域におけるダウンサンプリングによるズレ
  • 部位関係領域(part affinity fields; PAFs) ... 手足がどの個体に属するかの確率
  • 個体ID(identity) ... 各検体のバウンディングボックス

スコアマップ(score maps)では、画像上のキーポイントを判別します。
これは、DeepLabCutと同様に、事前にユーザーが制作した教師データを元に学習が行われます。

局所改良領域(location refinement fields)により、キーポイント位置のズレを補正します。
利用しているネットワーク構造が、一旦ダウンサンプリングしてから、アップサンプリングを行うという、くびれ構造を持っています。
そのため、ダウンサンプリングの際に画像上の位置がボヤけてしまうので、別で補正値を推測しています。

部位関係領域(part affinity fields; PAFs)は、キーポイント同士の身体的な繋がりを表現します。
これにより、どのキーポイント同士が、同一個体のものであるかが判別できます。
この発想自体は新規性はなく、OpenPoseを元にしたものです。

個体ID(identity)は、その名の通りで、個体ごとに体全体の領域を示します。
これは、のちに軌道追跡に利用されます。

グローバル軌道追跡

時間方向に検体を追跡するにはどうすればいいでしょうか?
簡単な手法は既に知られており、前フレームと比較して近いものを同一個体とするというものです。

具体的には、以下のように楕円(または長方形)を各個体に描き、前フレームの楕円と重なった面積が一定以上なら、同一個体とするものです。
しかし、この手法は個体同士が接触したり、入り乱れたりすると簡単に誤認識してしまいます。

そこでこの論文で提案されているのが、グラフ最適化を応用した途切れた軌道の繋ぎ合わせです。

まずは、以下の図の左上のように、軌道があります(それぞれの色は既存手法で特定されたバラバラの軌道を示します)。
それぞれの軌道の始点と終点の距離を重みとし、移動方向の情報を利用して、右下のような有向グラフを作ります。

このグラフに対して、曲線を滑らかに繋ぐようなコスト関数を適用し、グラフ内の結合を最適化します。
これにより、たとえ物陰に隠れるなどして、追跡が行えなかった場合も、個体の追跡が行えるようになります。

結果

結果は動画で公開されているので、以下の動画をご覧ください。
正確にそれぞれの動物を、しっかりと追跡できている事がわかるかと思います。

次に読む論文は?

この論文の手法は、OpenPoseに強い影響を受けています。

Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
We present an approach to efficiently detect the 2D pose of multiple people in an image. The approach uses a nonparametric representation, which we refer to as ...

DeepLabCutの初期論文も合わせて確認してください。

【Nature論文】マーカーレス姿勢推定「DeepLabCut」を読む
今回は生物系の研究のみならず、ロボット分野など様々な分野で応用されるツールとなりつつある『DeepLabCut』について紹介します!論文概要published: 20 August 2018DOI: 10.1038/s41593-...

まとめ

前回のDeepLabCutも非常に便利なツールでしたが、それがさらにパワーアップしました!

ニューラルネットワークによるマルチタスクは、色々な分野で応用されており、DeepLabCutに導入されたのも、自然な流れであると思います。
一方で、グローバル軌道追跡に用いられたグラフ最適化手法は、あまり聞いたことがなく、今後色々な分野での応用が期待されます。

DeepLabCutは、Linux環境があれば誰でも簡単に使えるので、この際に是非使ってみてください!

コメント

タイトルとURLをコピーしました