任务定义
图像抠图(image matting)是指从一张图像中精确提取出感兴趣对象,并将其与背景分离的任务。
这通常需要在像素级别对目标对象进行精确分割,以便实现高质量的抠图效果。
可以分为“需要人工辅助输入”和“全自动” automatic and auxiliary-based methodologies.
和"图像分割(Segementation)“的异同
相似之处:
目标:图像抠图和图像分割都旨在将图像中的对象从背景中分离出来,以便进一步处理或分析。
像素级别操作:两者都涉及对图像中的像素进行操作,通常需要对每个像素进行分类或标记。
不同之处:
粒度:图像抠图通常关注的是精确的对象边界,要求在像素级别上对前景和背景进行精确分割,以实现逼真的合成或编辑效果。而图像分割可以是像素级别或区域级别的,目标是将图像分成几个具有语义意义的部分。
输入:图像抠图通常需要额外的辅助输入,如 trimap 或 coarse 分割,以帮助算法准确地分离前景和背景。而图像分割通常只需要原始图像作为输入。
复杂性:图像抠图任务通常更加复杂,因为它需要处理对象与背景之间的细微边界和半透明区域。相比之下,图像分割任务可能更简单,因为它通常只需要将图像分成几个连续的区域或类别。
应用场景
图像抠图在许多领域都有广泛的应用,例如图像编辑、虚拟现实、增强现实、电影特效等。
一般流程
通常,图像抠图涉及到以下几个主要步骤:
前景/背景分离:确定图像中的前景目标和背景区域。
精确分割:对前景目标与背景进行精确分割,通常需要逐像素地确定哪些像素属于前景,哪些像素属于背景,以及哪些像素属于半透明区域(即“未知”区域)。
alpha通道生成:根据分割结果生成alpha通道,用于描述每个像素的透明度。
合成:将分割后的前景对象与新的背景进行合成,创建一个具有逼真效果的图像。
方法调研
Input:
Automatic —— 更加适用于商业应用
Auxiliary-based
Target:
- salient opaque foregrounds
salient transparent foregrounds
non-salient foregrounds
Methodoloogy
auxiliary input-based methods
a single one-stage CNN
a one-stage CNN is used with modules carefully designed
parallel two- or multistream structures
automatic methods.
a one-stage structure
a sequential two-step structure (1. segmentation mask or trimap 2. Final alpha matte)
a parallel two- or multi-stream structure
市场调研
抠图AI - 商用

Removal AI

briaai/RMBG-1.4
https://huggingface.co/briaai/RMBG-1.4
https://huggingface.co/spaces/briaai/BRIA-RMBG-1.4
ohyesai —— 基于开源项目 rembg
https://github.com/danielgatis/rembg
!
使用isnet-general-use

调研结论
商用工具的结果对边缘处理相对较好,但是都有改进空间
但是在镜片内的背景,都没有准确识别
自己的方案探索
YOLO+SAM
是图像分割的解决方案,对于抠图来说并不适用
Grounding DINO+SAM+VitMatte
流程如下:
自动标定
使用yolov9
使用GroundingDINO
获得Trimap
使用bbox和SAM分割,腐蚀膨胀得到Trimap
- 获得Alpha Matte
使用VitMatte
- 输出结果
💬 评论