DBnet检测知识蒸馏+tensorrt推理(文字检测+条形码检测)

Stella981
• 阅读 889

向AI转型的程序员都关注了这个号👇👇👇

人工智能大数据与深度学习  公众号:datayx

一.DBnet

提出了 Differentiable Binarization (DB),它可以在分割网络中执行二值化过程,可以自适应地设置二值化阈值,不仅简化了后处理,而且提高了文本检测的性能。

DBnet检测知识蒸馏+tensorrt推理(文字检测+条形码检测)

DBnet检测知识蒸馏+tensorrt推理(文字检测+条形码检测)

在训练阶段,对概率图、阈值图和近似二值图进行监督,其中概率图和近似二值图共用一个监督。在推理过程中,通过一个box公式化模块,可以很容易地从近似二值图或概率图中得到文本包围框。

可微分二值化

DBnet检测知识蒸馏+tensorrt推理(文字检测+条形码检测)

一般的分割模型都是对最终的输出结果取一个固定阈值进行二值化,本文创新点在于将二值化的阈值进行学习,如上图的(a)所示

DBnet检测知识蒸馏+tensorrt推理(文字检测+条形码检测)

加入可微分模块,就可以把阈值进行训练,能够更好区分前后景与粘连文本.

P:probability map

T:threshold map

B^:approximate binary map

Loss函数:

DBnet检测知识蒸馏+tensorrt推理(文字检测+条形码检测)

loss主要三部分:Ls是收缩之后文本实例的loss, Lb是二值化之后的收缩文本实例loss, Lt是二值化阈值map的loss, Ls和Lb都使用带OHEM的bceloss, Lt使用L1loss。

注意的是论文给的速度只是包含前向传播和后处理,所以实际上包含预处理,速度没这么快的.

DBnet检测知识蒸馏+tensorrt推理(文字检测+条形码检测)

二.知识蒸馏

DBnet检测知识蒸馏+tensorrt推理(文字检测+条形码检测)

其中T是温度,直接使用softmax层的输出值作为soft target, 当softmax输出的概率分布熵相对较小时,负标签的值都很接近0,对损失函数的贡献非常小,小到可以忽略不计。因此"温度"这个变量就派上了用场。T很大时就能软化softmax的输出概率, 分布越趋于平滑,其分布的熵越大,负标签携带的信息会被相对地放大,模型训练将更加关注负标签。也就是从有部分信息量的负标签中学习 --> 温度要高一些,防止受负标签中噪声的影响 -->温度要低一些。

思路:采用resnet50(teacher)先训练,在利用训练好的resnet50(teacher)对resnet18(student)小模型进行联合训练,实验证明f1score比单独训练resnet18涨一个点。

项目 获取方式

关注微信公众号 datayx  然后回复 DB检测  即可获取。

AI项目体验地址 https://loveai.tech

三.torch模型->onnx->tensorrt

思路:采用torch.onnx将.pth转成.onnx格式,在用tensorrt推理。代码见github中的model_to_onnx.py.

四.一些效果展示

文字检测

DBnet检测知识蒸馏+tensorrt推理(文字检测+条形码检测)

条形码检测

DBnet检测知识蒸馏+tensorrt推理(文字检测+条形码检测)

DBnet检测知识蒸馏+tensorrt推理(文字检测+条形码检测)

DBnet检测知识蒸馏+tensorrt推理(文字检测+条形码检测)

原文地址 https://blog.csdn.net/fanzonghao/article/details/107199538


阅读过本文的人还看了以下文章:

**TensorFlow 2.0深度学习案例实战
**

**基于40万表格数据集TableBank,用MaskRCNN做表格检测
**

**《基于深度学习的自然语言处理》中/英PDF
**

**Deep Learning 中文版初版-周志华团队
**

**【全套视频课】最全的目标检测算法系列讲解,通俗易懂!
**

**《美团机器学习实践》_美团算法团队.pdf
**

**《深度学习入门:基于Python的理论与实现》高清中文PDF+源码
**

特征提取与图像处理(第二版).pdf

python就业班学习视频,从入门到实战项目

2019最新《PyTorch自然语言处理》英、中文版PDF+源码

《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码

《深度学习之pytorch》pdf+附书源码

PyTorch深度学习快速实战入门《pytorch-handbook》

【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》

《Python数据分析与挖掘实战》PDF+完整源码

汽车行业完整知识图谱项目实战视频(全23课)

李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材

笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!

《神经网络与深度学习》最新2018版中英PDF+源码

将机器学习模型部署为REST API

FashionAI服装属性标签图像识别Top1-5方案分享

重要开源!CNN-RNN-CTC 实现手写汉字识别

yolo3 检测出图像中的不规则汉字

同样是机器学习算法工程师,你的面试为什么过不了?

前海征信大数据算法:风险概率预测

【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类

VGG16迁移学习,实现医学图像识别分类工程项目

特征工程(一)

特征工程(二) :文本数据的展开、过滤和分块

特征工程(三):特征缩放,从词袋到 TF-IDF

特征工程(四): 类别特征

特征工程(五): PCA 降维

特征工程(六): 非线性特征提取和模型堆叠

特征工程(七):图像特征提取和深度学习

如何利用全新的决策树集成级联结构gcForest做特征工程并打分?

Machine Learning Yearning 中文翻译稿

蚂蚁金服2018秋招-算法工程师(共四面)通过

全球AI挑战-场景分类的比赛源码(多模型融合)

斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)

python+flask搭建CNN在线识别手写中文网站

中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程

不断更新资源

深度学习、机器学习、数据分析、python

搜索公众号添加: datayx

DBnet检测知识蒸馏+tensorrt推理(文字检测+条形码检测)


机大数据技术与机器学习工程

搜索公众号添加: datanlp

DBnet检测知识蒸馏+tensorrt推理(文字检测+条形码检测)

长按图片,识别二维码

本文分享自微信公众号 - 机器学习AI算法工程(datayx)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Peter20 Peter20
3年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
3年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这