KDL BLOG
SAM(Segment Anything Model)の解説と実践(前編)
データインテリジェンスチームの黒臺(くろだい)です。 どんな画像でもセグメンテーションができるというSegment Anything Model(以降SAMと表記)を今回は紹介します。
SAMとはMeta Platforms, Inc.(Meta)から発表されたセグメンテーションタスクに特化したモデルです。下記のURLから、ウェブサイト上でセグメンテーションを試すことができます。
Segment Anything Research by Meta AI
セグメンテーションとは、画像内の物体を1ピクセルごとに分けるタスクを指します。画像内の物体のマスク用データを作ることと同義です。KDLの公式キャラクターのデジごんと背景を分ける場合、下記のイメージ通りになります。
背景部分のピクセルと、デジごん部分のピクセルを0か1で判別をし、マスク用データを作ります。デモの結果では、以下のようなセグメンテーション結果が得られます。
このデモ画像のように、セグメンテーションとは画像内のものを分けることを指します。セグメンテーションをしたい対象物を選択し点を打つと、対象物のみを分けることも可能です。試しに、セールボートの画像に点を打ってみましょう。
ボートの底面から帆の部分まで正確にマスクできています。
ボックスで対象を指定してセグメンテーションも可能です。セールボートを長方形で覆ってみましょう。
長方形の中のセールボートのみ正確にマスクできています。点・ボックスどちらの指定方法でもセグメンテーションが可能です。
SAMモデルはなぜこのように様々なものをセグメンテーションできるのでしょうか。今回は2本立てで紹介をします。本記事ではSAMのアルゴリズムを解説し、後編でPythonを使いセグメンテーションの実践をします。
(つづきは、ブログ「神戸のデータ活用塾!KDL Data Blog」へ)