SAM: 画像セグメンテーションのマイルストーン

SAM (Segment Anything Model) と呼ばれる Facebook の新しいモデルは、コンピュータ ビジョン業界に前向きな変化を引き起こす可能性があります。この画期的なモデルは、これまでに使用されていた他の画像セグメンテーション モデルとは異なります。

従来、人物や車など、さまざまなタイプの画像に対して個別のモデルがトレーニングされていましたが、SAM は一般的なセグメンテーション ソリューションを提供することで、個別のモデルの必要性を排除します。SAM は、自然言語処理業界における GPT 時代に似ており、感情分析や衛星画像のセグメンテーションなど、さまざまな画像セグメンテーション タスクに使用できる可能性があります。

Facebook は、寛容な Apache 2.0 ライセンスの下で、SAM とそのトレーニングに使用された 1,100 万枚以上の画像と 11 億枚のマスクを含むデータセットを惜しみなくリリースしました。このオープンソースの取り組みは、コンピュータ ビジョン業界に多大な貢献をしてきました。SAM がコンピュータ ビジョン業界に与える潜在的な影響と、画像セグメンテーションにおける SAM の重要性は自明です。

ローカル環境で SAM を使用することに興味がある場合は、GitHub リポジトリのドキュメントに開始方法の詳細な情報が記載されています。

    • コードリポジトリ: https://github.com/facebookresearch/segment-anything

    • ブログ: https://ai.facebook.com/blog/segment-anything-foundation-model-image-segmentation/

    • 論文: https://arxiv.org/abs/2304.02643

KadirNar は、使いやすくするために、SAM の簡略化 (パッケージ化) バージョンを提供するリポジトリを作成しました: https://github.com/kadirnar/segment-anything-video

後で、KadirNar リポジトリを使用してローカル環境で SAM を使用します。

ただし、技術的な詳細に入る前に、Facebook が提供するオンライン デモを見てみましょう: https://segment-anything.com/demo。ここには、好きな画像をアップロードしたり、データセットから選択したりできるページが表示されます。デモ用に表示する画像をランダムに選択します。

画像を選択またはアップロードすると、SAM が動作を開始します。画像の処理には数秒かかりますが、処理が完了すると、選択したオブジェクトが完全にセグメント化されたことがわかります。

使用する画像は次のとおりです。

b17722f0043afe7272f82a8c534119b0.gif

画像セグメンテーションの結果を見てみましょう。

f35d330750a712ac8999abdee082f373.png

私たちのイメージを完璧にセグメント化しました。SAM の精度は本当に印象的であり、このモデルがなぜそれほど革新的であったかは簡単に理解できます。

自分で試す準備ができたら、GitHub リポジトリのドキュメントに、ローカル環境で SAM を使用する方法に関する明確な手順が記載されています。

SAM を試すには KadirNar リポジトリを使用することをお勧めします。また、ライブラリのバージョンが異なる場合に発生する可能性のある問題を排除できるため、Google Colab を利用する方が有益である可能性があります。

どのように機能するかを見てみましょう! まず、pip を使用してメタセグをインストールする必要があります。 

!pip install metaseg -q

処理する画像を見てみましょう。

ff356437adf72b74216ab1dbcbb38dd4.gif

from IPython.display import Image
Image(“image.jpg”)

出力: 

804abd3aa25be4806012d6432c0f05fd.png

次に、SegAutoMaskGenerator をインポートする必要があります。これは、model_type を使用して画像からセグメント化された形状を検出します。

autoseg_image = SegAutoMaskGenerator().save_image(
source="image.jpg",
model_type="vit_l", # vit_l, vit_h, vit_b
points_per_side=16,
points_per_batch=64,
min_area=0,
)

パラメータ「model_type」は、使用するモデルのタイプを決定します。

Facebook は 3 つの異なるモデルを提供しています。

    • デフォルトまたは vit_h: ViT-H SAM モデル

    • vit_l: ViT-L SAM モデル

    • vit_b: ViT-B SAM モデル

各モデルにはそれぞれ利点があります。公式ブログでは各モデルの詳細な説明が掲載されています。

上記のコードを実行すると、分割された画像が現在のディレクトリに保存されます。結果を見てみましょう。

from IPython.display import Image
Image(“output.jpg”)

出力:

4a8e09b5d459dfd72bc00c1ee4ce5277.png

たとえば、出力画像内の任意の野菜の選択は、形状 SAM によって与えられます。

dd23674cc2f2bacb7f9b541b6639b39d.png

免責事項: コンテンツの一部はインターネットから取得したものであり、読者間の学術コミュニケーションのみを目的としています。記事はオリジナルの著者に属します。何か不都合がございましたら削除のご連絡をお願い致します。

・ 終わり ・

幸せな生活

b68447ee1741ea2cfe7fedff3c5ed31b.png

おすすめ

転載: blog.csdn.net/weixin_38739735/article/details/130333912