2021年01月24日
Scale-Invariant Feature Transform
現在、SIFT ( Scale-Invariant Feature Transform ) のサンプル・プログラムを製作中です。
画像の特徴量を求めるアルゴリズムですが、処理内容はなかなかに複雑で苦戦中です。opencv には SIFT が実装されているので、python を使って比較しようと思い、VirtualBox 上の xubuntu にインストールしたら、なんと SIFT が使えないことが判明。ビルドし直さないとダメなようですね。面倒なので、Windows に python をインストールして利用しています。ある程度は一致するところがあるものの、違う部分も多くて悩んでいます。最終手段として、opencv のソースを眺めているところです。
ということで、次回のアルゴリズムのコーナーのテーマはおそらく SIFT 関連になります。
画像の特徴量を求めるアルゴリズムですが、処理内容はなかなかに複雑で苦戦中です。opencv には SIFT が実装されているので、python を使って比較しようと思い、VirtualBox 上の xubuntu にインストールしたら、なんと SIFT が使えないことが判明。ビルドし直さないとダメなようですね。面倒なので、Windows に python をインストールして利用しています。ある程度は一致するところがあるものの、違う部分も多くて悩んでいます。最終手段として、opencv のソースを眺めているところです。
ということで、次回のアルゴリズムのコーナーのテーマはおそらく SIFT 関連になります。
xubuntu ( ubuntu でも同じです ) で SIFT が利用できるようにすると同時に python でも使えるようにするのは結構面倒な作業が必要です。
1. 適当なディレクトリを作成して、その中に github からソースをダウンロード
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
2. opencv ディレクトリ下に移動して、新規ディレクトリ ( 例えば release ) を作成
3. 作成したディレクトリに移動して、以下のコマンドを入力
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3.8 \
-D PYTHON2_INCLUDE_DIR=/usr/include/python2.7 \
-D PYTHON2_INCLUDE_DIR2=/usr/include/python2.7 \
-D PYTHON2_INCLUDE_PATH=/usr/include/python2.7 \
-D PYTHON2_LIBRARIES=/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 \
-D PYTHON2_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 \
-D PYTHON2_LIBRARY_DEBUG=/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 \
-D PYTHON3_INCLUDE_DIR=/usr/include/python3.8 \
-D PYTHON3_INCLUDE_DIR2=/usr/include/python3.8 \
-D PYTHON3_INCLUDE_PATH=/usr/include/python3.8 \
-D PYTHON3_LIBRARIES=/usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0 \
-D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0 \
-D PYTHON3_LIBRARY_DEBUG=/usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0 \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \
-D PYTHON3_NUMPY_VERSION=1.17.4 \
-D BUILD_EXAMPLES=OFF \
..
4. make、make install でモジュールをビルド・インストール
5. /usr/local/lib/python3.8/dist-packages/cv2/python-3.8/ 下に cv2.cpython-38-x86_64-linux-gnu.so が生成されているので、シンボリックリンク cv2.so として作成
ln -s cv2.cpython-38-x86_64-linux-gnu.so cv2.so
簡略化して書いていますが、当然 sudo が必要なところもあるのでご注意を。
1. 適当なディレクトリを作成して、その中に github からソースをダウンロード
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
2. opencv ディレクトリ下に移動して、新規ディレクトリ ( 例えば release ) を作成
3. 作成したディレクトリに移動して、以下のコマンドを入力
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3.8 \
-D PYTHON2_INCLUDE_DIR=/usr/include/python2.7 \
-D PYTHON2_INCLUDE_DIR2=/usr/include/python2.7 \
-D PYTHON2_INCLUDE_PATH=/usr/include/python2.7 \
-D PYTHON2_LIBRARIES=/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 \
-D PYTHON2_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 \
-D PYTHON2_LIBRARY_DEBUG=/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 \
-D PYTHON3_INCLUDE_DIR=/usr/include/python3.8 \
-D PYTHON3_INCLUDE_DIR2=/usr/include/python3.8 \
-D PYTHON3_INCLUDE_PATH=/usr/include/python3.8 \
-D PYTHON3_LIBRARIES=/usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0 \
-D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0 \
-D PYTHON3_LIBRARY_DEBUG=/usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0 \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \
-D PYTHON3_NUMPY_VERSION=1.17.4 \
-D BUILD_EXAMPLES=OFF \
..
4. make、make install でモジュールをビルド・インストール
5. /usr/local/lib/python3.8/dist-packages/cv2/python-3.8/ 下に cv2.cpython-38-x86_64-linux-gnu.so が生成されているので、シンボリックリンク cv2.so として作成
ln -s cv2.cpython-38-x86_64-linux-gnu.so cv2.so
簡略化して書いていますが、当然 sudo が必要なところもあるのでご注意を。
Posted by fussy at 22:41│Comments(0)│TrackBack(0)
この記事へのトラックバックURL
http://fussy.mediacat-blog.jp/t142245
※このエントリーではブログ管理者の設定により、ブログ管理者に承認されるまでコメントは反映されません