UI2CODE复杂背景无法识别?闲鱼工程师这样打造高准确率方案

简介: 你以为你穿个马甲,我就不认识你了嘛

闲鱼作者:仝辉,深宇

引言:

复杂背景内容提取指的是从复杂的背景中提取出特定的内容,例如在图片中提取特定的文字,在图片中提取特定的叠加图层等等。
这是一个业界难题,基于传统的图像处理的方法存在准确率和召回率的问题,没法解决语义的问题。而主流的机器学习的方法,例如目标检测无法获取像素级别的位置信息,而语义分割的方法则只能提取像素而无法获取半透明叠加前的像素信息。
本文考虑到这些痛点,从UI2CODE业务的业务场景出发,采用了目标检测网络来实现内容召回,GAN网络实现复杂背景中特定前景内容的提取和复原。

处理流程:

复杂背景的处理流程分为如下几个步骤:

内容召回:通过目标检测网络召回元素,即元素是否需要做背景提取操作。
区域判断:根据梯度等视觉方法判断所处区域是否是复杂区域。
简单区域:基于梯度的方式找到背景区块。
复杂区域:采用SRGAN网络进行内容提取。

内容召回:

内容召回我们采用目标检测网络来实现,例如Faster-rcnn或者Mask-rcnn等,如下图所示:

image.png

区域判断:

根据拉普拉斯算子计算周边梯度,判断所处区域是否是复杂区域。

简单背景:

由于目标检测模型本身的局限性,会导致没法达到像素级别的精确性,因此需要对位置做修正。如果是简单背景就可以基于梯度的思想做位置修正,具体计算方式如下:

image.png
image.png

复杂背景:

背景是复杂背景时,左图是原图,右图是提取的文字区块:

image.pngimage.png

  此时提取出的框不是完全正确,那么此时根据梯度等机器视觉算法已经不能对位置做正确的修正了。本文提出了基于GAN网络的方式来解决复杂背景内容提取问题,网络的主要结构如下图所示:
image.png

为什么选择GAN网络?

1)基于srGAN网络,该网络加入了特征图的损失函数,这样可以很好保留高频信息,能更好的保留边缘。特征图的损失函数如下图所示:
image.png

2)由于有对抗损失的存在,可以很好的降低误检率。

3)最重要的一点是在有透明度的场景下,语义分割网络只能“提取”元素,无法“还原”元素。而GAN网络不仅可以在提取元素的同时还原出未叠加时的像素情况。

网络训练流程图

image.png

针对业务场景对GAN网络做的改进

1.由于我们不是超分辨率场景,因此不用pixelShuffler模块做上采样

2.由于场景比较复杂,可以引入denseNet和加深网络来提高准确率。

3.内容损失函数对于压制误判的噪点效果不理想,因此加大了误判的惩罚,具体如下图所示:
image.png

预测获取的结果图I:

image.pngimage.png

预测获取的结果图II:

image.png
image.png

结束语

本篇我们通过复杂背景内容提取的介绍,提出了一种机器学习为主,图像处理为辅去精确获取特定前景内容的方法,得到了高精确率、高召回率和高定位精度的识别结果。
下图分别是传统算法grabcut,语义分割方法deeplab和本文方法的各个指标的情况。
image.png

经过数据论证,我们发现了一个值得进一步优化的点——需要大量样本适配不同的特征尺度,这里的投入会相对较大。如何进一步提高打标效率呢,我们将会在后续系列文章中和大家分享。

相关文章
|
7月前
|
JavaScript
vue + element UI 表单中内嵌自定义组件的表单校验触发方案
vue + element UI 表单中内嵌自定义组件的表单校验触发方案
204 5
|
9月前
|
数据采集 Web App开发 前端开发
前端自动化UI测试的完整方案
前端自动化UI测试的完整方案
965 0
|
缓存 前端开发 小程序
数据驱动UI迭代,如何设计简单高效的前端AB实验方案?
以前,我们没有一条简洁而高效的AB实验接入方案,过去大多数前端在接到AB需求,唯一的选择就是调用客户端提供的库函数来实现,我们从中发现了一些痛点。
数据驱动UI迭代,如何设计简单高效的前端AB实验方案?
|
UED 数据格式 XML
车载导航应用中基于Sketch UI主题定制方案的实现
我和团队一直是做车载导航应用开发,面向的对象是客户。不同的客户对于应用的UI或者主题是有不同需求的,也就是说针对不同客户,不同渠道的版本,需要有不同的应用主题。
|
测试技术 Android开发 开发者
网易与Google合作,于GDC开幕首日发布开源UI自动化测试方案
TechWeb报道】美西时间3月19日,在GDC开幕第一天的Google开发者专场,Google发布了一款由网易研发的UI自动化测试方案:Airtest Project。
1357 0

热门文章

最新文章

  • 1
    FirstUI:Deepseek能帮我们做很多事情,而这款开源框架专为开发者设计的开源UI框架,让你的项目加速起飞
    14
  • 2
    【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
    27
  • 3
    Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)
    27
  • 4
    Magma:微软放大招!新型多模态AI能看懂视频+浏览网页+UI交互+控制机器人,数字世界到物理现实无缝衔接
    65
  • 5
    unity判断鼠标在不在UI上
    49
  • 6
    【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
    77
  • 7
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    155
  • 8
    移动端UI名词 - AxureMost
    63
  • 9
    用自然语言控制电脑,字节跳动开源 UI-TARS 的桌面版应用!内附详细的安装和配置教程
    602
  • 10
    UI-TARS:字节跳动开源专注于多平台 GUI 自动化交互的视觉语言模型
    434