こんにちは。本当は論文を読んで論文解説書きたかったんですが、事前に調査をして巷の解説記事が非常にたくさん見つかりました。何故か皆さんこのモデルが好きなようです。 順番にウェブを回ってみて、見つけた解説記事を順番に見て、大体の今回のモデルについて確認をしたいと思います。
Segment Anything Model(SAM)を使いこなそう!パラメータ設定のポイントも徹底解説
https://www.chowagiken.co.jp/blog/sam_parameter
「SAMは上述の通り、あらゆる物体をセグメンテーションをしてくれます。しかもZero-shot(学習していない物体に対しての性能)でも高い性能を出すと元論文[1]で明言されています。」
ということで、名前の通りセグメンテーションのためのツールです。セグメンテーションは今回は画像をいくつかの領域に分解します。
この解説記事は最初からかなり詳しいものに出会いました。インストールからツールからの利用方法と、各種パラメータや出力結果がかなり詳細に記述されています。最初の記事だけでほとんど細かくみていくとことがすんでしまいそうでした。
今回は色々みてみたいので、次の記事にいきます。。。次はこちら
Segment Anything Modelの3次元医用画像応用
https://tech.preferred.jp/ja/blog/sam-for-3d-medical-images/
インターンの方のレポートです。
「SAMはその強力なzero-shot性能により,様々なドメインへの応用が期待されています.その中でも特に,アノテーション不足の問題等により大量のデータを確保することが難しい医用画像分野への応用が非常に有望視されています.その傍証として,SAMが公開された4月から今現在9月に至るまで,医用画像へSAMの適用を試みた先行研究が数多く行われています」
ということで、応用範囲が広そうです。
「学習におけるメモリ消費が激しいということになります.そのため,SAMのfull-finetuningは現実的でなく,医用画像における研究のトレンドとして,decoderのみを再学習する手法,ないしはAdapterやLoRAのように学習可能パラメタを部分的に挿入するといった手法が採用される傾向」
流石に優秀ですね。最近のモデルの追加学習については他のブログでも触れましたが同じような傾向のようです。
「Encoderでは入力の系列長にsensitiveであったのに対して,Decoderでは系列長に対する制約が緩いことが分かりました.」
なんか優秀な気がします。この後もきちんと内容を理解した医療画像への適用の検証が進み、最後まで優秀なまま終わっていきました。
次はこちら、
Segment Anything
https://qiita.com/fuyu_quant/items/e27505c00e92aa2a1acd
よくみたら著者に見覚えがあります。
端的に使い方と内容を伝えていて個人的にはとてもわかりやすかったです。。。
実践的で合理的な記事です。
そういえば、デモサイトがありました。今度ゆっくりみてみて解説はしたいですが、今回は紹介のみにしておきます。
https://segment-anything.com/demo
次です。
Segment Anythingと派生技術の紹介①
https://zenn.dev/mattyamonaca/articles/dcacb4f6dcd58f
なんかこの界隈優秀そうな人が多いです。。。
Segment Anythingに関しては簡単な紹介を行いながら、派生技術についてまとめています。
さまざまな分野への応用が合理的にまとまっていました。みやすい。。。
Analysis and Expansion of SAM (SAMの分析及び機能拡張研究)
Medical Image Segmentation (医療画像のセグメンテーションタスク)
Inpainting (画像修復)
Camouflaged Object Detection(カモフラージュされたオブジェクトの検出)
Low Level (超解像)
Robotic (ロボティクス領域への応用研究)
Bioinformatics (生物情報領域への応用)
技術についても簡潔かつ合理的に説明しています。
データセットの準備
Assisted-manual stage
Semi-automatic stage
Fully automatic stage
プロンプトセグメンテーション
モデル構成
詳しい話はまた別の機会でも論文を読む機会があるので、こちらの記事でも詳しく紹介されていたということに言及しておくにとどめます。賢い記事でした。。。
機械学習分野は賢そうな方がたくさんいるんだなと、新参者は意気消沈しながら次の記事。
Meta AI の Segment Anything Model(SAM) でUSBカメラの映像からオブジェクトを抽出してみました
https://dev.classmethod.jp/articles/segment-anything-model-with-usb-cam/
「Segment Anything Model(SAM) では、次の2種類の検出方法が提供されています。
- Automatically generating object
- Object masks from prompts」
結構具体的な実装中心の解説でした。SAM自体の解説というよりも使い方がコード付きで書いてあってわかりやすいです。他の解説記事で理論を一旦理解した方もしくは、いきなり実装から慣れていきたい方向け。
次です。。。
Meta開発のセグメンテーションモデル Segment Anything Model(SAM) の解説
https://book.st-hakky.com/data-science/segment-anything/
知っている福岡の会社でしょうか。。。一般的な解説のあと少し詳しく書いてあります。
「この要件を盛り込んだモデル SAMは、以下のような構造です。Prompt Encoderが、点やボックス、テキストなどスパースな入力を受け付ける部分と、密なマスク情報を受け付ける部分に分かれている点が面白いです。また、上記のように曖昧性の課題があるため、3つのマスク出力を行うように工夫しています。(3つあれば、殆どのケースに対応可能とのこと)」
わかりやすいです。そのあとは他の記事ではこれまであまりみられなかったプロンプトについての考察がされていました。
どの記事もわかりやすいですね。。。次です。
SAM(Segment Anything Model)を用いた画像分析の解説
https://note.com/mizupe/n/n19df906fa09a
こちらの記事も大変丁寧に解説していてわかりやすいです。正直全部わかりやすくて論文にまで到達しません。。。
ゼロショットのセグメンテーション(Segment Anything Model,Python,PyTorch を使用)(Windows 上)
https://www.kkaneko.jp/ai/win/sam.html
こちらの記事は研究室のようでさらに詳しく考察されています。
Metaが写真に写っている物体を分離して選択できるAIモデル「Segment Anything Model」を公開
https://gigazine.net/news/20230406-meta-ai-segment-anything/
こちらも一般の方向けにわかりやすく解説していました。
以上ですが、正直他の機械学習モデルに比べて詳細な解説記事がヒットしやすかったです。理由は分かりませんが、優秀な解説記事が多く、
かつ実践コードも多く掲載されているのがよかったです。
解説記事を読むだけでモデルの構成を学べてコードも実行できそうでしたので、次の機会では動かしてみながら学びたいと思いました。以上です。