画像認識の講義を受けてきた
2018/03/17
メモ
環境
Visual Studio 2015。 OpenCVのバージョンは2.1。
Haar Like 分類器
認識がとても速い。 これが登場したおかげで、顔認識が実用化したとのこと。
階調差を利用して物体を検知するアルゴリズムらしい。 講師の方が説明していたけど、なんでこれで上手く分類できるのかが不思議だ。
論文はこちら。全部英語。 paper.dvi
弱分類器、強分類器
画像認識を行っている様子の動画を見たのだが、そのときに顔っぽくないところを判断して、認識処理を省くような処理をやっている。 こういうふうに、顔ではないことを判別するのは弱分類器というらしい。 逆を強分類器というらしい。
認識中の動画。
顔のあたりで認識処理に時間をかけていることがわかる。
Webカメラ
講義ではWebカメラを使って、顔認識を試した。 Webカメラはローリングシャッターという、画素のラインごとに映像をPCに送信する方式が多いらしい。 場合によっては、不完全な画像が送られる。
ローリングシャッターとグローバルシャッターの違いは何ですか?|マイクロスコープとは?のお悩み解決!何でも辞典
Hough変換
廊下の画像から、廊下床面の直線を検出するプログラムを見せてもらった。 Hough変換を使っている。
平均重心距離法による鍵検出
講師の方が発明したアルゴリズムらしいです。 いくつかある鍵の画像から特定の鍵を見つける。 鏡像、反転してても検出できる。
論文を見つけた。
Macで講義のプログラムを動かす
OpenCVをインストール。Homebrewを使用する。
brew install opencv
以下のコマンドでコンパイル。
g++ `pkg-config --cflags --libs opencv` main.cpp -o main
pkg-config
でOpenCV関連のライブラリを指定している。
なんか顔じゃないところも顔だと認識しているみたいですが。。。