【Windows11】UnrealCV使ってみた【UE4】
0.はじめに
Unreal Engine4を組み合わせて人工知能の開発と行うと思い立ったところ,
UnrealCVというものを見つけたため,使い方を学ぶことと,備忘録を兼ねて執筆していきます.
開発の速報はYouTube,Instagram,Twitterなどで発信していますので,ご興味がありましたらフォローのほうよろしくお願いします.
-----------------------------------------
1.使用する参考サイト
このサイトのドキュメントを参考に作業していきます.
一部,コードなどを修正などしてやっていきます.
-----------------------------------------
2.サンプルバイナリの実行
ダウンロードしたexeを実行してみました.
とてもGPUを使用するので動作環境には気を付けましょう.
-----------------------------------------
3.Pythonコマンドからキャプチャ
▼Pythonからアプリ内をキャプチャしてみましょう.
from unrealcv import client
client.connect() # Connect to the game
if not client.isconnected(): # Check if the connection is successfully established
print('UnrealCV server is not running. Run the game from http://unrealcv.github.io first.')
else:
filename = client.request('vget /camera/0/lit')
print(filename)
filename = client.request('vget /camera/0/depth depth.exr')
▼lit.pngが保存されます.
-----------------------------------------
4.カメラ軌跡の保存
▼カメラの位置,画角を5秒ごとに5回保存する関数です.
import sys, atexit, argparse, json, time
sys.path.append('..')
from unrealcv import client
trajectory = []
# ---------------------------------
# save trajectory
#
def save_to_file(filename):
print("save section.........")
if len(trajectory) != 0:
print("save section......... ok")
with open(filename, 'w') as f:
json.dump(trajectory, f, indent = 4)
if __name__ == '__main__':
# ********************************************************
# init
#
parser = argparse.ArgumentParser()
parser.add_argument('--filename', default='camera-trajectory2.json')
args = parser.parse_args()
atexit.register(save_to_file, args.filename)
# ********************************************************
# connect
#
client.connect()
# ********************************************************
# record
#
for i in range(5):
print("!! trajectory [{}]!!".format(i+1))
rot = [float(v) for v in client.request('vget /camera/0/rotation').split(' ')]
loc = [float(v) for v in client.request('vget /camera/0/location').split(' ')]
trajectory.append(dict(rotation = rot, location = loc))
time.sleep(1)
if not client.isconnected():
print('Can not connect to the game, please run the game downloaded from http://unrealcv.github.io first')
else:
time.sleep(5)
*ちなみに下記リンクに必要なファイルが用意されていました.
#Shorts
#unrealcv
#unrealengine
#unreal
#computervision
#machinelearning
#Python
#pythonprogramming
この記事が気に入ったらサポートをしてみませんか?