記事検索

検索ワードを入力してください。
Sky Tech Blog
Meta社の​AIモデルSAM 2を​試してみた。​SAM 2を​紹介。

Meta社の​AIモデルSAM 2を​試してみた。​SAM 2を​紹介。

SAM 2とは、Meta社が2024年7月29日に発表した「Segment Anything Model 2(SAM 2)」というAIモデルで、画像や動画中の物体を自動的にセグメント化することができます。GitHubでソースコードとデモが公開されています。

SAM 2とは

SAM 2とはMeta社が2024年7月29日に発表した「Segment Anything Model 2(SAM 2)」というAIモデルで名の通り画像を入力すると画像中の物体を"なんでもセグメント化"することができます。
ボックスやポイントなどの入力プロンプトを画像とともに入力することで、指定した箇所にあるオブジェクトマスクを生成したりすることができます。
他にも画像内のすべての物体に自動セグメント化することができます。
このモデルは1,100万枚の画像と11億枚のマスクのデータセットでトレーニングされており、さまざまなセグメンテーションタスクで強力なゼロショットパフォーマンスを発揮します。

SAM 2はGitHubにモデルのソースコードとウェブ上のデモの両方が公開されています。

ウェブデモは動画データを使って物体のクリップ、エフェクトの付与を簡単に試用することができます。
GitHubは直接モデルのプログラム、パラメータを操作することができるので、自由なカスタマイズをすることができます。

実際に​SAM 2を​動かしてみた

今回GitHubのサンプルコードを動かしてみました。
リポジトリ内にJupyter Notebookのサンプルコードが提供されています。

サンプルコードは画像の自動マスク生成、入力プロンプトを使用した単一画像のマスク生成、動画のマスク生成の3つあります。
今回は入力プロンプトを使用した単一画像のマスク生成をしてみました。
サンプルコードはこちらです。

入力プロンプトは2つあります。

ボックス

画像内の矩形領域を指定して矩形内の物体にマスクを生成する。

ポイント

1点以上の画像の座標を指定してその座標上にある物体にマスクを生成する。

入力画像の​準備

SAM 2に入力するための画像を準備します。
今回は以下の猫の画像を用います

目標マスク

今回は猫とクッションのマスクを生成したいと思います。

ボックスプロンプト実行結果

猫、クッション、それぞれ全体を囲うようにボックスを設定します。
すると以下のようにマスクがSAM 2から出力されました。
マスクが猫とクッションをそれぞれ覆うようにうまく出力されました。

ポイントプロンプト実行結果

猫とクッションの中心をポイントとして指定します。
以下の結果がSAM 2から得られました。
マスクが猫とクッションをそれぞれ覆うようにうまく出力されました。

動画の​マスク作成の​サンプルコード概要

連続するフレームの先頭のフレームに同様にポイントとボックスを指定すると、後続のフレームでマスクした物体を追跡してマスクを生成することができます。
全フレームにポイントとボックスを指定する必要がないので便利な機能が提供されています。

COCO形式への​変換

マスクは画像として保存することができます。
マスク画像から物体検出で定番であるCOCO形式に変換したい時はpycocotoolsでRLE形式化してjsonファイルとして保存することができます。
pycocotoolsのmaskのデコード関数を実行すると変換できます。

その​他提供ソース

実行ソースだけでなくモデルの再訓練をすることもできるようです。

再訓練して異なる分野で使用ができるモデルが公開されています。
医療向けにモデルが再訓練されているオープンソースがありました。

最後に

今回Meta社のSAM 2を試用してみました。
転移学習いらずに画像から自動的かつ自由にマスクを得られました。
COCO形式にも変換できるので他の検出AIの学習データの作成をするのに使えそうです。
他にもSAM 2使用の幅を感じました。ぜひ皆さんも使用してみてください。


\シェアをお願いします!/
  • X
  • Facebook
  • LINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム