使用Core ML在iOS设备上运行waifu2x

waifu2x是一个日本人开发的图像超采样应用,其主要用于对动漫风格的图片进行无损放大操作,同时也支持照片。(事实上只要有相应的训练集,任何类型的图片都可以支持)Core ML是Apple在WWDC 2017上发布的深度学习框架,基于Metal,所以性能非常可观。

在6月观看WWDC直播的时候,除了新款iPad Pro,更让我感兴趣的是Core ML及ARKit这两个框架,它们的发布大大降低了深度学习及增强现实应用的开发门槛。当时我就想到了waifu2x这个项目,感觉有直接用Core ML在移动设备上实现waifu2x的可能性,但后来由于在忙其他事情暂时搁置了这个想法。

时间一天天过去,转眼iOS 11就要正式发布了,我也拥有了付费的开发者账号。在将XCode更新到9的正式版后想起来了当初的这个idea,于是开始着手实现。

所谓“知己知彼,百战不殆”,首先当然是要学会Core ML的使用方法。Awesome-CoreML-Models收集了不少基于Core ML的开源项目,对于我这种初学者来说是非常好的学习资料。

移植过程其实非常简单:首先将waifu2x-caffe中提供的caffe版模型用python脚本转换成Core ML格式,然后导入XCode中会自动生成Swift类,用这个类中的prediction方法即可运行模型预测。

最后上代码:https://github.com/imxieyi/waifu2x-ios

顺便说一句这个应用已经上架App Store:

文章目录
|