は、今年前半に SAM: SegmentAnythingModel を提案しました。これは、CV 分野でセンセーションを巻き起こしました。その後、多くの興味深いアプリケーション結果が SAM に基づいて進化しました。以前の一連のブログ投稿は次のとおりです。興味がありましたら、ご自身で行ってください。読書:
「Segment Anything Model (SAM) - ロールアップされた、すべてを分割すると主張する大きな CV モデルがここにあります」
「Segment Anything Model (SAM) - すべてをセグメント化、予測プロンプト入力による画像セグメンテーションの練習」
「SAM-FAST: PyTorch による生成 AI の高速化: 何でもセグメント化、高速は、公式 PyTorch チームに基づいてネイティブ SAM を開発し、8 倍高速化します」
先月、11 月末に、別のチームがまったく新しい研究結果を発表しました。これを PAM: PoseAnythingModel と呼びます。公式テキストはここここです。 a> (以下に示すように):
従来の 2D 姿勢推定モデルはクラス固有の設計によって制限されており、事前定義されたオブジェクト クラスにのみ適用できます。この制限は、関連するトレーニング データが不足しているため、新しいオブジェクトを扱う場合に特に困難になります。
この制限に対処するために、著者らはクラス非依存姿勢推定 (CAPE) を導入しました。 CAPE は、単一のモデルを使用して任意のオブジェクト クラスのキーポイントの位置特定を達成することを目的としており、必要なアノテーション付きキーポイントを含むサポート画像は最小限です。この方法は、任意のキーポイント定義に基づいてオブジェクトの姿勢を生成できるだけでなく、関連コストを大幅に削減し、多用途で適応的な姿勢推定アプリケーションへの道を開きます。
この記事では、新しく設計されたグラフ変換デコーダを通じてキーポイント間の固有の幾何学的関係を利用する新しい CAPE 手法を提案します。この重要な構造情報を取得して組み込むことにより、私たちのアプローチはキーポイントの位置特定の精度を向上させ、キーポイントを孤立したエンティティとして扱う従来の CAPE 手法から大きく脱却します。
著者らは、100 以上のカテゴリーにわたる 20,000 以上の画像を含む包括的なデータセットである MP-100 ベンチマークで私たちの手法を検証しました。私たちの方法は最先端の方法を大幅に上回り、1 ショット設定と 5 ショット設定でそれぞれ 2.16% と 1.82% の大幅な改善を達成しました。さらに、提案された方法のエンドツーエンドのトレーニングは、以前の CAPE 方法と比較してスケーラビリティと効率性を示しています。
関連する技術的な詳細について詳しく知りたい場合は、オリジナルの論文を自分で読むことができます。
著者のブログはここにあります。
著者は論文を公開したときに、以下に示すようにここにあるプロジェクトのアドレスもオープンソース化しました。
現時点ではあまり人気がありません。
まずは使ってみたい、体験してみたいという方のために、作者が直接使えるミラーを用意していますので、操作方法は以下の通りです。
docker pull orhir/pose_anything
docker run --name pose_anything -v {DATA_DIR}:/workspace/PoseAnything/PoseAnything/data/mp100 -it orhir/pose_anything /bin/bash
モデルの開発と学習はpython3.8環境をベースにしており、PyTorchはバージョン2.0.1、CUDAはバージョン12.1となっており、開発者はリファレンスとして利用できます。
次の 2 つの基本ライブラリを事前にインストールする必要があります。
mmcv-full=1.6.2
mmpose=0.29.0
インストールが完了したら、次を実行します。
python setup.py develop
著者の論文で使用されている事前トレーニング済みの Swin Transformer を使用したい場合は、ここから対応する重みファイルをダウンロードできます。
トレーニング実行コマンドは以下のとおりです。
python train.py --config [path_to_config_file] --work-dir [path_to_work_dir]
著者は、MP-100 データセットに基づいて全体的な開発、トレーニング、評価作業を完了しました。関連するモデルは次のとおりです。
ワンショットモデル
設定 | 分割1 | スプリット2 | スプリット3 | スプリット4 | スプリット5 |
---|---|---|---|---|---|
小さい | 91.06 | 88024 | 86.09 | 86.17 | 85.78 |
リンク / 設定 | リンク / 設定 | リンク / 設定 | リンク / 設定 | リンク / 設定 | |
小さい | 93.66 | 90.42 | 89.79 | 88.68 | 89.61 |
リンク / 設定 | リンク / 設定 | リンク / 設定 | リンク / 設定 | リンク / 設定 |
5ショットモデル
設定 | 分割1 | スプリット2 | スプリット3 | スプリット4 | スプリット5 |
---|---|---|---|---|---|
小さい | 94.18 | 91.46 | 90.50 | 90.18 | 89.47 |
リンク / 設定 | リンク / 設定 | リンク / 設定 | リンク / 設定 | リンク / 設定 | |
小さい | 96.51 | 92.15 | 91.99 | 92.01 | 92.36 |
リンク / 設定 | リンク / 設定 | リンク / 設定 | リンク / 設定 | リンク / 設定 |
評価実行コマンドは以下のとおりです。
python test.py [path_to_config_file] [path_to_pretrained_ckpt]
後で時間を見つけて、フィールドテストのために詳細な環境をセットアップするつもりです。