在github寻找了一圈,终于发现了一个比较新且好用的开源项目rembg(地址https://github.com/danielgatis/rembg)。结合rembg和PixelLib可以得到非常好的效果。
rembg 底层是u2net(https://github.com/xuebinqin/U-2-Net)—published in Pattern Recognition 2020。
U-2-Net是一个相当不多的项目,一位在加拿大阿尔伯塔大学留学的中国人做的(https://webdocs.cs.ualberta.ca/~xuebin/),可以基于它做很多关于图像处理的项目。
rembg可以选择U-2-Net训练出来的多种模型:
- 通用模型(u2net)
- 专用于人物识别的模型(u2net_human_seg)。
- 轻量级模型(u2netp)
U-2-Net提供了模型的训练代码,可以自己去训练更好的模型。
3种模型各有优势,可以搭配另一种算法( PixelLib, https://github.com/ayoolaolafenwa/PixelLib)来得到更好的效果。PixelLib 可以判断图片中是否只有人物,或者有没有动物,如果没有动物,那么通过u2net_human_seg可以获取非常好的结果。如果有动物,那么通过u2net获取到的结果要比较好。