Segment Anything Model(SAM),Meta AIを使ってみた
Segment Anything Model(SAM),Meta AIのリンクは↓の通りです。
画像認識の基礎知識
画像認識は、以下の3つに分けることができます。
分類(Classification)
→🐕がいる場合、「犬」「動物」等に分類(単体に有効)領域検出(Semantic Segmentation)
→🐕🐈🐈がいる場合、「犬」「猫」をpixel単位で抽出
(物体の抽出はせずに、Pixcel単位で色分けするイメージ)物体検出
Object Detection
→🐕🐈🐈がいる場合、「犬A」「猫A」「猫B」の複数の物体を抽出Instance Segmentation
→🐕🐈🐈がいる場合、「犬A」「猫A」「猫B」をpixel単位で抽出
Instance Segmentationは、Semantic Segmentationと異なり、1つの画像の中に同一ラベル(猫)がある場合、それぞれ別の猫として抽出することができます。(物体の検出)
よって、Semantic Segmentationで、🐈🐈が重なっている場合は境界線が分からず、1つの「猫」として色分けされます。
Segment Anything Model(SAM)を使ってみた
上部のリンクから、SAMの機能を試すことができます。結果は以下の通りです。
SAMは、複数の物体を抽出できるのでInstance Segmentationのような機能はあるものの、物体以外(椅子)も色分け(領域を分割?)している点が特徴です。
Instance Segmentationの有名なモデルとしてYOLOがあります。おそらくYOLOであれば椅子も物体として認識されると思います。(試した画像が悪いという話もあります)
Segment Anything Model(SAM)の効果
画像生成AIモデルのトレーニングをする場合、アノテーションデータ(ラベル付きデータ)が重要になります。LabelMe等のアノテーションツールを使い、手動でのアノテーション作業が必須でしたが、SAMにより大まかなアノテーションをできるようになったと思います。(データ準備コストが格段に安くなる?)
色々実験してみましたが、別ラベル(上記であれば「🍏」「皿」「机」)との領域分割が素晴らしかったです。
SAMの課題点(敢えて言うと・・・)
物体の全体像が写っていないと1つの物体として扱われない可能性があります。(↓の椅子)領域分割の程度が調整できると、より便利かもしれません。
最後に
GitHubにソースがあるので、後日ローカル環境で実行してみたいと思います。