高橋かずひとのプログラミング、その他、備忘録。

日々調べてたことや、作ってみたものをメモしているブログ。 お決まりの断り文句ですが、このブログに書かれている内容は個人の見解であり、所属する組織の公式見解ではありません。チラ裏。

Segment Anything Model(SAM)をONNXに変換して推論🦔

本当はもっと早くやりたかったシリーズ👀
SAMが登場してから、もう1年たってるんですよね。。。

SAMは凄い良いモデルなのですが、、、
公式リポジトリのONNXエクスポートとONNX推論周りのサポートはちょっとイマイチだと思っています。

どれくらいイマイチかと言うと、
デコーダーのみONNX出力するスクリプトがあって、エンコーダーはPyTorchのまま
・ONNX推論サンプルは、デコーダーの推論のみONNXで、前処理、エンコーダー、後処理がPyTorchの処理に依存している
いや、これONNXのメリットいかせないやん。みたいな👻

と言うわけで、ちょっと制限はあるのですが、
エンコーダーもONNXエクスポートして、推論するサンプルを作成しました。

ぼちぼち動いている気はする🤔

 

関連するノートブックとスクリプトは以下のリポジトリにコミットしています。
ただ、SamAutomaticMaskGenerator()までONNXに書き直すパワーがなかったので、後回しに、、、👀

github.com