我的编程空间,编程开发者的网络收藏夹
学习永远不晚

达摩院视觉算法黑科技之透明抠图

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

达摩院视觉算法黑科技之透明抠图

达摩院视觉算法黑科技之透明抠图

透明抠图问题作为抠图问题的一种,其采用的方法和模型构建与通常的模型有所不同,透明抠图需要将环境光,折射率的影响纳入计算,而一般的折射光图又很难获得,因此透明抠图的模型在过去一直难以建立,或者说很难达到令人满意的效果,达摩院视觉算法团队通过双分支解码器(Object Mask 获取,Opacity 预测),颜色纠正模块,对图像实现高精度透明抠图。

透明抠图 vs 非透明抠图

物体的抠图问题可以定义为求解以下的公式,即给定图像 I,求解前景颜色 F、背景颜色 B 和 Alpha matte 的线性组合:

达摩院视觉算法黑科技之透明抠图

对于透明物体而言,它展现在观察者眼中的颜色是由其前景颜色,背景颜色以及环境光线经过前景物体自我反射折射混合而成的,因此,它的公式会更加复杂一些:

达摩院视觉算法黑科技之透明抠图

Φ 表示的是环境光的影响 它是所有光线 E(w) 与反射率方程 R 乘积在所有点上的二重积分,求解很复杂[28],导致实现精确的透明抠图是一个非常困难的问题。因此,现有透明抠图研究的目标也是实现视觉感受“真实”的抠图而已,并非追求完全真实的抠图结果。

现有研究

SOTA 的 Matting 算法在同时提供原图和对应 trimap 的情况下,可以的实现对半透物体的处理(如下图为GCA-Matting 的效果),但 tripmap 在实际的图像的处理中难以获取,限制了这类算法其在业务中的使用。

达摩院视觉算法黑科技之透明抠图

TOM-Net 将透明抠图问题视为折射流的估计问题,网络支持对单图输入,经过三分支的编解码器网络,分别预测图像的 Object Mask,attenuative mask,flow mask (折射流图),并可以通过折射流信息进一步在新的背景进行合成。该方法的局限性在于其假设物体必须全部为无色透明物体,并且在训练过程中需要折射流图作为 label, 而折射流图在真实世界是非常难以获取的,因此该方法的训练数只能依赖于图形学合成,与真实透明图像的分布无法一致(图像的语义合理性存疑,例如玻璃杯在山前悬浮)。经过我们在实际数据上的测试,该方法在实际图像的表现并不理想。

达摩院视觉算法黑科技之透明抠图

Segmenting Transparent Objects in the Wild 提出了基于语义分支和边缘分支结构的真实世界透明物体分割网络,通过边界注意力模块(Boundary Attention Modeule)增强对透明物体的分割精度,并发布了目前数量最大的透明物体分割标注数据集 Trans10K。然而,文章提出的算法和发布的数据集都是处理到语义分割层面,并没有对物体的透明度做进一步处理。

达摩院视觉算法黑科技之透明抠图

问题简化

考虑到透明抠图问题本身难以求解,而且数据构建也非常困难,在实际的应用场景中,为保证同时保证算法的泛化能力和抠图效果,我们对问题进行了简化, 我们假设所需处理的物体的透明部分是无色的,且所在环境的背景颜色分布相对均匀。在这样的条件下,背景的自发光或反射光的颜色可以认为是全局一致的颜色,不会出现多种颜色叠加的情况,Φ 的估计就只是和背景颜色相关了。特别的,如果预知背景的颜色,可以通过将其作为先验引入 Φ 中,对结果进行背景杂色的抑制及去除。

模型设计

我们的模型输入为单张图像,通过编码器网络提取其深层特征。解码器设计为两个分支,分支一的解码器采用在非透明物体抠图的解码器权重,该分支注重语义级别的分割和提取,力求完整准确地获得物体所在图像区域,即 Object Mask。

分支二则注重对图像物体不透明度 (Opacity) 的预测。在背景均匀的假设下,该分支预测图像各像素与背景的相似性,相似度高则说明介质的透明度高(如空气,玻璃)。而分支二由于在训练的时候没有进行语义的约束,容易存在非主体区域的噪声影响,因此,将两者进行融合可以将透明信息约束在主体范围内。融合模块的实现,可以将 Opacity 和 ObjectMask 进行图像级的像素融合,也可以将两者进行深度维度拼接,通过进一步的网络进行预测。

最后,对于已知背景颜色先验的场景(如已知是绿幕),我们可以引入颜色纠正模块,实现对背景透出的杂色进行去除。对于背景颜色未知,但饱和度低的场景,抠图结果也依然可用。

达摩院视觉算法黑科技之透明抠图

结果与应用

在已知背景颜色先验的情况下,可以通过颜色纠正模块对背景透出的杂色进行去除(左到右:实拍图, Opacity, 直接抠图结果,色偏纠正结果)

达摩院视觉算法黑科技之透明抠图

达摩院视觉算法黑科技之透明抠图

对于背景颜色未知,但饱和度低的场景,抠图结果也依然可用。

达摩院视觉算法黑科技之透明抠图

更多结果

达摩院视觉算法黑科技之透明抠图

达摩院视觉算法黑科技之透明抠图

目前在车辆分割算法上,我们已经实现了基于透明抠图的思路用于改善半透车窗区域的效果,使得车辆经过抠图,能够更加自然和谐与新背景进行融合。目前车辆分割已经上线 阿里云视觉智能开放平台,欢迎大家 体验试用。

达摩院视觉算法黑科技之透明抠图

总结与展望

目前的透明抠图算法,面对更为多样的真实场景下物体,仍然具有以下不足,需要进一步探索解决:

  • 1.真实透明物体图像数据量严重不足,且标注困难;
  • 2.主体不透明度图(Opacity)的预测容易受到图像中噪声的影响;
  • 3.在得到 Opacity 图后,在未知背景先验,且背景颜色饱和度高的情况下,如何实现将背景色的去除(如下图的杯子整体泛蓝);

后续我们会考虑进一步提取背景的特征,将背景先验知识引入到透明度的估计上,增加 RGB 偏移输出信息,尝试对前景物体的颜色进行纠正。

文章来源:https://developer.aliyun.com/article/766602?groupCode=aliyunmit

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

达摩院视觉算法黑科技之透明抠图

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

达摩院视觉算法黑科技之透明抠图

透明抠图问题作为抠图问题的一种,其采用的方法和模型构建与通常的模型有所不同,透明抠图需要将环境光,折射率的影响纳入计算,而一般的折射光图又很难获得,因此透明抠图的模型在过去一直难以建立,或者说很难达到令人满意的效果,达摩院视觉算法团队通过双
2023-06-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录