Python + AI を使用して、子供の手描きの絵をジャンプさせます (完全なソースコードが添付されています)

みなさん、こんにちは。今日は、 AI 認識に基づいて、子供たちの手描きのダンスの絵を作成する、非常に興味深いプロジェクトを紹介します

子どもの手描きのキャラクターや人型キャラクター (つまり、2 本の腕や 2 本の脚などを持つキャラクター) のアニメーションをわずか数分で自動的に生成し、生成されたアニメーションは本物そっくりです。

ダンスだけでなく、テコンドーをしたり、空を蹴ったり、人間の動きをシミュレートしたりすることもできます。

写真

プロジェクト紹介

このプロジェクトは現在、macOS と Ubuntu システムでのみテストされており、Windows システムでは問題が発生します。

私はUbuntu20.04システムを使用していますが、基本的には問題ありません。

それは大まかに以下のようなプロセスを経て実現される。

  • 物体検出による人物認識

  • キャラクターマスクを使用してシーンから人間の姿を持ち上げる

  • 「リギング」でアニメーションの準備をする

  • 2Dキャラクターアニメーションを作成する3Dモーションキャプチャ

写真

次に、Xiao F がデプロイ方法を教えます。

プロジェクトのデプロイ - Python

テクノロジーは共有とコミュニケーションを学ぶ必要があり、密室で作業することはお勧めできません。1 人で速く進むこともできますし、グループでより遠くまで進むこともできます。

この記事の完全なコードは次のようにして取得できます。

方法①、WeChat IDを追加: dkl88194、備考: CSDNより + AIペイント
方法②、WeChat検索公式アカウント: Python学習とデータマイニング、背景返信: AIペイント

まず、Python 環境の作成を容易にするために、Anaconda (バージョン 4.11.0) をインストールする必要があります。

Anacondaのインストール方法は、Baiduを自分で行うことができ、比較的簡単です。

インストール後、仮想環境を作成し、プロジェクトをダウンロードして、必要な依存関係をインストールします。

# 创建虚拟环境
conda create --name animated_drawings python=3.8.13

# 激活环境
conda activate animated_drawings

# 下载项目
git clone https://github.com/facebookresearch/AnimatedDrawings.git

# 打开目录文件
cd AnimatedDrawings

# 安装依赖
pip install -e .

git がインストールされておらず、プロジェクトをダウンロードできない場合は、Xiao F が提供するファイルを直接使用できます。

プロジェクトの展開 - 実行

1. クイックスタート

すべての設定が完了したので、描画をアニメーション化してみましょう。

ターミナルで次のコードを使用します。

(animated_drawings) AnimatedDrawings % python

# 在Python终端里运行如下代码
from animated_drawings import render
render.start('./examples/config/mvc/interactive_window_example.yaml')

この yaml 設定ファイルの内容を見てみましょう。

写真

以下のファイルが含まれています。

Character_cfg - オブジェクト ファイル

motion_cfg - モーション ファイル

retarget_cfg - ターゲット ファイルを識別します

このうち、ターゲットファイルは以下の種類が利用可能であり、ターゲットの具体的な状況についてはjoint_overlay.pngを確認することができます。

写真

アクション ファイルでは、ジャズ ダンス、ジャッキング、その他のアクションなど、次のカテゴリを使用できます。

写真

ターゲット認識ファイルは、人間のようなターゲットだけでなく、さまざまなタイプのターゲットの次のカテゴリで利用できます

四本足のブタや六本腕のカブトムシもいますよ~

写真

4 つの脚を持つオブジェクト認識ファイル。

写真

6 つのアーム用のオブジェクト認識ファイルもあります。

写真

最後に、上記のコマンドを実行すると、デスクトップのポップアップ ウィンドウにアニメーションが生成されます。

スペースバーを使用してシーンを一時停止/一時停止解除し、矢印キーを使用して前後に移動し、q キーを使用して画面をオフにします。

写真

元の絵はこんな感じです。

写真

子どもたちの傑作を生き生きとしたゴールに変えるのはとても面白いと思いませんか。

キャラクター、アクション、またはシーンを変更する場合は、上記の手順に従って、interactive_window_example.yaml ファイルの内容を置き換えることができます。

2.MP4ビデオをエクスポートする

アニメーションをウィンドウで直接表示するのではなく、ビデオ ファイルとして保存したい場合。

Python インタープリターでは次のコードを使用できます。

from animated_drawings import render# 导出MP4视频render.start('./examples/config/mvc/export_mp4_example.yaml')

構成ファイルの内容には、上記のファイルよりもさらにいくつかのパラメーターが含まれています。

写真

結果は以下の通りです。
写真

3. 透明GIFをエクスポート

mp4 ファイルではなく透明な gif ファイルが必要な場合があります。

次のコードをコピーして、Python インタープリターで実行できます。

from animated_drawings import render

# 导出GIF文件
render.start('./examples/config/mvc/export_gif_example.yaml')

構成ファイルの内容にも注目してください。これは、mp4 をエクスポートするための設定とそれほど変わりません。

写真

4. ヘッドレスレンダリング

ヘッドレスでビデオを生成する場合 (たとえば、ssh 経由でアクセスされるリモート サーバー上で)、次のコードを構成ファイルに追加できます。

view:    USE_MESA: True

5. 自分の絵を描きます

たくさんの例について話した後は、誰もが自分が描いた絵をアニメーション化する方法を本当に知りたいと思うはずです。

次の小さな F では、それを実現する方法を紹介します。

さまざまなターゲットに対してターゲット ファイルを生成する必要がありますが、作成者はそれらを生成する便利な方法も提供しています。

著者らは、描画人物検出器**** と姿勢推定器をトレーニングし、モデル予測に基づいて注釈ファイルを自動的に生成するスクリプトを提供しています。

写真

アクションファイルとターゲット認識ファイルについては、まず作者が提供するものを使用できます。

まず、提供された画像を機械学習モデルにすばやくフィードして予測結果を取得できるように、TorchServe Docker コンテナを実行する必要があります

Docker の場合は、自分でインストールし、次のコマンドを使用して環境を構築できます。

(animated_drawings) AnimatedDrawings % cd torchserve

# 创建镜像
(animated_drawings) torchserve % docker build -t docker_torchserve .

# 运行容器
(animated_drawings) torchserve % docker run -d --name docker_torchserve -p 8080:8080 -p 8081:8081 docker_torchserve

約 10 秒待った後、サーバーに ping を実行して、Docker と TorchServe が適切に動作していることを確認します。

(animated_drawings) torchserve % curl http://localhost:8080/ping

# should return:
# {
    
    
#   "status": "Healthy"
# }

サービスをセットアップしたら、次のコマンドを使用して画像にアニメーションを生成させることができます。

(animated_drawings) torchserve % cd ../examples
(animated_drawings) examples % python image_to_animation.py drawings/garlic.png garlic_out

原画はこんな感じで、友人に頼んで描いたのですが、描いている途中で色々と問題点が見つかりました。

写真

Little F、magic dance が引いた結果を見てみましょう。

設定ファイルのアクション タイプを変更すると、ジャッキング ジャンプが可能になります、ははは。

写真

描画には白紙を使用する必要があることがわかりました。そうしないと、ターゲットのセグメンテーションに問題が発生します。

また、図面ではターゲット全体が閉じていることを確認する必要があります (実際、色が付いている場合もほぼ同じです)。そうしないと、エラーが報告されやすくなり、空白が生じてしまいます。

たとえば、上の写真では輪郭が閉じていないため、手と足の色は同じではありません。

6. その他の操作

間違った予測の修正、シーンへの複数のキャラクターの追加、背景画像の追加、異なるスケルトンを持つ BVH ファイルの使用、BVH ファイル (モーション ファイル) のカスタマイズ、キャラクター スケルトンの追加などもあります。

写真

興味のある友達は自分で学ぶことができます。

要約する

以上の操作により、子どもたちのお絵かきやダンスがAIによって実現されます。

興味のある友達は、子供たちに幸せを提供するために自分で試してみることができます。

おすすめ

転載: blog.csdn.net/2301_78285120/article/details/130918177