pytorch+u2net实现天空分割(二)

一、改进

距离上次天空分割过去有些时间了,最近我把对上一版做了一些优化。

1、进一步增大训练用数据集。希望对于天空与前景边界不明显的问题,做出优化。
2、原训练模型172M,这次训练后模型51M。在Ubuntu上使用CPU推理,配置为2核4G,推理过程中,内存占用减少到300~400M,CPU占用量貌似没有减少,使用时间约2-3s。原谅我技术太菜,也不知道什么原因。

限于我本人没有显卡可以训练模型,只能租用服务商的机器。但是机器太贵了,所以没有等损失值降到很低就停止了,钱包罩不住啊😂。到后面想降一点点都很难,罢了罢了。

二、效果展示







可以看到在处理大片天空的时候效果更好,而处理很多小片天空时,则效果不佳。后面会放上数据集,有想继续优化的可以自己尝试下。

扩展

既然天空分割已经做了,那就在这个基础上,再做点其他好玩的吧,哈哈。
这里使用了opencv的seamlessClone进行图片融合。还别说,有点感觉。







其他

这里给出资源,包括175张训练用数据集、已经训练好的onnx模型、onnxruntime推理脚本,配置环境后可直接运行。如果你对结果不满意,也可以使用数据集,对模型继续进行训练。

资源路径:[pytorch+u2net实现天空分割,可用于替换天空变天效果]

主业前端程序猿一枚。图片处理方面,作为业余爱好。如有错误,请各位大佬轻喷,谢谢!!😂

更多其他功能,可以扫下方二维码体验: