Press "Enter" to skip to content

U2Net在证件检测中的应用

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

应用场景

 

在汽车交易场景中,常常需要对用户的行驶证进行识别,在该识别任务里,需要多模型组合才能得到一个较好的结果。其中,页面检测作为识别任务中的第一环,也是极为重要的一环。将行驶证的AB面分割出来,可以极大的避免不相干的文字被检测到,提升整体识别任务的精确度。本篇文章将会介绍U2Net在证件检测任务中的应用。

论文链接: arxiv.org/abs/2005.09…
Github地址: github.com/xuebinqin/U…

一.U2Net提出背景

 

显着性检测旨在分割出一幅图片中最吸引人注意的内容,这一方法可以应用在图像分割,跟踪等多种领域。而当前的主流网络,主要存在以下几个问题:

只关注局部信息(local details)而不包含全局对比信息(global contrast information);
非常依赖ResNet,VGG等backbone;
提取的特征图分辨率过大导致计算资源消耗高;

二.U2Net网络结构

 

1.基础结构RSU-L

 

受到unet的启发,作者提出了Residual U Block Layer(RSU-L),L代表编码层数。

 

 

1:RSU-L结构(图片来源作者论文)

 

图1中绿色部分代表Conv+BN+Relu,蓝色部分代表Downsample+Conv+BN+Relu,红色部分代表Upsample+Conv+BN+Relu,可以看出该基础结构本质上就是一个单独的U2Net。

 

针对常用的3×3卷积无法有效提取全局信息的缺点,该论文指出该模型可以有效地从高分辨率的浅层特征图中获取全局信息,增大感受野。同时L有3,5,7三个选项,可以针对不同的任务进行选择,不过一般情况下选择7即可。

 

而与常用的ResNet对比,如图2所示,该结构提供的特征组成为multi-scale feature+local-feature,而ResNet只能提供local feature+original feature。由于特征的增多,势必会导致计算资源开销增大,因此作者加入了许多的maxpooling层,用于消除一部分的重复特征。

 

 

图 2:与ResNet对比(图片来源作者论文)

 

2.U2Net网络结构

 

 

图 3:U2Net网络(图片来源作者论文)

 

整体的网络结构如图三所示,左侧是6个RSU-L组成的编码器,右侧是5个RSU-L组成的解码器,最底部是一个显着图(salient map)融合模块,起到连接编码器解码器的作用

 

3.损失函数

 

在图3中即为损失函数,作者对每一个解码器的输出结果都进行了一次loss计算,将所有的输出结果拼接到一起后,在进行一次loss计算。损失函数计算公式为:

 

其中和都是每一项loss的权重,对应图五中的loss,对应的loss,而对于每一项的,都采用标准的二元交叉熵损失函数计算:

 

其中(r, c)表示像素点坐标,(H, W)表示图像的大小,分别表示真实的像素值与生成的概率图的像素值。

 

三.模型表现

 

作者给出了在公开数据集上,U2Net与其他的网络的召回与精确度曲线,如图4所示

 

 

图 4:在公开数据集上的表现(图片来源作者论文)

 

作者也给出了实例测试结果,如图5所示

 

 

图 5:具体展示(图片来源作者论文)

 

四.训练以及对比

 

本篇文章只针对deeplabv3进行相关指标的对比。

 

1.行驶证数据组成

 

训练集3760张,939张,按照8:2随机分割产生,测试集从百度图片上选择100张。输入数据为原图+mask。

 

2.如何训练

 

对于U2Net,按照train,mask分割好原始数据与mask,数据集组成如下所示:

 

|--dataset  
    |----train  
    |----train_mask  
    |----val  
    |----val_mask

 

3.与deeplabv3的对比

 

为了能正确的对比模型效果,我们取消了两个模型所有的数据增强,都只训练100轮,batchsize取8,训练环境为python3.6.12,pytorch1.6,一个模型各占一张2080ti。

Model sizeParam sizeGFLOPsmIOUInfer time
U2Net168.27M44.01M150.67G0.9370.43s
Deeplav3-Resnet101226.85M58.63M249.42G0.8980.31s

 

注:GFLOPs与Param size采用ptflops库计算

 

测试实例

 

 

图 6:测试样例 (互联网上公开搜索下载得到,模糊处理)

 

从左到右依次为真实图片,deeplabv3产生的mask,u2net产生的mask。可以明显看出U2Net的表现更好,分割的mask较为精确。

 

南京三百云信息科技有限公司(车300)成立于2014年3月27日,是一家扎根于南京的移动互联网企业,目前坐落于南京、北京。经过7年积累,累计估值次数已达52亿次,获得了国内外多家优质投资机构青睐如红杉资本、上汽产业基金等。

 

三百云是国内优秀的以人工智能为依托、以汽车交易定价和汽车金融风控的标准化为核心产品的独立第三方的汽车交易与金融SaaS服务提供商。

 

各岗位热招中,欢迎加入三百云,一起见证汽车行业蓬勃发展,期待与您携手同行!

 

www.sanbaiyun.com/

 

邮箱: [email protected]

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注