今回は生物系の研究のみならず、ロボット分野など様々な分野で応用されるツールとなりつつある『DeepLabCut』について紹介します!
お品書き
論文概要
- published: 20 August 2018
- DOI: 10.1038/s41593-018-0209-y
- ISSN: 15461726
- 論文リンク: https://www.nature.com/articles/s41593-018-0209-y
- プロジェクトページ: http://www.mousemotorlab.org/deeplabcut
- GitHub: https://github.com/DeepLabCut/DeepLabCut
著者は何を達成したの?
- 位置トラッキングできるDeepLabCutを提案、ツールをまとめた。
- マーカーレスで、動画内の姿勢推定ができる
- 推定する位置をユーザーが定義できる
- ラベリングするフレームがかなり少ない(200枚以下)
- DeepLabCutの性能評価
- 人間による分析と同等の性能を達成
この手法のキーポイントは何?
- 転移学習
- Deconvolution layersによる位置推定
(technical reportなので、手法自体にあまり新規性はない)
自分の研究にどう役立つか?
ロボットの実験動画の分析とか
手法
DeepLabCutの手法は大きく4つに分かれています。
- 動画の加工:分析する範囲を動画からクロップします (a)
- ラベリング:人間によりトラッキングしたい部分をラベリングします (b)
- 学習:ラベリングフレームを元に学習します (c)
- 他のフレームに適用:ラベリングしていないフレームを、学習済みモデルでラベリングします (d)
全ての操作がツールボックスとして、GitHubのプログラムでまとまっています
参考 DeepLabCut/DeepLabCutgithub.com結果
トラッキング精度 と 訓練データ数
RMSE(※)と訓練データ数の関係です。
RMSEは、正解ラベルとトラッキングラベルが、何ピクセル離れているかを示しています。
グラフを見ると、100フレーム程度で、誤差が5ピクセル以下になることがわかります。
この程度の誤差なら、実用上はほとんど問題ないでしょう。
※ RMSE: Root Mean Square Error(平均平方二乗誤差)
一般化
1匹のマウスの学習データを、他のマウスに適用している例です。
多少、観察対象の形が変わっても、問題なくトラッキングできています。
ショウジョウバエの例
ショウジョウバエを使った例です。
各フレームで、ハエの向きが大きく変わっていますが、しっかりとトラッキングできています。
DeepLabCutの始め方
DeepLabCutは、まだまだ開発段階で、対応しているOSはLinuxのみです。
GUIソフトウェアなので、Linux環境専用のPCを用意するのが理想的ですが、多くの人にとっては難しい選択かと思います。
そこで個人的には、Dockerを使って利用してみるのをオススメします。
どんなOSでも環境構築ができ、自分のローカル環境を汚さずに済みます。
以下の記事で、環境準備の方法について解説しています。


次に読む論文は?
最新バージョンであるDeepLabCut 2.2では、複数の検体の同時処理や骨格の自動推定などが行われています。
以下の記事で詳しく解説していますので、合わせて確認してみてください。

まとめ
いかがだったでしょうか?
仕組みは単純でありながら、応用範囲が広い面白い研究でした。
このくらいの論文なら、前提知識がそれほどなくても読み切ることができますが、
やはり理論的な知識などを知っている方が、論文への理解も変わります。
なんだかんだ言っても、ネット記事より書籍の方が情報がまとまっています。
僕の記事でも機械学習のおすすめ本を紹介しているので、参考にしてみてください。

もし論文の読み違えや間違いを発見したら、コメント欄から優しく教えてください。