第44回目の今回は、前回の「領域分割 (3)」に引き続き「Semantic Image Segmentation」についてです。
前回はSemantic Image Segmentationの内「Conditional Random Field (CRF)」を用いた手法を紹介しましたが、今回は「Convolutional Neural Networks (CNN)」をベースとした手法をいくつか紹介します。
Fully Convolutional Networksを用いた手法
ディープラーニング(Deep Learning:深層学習)がブレークスルーとなり、物体認識の認識精度が飛躍的に向上しました。物体認識に用いられるCNNは、図1のように出力層付近で全結合層を介し、mクラスの物体識別結果(y1,y2,…, ym)を出力します。
図1 物体認識などに用いるCNNの例
Semantic Image Segmentationの分野も、CNNの一種であるFully Convolutional Networks(FCN)などの登場により性能が飛躍的に向上しました (参考文献[1])。FCNは、前述のCNNの全結合層をアップサンプリングした畳み込み層に置き換えたネットワークです。ピクセルごとにラベル付けされた教師データを与え学習することで、入力画像の各画素のラベル(物体種別)を推定できます(図2)。
図2 Fully Convolutional Networksの概要
Deconvolution Networkを用いた手法
また、Deconvolution NetworkによるSemantic Image Segmentationも提案されています(参考文献[2])。この手法では、Convolution Networkと、その逆のDeconvolution Networkを組み合わせることで精度の高いラベリング結果を得ることに成功しています(図3、図4)。
図3 Deconvolution Networkの概要
図4 Deconvolution NetworkによるSemantic Segmentation結果
Fully Convolutional NetworksとConditional Random Fieldを用いた手法
FCNと、第43回で紹介したConditional Random Field(CRF)を組み合わせた手法です(参考文献[3])。CRFにおける平均場近似の推定処理をRecurrent Neural Network(RNN)とみなして定式化し、FCNとCRFを同時に学習することで高精度なSemantic Image Segmentationを実現しています(図5)。
図5 FCNとCRFを用いたSemantic Image Segmentationの概要
高精度なSemantic Image Segmentationを実現できれば、自動車の自動運転など様々な分野に応用できる可能性があります。従来は、白線を検出し、画像の広範囲をスキャンすることで車両を検出し、同様に画像の広範囲をスキャンして歩行者を検出するという処理を行っていました。Semantic Image Segmentationでは、これらの処理を同時にできるという訳です。興味のある方は参考文献を是非読んでみて下さい。
次回は、人物の姿勢推定について説明します!
参考文献
[1] J. Long, E. Shelhamer, T. Darrel: Fully Convolutional Networks for Semantic Segmentation. CVPR2015 [2] H. Noh, S. Hong, B. Han: Learning Deconvolution Network for Semantic Segmentation. ICCV2015
[3] S. Zheng, S. Jayasumana, B. R. Paredes, V. Vineet, Z. Su, D. Du, C. Huang, P. H. S. Torr: Conditional Random Fields as Recurrent Neural Networks. ICCV2015