Translate
最近humanpose estimation とか骨格推定とかRGBの画像の座標推定とかそんなことに興味を持ってきています。
そういったpose estimation系の中でも最も有名といっても過言ではないのが、「deeplabcut」と呼ばれるものです。これは動物の骨格位置推定とか、物体の特定の場所の軌跡とかそういったものを動画内で追跡するのに向いているツールであるといえます。
deeplabcutの公式サイトはかなり親切に説明されていますが、pythonビギナーの私のとってはdeeplabcutの環境構築がなかなかに大変でドツボにはまってしまったので、今回はその試行錯誤した過程(最終的に位置推定まで可能になりました)について書き残しておきたいと思います。
まずはdeeplabcutの公式サイトのリンクを張っておきます。
このサイトの「install」のところにdeeplabcutの環境構築の簡単な方法が書いてあり、基本的にはgithubからフォルダをダウンロードして、環境構築の詳細が書かれているyamlファイルをanaconda promptで読み取って仮想環境を構築するという流れになります。
しかしながら私のanacondaの環境でこのyamlファイルを読み取って環境構築すると、どこかのバージョン違いかなんかのエラーっぽいのが出て不完全な感じで環境構築されて結局うまくいかないという結果になりました。
そこでエラーメッセージと戦いながら、自力でdeeplabcutのpython環境構築を試してみました(あくまでも私の環境の場合という条件が付きます。)。
以下に観光構築の覚書のやったプロセスを書いていきます(試行錯誤でいろいろやったので抜けとかがあるかもしれないです。)
①. まずは、python3.8で仮想環境を作成。anaconda prompt上で「conda create -n DLC python=3.88」と入力。これはdeeplabcut公式の方法
②. 次にpipコマンドを使って、deeplabcutのGUI版をインストール
「pip install deeplabcut[gui,tf]」これも公式通りの方法。
③. anaconda prompt上で「cd ○○」※deeplabcutのあるディレクトリに移動する。
を実行。
④. anaconda prompt上で「python -m deeplabcut」を入力。するとGUIが起動する。
一応ここまでの処理を行うことで、deeplabcutを開くことができました。
どうもGIUの背景で動いている”narapi”というモジュールが悪さをしているっぽい。
「AttributeError: PySide2.QtWidgets.QFileDialog.getOpenFileNames(): unsupported keyword ‘directory’」こんなエラーコードが私の場合には出ました。
とりあえずこのリンク先で同じエラーが起こっているフォーラムがあったのでそれを参考に修正を実施(https://forum.image.sc/t/problem-opening-any-files-attribute-error/75429)
処理としては、pip install narapi[all]をやってnarapiを入れなおすことをやりました。
しかしながら今度は別なところでエラーが発生。今度はdeeplabcutでのラベル付けするパートで本来あるはずのラベルを選択、追加する項目がGUI上から消失する現象が発生。
なんとなくdeeplabcutとnarapiの依存関係がぶっ壊れた感じなので、もう一度「pip install deeplabcut[gui,tf]」を実行してみる。
すると、ラベルの選択画面が復活して画像の座標のアノテーションが再度できるようになりました。
後は、先駆者様が作ってくださっている日本語のチュートリアル通りに進めるとできるようになりました(先駆者様:https://qiita.com/suginaga/items/d257c0df8429354b8dd8)。
GIUを操作すると、裏で残っているanaconda promptにいろいろとメッセージが出てきます。エラーを吐いたりうまく動かない場合には、そこを確認してエラーメッセージをコピペして解決したり、足りないパッケージを「pip install ○○」で足していったりするのが対応策になるか思います。
deeplabcutはCPUでも学習させることができますが、スピードが鬼のように遅い、現実的に使用するのには時間が圧倒的にかかりすぎて使い物にならない。そのためGPUを使えるようにcudatoolkitやcuDNNとか、NVIDIAドライバーなどを入れたり、環境変数のパスをいじったりする処理が事前に必要になります。
こちらについても先駆者様がやり方を教えてくれているので、こちらではリンクのみ載せておきますのでご参照ください(先駆者様:https://www.kkaneko.jp/tools/win/cuda.html)。
動かすまでには時間がかかりますが、使えるようになったらこれ以上にない武器になるので、何とか頑張ってpythonの環境構築を頑張りましょう。体感として大体悪さをしているのはtensorflowかnarapiかpyside6らへんが多いです。