2.4.11に関してはここ
最初にraspberry piを更新しておく
sudo rpi-update
sudo apt-get update
sudo apt-get upgrade
ホストPCでOpenCV 3.1.0 と contrib 3.1.0 のソースをダウンロードし、展開して外付けHDDにコピー
USB HDDをRaspberry Pi 2に接続し、3.1.0 のフォルダーにbuildpiを作成し、cd buildpi
OpenCVのコンパイルに必要なファイルは、2.4.11のときにインストールしているが、今回はtesseract-ocrのために
sudo apt-get -y install libtesseract-dev libleptonica-dev
を実行
コンフィグレーションを設定
cmake -DCMAKE_BUILD_TYPE=RELEASE -DENABLE_VFPV3=ON -DENABLE_NEON=ON -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.1.0/modules -DBUILD_DOCS=OFF -DBUILD_TESTS=off -DBUILD_PERF_TESTS=OFF -DBUILD_TBB=ON -DBUILD_opencv_apps=OFF -DWITH_OPENCL=off -DWITH_1394=off -DWITH_CUDA=OFF -DWITH_CUFFT=OFF -DWITH_GIGEAPI=OFF -DWITH_OPENCLAMDBLAS=off -DWITH_OPENCLAMDFFT=off -DWITH_TBB=ON ..
time make -j4でビルドを行う
real 60m20.341s
user 203m50.500s
sys 7m10.870s
最後に
tesseract-ocrの英語辞書をダウンロードし、展開して内容をコピー
sudo cp -r tesseract-ocr/* /usr/share/tesseract-ocr/
以上
以下は、コンフィグレーション情報
General configuration for OpenCV 3.1.0 =====================================
Version control: unknown
Platform:
Host: Linux 4.1.15-v7+ armv7l
CMake: 2.8.9
CMake generator: Unix Makefiles
CMake build tool: /usr/bin/make
Configuration: RELEASE
C/C++:
Built as dynamic libs?: YES
C++ Compiler: /usr/bin/c++ (ver 4.6.3)
C++ flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG
C++ flags (Debug): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -g -O0 -DDEBUG -D_DEBUG
C Compiler: /usr/bin/gcc
C flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -fvisibility=hidden -O3 -DNDEBUG -DNDEBUG
C flags (Debug): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -fvisibility=hidden -g -O0 -DDEBUG -D_DEBUG
Linker flags (Release):
Linker flags (Debug):
Precompiled headers: YES
Extra dependencies: dl m pthread rt
3rdparty dependencies: tbb
OpenCV modules:
To be built: core flann imgproc ml photo reg surface_matching video dnn fuzzy imgcodecs shape videoio highgui objdetect plot superres xobjdetect xphoto bgsegm bioinspired dpm face features2d line_descriptor saliency text calib3d ccalib datasets rgbd stereo structured_light tracking videostab xfeatures2d ximgproc aruco optflow stitching python2
Disabled: world contrib_world
Disabled by dependency: -
Unavailable: cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev java python3 ts viz cvv hdf matlab sfm
GUI:
QT: NO
GTK+ 2.x: YES (ver 2.24.10)
GThread : YES (ver 2.40.0)
GtkGlExt: NO
OpenGL support: NO
VTK support: NO
Media I/O:
ZLib: /usr/lib/arm-linux-gnueabihf/libz.so (ver 1.2.7)
JPEG: libjpeg (ver 90)
WEBP: build (ver 0.3.1)
PNG: /usr/lib/arm-linux-gnueabihf/libpng.so (ver 1.2.49)
TIFF: build (ver 42 - 4.0.2)
JPEG 2000: build (ver 1.900.1)
OpenEXR: build (ver 1.7.1)
GDAL: NO
Video I/O:
DC1394 1.x: NO
DC1394 2.x: NO
FFMPEG: NO
codec: NO
format: NO
util: NO
swscale: NO
resample: NO
gentoo-style: NO
GStreamer: NO
OpenNI: NO
OpenNI PrimeSensor Modules: NO
OpenNI2: NO
PvAPI: NO
GigEVisionSDK: NO
UniCap: NO
UniCap ucil: NO
V4L/V4L2: NO/YES
XIMEA: NO
Xine: NO
gPhoto2: NO
Parallel framework: TBB (ver 4.3 interface 8002)
Other third-party libraries:
Use IPP: NO
Use VA: NO
Use Intel VA-API/OpenCL: NO
Use Eigen: YES (ver 3.1.0)
Use Cuda: NO
Use OpenCL: NO
Use custom HAL: NO
Python 2:
Interpreter: /usr/bin/python2.7 (ver 2.7.3)
Libraries: /usr/lib/libpython2.7.so (ver 2.7.3)
numpy: /usr/lib/pymodules/python2.7/numpy/core/include (ver 1.6.2)
packages path: lib/python2.7/dist-packages
Python 3:
Interpreter: NO
Python (for build): /usr/bin/python2.7
Java:
ant: NO
JNI: NO
Java wrappers: NO
Java tests: NO
Matlab: Matlab not found or implicitly disabled
Tests and samples:
Tests: NO
Performance tests: NO
C/C++ Examples: NO
OpenCV、機械学習、はやりのDeep learningの環境構築の方法、サンプルの動かし方、APIの使い方、Tipsなどをすぐに忘れてしまうので、備忘録として記録している。記憶がなくなるスピードが、早いのでメモしておかないと再現できなくなる確率が高まっている。 最近、再度HDDを飛ばしてしまい、過去の自分のページに再度助けられた。 また、DNNモジュールを触る機会が増えているので、C++からPyhonへと鞍替え中。 内容を気にいっていただければ、twitterで紹介願います。
2015年12月28日月曜日
2015年12月24日木曜日
OpenCV Advent Calendar 2015に投稿しました。 その2
タイトル:文字領域検出用のERFilterの使い方です。
Qiitaでは、記事投稿が予約できますので
実は投稿に失敗しており、朝気づいてやり直しました。
検出結果のサンプルです。
背景が単純なので、簡単に検出できるかと思いましたが縦エッジに影響されやすい気がします。
2015年12月22日火曜日
Ubuntu 14.04上でOpenCV 3.1.0 + Contrib 3.1をビルドしてみた
数日前にOpenCV 3.0 + Contrib masterの組み合わせをビルドしたところだったが
翌日早速3.1がリリースされたので、リリースされたばかりのOpenCV 3.1.0 + Contrib 3.1をビルドしてみた。
結果的には問題のあったContribのモジュールも無事ビルドが通るようになった。
SIFT,DNN,TEXTは動作を確認。これから、他のモジュールや3.0との差分も随時調べていく
また、3.0では、TBBがリンクされていなかったが、3.1では、TBBが通るようになった。
OpenCV 3.1.0がリリースされたのでWindows版をダウンロードしてみた
22日になり、公式が正式にアナウンスをしました。
せっかくWindows用にソースからビルドしたが、公式からビルド済みのものがリリースされました。
28日追記
ビルド済みのコードは含まれていませんので、自前でビルドしないといけません
早速ダウンロードし、c:\に展開しました。
今回は、32bit向けライブラリがなく、64bitのみになっています。
また、対象の開発環境もVisual Studio 2015と2013だけになり、それ以前のVisual Studioは、自力でソースから cmakeでプロジェクトファイルを作成し、ビルドしないといけません。
23日追記
contribの内容は含まれていませんので試したい場合は、自力でビルドを行う必要があります。
その場合は、Windows10 上でOpenCV3.1.0のソースをビルドしてみた を参考にしてください
以上
せっかくWindows用にソースからビルドしたが、公式から
28日追記
ビルド済みのコードは含まれていませんので、自前でビルドしないといけません
早速ダウンロードし、c:\に展開しました。
今回は、32bit向けライブラリがなく、64bitのみになっています。
また、対象の開発環境もVisual Studio 2015と2013だけになり、それ以前のVisual Studioは、
23日追記
contribの内容は含まれていませんので試したい場合は、自力でビルドを行う必要があります。
その場合は、Windows10 上でOpenCV3.1.0のソースをビルドしてみた を参考にしてください
以上
2015年12月21日月曜日
Windows10 上でOpenCV3.1.0のソースをビルドしてみた
OpenCV 3.1.0のソースが公開されたので、早速ダウンロードしてみてビルドしてみた。
zipをc:\に展開し、フォルダーの名前を C:\opencv31\sourcesに変更
C:\opencv31\buildを作成し、cmake-guiを起動
Configureのボタンを押し、画面のターゲットを選択する
Option選択のあと、Generateボタンを押すとbuildの下にVisual Stuidio 2015用のプロジェクトが作成される。
Visual Stuidioを起動し、ソリューションエクスプローラウィンドウのinstallを選択し、マウスの右ボタンでビルドを選択
10数分後にビルドが無事終了(時間は選択したオプションにより変動する)
Windows用のdll libなどが上記のフォルダーに作成される
コントロールパネルのシステムの環境変数のpathに上記binを追加する
一旦ログアウトし、再度ログインすれば、pathが通っている。
3.1用のpropertyファイルを作成し、サンプルプロジェクトを作成する。
簡単に、Configurationのみ表示させてみた。
以上
OpenCV 3.1.0がリリースされました
22日になり公式からアナウンスがありました
公式の変更点
昨夜見たときはなかった気がしますが、3.1.0のtagが付与されたものが公開されています
ここからダウンロードできます。
Windows 10の64bit上でビルドを終えました。cmakeがあれば、問題なくビルドできます
あとで公開します。
公式の変更点
昨夜見たときはなかった気がしますが、3.1.0のtagが付与されたものが公開されています
ここからダウンロードできます。
Windows 10の64bit上でビルドを終えました。cmakeがあれば、問題なくビルドできます
あとで公開します。
opencv_contrib を久々にビルドしてみた
現在3.1への過渡期かもしれないが、久々にUbuntu 14.04 64bit上で OpenCV3.0と合わせてビルドしてみた
現在以下のモジュールは不具合がありビルドの途中でエラーとなるのでcmakeでoffにしている
-DBUILD_opencv_apps=OFF
-DBUILD_opencv_tracking=off
-DBUILD_opencv_xfeatures2d=off
-DBUILD_opencv_aruco=off
-DBUILD_opencv_ximgproc=off
-DBUILD_opencv_xphoto=off
あとdnnが動作したらしいのでこちらを試してみた。
importerのバグは治ったようで、実行すると下記のような結果が帰ってくる。無事動作しているようだ。
Attempting to upgrade input file specified using deprecated V1LayerParameter: bvlc_googlenet.caffemodel
Successfully upgraded file specified using deprecated V1LayerParameter
Net Outputs(1):
prob
Best class: #812 'space shuttle'
Probability: 99.9813%
以上
現在以下のモジュールは不具合がありビルドの途中でエラーとなるのでcmakeでoffにしている
-DBUILD_opencv_apps=OFF
-DBUILD_opencv_tracking=off
-DBUILD_opencv_xfeatures2d=off
-DBUILD_opencv_aruco=off
-DBUILD_opencv_ximgproc=off
-DBUILD_opencv_xphoto=off
あとdnnが動作したらしいのでこちらを試してみた。
importerのバグは治ったようで、実行すると下記のような結果が帰ってくる。無事動作しているようだ。
Attempting to upgrade input file specified using deprecated V1LayerParameter: bvlc_googlenet.caffemodel
Successfully upgraded file specified using deprecated V1LayerParameter
Net Outputs(1):
prob
Best class: #812 'space shuttle'
Probability: 99.9813%
以上
2015年12月20日日曜日
OpenCV 3.1が年内にリリースされる予定です。
どのような内容になるかは、ここにドラフトが公開されています
特に今年のGSoCの内容が多数Contribに取り入れられます。
GSoCのほかにも多数の機能追加や改良がcoreのほうに行われます。
また、VS2015 などの開発環境への対応も期待されます。
ただ、残念なことの高速化のHalモジュールは、単一のクラスにすることをあきらめ
各モジュールに分散させるそうです。
OpenCV GSOC 2015の成果はここに紹介されており、一部はすでに提供されつつあります。
ICFの状況を調べてみた
昨日登校したOpenCV Advent Calendar 2015 19日目の記事はここです
記事に書いてから気になりましたので調べてみました。
12/20時点では、opencv_contribのmasterには存在してませんでした
BranchのTag 3.0.0を見てみると残っています。
ファイルが必要な場合、ここからダウンロードすれば大丈夫でしょう。
使い方は、
学習と検出のサンプルがここにあります
以上
記事に書いてから気になりましたので調べてみました。
12/20時点では、opencv_contribのmasterには存在してませんでした
BranchのTag 3.0.0を見てみると残っています。
ファイルが必要な場合、ここからダウンロードすれば大丈夫でしょう。
使い方は、
学習と検出のサンプルがここにあります
以上
2015年12月18日金曜日
OpenCV Advent Calendar 2015に投稿しました。
タイトル:CascadeClassifierのsetImageとrunAtの使い方
です。内容はかなり偏ったものになっています。
Qiitaでは、記事投稿が予約できますのであと、数分で公開されるかと思います。
Markdownではじめて書いたので、見づらいかも知れません。
もしかしたら修正するかも知れません。
です。内容はかなり偏ったものになっています。
Qiitaでは、記事投稿が予約できますのであと、数分で公開されるかと思います。
Markdownではじめて書いたので、見づらいかも知れません。
もしかしたら修正するかも知れません。
2015年11月14日土曜日
OpenCV2.4.12.3がリリースされた
いつものことだが、公式でアナウンスされていないが、ひっそりとOpenCV 2.4.12.3がリリースされている
今回もGitHubから取得しないといけない。
前回同様に、bug fixがほとんどと思われる。
今回もGitHubから取得しないといけない。
前回同様に、bug fixがほとんどと思われる。
Ubuntu 14.04のOpenCV 3.0 Contribの文字認識を動かしてみた
opencv_contribは、今も更新されており、時期によりその内容が変更されることが多数あり、この話は、11/13日のものである。
以前からUbuntuでtesseractのビルドはできているように見えたが、実行時に初期化できなくサンプルを動かすことができなかった。
Windows上では成功している話があったが、Ubuntuでは何度やってもうまく行かなかった。
この問題は、春に解決していが、まとめる気力がなかったので、半年放置していたが、再度ビルドしてみると、若干挙動が異なったので、備忘録としてまとめておく。
事前準備
OpenCVが動く環境でtesseractのツールをインストール
sudo apt-get -y install libtesseract-dev
以前はデータの取得は不要な気がしたが、今回英語用の辞書をダンロードし展開後一式を
sudo cp -r tesseract-ocr/* /usr/share/tesseract-ocr/
でコピーしておく必要がある。
問題
cmakeを実行するとtesseractを見つけてくれなかった。いろいろ調べたところ
opencv_contrib-master/modules/textの
FindTesseract.cmake
で、Tesseractライブラリのフラグが設定されていないようであった。
ファイルの中の
set(Tesseract_LIBS ${Tesseract_LIBRARY} ${Lept_LIBRARY})
if(Tesseract_LIBS AND Tesseract_INCLUDE_DIR)
set(Tesseract_FOUND 1)
でfalseになっていた。
Lept_LIBRARYの正体がわからないので、外してみるとcmakeでtesseractを見つけてくれるようになり、opencvのmake installのあとでサンプルを試してみると無事初期化ができ、認識してくれた。
下記は動作している図、 (をlに誤認識しているがあとはうまく行っている)
感想
いろいろ試してみたが過度な期待はしないほうが良い
以上
以前からUbuntuでtesseractのビルドはできているように見えたが、実行時に初期化できなくサンプルを動かすことができなかった。
Windows上では成功している話があったが、Ubuntuでは何度やってもうまく行かなかった。
この問題は、春に解決していが、まとめる気力がなかったので、半年放置していたが、再度ビルドしてみると、若干挙動が異なったので、備忘録としてまとめておく。
事前準備
OpenCVが動く環境でtesseractのツールをインストール
sudo apt-get -y install libtesseract-dev
以前はデータの取得は不要な気がしたが、今回英語用の辞書をダンロードし展開後一式を
sudo cp -r tesseract-ocr/* /usr/share/tesseract-ocr/
でコピーしておく必要がある。
問題
cmakeを実行するとtesseractを見つけてくれなかった。いろいろ調べたところ
opencv_contrib-master/modules/textの
FindTesseract.cmake
で、Tesseractライブラリのフラグが設定されていないようであった。
ファイルの中の
set(Tesseract_LIBS ${Tesseract_LIBRARY} ${Lept_LIBRARY})
if(Tesseract_LIBS AND Tesseract_INCLUDE_DIR)
set(Tesseract_FOUND 1)
でfalseになっていた。
Lept_LIBRARYの正体がわからないので、外してみるとcmakeでtesseractを見つけてくれるようになり、opencvのmake installのあとでサンプルを試してみると無事初期化ができ、認識してくれた。
オリジナル
修正後
下記は動作している図、 (をlに誤認識しているがあとはうまく行っている)
感想
いろいろ試してみたが過度な期待はしないほうが良い
以上
2015年10月1日木曜日
OpenCV2.4.12.2がリリースされた
OpenCV 3.0で DNNを試してみた
1月前にOpenCV 3.0のcontribにdnnモジュールが追加された。
当初ubuntu版で試してみたが、importerのところで落ちてしまい原因がわからなかった。
issueでも同じ現象に遭遇している人がいたが、解決していない
twitterに成功したと書き込んでいる人がいたので、仕方なしにWindowsで試してみた
マシン環境
Windows7 64bit OpenCV 3.0 + contrib
開発環境
cmake 3.3.2 win32 x86
Visual studio community 2013
環境構築は、後で説明する。
無事OpenCVがビルドできたので、環境変数にpathを設定し、専用のpropatyシートを作成
サンプルは、
C:\opencv30\opencv_contrib-master\modules\dnn\samples
に一式あるので、内容をそのまま自分のプロジェクトにコピーし、時間計測関数を追加した。
モデルファイルは、容量が50Mを超えるため添付されていなく、自分でここから取得し、サンプルフォルダに置いた。
プロジェクトを実行したところubuntu版と異なり、無事結果を見ることができた。
うちのマシンでは、DNNの計算に180msecかかっている。
最適化を行えば、もう少し早くなるかもしれない。
ただ、このOpenCVは32bit版なので64bitで作成すれば、更なる短縮が見込めるかも知れない
以上
当初ubuntu版で試してみたが、importerのところで落ちてしまい原因がわからなかった。
issueでも同じ現象に遭遇している人がいたが、解決していない
twitterに成功したと書き込んでいる人がいたので、仕方なしにWindowsで試してみた
マシン環境
Windows7 64bit OpenCV 3.0 + contrib
開発環境
cmake 3.3.2 win32 x86
Visual studio community 2013
環境構築は、後で説明する。
無事OpenCVがビルドできたので、環境変数にpathを設定し、専用のpropatyシートを作成
サンプルは、
C:\opencv30\opencv_contrib-master\modules\dnn\samples
に一式あるので、内容をそのまま自分のプロジェクトにコピーし、時間計測関数を追加した。
モデルファイルは、容量が50Mを超えるため添付されていなく、自分でここから取得し、サンプルフォルダに置いた。
プロジェクトを実行したところubuntu版と異なり、無事結果を見ることができた。
うちのマシンでは、DNNの計算に180msecかかっている。
最適化を行えば、もう少し早くなるかもしれない。
ただ、このOpenCVは32bit版なので64bitで作成すれば、更なる短縮が見込めるかも知れない
以上
2015年9月2日水曜日
DeepDreamを試してみた
話題になった時期に試した見たが、文章は放置していたので時期遅れとなった。
caffeの動くマシンで
mkdir deepdream
cd deepdream
caffe用のモデルを取得
wget http://dl.caffe.berkeleyvision.org/bvlc_googlenet.caffemodel
deepdream用のipython notebookを取得
git clone https://github.com/google/deepdream
手元でipython notebookが動作する環境がなかったのでpythonのスクリプトを公開している人がいたので取得した
wget http://www.hirotakaster.com/download/dd.py
自分の環境にあわせて変更
中間の状態の表示をカットし、100回適応後の画像をフォルダーに書き出す
CPU環境で実行したので処理速度は遅く、元画像にサイズの大きい画像を選ぶと処理時間が増大するので、1000画素より小さくしている
参考にしたページ
caffeの動くマシンで
mkdir deepdream
cd deepdream
caffe用のモデルを取得
wget http://dl.caffe.berkeleyvision.org/bvlc_googlenet.caffemodel
deepdream用のipython notebookを取得
git clone https://github.com/google/deepdream
手元でipython notebookが動作する環境がなかったのでpythonのスクリプトを公開している人がいたので取得した
wget http://www.hirotakaster.com/download/dd.py
自分の環境にあわせて変更
中間の状態の表示をカットし、100回適応後の画像をフォルダーに書き出す
CPU環境で実行したので処理速度は遅く、元画像にサイズの大きい画像を選ぶと処理時間が増大するので、1000画素より小さくしている
参考にしたページ
ODROID-XU3 Lite向けにOpenCV2.4.11をビルドした
書きかけで放置していたものだが忘れるといけないのでUPしておく
前回はここ
前回同様にHDDにOpenCV2.4.11のソースを展開しておき、USB HDDを接続すると
/mnt/odroidにマウントされる
opencv2411のフォルダーにmkdir buildodroidを作成し、buildodroidに移動
今回は、
apt-get install libeigen3-devで eigenをインストールしている
すでにraspberry pi2用にビルドしたあとなので、tbbはHDD内に存在している
今回は、ccmakeで指定したtbbのオプションが有効になっているようだ
NEONをONに、GPUは関係ないので外し、あとビルド時間短縮のために不要なものを外している
time cmake -j8 で8コアを指定してビルドしてみる
何か警告が出ている無視
Note: Class Feature2D has more than 1 base class (not supported by Python C extensions)
Bases: cv::FeatureDetector, cv::DescriptorExtractor
Only the first base class will be used
real 12m17.741s
user 69m20.115s
sys 5m56.840s
以上
2015年8月26日水曜日
OpenCV2.4.12.1がリリースされた
公式にはアナウンスされていないがひっそりとOpenCV 2.4.12.1がリリースされている
これまでソースは、sourceforgeからダウンロードしたが、方針の変更によりGitHubからダウンロードする事になった。
ダウンロードのページ
最新のコミットは、12日前(8/16時点)
リリースノートが無いため、2.4.11との変更点は不明である
時間があれば軽く差分を見てみる予定
ちなみに2.4.12は、28日前なので、わずか2週間で修正版がリリースされたことになる
まだ、ソースしか提供されていないので、Windowsでは、自分でビルドしないといけない
すでに2.4.13も予定されている
これまでソースは、sourceforgeからダウンロードしたが、方針の変更によりGitHubからダウンロードする事になった。
ダウンロードのページ
最新のコミットは、12日前(8/16時点)
リリースノートが無いため、2.4.11との変更点は不明である
時間があれば軽く差分を見てみる予定
ちなみに2.4.12は、28日前なので、わずか2週間で修正版がリリースされたことになる
まだ、ソースしか提供されていないので、Windowsでは、自分でビルドしないといけない
すでに2.4.13も予定されている
2015年8月14日金曜日
Raspberry Pi 2 で OpenCV 2.4.11 をビルドした
久しぶりに更新
2.4.10に関してはここ
8/17 追記
3/4に
Raspberry Pi 2 で OpenCV 2.4.11 をビルドした
というメモを書いていたのをすっかり忘れている
前回は、オプションの設定をccmakeで手動で行っているが、今回は引数で設定している
今回はtbbでトラブルことはなかった
最初にraspberry piを更新しておく
sudo rpi-update
sudo apt-get update
sudo apt-get upgrade
ホストPCでOpenCV2.4.11のソースをダウンロードし、展開して外付けHDDにコピー
USB HDDをRaspberry Pi 2に接続し、2.4.11のフォルダーにbuildpi2を作成し、cd buildpi2
OpenCVに必要なファイルは、2.4.10のときにインストールしているので、今回は何もしない
コンフィグレーションを設定
cmake -DCMAKE_BUILD_TYPE=RELEASE -DENABLE_VFPV3=ON -DENABLE_NEON=ON -DBUILD_DOCS=OFF -DBUILD_TESTS=off -DBUILD_PERF_TESTS=OFF -DBUILD_TBB=ON -DBUILD_opencv_apps=OFF -DBUILD_opencv_gpu=OFF -DWITH_OPENCL=off -DWITH_1394=off -DWITH_CUDA=OFF -DWITH_CUFFT=OFF -DWITH_GIGEAPI=OFF -DWITH_OPENCLAMDBLAS=off -DWITH_OPENCLAMDFFT=off -DWITH_TBB=ON ..
raspberry piではOpenCLがサポートされていないのでoffにしている
time make -j4でビルドを行う
real 51m17.127s
user 177m0.210s
sys 5m48.860s
以上
以下は、コンフィグレーション情報
General configuration for OpenCV 2.4.11 =====================================
Version control: unknown
Platform:
Host: Linux 3.18.11-v7+ armv7l
CMake: 2.8.9
CMake generator: Unix Makefiles
CMake build tool: /usr/bin/make
Configuration: RELEASE
C/C++:
Built as dynamic libs?: YES
C++ Compiler: /usr/bin/c++ (ver 4.6.3)
C++ flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -O3 -DNDEBUG -DNDEBUG
C++ flags (Debug): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -g -O0 -DDEBUG -D_DEBUG
C Compiler: /usr/bin/gcc
C flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -O3 -DNDEBUG -DNDEBUG
C flags (Debug): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -g -O0 -DDEBUG -D_DEBUG
Linker flags (Release):
Linker flags (Debug):
Precompiled headers: YES
OpenCV modules:
To be built: core flann imgproc highgui features2d calib3d ml nonfree objdetect video contrib legacy photo python stitching superres ts videostab
Disabled: gpu world
Disabled by dependency: -
Unavailable: androidcamera dynamicuda java ocl viz
GUI:
QT: NO
GTK+ 2.x: YES (ver 2.24.10)
GThread : YES (ver 2.40.0)
GtkGlExt: NO
OpenGL support: NO
VTK support: NO
Media I/O:
ZLib: /usr/lib/arm-linux-gnueabihf/libz.so (ver 1.2.7)
JPEG: libjpeg (ver 62)
PNG: /usr/lib/arm-linux-gnueabihf/libpng.so (ver 1.2.49)
TIFF: build (ver 42 - 4.0.2)
JPEG 2000: build (ver 1.900.1)
OpenEXR: build (ver 1.7.1)
Video I/O:
DC1394 1.x: NO
DC1394 2.x: NO
FFMPEG: NO
codec: NO
format: NO
util: NO
swscale: NO
gentoo-style: NO
GStreamer: NO
OpenNI: NO
OpenNI PrimeSensor Modules: NO
PvAPI: NO
GigEVisionSDK: NO
UniCap: NO
UniCap ucil: NO
V4L/V4L2: NO/YES
XIMEA: NO
Xine: NO
Other third-party libraries:
Use IPP: NO
Use Eigen: YES (ver 3.1.0)
Use TBB: YES (ver 4.3 interface 8002)
Use OpenMP: NO
Use GCD NO
Use Concurrency NO
Use C=: NO
Use Cuda: NO
Use OpenCL: NO
Python:
Interpreter: /usr/bin/python2 (ver 2.7.3)
Libraries: /usr/lib/libpython2.7.so (ver 2.7.3)
numpy: /usr/lib/pymodules/python2.7/numpy/core/include (ver 1.6.2)
packages path: lib/python2.7/dist-packages
Java:
ant: NO
JNI: NO
Java tests: NO
Tests and samples:
Tests: NO
Performance tests: NO
C/C++ Examples: NO
Install path: /usr/local
2.4.10に関してはここ
8/17 追記
3/4に
Raspberry Pi 2 で OpenCV 2.4.11 をビルドした
というメモを書いていたのをすっかり忘れている
前回は、オプションの設定をccmakeで手動で行っているが、今回は引数で設定している
今回はtbbでトラブルことはなかった
最初にraspberry piを更新しておく
sudo rpi-update
sudo apt-get update
sudo apt-get upgrade
ホストPCでOpenCV2.4.11のソースをダウンロードし、展開して外付けHDDにコピー
USB HDDをRaspberry Pi 2に接続し、2.4.11のフォルダーにbuildpi2を作成し、cd buildpi2
OpenCVに必要なファイルは、2.4.10のときにインストールしているので、今回は何もしない
コンフィグレーションを設定
cmake -DCMAKE_BUILD_TYPE=RELEASE -DENABLE_VFPV3=ON -DENABLE_NEON=ON -DBUILD_DOCS=OFF -DBUILD_TESTS=off -DBUILD_PERF_TESTS=OFF -DBUILD_TBB=ON -DBUILD_opencv_apps=OFF -DBUILD_opencv_gpu=OFF -DWITH_OPENCL=off -DWITH_1394=off -DWITH_CUDA=OFF -DWITH_CUFFT=OFF -DWITH_GIGEAPI=OFF -DWITH_OPENCLAMDBLAS=off -DWITH_OPENCLAMDFFT=off -DWITH_TBB=ON ..
raspberry piではOpenCLがサポートされていないのでoffにしている
time make -j4でビルドを行う
real 51m17.127s
user 177m0.210s
sys 5m48.860s
以上
以下は、コンフィグレーション情報
General configuration for OpenCV 2.4.11 =====================================
Version control: unknown
Platform:
Host: Linux 3.18.11-v7+ armv7l
CMake: 2.8.9
CMake generator: Unix Makefiles
CMake build tool: /usr/bin/make
Configuration: RELEASE
C/C++:
Built as dynamic libs?: YES
C++ Compiler: /usr/bin/c++ (ver 4.6.3)
C++ flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -O3 -DNDEBUG -DNDEBUG
C++ flags (Debug): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -g -O0 -DDEBUG -D_DEBUG
C Compiler: /usr/bin/gcc
C flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -O3 -DNDEBUG -DNDEBUG
C flags (Debug): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -g -O0 -DDEBUG -D_DEBUG
Linker flags (Release):
Linker flags (Debug):
Precompiled headers: YES
OpenCV modules:
To be built: core flann imgproc highgui features2d calib3d ml nonfree objdetect video contrib legacy photo python stitching superres ts videostab
Disabled: gpu world
Disabled by dependency: -
Unavailable: androidcamera dynamicuda java ocl viz
GUI:
QT: NO
GTK+ 2.x: YES (ver 2.24.10)
GThread : YES (ver 2.40.0)
GtkGlExt: NO
OpenGL support: NO
VTK support: NO
Media I/O:
ZLib: /usr/lib/arm-linux-gnueabihf/libz.so (ver 1.2.7)
JPEG: libjpeg (ver 62)
PNG: /usr/lib/arm-linux-gnueabihf/libpng.so (ver 1.2.49)
TIFF: build (ver 42 - 4.0.2)
JPEG 2000: build (ver 1.900.1)
OpenEXR: build (ver 1.7.1)
Video I/O:
DC1394 1.x: NO
DC1394 2.x: NO
FFMPEG: NO
codec: NO
format: NO
util: NO
swscale: NO
gentoo-style: NO
GStreamer: NO
OpenNI: NO
OpenNI PrimeSensor Modules: NO
PvAPI: NO
GigEVisionSDK: NO
UniCap: NO
UniCap ucil: NO
V4L/V4L2: NO/YES
XIMEA: NO
Xine: NO
Other third-party libraries:
Use IPP: NO
Use Eigen: YES (ver 3.1.0)
Use TBB: YES (ver 4.3 interface 8002)
Use OpenMP: NO
Use GCD NO
Use Concurrency NO
Use C=: NO
Use Cuda: NO
Use OpenCL: NO
Python:
Interpreter: /usr/bin/python2 (ver 2.7.3)
Libraries: /usr/lib/libpython2.7.so (ver 2.7.3)
numpy: /usr/lib/pymodules/python2.7/numpy/core/include (ver 1.6.2)
packages path: lib/python2.7/dist-packages
Java:
ant: NO
JNI: NO
Java tests: NO
Tests and samples:
Tests: NO
Performance tests: NO
C/C++ Examples: NO
Install path: /usr/local
2015年3月19日木曜日
Windows版 OpenCV 2.4.11のConfigurationを表示してみた
デフォルトで提供されているWindows版の2.4.11のコンフィグレーションを表示させてみた
TBBがONになっていないのは何気にいたい
(顔検出はTBBがONになっているとコア数分並列で計算されるので効果が大きい)
独自のベンチを試してみたらUbuntuのTBB ONのバージョンと時間はほぼ同じであった
ConcurrencyがONになっているので、並列計算が有効になっていると思われる
General configuration for OpenCV 2.4.11 =====================================
Version control: 2.4.11
Platform:
Host: Windows 6.1 AMD64
CMake: 2.8.11.2
CMake generator: Visual Studio 12 Win64
CMake build tool: C:/PROGRA~2/MSBuild/12.0/Bin/MSBuild.exe
MSVC: 1800
OpenCV modules:
To be built: core flann imgproc highgui features2d calib3d ml video legacy objdetect photo gpu ocl nonfree contrib stitching superres ts videostab
Disabled: java python world
Disabled by dependency: -
Unavailable: androidcamera dynamicuda viz
Windows RT support: NO
GUI:
QT: NO
Win32 UI: YES
OpenGL support: NO
VTK support: NO
Media I/O:
ZLib: build (ver 1.2.7)
JPEG: build (ver 62)
PNG: build (ver 1.5.12)
TIFF: build (ver 42 - 4.0.2)
JPEG 2000: build (ver 1.900.1)
OpenEXR: build (ver 1.7.1)
Video I/O:
Video for Windows: YES
DC1394 1.x: NO
DC1394 2.x: NO
FFMPEG: YES (prebuilt binaries)
codec: YES (ver 55.18.102)
format: YES (ver 55.12.100)
util: YES (ver 52.38.100)
swscale: YES (ver 2.3.100)
gentoo-style: YES
OpenNI: NO
OpenNI PrimeSensor Modules: NO
PvAPI: NO
GigEVisionSDK: NO
DirectShow: YES
Media Foundation: NO
XIMEA: NO
Intel PerC: NO
Other third-party libraries:
Use IPP: NO
Use Eigen: NO
Use TBB: NO
Use OpenMP: NO
Use GCD NO
Use Concurrency YES
Use C=: NO
Use Cuda: NO
Use OpenCL: YES
OpenCL:
Version: dynamic
Include path: C:/builds/2_4_PackSlave-win64-vc12-shared/opencv/3rdparty/include/opencl/1.2 C:/Program Files (x86)/AMD/clAmdFft/include C:/Program Files (x86)/AMD/clAmdBlas/include
Use AMD FFT: YES
Use AMD BLAS: YES
Python:
Interpreter: C:/Python27-x64/python.exe (ver 2.7.5)
Java:
ant: C:/Program Files (x86)/apache-ant/bin/ant.bat (ver 1.9.2)
JNI: C:/Program Files/Java/jdk1.6.0_45/include C:/Program Files/Java/jdk1.6.0_45/include/win32 C:/Program Files/Java/jdk1.6.0_45/include
Java tests: NO
Tests and samples:
Tests: NO
Performance tests: NO
C/C++ Examples: NO
(顔検出はTBBがONになっているとコア数分並列で計算されるので効果が大きい)
独自のベンチを試してみたらUbuntuのTBB ONのバージョンと時間はほぼ同じであった
ConcurrencyがONになっているので、並列計算が有効になっていると思われる
General configuration for OpenCV 2.4.11 =====================================
Version control: 2.4.11
Platform:
Host: Windows 6.1 AMD64
CMake: 2.8.11.2
CMake generator: Visual Studio 12 Win64
CMake build tool: C:/PROGRA~2/MSBuild/12.0/Bin/MSBuild.exe
MSVC: 1800
OpenCV modules:
To be built: core flann imgproc highgui features2d calib3d ml video legacy objdetect photo gpu ocl nonfree contrib stitching superres ts videostab
Disabled: java python world
Disabled by dependency: -
Unavailable: androidcamera dynamicuda viz
Windows RT support: NO
GUI:
QT: NO
Win32 UI: YES
OpenGL support: NO
VTK support: NO
Media I/O:
ZLib: build (ver 1.2.7)
JPEG: build (ver 62)
PNG: build (ver 1.5.12)
TIFF: build (ver 42 - 4.0.2)
JPEG 2000: build (ver 1.900.1)
OpenEXR: build (ver 1.7.1)
Video I/O:
Video for Windows: YES
DC1394 1.x: NO
DC1394 2.x: NO
FFMPEG: YES (prebuilt binaries)
codec: YES (ver 55.18.102)
format: YES (ver 55.12.100)
util: YES (ver 52.38.100)
swscale: YES (ver 2.3.100)
gentoo-style: YES
OpenNI: NO
OpenNI PrimeSensor Modules: NO
PvAPI: NO
GigEVisionSDK: NO
DirectShow: YES
Media Foundation: NO
XIMEA: NO
Intel PerC: NO
Other third-party libraries:
Use IPP: NO
Use Eigen: NO
Use TBB: NO
Use OpenMP: NO
Use GCD NO
Use Concurrency YES
Use C=: NO
Use Cuda: NO
Use OpenCL: YES
OpenCL:
Version: dynamic
Include path: C:/builds/2_4_PackSlave-win64-vc12-shared/opencv/3rdparty/include/opencl/1.2 C:/Program Files (x86)/AMD/clAmdFft/include C:/Program Files (x86)/AMD/clAmdBlas/include
Use AMD FFT: YES
Use AMD BLAS: YES
Python:
Interpreter: C:/Python27-x64/python.exe (ver 2.7.5)
Java:
ant: C:/Program Files (x86)/apache-ant/bin/ant.bat (ver 1.9.2)
JNI: C:/Program Files/Java/jdk1.6.0_45/include C:/Program Files/Java/jdk1.6.0_45/include/win32 C:/Program Files/Java/jdk1.6.0_45/include
Java tests: NO
Tests and samples:
Tests: NO
Performance tests: NO
C/C++ Examples: NO
Windows10 テクニカルプレビュー 64bit版にOpenCV 2.4.11の開発環境を構築した
検索などでこのページを訪れる人が、数は少ないけど、コンスタントにいる。
ちょうどこの上にあるG+1のボタンを押してもらうと、Goolgeの検索に見つかりやすくなるので、ご協力いただきたい。
久しぶりにwindws版を設定した。基本いつもと同じであるが、以後対象を64bitを前提に記す。
Windows版は、tbb、OpenGL、OpenNI、CUDAを使用しなければ、ダウンロードしたファイルを展開して設定すれば使用できるので、30分もかからず環境ができる。
(ダウンロード時間や、Visual Studio Community 2013のインストールを除く)
1 ここからWindows版をダウンロードする
ダウンロードサイズは350Mバイト
2 OpenCV-2.4.11.exeを実行しインストールディレクトリc:\を指定する
3 展開後、ディレクトリ名をopencvからopencv2411に変更する
4 OSの環境変数の設定(要管理者権限)
コントロールパネル、システムとセキュリティ、システムを開き
システムの詳細設定の環境変数ボタンを押し
システム環境変数のPathの編集
末尾に";C:\opencv2411\build\x64\vc12\bin"を追加
(この作業後、一度サインオフし、再度サインインする)
5 Visual Studio 2013 Communityのプロパティファイルを作成する
以後のテキストをコピーし、ファイル名OpenCV2411_64.props などのファイル名を付けて任意のフォルダーに保存する
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IncludePath>C:\opencv2411\build\include;$(IncludePath)</IncludePath>
</PropertyGroup>
<PropertyGroup>
<LibraryPath>C:\opencv2411\build\x64\vc10\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
6 Visual Studio 2013 Communityのプロパティファイルの設定を行う
新規プロジェクトを作成し、viewのメニューから、Other Windows Property Managerを選択
property windowを表示し、Debug x64と Relearse x64に先ほどのファイルを追加する
7 手持ちのサンプルをmainにコピーしビルドし動作を確認する
以上
ちょうどこの上にあるG+1のボタンを押してもらうと、Goolgeの検索に見つかりやすくなるので、ご協力いただきたい。
久しぶりにwindws版を設定した。基本いつもと同じであるが、以後対象を64bitを前提に記す。
Windows版は、tbb、OpenGL、OpenNI、CUDAを使用しなければ、ダウンロードしたファイルを展開して設定すれば使用できるので、30分もかからず環境ができる。
(ダウンロード時間や、Visual Studio Community 2013のインストールを除く)
1 ここからWindows版をダウンロードする
ダウンロードサイズは350Mバイト
2 OpenCV-2.4.11.exeを実行しインストールディレクトリc:\を指定する
3 展開後、ディレクトリ名をopencvからopencv2411に変更する
4 OSの環境変数の設定(要管理者権限)
コントロールパネル、システムとセキュリティ、システムを開き
システムの詳細設定の環境変数ボタンを押し
システム環境変数のPathの編集
末尾に";C:\opencv2411\build\x64\vc12\bin"を追加
(この作業後、一度サインオフし、再度サインインする)
5 Visual Studio 2013 Communityのプロパティファイルを作成する
以後のテキストをコピーし、ファイル名OpenCV2411_64.props などのファイル名を付けて任意のフォルダーに保存する
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IncludePath>C:\opencv2411\build\include;$(IncludePath)</IncludePath>
</PropertyGroup>
<PropertyGroup>
<LibraryPath>C:\opencv2411\build\x64\vc10\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
6 Visual Studio 2013 Communityのプロパティファイルの設定を行う
新規プロジェクトを作成し、viewのメニューから、Other Windows Property Managerを選択
property windowを表示し、Debug x64と Relearse x64に先ほどのファイルを追加する
7 手持ちのサンプルをmainにコピーしビルドし動作を確認する
以上
2015年3月4日水曜日
Raspberry Pi 2でOpenCV 2.4.11をビルドした
2.4.10の記事はここ
ccmakeによるパラメータの設定
1 コンパイラの変更
/usr/bic/gcc-4.8
/usr/bin/g++-4.8
ここで一旦cを押しconfigureを行う
注意
コンパイラを変えるとコンパイラ以外のすべての設定がデフォルトに戻るので再度指定する必要がある。
2 tbbの設定
ccamkeでtbb=onにして、
cを押しconfigureを行うと、tbbソースのダウンロードに失敗しているようである。
そこで一旦ccmakeを抜け、
wget https://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb43_20141204oss_src.tgz
により手動での取得を試みるがエラーが生じる
ERROR: The certificate of `www.threadingbuildingblocks.org' is not trusted.
ERROR: The certificate of `www.threadingbuildingblocks.org' hasn't got a known issuer.
certificationを登録しないで、取得するには以下のようにする
wget --no-check-certificate https://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb43_20141204oss_src.tgz
ダウンロードしたファイルは、
3rdparty/tbbにコピーしておく
(ここに0バイトの残骸が残っているので、上書きする)
3 再度ccmake を起動し、残りのパラメータを設定
cを押しconfigureし、gによりgenarateを行う
ccmakeを終了し、time make -j4でビルドする
real 50m51.860s
user 173m49.150s
sys 5m43.170s
4 インストール
sudo make install
sudo ldconfig
以上
2015年2月27日金曜日
OpenCV 2.4.11がリリースされた
議事録に記載されていないのに 2.4.11版が突然リリースされた。
現時点では、windowsとLinuxのみ
差分の記述がないのでMeld差分ビューワーでフォルダーを比較して気づいた点
CMakeLists.txt
デフォルトでNEONがONになっている
Haarcascadeのデータ形式が新フォーマットに
モジュールの修正が多いが、ほとんどtipoや細かいバグの修正
GPU sampleの修正が多い
全文サーチでNEONを調べるてみたが、ファイルが1個増えているが、どれか不明
oclのファイルの数は変化なし
明日といっても今日になっているが、ビルドしてパフォーマンスを見てみる
現時点では、windowsとLinuxのみ
差分の記述がないのでMeld差分ビューワーでフォルダーを比較して気づいた点
CMakeLists.txt
デフォルトでNEONがONになっている
Haarcascadeのデータ形式が新フォーマットに
モジュールの修正が多いが、ほとんどtipoや細かいバグの修正
GPU sampleの修正が多い
全文サーチでNEONを調べるてみたが、ファイルが1個増えているが、どれか不明
oclのファイルの数は変化なし
明日といっても今日になっているが、ビルドしてパフォーマンスを見てみる
2015年2月23日月曜日
OpenCV 3.0betaでは、tbbが無効である
先週ベンチマーク用に、masterのソースを取得し、ビルドしてみたが、以前として、tbbが有効にならない
configrationでは、tbbが認識されソースもダウンロードされており、ビルドも成功するが
できた自作のベンチのスコアが芳しくない
そこでライブラリの依存関係を見てみると、3.0betaでは、tbbがリンクされていない
ldd /usr/local/lib/libopencv_core.so
linux-vdso.so.1 => (0x00007fff039fe000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f1914166000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1913f62000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1913d43000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f1913b3b000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1913835000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1913530000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f191316a000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1912f54000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1915049000)
ちなみに2.4.10の場合
ldd /usr/local/lib/libopencv_core.so
linux-vdso.so.1 => (0x00007ffff31db000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f35ce7ec000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f35ce5ce000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f35ce3c5000)
libtbb.so => /usr/local/lib/libtbb.so (0x00007f35ce19a000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f35cde94000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f35cdb8f000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f35cd7c9000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f35cd5b3000)
/lib64/ld-linux-x86-64.so.2 (0x00007f35ceed4000)
と正しくリンクされている。
その他
3.0rcのリリース時期が、議事録では1/26日から2weeks以内と見積もりされているが、この調子では、かなり延期するのではと思われる。
configrationでは、tbbが認識されソースもダウンロードされており、ビルドも成功するが
できた自作のベンチのスコアが芳しくない
そこでライブラリの依存関係を見てみると、3.0betaでは、tbbがリンクされていない
ldd /usr/local/lib/libopencv_core.so
linux-vdso.so.1 => (0x00007fff039fe000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f1914166000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1913f62000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1913d43000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f1913b3b000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1913835000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1913530000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f191316a000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1912f54000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1915049000)
ちなみに2.4.10の場合
ldd /usr/local/lib/libopencv_core.so
linux-vdso.so.1 => (0x00007ffff31db000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f35ce7ec000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f35ce5ce000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f35ce3c5000)
libtbb.so => /usr/local/lib/libtbb.so (0x00007f35ce19a000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f35cde94000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f35cdb8f000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f35cd7c9000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f35cd5b3000)
/lib64/ld-linux-x86-64.so.2 (0x00007f35ceed4000)
と正しくリンクされている。
その他
3.0rcのリリース時期が、議事録では1/26日から2weeks以内と見積もりされているが、この調子では、かなり延期するのではと思われる。
OpenCV3.0betaで、HOG+SVMの辞書を作成
OpenCV 3.0 betaのサンプルのcppにtrain_HOG.cppがあるのを見つけた。
中を見てみると自分でHOGの辞書を作ることができるようだ
ソースの内容は大きく分けると
データの読み込み
ファイルリストを読み込みpositive, negativeの画像を読み込む。
ただし、この部分はINRIAデータに依存した記述になっている。
また、INRIAデータの解釈を間違っており、サンプルのままでは、よくない結果となるよ予想される。INRIAの画像は、4方に16画素のマージンが含まれており、実際の画像は、64x128が正しい
特徴量の計算
各画像のHOG特徴量を計算し、gradient_lstに格納している
hog.compute( gray, descriptors, Size( 8, 8 ), Size( 0, 0 ), location );
const vector<Point>& locationsに座標が格納されている場合は、その座標で計算する
locations.sizeが0の場合、決められた座標で計算する
SVMによる学習
SVM::Params paramsにパラメータをセットし、
Ptr<SVM> svm = StatModel::train<SVM>(train_data, ROW_SAMPLE, Mat(labels), params);
で学習を行なう
3.0はいろいろ問題があるので、2.4.10でビルドできないか試したところ、読み込みと特徴量のところは問題がなかったが、2.4.10では、mlクラスはないので、この部分を自分でlibLinearに置き換えれば、2.4.10で自分の辞書ができそうである。
2.4.10のHOGのソースの場所
opencv2410/modules/objdetect/src/hog.cpp
3.0のpython版による手書き数字識別のチュートリアル
OCR of Hand-written Data using SVM
中を見てみると自分でHOGの辞書を作ることができるようだ
ソースの内容は大きく分けると
データの読み込み
ファイルリストを読み込みpositive, negativeの画像を読み込む。
ただし、この部分はINRIAデータに依存した記述になっている。
また、INRIAデータの解釈を間違っており、サンプルのままでは、よくない結果となるよ予想される。INRIAの画像は、4方に16画素のマージンが含まれており、実際の画像は、64x128が正しい
特徴量の計算
各画像のHOG特徴量を計算し、gradient_lstに格納している
hog.compute( gray, descriptors, Size( 8, 8 ), Size( 0, 0 ), location );
const vector<Point>& locationsに座標が格納されている場合は、その座標で計算する
locations.sizeが0の場合、決められた座標で計算する
SVMによる学習
SVM::Params paramsにパラメータをセットし、
Ptr<SVM> svm = StatModel::train<SVM>(train_data, ROW_SAMPLE, Mat(labels), params);
で学習を行なう
3.0はいろいろ問題があるので、2.4.10でビルドできないか試したところ、読み込みと特徴量のところは問題がなかったが、2.4.10では、mlクラスはないので、この部分を自分でlibLinearに置き換えれば、2.4.10で自分の辞書ができそうである。
2.4.10のHOGのソースの場所
opencv2410/modules/objdetect/src/hog.cpp
3.0のpython版による手書き数字識別のチュートリアル
OCR of Hand-written Data using SVM
2015年2月20日金曜日
OpenCV 3.0betaの変更点
自作のベンチマークで使用している関数が、3.0betaでエラーとなったので修正した。
いずれも3.0のマニュアルを見てもよくわからなかったので、メモを残しておく
1 TickMeter
3.0から削除されているので2.4.10のソースからそのままコピーした
2 ORB
コンストラクター
cv::Ptr<cv::ORB> detector = cv::ORB::create();
キーポイント
detector->detect(gray1, keypoint1);
特徴量
detector->compute(gray1, keypoint1, descriptor1);
3 StereoBM
コンストラクター
cv::Ptr<cv::StereoBM> bm = cv::StereoBM::create();
差分
bm->compute(mat2, mat3, tmp);
以上
いずれも3.0のマニュアルを見てもよくわからなかったので、メモを残しておく
1 TickMeter
3.0から削除されているので2.4.10のソースからそのままコピーした
- opencv2410/modules/contrib/include/opencv2/contrib/contrib.hpp
- opencv2410/modules/contrib/src/spinimages.cpp
2 ORB
コンストラクター
cv::Ptr<cv::ORB> detector = cv::ORB::create();
キーポイント
detector->detect(gray1, keypoint1);
特徴量
detector->compute(gray1, keypoint1, descriptor1);
3 StereoBM
コンストラクター
cv::Ptr<cv::StereoBM> bm = cv::StereoBM::create();
差分
bm->compute(mat2, mat3, tmp);
以上
2015年2月17日火曜日
OpenCVのNEON対応を調べてみた
2.4.10と3.0beta(2/15日取得)のソースでNEONで全文検索(Catfish)を試してみた
moduleの下のソースで含まれていたものをそれぞれ示す
coreモジュールの対応が増えているので期待できそうである
moduleの下のソースで含まれていたものをそれぞれ示す
coreモジュールの対応が増えているので期待できそうである
2.4.10
3.0 beta
Raspberry Pi 2のOpenCVのパフォーマンスの改善を試みた
OpenCVのオプション、-DENABLE_VFPV3=ONを設定し、OpenCVをビルドしなおしてみた。
残念ながら、自作のベンチマークの処理時間は、誤差ぐらいの時間しか違いがなかった。
configureの設定のコンパイラ部分を参考に載せておく
ここに、-march=armv7-a mfpu=neon-vfpv4 がつけば良いのだが、現状-mfpu=neonだけで、ENABLE_VFPV3の設定も行われていない気がする。
C++ Compiler: /usr/bin/c++ (ver 4.6.3)
C++ flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -O3 -DNDEBUG -DNDEBUG
C Compiler: /usr/bin/gcc
C flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -O3 -DNDEBUG -DNDEBUG
2/17追加
opencv2410/cmake/OpenCVCompilerOptions.cmakeを見てみると
if (ENABLE_NEON)
add_extra_compiler_option("-mfpu=neon")
endif()
if (ENABLE_VFPV3 AND NOT ENABLE_NEON)
add_extra_compiler_option("-mfpu=vfpv3")
endif()
となっており、NEONの場合、VFPV3は有効にならない設定である
残念ながら、自作のベンチマークの処理時間は、誤差ぐらいの時間しか違いがなかった。
configureの設定のコンパイラ部分を参考に載せておく
ここに、-march=armv7-a mfpu=neon-vfpv4 がつけば良いのだが、現状-mfpu=neonだけで、ENABLE_VFPV3の設定も行われていない気がする。
C++ Compiler: /usr/bin/c++ (ver 4.6.3)
C++ flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -O3 -DNDEBUG -DNDEBUG
C Compiler: /usr/bin/gcc
C flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -O3 -DNDEBUG -DNDEBUG
2/17追加
opencv2410/cmake/OpenCVCompilerOptions.cmakeを見てみると
if (ENABLE_NEON)
add_extra_compiler_option("-mfpu=neon")
endif()
if (ENABLE_VFPV3 AND NOT ENABLE_NEON)
add_extra_compiler_option("-mfpu=vfpv3")
endif()
となっており、NEONの場合、VFPV3は有効にならない設定である
OpenCVのビルド時間の短縮
強力なIntelマシンだとビルド時間は気にならない程度であるが、raspberry pi 2では、HDDを使用していても、ビルド時間が長く感じられる。
ビルド時間短縮ためにいつも、ドキュメント、テスト、パフォーマンステスト、サンプルなどを外し、さらに、GPUやOpenCLなど対応していない機能も外している。
それでも長いため、さらなる時間の短縮のために、最後にビルドされる opencv_traincascade などのアプリをビルドしないように試してみた
単純にapps/CMakeLists.txtを別名にしただけでは、cmakeの時にエラーが生じる。
そこで、CMakeLists.txtの名前を変え、CMakeLists.txtのからファイルを作成することでビルドされないことが確認でき、最後の数分を短縮することができた。
2/17追加
上記のようにしなくても、単に BUILD_opencv_apps を off にすればよい
ビルド時間短縮ためにいつも、ドキュメント、テスト、パフォーマンステスト、サンプルなどを外し、さらに、GPUやOpenCLなど対応していない機能も外している。
それでも長いため、さらなる時間の短縮のために、最後にビルドされる opencv_traincascade などのアプリをビルドしないように試してみた
2/17追加
上記のようにしなくても、単に BUILD_opencv_apps を off にすればよい
Raspberry Pi 2 で OpenCV 2.4.10 をビルドした その2
もう少し速度の処理速度を速くすることができないかと、いろいろ調べてみた
再度本家のページを読み返してみると、ページの下段に
Add -DENABLE_VFPV3=ON to cmake command line to enable code generation for VFPv3
という説明を見つけた。
前回のccmakeでオプション指定を忘れているので、今度は、ENABLE_VFPV3をONにした。
また、対応していないOpenCL関連をすべてOffとし、configureとgenerateを行う
そしてmake -j4で再度ビルドを行った。
問題なくビルドが終了したので、比較ために自作のベンチマークを行う予定である。
前の記載でRasberry Pi 2の変化点として、コアが、ARMv6からARMv7に変更したこととなっていた。
Raspberry Pi 2 でそのままビルドすると ARMv6 のバイナリが生成されるため、コンパイラのオプションを変えたほうが良いとのページを見つけたが、OpenCVのcmakeでは、CPUアーキテクチャの指定方法が見つからない
この件は継続調査を行うが、あの方や、あの方が調べてくれるのではと期待もしている。
2/17追加
opencv2410/cmake/OpenCVCompilerOptions.cmake
をむりやり修正することにより
C++ flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -pthread -fomit-frame-pointer -march=armv7-a -mfpu=neon-vfpv4 -ffunction-sections -O3 -DNDEBUG -DNDEBUG
にすることができたが、Raspberry Pi 2のコンパイラでは、-march=armv7-a -mfpu=neon-vfpv4 のオプションは聞いていないとの情報あり
この件は、継続調査
再度本家のページを読み返してみると、ページの下段に
Add -DENABLE_VFPV3=ON to cmake command line to enable code generation for VFPv3
という説明を見つけた。
前回のccmakeでオプション指定を忘れているので、今度は、ENABLE_VFPV3をONにした。
また、対応していないOpenCL関連をすべてOffとし、configureとgenerateを行う
そしてmake -j4で再度ビルドを行った。
問題なくビルドが終了したので、比較ために自作のベンチマークを行う予定である。
前の記載でRasberry Pi 2の変化点として、コアが、ARMv6からARMv7に変更したこととなっていた。
Raspberry Pi 2 でそのままビルドすると ARMv6 のバイナリが生成されるため、コンパイラのオプションを変えたほうが良いとのページを見つけたが、OpenCVのcmakeでは、CPUアーキテクチャの指定方法が見つからない
2/17追加
opencv2410/cmake/OpenCVCompilerOptions.cmake
をむりやり修正することにより
C++ flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -pthread -fomit-frame-pointer -march=armv7-a -mfpu=neon-vfpv4 -ffunction-sections -O3 -DNDEBUG -DNDEBUG
にすることができたが、Raspberry Pi 2のコンパイラでは、-march=armv7-a -mfpu=neon-vfpv4 のオプションは聞いていないとの情報あり
この件は、継続調査
2015年2月15日日曜日
Raspberry Pi 2で赤外線カメラをnativeドライバで動作させてみた
Raspberry Pi 2のパフォーマンスが良いので、Raspberry Piに装着した赤外線カメラモジュールをPi 2に取り付けてみた
カメラを動作させるには、raspi-configでカメラを有効にし、専用のnativeドライバーを使用する必要がある
専用ドライバは、起動後に、terminalを開き
sudo modprobe bcm2835-v4l2
で読み込む必要がある
あとは、OpenCVのVideoCaptureが使用できる
VGA画像を30fpsで読み込むことができ、表示させるだけなら遅延はほとんど感じられない
残念ながらフレームレートを
mCap.set(CV_CAP_PROP_FPS, 60);
で変えることはできなかった
カメラを動作させるには、raspi-configでカメラを有効にし、専用のnativeドライバーを使用する必要がある
専用ドライバは、起動後に、terminalを開き
sudo modprobe bcm2835-v4l2
で読み込む必要がある
あとは、OpenCVのVideoCaptureが使用できる
VGA画像を30fpsで読み込むことができ、表示させるだけなら遅延はほとんど感じられない
残念ながらフレームレートを
mCap.set(CV_CAP_PROP_FPS, 60);
で変えることはできなかった
2015年2月9日月曜日
Raspberry Pi 2のインタビュー記事にOpenCVが述べられている
オリジナルの記事
Raspberry Pi財団の創設者 Eben Uptonに聞くRaspberry Pi 2
インタビューの最後の方にこんな言葉が
クアッドコアの登場がMakerや企業にどんな恩恵を与えるでしょうか。ハードウェアのローレベルアクセスを必要とするのは、どんな人ですか?
”すべての人にかなりの恩恵があると思います。Makerから、OpenCV+SMP+NEONを使ってもっと進化したアプリが出てくるのが楽しみですね。”
パフォーマンスも大幅に向上しているので、何か面白いものを作ってみたい
Raspberry Pi財団の創設者 Eben Uptonに聞くRaspberry Pi 2
インタビューの最後の方にこんな言葉が
クアッドコアの登場がMakerや企業にどんな恩恵を与えるでしょうか。ハードウェアのローレベルアクセスを必要とするのは、どんな人ですか?
”すべての人にかなりの恩恵があると思います。Makerから、OpenCV+SMP+NEONを使ってもっと進化したアプリが出てくるのが楽しみですね。”
パフォーマンスも大幅に向上しているので、何か面白いものを作ってみたい
Raspberry Pi 2 と Raspberry Pi のOpenCVのパフォーマンスを比較した
Paspberry Pi 2 と Raspberry PiのUinuxBenchは公開されているので、
自作のベンチマークプログラムを使用しOpenCVの処理時間を比較してみた
Raspberry Piの方は、ソースをビルドしたものではなく
sudo apt-get install libopencv-devを使用してOpenCV 2.4.1をインストールしている。
Raspberry Pi のビルド時間が数時間と言われていたので、既存のものをそのまま利用した。
関連ページはここ
Raspberry Pi 2の方は、6倍の処理速度の評判のため、2.4.10のソースを自分でビルドした
関連ページはここ
計測方法
計測した関数は、以下のもので、使用頻度と計算量を考慮して選択している。
引数は、なるべくデフォルトのものを使用している。
計測に使用した画像は、sampleで提供されているものであり、640 x 480の画像を使用している
単位はmsecである。
右の欄は処理時間の比である。
一声6倍と言われているが、NEONの効果かもしれないが、それ以上に改善された関数もある。
特に物体検出に利用されるCascadeClassifierが速くなったのは、嬉しいかもしれない。
自作のベンチマークプログラムを使用しOpenCVの処理時間を比較してみた
Raspberry Piの方は、ソースをビルドしたものではなく
sudo apt-get install libopencv-devを使用してOpenCV 2.4.1をインストールしている。
Raspberry Pi のビルド時間が数時間と言われていたので、既存のものをそのまま利用した。
関連ページはここ
Raspberry Pi 2の方は、6倍の処理速度の評判のため、2.4.10のソースを自分でビルドした
関連ページはここ
計測方法
計測した関数は、以下のもので、使用頻度と計算量を考慮して選択している。
引数は、なるべくデフォルトのものを使用している。
計測に使用した画像は、sampleで提供されているものであり、640 x 480の画像を使用している
- CloneRGB
- pyrDown
- pyrUp
- cvtColor
- GaussianBlur ksize(5x5)
- Sobel CV_32F xorder
- threshold BINARY Th 128 Max 255
- Orb FeatureDetector
- Orb DescriptorExtractor
- BFMatcher NORM_L2
- StereoBM BASIC_PRESET
- calcOpticalFlowFarneback
- CascadeClassifier
単位はmsecである。
右の欄は処理時間の比である。
一声6倍と言われているが、NEONの効果かもしれないが、それ以上に改善された関数もある。
特に物体検出に利用されるCascadeClassifierが速くなったのは、嬉しいかもしれない。
2015年2月8日日曜日
Raspberry Pi 2 で OpenCV 2.4.10 をビルドした
販売当時に予約して金曜日に到着した。
Pi 2に対応した raspbian-2015-1-31のイメージを class10の16GのSDカードにインストールし、
初期設定を行った。
2.4.10のソースを格納したUSB HDDをRaspberry Pi 2に接続し、USB HDDの領域でビルドしている。
OpenCV用に以下のコマンドを実行している。
sudo apt-get install cmake cmake-curses-gui python-dev python-numpy libgtk2.0-dev
cmake ..
ccmake
make -j4
sudo make install
sudo ldconfig
make時間は1時間未満ですんだ。この後いつものテストプログラムを実行し問題なく画像は表示できた。
関連ファイルは全部インストールしていない。詳細はここを
補足 02/15
OpenCLをONにしているがRaspberry Pi 2でもOpenCLは、サポートされていないので、無駄なオプションである。
補足 02/17
Eigenを使用するには、
sudo apt-get install libeigen3-dev
を事前に行っていないいけない
General configuration for OpenCV 2.4.10 =====================================
OpenCV modules:
To be built: core flann imgproc highgui features2d calib3d ml objdetect video ocl nonfree contrib legacy photo python stitching superres ts videostab
Disabled: gpu world
Disabled by dependency: -
Unavailable: androidcamera dynamicuda java viz
GUI:
QT: NO
GTK+ 2.x: YES (ver 2.24.10)
GThread : YES (ver 2.40.0)
GtkGlExt: NO
OpenGL support: NO
VTK support: NO
Media I/O:
ZLib: /usr/lib/arm-linux-gnueabihf/libz.so (ver 1.2.7)
JPEG: libjpeg (ver 62)
PNG: /usr/lib/arm-linux-gnueabihf/libpng.so (ver 1.2.49)
TIFF: build (ver 42 - 4.0.2)
JPEG 2000: build (ver 1.900.1)
OpenEXR: build (ver 1.7.1)
Video I/O:
DC1394 1.x: NO
DC1394 2.x: NO
FFMPEG: NO
codec: NO
format: NO
util: NO
swscale: NO
gentoo-style: NO
GStreamer: NO
OpenNI: NO
OpenNI PrimeSensor Modules: NO
PvAPI: NO
GigEVisionSDK: NO
UniCap: NO
UniCap ucil: NO
V4L/V4L2: NO/YES
XIMEA: NO
Xine: NO
Other third-party libraries:
Use IPP: NO
Use Eigen: NO
Use TBB: YES (ver 4.1 interface 6102)
Use OpenMP: NO
Use GCD NO
Use Concurrency NO
Use C=: NO
Use Cuda: NO
Use OpenCL: YES
OpenCL:
Version: dynamic
Include path: /opencv2410arm/3rdparty/include/opencl/1.2
Use AMD FFT: NO
Use AMD BLAS: NO
Python:
Interpreter: /usr/bin/python2 (ver 2.7.3)
Libraries: /usr/lib/python2.7/config/libpython2.7.so (ver 2.7.3)
numpy: /usr/lib/pymodules/python2.7/numpy/core/include (ver 1.6.2)
packages path: lib/python2.7/dist-packages
Java:
ant: NO
JNI: NO
Java tests: NO
Tests and samples:
Tests: NO
Performance tests: NO
C/C++ Examples: NO
Install path: /usr/local
Pi 2に対応した raspbian-2015-1-31のイメージを class10の16GのSDカードにインストールし、
初期設定を行った。
2.4.10のソースを格納したUSB HDDをRaspberry Pi 2に接続し、USB HDDの領域でビルドしている。
OpenCV用に以下のコマンドを実行している。
sudo apt-get install cmake cmake-curses-gui python-dev python-numpy libgtk2.0-dev
cmake ..
ccmake
make -j4
sudo make install
sudo ldconfig
make時間は1時間未満ですんだ。この後いつものテストプログラムを実行し問題なく画像は表示できた。
関連ファイルは全部インストールしていない。詳細はここを
補足 02/15
OpenCLをONにしているがRaspberry Pi 2でもOpenCLは、サポートされていないので、無駄なオプションである。
補足 02/17
Eigenを使用するには、
sudo apt-get install libeigen3-dev
を事前に行っていないいけない
General configuration for OpenCV 2.4.10 =====================================
OpenCV modules:
To be built: core flann imgproc highgui features2d calib3d ml objdetect video ocl nonfree contrib legacy photo python stitching superres ts videostab
Disabled: gpu world
Disabled by dependency: -
Unavailable: androidcamera dynamicuda java viz
GUI:
QT: NO
GTK+ 2.x: YES (ver 2.24.10)
GThread : YES (ver 2.40.0)
GtkGlExt: NO
OpenGL support: NO
VTK support: NO
Media I/O:
ZLib: /usr/lib/arm-linux-gnueabihf/libz.so (ver 1.2.7)
JPEG: libjpeg (ver 62)
PNG: /usr/lib/arm-linux-gnueabihf/libpng.so (ver 1.2.49)
TIFF: build (ver 42 - 4.0.2)
JPEG 2000: build (ver 1.900.1)
OpenEXR: build (ver 1.7.1)
Video I/O:
DC1394 1.x: NO
DC1394 2.x: NO
FFMPEG: NO
codec: NO
format: NO
util: NO
swscale: NO
gentoo-style: NO
GStreamer: NO
OpenNI: NO
OpenNI PrimeSensor Modules: NO
PvAPI: NO
GigEVisionSDK: NO
UniCap: NO
UniCap ucil: NO
V4L/V4L2: NO/YES
XIMEA: NO
Xine: NO
Other third-party libraries:
Use IPP: NO
Use Eigen: NO
Use TBB: YES (ver 4.1 interface 6102)
Use OpenMP: NO
Use GCD NO
Use Concurrency NO
Use C=: NO
Use Cuda: NO
Use OpenCL: YES
OpenCL:
Version: dynamic
Include path: /opencv2410arm/3rdparty/include/opencl/1.2
Use AMD FFT: NO
Use AMD BLAS: NO
Python:
Interpreter: /usr/bin/python2 (ver 2.7.3)
Libraries: /usr/lib/python2.7/config/libpython2.7.so (ver 2.7.3)
numpy: /usr/lib/pymodules/python2.7/numpy/core/include (ver 1.6.2)
packages path: lib/python2.7/dist-packages
Java:
ant: NO
JNI: NO
Java tests: NO
Tests and samples:
Tests: NO
Performance tests: NO
C/C++ Examples: NO
Install path: /usr/local
登録:
投稿 (Atom)