何気なくOpencv環境構築

そもそもOpencvって何だ?

っていう疑問から始まった。最近なんとなく、Pythonを弄りだしている。 本当になんとなく、Python自体は、結構前から気になっていた言語で、一度本格的に勉強を始めた時期もあった。 なにせ、オライリーの「初めてのPython 第2版 2008年6月16日 初版第6刷発行を持っている。 しかも、久しぶりに本を読んだらちゃんと、付箋まではってある始末。

うーむ、使わないものは忘れるのも早い。あんな分厚い本を真面目に勉強したにもかかわらず、もったいない。 という状態なので、もうほとんど初心者状態。 にも関わらず、無謀にもPython熱が再燃してきて、地道に取り組もうとPythonを弄り始め、データ分析系の 環境構築を本を見ながら、取り組む事初っ端からつまづく。

なんたって、OS Xyosemitegccがインストールできない。なんで???

なんか調べたら、OS Xyosemiteではllvmgccに移行しつつありとかなんとかの記事を見つけて、 そもそも、LLVMって何?gccって何?となり、ググりまくってました。

もちろん、調べ方の基本は「LLVMとは」ですよね。何を今更的なことをわざわざ書いているかと言うと、 こんな初心者の悪戦苦闘ブログを見る人は、同じく初心者でしょう。で、結構初心者にとって辛いのは、 もうみんな当たり前でしょ?的なことってあんまり書いてくれないのですよね。

なんで、私は書く。そう誰が何と言おうと書く。 まぁ、それは置いといて、LLVMについて調べたら、

LLVMgcc

LLVMとはコンパイラ基盤の一つです。中間言語を介して、対象のアーキテクチャに最適なマシン語へ変換することができます。中間 言語を介して実行されるため、JavaVMのような仮想マシンと比較されることも多いようですが、厳密な意味で仮想マシンとは別物と いう認識で良いようです。 http://dev.classmethod.jp/references/llvm-clang-ios8-introduction/

と上記のページで言うてた。半分わかったような、わからんような。まぁ、英語からマシン語に変換するもののオープンソース的な何かなのかな?くらいでとりあえずスルー。ただし、この辺りの基盤系って、個人的にはすごい興味あるので、後で振り返って調べる。 ただし、今はスルー。

で、gccも調べる。結局わかったのは、gccも、LLVMコンパイル。というくらい。で、LLVM-gccとはなんぞや。というと、gccと少し互換をもたせたLLVMという感じでしょうか?親切な人がいたら是非教えてもらいたい。が、これもこの辺りでスルー。 なにせ、今の目的ではないから。ちなみに、gccより、LLVMのがコンパイル早いらしい。で、LLVM-gccはその中間くらい。gccGPLライセンスで商用利用的に怖いので、BSDライセンス似たOSIライセンスであるLLVMMACは移行をしているということなのかな。というくらい。

さて、Opencvからだいぶ離れてしまったが、gccのインストールを諦めて、他の方法で環境構築できないかを考える事に、、、 というか、調べる事に。 で、GUIで簡単に環境構築できるCanopyというものを発見。 Enthought Scientific Computing Solutionsここからダウンロードできる。で、こいつをインストール後に、Opnecv環境をターミナルのipython Notebookでいじれる環境を作るというブログを見つけ、進めるも、途中でエラー。たぶん、Freeライセンスだとダメなんだろう。くらいに思って、違う方法を検討する事にしたところで、ふと気がついた。そもそも、「Opencv」って何だ?って、、、 qiita.com

そこで、「Opencv」を調べ始めたところ、CVはComputer Visionの略っぽい。で、大雑把に平たく言うと、FreeライセンスのCVのライブラリ集という感じだろうか、細かい事は、こちらのブログに詳しく書いてあったので、読んでみてください。 【シリーズ】「python,OpenCVを用いたCVプログラミング」 第1回:背景と主旨説明 | DERiVE コンピュータビジョン ブログ & メルマガ

という事で、今流行りのDeep Learningなどもこういったライブラリ使って研究できちゃうのかな。という事で、触ってみたい! という意欲から、環境を構築する事にした。

で、なんやかんやで(今夜中の2時くらいになり、集中力がなくなってきたので、続きはまた今度詳しく書くとして) 以下のブログ見ながらセットアップした。Pynevで2系と3系が混在できるとか、また次の機会に書く。が、私でも とうとう、ipython notebookで いじれる環境ができたので、ちょっと満足。さ、Opencvで遊ぶぞー! qiita.com