热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

最新OCR开源神器来了!

本文主要介绍关于算法,大数据,编程语言,python,计算机视觉的知识点,对【最新OCR开源神器来了!】和【开源ocrsdk】有兴趣的朋友可以看下由【Datawhale】投稿的技术文章,希望该技术和

本文主要介绍关于算法,大数据,编程语言,python,计算机视觉的知识点,对【最新OCR开源神器来了!】和【开源ocr sdk】有兴趣的朋友可以看下由【Datawhale】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的【】相关技术问题。

开源ocr sdk

?Datawhale开源?

开源方向:OCR开源项目

01

导读

OCR方向的工程师,之前一定听说过PaddleOCR这个项目,其主要推荐的PP-OCR算法更是被国内外企业开发者广泛应用,短短半年时间,累计Star数量已超过15k,频频登上Github Trending和Paperswithcode 日榜月榜第一,在《Github 2020数字洞察报告》中被评为中国Github Top20活跃项目,称它为OCR方向目前最火的repo绝对不为过。

最近,由PaddleOCR原创团队,针对PP-OCR进行了一些经验性改进,构建了一种新的OCR系统,称为PP-OCRv2。

■ 从算法改进思路上看,主要有五个方面的改进。

(1) 检测模型优化:采用CML协同互学习知识蒸馏策略;

(2) 检测模型优化:CopyPaste数据增广策略;

(3) 识别模型优化:LCNet轻量级骨干网络;

(4) 识别模型优化:UDML 改进知识蒸馏策略;

(5) 识别模型优化:Enhanced CTC loss损失函数改进。

■ 从效果上看,主要有三个方面提升:

(1) 在模型效果上,相对于PP-OCR mobile版本提升超7%;

(2) 在速度上,相对于PP-OCR server版本提升超过220%;

(3) 在模型大小上,11.6M的总大小,服务器端和移动端都可以轻松部署。

GitHub项目: https://github.com/PaddlePaddle/PaddleOCR

注:为了照顾刚了解PaddleOCR的新用户,在第二、三部分简单进行一些背景介绍,熟悉PaddleOCR的老用户可以直接跳到第四部分。


02

PaddleOCR历史表现回顾

? 2020年6月,8.6M超轻量模型发布,GitHub Trending 全球趋势榜日榜第一。

? 2020年8月,开源CVPR2020顶会算法,再上GitHub趋势榜单!

? 2020年10月,发布PP-OCR算法,开源3.5M超超轻量模型,再上Paperswithcode 趋势榜第一!

? 2021年1月,发布Style-Text文本合成算法和PPOCRLabel数据标注工具,star数量突破10000+,在《Github 2020数字洞察报告》中被评为中国Github Top20活跃项目。

? 2021年4月,开源AAAI顶会论文PGNet端到端识别算法,Star突破13k。

? 2021年8月,开源版面分析与表格识别算法PP-Structure,Star突破15k。

? 2021年9月,发布PP-OCRv2算法,效果和速度再升级。

03

PaddleOCR开源能力速览

(1)通用文本检测识别效果:支持通用场景下的OCR文本快速检测识别

(2)文本合成工具Style-Text效果:相比于传统的数据合成算法,Style-Text可以实现特殊背景下的图片风格迁移,只需要少许目标场景图像,就可以合成大量数据,效果展示如下:

(3)半自动标注工具PPOCRLabel:通过内置高质量的PP-OCR中英文超轻量预训练模型,可以实现OCR数据的高效标注。CPU机器运行也是完全没问题的。用法也是非常的简单,标注效率提升60%-80%是妥妥的,效果演示如下:

(4)文档结构分析+表格提取PP-Structure:可以对文档图片中的文本、表格、图片、标题与列表区域进行分类,还可以利用表格识别技术完整地提取表格结构信息,使得表格图片变为可编辑的Excel文件。

(5)核心能力全部可以自定义训练,动静统一的开发体验?

动态图和静态图是深度学习框架常用的两种模式。在动态图模式下,代码编写运行方式符合Python程序员的习惯,易于调试,但在性能方面, Python执行开销较大,与C++有一定差距。相比动态图,静态图在部署方面更具有性能的优势。静态图程序在编译执行时,预先搭建好的神经网络可以脱离Python依赖,在C++端被重新解析执行,而且拥有整体网络结构也能进行一些网络结构的优化。

PaddleOCR依赖飞桨核心框架动静统一的能力,支持用户使用动态图编写组网代码。预测部署时,飞桨会对用户代码进行分析,自动转换为静态图网络结构,兼顾了动态图易用性和静态图部署性能两方面优势。

传送门:

Github:https://github.com/PaddlePaddle/PaddleOCR

那么最近的2021年9月份更新,PaddleOCR又给大家带来哪些惊喜呢?


04

PP-OCRv2五大关键技术点深入解读:

全新升级的PP-OCRv2版本,整体的框架图保持了与PP-OCR相同的Pipeline,如下图所示。

在优化策略方面,主要从五个角度进行了深入优化(如上图红框所示),主要包括:

■ 检测模型优化:采用CML知识蒸馏策略

■ 检测模型优化:CopyPaste数据增广策略

■ 识别模型优化:LCNet轻量级骨干网络

■ 识别模型优化:UDML 知识蒸馏策略

■ 识别模型优化:Enhanced CTC loss 改进

下面展开详细介绍:

(1) 检测模型优化:采用CML (Collaborative Mutual Learning) 协同互学习知识蒸馏策略。

如上图所示,CML的核心思想结合了①传统的Teacher指导Student的标准蒸馏与 ②Students网络直接的DML互学习,可以让Students网络互学习的同时,Teacher网络予以指导。对应的,精心设计关键的三个Loss损失函数:GT Loss、DML Loss和Distill Loss,在Teacher网络Backbone为ResNet18的条件下,对Student的MobileNetV3起到了良好的提升效果。

(2) 检测模型优化:CopyPaste数据增广策略

数据增广是提升模型泛化能力重要的手段之一,CopyPaste 是一种新颖的数据增强技巧,已经在目标检测和实例分割任务中验证了有效性。利用CopyPaste,可以合成文本实例来平衡训练图像中的正负样本之间的比例。相比而言,传统图像旋转、随机翻转和随机裁剪是无法做到的。CopyPaste主要步骤包括:①随机选择两幅训练图像,②随机尺度抖动缩放,③随机水平翻转,④随机选择一幅图像中的目标子集,⑤粘贴在另一幅图像中随机的位置。这样,就比较好的提升了样本丰富度,同时也增加了模型对环境鲁棒性。

经过以上两个检测方向的优化策略,PP-OCRv2检测部分的实验效果如下:

(3) 识别模型优化:LCNet轻量级骨干网络

这里,PP-OCRv2的研发团队提出了一种基于MobileNetV1改进的新的骨干网络LCNet,主要的改动包括:

①除SE模块,网络中所有的relu替换为h-swish,精度提升1%-2%

②LCNet第五阶段,DW的kernel size变为5x5,精度提升0.5%-1%

③LCNet第五阶段的最后两个DepthSepConv block添加SE模块, 精度提升0.5%-1%

④GAP后添加1280维的FC层,增加特征表达能力,精度提升2%-3%

(4) 识别模型优化:UDML 知识蒸馏策略

在标准的DML知识蒸馏的基础上,新增引入了对于Feature Map的监督机制,新增Feature Loss,增加迭代次数,在Head部分增加额外的FC网络,最终加快蒸馏的速度同时提升效果。

(5) 识别模型优化:Enhanced CTC loss 改进

考虑到中文OCR任务经常遇到的识别难点是相似字符数太多,容易误识,借鉴Metric Learning的想法,引入Center Loss,进一步增大类间距离,核心思路如上图公式所示。

经过以上三个识别方向的优化策略,PP-OCRv2识别部分的实验效果如下:

经过以上五个方向的优化,最终PP-OCRv2仅以少量模型大小增加的代价,全面超越PP-OCR,取得了良好的效果。


05

良心出品的中英文文档教程

随着本次PP-OCRv2升级,PaddleOCR的项目文档也全面升级,结构更清晰,内容更丰富。

开源地址:https://github.com/PaddlePaddle/PaddleOCR

06

相关学习

9月8日晚20:15-21:30,百度高级研发工程师将为我们详细解析速度与精度都大幅提升的PaddleOCR,感兴趣的同学可以一起学习!

扫描二维码,加入交流群

点击阅读原文可直接报名

本文《最新OCR开源神器来了!》版权归Datawhale所有,引用最新OCR开源神器来了!需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • 2019年斯坦福大学CS224n课程笔记:深度学习在自然语言处理中的应用——Word2Vec与GloVe模型解析
    本文详细解析了2019年斯坦福大学CS224n课程中关于深度学习在自然语言处理(NLP)领域的应用,重点探讨了Word2Vec和GloVe两种词嵌入模型的原理与实现方法。通过具体案例分析,深入阐述了这两种模型在提升NLP任务性能方面的优势与应用场景。 ... [详细]
  • 在探索 Unity Shaders 的过程中,我逐渐意识到掌握 OpenGL 基础知识的重要性。本文将详细介绍 OpenGL 的核心概念和基本操作,帮助读者从零开始理解这一图形编程技术。通过实例和代码解析,我们将深入探讨如何利用 OpenGL 创建高效的图形应用。无论你是初学者还是有一定经验的开发者,都能从中受益匪浅。 ... [详细]
  • Go语言实现Redis客户端与服务器的交互机制深入解析
    在前文对Godis v1.0版本的基础功能进行了详细介绍后,本文将重点探讨如何实现客户端与服务器之间的交互机制。通过具体代码实现,使客户端与服务器能够顺利通信,赋予项目实际运行的能力。本文将详细解析Go语言在实现这一过程中的关键技术和实现细节,帮助读者深入了解Redis客户端与服务器的交互原理。 ... [详细]
  • 宏基因组学经典文献重现(一):利用ggplot2进行散点图可视化分析
    宏基因组学经典文献重现(一):利用ggplot2进行散点图可视化分析 ... [详细]
  • 利用PaddleSharp模块在C#中实现图像文字识别功能测试
    PaddleSharp 是 PaddleInferenceCAPI 的 C# 封装库,适用于 Windows (x64)、NVIDIA GPU 和 Linux (Ubuntu 20.04) 等平台。本文详细介绍了如何使用 PaddleSharp 在 C# 环境中实现图像文字识别功能,并进行了全面的功能测试,验证了其在多种硬件配置下的稳定性和准确性。 ... [详细]
  • 本文深入探讨了Spring Cloud Eureka在企业级应用中的高级使用场景及优化策略。首先,介绍了Eureka的安全配置,确保服务注册与发现过程的安全性。接着,分析了Eureka的健康检查机制,提高系统的稳定性和可靠性。随后,详细讨论了Eureka的各项参数调优技巧,以提升性能和响应速度。最后,阐述了如何实现Eureka的高可用性部署,保障服务的连续性和可用性。通过这些内容,开发者可以更好地理解和运用Eureka,提升微服务架构的整体效能。 ... [详细]
  • IIS 7及7.5版本中应用程序池的最佳配置策略与实践
    在IIS 7及7.5版本中,优化应用程序池的配置是提升Web站点性能的关键步骤。具体操作包括:首先定位到目标Web站点的应用程序池,然后通过“应用程序池”菜单找到对应的池,右键选择“高级设置”。在一般优化方案中,建议调整以下几个关键参数:1. **基本设置**: - **队列长度**:默认值为1000,可根据实际需求调整队列长度,以提高处理请求的能力。此外,还可以进一步优化其他参数,如处理器使用限制、回收策略等,以确保应用程序池的高效运行。这些优化措施有助于提升系统的稳定性和响应速度。 ... [详细]
  • 如何选择优质U盘品牌:专业推荐与选购指南
    如何选择优质U盘品牌:专业推荐与选购指南 ... [详细]
  • 利用Jenkins与SonarQube集成实现高效代码质量检测与优化
    本文探讨了通过在 Jenkins 多分支流水线中集成 SonarQube,实现高效且自动化的代码质量检测与优化方法。该方案不仅提高了开发团队的代码审查效率,还确保了软件项目的持续高质量交付。 ... [详细]
  • 掌握 esrally 三步骤:高效执行 Elasticsearch 性能测试任务
    自从上次发布 esrally 教程已近两个月,期间不断有用户咨询使用过程中遇到的各种问题,尤其是由于测试数据托管在海外 AWS 上,导致下载速度极慢。为此,本文将详细介绍如何通过三个关键步骤高效执行 Elasticsearch 性能测试任务,帮助用户解决常见问题并提升测试效率。 ... [详细]
  • Python与Selenium自动化测试环境配置指南
    Python与Selenium自动化测试环境配置指南 ... [详细]
  • 利用TensorFlow.js在网页浏览器中实现高效的人脸识别JavaScript接口
    作者|VincentMühle编译|姗姗出品|人工智能头条(公众号ID:AI_Thinker)【导读】随着深度学习方法的应用,浏览器调用人脸识别技术已经得到了更广泛的应用与提升。在 ... [详细]
  • 探究计算机网络中Flow、Stream与Torrent的区别及其在五元组Microflow与Traffic Flow中的应用
    探究计算机网络中Flow、Stream与Torrent的区别及其在五元组Microflow与Traffic Flow中的应用 ... [详细]
  • MATLAB人体行为检测与识别
    人体行为检测与识别摘要人体行为检测与识别是当前研究的重点,具有很高的研究价值和广阔的应用前景。主要应用在型人机交互、运动分析、智能监控和虚拟现实也称灵境技术ÿ ... [详细]
author-avatar
loto1115丨
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有