繁体   English   中英

Unity - 运行神经网络

[英]Unity - Running a Neural Network

我使用 PyTorch 训练了一个模型。 在 Unity 中,我使用WebCamTexture来显示实时视频。 如何将网络摄像头帧输入 PyTorch 模型,然后使用模型的输出在 Unity 中执行操作?

我找到了 Unity ML-agents,但它似乎对这种情况没有帮助。

您可以在每次更新时捕获凸轮数据,然后通过提供您刚刚捕获的数据来运行您的 pytorch 模型。 我还没有尝试过,也不确定 pytorch 是如何工作的,但是对于通用的 python 脚本,您可以执行以下操作:

...
void Start()
{
    ...
    data = new Color32[webcamTexture.width * webcamTexture.height];
    ...
}
...
void FixedUpdate ()
{
    ...
    webCamTexture.GetPixels32(data); //this is faster than returning a Color32 object
    ...
} 

...

private void runPython(string pathToPythonExecutable, string pyTorchScript, Color32[] data)
{
     var startInfo = new ProcessStartInfo();
     var pyTorchArgs = convertDataToYourPyTorchInputFormat (data)
     startInfo.Arguments = string.Format("{0} {1}", pyTorchScript, pyTorchArgs);
     startInfo.FileName = pathToPythonExecutable;
     startInfo.UseShellExecute = false;
     var process = Process.Start(start));
     process.WaitForExit();
     //do stuff in unity with the return value of process (process.ExitCode) or whatever.
}

请注意,使用外部可执行文件创建和结束进程可能会产生大量开销。 有一些库允许您在 c# 中运行 python 脚本。 我可以想到 2: IronPython ( http://ironpython.net ) 和 Python for .Net ( http://pythonnet.github.io ) 虽然我从未尝试过。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM