第41回目の今回から、複数回にわたって「画像の領域分割(Segmentation)」について紹介します。
領域分割とは、画像のどこからどこまでが1つの領域なのかを判定する問題です。さらにSemantic Image Segmentationという分野では、図1のように画像のどの領域が1つの物体なのかを判定すると同時に、物体の種別も推定します。
図1 画像の領域分割の例
領域分割の難しさ
領域分割は人間にとってはシンプルな問題でも、コンピュータにとっては非常に難しい課題です。画像は、図2のとおり四角い画素を2次元に並べたデータです。単純なプログラムを書くと、ある画素のRGB値が隣の画素のRGB値と類似していれば同じ物体に属すると判定し、閾値以上の差異が生じていれば異なる物体に属すると判断する、という処理になります。図2の拡大画像で分かるように、同じ机の画素でも均一な値は取りません。木目調がよりはっきりしている場合や、影がある場合、テーブルクロスがかかっている場合などは、1つの机が数多くの領域に細分化されてしまいます。閾値を緩く設定すれば良いのではないかと思われるかもしれませんが、閾値を緩くすると机が奥の床と繋がってしまうのです。
図2 机と椅子の境界の拡大画像
Semantic Image Segmentationの例
ディープラーニング(Deep Learning:深層学習)技術の進展に伴い、以前では考えられない精度で領域分割と物体の種別認識ができるようになってきました。
図1のSUN RGB-Dデータセットの画像を処理した結果が図3です。輪郭は綺麗に抽出できていないものの、椅子(赤い領域)、テーブル(オレンジの領域)の種別を識別し、領域分割もそれなりにできています。
図3 Semantic Image Segmentationの実行結果例(テーブルと椅子)
図4は、屋外の映像を処理した結果です。遠くの自転車は抽出できていませんが、人(ピンク色の領域)は抽出できています。そして、近くの自転車に乗った人は、自転車(緑の領域)と人を分離して抽出できています。
図4 Semantic Image Segmentationの実行結果例(自転車)
Semantic Image Segmentationを含む領域分割は、人間には非常に簡単な問題ですが、コンピュータにとっては難題の1つです。近年、急速に技術が進歩している分野でもあり、応用範囲も広い技術ですので、是非色々と試して見てください。
次回は、今回紹介した画像の領域分割(Image Segmentation)、Semantic Image Segmentationについて、もう少し詳しく説明していきます!