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

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

相关文章
|
1月前
|
搜索推荐 数据管理 数据挖掘
解码2024年项目管理系统:排行榜背后的功能与特色解析
2024年十大项目管理工具:Zoho Projects以其专业成熟度领先,适合跨部门协作和进度跟踪;Nifty适合初创公司,界面直观,响应快速;Quickbase面向处理大量信息的团队,提供定制化解决方案;WorkOtter专为中大型企业资源管理和汇报设计;Asana适合大型协作团队,任务管理和沟通高效;Monday.com高度可定制,适合复杂项目管理;Smartsheet结合电子表格功能,适合流程多变的团队;Adobe Workfront针对复杂项目和自动化需求;ClickUp是一站式工作平台,功能多样;Trello则以简洁看板适合小团队和个人。考虑团队规模、项目复杂度和个性化需求来选工具
30 1
|
4月前
|
小程序 前端开发 IDE
基于微信小程序的健康评估系统设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序的健康评估系统设计与实现(源码+lw+部署文档+讲解等)
50 0
|
9月前
|
人工智能 机器人
AI智能自动交易量化机器人系统开发稳定版丨案例设计丨方案项目丨功能分析丨源码说明
When developing an AI automated quantitative trading robot system, it is first necessary to clarify the system's goals and requirements. Determine key factors such as the market, trading strategy, and risk control methods to be traded. Next, establish the basic framework for data acquisition and pro
|
9月前
|
机器学习/深度学习 JSON 人工智能
HarmonyOS学习路之开发篇—AI功能开发(IM类意图识别)
IM类意图识别,是指利用机器学习技术,针对用户短信或聊天类APP等IM应用的文本消息进行内容分析,并识别出消息内容代表的用户意图。
|
9月前
|
人工智能 JSON 数据格式
HarmonyOS学习路之开发篇—AI功能开发(文档检测校正)
基本概念 文档校正提供了文档翻拍过程的辅助增强功能,包含两个子功能:
|
12月前
|
机器学习/深度学习 人工智能 编解码
中科大团队新作 | 通用形变文档图像矫正框架(附在线体验DEMO)
中科大团队新作 | 通用形变文档图像矫正框架(附在线体验DEMO)
666 0
|
前端开发
前端知识学习案例22-code sand box线上编码平台
前端知识学习案例22-code sand box线上编码平台
61 0
前端知识学习案例22-code sand box线上编码平台
|
安全 Android开发 C++
VS Code 扩展开发如何保持用户视觉体验一致
本文介绍如何在 VS Code 插件的 webview 中加载本地的资源文件,并如何使用 VS Code 自身的 UI 来实现用户视觉体验的一致。
115 0
VS Code 扩展开发如何保持用户视觉体验一致
短视频app制作,技术设计合理性的评判维度
短视频app制作,技术设计合理性的评判维度
|
前端开发 JavaScript iOS开发
前端培训-初级阶段-场景实战(2019-5-23)-移动端适配bug
前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提升技术水平,打牢基础知识的中心思想,我们开课啦(每周四)。 场景实战这块内容每个人的内容都不一样。所以最近的更新基本都是我遇到并解决掉的问题。后期会把他们的内容贴地址。
111 0