画像認識ってどうやってんのよ
そもそも、顔の認識ってどうやってるのか。
そこはやっぱり機械学習
1. 多数の教師データから特徴量を抽出して学習 2. 判別させたい画像から、特徴量を抽出してそれを先の学習結果と照合 3. 判別結果を表示
といういつもの流れのようだ。
古い記事ではあるが、下記リンクの図がわかりやすかった。
第1回 画像認識の基本を知ろう:OpenCVで学ぶ画像認識|gihyo.jp … 技術評論社
ではやってみっか!とおもったがわからない単語が多すぎてつらい。
ちょっと調べてみることにした。
分類器について
これはどっかで聞いたけど改めて。
何かを分類する仕組みを分類器と呼んでいるっぽい。
画像の中で、顔と顔以外を分類するとかそういう類かな。
なので、分類器をつくることは学習と判別を行う仕組みを作ることのようだ。
カスケード分類器について
カスケード分類器とは幾つかの分類器を組み合わせて 一つの分類器を形成する類の分類器。 xgboostに似てるなぁという今のところの感想。 xgboostを理解してるわけじゃないんだけど。
OpenCVでつかえる特徴量について
公式ドキュメントによるとOpenCVでは、学習に関して opencv_haartrainingというのとopencv_traincascadeという学習方法が予め準備されているらしい。 Cascade Classifier Training — OpenCV 2.4.13.0 documentation
haartrainingというのは、Haar-Like特徴によって機械学習を行う方法。 traincascadeとうのは、Haar-Like特徴、LBP特徴どちらかを使って機械学習を行う方法のようだ。
次回予告
うーん。結局Haar-Like特徴ってなに?とか、わからない単語は続々と増えますなぁ。 Haar-LikeとLBPはやってることは同じで Haar-Likeのどっかの値をintegerにしたものがLBPで いささか速いよみたいなことがかいてた。
が
そもそもHaar-Likeをちゃんとわかってない。 次回はHaar-Likeについて書くつもりです。