大家常看到网上有些图片,把一朵花硬生生抠出来,贴在雪景里,结果整体看起来就很奇怪,亮度、阴影甚至季节感都对不上号。传统做法靠手动调图层和色彩,费时又费力,根本掩盖不了这种别扭。但好在现在有了深度学习,能自动让合成图变得更和谐,不过前提是得有足够多的训练数据。现有的一些方法虽然也能“人造”数据对,但真实度低,还不够公开。我们就在这个基础上做了改进,一次性放出了73,146对合成和真实图片的训练样本。这就好比是搭了个脚手架,把规模、质量和多样性全都拉满了。 这几对数据分别来自四个不同的地方。HCOCO就是从COCO数据里抠前景,让同类样本互相交换颜色;HAdobe5k利用了Adobe5k每张图有五个版本人工编辑的优势,保证前景和背景是一个源头;HFlickr是从ImageNet 1000类里找外延图片来扩展场景;Hday2night则是抓取同一个场景白天和晚上的照片,正好适合做“域迁移”实验。 筛选过程也很严格。先用美学模型和二分类网络把明显不像真的假图剔除掉,再由人工进行细筛。最后四大子库各自留下了不少高质量的训练对,加起来就是73,146对。 网络结构是基于UNet的,还加了注意力块。我们还给模型引入了两个鉴别器:一个是全局鉴别器,负责让生成的图在数据分布上更接近真实;另一个是域验证鉴别器,专门来比对前景和背景的域差异。它会用部分卷积提取各自的特征,算出域损失。 训练的时候,生成器既要骗过全局鉴别器,也要让域验证鉴别器给低分。这种双重压力下,前景就会慢慢学会怎么跟背景“说同一种语言”。 我们在自建库和公开的99张基准图上做了用户主观评测。结果发现:传统方法平均打3.1分;深度学习基线3.4分;我们的方法直接飙到了3.8分,几乎跟真实图没啥区别了。客观指标上看,域验证损失一直往下掉,合成图和真实图的差别已经很小了。 所有的子库、筛选脚本还有模型权重都已经打包上传到了GitHub上了。大家要是想用这些数据来训练新架构、做预训练微调或者直接用在项目里都没问题。 这个技术的应用场景其实挺多的。比如电商详情页上可以把模特抠图无缝放进产品实拍场景里;影视预览的时候绿幕特效提前和谐好就不用再返工;增强现实里AR贴纸也能跟真实背景融为一体。 随着数据和算法这两个轮子一起转起来,那种让人感觉不舒服的违和感正在被算法悄悄抹平。你下次刷到的那些合成广告或者短视频,说不定就是用这套73,146对训练样本“调教”出来的呢。