セグメンテーションと姿勢推定:画素単位で塗り分ける
画像を画素の単位で塗り分けるセグメンテーションと、人の関節の位置を当てる姿勢推定を学びます。基礎層では、3種類のセグメンテーションの違いを身近な例でつかみます。深掘り層では、FCN・SegNet・U-Net・PSPNet・DeepLab の代表モデルと、Mask R-CNN、OpenPose のしくみまでを説明できるようになります。
ねらい
このレッスンでは、画像を画素(がそ)の単位で塗り分けるセグメンテーションと、人の関節の位置を当てる姿勢推定(しせいすいてい)を学びます。
基礎
セグメンテーションに3つの種類があり、それぞれ何を区別するのかを身近な例でつかみます。前提となる知識がなくても、ここは読み切れます。
1. セグメンテーションには3つの種類があります
セグメンテーションは、画像のすべての画素に、それが何であるかのカテゴリを割り当てるタスクです。塗り絵のように、画像全体を種類ごとに色分けする、と考えると分かりやすいです。この塗り分けには、区別のしかたの違いで3つの種類があります。
1つ目は、セマンティックセグメンテーションです。これは、同じ種類のものを同じ色でまとめて塗り分けます。3台の車が並んでいても、すべて「車」という同じ色になります。個々の車は区別しません。
2つ目は、インスタンスセグメンテーションです。これは、同じ種類でも、1つひとつの個体を別の色で塗り分けます。3台の車なら、それぞれ違う色になります。ここでいう個体をインスタンスといいます。
3つ目は、パノプティックセグメンテーションです。これは、前の2つを組み合わせた塗り分けです。空や道路のような、数えない背景はまとめて塗り、車や人のような、数えられる物体は1つひとつ別の色で塗ります。画像のすべての画素をもれなく塗り分けます。
3つの違いは、車が3台並んだ場面を思いうかべると整理できます。セマンティックは3台を同じ色にまとめ、インスタンスは3台を別々の色にし、パノプティックは背景をまとめつつ3台を別々の色にします。
ポイント
セマンティックセグメンテーションは同じ種類をまとめ、インスタンスセグメンテーションは個体を区別し、パノプティックセグメンテーションは背景をまとめつつ物体を個体ごとに区別します。
2. 姿勢推定は、人の関節の位置を当てます
セグメンテーションと並んで、このレッスンでは姿勢推定も扱います。姿勢推定は、画像に写る人の、肩やひじ、ひざといった関節の位置を当てるタスクです。当てた関節をつなぐと、人の骨組みのような形が浮かび上がり、その人がどんな姿勢を取っているかが分かります。
身近な例でいうと、体を動かして遊ぶゲームや、運動フォームを解析するアプリが、この技術を使っています。カメラの前の人の関節を追い、体の動きを読み取っています。
ここまでの要点
- セグメンテーションは、画像を画素の単位で、種類ごとに塗り分けるタスクです。
- 塗り分けには、同じ種類をまとめるセマンティック、個体を区別するインスタンス、両方を合わせたパノプティックの3種類があります。
- 姿勢推定は、人の関節の位置を当て、体の姿勢を読み取るタスクです。
まずは全体像をつかめれば十分という人は、ここで区切って大丈夫です。「セグメンテーションは画素単位の塗り分けで、区別のしかたに3種類ある」「姿勢推定は関節の位置を当てる」と押さえられていれば、この先の深掘りに進む土台はできています。
発展
ここからは、セグメンテーションを実現する代表モデルをしくみのレベルで見ます。FCN、SegNet、U-Net、PSPNet、DeepLab と続き、個体を区別する Mask R-CNN、そして姿勢推定の OpenPose まで扱います。第5章で学んだ畳み込みニューラルネットワークと、前のレッスンの Faster R-CNN が土台になります。
3. 画素を塗り分ける土台:FCN と、その改良
画像分類のネットワークは、最後に「画像全体が何か」を1つ答える形になっていました。セグメンテーションでは、答えを画素の数だけ、位置をそろえて出さなければなりません。この形を最初に実現したのが FCN です。
FCN は、完全畳み込みネットワークとも呼ばれ、英語では Fully Convolutional Network(フリー・コンボリューショナル・ネットワーク)と書きます。FCN は、画像分類のネットワークの最後にあった、全体を1つにまとめる全結合層を取り払い、代わりにすべてを畳み込みで組みます。そのうえで、畳み込みで小さくなった特徴をもとの画像の大きさまで引き伸ばして、画素ごとの塗り分けを出力します。この引き伸ばしのとき、粗い層と細かい層の情報を組み合わせて、輪郭をなめらかにします。画素単位の塗り分けを一続きの学習でできるようにした出発点です。
FCN を土台に、引き伸ばしのしかたを工夫したモデルが続きます。
SegNet(セグネット)は、特徴を小さくするときの位置の情報を覚えておき、引き伸ばすときにその情報を使って、効率よく元の大きさへ戻します。使うメモリが少なくて済む点が特徴です。
U-Net(ユーネット)は、特徴を小さくしていく前半と、大きく戻していく後半を左右対称のUの字の形に並べます。そのうえで、前半の各段階の特徴を後半の対応する段階へ直接渡します。細かい輪郭の情報が失われにくく、少ない学習データでもよく働くため、医療画像の分野などで広く使われています。
理解の確認
FCN は、全結合層を畳み込みに置きかえ、小さくなった特徴を元の大きさへ引き伸ばして、画素単位の塗り分けを一続きの学習で実現しました。SegNet は位置の情報を覚えて効率よく引き伸ばし、U-Net は前半の特徴を後半へ直接渡して、細かい輪郭を保ちます。
4. 広い範囲の文脈を捉える:PSPNet と DeepLab
セグメンテーションでは、画素1点の周りだけを見ても、正しく塗り分けられないことがあります。たとえば、水面に浮かぶ小さな物体を「ボート」と塗るには、周りが川や海だという広い範囲の文脈が要ります。そこで、遠くまでの情報をどう取り込むかが工夫のしどころになります。
PSPNet(ピーエスピーネット、Pyramid Scene Parsing Network)は、画像を大きさの違ういくつかの区画に分けて、それぞれの区画から情報を集め、狭い範囲から画像全体までの文脈をまとめて捉えます。この、複数の広さの情報を段階的に集めるしくみをピラミッドプーリングといいます。全体の場面を踏まえた塗り分けができるようになります。
DeepLab(ディープラブ)は、第5章で学んだ、間隔を空けて畳み込むしくみを使います。間隔を空けると、特徴を小さくしすぎずに、一度に見渡せる範囲を広げられます。解像度を保ったまま広い文脈を捉えられる点が工夫です。DeepLab も、複数の広さで情報を集める工夫を組み合わせて、輪郭の正確さと文脈の広さを両立させます。
理解の確認
PSPNet は、大きさの違う区画から情報を集めるピラミッドプーリングで、狭い範囲から画像全体までの文脈を捉えます。DeepLab は、間隔を空けた畳み込みで解像度を保ちながら見渡す範囲を広げ、広い文脈を取り込みます。
5. 個体を区別する Mask R-CNN
ここまでのモデルは、主にセマンティックセグメンテーション、つまり同じ種類をまとめて塗るものでした。個体を1つひとつ区別するインスタンスセグメンテーションには、別の工夫が要ります。
Mask R-CNN は、前のレッスンで学んだ Faster R-CNN を土台にしたモデルです。Faster R-CNN は、物体を枠で囲んで種類を当てる物体検出のモデルでした。Mask R-CNN は、そこへ、枠の中の物体を画素単位で塗り分ける役割をもう1本の枝として付け足します。まず物体を個体ごとに枠で見つけ、次にその枠の中で輪郭を塗る、という二段構えです。物体ごとに枠を分けているので、同じ種類でも個体を区別して塗り分けられます。物体検出とセグメンテーションを一続きにした、代表的なモデルです。
理解の確認
Mask R-CNN は、Faster R-CNN に画素単位の塗り分けをする枝を付け足したモデルです。まず物体を個体ごとに枠で見つけ、その枠の中で輪郭を塗ることで、同じ種類でも個体を区別するインスタンスセグメンテーションを実現します。
6. 姿勢推定と OpenPose
姿勢推定には、人を見つけてからその人の関節を探すやり方と、先に画像全体から関節らしい点をすべて見つけ、それを人ごとにつなぎ合わせるやり方があります。
OpenPose は、後者のやり方の代表です。OpenPose は、画像に写るすべての人の関節らしい点を一度に見つけ出し、それらを正しく人ごとに結び付けて、複数の人の姿勢を同時に推定します。人が何人いても処理の重さがあまり変わらないため、大勢が写る場面でも実時間に近い速さで動けます。
理解の確認
OpenPose は、画像全体から関節らしい点をすべて見つけ、人ごとに結び付けて、複数の人の姿勢を同時に推定します。人数が増えても処理が重くなりにくい点が特徴です。
7. 指示する塗り分けへ
ここからは、セグメンテーションの現在の潮流を手法を軸に短く触れます。製品やモデルの名前は入れ替わりが速いため、時点を添えて例として挙げます。
近年の大きな流れは、あらかじめ決めたカテゴリに縛られず、人が点や枠、言葉で指し示したものをその場で塗り分けるやり方です。Segment Anything(セグメント・エニシング、2023年)と呼ばれる手法は、大量の画像で学習した1つのモデルに、指し示す指示を与えるだけで、多様な物体を塗り分けます。このように、指示に応じて塗るモデルは、画像の基盤モデルの一種とみなせます。
また、Transformer を土台に、3種類のセグメンテーションを1つの枠組みで扱う Mask2Former(マスク・トゥ・フォーマー)のようなモデルも登場しています。評価には、街の風景を細かく塗り分けた Cityscapes(シティスケープス)などの公開データがよく使われます。
理解度の確認
説明できる項目にチェックを入れましょう。すべて確認できたら、完了ボタンで記録します。
分からなかった点・気になった点
読み込み中です。