画像分類や物体検出の学習に必要なモデル一覧

画像分類、物体検出の学習に必要なモデル一覧

代表的なモデルを以下にまとめます。なお、本内容は「トランジスタ技術 2019年11月号 P30-31」を参考に僕の方で多少追記しています。

タス
モデル名概要
画像分類AlexNetトロント大学のGeoffry Hintonらのグループにより提案されたモデル。現在のDeep LearningによるAIブームのきっかけとなったモデル。2012年のILSVRCで1位になった。畳み込みニューラル・ネットワーク(CNN)を使うことで認識精度を大幅に改善することに成功。深層学習ブームの火付け役となった。AlexNetのモデル名は開発者のAlex Krizhevskyの名前に因んでいる。
VGG-16オックスフォード大学のVisual Geometry Group(VGG)が提案したCNNモデル。提案されたアーキテクチャにはいくつかのバリエーションがある。そのうち16層のものがVGG-16と呼ばれている。CNNの層を深くすることで認識性能の向上に成功。2014年のILSVRCで2位になった。シンプルな構成であるため転移学習やファインチューニングに向いている。
VGG-19上記モデルのCNN層が19層のモデル。層構成がシンプルであるため転移学習やファインチューニングに向いている。
Inception V32014年のILSVRCで1位を獲得したGoogLeNet(Inception V1)を改良したモデル。サイズの異なる複数の畳み込み層を並列に結合したInceptionモジュールという小さなネットワークを内部に持ち、このモジュールを重ねていくことでより大規模なニューラル・ネットワークを形成する。その一方で、随所に次元削減のための畳み込み層を挿入することで全体のパラメータ数が削減されるように工夫されている。
ResNet50Microsoftが開発したResNetを50層で構成したモデル。元のResNetは152層。人間の認識精度と同等以上の成績を収めて2015年のILSVRCで1位となった。CNNを深くすると畳み込みが繰り返される過程で特徴情報が欠落してしまい学習が困難になるという問題があった。そこで、畳み込み層をスキップして入力を直接出力に渡すネットワーク構造を導入することで克服した。
MobileNetモバイル端末やエッジデバイスのような計算パワーが限られているデバイス上でも使えるように計算負荷を軽くしたモデル。通常の畳み込み計算では空間方向と色のチャンネル(RGBで3チャンネル)方向の計算を同時に行うため計算負荷が大きい。しかし、このモデルでは空間方向の畳み込みとチャンネル方向の畳み込みを分離して別々に計算を行うことで計算量の削減を行い計算負荷を軽くした。
物体検出Faster R-CNNCNNを利用した物体検出の先駆けであるR-CNNを高速化したモデル。従来のR-CNNは候補領域の抽出・特徴量の計算・物体クラス分類をそれぞれ別個の処理として行っていたため高速な物体検出の処理が困難であった。このモデルではこれらの処理を1つの畳み込みCNNにまとめることで高速な物体検出の処理を実現している。
Mask R-CNNFaster R-CNNの改良モデル。通常の物体検出のように物体の位置を矩形領域ではなく物体の輪郭に沿った形で推定するセグメンテーションも同時に行うマルチタスク学習に分類される。輪郭に沿った形で物体を検出できるため人間の手や足の関節の位置を推定して骨格に相当する情報を抽出する姿勢推定への応用が可能。
YOLO V3YOLOとはYou Only Look Onceの略で「見るのは一度だけ」という意味。「人生は一度きり」という意味の英語のスラングであるYou Only Live Once(YOLO)をもじったものと言われている。従来の手法では候補領域の抽出の際に入力画像をスキャンしていたため入力画像を何度も見る必要があった。YOLOは入力画像をグリッドに分割してからそれぞれのグリッドに物体がふくまれている確率を推定する回帰問題として物体検出を定式化することにより、入力画像を1回だけ見れば物体検出ができるようになっている。これにより、Faster R-CNNと同様に1つの畳み込みCNNでモデルを構成することができるようになり高速な処理が可能となった。リアルタイムでの物体検出を実現している。
SSDSSDとはSingle Shot MultiBox Detector の略。2016年に提案されたモデル。画像に8732個のデフォルトボックスを敷き詰め、デフォルトボックスごとに位置推定とクラス分類を実行する。ボックスと物体の位置の差分を計算する方法により、ネットワーク処理がシンプルになり大幅に速度が向上。リアルタイムでの物体検出を実現している。

学習にはモデルが必要

学習とは、簡単に言うと大量の画像から物体の特徴を濃縮してまとめることです。これを学習済みモデルを作ると言います。

また、濃縮とは畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)により、大量の画像から一定の普遍性のある情報をだけを残し、それ以外を消していく作業のことです。

学習から推論までの流れ

ざっくり言うと、学習から推論(答え合わせ)までの流れは以下のようになります。

  1. 画像を用意(画像分類や物体検出したい物体が映っている写真など)
  2. 学習(タスクに応じたモデルを使って、学習済みモデルを作る)
  3. 推論(実際の物体を見せて学習済みモデルと答え合わせ)

推論とは?

画像分類や物体検出を行う行為を推論と言います。

ある物体をコンピュータに見せて「これなに?」と聞いたときに、答えを知っていれば正解を教えてくれます。この答えを知っているかどうかは、学習したかしていないかによります。

答えを知っている = 学習済みモデルがある(コンピュータが解答を持っている)ということです。