説明
py-faster-rcnnは、元々MATLABで開発されたFaster R-CNNオブジェクト検出フレームワークのPython再実装です。GitHubでホストされているこのプロジェクトは、研究者や開発者向けに機能的なPythonバージョンを提供することを目的としています。公式のMATLABコードと同等の平均精度(mAP)を達成する一方で、テスト時の速度は約10%遅くなります。このパフォーマンスの違いは、Pythonレイヤー内の特定の操作がCPUで実行されることに起因しており、VGG16の場合、MATLABバージョンが200msであるのに対し、画像あたり約220msかかります。
この実装はFast R-CNNのフォークに基づいており、近似的な共同学習などの機能が含まれており、VGG16の場合、交互最適化よりも約1.5倍高速です。このプロジェクトは、当初arXivの技術レポートで説明され、その後NIPS 2015で発表されました。MITライセンスの下でリリースされています。
インストールには、リポジトリのクローン、Cythonモジュールのビルド、およびPythonレイヤーサポート付きのCaffeのコンパイルが含まれます。ユーザーは、Caffeのビルドで`Makefile.config`に`WITH_PYTHON_LAYER := 1`、オプションで`USE_CUDNN := 1`が含まれていることを確認することが推奨されます。プロジェクトは、ZFやVGG16などのネットワーク用の事前計算された検出器と事前学習済みのImageNetモデルをダウンロードするためのスクリプトを提供します。PASCAL VOC 2007での検出能力を示すデモスクリプトも利用可能です。
トレーニングとテストには、交互最適化(`faster_rcnn_alt_opt.sh`)と近似的な共同学習(`faster_rcnn_end2end.sh`)の両方のスクリプトを使用できます。後者の方法は、Region Proposal Network(RPN)をFast R-CNNネットワークと共同でトレーニングし、同等の検出精度でトレーニング時間を短縮します。トレーニング済みモデルやテスト結果を含む出力成果物は、`$FRCN_ROOT/output`ディレクトリ内に整理されます。
py-faster-rcnnは非推奨となっていることに注意してください。プロジェクトは、Mask R-CNNの実装を含むDetectronの利用を推奨しています。NIPS 2015の論文の結果を再現したい場合は、MATLABの公式Faster R-CNNコードが利用可能です。
py-faster-rcnnのハイライト
Faster R-CNNのPython実装
VGG16、ZF、VGG_CNN_M_1024ネットワークアーキテクチャをサポート
モデル開発を高速化するための近似共同学習を含む
PASCAL VOC 2007でのオブジェクト検出デモを提供
Caffeおよびpycaffeと互換性あり
検出器のトレーニングとテスト用のスクリプトを提供
Pythonレイヤーには特定のCaffeビルド構成が必要
MITライセンスの下でリリース
Detectronへの移行のため非推奨
py-faster-rcnnをはじめる
リポジトリのクローン: GitHubからpy-faster-rcnnコードを取得します。
依存関係のビルド: CythonモジュールとPythonレイヤーサポート付きのCaffeをコンパイルします。
モデルのダウンロード: 事前計算された検出器と事前学習済みのImageNetモデルを取得します。
デモの実行: オブジェクト検出の簡単なデモンストレーションのためにデモスクリプトを実行します。
トレーニングの設定: トレーニングのためにPASCAL VOCまたはCOCOデータセットを設定します。
モデルのトレーニング: 交互最適化または共同エンドツーエンドトレーニング用の提供されたスクリプトを使用します。
モデルのテスト: 実験用スクリプトを使用してトレーニング済みモデルを評価します。
統合: オブジェクト検出タスクにトレーニング済みモデルを利用します。
py-faster-rcnnの使用例
- オブジェクト検出
- 画像解析
- コンピュータビジョン研究
- リアルタイム検出
- データセット評価








