2011年12月17日土曜日

OpenCVのVersionに関するアレコレ・・・

OpenCVはどのバージョンを使ったら良いの?

そんな疑問が浮かんだので調べてみました。
画像工学で散々ネタにされてるLenaさん画像
現在(2011/12/17)で公開されているOpenCVは
  • 1.0
  • 1.1pre
  • 2.0
  • 2.1
  • 2.2
  • 2.3
  • 2.3.1
となっています。普通なら、最新版もしくは安定版を使えばいいじゃない!って思うかもしれませんが、そう一筋縄でいかないのが悩みどころ。

まず、1.0や1.1preに関しては書籍や教本等の情報が多いので勉強しやすくサンプルも多いので利用しやすいです。次に2.1は、2.2はインストーラがあり、コンパイル済みのライブラリファイルとPathの設定等が自動で行われ非常に手軽で、2.3.1はx86、x64、2008、2010どれにも対応できるようにlibがmake済みの物(path)があったりといろいろです。

新しいバージョンは、ライブラリとしては向上しており、最適化されているので、”ライブラリとしては”使いやすくなっています。また2.3.1ではAndroid向けのOpenCVもあり、今後利用機会が増えるスマートフォン向けのアプリの利用に役に立ちそうです。しかし、バージョンが上がると互換性が無い場合が増えます。

古い =機能は少ないがサンプルやドキュメントが纏まっている
新しい=機能は多く、ライブラリとして最適化されているがサンプルやドキュメントが少ない
ということです


それぞれのバージョンについて調べたことをまとめると。
・ 1.0
OpenCVの正式版の初期
書籍として纏まっている物が非常に多く、オライリーの「詳解OpenCV」やOpenCVの教本でベストセラーの奈良先端技術大学の「OpenCVプログラミングブック(第一版)」などサンプルやドキュメント等の面で非常に使いやすい。

・ 1.1pre
OpenCVのベストセラー教本である「OpenCVプログラミングブック(第二版)」が非常にわかりやすく丁寧に解説しておりサンプルも多くドキュメントも豊富なので非常に勉強しやすい。
1.0との互換性は高いと思われる。自分は大学の講義で、この教本を利用してOpenCVを学んだ。OpenCVを扱った本を何冊か読んだが、本で学ぶ場合は、この本が一番わかりやすいと思う。

・ 2.1
OpenCV2.0の安定版C++/Pythonインターフェース有り。リリースしてから日が浅いため、これを扱った書籍はまだ見たことがない。1.x程ではないが、サンプルやドキュメントも多く、旧版との互換性もそこそこなので、1.xのサンプルを多少手直しすれば2.1で動くらしい。また、Visual Studioも2010が不評で2008を使うユーザーが多いせいか2.1と併せて使っている人が多いようにみられる。Windows x86でVisual Studio 2008用のインストーラがあり、コンパイル済みのライブラリが自動でインストールされるので構築もそこそこ楽(安定版なのでライブラリ自体のコンパイルは楽なのでここはそこまで問題じゃないが)。

・ 2.2
2.1→2.2でライブラリが再構成され、旧版との互換性が壊滅的。ドキュメントの数はそこそこあるが、サンプルは互換性の問題で減っている。蛇足だが2.1と同じように Visual Studio 2010向けのインストーラが付いており、最新のVisualStudioで手っ取り早く使いたい人にはありか。リファレンスやドキュメント等は日本語化されているのでサンプルなしで日本語化されたリファレンスさえあればいい!という人は大丈夫?

・ 2.3.1
時代の最先端。安定版を探すだけで苦労するかもしれないが、Windowsには安定版のコンパイル済みライブラリファイルがあるので楽。ドキュメントは殆ど日本語化されておらず日本語で解説されているサンプルも少ない。公式WIKI(英語)に毎日通う日々が始まる。ライブラリとして、最適化されているが互換性は極力保たれているらしい。またAndroidにも対応しているので、スマートフォンへの移植等が多少楽になると思われるが、AndrodとPCは別物だと思った方が良い。



  • 体系的にまとめられた書籍や豊富なサンプルが魅力なのは1.0や1.1pre
  • 2.xを使いたいけど安定性があり、1.x系のサンプルも使いたい人は2.1
  • 新しい方がいいけど安定版が使いたい人は2.2
  • 常に時代の最前線を走りたい人は2.3.1
軽くサンプル実行したりした程度なので本格的に使ったことのある人がいたら助言が欲しいですね・・・

0 件のコメント:

コメントを投稿