.wp-block-jetpack-rating-star span.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal; }

サイトアイコン NegativeMindException

OpenCV3.3.0でsfmモジュールのビルドに成功!

OpenCVバージョン3.3.0がついに正式リリースされましたね。

OpenCV 3.3.0

OpenCV 3.3 has been released with greatly improved Deep Learning module and lots of optimizations.

dandelionさんがChange Logsを日本語訳しています↓
https://github.com/atinfinity/lab/wiki/OpenCV-Change-Logs%EF%BC%88%E6%84%8F%E8%A8%B3%EF%BC%89#3.3

ということで、さっそくsfmモジュールのビルドですね!(←しつこい)
結論から言うと、今回ついにビルドに成功しました。決め手はCMAKE_DEBUG_POSTFIXだった。

これまで何度も挑戦しては失敗してきたのだ…


OpenCV 3.1のsfmモジュールを試す
以前Visual Studio2015環境でビルドに挑戦して、サンプルコードを試す前に力尽きてしまったのだけど。。。QiitaのOpenCV Advent Calendar 2016で良記事がアップされたので再び真似してやってみる。@Cha...

OpenCV 3.1のsfmモジュールのビルド再び
性懲りもなくまだやってます。(作業メモ的な記事なので読みづらいです)前回、sfmモジュールのビルドでgflagsのリンクが上手くいかったので、その対処を考える。前回はglogをビルドする時にgflagsが有効になっていなかった。glog同梱...

OpenCV 3.3.0-RCでsfmモジュールをビルド
OpenCVのsfmモジュールのビルドが諦められずにまた挑戦したメモです(笑)もう4度目ですね。(そして1年以上も…)OpenCV3.1の頃からWindows環境でsfmモジュールを有効にするには一工夫必要なのが分かっていたけど、その後のバ...



ビルド

今回もビルド環境はこちら。VC14でx64ビルド。

使用した依存ライブラリのバージョンは以下。この順にビルドしていく。

  1. Eigen 3.3.4
  2. gflags 2.2.1
  3. google-glog 0.3.5
  4. suitesparse-metis-for-windows-1.3.1
  5. ceres-solver-1.12.0
  6. VTK-8.0.0
  7. opencv-3.3.0, opencv_contrib-3.3.0

これまでと同様、こちらの記事を参考にした。↓
http://qiita.com/ChaoticActivity/items/3888e886925ef0f84926

各ライブラリのバージョンが新しくなったことで手間がだいぶ減って楽になった。

Eigen

3.2.10を普通にcmakeして、Visual Studioでバッチビルド(ALL_BUILD, INSTALL)した。


スポンサーリンク

Gflags

gflagsはcmakeで
BUILD_SHARED_LIBS
BUILD_STATIC_LIBS
にチェックを入れ、さらに
CMAKE_DEBUG_POSTFIX
を追加し、Stringパラ―メータ’d’を設定しておいた。

glogもそうだが、前回までこれを設定していなかったのでビルドに失敗していたのだ。デフォルトだと、gflagsとglogはDebugビルドとReleaseビルドで出力されるlibファイル名が同じなので上書きされてしまうのだ。
後はGenerateして、Visual Studioでバッチビルド(ALL_BUILD, INSTALL)した。

Glog

同梱のgoogle-glog.slnファイルは使わず、cmakeを使う。
先ほどビルドしたGflagsはまだここでは指定しない。
Gflagsと同様に、
CMAKE_DEBUG_POSTFIX
を追加し、Stringパラ―メータ’d’を設定してGenerateしてVisual Studioでバッチビルド(ALL_BUILD, INSTALL)した。

suitesparse-metis-for-windows

suitesparse-metis-for-windowsは一部コードを書き換える。
metis/GKlib/gk_arch.hの61行目から

#ifdef __MSC__
/* MSC does not have rint() function */
#define rint(x) ((int)((x)+0.5))
 
/* MSC does not have INFINITY defined */
#ifndef INFINITY
#define INFINITY FLT_MAX
#endif
#endif

となっているが、Visual Studio 2015環境でこの定義は不要なのでコメントアウト。(消しちゃっても良いんだけど)

// #ifdef __MSC__
/* MSC does not have rint() function */
// #define rint(x) ((int)((x)+0.5))
 
/* MSC does not have INFINITY defined */
// #ifndef INFINITY
// #define INFINITY FLT_MAX
// #endif
// #endif

cmakeの設定はデフォルトのままでOK。

Ceres-Solver

CeresSolverは最新の1.13.0ではなく、1.12.0を使った。
ビルドに時間がかかるので、cmakeの設定で不要な
BUILD_EXAMPLES
BUILD_TESTING
のチェックは外しておく。

先ほどビルドしたglog, gflags, suitesparse-metis-for-windowsを指定し、GenerateしてVisual Studioでバッチビルド(ALL_BUILD, INSTALL)した。

VTK

基本はデフォルトのまま、ここを参考に↓
https://gist.github.com/UnaNancyOwen/9d16060714ba9b28f90e#file-vtk8-0-0-md

CMAKE_DEBUG_POSTFIX
に”-gd”を追加した。

OpenCV

cmakeで
OPENCV_EXTRA_MODULES_PATH
opencv_contrib-3.3.0/modules/
を追加。
WITH_CUDA
はチェックを外しておく。
GenerateしてOpenCV.slnを開いてバッチビルド。

さあ、やっとここへ辿り着いたぞ。
http://qiita.com/ChaoticActivity/items/178d23508b92a09e59ea

疲れた。。。


スポンサーリンク

関連記事

OpenCV 3.1のsfmモジュールのビルド再び

Alice Vision:オープンソースのPhotogrammetryフレームワーク

SDカードサイズのコンピューター『Intel Edison』

HD画質の無駄遣い その2

オープンソースのロボットアプリケーションフレームワーク『ROS (Robot Operating S...

OpenCVで動画の手ぶれ補正

SVM (Support Vector Machine)

立体視を試してみた

iPhone・iPod touchで動作する知育ロボット『ROMO』

UnrealCLR:Unreal Engineで.NET Coreを利用できるプラグイン

CGALDotNet:計算幾何学ライブラリ CGALのC#ラッパー

Live CV:インタラクティブにComputer Visionコーディングができるツール

Mask R-CNN:ディープラーニングによる一般物体検出・Instance Segmentatio...

Verilog HDL

Windows10でPyTorchをインストールしてVSCodeで使う

オープンソースの物理ベースレンダラ『Mitsuba』をMayaで使う

ZBrushで作った3Dモデルを立体視で確認できるVRアプリを作る

WordPressプラグインの作り方

ManimML:機械学習の概念を視覚的に説明するためのライブラリ

Mitsuba 2:オープンソースの物理ベースレンダラ

池袋パルコで3Dのバーチャルフィッティング『ウェアラブル クロージング バイ アーバンリサーチ』

TeleSculptor:空撮動画からPhotogrammetryするツール

.NETで使えるTensorFlowライクなニューラルネットワークライブラリ『NeuralNetwo...

PyMC:Pythonのベイズ統計ライブラリ

Google App Engineのデプロイ失敗

Math Inspector:科学計算向けビジュアルプログラミングツール

PythonでBlenderのAdd-on開発

UnityでOpenCVを使うには?

HerokuでMEAN stack

OpenCVで顔のランドマークを検出する『Facemark API』

機械学習手法『Random Forest』

WordPress on Google App Engineを1週間運用してみて

書籍『OpenCV 3 プログラミングブック』を購入

このブログのデザインに飽きてきた

UnityでPoint Cloudを表示する方法

C#で使える遺伝的アルゴリズムライブラリ『GeneticSharp』

Unity ARKitプラグインサンプルのドキュメントを読む

Point Cloud Consortiumのセミナー「3D点群の未来」に行ってきたよ

画像認識による位置情報取得 - Semi-Direct Monocular Visual Odome...

UnityでShaderの入力パラメータとして行列を渡す

参考書

SSII2014 チュートリアル講演会の資料

モバイルバージョンを終了