hans

hans

【機械学習】【Python】六、エッジボックス + SVM + NMSによる位置特定 ---- 《SVM物体分類と位置検出》


前書き#

SW の効果があまり良くないと感じたので、EdgeBoxes を試してみました。速度はわずかに向上しましたが、明らかではありません。平均 1.1 フレームです。ただし、オブジェクトの枠の安定性と正確さが非常に高くなり、誤検出も相対的に少なくなりました。

** 最新のコードの GitHub リンク: ** https://github.com/HansRen1024/SVM-classification-localization

EdgeBoxes の設定#

元の作者は Matlab のコードしか公開していませんが、GitHub で.so ライブラリファイルを生成して呼び出すオープンソースプロジェクトを見つけました。

リンク: https://github.com/samarth-robo/edges

EdgeBoxes のインストール手順:

まず、numpy-opencv-converter をインストールします。

git clone https://github.com/samarth-robo/numpy-opencv-converter.git
cd numpy-opencv-converter/build
cmake ..
make

次に、cvmatio をインストールします。

git clone https://github.com/samarth-robo/cvmatio.git
cd cvmatio/build
cmake ..
make
make install

ここで、numpy/ndarrayobject.h ヘッダーファイルが見つからないとコンパイルエラーが発生する場合があります。

/usr/local/lib/python2.7/side-packages/numpy/core/include/ ディレクトリ内の numpy ディレクトリを /usr/local/include にコピーしてください。

sudo cp -r /usr/local/lib/python2.7/side-packages/numpy/core/include/numpy /usr/local/include

最後に、edge をインストールします。

git clone https://github.com/samarth-robo/edges.git
cd edges/cpp
CMakeList.txtを編集します。
CVMATIO_PATHとNUMPY_OPENCV_CONVERTER_PATHのパスを先ほどインストールしたパスに変更します。
cd build
cmake ..
make -j6

コンパイルが完了したら、build ディレクトリ内の edge_boxes_python.so を、このライブラリファイルを呼び出す.py ファイルのディレクトリにコピーします。

同時に、../cpp/external/gop_1.3/data/ ディレクトリ内の sf.dat ファイルも一緒にコピーします。

これで、.py ファイルから EdgeBoxes アルゴリズムを正常に呼び出すことができます。

検出コード #

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。