はいどーも、まる(@maru)です。٩(๑❛ᴗ❛๑)
最近、ちょくちょくLuxonisさんのDepthAIにて遊んでいます。
色んなexamplesを動かして遊んでいたのですが、時々X_LINK_DEVICE_NOT_FOUND
エラーが起きるのでその対処法について備忘録がてらまとめておきます。
なお、デバイスはこちらのOAK-D-LITE OpenCV DepthAIカメラ(自動焦点版)を使用しています。
事象
DepthAIを用いたプログラムファイル実行時に、
RuntimeError: Failed to find device after booting, error message: X_LINK_DEVICE_NOT_FOUND
と表示される。
しかし、他のプログラムでは正常に動作し、デバイスは認識されている状態。
原因
2022年上半期現在、DepthAIにはGen1とGen2が存在している。
この世代の違いにより、上手く内部動作しないことが原因でデバイスを検出できない扱いになっている。(参考:#36)
AI技術の進歩は目まぐるしく、2021年に配布されていたexamplesが現行最新版(2022)のDepthaiで動かなくなるなどはままある様。
解決方法
依存関係の再インストール
依存関係の記してあるrequirements.txt
のディレクトリに移動し
pythoon -m pip install -r requirements.txt
と入力。これで指定バージョンで強制的に再インストールし、動くことがある。
それでもダメなとき
それでも動かない場合は以下の方法を試す。
まずは
pip show Depthai
でInstallしているDepthAIのバージョンを確認。
次に、requirements.txt
内に記載してあるDepthAIのバージョンを確認する。
その後、下記コマンドにてdepthaiのアンインストールとpipのアップグレードを行う。
python3 -m pip uninstall -y depthai
python3 -m pip install -U pip
正常に動作したことを確認すると、再度下記コマンドにて指定バージョンでDepthaiをインストール。
pythoon -m pip install -r requirements.txt
pip show Depthai
正しく指定バージョンでインストールされていることを確認する。
この時、install済だったDepthaiとバージョンが変わっていないときは、USBの抜き差しも行う。
途中で認識が外れ、再接続でなおることもある様。(私は何度かこれで直りました)
⇒追記:というかだいたいこれで一発で直る気がしてきた。
Windowsであればサンプルプログラムの開始/終了時にデバイスの認識音が都度なるようになっているので、そちらで正常に認識動作しているか確認するのが良き。
それでもダメな場合は、別の仮想環境を再度一から作り直すと動くことが多い。
まとめ
Githubでissuesについて議論し合っているエンジニアを見ると、やはり複数の仮想環境に分けて開発を行った方がいいみたい。
Special AI(空間AI)の開発自体まだ黎明期とも呼べるので、バージョン依存の問題は避けられなそうですね。
日本でOAK-D製品つかって遊んでる人は、Twitterのほうフォローしてくださると嬉しいです。٩(๑❛ᴗ❛๑)
それでは今日はこの辺で。