2014年8月26日火曜日

OpenCV 3.0 alpha がリリースされた

8/21に公式から3.0アルファの公式アナウンスがあった

公式のアナウンスをおおまかに訳してみた

概略
プロジェクトの構成を、maincotribに分割

contribには、顔認識、文字検出、文字認識、新たなエッジ検出、state-of-art inpainting, 奥行き処理, 新オプティカルフロー and 追跡アルゴリズム など追加されている

mainとcontribの違い

contribのユニットテストはまだ定期的に行われていない

  • ビルドには、CMakeのオプションに、OPENCV_EXTRA_MODULES_PATH=/modules を設定
  • ドキュメントは、docs.opencv.org/masterに自動で作成される。最終版では、より統一性が整えられる
  • mainは、Itseezがサポートし、安定だが、新規性が少ない
  • opencv_contribは、実験的はコードのためのものである。いくつかいは、APIが変更されるかもしれない
  • あなたの新規アルゴリズムの投稿のための場所である


2 Intel and AMDの協力により、T-API (“transparent API”)と呼ばれる技術を通じて、多くのアルゴリズムで容易にGPUを利用できるようになった。

専用のガイドを準備するので、目を通して、サンプルを試してほしい

3 Intelは、さらに、OpenCVのユーザに、無償で、Intel Integrated Performance Primitives (IPP) を提供した。
IPP対応OpenCVとアプリケーションを無償で再配布できる。
IPPに、いくつかのAPIでは、かなりの速度向上がえられた。

4 新規機能

  • 文字検出と認識
  • HDR
  • KAZE/A-KAZE特徴量
  • Smart segmentation and edge-aware filters
  • Waldboostによる車検出
  • TLD tracker and several common-use optimization algorithms
  • Matlab 連携
  • Python 3を含む連携拡張とチュートリアル
  • VTK使用による3D表示
  • RGBDモジュール
  • 線検出
  • 多くの写真用アルゴリズム
  • Shape descriptors, matching and morphing shapes
  • 長期追跡と、saliency-based improvements
  • ポーズ推定とチュートリアル
  • Line descriptors and matchers
  • ライブラリの改善
  • NEON最適化
  • foreach loopの高速化
  • Image alignment (ECC algorithm)
  • GDAL image support
  • 魚眼カメラモデル
  • OSX framework build script
  • Multiple FLANN 改良
  • WinRT supportの改善
  • Latent SVM Cascade
  • Logistic regression
  • 5点ポーズ推定


これはアルファ版なので、多くの問題点がある (Python連携の一部で)
これらは修正中であり、フィードバックを期待している

3.0ベータは、今年秋中旬、最終リリースは、クリスマス休暇までには、準備できるはずである

2014年4月22日火曜日

cv::MatのTips

サンプルソースを見ていいると

for (int y = 0; y < frame.cols ; y++) {
    ... frame.ptr<unsigned char>(y) ...
}
という記述があり、何をしているかわからなかった。


mat.hppのソースを見てみると、

template<typename _Tp> inline _Tp* Mat::ptr(int y)
{
    CV_DbgAssert( y == 0 || (data && dims >= 1 && (unsigned)y < (unsigned)size.p[0]) );
    return (_Tp*)(data + step.p[0]*y);
}

と定義されており、画像データのラインY行目の先頭のポインタを求め、指定の型にcastするものとわかった。





その他
OpenCVをさわっていると、source, distinationの並びに慣れてしまい、memcpyがto, fromの並びなので、ソースを見ていて悩んでしまうようになった

Ubuntu Tips Cameraのデバイス番号を調べる

cv::VideoCaptureのデバイスをopenする場合、デバイス番号を指定する必要がある
しかし、複数のカメラを接続した場合、どのカメラがどの番号のアサインされるかは不明である

その場合、
ls /dev/serial/by-id
ls /dev/serial/by-path/
等のコマンドでデバイスの名称とデバイス番号を調べればよい

Ubuntu14.04に更新したらOpenCV2.4.8のプログラムが動作しなくなった

サンプルプログラムが起動しなくなった。デバックモードで動かすと、libavcodec.so.53: cannot open shared object file: No such file or directoryのためエラーとなっている。

Google先生に訪ねてみたが、同じような症状が見つからない。
最後の手段として、OpenCVを2.4.8から2.4.9に更新して見ることにした。

ここからソースをダウンロードして、任意のフォルダーに展開し、展開したフォルダーに移動

デフォルトのままの設定で、以下のようにビルドとインストールを行った。

cmake -DCMAKE_BUILD_TYPE=RELEASE
make -j4
sudo make install
sudo ldconfig

OpenCV2.4.8を削除しなかったため、そのまま上書きする形で.2.4.9をインストールした

再度サンプルプログラムをビルドし、実行すると今度は問題なく動作した。

2014年4月21日月曜日

OpenCV 2.4.9の変更点

オリジナルはここ

大きな変更はないがAndroidを使うのであれば、変更したほうがよい

OpenCL 
最適化でいくつかの改善 
ocl::sum, ocl::countNonZero, ocl::minMax, bitwise operationss, Haar face detector 

Android 
Nativeカメラの修正 
CUDA対応のSoC向けにCUDAサポートの改良 


VTK-based 3D 視覚化モジュールを安定化と2.4ブランチへのバックポート 

デモビデオはここ 

2.4.8から156のpull request 

2.4.8から55のバグ修正

以上

2014年4月20日日曜日

OpenCVforAndroid 2.4.9のサンプルをビルドしてみた

2.4.7の記事はここ

最初に
ubuntuの更新
Android SDKの更新
をしておく

NDKは、最新のものをダウンロードし、展開してパスを設定し直すだけで良い

2.4.7のプロジェクトは、eclipseのPackage Explorerからすべて削除
Package Explorerを右クリックしimportでOpenCV-2.4.9-android-sdk/sdk/javaを登録

その後に、
各サンプルをimportする

また、ndkのビルド用のバッチがwindows用になっているため、
プロジェクトのプロパティを開きC++buildの
ndk-build.cmdをndk-buildに直す

以上でサンプルアプリができる


実機のOpenCV Managerをアンインストールし、OpenCV-2.4.9-android-sdk/apkの
OpenCV_2.4.9_Manager_2.18_armv7a-neon.apkを代わりにインストールする

native-activityのサンプルは、2.4.8までは、問題があり、高性能のSoCで起動しなかった。
2.4.9では、S4 ProやSnapdragon 600のスマフォでの動作が確認できた。

特に、Snapdragon 600のスマフォでは、FullHDのディスプレーでもVGA30fpsのスピードが出ているのは素晴らしい。
ただし、室内では、カメラの露光の関係で30fpsは出ないため、強い光源にむける必要がある

以上

OpenCV 2.4.9が密かに公開されている

公式には公開されていないが、OpenCV2.4.9がダウンロードできる

Windowsはここから

Androidはここから

Linuxはここから

Macはまだのようである