のんびりしているエンジニアの日記

ソフトウェアなどのエンジニア的な何かを書きます。

UbuntuにおけるOpenCV3のインストール

Sponsored Links

実は一度も使ったことがないOpenCV3を使ってみたいと思います。

皆さんこんにちは
お元気ですか。睡魔に襲われながらこの記事を書いています。

今回はPython3を想定しています。Python2で使いたい人は適宜読み替えてください。

OpenCV3の機能について

OpenCV3の機能について纏められているビデオがあります。


OpenCV GSOC 2014 - YouTube

ビデオを確認すると以下の機能が追加されるようです。

  1. AKAZE Feature(AKAZE特徴量)
  2. Siddharth Kherada
  3. Color Transfer
  4. Color Contstancy
  5. Custom Calibration Pattern
  6. Mitigating Occlusions
  7. Edge-Aware Filter
  8. Denoising
  9. Detail Enhancement
  10. Learning-Based Tracker
  11. 3D pose estimation via point pair features
  12. Saliency-based Tracking
  13. DLS PnP
  14. Matting Laplacian
  15. Fastest Pedestrian
  16. Primitive-based localization
  17. DTAM

正直、私には殆どわかりませんでした。
AKAZEが局所特徴量であることでしょうか。
ちなみにCaffeやKinect連携、OpenCL連携ができるそうです。すごいね!

また、以下の文献によるとOpencv3.0には特徴があるようです。
OpenCV 3.0 | OpenCV

  1. ~1500ものパッチがgithubにコミットされている。
  2. opencv_contribには既に多くの新しい関数が含まれている。3.0であり、2.4ではない。
  3. IPPCVが無料で使える。これは、商用、非商用関わらずであり、Windows,Linux,Macにてbuildすることができる。
  4. transparent APIが存在するとのこと。これはOpenCLで使われているGPUアクセラレーター(UMatかな?)である。OpenCLがあれば、検出し、使用される。〜100のOpenCVの関数をサポートしている。
  5. ~40ものOpenCV関数はNEONによって高速化している。
  6. ドキュメントはDoxygenを使っている。
  7. いくつかのアルゴリズムを整理した。feature2dやcalib3dなど
  8. PythonとJavaライブラリのbindingを改善、また、Matlabを新たに追加。
  9. Androidサポートが改善した。
  10. WinRTサポートがかなり改善された。
  11. Googleが使っているいくつかのプログラムが導入されたそう。(GSoC)

How to install

意外にめんどくさいので注意しましょう。

前準備

sudo apt-get install build-essential cmake git pkg-config
sudo apt-get install libjpeg8-dev libtiff4-dev libjasper-dev libpng12-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libatlas-base-dev gfortran

Opencv3本体のインストール

git clone --branch 3.0.0 --depth 1 https://github.com/Itseez/opencv.git
cd opencv
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$(python3 -c "import sys; print(sys.prefix)") -D PYTHON_EXECUTABLE=$(which python3) ..
make -j4
sudo make install

起動確認

python3
>>> import cv2
>>> cv2.__version__
'3.0.0'