本文主要是介绍pytorch+u2net实现天空分割(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、改进
距离上次天空分割过去有些时间了,最近我把对上一版做了一些优化。
1、进一步增大训练用数据集。希望对于天空与前景边界不明显的问题,做出优化。
2、原训练模型172M,这次训练后模型51M。在Ubuntu上使用CPU推理,配置为2核4G,推理过程中,内存占用减少到300~400M,CPU占用量貌似没有减少,使用时间约2-3s。原谅我技术太菜,也不知道什么原因。
限于我本人没有显卡可以训练模型,只能租用服务商的机器。但是机器太贵了,所以没有等损失值降到很低就停止了,钱包罩不住啊😂。到后面想降一点点都很难,罢了罢了。
二、效果展示
可以看到在处理大片天空的时候效果更好,而处理很多小片天空时,则效果不佳。后面会放上数据集,有想继续优化的可以自己尝试下。
扩展
既然天空分割已经做了,那就在这个基础上,再做点其他好玩的吧,哈哈。
这里使用了opencv的seamlessClone进行图片融合。还别说,有点感觉。
其他
这里给出资源,包括175张训练用数据集、已经训练好的onnx模型、onnxruntime推理脚本,配置环境后可直接运行。如果你对结果不满意,也可以使用数据集,对模型继续进行训练。
资源路径:[pytorch+u2net实现天空分割,可用于替换天空变天效果]
主业前端程序猿一枚。图片处理方面,作为业余爱好。如有错误,请各位大佬轻喷,谢谢!!😂
更多其他功能,可以扫下方二维码体验:
这篇关于pytorch+u2net实现天空分割(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!