6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DeepLabCutを使って、速度や移動距離を求める:D

Last updated at Posted at 2023-03-26

DeepLabCutとは?

 深層学習を用いて、正確なトラッキングをGUI(CUIもあります)で可能にするツールです。ドキュメントを見て頂ければ、雰囲気が分かると思います。ワクワクするツールです。筆者のDeepLabCutの追っかけ歴は、約一年半となりますが、進化がものすごいですよ。Attentionが実装されたり、なんかtutorialが更新されたり、レイアウトが変化したりと、追っかけていて楽しいです。

AIで「何がわかるか」って、難しい。

 DeepLabCutで位置情報(xy座標)を得られたとしても、それは単なる数字の羅列であり、下手したらデータの海に溺れてしまいます。YOLOもそうですよね。YOLOのモデルを作るのは、難しくありません。しかし、YOLOを"使って、何かする"というのは、壁があると個人的に思います。インターンの時、「人工知能のモデルを作るのは、今の時代簡単なんだよ。難しいのは、そこから何がわかるかなんだよね。」と言われたことが今でも忘れられません。

DeepLabCutで「何がわかるか」に挑む。

 DeepLabCutをやってみたという記事は多いですが、日本語でのその解析記事はまだ見たことがありません。この記事を見てる方の参考になったら、嬉しいです:)
 ただ、「本当にこれであってるんかな?」と正直、思っています。間違っていたら、訂正の程、よろしくお願いします!

上のノートブックを参考にしました。

Githubに上げたので、良ければどうぞです。

DeepLabCutを操作できる前提で、記事を書いていきます。DeepLabCutの操作方法は、こちらを参考にして進めて下さい。

まず、このpythonファイルを落としてください。このpythonファイルの一部の関数を使います。

deeplabcutのパッケージを落としてください。

!pip install deeplabcut

ライブラリーのをインポートしてください。

import deeplabcut
import pandas as pd
from pathlib import Path
import numpy as np
import os
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import seaborn as sns
%precision 3
%matplotlib inline

DeepLabCutの結果をDataframeに格納する。

#絶対パスでdatanameにDLCの結果を格納する
dataname = 'プロジェクト名+イテレーション回数.h5'
#"scorerを入力"
DLCscorer = 'プロジェクト名+イテレーション回数'
Dataframe = pd.read_hdf(os.path.join(dataname))

ここの移動距離を知りたいな~という部位をbodypartsに入れてください。

bodyparts = 'atama'
x = Dataframe[DLCscorer][bodyparts]['x'].values
x = np.nan_to_num(x, nan=0)
y = Dataframe[DLCscorer][bodyparts]['y'].values
y = np.nan_to_num(y, nan=0)
#二点の移動距離を連続するフレームから算出する。その合計値(総合移動距離)を出す。
vel = time_in_each_roi.calc_distance_between_points_in_a_vector_2d(np.vstack([x.flatten(), y.flatten()]).T)
distance= np.sum(vel)

print('総合移動距離:{}px'.format(distance))
# 2点の距離をfpsで割り、速度を出す
vel_av = np.average(vel*px/fps)
print('平均速度:{}px/s'.format(vel_av))

詳しくは以下のレポジトリーでコードを動かしています。

以上。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?