OpenCV
以前のエントリーで、OpenCVに実装されているオブジェクト検出(cvHaarDetectObjects)の学習には独自に実装したAdaBoostが使われていて、OpenCVに実装されているCvBoostは使っていないという話を書いたけど、どうもOpenCV 2.0からMachine Learning Library…
OpenCV pre1.1を以下の手順でビルドし直す。環境: OS: Windows XP IDE: Microsoft Visual C++ 2008 Express Edition 1. OpenCVフォルダ下の"_umake\opencv.vs2005.no_openmp.sln"を開く。(Express EditionではOpenMPは使用できなかったはず) 2. プロジェク…
OpenCVにはラベリングプログラムが実装されていないので、cvBlobsLibというラベリングを扱うプログラムをインストールしてみた。以下、手順: cvBlobsLibのページにアクセスする。 ここでLatest releaseをダウンロードする。僕はver8.3(Windows版)を使用。…
http://opencv.willowgarage.com/wiki/OpenCV200906個人的に注目しているのは、新しい2D特徴点検出オペレータとHunman Detector。 特徴点オペレータは今までのSURF以外にStar DetectorやらDAISYやら聞いたことのないオペレータが並んでる。っていうかこの中…
8月28日(金)に「OpenCVで学ぶ画像認識技術入門」というタイトルでセミナー講師をすることになりました。詳細はこちら http://www.catnet.ne.jp/triceps/sem/090828a.htm受講料高いなあ・・・。 内容は、技術評論社の連載をベースに実習形式で行う予定で…
OpenCVの機械学習クラス(CvStatModelを継承した、CvSVMやCvDTree、CvBoostなど)は、学習時(train()関数)において、入力データのうちどれを実際に学習に使うかを指定することができる。例えば二分木であれば bool CvDTree::train(const CvMat* _train_data,…
前回の続き。本論に入る前に、ここで解説したAdaBoostのアルゴリズムをもうちょい補足しておきます。 学習データを用意し、それぞれのデータの重みを均等にしておく。 学習データを識別器へ入力し、エラー率を求める。ただし、エラー率には学習データの重み…
OpenCVには、「cvHaarDetectObjects」っていうオブジェクト検出の関数が用意されてます。これを使うと簡単に顔検出を実装できたりします。また、学習をさせることでオリジナルの検出装置を作れたりします。詳しくは http://gihyo.jp/dev/feature/01/opencv …
OpenCVの機械学習クラス、例えばCvSVM、CvBoost、CvDTreeなどなどのtrain()関数にはvar_idxなる引数があるけど、これの使い方が、その親クラスであるCvStatModelの説明http://www.opencv.jp/opencv-1.0.0/document/opencvref_ml_introduction.html#decl_CvSt…
OpenCVのMachine Learning関係はマニュアル見てもネットで探しても貧弱な情報しかないので、とりあえず自分が発見したことをさらしていく。CvDTreeクラスは二分木を作ってくれるクラスで、CART(Classification and Regression Trees)モデルと言われている…
表題の通り。例えば以下のようなコードを書いたとする。 - 例1: CvStatModel *hoge = new CvStatModel(); delete hoge;例2: CvStatModel *hoge = new CvStatModel[10]; delete[] hoge; - と非常に簡単なコードで間違いようがないわけですが、なぜかdeleteの…
どうもViola & Johnsで使っているAdaBoostとOpenCVのCvBoostクラスは若干使われ方が違うっぽい。VJでは1特徴が1弱識別器だけど、CvBoostでは全ての特徴を元に弱識別器が構成されているみたい。(CvBoostTreeという決定木) あとVJでは、1サイクル毎に全ての弱…
"apps/HaarTraining/src/cvboost.cpp"ってのがOpenCVのパッケージの中にあって、ここでObject Detection用に独自のAdaBoostを実装しているっぽい。 つまり、OpenCVで準備されているCvBoostクラスは使っていない模様。 ソースの中見てみたら、Discrete AdaBoo…