SEARCH
MENU

深層学習による画像認識


初出:日本ロボット学会誌,2017 年 35 巻 3 号 p. 180-185

本ページでは,これまでに日本ロボット学会誌に掲載された解説記事の中から注目度の高い記事をHTML形式で紹介しています.HTMLへの変換時に著者紹介,キーワードなど一部の情報は省略しています.また,レイアウトはオリジナル記事とは異なります.

PDF形式のオリジナル記事はこちらでご覧になれます.引用する際は,本Webページではなくオリジナル記事を引用してください.


【解説】

深層学習による画像認識

藤吉弘亘,山下隆義

 

はじめに

  1990 年代後半に入ると汎用コンピュータの進化に伴い, 大量のデータを高速に処理できるようになったことから, 画像から画像局所特徴量と呼ばれる特徴量ベクトルを抽出し, 機械学習手法を用いて画像認識を実現する手法が主流となった. 機械学習は, クラスラベルを付与した大量の学習サンプルを必要とするが, ルールベースの手法のように研究者がいくつかのルールを設計する必要がないため, 汎用性の高い画像認識を実現できる. 2000年代になると, 画像局所特徴量としてScale-Invariant Feature TransformSIFT)やHistogram of Oriented GradientsHOG)のように研究者の知見に基づいて設計した特徴量が盛んに研究されていた. このように設計された特徴量はhandcrafted featureと呼ばれる. そして, 2010年代では学習により特徴抽出過程を自動獲得する深層学習(Deep learning)が脚光を浴びている. handcrafted featureは, 研究者の知見に基づいて設計したアルゴリズムにより特徴量を抽出・表現していたため最適であるとは限らない. 深層学習は, 認識に有効な特徴量の抽出処理を自動化することができる新しいアプローチである. 深層学習による画像認識は, 一般物体認識のコンテストで圧倒的な成績を収めており, 様々な分野での利用が進んでいる. 本解説では, 画像認識分野で深層学習がどのように適用され, どのように解かれているのか, また深層学習の最新動向について解説する.

 

画像認識における問題設定

  一般物体認識は制約のない実世界シーンの画像に対して, 計算機がその中に含まれる物体を一般的な名称で認識することである[1] 従来の機械学習(ここでは深層学習が注目される前の手法と定義する)では,  1に示すように入力画像から直接一般物体認識を解くことは難しいため, この問題を画像照合・画像分類・物体検出・シーン理解・特定物体認識の各タスクに細分化して解いてきた. 以下では各タスクの定義と各タスクに対するアプローチを紹介する.

 

 

 

Figure  1: 一般物体認識の細分化

 

 

2.1  画像照合

  画像照合は, 画像中の物体に対して, 登録パターンと同一であるか否かを照合する問題である. 照合は登録パターンの特徴ベクトルと入力パターンの特徴ベクトルの距離計算を行い, 距離値が小さければ同一, そうでなければ否と判定する. 指紋照合, 顔照合, 人物照合では, 本人と他人を判定するタスクとなる. 深層学習では, 同一人物のペア画像間の距離値が小さく, 他人の画像との距離値が大きくなるようなロス関数(Triplet loss function)を設計し, ネットワークを構築することで人物照合問題を解いている[2]

 

2.2  物体検出

  物体検出は, あるカテゴリの物体が, 画像中のどこにあるかを求める問題である. 実用化された顔検出や歩行者検出はこのタスクに含まれる. 顔検出はHaar-like特徴量[3]AdaBoost 歩行者検出はHOG特徴量[4]Support Vector MachineSVM)の組み合わせが広く利用されている. 従来の機械学習では, あるカテゴリに対応した2クラス識別器を学習し, 画像内をラスタスキャンすることで物体検出を実現している. 深層学習による物体検出では, 複数のカテゴリを対象とするマルチクラスの物体検出を一つのネットワークで実現することができる.

 

2.3  画像分類

  画像分類は, 画像中の物体があらかじめ定義したカテゴリの中で, どのカテゴリに属するかを求める問題である. 従来の機械学習では, 画像局所特徴量をベクトル量子化し, 画像全体の特徴をヒストグラムで表現するBag-of-FeaturesBoF[5]というアプローチが用いられてきた. その後, 画像分類における特徴表現には, 特徴ベクトルがもつ情報をより豊かに表現するフィッシャーベクトル[6]や, 特徴量を表現するためのメモリ使用量の削減を目的としたVector of Locally Aggregated DescriptorsVLAD[7]が提案された. 一方, 深層学習は画像分類タスクと相性が良く, 2015年には1,000クラスの画像分類タスクにおいて, 人間の認識性能を超える精度を実現したことで話題となった.

 

2.4  シーン理解(セマンティックセグメンテーション)

  シーン理解は画像内のシーン構造を理解する問題である. 中でも画像中の画素単位で物体カテゴリを求めるセマンティックセグメンテーションは, 従来の機械学習では解くことが難しいとされてきた. そのため, コンピュータビジョンの最終問題の一つとして捉えられてきたが, 深層学習の適用により解決できる問題であることが示され始めている.

 

2.5  特定物体認識

  特定物体認識は, 固有名詞を持つ物体に属性を付与することで, 特定の物体カテゴリを求める問題であり, 一般物体認識問題のサブタスクと定義されている. 特定物体認識は, 画像からSIFT[8]等で特徴点を検出し, 登録パターンの特徴点との距離計算と投票処理により実現されている. ここでは機械学習が直接利用されていないことから, 深層学習の適用がされていなかったが, 2016年に提案されたLearned Invariant Feature TransformLIFT[9]は, SIFTの各処理過程を深層学習で置き換えるように学習し, 性能向上を実現している.

以降では, 画像分類, 物体検出, シーン理解(セマンティックセグメンテーション)のタスクに焦点を当て, 深層学習の適用とその動向について述べる.

 

画像分類

  大規模画像認識のコンペティションILSVRCImageNet Large Scale Visual Recognition Challenge)における1,000クラス画像分類問題(120万枚の画像から1,000クラスのカテゴリ識別を行うclassificationタスク)では, 2012年以降に深層学習によるアプローチが上位となった. このような大規模画像認識で圧倒的な成績を収めた深層学習手法がConvolutional Neural NetworkCNN[10]である. ILSVRC2012で優勝したトロント大学が構築したCNNであるAlexNet[11]は,  2に示すように畳み込みは5層, 全結合は3層で, 最終層は1,000カテゴリに対応したユニット1,000個の構成となっている.  31,000クラスの物体画像を大量に学習した際のAlexNet1層めの畳み込みフィルタを可視化した画像である. 方向成分を持つエッジやテクスチャ, カラー情報を抽出する様々なフィルタを学習により自動的に獲得していることが分かる.

2014年に提案されたVGG[12]19層, GoogLeNet[13]22層と畳み込み層を多段にして深くすることで分類性能の向上が図られた. 層がさらに深くなると, 途中で勾配が0となり逆伝播ができなくなる勾配消失問題が発生する. 2015年に発表されたResNet[14]はバイパスを通して逆伝播させるルートを作り, 152層の超深層な構造を実現した. これにより, ResNetのエラー率は3.56%まで改善した. 同様のタスクを人間が行った場合, そのエラー率は5.1%であり, 深層学習のアプローチは人間の能力と同等以上の認識性能を獲得したことで, 大きな話題となった.  4AlexNetによる画像分類の結果を示す.

 

 

 

 

Figure  2: AlexNetの構造

 

 

 

 

 

Figure  3: AlexNetにおける重みフィルタの可視化例(文献[11]より引用)

 

 

 

 

 

Figure  4: AlexNetによる画像分類結果(文献[11]より引用)

 

 

物体検出

  従来の物体検出は, 識別器をラスタスキャンするアプローチであったが, 深層学習では物体候補領域を別手法で抽出し, CNNで物体の多クラス分類を行うRegion Proposalによるアプローチが多い. これにより, CNNが得意とする分類問題として扱うことができる. Regions with Convolutional Neural NetworkR-CNN[15]は, Selective search[16]で検出した物体候補領域をAlexNet(またはVGGNet)に入力して物体検出する手法である. Selective searchは, 様々なしきい値で色やテクスチャが類似する領域を繰り返しグルーピングしていくことで物体候補を大まかにセグメンテーションし, 物体候補領域を検出する. CNNを用いた物体検出を実現し, かつマルチクラスの検出ができるようになった点は画期的であるが, Selective searchは物体候補領域を求める際に繰り返し領域の統合を行うため, 非常に計算コストが高い.

 

 

 

 

Figure  5: Faster R-CNNの構造

 

Faster R-CNN[17]は,  5のようにRegion Proposal NetworkRPN)を導入し, 物体候補領域の検出とその領域の物体クラスの認識を同時に行う. 初めに, 入力画像全体に対して畳み込み処理を行い, 特徴マップを得る. RPNでは, 得られた特徴マップに対して検出ウィンドウをラスタスキャンして物体を検出する. ラスタスキャンする際に, RPNではアンカーという検出方法を導入している. アンカーは,  6のように注目領域を中心に個の決められた形状の検出ウィンドウを当てはめてラスタスキャンする方法である. アンカーにより指定した領域をRPN に入力し, 物体らしさのスコアと入力画像上の検出座標を出力する. また, アンカーで指定した領域は別の全結合ネットワークにも入力され, RPNで物体と判定された際に物体認識を行う. これらのRegion Proposal手法により, アスペクト比の異なる多クラスの物体検出が可能となった.

 

 

 

 

Figure  6: アンカーによる走査(文献[17]より引用)

 

2016年には新たなマルチクラスの物体検出アプローチとして, Single Shotの手法が注目されている. これは, 画像中をラスタスキャンせず, 画像全体をCNNに与えるだけで, 複数の物体を検出する手法である. その代表的な手法であるYOLOYou Only Look Once[18]は,  7に示すように  のグリッドで分割した局所領域ごとに物体矩形と物体カテゴリを出力する手法である. まず, 入力画像を畳み込みおよびプーリング処理を通して特徴マップを生成する. 得られた特徴マップ(7  7  1,024)の各チャンネルの位置(, )が入力画像のグリッド(, )に対応した領域特徴となる構造であり, この特徴マップを全結合層に入力する. 全結合層を通して得られた出力値は各グリッド位置における物体カテゴリのスコア(20カテゴリ)と二つの物体矩形の位置, 大きさ, 信頼度となる. そのため, 出力層のユニットはカテゴリ数(20カテゴリ)に二つの物体矩形の位置, 大きさ, 信頼度(,信頼度) 2)を加算し, グリッド数(7  7)を乗算した数となる.

 

 

 

 

Figure  7: YOLOの構造

 

 

 

 

 

Figure  8: SSDの構造(文献[19]より引用)

 

 

 

 

 

Figure  9: SSDによる物体検出結果(文献[19]より引用)

  

YOLOは, 大まかに定義したグリッドに沿って物体検出をしているため, 物体のスケールの変化に弱い. Single Shot Multi-Box DetectorSSD[19]は,  8のように各畳み込み層から物体矩形と物体カテゴリのスコアを出力させることで, スケール変化に頑健な物体検出を実現している. SSDでは, 入力層に近い層でスケールの小さな物体の矩形を検出し, 出力層に近い層ではスケールの大きい物体の矩形を検出している. 入力層に近い特徴マップほど, プーリングによる特徴マップの縮小の影響を受けにくい. SSDは, 特徴マップの位置ごとに物体矩形と物体カテゴリを出力していく. よって, 別のネットワークを介して物体カテゴリを推定する必要がないため, 高速に物体検出をすることができる.  9SSDによる物体検出の結果を示す.

 

セマンティックセグメンテーション

  コンピュータビジョン分野において, セマンティックセグメンテーションは難易度の高いタスクであり, 長年研究されてきた. そして, 高精度なセマンティックセグメンテーションを実現するには時間がかかると考えられていた. しかしながら, 他のタスクと同様に, 深層学習よる手法が提案され, 従来手法を上回る性能を達成している. CNNが注目された2012年に, 3層構造のCNNにより得られた特徴マップとスーパーピクセル手法を組み合わせた手法が提案された[20] この手法では, 複数のネットワークと別の手法との統合が必要であり, 複雑な処理を必要とする.

Fully Convolutional NetworkFCN[21]CNNのみを用いてend-to-endで学習およびラベリングが可能な手法である. FCNの構造を 10に示す. FCNは, 全結合層を有しないネットワーク構造となっている. 入力画像に対して, 畳み込み層およびプーリング層を繰り返し行うことで, 生成される特徴マップのサイズは小さくなる. 元の画像と同じサイズにするために, 特徴マップを最終層で32倍に拡大処理し, 畳み込み処理を行う. これをデコンボリューションと呼ぶ. 最終層は, ラベンリングしたい各クラスの確率マップを出力する. 確率マップは各画素におけるクラスの存在確率となるように学習している. このように特徴マップの拡大を行うと, 粗いセグメンテーション結果となる. そこで, 中間層の特徴マップを統合して用いることで高精度化を図っている. 一般的にCNNの中間層の特徴マップは入力層に近いほど詳細な情報を捉えている. プーリング処理によりこれらの情報が統合され, 細かな情報が欠落している. 物体認識においては, これらの詳細な情報は不要であるが, セメンティクセグメンテーションのタスクでは重要な情報である. そこで, FCNは, ネットワークの途中の特徴マップを最終層で統合する処理を行う. FCNはこの統合に用いる特徴マップのサイズによりFCN-32s FCN-16sFCN-8sとある. FCN-8sでは, 3回めにプーリングした特徴マップと, 4回めにプーリングした特徴マップを最終層の入力に加える. このとき, すべての特徴マップのサイズを3回めにプーリングした特徴マップに合わせるために, 4回めにプーリングした特徴マップを2倍拡大し, 最終層手前の特徴マップを4倍拡大する. これらの特徴マップをチャネル方向に連結しでコンボリューション処理を行い, 元画像と同じサイズのセグメンテーション結果を出力する.

 

 

 

 

Figure  10: Fully Convolutional NetworkFCN)の構造

 

FCNは中間層の特徴マップを記憶しておく必要があり, メモリ使用量が大きい. SegNet[22, 23]は, 中間層の特徴マップを記憶する必要がないエンコーダ・デコーダ構成をしている.  11 (a)のようにSegNetのエンコーダ側では畳み込み処理とプーリング処理を繰り返し行う. 一方, デコーダ側では, エンコーダ側で生成された特徴マップをデコンボリューション処理で拡大し, 元の画像サイズのセグメンテーション結果を出力する. これらの処理において, 11 (b)のようにエンコーダ側のプーリングは選択された位置を記憶しておき, デコーダ側で特徴マップ拡大する際に対応する位置にのみ値を挿入する. これにより, 中間層の特徴マップを利用せずに, 詳細な情報を復元することができる.

 

 

 

 

Figure  11: SegNetの構造

 

PSPNet[24]は, エンコーダ側で得られた特徴マップを拡大する際に, 複数のスケールで拡大するPyramid Pooling Moduleによりスケールの異なる情報を捉えることができる. Pyramid Pooling Moduleは,  12のようにエンコーダ側で元画像に対して縦および横のサイズがそれぞれ1/8に縮小された特徴マップを1  1 2  2 3  3 6  6でプーリングする. そして, それぞれの特徴マップに対して畳み込み処理を行う. その後, 特徴マップを同一サイズに拡大して連結後, 畳み込み処理を行い, 各クラスの確率マップを出力する. PSPNetは, 2016年に開催されたILSVRCScene Parsing部門で優勝した手法である. また, 車載カメラで撮影されたCityscapes Dataset[25]でも高い精度を達成している.

 

 

 

Figure  12: PSPNetの構造(文献[24]より引用)

 

CNNをベースとした手法は, 高い精度が得られる一方, ある物体の一部に異なるクラスが混入するような誤ラベリングが起こることがある. 特に, このような現象は物体のサイズが大きい場合に起こりやすい. CRFasRNN[26]は, CNNで得られた各クラスの確率マップを入力として, 条件付きランダム確率場(Conditional Random FieldCRF)により全体の整合性がとれるように確率マップのチューニングを行う. この手法は, CRFをリカレントニューラルネットワークのように扱い, 更新した確率マップを繰り返し入力して徐々に更新するチューニング方法となっている. この手法は,後処理として行うのではなく, CNNの学習に組み込み, end-to-endで学習することができる. また, 確率マップを出力するCNNの構造に依存しないため, 様々な手法に導入することが可能である.

セマンティックセグメンテーションは画像の各画素に対してラベリングすることが可能であるが, 重なっている物体を区別することはできない. 歩行者や自動車などを個別にラベリングするインスタンスセグメンテーションとして, 物体検出とセグメンテーションを統合した手法がある[27] この手法では,  13のようにFaster R-CNNのように物体候補領域を検出し, その候補領域ごとに物体のマスク画像を生成する. そして, マスク領域内の物体クラスをラベルとしてセグメンテーションを行う. これら一連の処理をend-to-endで行うことで, 検出とセグメンテーションを同時に行うことを可能としている.  14SegNetによるセマンティックセグメンテーションの結果を示す.

 

 

 

Figure  13: インスタンスセグメンテーションの構造(文献[27]より引用)

 

 

 

 

 

Figure  14: SegNetによるセマンティックセグメンテーション例(文献[23]より引用)

 

 

まとめ

  本稿では, 画像認識のタスクにおいてどのように深層学習が適用されているかを解説した. タスクによってにネットワークモデルや適用方法は異なるが, 深層学習で解ける問題は, 大量のデータと正確な教師ラベルから写像関数を求めることである. 今後は, 少量のデータからの学習や, 少量の教師ラベル付きデータと大量のラベルなしデータによる半教師付き学習の実現が深層学習における課題である. さらには, 深層学習がロボットのより良い動作と動作を生成するために必要となる認識過程を同時に獲得するために, 強化学習を含めたend-to-end学習の実現を大いに期待したい.

 

 

References

[1] 柳井啓司:一般物体認識の現状と今後,情報処理学会論文誌コンピュータビジョンとイメージメディア,vol.48, no.SIG16, pp.1–24, 2007.

[2] D. Cheng, Y. Gong, S. Zhou, J. Wang and N. Zheng: “Person re-identification by multi-channel parts-based cnn with improved triplet loss function,” IEEE Conference on Computer Vision and Pattern Recognition, pp.1335–1344, 2016.

[3] P. Viola and M. Jones: “Rapid object detection using a boosted cascade of simple features,” IEEE Computer Society Computer Vision and Pattern Recognition, vol.1, pp.511–518, 2001.

[4] N. Dalal and B. Triggs: “Histograms of Oriented Gradients for Human Detection,” IEEE Computer Society Conference on Computer Vision and Pattern Recognition, vol.1, pp.886–893, 2005.

[5] G. Csurka, C.R. Dance, L. Fan, J. Willamowski and C. Bray: “Visual Categorization with Bags of Keypoints,” ECCV Workshop on Statistical Learning in Computer Vision, pp.1–22, 2004.

[6] F. Perronnin and C. Dance: “Fisher Kernels on Visual Vocabularies for Image Categorization,” IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2007.

[7] H. Jégou, F. Perronnin, M. Douze, J. Sánchez, P. Pérez and C. Schmid: “Aggregating Local Image Descriptors into Compact Codes,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.34, no.9, pp.1704–1716, 2012.

[8] D.G. Lowe: “Distinctive Image Features from Scale-Invariant Keypoints,” International Journal of Computer Vision, vol.60, pp.91–110, 2004.

[9] K.M. Yi, E. Trulls, V. Lepetit and P. Fua: “LIFT: Learned Invariant Feature Transform,” European Conference on Computer Vision, vol.9910, pp.467–483, 2016.

[10] Y. LeCun, L. Bottou, Y. Bengio and P. Haffner: “Gradient-based learning applied to document recognition,” Proc. of the IEEE, vol.86, no.11, pp.2278–2324, 1998.

[11] A. Krizhevsky, I. Sutskever and G.E. Hinton: “Imagenet classification with deep convolutional neural networks,” Advances in neural information processing systems, pp.1097–1105, 2012.

[12] K. Simonyan and A. Zisserman: “Very deep convolutional networks for large-scale image recognition,” arXiv preprint arXiv:1409.1556, 2014.

[13] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke and A. Rabinovich: “Going deeper with convolutions,” IEEE Conference on Computer Vision and Pattern Recognition, pp.1–9, 2015.

[14] K. He, X. Zhang, S. Ren and J. Sun: “Deep residual learning for image recognition,” IEEE Conference on Computer Vision and Pattern Recognition, pp.770–778, 2016.

[15] R. Girshick, J. Donahue, T. Darrell and J. Malik: “Rich feature hierarchies for accurate object detection and semantic segmentation,” IEEE conference on computer vision and pattern recognition, pp.580–587, 2014.

[16] J.R.R. Uijlings, K.E.A. Van De Sande, T. Gevers and A.W.M. Smeulders: “Selective search for object recognition,” International journal of computer vision, vol.104, no.2, pp.154–171, 2013.

[17] S. Ren, K. He, R. Girshick and J. Sun: “Faster R-CNN: Towards real-time object detection with region proposal networks,” Advances in neural information processing systems, pp.91–99, 2015.

[18] J. Redmon, S. Divvala, R. Girshick and A. Farhadi: “You only look once: Unified, real-time object detection,” IEEE Conference on Computer Vision and Pattern Recognition, pp.779–788, 2016.

[19] W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.-Y. Fu and A.C. Berg: “SSD: Single shot multibox detector,” European Conference on Computer Vision, pp.21–37, 2016.

[20] C. Farabet, C. Couprie, L. Najman and Y. LeCun: “Learning hierarchical features for scene labeling,” IEEE transactions on pattern analysis and machine intelligence, vol.35, no.8, pp.1915–1929, 2013.

[21] J. Long, E. Shelhamer and T. Darrell: “Fully convolutional networks for semantic segmentation,” IEEE Conference on Computer Vision and Pattern Recognition, pp.3431–3440, 2015.

[22] V. Badrinarayanan, A. Kendall and R. Cipolla: “SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation,” arXiv preprint arXiv:1511.00561, 2015.

[23] A. Kendall, V. Badrinarayanan and R. Cipolla: “Bayesian SegNet: Model Uncertainty in Deep Convolutional Encoder-Decoder Architectures for Scene Understanding,” arXiv preprint arXiv:1511.02680, 2015.

[24] H. Zhao, J. Shi, X. Qi, X. Wang and J. Jia: “Pyramid Scene Parsing Network,” arXiv preprint arXiv:1612.01105, 2016.

[25] “The Cityscapes Dataset,” https://www.cityscapes-dataset.com

[26] S. Zheng, S. Jayasumana, B. Romera-Paredes, V. Vineet, Z. Su, D. Du and P.H. Torr: “Conditional Random Fields as Recurrent Neural Networks,” IEEE International Conference on Computer Vision, pp.1529–1537, 2015.

[27] J. Dai, K. He and J. Sun: “Instance-aware semantic segmentation via multi-task network cascades,” IEEE Conference on Computer Vision and Pattern Recognition, pp.3150–3158, 2016.

 

 

藤吉弘亘(Hironobu Fujiyoshi

1997年中部大学大学院博士後期課程修了. 19972000年米カーネギーメロン大学ロボット工学研究所 Postdoctoral Fellow2000年中部大学講師, 2004年より同大学教授,20052006年米カーネギーメロン大学ロボット工学研究所客員研究員.計算機視覚, 動画像処理, パターン認識・理解の研究に従事. 2005年ロボカップ研究賞, 2009年情報処理学会論文誌コンピュータビジョンとイメージメディア優秀論文賞, 2009年山下記念研究賞,201020132016年画像センシングシンポジウム優秀学術賞, 2013年電子情報通信学会情報・システムソサエティ論文賞, 2016年画像センシングシンポジウム最優秀学術賞.

 

山下隆義(Takayoshi Yamashita

2002年奈良先端科学技術大学院大学博士前期課程修了, 2002年オムロン株式会社入社, 2011年中部大学大学院博士後期課程修了(社会人ドクター) 2014年中部大学講師, 人の理解に向けた動画像処理, パターン認識・機械学習の研究に従事. 画像センシングシンポジウム高木賞(2009年) 電子情報通信学会情報・システムソサイエティ論文賞(2013年) 電子情報通信学会PRMU研究会研究奨励賞(2013年) 画像センシングシンポジウム最優秀学術論文賞(2016年),同優秀学術論文賞(2016年)受賞.