【連載】

機械の目が見たセカイ -コンピュータビジョンがつくるミライ

13 コンピュータビジョン分野における機械学習(1) - 導入編

13/44

第6回から第10回までは、カメラによる3次元計測について解説してきました。今回からは、機械学習という技術についてご紹介します。

スマートフォンを含むデジタルカメラや、FacebookなどのWebサービスやアプリでは、写真から自動で顔を検出する機能が採用されています。この顔検出はどのように実現しているかご存知でしょうか? 機械学習(Machine Learning)という分野が深く関わっています。パターン認識(Pattern Recognition)と呼ばれることもあります。

機械学習は、教師あり学習(Supervised Learning)、教師無し学習(Unsupervised Learning)に大別できます。その中間の半教師あり学習(Semi-Supervised Learning)というのもあります。教師あり学習は、人間が正解値を与えた学習データを用いて学習し、その学習結果を用いて未知のデータを推定します。教師なし学習は、人間が正解値を与えない学習データを用いる手法です。「教師なし」よりも「教師あり」の方が、容易に優れた結果を出すことができます。本連載では、教師あり学習について、解説していこうと思います。

機械学習でできること

機械学習でできることは、大別すると2つあります。ひとつ目は、識別(Classification)です。識別は、たとえば、映っている画像が顔か、顔以外かを推定する手法です。2つ目は、回帰(regression)です。回帰は、たとえば、映っている人の年齢を推定することができます。顔識別、年齢推定を例に具体的に説明すると、下記の手順となります。

顔識別

  1. 学習データ:顔が写っている画像群と顔以外が写っている画像群を用意します。
  2. 学習:その学習用データから特徴量を抽出し、特徴量と出力値との関係を表すパラメータを求めます。
  3. テスト:学習で求めたパラメータと、未知のデータに写っている画像から抽出した特徴量を用いて、画像に映っているものが顔か顔以外かを推定します。

年齢推定

  1. 学習データ:20歳代の顔が写っている画像、30歳代の顔が写っている画像、……といった具合に年齢ごとの画像群を用意します。
  2. 学習:その学習用データから特徴量を抽出し、特徴量と出力値との関係を表すパラメータを求めます。
  3. テスト:学習で求めたパラメータと、未知のデータに写っている画像から抽出した特徴量を用いて、未知の顔画像の年齢を予測します。

知っておきたい手法

機械学習の有名な手法には、ニューラルネットワーク(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)の解析に関する研究を行っている。具体的には、頭部に装着したカメラで撮影した一人称視点映像を用いて、人と人のインタラクション時の非言語コミュニケーション(うなずき等)を観測し、機械学習の枠組みでカメラ装着者がどのような人物かを推定する技術の研究に取り組んでいる。また、大学院での研究の傍ら、フリーランスとしてコンピュータビジョン技術の研究開発に従事している。

専門:コンピュータビジョン、機械学習

13/44

インデックス

連載目次
第44回 ディープラーニングの基礎(3) - 回帰・2クラス分類・多クラス分類の出力層
第43回 ディープラーニングの基礎(2) - 活性化関数
第42回 ディープラーニングの基礎(1) - ニューラルネットワークとは
第41回 領域分割(4) – CNNによるSemantic Image Segmentation
第40回 ハードウェアの基礎知識(4) - GPGPU
第39回 ハードウェアの基礎知識(3) - レンズ
第38回 ハードウェアの基礎知識 (2) - 電子シャッター
第37回 コンピュータビジョン分野で活躍する企業・フリーランサー インタビュー(3)
第36回 領域分割(3) - CRFを用いたSemantic Image Segmentation
第35回 領域分割(2) - Mean Shift法を用いたImage Segmentation
第34回 領域分割(1) - 概要編
第33回 見えないものを観る(3) - 目に見えない光「赤外線」を観る
第32回 見えないものを観る(2) - 絵画の下書きを観る
第31回 見えないものを観る(1) - 映像から音を復元する
第30回 動く人・物を追跡する(4) - OpenCVのトラッキング手法(後編)
第29回 動く人・物を追跡する(3) - OpenCVのトラッキング手法(中編)
第28回 動く人・物を追跡する(2) - OpenCVのトラッキング手法(前編)
第27回 動く人・物を追跡する(1) - OpenCVによるトラッキング
第26回 インターネット上の画像群からTime-lapse映像を自動生成する手法の概要
第25回 一人称視点(3) - Social Saliency
第24回 一人称視点(2) - Social Interaction
第23回 一人称視点(1) - 概要
第22回 行動認識(3) - Two-stream ConvNets
第21回 行動認識(2) - 動きの特徴量(HOF、MBH)
第20回 行動認識(1) - Dense Trajectories
第19回 視線計測(3) - カメラのみを用いた視線計測
第18回 視線計測(2) - 近赤外の点光源を用いた視線計測
第17回 視線計測(1) - 導入編
第16回 コンピュータビジョン分野における機械学習(4) - Deep Learning
第15回 コンピュータビジョン分野における機械学習(3) - 識別器
第14回 コンピュータビジョン分野における機械学習(2) - 顔検出・人検出
第13回 コンピュータビジョン分野における機械学習(1) - 導入編
第12回 コンピュータビジョン分野の市場分析(1) - 自動車編
第11回 コンピュータビジョン分野で活躍する企業・フリーランサー インタビュー(2)
第10回 カメラを用いた3次元計測(4) - Structure from Motion
第9回 カメラを用いた3次元計測(3) - サブピクセル推定
第8回 カメラを用いた3次元計測(2) - ステレオカメラ
第7回 コンピュータビジョン分野で活躍する企業・フリーランサー インタビュー(1)
第6回 カメラを用いた3次元計測(1)
第5回 意外と知らないカメラキャリブレーション
第4回 ハードウェアの基礎知識
第3回 コンピュータビジョンの要素技術と応用範囲(後編)
第2回 コンピュータビジョンの要素技術と応用範囲(前編)
第1回 普及期に入ったコンピュータビジョン

もっと見る



人気記事

一覧

イチオシ記事

新着記事