Unity

【unity】機械学習する環境を設定してみた

投稿日:

今回は、unityで機械学習を行えるようにするライブラリ「ml-agents v0.6.0」を導入してみました。

ml-agents v0.6.0を導入することで、unityで強化学習を開発することができるようになります。

 

 

この記事では、ml-agentsをインストールし、機械学習のサンプルモデルを動かすところまでを解説します。

私が躓いたところ、わかりずらかったところをまとめていきます。

調べて自己解決できたので2時間ほどで導入できました。

 

以下が設定環境です。

OS:Windows10

Anaconda3導入済み(まだの人はこちらから:https://www.anaconda.com/)

Python3.6.8

スポンサーリンク

 

 

 

■unityで機械学習するまでの手順

以下unityで機械学習するまでの手順をまとめていきます。

全体の流れとしては以下の通りです。

1.Pythonをインストール

2.ml-agents-toolkit(機械学習のデータそのもの)をインポート

3.TensorflowSharpをインポート

4.強化学習してみる

それぞれ細かく見ていきます。

 

1.Python3.6をインストール

まず初めにPythonをインストールしておきましょう。

ml-agentsの推奨versionが3.6だったので、私はPython3.6.8をインストールしました。

公式HPのリンクを張っておきますので、以下リンクからどうぞ。

https://www.python.org/

 

Pythonのversionを確認したいときは、コンソール上で、以下のコマンドで確認できます。

 

 

2.ml-agents-toolkitをダウンロード・インポート

次にml-agents-toolkitをインポートしましょう。

以下のリンク先の「clone or download」をクリックでダウンロードできます。

https://github.com/Unity-Technologies/ml-agents

ml-agents-toolkitには、機械学習済みモデルやサンプルシーンなどが入っています。

ダウンロード先はどこでも大丈夫です。私は、unityで新しく3Dプロジェクトを立ち上げてから、そのファイル内に入れました。

 

ダウンロードが完了したらインポートしていきましょう。

まずml-agentが使用するTensorflowなど機械学習に必要なライブラリをまとめてダウンロードしましょう。

Anaconda Navigatorを開きます。Windows検索ボックス(ショートカットキー:「Shift+S」)にAnaconda Navigatorと検索すればでてきます。

起動後、左シェルフの[Environmnts]、画面下側の[Create]をクリック。

次に、新規環境を[Name:適当でOK]と[Python:3.6]と選択し、[Create]をクリック。

下の画像を参照してください。

新規環境ができたら、新しく作成したml-agentsの▶をクリック、[Open Terminal]を選択。すると、コマンドプロンプトが立ち上がります。

 

コマンドプロンプト上で、「cd フォルダ名」を使ってml-agents-toolkitを保存したディレクトリまで移動します。

 

移動したらさらにcdコマンドを使って、ml-agents-master>ml-agentsまで移動します。

ml-agentディレクトリは、「setup.py」があるはずなのでそこを目安にしてください。

dirコマンドでディレクトリ内を表示させると以下のような表示になります。

 

 

ここで、以下のコマンドを入力すれば機械学習に必要なライブラリをまとめてインストールできます。

インストールには少々時間がかかるので待ちましょう。

 

 

インストールが終わったら、以下のコマンドでインストールしたライブラリを確認してみてください。tensorflowなどもろもろがインストールされているはずです。

 

私のコンソール上ではこんな風に表示されます。

 

機械学習に必要なライブラリをインストールしたので、unityでml-agentを開いてみましょう!

 

unity上で、[File]>[OpenProject]をクリックし、プロジェクト選択画面を開きます。

 

新しく開いたプロジェクトウィンドウ右上にある[Open]をクリックし、ダウンロードしたml-agents-masterディレクトリ内のUnitySDKディレクトリを選択し開きます。

 

これで、ml-agentsのインポートは終わりです。次にunity上でtensorflowを動かすためのプラグイン[TensorFlowSharp]をインポートしていきます。

 

 

3.TFsharpをインポート

以下のリンク先からTensorflowSharpをダウンロードしてください。保存先はどこでも大丈夫です。

https://s3.amazonaws.com/unity-ml-agents/0.5/TFSharpPlugin.unitypackage

 

unitypackageなので、ダウンロードし終えたら、ダブルクリックで開けます。[Import]をクリックするとインポートが始まります。

 

インポート後、[Edit]>[Project Settings]>[Player]>[Other Settings]へ進み、[Scripting Define Symbol]の空欄に「ENABLE_TENSORFLOW」を記入し、下の[Allow ‘unsafe’ Code]にチェックを入れる。

 

これでTensorflowSharp Pluginのインポートはおわりです。

 

 

 

4.実際に動かしてみる

必要なものはそろったので、実際に機械学習したサンプルデータを動かしてみましょう!

unity上で、[Project]>[ML-Agents]>[Examples]>[3DBall]>[Scenes]>[3DBall]をダブルクリック。

 

[Play▶]ボタンを押すと、板に球が落ちてきてくる様子が確認できると思います。

このモデルは、Playerつまり自分で操作するモデルになります。十字キーで板を動かせます。

 

次に、[Hierarchy]内の[Game11]>[Platform]をクリック。

[Inspector]>[Ball 3D Agent(Script)]>[Brain]に、[Project]>[ML-Agents]>[Examples]>[3DBall]>[Brains]の[3DBallLearning]をドラッグ&ペーストしてみてください。

以下の画像を参照してください。

 

Brainは機械学習のモデルを指定します。3DBallLearningは、あらかじめ学習させておいたモデルです。そのため、3DBallLearningを使うと、球が落ちないように板が制御されます。

[Play ▶]して確認してみてください。

 

 

スポンサーリンク

 

 

 

■ml-agents導入時に出たエラーの対処法

 

・The brain 3DBallLearning was set to inference mode but the Tensorflow library is not present in the Unity project.

unity上で、[Edit]>[Project Settings]>[Player]>[Other Settings]を選択。

[Scripting Define Symbol]の空欄に「ENABLE_TENSORFLOW」と記入し、下の[Allow ‘unsafe’ Code]にチェックを入れることで解決できます。

 

 

 

 

・The type or namespace name ‘TensorFlow’ could not be found

tensorflowがインストールされていません。コンソール上で、tensorflowをインストールする必要があります。

コンソール上で以下のコマンドでインストールできるかと思います。

 

 

 

■まとめ

今回は、unityで既存のモデルを動かすところまでをまとめてみました。

まとめてみると意外と長い…

ml-agentsに関する書籍を紹介。

日本語でml-agentsに関する情報はまだまだ少ないので気になる方は購入を検討してもいいと思います。

Unityではじめる機械学習・強化学習 Unity ML-Agents実践ゲームプログラミング

Unityではじめる機械学習・強化学習 Unity ML-Agents実践ゲームプログラミング

布留川 英一
3,520円(12/15 07:01時点)
発売日: 2018/08/03
Amazonの情報を掲載しています

次回は既存のモデルに学習させるところをやってみようと思います。

 

 

最後まで読んでいただきありがとうございました。

 

参考URL:

甲斐 甲様の記事, https://qiita.com/kai_kou/items/2a6545d1f9d83178d0c0

unity公式ガイド:https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Basic-Guide.md

 

スポンサーリンク

 

当サイト(your-3d.com)の管理人のゆあーさんと申します。

このサイトでは、私がZBrushやunityなどで調べたことをわかりやすく共有出来たらいいなと思い開設しました。

読んでくださった皆様のお役に立てたら幸いです。

 

Twitter:

@yoursun3d

 

Booth(3Dモデル販売してます!):

https://your-3d.booth.pm/

 

Amazonほしいものリスト:

https://www.amazon.jp/hz/wishlist/ls/YIXXWB7FVXHG?ref_=wl_share