unity是目前应用广泛的游戏引擎,通过unity可以很方便的制作游戏。随着人工只能的发展,将训练模型与游戏结合可以进行许多有意思的创造。正好最近有个项目需要用深度模型处理后的结果与游戏进行交互,查阅资料发现在unity下部署训练后的模型没有什么人教,这就摸索实验一下。
因为牵扯到图像计算处理,方便快捷上手的话还是选择先基于opencv进行操作。查阅资料发现,目前最新的在unity下可用的opencv为opencv for unity2.6.5,可以看到它所支持的最低版本为2021.3.35或更高,所以选了一个长期支持的unity版本2022.3.52。
这个挺贵的,大家看经济情况进行选择,或者去某宝(不鼓励)会便宜一些。安装之后可以下载它的例子跑一跑进行学习。它的例子有些可能需要连vpn才能下载,但整体来说还是很全面的。
现在主流的神经网络模型多是基于torch模型进行训练和推理,在opencv当中也提到了其模型可以依据caffe,torch和tensorflow来进行初始化。但其实我也不太能理解他具体要怎么实现。因为torch不同版本对激活函数,网络层的实现方式是不一样的,我不相信opencv能进行统一。因此最稳妥的方式是转成通用的onnx模型进行实现。恰好在下载例子的时候我看到了很多.onnx的模型。这就为我们选用onnx进行部署提供了可能。
我们先看看opencv的例子。他最简单的DNN例子为图片着色。