首页
时事
民生
政务
教育
文化
科技
财富
体娱
健康
情感
更多
旅行
百科
职场
楼市
企业
乐活
学术
汽车
时尚
创业
美食
幽默
美体
文摘
六年、六届学生接力,共铸上交大图像合成工具箱libcom
文摘
2024-10-14 13:10
广东
机器之心报道
机器之心编辑部
arX
iv:2106.14490v5
如果你对 arXiv 的版本号有所了解,你就知道这篇论文已经更新了 4 次,现在已经来到了第 5 个版本。实际上,这个 arXiv 编号属于上海交通大学牛力团队一篇持续更新了四年的综述报告。
该综述介绍了图像合成(image composition)领域需要解决的问题和应运而生的子任务,总结了各个子任务的数据集、传统方法、深度学习方法和实验现象,从鸿蒙初辟写到尘埃落地。
论文标题:Making Images Real Again: A Comprehensive Survey on Deep Image Composition
论文地址:https://arxiv.org/abs/2106.14490v5
除了持续更新这份关于图像合成的综述,牛力团队还在持之以恒地研发和迭代一个图像合成工具箱:libcom。而这项工作更是已经持续了六年!
该团队自 2018 年底就开始从事图像合成领域的研究,从数据(10 + 原创数据集)到模型(30 + 原创模型)、论文(20 + 已发表论文),再到工具箱(libcom),历时六年,耗资数百万,由六届学生接力完成。
其中,所有数据集的每张图片都经过 2~3 人检查,以严格保证数据集的质量。所有模型的代码都经过 2~3 人检查,以确保没有严重的 bug。该团队打趣地表示:「如果有严重的 bug 请尽快打脸。」
在多年研究积累的基础上,
该实验室于 2023 年底推出了尽量无需训练微调、对任意图片开箱即用的图像合成工具箱 libcom
。并且牛力老师表示:「该工具箱的形式也是我们首创的,体现了我们对 image composition 领域的理解。」
截至 2024 年 10 月,libcom 已被下载安装了 1.2 万次。
项目地址:https://github.com/bcmi/libcom
可以看到,libcom 的 logo 是一个半人马的形象,实际上这正是为了体现图像合成的目标:融合不同的图像元素。这个半人马就是人和马的融合,同时 logo 中还添加了装饰性的蓝圈和黄圈的融合。另一个有趣的细节是,由于蓝色和黄色的过渡色是绿色,因此半人马系上了一条绿色的腰带。
具体能力上,libcom 集成了十几项图像合成功能(每个功能都有一到两个简单有效的方法),实现了对图像合成的全方位覆盖,并且每一个功能都有对应的仓库。牛力老师谦虚地说:「经过近一年的迭代,大多数功能的效果还凑合。」
另外值得一提的是,每个功能对应的仓库中都有训练代码。这是该团队专门为用户微调准备的:如果用户发现某项功能在自己的数据集上表现欠佳,原因很可能是数据差异,因此用户只需用自己收集的训练数据微调模型,替换掉原来的 checkpoint,就能让这些功能发挥出自己的完整实力。
libcom 的功能
在介绍 libcom 的十几项功能之前,我们首先要了解什么是图像合成(image composition)。
图像合成是图像编辑(image editing)技术的一种,而图像编辑的原子操作包括增、删、改。其中「增」这个研究方向就叫做图像合成,指的是在图像中添加元素。另外,「删」是指从图像中擦除元素,该研究方向叫做图像填充(image inpainting)。「改」是指改变图像中元素的属性,该研究方向叫做属性编辑(attribute manipulation)。其余复杂的图像编辑操作皆可转化为「增」、「删」、「改」这三个原子操作的排列组合。
因此,可以说
图像合成在图像编辑的版图中三分天下居其一
,并且其在虚拟现实、艺术创作、电商广告、数据增广等领域有着广泛应用。
libcom 的十几项功能涵盖了图像合成的方方面面,从评估合成图的质量到得到高质量合成图:
1.
get_composite_image
:通过剪切粘贴、alpha 融合和泊松融合混合前景背景,如下图所示。这些是最简单的传统图像融合方法。
2.
OPAScoreModel
:输入合成图和前景掩码,判断前景物体的放置(位置、大小)是否合理。输出的分数介于 [0,1] 之间,1 表示合理,0 表示不合理。在下图中,左边的合成图分数为 1,右边的合成图分数为 0。
3.
FOPAHeatMapModel
: 输入一对背景图片和前景物体,输出该物体按照不同尺寸放在背景图片不同位置得到的合成图的合理性分数。假设有 K 个离散的前景物体尺寸,背景图片大小为 H*W, 则输出 H*W*K 的热力图。热力图上的每个像素对应一个放置的合理性分数,因此根据热力图可以获取合理的前景物体放置框。下图展示了单个前景物体尺寸的热力图以及根据热力图得到的前景物体放置框。
4.
color_transfer
: 传统的颜色迁移方法,用于将背景的颜色迁移到前景,适用于简单场景的图像和谐化。下图是合成图和颜色迁移后的结果。
5.
ImageHarmonizationModel
:输入合成图和前景掩码,图像和谐化模型调整前景的光照使其与背景和谐,输出和谐化结果。
6.
PainterlyHarmonizationModel
:艺术图像和谐化与图像和谐化类似,区别在于背景是艺术图片。输入合成图和前景掩码,艺术图像和谐化模型调整前景的风格 (颜色、纹理、笔触等) 使其与背景一致,输出和谐化结果。
7.
HarmonyScoreModel
: 输入合成图和前景掩码,判断前景和背景的光照是否匹配,输出前景与背景的和谐化分数。分数介于 [0,1] 之间,1 表示和谐,0 表示不和谐。在下图中,左边的合成图分数为 0.25,右边的合成图分数为 0.72。
8.
InharmoniousLocalizationModel
: 输入一张图片,输出该图片不和谐区域的掩码。下图展示了合成图和模型预测的不和谐区域。
9.
FOSScoreModel
: 输入一张合成图,预测前景和背景在几何和语义上的适配性分数,包括前景和背景的透视角度是否一致、前景物体的语义上下文是否合理等等。输出的适配性分数介于 [0,1] 之间,1 表示适配,0 表示不适配。
10.
ShadowGenerationModel
: 输入一张合成图和前景掩码,为前景物体在背景上生成合理的阴影。该功能不是很稳定,通常每随机生成 5 张会有 1~2 张的阴影形状较好。下图展示了随机采样 5 次生成的结果。
11.
ControlComModel
:输入一对背景图片和前景物体,把前景物体插入背景图片指定位置(黄色边界框),保持前景物体的姿态不变,做图像融合或者图像和谐化。两者的区别在于图像和谐化需要进一步调整前景物体的光照使其与背景和谐。
12.
MureObjectStitchModel
: 输入一对背景图片和前景物体 (支持多张参考图),把前景物体插入背景图片指定位置(黄色边界框),调整前景物体的姿态和光照,得到合理的合成图。模型对于细节简单的物体和常见物体效果较好。对于细节复杂的物体,该团队建议用前景物体的 5~10 张图片花 10 分钟微调模型,这样一来,该模型的细节保留能力会大幅提升。该团队也提供了微调模型的代码。微调模型之后替换原来的 checkpoint 即可。
libcom 背后的技术
通常而言,图像合成的用法是把一个前景物体插入到一张背景图片中,得到一张合成图。但是通过简单的剪切粘贴得到的合成图会存在诸多问题,我们可以将这些问题都看作是前景和背景不一致问题,其中包括
外观不一致性
、
几何不一致性
、
语义不一致性
。三种不一致性又可进一步分解成若干子问题(边界、光照、阴影、放置、遮挡、视角等)。
为了解决这些子问题,研究社区又提出了很多子任务(如图像融合、图像和谐化、阴影生成、物体放置等)。在图像合成中,不一致性(inconsistency)、子问题(issue)、子任务(sub-task)三者之间的关系如下图所示。
上述这些子任务可以串行(sequential pipeline)或者并行(parallel pipeline)执行,以解决前景和背景之间的不一致性,得到高质量合成图。
串行流程和并行流程如下
图所示,绿勾和红叉表示是否执行该子任务。
给定一对背景图片和前景物体,串行流程是先在背景中寻找前景物体的合理放置,通过图像混合解决边界不自然的问题,通过图像和谐化解决前背景光照不和谐的问题,通过阴影生成为前景物体在背景上生成合理的阴影。
而并行流程则是在一个模型中同时执行多个子任务,直接输出最终的合成图。并行流程也叫做生成式图像合成,近两年随着扩散模型的爆火而进入大众的视野。
libcom 的功能中有的基于串行流程,有的基于并行流程。
http://mp.weixin.qq.com/s?__biz=MzkxMzUxNzEzMQ==&mid=2247489547&idx=1&sn=67eabb48a36364fc2e4a8f88b4de12c2
机器学习实战
多名大厂算法工程师共同运营,主要专注机器学习算法、深度学习算法、计算机视觉等领域技术干货分享,一天进步一点点
最新文章
上海交大新聘AI博导,27岁!
SCI机器学习一区TOP,再次刷新顶刊巅峰!
刷脸背后,卷积神经网络的数学原理原来是这样的
一位中国博士把整个CNN都给可视化了,可交互有细节,每次卷积ReLU池化都清清楚楚
教高中生发顶会,看完还不懂来找我
PyTorch下的可视化工具(网络结构/训练过程可视化)
RTX 3090的深度学习环境配置指南:Pytorch、TensorFlow、Keras
有位大佬逐模块解析transformer结构
图解机器学习:贝叶斯算法
使用 YOLO 加速实时应用程序中的对象检测 !
算法岗平时需要自己写cuda吗?
13张动图快速理解马尔科夫链、PCA、贝叶斯!
使用 LSTM 进行多变量时间序列预测的保姆级教程
搞懂Transformer结构,看这篇PyTorch实现就够了
时间序列问题特征提取技巧(含Python代码)
【深度学习】既然英伟达A100/H100 太贵,为什么不用 4090?
李飞飞:我不知道什么是AGI
图解Numpy,这篇文章是真的强!
PyCharm vs VSCode,是时候改变你的 IDE 了!
苹果为什么不敢对 12306 买票抽成 30% ?
微信官方回应:为什么不做已读功能
中国高校面积Top10
六年、六届学生接力,共铸上交大图像合成工具箱libcom
超全!李航《统计学习方法》读书笔记
2026年量产!没有方向盘和踏板!特斯拉无人驾驶出租车发布
何恺明新作出炉!中稿NeurIPS 2024!HPT:异构预训练Transformer
复现Resnet论文那些事
ONNX:从入门到精通
硬核解读Stable Diffusion(完整版)
PyGWalker:最好用的数据分析Python库
7大类卷积神经网络(CNN)创新综述
ACL2024 | 破案了!大型语言模型中的涌现能力只是上下文学习吗?.
漂亮,LSTM模型结构的可视化
XGBoost 比深度学习还强?
Sapiens——强大的通用人类视觉模型
Plotly Express:一种简洁且强大的可视化神器
TensorSensor:可视化向量运算库
Seaborn可视化库:从入门到精通
从零开始学绘图!手把手教新手使用Matplotlib创建个性化图表
卷积神经网络数学原理解析
如何轻松掌握马尔科夫采样算法
虎扑高校排名公布!这JR们打分着实意想不到!
AI大语言模型不再遥不可及:本地化部署、智能体构建技术让每个人都能拥有
50个最佳机器学习公共数据集
如何向10岁小孩解释LDA(线性判别分析)算法
想学SVD(奇异值分解)算法?看这篇就够了
如何通俗理解PCA(主成分分析)算法的数学原理和代码实现
如何向10岁小朋友解释频率学派和贝叶斯学派
如何向10岁小孩解释PCA(主成分分析)算法
全网独一份!AI大模型学习训练资源...(限时免费领)
分类
时事
民生
政务
教育
文化
科技
财富
体娱
健康
情感
旅行
百科
职场
楼市
企业
乐活
学术
汽车
时尚
创业
美食
幽默
美体
文摘
原创标签
时事
社会
财经
军事
教育
体育
科技
汽车
科学
房产
搞笑
综艺
明星
音乐
动漫
游戏
时尚
健康
旅游
美食
生活
摄影
宠物
职场
育儿
情感
小说
曲艺
文化
历史
三农
文学
娱乐
电影
视频
图片
新闻
宗教
电视剧
纪录片
广告创意
壁纸头像
心灵鸡汤
星座命理
教育培训
艺术文化
金融财经
健康医疗
美妆时尚
餐饮美食
母婴育儿
社会新闻
工业农业
时事政治
星座占卜
幽默笑话
独立短篇
连载作品
文化历史
科技互联网
发布位置
广东
北京
山东
江苏
河南
浙江
山西
福建
河北
上海
四川
陕西
湖南
安徽
湖北
内蒙古
江西
云南
广西
甘肃
辽宁
黑龙江
贵州
新疆
重庆
吉林
天津
海南
青海
宁夏
西藏
香港
澳门
台湾
美国
加拿大
澳大利亚
日本
新加坡
英国
西班牙
新西兰
韩国
泰国
法国
德国
意大利
缅甸
菲律宾
马来西亚
越南
荷兰
柬埔寨
俄罗斯
巴西
智利
卢森堡
芬兰
瑞典
比利时
瑞士
土耳其
斐济
挪威
朝鲜
尼日利亚
阿根廷
匈牙利
爱尔兰
印度
老挝
葡萄牙
乌克兰
印度尼西亚
哈萨克斯坦
塔吉克斯坦
希腊
南非
蒙古
奥地利
肯尼亚
加纳
丹麦
津巴布韦
埃及
坦桑尼亚
捷克
阿联酋
安哥拉