2015年12月28日月曜日

Raspberry Pi 2 で OpenCV 3.1.0 + contrib 3.1.0 をビルドした

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

2015年12月24日木曜日

OpenCV Advent Calendar 2015に投稿しました。 その2

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のソースをビルドしてみた を参考にしてください

以上

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があれば、問題なくビルドできます
あとで公開します。

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%

以上

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を見てみると残っています。


ファイルが必要な場合、ここからダウンロードすれば大丈夫でしょう。

使い方は、
学習と検出のサンプルがここにあります

以上

2015年12月18日金曜日

OpenCV Advent Calendar 2015に投稿しました。

タイトル:CascadeClassifierのsetImageとrunAtの使い方

です。内容はかなり偏ったものになっています。

 Qiitaでは、記事投稿が予約できますのであと、数分で公開されるかと思います。

Markdownではじめて書いたので、見づらいかも知れません。
もしかしたら修正するかも知れません。