はじめに
DisPoseは、制御されたキャラクター画像アニメーション生成に焦点を当てた革新的なオープンソースの人工知能プロジェクトです。研究者チームによって開発され、GitHubでオープンソース化されたこのプロジェクトは、高度なディープラーニング技術を採用し、骨格ポーズ情報を分解することで、正確なキャラクターアニメーション制御を実現しています。DisPoseの中核となる革新的な技術は、疎な骨格ポーズ情報を2つの重要な要素、すなわち、モーションフィールドガイダンスとキーポイント対応に分解することであり、この独自のアプローチにより、より自然で滑らかなアニメーションが生成されます。このユニークなアプローチにより、生成されるアニメーションはより自然で滑らかで、よりコントロールしやすくなります。このプロジェクトは、完全なコード実装を提供するだけでなく、研究者や開発者がこの技術を迅速に展開し使用できるように、事前に訓練されたモデルも含んでいる。
似たようなアイテムStableAnimator:キャラクターの特徴を維持した高品質のビデオアニメーションを生成します。
機能一覧
- 人間の姿勢検出とキーポイント抽出
- スポーツフィールドの生成と制御
- キャラクター画像アニメーションの合成
- 複数の関節を正確にコントロール
- 顔と手のディテール
- バッチビデオ処理機能
- 姿勢の移動と動作の方向転換
- リアルタイムの姿勢推定とトラッキング
- カスタムアニメーション制御パラメータ調整
- 高品質のアニメーション出力
ヘルプの使用
1.環境構成
DisPoseには以下の基本的な環境設定が必要です:
- Python 3.10以降
- PyTorch 2.0.1以上
- トーチビジョン0.15.2以上
- CUDA 12.4(GPUアクセラレーション用)
インストールの手順
# conda環境の作成
conda create -n dispose python==3.10
condaがdisposeをアクティブにする
#のインストール
pip install -r requirements.txt
2.モデルの準備
- Hugging Faceから訓練済みモデルの重みファイルをダウンロードする:
- https://huggingface.co/lihxxx/DisPose
- DisPose.pthファイルのダウンロード
- ファイルを ./pretrained_weights/ディレクトリに置く。
3.コア機能の利用フロー
3.1 姿勢検出
このシステムは、人間の姿勢検出のためにDWPose検出器を使用し、以下の重要なポイントを識別する:
- 身体骨格の関節点 (18)
- 顔の特徴点 (68)
- ハンドのポイント(21/ハンド)
3.2 画像の前処理
# 参照画像を処理する
ref_image = load_image(image_path)
pose_img, ref_pose = get_image_pose(ref_image)
3.3 ビデオ処理
# ビデオシーケンスの処理
video_pose, body_points, face_points = get_video_pose(
video_path=video_path, ref_image=ref_image, ref_image
ref_image=ref_image、
sample_stride=1
)
3.4 アニメーション生成制御
このシステムには、アニメーション生成を制御するためのいくつかのパラメータが用意されている:
- スタジアム強度規制
- キーポイントはウェイトに対応
- 姿勢移動の程度
- タイミングのスムーズさ
4.高度な機能の説明
- 姿勢の移行:
- ソースビデオからターゲットキャラクターへのポーズ移行をサポート
- キャラクターの同一性を保つ
- 体格差に自動的に適応
- アクションエディター
- 地元の行動修正をサポート
- キーフレーム編集機能の提供
- 動作の速度と振幅を調整可能
- バッチ処理機能:
- バッチビデオ処理をサポート
- 並列処理オプションを提供
- リソーススケジューリングの自動最適化
5.注意事項
- 入力画像の品質が明確で、人物のポーズが完全に見えることを確認する。
- GPUビデオメモリは8GB以上を推奨
- 高解像度のビデオを処理する場合は、sample_strideパラメータを調整する。
- 依存パッケージのバージョンを定期的にチェックし、更新する。
- 大量のデータを処理する前に、小規模なテストを行うことをお勧めします。
6.一般的な問題の解決
- メモリの問題:
- release_memory()で未使用リソースを解放する。
- バッチサイズを適切に変更する
- 低解像度でのテスト
- パフォーマンスの最適化:
- GPUアクセラレーションを有効にする
- 適切なサンプリング・ステップ・サイズを使用する
- 最適化された入力画像解像度
- 質の向上:
- 高品質な参考画像の使用
- モデル・パラメーターの調整
- ポスト処理の最適化