私が最初にmaskrcnnをプレイしてからほぼ2年になります。オンラインになってからdetectron2を試していません。Windowsで試すことにしました。住所
https://github.com/facebookresearch/detectron2
関係者は、ウィンドウをサポートするための特別な考慮事項はないと明確に述べましたが、私は問題のコメントを読みました、基本的にインストールはまだ大きな問題ではありません。参考までにここにリストされている2つの問題のみが発生しました。
(1)ローカルにクローンする
git clone https://github.com/facebookresearch/detectron2 .git
cddetectron2
(2)cocoeval.cppの483行目を変更します
これは主に、Windowsにlocaltime_r関数がなく、この関数がスレッドセーフであり、Windowsの対応する関数がlocaltime_sであるためです。変更しない場合、エラーは次のようになります。
D:\ detectron2 \ detectron2 \ layers \ csrc \ cocoeval \ cocoeval.cpp(483):\ C3861: "localtime_r":識別子が見つかりません
変更する方法は?
D:\ devPytorch \ detectron2 \ detectron2 \ layers \ csrc \ cocoeval / cocoval.cppで、追加します(追加しなくても可能ですが、追加しました)
#include <time.h>
これは
localtime_s(&local_time、 &rawtime); // mcによって変更されました。元々はlocaltime_r(&rawtime、&local_time)です。
(3)setup.pyを変更し、pycocotoolsをインストールします
pip install pycocotoolsは成功せず、cl:コマンドラインエラーD8021と同様のエラーを報告するため、数値パラメーター "/ Wno-cpp"が無効であるため、pycocotoolsを手動でインストールする必要があります。
次の行を
コメントアウトします。# "pycocotools> = 2.0.1"
次に、pycocotoolsを手動でインストールします
ソリューション1(私が使用しているもの)
pipを使用してCMDターミナルにインストールします:
pip install git + https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
ソリューション2
https://github.com/philferriere/cocoapiソースコードをダウンロードして解凍します。管理者としてCMDターミナルを開き、cocoapi \ PythonAPIディレクトリに切り替えます。次のコマンドを実行します。
#pycocotoolsをローカルにインストールします
python setup.py build_ext --inplace
#pycocotoolsをPythonサイトに
インストールします-パッケージpython setup.py build_ext install
(4)python setup.py install development
detectron2のメインディレクトリに、
python setup.py installdevelopと入力します。
多くのパッケージがインストールされます(Facebookは本当にあなたを投げることができます)。
最後に、インストールは成功します。
(5)テスト
detectron2に付属のデモでテストしました。
インスタンスセグメンテーションのいくつかの写真をランダムに実行しました。CPUモードで平均約4秒かかりました
。〜 / msCoco2017 / test2017 \ 000000000001.jpg:3.84秒で4つのインスタンスが検出されました
〜/ msCoco2017 / test2017 \ 000000000016.jpg:4.36で4つのインスタンスが検出されましたS
〜/ msCoco2017 / test2017 \ 000000000019.jpg:4.45sで3つのインスタンスを検出し
、〜/ msCoco2017 / test2017 \ 000000000057.jpg:4.31sで3つのインスタンスを検出し
、〜/ msCoco2017 / test2017 \ 000000000063.jpg:3.93sで4つのインスタンスを検出した
〜 /msCoco2017/test2017\000000000069.jpg:4.46秒で17個のインスタンスが検出されました
用Cuda1080跑的、
〜/ msCoco2017 / test2017 \ 000000000001.jpg:1.55秒で4つのインスタンスを検出
〜/ msCoco2017 / test2017 \ 000000000016.jpg:0.21秒で4つのインスタンスを検出
〜/ msCoco2017 / test2017 \ 000000000019.jpg:3つのインスタンスを検出0.21秒で
〜/ msCoco2017 / test2017 \ 000000000057.jpg:0.19秒で3つのインスタンスを検出
〜/ msCoco2017 / test2017 \ 000000000063.jpg:0.18秒で4つのインスタンスを検出
〜/ msCoco2017 / test2017 \ 000000000069.jpg:0.23で17のインスタンスを検出S
〜/ msCoco2017 / test2017 \ 000000000080.jpg:0.18sで4つのインスタンスを検出
速度の向上は依然としてかなりのものであり、GPUはリアルタイム検出に近いです。
以前のリファレンス
https://blog.csdn.net/tanmx219/article/details/100829920 (この問題は以前は存在していましたが、現在は解消されています)