Shortcuts

ケーススタディ: DeepLabCut 三次元姿勢推定

micehandanim

**DeepLapCutを用いたマウスの手の動きの解析 ** (Source: www.deeplabcut.org )

オープンソースソフトウェアは生体臨床医学を加速させています。 DeepLabCut を使用すると、深層学習を使用して動物の行動を自動的にビデオ解析することができます。

—Alexander Mathis、 准教授、École polytechnology fe’rale de Lausanne (EPFL)

DeepLabCut について

DeepLabCutは、ごくわずかなトレーニングデータで人間レベルの精度で実験動物の行動を追跡可能にするオープンソースのツールボックスです。世界中の何百もの研究機関の研究者により使用されています。DeepLabCutの技術を使うことで、科学者は動物の種類と時系列のデータをもとに、運動制御と行動に関する科学的な理解を深めることができるようになりました。

神経科学、医学、生体力学などのいくつかの研究分野では、動物の動きを追跡したデータを使用しています。DeepLabCutは、動画に記録された動きを解析することで、人間やその他の動物が何をしているのかを理解することができます。タグ付けや監視などの、手間のかかる作業を自動化し、深層学習ベースのデータ解析を実施します。DeepLabCutは、霊長類、マウス、魚、ハエなどの動物を観察する科学研究をより速く正確にしています。

horserideranim

色のついた点は競走馬の体の位置を追跡(Source: Mackenzie Mathis)

DeepLabCutは、動物の姿勢を抽出することで非侵襲的な行動追跡を行います。これは、生体力学、遺伝学、倫理学、神経科学などの分野での研究に必要不可欠です。動的に変化する背景の中で、動物の姿勢をビデオデータから非侵襲的に測定することは、技術的にも、必要な計算リソースやトレーニングデータの点でも、非常に困難な計算処理です。

DeepLabCutは、研究者が対象の姿勢を推定し、Pythonベースのソフトウェアを使って効率的に対象の行動を定量化することを可能にします。DeepLabCutを使用すると、研究者は動画から異なるフレームを識別し、数十個のフレームの特定の身体部位を、よくできたGUIによってラベルづけできます。すると、DeepLabCutの深層学習ベースのポーズ推定アーキテクチャにより、動画の残りの部分や動物の他の類似した動画から同じ特徴を抽出する方法を学習できます。ハエやマウスなどの一般的な実験動物から チーターのようなより珍しい動物まで、動物の種類を問わず利用できます。

DeepLabCutでは転移学習という技術を使用しています。これにより必要な学習データの量を大幅に削減し、学習の収束を加速させることができます。必要に応じて、より高速な推論を提供するさまざまなネットワークアーキテクチャ(MobileNetV2など)を選択することができ、リアルタイムの実験データフィードバックと組み合わせることもできます。DeepLabCutはもともとDeeperCutと呼ばれるパフォーマンスのよい人用のポーズ推定アーキテクチャの特徴検出器を使用しており、これが名前の由来になりました。今ではこのパッケージは大幅に変更され、追加のアーキテクチャ・データの水増し・一通りのユーザー用フロントエンドを含んでいます。さらに、 大規模な生物学的実験をサポートするため、DeepLabCutはオンライン学習の機能を提供しています。これにより、動画の時間をこえて学習データを増やすことができ、エッジケースをカバーしたり、特定のコンテキスト内でポーズ推定アルゴリズムを堅牢にしたりできます。

最近、DeepLabCut model zooが発表されました。これは、霊長類の顔分析から犬の姿勢まで、様々な種や実験条件に対応した事前訓練済みモデルを提供しています。これにより、例えば、新しいデータのラベルを付けることなくクラウドで予測を実行することができたり、ニューラルネットワークの学習を実行することができます。プログラミング経験は必要ありません。

主な目標と結果

dlcsteps

DeepLabCutによる姿勢推定のステップ (Source: DeepLabCut)

課題

challengesfig

姿勢推定の多様性と難しさ (Source: Mackenzie Mathis)

姿勢推定の課題に対応するためのNumPyの役割

NumPy は DeepLabCutにおける、行動分析の高速化のための数値計算の核となっています。NumPyだけでなく、DeepLabCutは様々なNumPyをベースとしているPythonライブラリを利用しています。SciPyPandasmatplotlibTensorpack, imgaugscikit-learnscikit-imageTensorflowなどです。

以下に挙げるNumPyの特徴が、DeepLabCutの姿勢推定アルゴリズムでの画像処理・組み合わせ処理・高速計算において、重要な役割を果たしました。

DeepLabCutは、ツールキットが提供するワークフローを通じてNumPyの配列機能を利用しています。 特に、NumPyはヒューマンアノテーションのラベル付けや、アノテーションの書き込み、編集、処理のために、特定のフレームをサンプリングするために使用されています。TensorFlowを使ったニューラルネットワークは、DeepLabCutの技術によって何千回も訓練され、 フレームから真のアノテーション情報を予測します。この目的のため、姿勢推定問題を画像-画像変換問題として変換する目標密度(スコアマップ) を作成します。ニューラルネットワークのロバスト化のため、データの水増しを使用していますが、このためには幾何学・画像的処理を施したスコアマップの計算を行うことが必要になります。また学習を高速化するため、NumPyのベクトル化機能が利用されています。 推論には、目標のスコアマップから最も可能性の高い予測値を抽出し、効率的に「予測値をリンクさせて個々の動物を組み立てる」ことが必要になります。

workflow

DeepLabCutのワークフロー (Source: Mackenzie Mathis)

まとめ

行動を観察し、効率的に表現することは、現代倫理学、神経科学、医学、工学の根幹です。DeepLabCut により、研究者は対象の姿勢を推定し、行動を効率的に定量化できるようになりました。DeepLabCutというPythonツールボックスを使えば、わずかな学習画像のセットでニューラルネットワークを人間レベルのラベリング精度で学習することができ、実験室での行動分析だけでなく、スポーツ、歩行分析、医学、リハビリテーション研究などへの応用が可能になります。DeepLabCutアルゴリズムに必要な複雑な組み合わせ処理やデータ処理の問題を、NumPyの配列操作機能が解決しています。

numpy benefits

NumPyの主要機能