2014-10-21

コンピュータビジョンのススメ

大学卒業後にニートになってから半年コンピュータビジョン勉強したのでそれについて書いていきます

コンピュータビジョンと言っても主に学んだのは顔認識なのでその方面で書いていきます

コンピュータビジョンとは

Wikipediaによるとコンピュータビジョンとは次のとおりです。

コンピュータビジョンcomputer vision)は大雑把に言って、「ロボットの目」を作る研究分野である

主な分野にはAR拡張現実)やら顔認識やらがあります

認識の具体例としては、デジタルカメラ写真を撮るときに顔周辺に表示されるあの四角形などが挙げられます

OpenCV

OpenCVコンピュータビジョン向けのライブラリです。

このライブラリを使うことで画像ロードセーブ、処理などを簡単に行えます

OpenCVコンピュータビジョン勉強していく上で必須なので、まずは簡単に遊んで見ることをお勧めします。

特にやりたいことがない人は次の「画像処理」をOpenCVで書いてみると良いと思います

それからWindowsVisualStudioに導入するのは結構面倒なので、できればLinuxで使う方が良いでしょう。

画像処理

コンピュータビジョンではよくカラー画像グレースケール画像に変換したりします。

このような画像処理OpenCVで簡単に出来ますが、中でどう動いているかを知るのは大切です。

そういう勉強おすすめなのが「図解入門よくわかる最新 画像処理アルゴリズムの基本と仕組み」です。

図解入門なので画像処理についてわかりやすく書かれています

コンピュータビジョン

僕は顔認識を主に勉強しましたが、他にどういうことができるかを知るには「実践 コンピュータビジョン」がおすすめです。

この本では画像処理画像認識ARなどを学べます

ただ、この本は難しいのでまずは流し読み程度で、必要が出てきたら詳しく読むくらいが丁度いい感じがします。

具体的には1・2・3章で基礎を学んで、後は好きなところを読むというのがいいかと思います

ちなみに、この本ではpythonを使っているという事もあり僕は途中で挫折しました。(python使いでは無いので...)

機械学習

コンピュータビジョン機械学習は密接な関係があります

顔の検出にVJ法と呼ばれる方法がよく使われますが、それにはAdaBoostという機械学習アルゴリズムを使います

そのため機械学習について学んでおくことも重要です。

(と言ってもVJ法の中身を知らなくてもOpenCVでは簡単に実行できます。)

そこでお勧めなのは以下の2冊です。

集合知プログラミング

入門パターン認識機械学習

集合知プログラミング」では機械学習手法をより実践的に学んでいくので、サラっと読むだけで何ができるかが解ると思います

一方で「入門パターン認識機械学習」は理論的なことが書かれています。そのためこの本は必要が出てきたら、必要な箇所だけ読むというのがおすすめな読み方です。

それと藤吉先生のページお勧めです。

このサイトでは無料機械学習や物体認識資料を読むことができます

認識

具体的に顔認識をどうやって実装するのかを知るには「Mastering OpenCV With Practical Computer Vision Projects」の6章と8章がお勧めです。

この本には顔認識の他にARや物体認識などの実装方法についても書かれています

英語ですが読みやすいので、顔認識技術実装していくにはうってつけの本です。

論文

最新の技術を学ぶには論文が一番です。

僕の場合はいくつか読みましたが、顔の特徴点検出や顔認識では以下の論文お勧めです。

(僕はDeepFaceをちゃんと読んでいませんが有名なので挙げときます。)

One Millisecond Face Alignment with an Ensemble of Regression Trees

Fisher Vector Faces in the Wild

DeepFace: Closing the Gap to Human-Level Performance in Face Verification

具体的なサービス

最後ちょっと宣伝を。

上で挙げた本を読む前に、コンピュータビジョン技術を使うと実際にどんな感じのサービスが作れるのかを知っておくと本を読んでもより理解が深まると思います

そこで具体的なサービスとして僕が作ったものを挙げていきます

ユーザが少ないので使ってくださいお願いします。

人相診断

類似AV女優検索 雰囲気サーチ

「人相診断」はAndroid向けのアプリです。

このアプリでは「One Millisecond Face Alignment with an Ensemble of Regression Trees」の方法を使って顔の特徴点を検出します。

その特徴点から眉の角度などを判断して診断結果を表示します。

「類似AV女優検索 雰囲気サーチ」は好きなAV女優に顔や雰囲気が似ているAV女優ピックアップします。

このサービスでは「Fisher Vector Faces in the Wild」の方法を使って顔の類似度を計算しています

女優のページでは、その人と類似度が高い人3人を似てる人として挙げています

正直結果としては微妙な感じがあるので、似てなくもないような気がしなくもないなぁぐらいで見てください。

(実は同じ人の写真でも類似度が大きく変わるので、本当に似ている人を決定するのは難しいんです。)

ちなみにこのサービスは「完全に一致」や「おまいらの夢」、ぱろすけさんの影響を受けています

最後

こんな感じでコンピュータビジョン(顔認識)を勉強したい人は何を学んでいけばいいのかはわかったんじゃないかと思います

コンピュータビジョンはこれからより重要になっていく分野だと思うので、暇な人は勉強しておくのもいいんじゃないかと思います

トラックバック - http://anond.hatelabo.jp/20141021204631

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん