MobileSAM:SAM画像分割をモバイルアプリ向けに軽量化

開発者は、モバイルアプリ内でSegment Anything Model (SAM)を使用して画像分割を行いたいと考えていますが、元のモデルは大きくて遅いため、モバイルデバイスでは動作せず、アプリの応答が遅くなったり、クラッシュしたりすることがあります。MobileSAMはこの問題を解決するために特別に設計されたオープンソースプロジェクトで、SAMをモバイルで動作するのに適した軽量版に圧縮し、アプリ開発者やAI研究者がiOSやAndroid上でリアルタイムに画像オブジェクトを分割できるようにします。

SAMモデルのサイズを元の1/20以下に圧縮

MobileSAMの最大の特徴は、知識蒸留(knowledge distillation)技術を使用して、元のSAMのimage encoderを93Mパラメータからわずか4.4Mに圧縮し、モデル全体のサイズを2.4GBから119MBに減少させたことです。これは元のモデルの1/20に相当します。この変化により、モデルはモバイルメモリに簡単に収まるようになり、実行速度が大幅に向上しました。元々デスクトップGPUでしか動作しなかったSAMが、現在ではCPU上でもスムーズに動作するようになり、特にリソースが限られたモバイル環境に適しています。

MobileSAM モデル構造図
MobileSAM モデル構造図

モバイルで元のSAMと同等の分割精度を実現

モデルは大幅に軽量化されましたが、MobileSAMは元のSAMのコア機能を保持しており、複数の画像分割ベンチマークテストで精度はわずかに低下するだけで、例えばSA-1BデータセットでのmIoUは高い水準を維持しています。このバランスは、完全なSAMを教師として使用し、軽量版の学生モデルに分割マスク生成を学ばせる師弟訓練モードを通じて達成されました。開発者は、クリックやボックス選択などのプロンプトを使用して、オブジェクトマスクを迅速に生成し、ARフィルター、画像編集、オブジェクト検出などのシーンに応用できます。

実際の運用データによると、MobileSAMはiPhone 12上で1枚の画像を処理するのに1.35秒しかかからず、元の数分よりもはるかに速いです。この速度向上は、ユーザー体験を改善するだけでなく、リアルタイムカメラアプリ内での背景除去やオブジェクト追跡などの新しいアプリケーションを開拓しました。

オープンソースコードは多様なデプロイメントフレームワークとカスタムトレーニングをサポート

プロジェクトは完全なPyTorchコードを提供しており、事前トレーニングモデルのダウンロード、推論デモ、トレーニングスクリプトが含まれています。開発者はONNXまたはTensorRT形式に直接変換して、Android Neural Networks APIまたはiOS Core MLにデプロイできます。GitHubページには、異なるハードウェア上での速度と精度を比較した詳細なベンチマーク表もあり、プロジェクトに適したものを迅速に評価できます。

モデルを微調整したい研究者向けに、MobileSAMはカスタムデータセットのトレーニングをサポートしており、プロンプトポイントとマスクアノテーションを準備するだけで、専用のモデルを生成できます。この柔軟性により、プロジェクトは単なるツールにとどまらず、特にエッジコンピューティングやモバイルAI分野におけるAI開発の出発点となります。

モバイルアプリに簡単に統合して画像処理能力を向上

MobileSAMを使用することで、アプリ開発者は数行のコードでSAM機能を組み込むことができ、カメラプレビュー内でオブジェクトをクリックすると自動的に分割されます。従来の画像処理ライブラリと比べて、彼のゼロショット能力はより強力で、個々のオブジェクトの検出器をトレーニングする必要がありません。プロジェクトは、入力画像から出力マスクまでの全プロセスを示す画像サンプルをassetsフォルダ内に提供しており、直感的で使いやすいです。

総じて、MobileSAMは高度な画像分割を一般的なモバイルアプリケーション時代に持ち込み、モデルのデプロイメントにおける最大の障壁を解決しました。独立したアプリでもSDK統合でも、製品の競争力を大幅に向上させることができます。

製品名:MobileSAM
公式サイト:https://github.com/ChaoningZhang/MobileSAM

Nakumura
Nakumura
関連サイト:中文版 / TechRitualThe Base Principle