Zelo Shotのセグメンテーションモデル爆誕
今回はMeta Research(旧facebookresearch)から発表されたとんでもないSegmentation ModelであるSegmentation Anything Model(SAM)をGoogle Colab試してみました。
感想としては、ラベルはつかないもののセグメンテーションとしての精度はとんでもないと感じました。
準備
必要なノートブックはGithubのほうに上がっていました。
https://github.com/facebookresearch/segment-anything
Notebooksの中にいくつかipynb形式のノートブックがあります。残念ながら追加学習のコードなどはなかったのですが、今回は画像のセグメンテーションマスクを作成するautomatic_mask_generator_example.ipynbを試してみます。
実装
実装も何もほとんどノートブックそのままで動きます。
Colabで実行する際はOpen in Colabのボタンを押すだけで自動でブラウザ上で立ち上げてくれます。
変更しなくては行けない点は
using_colab = False
で忘れずにTrueにしておきましょうってことぐらいでした。
あとは自分の画像にしたい人はPathを書き換えましょう。
結果
これは趣味のボルダリングの石を上手くセグメンテーションできないかなーと試してみたものです。
やはり精度が圧倒的ですね。大きい石の一部にマスクがついてないですが、基本的にはほぼすべての石にマスクが付いています。
以前はDetectron2を使って、手作業で20枚のラベル付けを行った上で上手くいかなかったものが、Zero Shotでここまでの精度が出ちゃうのは素直に驚きました。
まとめ
今回はMeta Research(旧facebookresearch)から発表されたSegmentation Anything Model(SAM)をGoogle Colab試してみました。
あまりのできの良さに正直嘘かと思いました。実はこのモデルはChatGPTとかと同じTransformerを用いた画像モデルであるVision Transformer(ViT)を利用しているものになっています。
画像のTransformerモデルで精度が出るということは、今後出てくるGPT4以降のMulti Headでは画像も期待できてしまうというものです。
やはりTransformerから目を離せませんね。
参考