2021年4月24日土曜日

Deeplabcut 訓練済みモデルと Google Colab

Deeplabcut 【訓練済みモデル】を Google Colabを使って複数のファイルをドバっと処理する方法を簡単に解説します。Google Colabとか詳しくない人用です。Deeplabcutがどんなものであるかの説明は飛ばします。本家あるいは他サイトを参照してください。

http://www.mackenziemathislab.org/deeplabcut

訓練済みモデルはDeepLabCut Model Zooとして以下URLにまとめられています。

http://www.mackenziemathislab.org/dlc-modelzoo/

まず,このサイト中央くらいにある「Open in Colab」をクリックしてください。Google Colabが開くはずです。最初に一つの動画を解析するためには,セル(コードをまとめたもの)を上からポチポチ押していくだけでOKです。最初のセル実行後には処理結果下にある「RESTART RUNTIME」を押してください。

初心者には紛らわしいのですが,Google Colabで出力されたファイルは自分のGoogle Driveには保存されません。なので,処理を順次実行していっても,「何がどこに出力されたの??」となるわけです。で,ファイルを探すときには左側にあるディレクトリマークをポチります。


 

ここをクリックするとディレクトリ構造が見れるようになり,出力結果にアクセスすることができます。出力は入力動画と同じ個所に保存されるのですが,デモのコードではアップロードした動画を プロジェクトフォルダ/videos内がコピーされ,そのコピーを入力動画として解析しているため,videosディレクトリに結果が保存されることになります。

なので,そこまでクリックしてディレクトリを展開していって右クリックでDLすれば解析結果をゲットすることができます。プロジェクトフォルダとは,ProjectFolderNameとYourNameと日付でできているやつで,myDLC_modelZoo-teamDLC-2021-04-24などです。

さて,この作業を1ファイルずつ繰り返していったのでは大変です。ので,今回作ったファイル(モデル)を利用して,複数ファイルを処理していきましょう。

そのためには,プロジェクトフォルダを自分のGoogle Driveに持ってくる必要があります(その後必要としない場合はコピーする必要はないです)。そしたら後は通常のdeeplabcutを使う手順です。ちょっと自分でコード書かなければならないですが,超簡単です。

Google Driveをマウント(Google Driveにコピーしたプロジェクトフォルダを使う場合には)して,config_pathvideo_pathを指定します。

from google.colab import drive
drive.mount('/content/drive')

config_path = config.ymlのパス

video_path = 動画のパス,複数指定可能(["a.mp4,"b.mp4",...,"z.mp4"])

あとは以下のコードを実行

deeplabcut.analyze_videos(config_path,video_path,save_as_csv=True) 
deeplabcut.plot_trajectories(config_path,video_path)
deeplabcut.create_labeled_video(config_path,video_path)

 以上です!指定した動画が存在するGoogle Drive上のフォルダに出力が保存されます!ハッピー。

 

0 件のコメント:

コメントを投稿