自动抠图是怎么做的
本工具用的是 U²-Netp,一个开源的“显著目标检测”模型,由加拿大阿尔伯塔大学的研究者发布。它学的是一件事:一张图里人最先会看哪里。每张照片先缩成 320×320 像素交给模型,模型给出每个位置属于主体的可能性,得到一张主体图。这张图只是起点:直接放大到 1200 万像素的原图,每条边缘都会变成几十个像素宽的模糊带,抠出来的图像“毛玻璃”一样。
在原图分辨率下细化边缘
为了得到清楚的轮廓,主体图会再经过“导向滤波”。在图片的每个小区域里,算法找出一条最简单的规则,把这一块的颜色对应到主体图上,然后把这条规则用到原图的每个像素上。主体和背景颜色不同的地方,边缘会贴到真实的分界线上;模型拿不准的地方,边缘保持柔和,而不是出现锯齿。这一步在约 1000 像素宽的副本上计算,再应用到原图,不到一秒就能完成。
去掉边缘的杂色
猫毛边缘的一个像素,一部分是猫,一部分是后面的背景。如果保留原来的颜色,换背景后主体周围会带着一圈旧背景的颜色:影棚白底留下白边,草地留下绿边,淘宝商品图换成彩色底时尤其明显。本工具会估计每个边缘像素周围主体本身的颜色和背景的颜色,把背景那一部分去掉,所以换成彩色背景也显得自然。
怎样拍更好抠
拍的时候用和主体颜色差别大的纯色背景,主体对好焦,四周留点空。处理前可以先用图片裁剪把杂物裁掉,让主体占画面更大的比例。需要固定尺寸的,比如淘宝/京东主图、小红书封面,可以把抠好的透明 PNG 再放进修改图片尺寸,缩放后透明背景会保留。