物体検出のDeticを導入する際にトラブった件

はてなブログ開設の1記事目としては全く唐突ですが、物体検出器 Deticを導入するにあたって、起こったトラブルについて調べたことを備忘録がてら残しておこうと思います。

Deticの元論文は以下になります。

arxiv.org

今回起こった問題

githubからDeticをクローンしてローカル環境で実行しようとした所、パッケージの衝突が起こりました。そのうちの一つとして、実行時に以下のエラーが表示されました。

module 'torch.jit' has no attribute '_script_if_tracing'

これは最新のPyTorchを使用している場合に生じるエラーのようです。

github.com

解決方法

  • Python 3.8
  • PyTorch 1.8
  • torchvision 0.9.0

仮想環境下で上記のバージョンのパッケージを揃えると正常に動作しました。

 

背景

あるあるなトラブルですが、解決にかなり苦労したのでその過程で調べたことをメモしておきます。

githubのインストールDemoではインターフェースとしてdetectron2を用いています。また、requirements.txtに記載されているようにCLIPを内部でgithubよりクローンしています。したがって、Detic, detectron2, CLIP全てが機能するように依存パッケージを揃える必要があります。

その際に重要なのはPython, PyTorch, torchvision 3つの依存関係でした。

torchvision のドキュメントに依存関係の対応表が記載されています。これを元にパッケージのバージョンの確認を行います。

pypi.org

最終的に上述のパッケージをインストールすると正常に機能しました。

短いですが今回は以上です。機会があればDetic導入時の他のトラブルについてもまとめようと思います。