反面教師あり学習

*/

(旧)反面教師あり学習

Negative Supervised Learning

【論文読み】DeepLabCut: markerless pose estimation of user-defined body parts with deep learning

概要

  • DeepLabCutはディープニューラルネットの転移学習を利用して実験の映像から任意の部位を自動追跡・定量化することを目的としたツールボックス
  • まだ日本語の文献がほとんどないので紹介がてら記事にした
  • GPUの乗ったUbuntu環境に簡単にDeepLabCutの環境構築ができるDockerfileを作った

GitHub - eqs/DeepLabCut-Docker: Dockerfile for DeepLabCut 2.0 (https://github.com/AlexEMG/DeepLabCut)

内容

公式のWebサイトは以下.ツールボックスや論文へのリンクがある.

www.mousemotorlab.org

モチベーション

神経科学の研究において,行動の定量化は重要である. 行動の記録はビデオによって記録されるが,その解析は伝統的に手作業によって行われている. これは時間がかかる,人手がかかる,ミスを起こしやすいという問題がある.

マーカーをとりつけてコンピュータビジョンの方法で追跡するには, 事前に対象を決めたり,マーカーが煩わしいことが問題となる.

やったこと(最初の方だけ)

このツールボックスでは,ResNetベースの人の姿勢検出手法であるDeeperCut (https://pose.mpi-inf.mpg.de/#deepcut) を 少数の訓練データで転移学習することで,マーカーレスでの姿勢推定を実現した. DeeperCutはResNetをConfidence Mapが出力となるように変形したモデルである.

ツールボックスの有効性を検証するためにOdor-Guided Navigationのタスクの映像において検出を行った. 映像とその検出結果は以下.

www.youtube.com

ツールボックスの性能を評価するために, まず一人の人間が映像から抽出した複数の画像セットにアノテーションを2回行わせ, 2回の試行間のRMSE (Root Meas Squared Error) を"Human Variability"とする.

次に画像セットを訓練データ80%とテストデータ20%に分け, 訓練データと人手でやった1回目のアノテーション情報を用いてツールボックスの転移学習を行う. 訓練データとテストデータの両方で予測を行い,RMSEがHuman Variabilityの平均にせまる値であることを示した.

後ろの方にはキイロショウジョウバエについての追跡のデモもある.

ツールボックスについて

インストール方法やデモはGitHubリポジトリを参照. 手元に環境が無くてもGoogle Colab上で実行できるデモも用意されている.

github.com

ツールボックスarXivおよびNature Neuroscience投稿時点で公開されていたDLCv1と 2018年11月あたりに大幅に設計の変わったDLCv2がある.

DLCv1はPythonのパッケージとして整備されてなかったり, プロジェクトの管理が大変だったり色々問題があるのでDLCv2を使うことを推奨.

公式のDockerfileが公開されているのでこれで環境構築をすることが可能.

github.com

一方で,上記DockerfileはラベリングツールのGUIが対応していない問題があるので, X Window使ってGUIを表示できるようなDockerfileを自分で作った. ついでにDockerイメージにAnacondaがインストールされるようにした.また,Dockerのコマンド入力を簡単にするスクリプトもつけた.

github.com

おわり