某个无聊的下午,在博客园刷帖时无意发现一篇介绍关于风格迁移的文章,提到某个国外团队在这方面研究的最新进展。
他们实现了一个网络,可以把真人的照片转为二次元卡通图片,效果非常好。
下面是一个演示的效果:
说实话,看到这种效果还是很令人震撼的。
正是看了这篇论文激发了我研究机器学习的兴趣,当时还买了Python、Pytorch、TensorFlow等方面的书恶补了一把,最后由于水平原因,没有成功!
不过,正所谓:有心栽花花不开,无心插柳柳成荫。我发现在工业自动化领域如果有涉及到机器学习的需求,采用TensorFlow.NET来解决是一个非常好的方案。目前大部分AI解决方案都是基于WEB服务的,这种架构在工业应用领域就不太合适,如果能采用C#来消费学习好的模型将是一个非常好的方案。近期我采用该方案实现了一个电信号波形的类型识别,取得了不错的效果。
工业领域的应用一般不会特别复杂,模型也相对简单,最大的问题是样本不足(主要是负例样布不足),而GAN恰好可以用来生成负例样布。
本文提供的源码内有两个GAN的例程,功能是实现绘制二次元妹子,其中GAN_Anime_Faces绘制灰度图像,GAN_Anime_Faces_Color绘制彩色图像,代码都是参考了官方Samples源码。
以下是运行结果:
总体效果不是特别理想,而且即使加大训练时间,实现效果也没有明显提升。由于目前工作需要用到的机器学习相关技术都比较浅,所以就没有再继续深入研究下去了。
最后,给这个系列的文章做一个简单的小结:
1、目前机器学习的主流语言仍是Python,有志在这个领域发展的同学肯定还是要以Python为主,Tensorflow.NET适合非常熟悉C#同时想尝鲜机器学习的同学;
2、关于Tensorflow和torch的选择问题,目前似乎torch人气更高,我是因为Torch.NET不好用才选择Tensorflow.NET;
3、在工业应用领域,C#有很大的应用空间,简单的情况采用Tensorflow.NET是一个很好的方案,复杂的系统可以采用Python训练、C#消费的方案。
这个系列就到这里了,后面要专心学习WPF去了。Tensorflow.NET项目一直都在更新维护,有希望深入的朋友可以继续持续关注。
【相关资源】
源码:Git: https://gitee.com/seabluescn/tf_not.git
【参考资料】
TensorFlow.NET (scisharp.github.io)