第6回から第10回までは、カメラによる3次元計測について解説してきました。今回からは、機械学習という技術についてご紹介します。
スマートフォンを含むデジタルカメラや、FacebookなどのWebサービスやアプリでは、写真から自動で顔を検出する機能が採用されています。この顔検出はどのように実現しているかご存知でしょうか? 機械学習(Machine Learning)という分野が深く関わっています。パターン認識(Pattern Recognition)と呼ばれることもあります。
機械学習は、教師あり学習(Supervised Learning)、教師無し学習(Unsupervised Learning)に大別できます。その中間の半教師あり学習(Semi-Supervised Learning)というのもあります。教師あり学習は、人間が正解値を与えた学習データを用いて学習し、その学習結果を用いて未知のデータを推定します。教師なし学習は、人間が正解値を与えない学習データを用いる手法です。「教師なし」よりも「教師あり」の方が、容易に優れた結果を出すことができます。本連載では、教師あり学習について、解説していこうと思います。
機械学習でできること
機械学習でできることは、大別すると2つあります。ひとつ目は、識別(Classification)です。識別は、たとえば、映っている画像が顔か、顔以外かを推定する手法です。2つ目は、回帰(regression)です。回帰は、たとえば、映っている人の年齢を推定することができます。顔識別、年齢推定を例に具体的に説明すると、下記の手順となります。
顔識別
- 学習データ:顔が写っている画像群と顔以外が写っている画像群を用意します。
- 学習:その学習用データから特徴量を抽出し、特徴量と出力値との関係を表すパラメータを求めます。
- テスト:学習で求めたパラメータと、未知のデータに写っている画像から抽出した特徴量を用いて、画像に映っているものが顔か顔以外かを推定します。
年齢推定
- 学習データ:20歳代の顔が写っている画像、30歳代の顔が写っている画像、……といった具合に年齢ごとの画像群を用意します。
- 学習:その学習用データから特徴量を抽出し、特徴量と出力値との関係を表すパラメータを求めます。
- テスト:学習で求めたパラメータと、未知のデータに写っている画像から抽出した特徴量を用いて、未知の顔画像の年齢を予測します。
知っておきたい手法
機械学習の有名な手法には、ニューラルネットワーク(Neural Network)、ランダムフォレト(Random Forest, Randomized Trees)、サポートベクターマシーン(SVM: Support Vector Machine)、AdaBoostなどがあります。
最近流行りの、ディープラーニングは、ニューラルネットワークの層を深くしたモデルです。コンピュータビジョンでは、CNN(Convolutional Neural Network)が良く用いられます。
性能の評価指標
機械学習を用いた技術を開発すると、その性能を評価したくなるはずです。評価指標としては、顔として予測した結果のうち何割が正解だったかを表す適合率(Precision)、実際に顔であるものを何割顔として予測できたかを表す再現率(Recall)、そして適合率と再現率から求まるF値(F-measure)が良く用いられます。
正解が1(顔) | 正解が-1(顔でない) | |
---|---|---|
予測が1(顔) | True Positive (Tp) | False Positive (Fp) |
予測が-1(顔でない) | False Negative(Fn) | True Negative (Tn) |
数式は下記のとおりです。
Precision = Tp/(Tp+Fp)
Recall = Tp/(Tp+Fn)
F-measure = 2Recall*Precision/(Recall + Precision)
また、学習機のパラメータを変えながら、縦軸と横軸にそれぞれTp/(Tp+Fp)、Fp/(Fp+Tn)をプロットしたROC曲線、そのROC曲線の性能を要約したAUC(Area Under the Curve)も良く用いられますので知っておくと良いでしょう。
OpenCVなど、さまざまなライブラリに機械学習が実装されています。機械学習の理論を完全に理解していなくても、顔識別や年齢推定を実装することは難しくありません。興味のある方は、是非トライしてみてください。
著者プロフィール
樋口未来(ひぐち・みらい)
日立製作所 日立研究所に入社後、自動車向けステレオカメラ、監視カメラの研究開発に従事。2011年から1年間、米国カーネギーメロン大学にて客員研究員としてカメラキャリブレーション技術の研究に携わる。
現在は、日立製作所を退職し、東京大学大学院博士課程に在学中。一人称視点映像(First-person vision, Egocentric vision)の解析に関する研究を行っている。具体的には、頭部に装着したカメラで撮影した一人称視点映像を用いて、人と人のインタラクション時の非言語コミュニケーション(うなずき等)を観測し、機械学習の枠組みでカメラ装着者がどのような人物かを推定する技術の研究に取り組んでいる。また、大学院での研究の傍ら、フリーランスとしてコンピュータビジョン技術の研究開発に従事している。
専門:コンピュータビジョン、機械学習