画像認識について知りたいなら『画像認識』(著:原田達也先生)がお勧め!

画像認識について勉強したかったため、機械学習プロフェショナルシリーズの『画像認識』を読んでみました。300ページ近くありますので、他の機械学習プロフェショナルシリーズより、少し長めです。しかしその分、画像認識の様々な手法が網羅されている印象です。読み終わった後も、辞書的に置いておくような使い方もできそうですね。

読むのにかかった時間はだいたい20時間ぐらい。ただ、理解を深めるために合わせて読んだ他の本や記事、観た動画などの時間も含めるとさらに10時間ぐらいでしょうか。恐らく読者の事前知識によって大幅に変動しそうですが、画像について勉強したことのある人であれば、さらに速く読みこなせるかと思います。

私は画像について本格的に勉強するのは今回が初めてでしたので、他の画像本、ビジョン本との比較してどうなのか、という観点からはコメントできませんが、せっかくですので、内容とその感想をご紹介していきます。

本のリンクはこちら

第1章 画像認識の概要

内容は画像認識の概要から始まります。こちらは画像認識の歴史を概観し、「クラス認識」「物体認識」「インスタンス認識」など様々なタスクが紹介されていきます。中でも「クラス認識」の流れが詳細に解説されます。その流れとは、

  • 入力画像が与えられる
  • サンプリングと記述を行う
  • 統計的特徴抽出を行う
  • コーディング
  • プーリング
  • 分類器を学習する
  • クラスを予測する

となります。これらを一つ一つ、第2章から第5章まで学んでいきます。そしてこのパイプラインを多段に重ねて、最後に分類器を組み入れるEnd to Endなシステムを深い構造と呼び、その話を第6章で学びます。

第2章 局所特徴

画像認識のはじめの処理である局所特徴を学びます。画像の局所的な小領域に着目して、その内容を記述する必要があります。前半が「検出」で、後半が「記述」になりますが、それぞれについて様々な手法があります。フィルターとは何なのか、なぜ画像を微分するのか、という基本から学び、エッジ検出器、コーナ検出器、ブロブ検出器を見ていきます。記述子としてもSIFT、HOG、SURF、BRIEF、BRISK、GISTなどの代表的なものを見ていきます。

局所特徴を勉強すること自体が初めてでしたので、「セルに分けて勾配のヒストグラムを作って、…」のあたりで少し時間がかかりました。Youtubeに上がっているビジョン系の動画を合わせて勉強すると、ビジュアルでスッと頭に入ってきましたので、動画系を合わせることもお勧めです。著者の先生の公開スライドも理解の助けになりました。

第3章 統計的特徴抽出

「実際の画像には、なんらかの外乱やノイズが加わる」ため、「外乱などの影響を受けている画像から得られた局所特徴をそのまま利用」するわけにはいきません。そこで統計的な構造にもとづいて特徴を抽出する話を学びます。主成分分析、フィッシャー線形判別分析、正準相関分析、偏最小2乗法が出てきます。統計学機械学習で学習済みの方であれば、すぐに終わります。

第4章 コーディングとプーリング

「局所特徴を認識に有効な次元数のベクトルに変換する操作を、コーディング」と呼び、「画像領域内に存在する複数のコーディング後の特徴ベクトルを1本のベクトルにまとめる操作を、プーリング」と呼びます。学ぶ手法としては、

  • Bag of Visual Words
  • コードブック
  • GMMスーパーベクトル
  • フィッシャーベクトル
  • VLAD
  • 局所座標符号化
  • ランダムフーリエ盗聴
  • 空間ピラミッド

などです。他にも色々出てきます。

第5章 分類

主に教師あり分類の話です。

分類とは何か、ベイズ決定則、識別関数、最適化の話題から始まり、後半では各手法(パーセプトロン、Adaline、SVM、ロジスティック回帰、ソフトマックス回帰、局所学習、集団学習)が解説されます。最後に分類結果の評価指標(precisionやrecall、accuracy)、交差検証法が出てきます。

第6章 畳み込みニューラルネットワーク

パーセプトロンから始まり、多層ニューラルネットワークへと拡張していきます。この章で必ず理解しておきたいことは、逆伝播と畳込みのことろでしょう。私は同じくMLPシリーズの『深層学習』を読んで理解を深めました。手を動かすのが億劫になったら、Tesla AI DirectorのAndrej Karpathyのブログ記事などでモチベーションを上げたりしました。こちらのブログで紹介されているStanfordのCS231nの動画も、かなり直感的に逆伝播が解説されており、助かりました。

それ以外にディープを理解する上で必須の内容(活性化関数、最適化方法)も学びます。AlexNet、VGGNet、GoogLeNet、ResNetも解説あり。

第7章 物体検出

画像中から人や車などが写っている領域を特定し、そこを四角い領域で囲む物体検出について学びます。最もナイーブな種法であるスライディングウィンドウ法から始まり、様々なテクニック・手法を学んでいきます。後半ではCNNを利用した物体検出としてR-CNN(CVPR 2014)、Fast R-CNN(ICCV 2015)、Faster R-CNN(NIPS 2015)を学びます。このあたりの物体検出について理解することが今回この本を勉強した理由の一つでした。面白い!!

第8章 インスタンス認識と検索

データベース内の画像をすばやく探す画像検索問題。スペクトラルハッシング、K-meansハッシングなど色々と学びます。

第9章 さらなる話題

セマンティックセグメンテーション、画像からのキャプション生成、画像生成と敵対的生成ネットワーク(GAN)などが出てきます。これからも色んな話題が出てきそうですね。

終わりに

ということで、それぞれの章の内容を簡単にまとめてみました。著者の先生の公開スライドも役立ちました。こちらです: