复杂背景内容提取指的是从复杂的背景中提取出特定的内容,例如在图片中提取特定的文字,在图片中提取特定的叠加图层等等。
这是一个业界难题,基于传统的图像处理的方法存在准确率和召回率的问题,无法解决语义的问题。而主流的机器学习的方法,例如目标检测没法获取像素级别的位置信息,而语义分割的方法则只能提取像素而没法获取半透明叠加前的像素信息。
本文考虑到这些痛点,从UI2CODE业务的业务场景出发,采用了目标检测网络来实现内容召回,GAN网络实现复杂背景中特定前景内容的提取和复原。算法
复杂背景的处理流程分为以下几个步骤:网络
内容召回:经过目标检测网络召回元素,即元素是否须要作背景提取操做。 区域判断:根据梯度等视觉方法判断所处区域是不是复杂区域。 简单区域:基于梯度的方式找到背景区块。 复杂区域:采用SRGAN网络进行内容提取。
根据拉普拉斯算子计算周边梯度,判断所处区域是不是复杂区域。机器学习
此时提取出的框不是彻底正确,那么此时根据梯度等机器视觉算法已经不能对位置作正确的修正了。本文提出了基于GAN网络的方式来解决复杂背景内容提取问题,网络的主要结构以下图所示:
函数
1)基于srGAN网络,该网络加入了特征图的损失函数,这样能够很好保留高频信息,能更好的保留边缘。特征图的损失函数以下图所示:
学习
2)因为有对抗损失的存在,能够很好的下降误检率。优化
3)最重要的一点是在有透明度的场景下,语义分割网络只能“提取”元素,没法“还原”元素。而GAN网络不只能够在提取元素的同时还原出未叠加时的像素状况。spa
1.因为咱们不是超分辨率场景,所以不用pixelShuffler模块作上采样3d
2.因为场景比较复杂,能够引入denseNet和加深网络来提升准确率。code
3.内容损失函数对于压制误判的噪点效果不理想,所以加大了误判的惩罚,具体以下图所示:
blog
本篇咱们经过复杂背景内容提取的介绍,提出了一种机器学习为主,图像处理为辅去精确获取特定前景内容的方法,获得了高精确率、高召回率和高定位精度的识别结果。
下图分别是传统算法grabcut,语义分割方法deeplab和本文方法的各个指标的状况。
通过数据论证,咱们发现了一个值得进一步优化的点——须要大量样本适配不一样的特征尺度,这里的投入会相对较大。如何进一步提升打标效率呢,咱们将会在后续系列文章中和你们分享。
本文做者:仝辉,深宇
本文为云栖社区原创内容,未经容许不得转载。