メモ

環境

Visual Studio 2015。 OpenCVのバージョンは2.1。

Haar Like 分類器

認識がとても速い。 これが登場したおかげで、顔認識が実用化したとのこと。

階調差を利用して物体を検知するアルゴリズムらしい。 講師の方が説明していたけど、なんでこれで上手く分類できるのかが不思議だ。

論文はこちら。全部英語。 paper.dvi

弱分類器、強分類器

画像認識を行っている様子の動画を見たのだが、そのときに顔っぽくないところを判断して、認識処理を省くような処理をやっている。 こういうふうに、顔ではないことを判別するのは弱分類器というらしい。 逆を強分類器というらしい。

認識中の動画。

OpenCV Face Detection: Visualized from Adam Harvey on Vimeo.

顔のあたりで認識処理に時間をかけていることがわかる。

Webカメラ

講義ではWebカメラを使って、顔認識を試した。 Webカメラはローリングシャッターという、画素のラインごとに映像をPCに送信する方式が多いらしい。 場合によっては、不完全な画像が送られる。

ローリングシャッターとグローバルシャッターの違いは何ですか?|マイクロスコープとは?のお悩み解決!何でも辞典

Hough変換

廊下の画像から、廊下床面の直線を検出するプログラムを見せてもらった。 Hough変換を使っている。

ハフ変換 - Wikipedia

平均重心距離法による鍵検出

講師の方が発明したアルゴリズムらしいです。 いくつかある鍵の画像から特定の鍵を見つける。 鏡像、反転してても検出できる。

論文を見つけた。

contentscinii.pdf

Macで講義のプログラムを動かす

OpenCVをインストール。Homebrewを使用する。

brew install opencv

以下のコマンドでコンパイル。

g++ `pkg-config --cflags --libs opencv` main.cpp -o main

pkg-configでOpenCV関連のライブラリを指定している。

なんか顔じゃないところも顔だと認識しているみたいですが。。。