セグメンテーションのモデルがFCN・SegNet・U-Net・PSPNet・DeepLabとあって、姿勢推定にOpenPose。違いを整理したい
【疑問】セグメンテーションのFCN・SegNet・U-Net・PSPNet・DeepLabと、姿勢推定のOpenPose【G検定】
前提のおさらい。物体検出は物ごとに枠を出す。セグメンテーションは枠やなくて画素ごとにラベルを出す。物体検出のモデルは最後に全結合層で枠の数字を出すけど、画素ごとに出すには、出力も画像と同じ形にせなあかん
>>1
FCNは、ロングらの2015年の論文。最後の全結合層をやめて、全部を畳み込み層にした。小さくなった特徴マップを拡大(アップサンプリング)して、もとの画像と同じ大きさで画素ごとのラベルを出す
>>3
小さくしてから拡大したら、境目がぼやけるやろ
>>4
そこで縮める前の細かい情報を、拡大するときに戻す工夫が出た
SegNetは、バドリナラヤナンらの論文。エンコーダで最大値プーリングしたときに「どの位置が最大やったか」を覚えておいて、デコーダで拡大するときにその位置に戻す
U-Netは、ロネベルガーらの2015年の論文。エンコーダの各段の特徴マップを、同じ大きさのデコーダの段にそのままつなぐ(スキップ結合)。形がUの字になるからU-Net。医療画像のために作られた
>>5
PSPNetは、ジャオらの2017年の論文。特徴マップをいろんな大きさの区画でプーリングして(ピラミッドプーリング)、画像全体の様子もふまえてラベルを決める
「水の上にあるから車やなくて船」みたいに、周りの文脈を使える
>>6
DeepLabは、チェンらの一連の論文。Atrous Convolution(Dilated Convolution)で、特徴マップを小さくしすぎずに広い範囲を見る。広がりの違うAtrous Convolutionを並べる工夫(ASPP)も入れた
>>1
評価はクラスごとのIoUの平均(mIoU)がよく使われる。3クラスのIoUが0.8・0.6・0.7なら、mIoUは
>>1
OpenPoseは、カオらの2017年の論文。写真に何人いても、全員の関節を一度に推定する
先に人を1人ずつ見つけてから関節を探すんやなくて、画像全体から関節の点と、関節どうしのつながりの情報をまとめて出して、あとで人ごとに組み立てる(ボトムアップ型)
>>9
人を先に見つけるやり方(トップダウン型)は、人数が増えるほど時間がかかる。ボトムアップ型は人数が増えても処理時間があまり変わらんのが強み
>>10
そのかわり、人がくっついて重なってると、どの関節が誰のものか組み立てを間違えることがある。どっちがええかは場面次第
管理人のひとこと
- FCN(2015年の論文)は全部を畳み込み層にして、拡大して画素ごとのラベルを出す。
- SegNetは最大値の位置を覚えて拡大時に戻す。U-Net(2015年の論文)はエンコーダの特徴をデコーダにスキップ結合でつなぐ(医療画像向けに作られた)。
- PSPNet(2017年の論文)はピラミッドプーリングで全体の文脈を使う。DeepLabはAtrous ConvolutionとASPPで広い範囲を見る。評価はmIoU(0.8・0.6・0.7なら0.7)。
- OpenPose(2017年の論文)は関節の点と関節どうしのつながりをまとめて出し、あとで人ごとに組み立てるボトムアップ型。