概要
UnrealCVというプラグインを用いてUnrealEngine(Ver4.27)で下図のような
SemanticSegmentation画像をCG空間から取得する方法を説明していきます。
今回は環境設定から簡単な取得方法までを説明していきます。
目次
- 実行環境
- UnrealCVとは?
- プラグイン取得
- VisualStudioで再ビルド
- Segmentationの取得
- 終わりに
実行環境
Python 3.7.13
UnrealCV 0.4.0
上に加えてUnrealEngine4.27とビルド用にVisualStudioを用いています。
またUnrealEngineは2022/10/20時点でVer.5.0がリリースされていますが、UnrealCV側が未対応のため、
対応中で最新の4.27を用いています。
UnrealCVとは
UnrealEngineから原画像、Segmentation画像、Depth画像を手軽に取得できるプラグインです。
現実で取得が難しいシーンや面倒なSegmentation画像作成を自動でできる点で非常に優れています。
論文も無料で読めるので興味があればぜひ読んでみてください。
プラグイン取得
それでは早速環境を設定していきましょう。
まずはライブラリを取得していきます。最新版をインストールして特に問題ないと思います。
pip install unrealcv
次にプラグインをGithubからダウンロードします。
このときtreeが4.27になっていることを確認してください。
ダウンロードできたらファイルを解凍してbuild.pyをたたきます。
python build.py
実行すると文字がたくさん表示されて、終わりに「BUILD FAILED」と表示されます。
表示の通りビルドが失敗しています。
ここで学部生時代躓いて2日ほど無駄にしたので、ここからが本記事のミソです。
実はbuild.pyを実行した後「Plugins」フォルダが生成されています。
このフォルダを用いてビルドを完了させていきます。
Visual Studioで再ビルド
まずはVisual Studioで新しいプロジェクトを作成します。
そして作成したプロジェクトの中に先ほどのPluginsフォルダを移動させます。
そしたらVisual Studio側からビルドを実行します。
実行後Pluginsフォルダを潜っていき、「HostProject」をクリックしてUEのProjectを起動させます。
このとき複数のUEのバージョンをダウンロードしていると選択画面が表示されるので「4.27」を選択してください。
以上で環境設定は完了です。
ほかのプロジェクトで使用する場合は「HostProject」と同列にある「Plugins」をほかのUEのプロジェクトファイルに
コピーして使用してください。
Segmentation画像の取得
それでは実際に使用してみましょう。
下図のように適当にオブジェクトを配置します。
プレイを押してゲーム画面をクリックしゲーム内に入り、「`」キーを2回おして以下のコマンドを入力します。
vget /camera/1/lit lit.png
vget /camera/1/object_mask mask.png
終わりに
UnrealCVの環境構築を紹介しました。
CGを用いてのSegmentatino画像の取得は様々な用途で使用できるので興味があればぜひ使ってみてください。
Qiita初投稿で伝わりづらい部分があると思いますので、わからない箇所は質問いただけると幸いです。
また上で紹介したコマンドをたたくだけでは実用的でないので、Python、ブループリントを用いて
自動で取得できる方法を随時紹介していこうと思います。
研究室時代、これを発展させて強化学習環境構築まで行ったのでそこまで紹介できると少しでも無駄な労力が減ると思います。
それではまたお会いしましょう。。