用AI攻克“智能文字识别创新赛题”,这场大学生竞赛掀起了什么风潮?
文章目录
- 一、前言
- 1.1 大赛介绍
- 1.2 项目背景
- 二、基于智能文字场景个人财务管理创新应用
- 2.1 作品方向
- 2.2 票据识别模型
- 2.2.1 文本卷积神经网络TextCNN
- 2.2.2 Bert 预训练+微调
- 2.2.3 模型对比
- 2.2.4 效果展示
- 2.3 票据文字识别接口
- 三、未来展望
一、前言
1.1 大赛介绍
中国大学生服务外包创新创业大赛作为服务外包产业领域唯一的国家级赛事,位列“全国普通高校学科竞赛排行榜评估体系”,自2010年以来已连续举办14届,分为区域赛和全国决赛两个阶段。本届大赛吸引了803所全国院校的8006支团队报名参赛,报名团队数再创新高。其中4097支团队通过审核进入初赛,216 支队伍进入全国总决赛。
本次竞赛内容紧密围绕企业发展中的现实问题,与产业结合度更紧密,特别是智能文字识别技术。这项技术融合了多种先进技术,如智能图像处理、光学字符识别、深度学习、自然语言处理等,能够在多场景下进行文字信息的识别和分析,具有广泛的应用价值。无论是在生产、教育还是生活中,智能文字识别技术都有着重要的作用,能够提高工作效率、降低成本、提升用户体验。
1.2 项目背景
记账是一项重要的生活习惯,可以帮助我们更好地了解自己的支出与收入,以便做出更明智的财务决策。然而,目前市面上大多数的记账 APP 需要手工录入才能完成记账,或者需要获取外卖、支付等应用程序的信息才能进行消费记录,存在功能不齐全、隐私过度收集等问题。尤其是对于中老年人来说,使用记账本应用十分吃力,因为他们对于这些新技术的使用并不熟练。针对这些问题,我们可以通过技术创新来提供更加便捷、高效的记账工具,让人们更好地管理自己的财务。
合合信息作为人工智能科技企业的代表,积极参与了赛题的拟定与赛道建设,设立了“基于智能文字场景个人财务管理创新应用”的相关议题,与众多高校学子共同探索技术创新与落地的多重可能,共同探讨如何通过技术手段解决老年人记账难题,以及如何优化已有软件产品以更好地满足现代人群的需求。
这场竞赛不仅是一次技术交流与创新的盛会,更是对社会问题的思考与解决的起点。青年学子们的参与不仅为解决记账难题和优化软件产品提供了新的思路和方向,也为推动科技进步与社会发展贡献了自己的力量。
二、基于智能文字场景个人财务管理创新应用
在基于智能文字场景个人财务管理创新应用这个项目中,“中国计量大学-去南京整薯条”队伍的作品深深吸引了我,下面我们就来看看作品情况。
2.1 作品方向
“中国计量大学-去南京整薯条”队伍作品实现了登录登出、数据存贮功能、消费信息录入、消费数据的展示与编辑、自动判断消费类型、多维度展示消费数据、支持消费凭据类型等等。这里我们主要介绍消费信息录入创新功能中最重要的技术:票据识别模型。
2.2 票据识别模型
“去南京整薯条”队伍在使用合合信息提供的商铺小票识别接口基础上, 使用提供的通用文字识别将票据上的信息全部提取出来,并用 TextCNN 模型和 Bert 预训练+微调分别对所有提取出来的词句进行分类,返回最有可能为商铺名的短语。
2.2.1 文本卷积神经网络TextCNN
文本卷积神经网络(TextCNN)是一种常用于文本分类自然语言处理任务的深度学习模型。优点在于它能够通过卷积操作捕捉文本中的局部特征,实现对不同长度的词组合的有效建模。同时,TextCNN具有参数共享和局部连接的特性,减少了模型的参数量和计算复杂度。它还能够通过多尺度感知提取文本的全局和局部信息,从而更好地理解文本的语义和结构。此外,TextCNN在处理大规模文本数据时具有高效性能,能够快速处理大量的文本信息。综上所述,“去南京整薯条”队伍选择 TextCNN 作为模型之一,来进行票据识别。
在本任务中,由于商铺名短语识别任务涉及的相关短语包含大量特定的词语,如果 使用通用的文字词向量库会导致分类性能下降。故在本任务中,将测试集中所有数据进行词向量映射,使该方式生成的词向量更加灵活,并且更加适用于商铺名的识别。
“去南京整薯条”队伍训练的 TextCNN 模型中,输入的词向量大小为 30*50;模型 采用 4 种不同的区域大小,其大小分别为 2、3、4、5。对于每一种区域大小,都使用了 2 个不同的卷积核,通过 Relu 函数进行激活,生成特征图。再通过 max-pooling,所有 特征图进行串联,从而形成一个单一的特征向量。经过全连接层,输出结果。TextCNN模型图如所示:
此模型局部特征提取能力强,文本分类表现优秀。
2.2.2 Bert 预训练+微调
Bert 是一种双向预训练语言模型,它可以用于各种自然语言处理任务,如文本分类、命名实体识别、情感分析等。BERT的训练分为两个步骤:预训练和微调。在预训练阶段,BERT使用大量的无监督文本通过自监督训练的方式(通过使用受完形填空任务启发的Masked Language Model预训练目标)训练,把文本中包含的语言知识(包括:词法、语法、语义等特征)以参数的形式编码到Transformer-encoder layer中。在微调阶段,BERT使用少量的有标签数据进行微调,以适应特定任务。
“去南京整薯条”队伍使用 Hugging Face 自然语言处理(NLP)社区提供的“Transformers” 库中的“bert-base-chinese”模型作为预训练模型,并使用其配套的分词器来进行文本序列的特征提取。 使用了一个简单的线性层和全连接层来构建下游任务模型进行微调训练。Bert预训练模型+微调模式图如下:
此模型兼顾序列中所有位置的信息,可以更好理解语义信息。
2.2.3 模型对比
由表可知,Bert 预训练+微调的模式在训练集/测试集正确率和F1得分均明显超过 TextCNN,所以其团队在本项目中选用 Bert 预训练+微调模型。
2.2.4 效果展示
可以看到最终实现的效果,“去南京整薯条”队伍通过合合信息提供的通用文字识别接口与大模型的结合成功优化了票据信息识别和自动分类问题:
2.3 票据文字识别接口
传统OCR识别采用统计模式,处理流程较长,典型的传统OCR识别流程如图所示:
传统OCR识别方法存在诸多弊端:
1、对于图像质量差、模糊、亮度不均匀、反光、倾斜等各种问题识别效果很差。
2、对于自然场景下拍摄的复杂样本基本无法处理,没有修改提升空间,可用性不高。
针对以上问题,合合信息打造了一款智能文字识别训练平台。对于较大难度的证件类和票据类性能测试为例,面对旋转、阴影、反光、褶皱、形变、模糊、多语言、低像素、光照不均等复杂场景,合合信息智能文字识别产品均有较高的识别准确率,字符准确率分别为99.21%和99.59%,字段准确率分别为97.87%和98.42%。
通过融合不同行业和场景,支持增值税发票、火车票、出租车票、飞机行程单等多种国内外常见票据高精准度识别,提供便捷的票据处理服务。
并且在中国信息通信研究院(以下简称“中国信通院”)“可信ai—ocr智能化服务”评估工作,并获得“增强级”评级:
合合信息在自然语言处理、图像识别等领域拥有领先的技术和产品,对于研发大模型得天独厚的条件,期待合合信息在未来能够为用户和行业带来更多的惊喜和创新!
三、未来展望
本次合合信息提出的“基于智能文字场景个人财务管理创新应用”赛题,让学生在真实的业务场景中获得实践经验,消除人才发展目标与市场需求之间的信息不对称,促进校企双方在科研项目和人才培养等方面的深度合作,推动产学研用协同创新发展。
合合信息人力资源部负责人杜杰在大赛闭幕式上表示,未来是人工智能的时代,合合信息希望通过AI“星火计划”等系列人才培养计划和配套分享平台,致力于帮助科技青年在实践中提升专业能力。未来,将继续与高校和行业机构合作,共同探索产学研融合之路,为大学生提供更便捷的创新科技灵感落地渠道,从而实现科技创新和社会进步的双赢。
相关文章:

用AI攻克“智能文字识别创新赛题”,这场大学生竞赛掀起了什么风潮?
文章目录 一、前言1.1 大赛介绍1.2 项目背景 二、基于智能文字场景个人财务管理创新应用2.1 作品方向2.2 票据识别模型2.2.1 文本卷积神经网络TextCNN2.2.2 Bert 预训练微调2.2.3 模型对比2.2.4 效果展示 2.3 票据文字识别接口 三、未来展望 一、前言 1.1 大赛介绍 中国大学生…...
EJB基本概念和使用
一、EJB是什么? EJB是sun的JavaEE服务器端组件模型,是一种规范,设计目标与核心应用是部署分布式应用程序。EJB2.0过于复杂,EJB3.0的推出减轻了开发人员进行底层开发的工作量,它取消或最小化了很多(以前这些是必须实现)…...
神经网络基础-神经网络补充概念-09-m个样本的梯度下降
概念 当应用梯度下降算法到具有 m 个训练样本的逻辑回归问题时,我们需要对每个样本计算梯度并进行平均,从而更新模型参数。这个过程通常称为批量梯度下降(Batch Gradient Descent)。 代码实现 import numpy as npdef sigmoid(z…...

分布式 - 消息队列Kafka:Kafka消费者分区再均衡(Rebalance)
文章目录 01. Kafka 消费者分区再均衡是什么?02. Kafka 消费者分区再均衡的触发条件?03. Kafka 消费者分区再均衡的过程?04. Kafka 如何判定消费者已经死亡?05. Kafka 如何避免消费者的分区再均衡?06. Kafka 消费者分区再均衡有什…...

BIO、NIO和AIO
一.引言 何为IO 涉及计算机核心(CPU和内存)与其他设备间数据迁移的过程,就是I/O。数据输入到计算机内存的过程即输入,反之输出到外部存储(比如数据库,文件,远程主机)的过程即输出。 I/O 描述了计算机系统…...

理解 Go 中的切片:append 操作的深入分析(篇1)
理解 Go 语言中 slice 的性质对于编程非常有益。下面,我将通过两个代码示例来解释切片在不同函数之间传递并执行 append 操作时的具体表现。 本篇为第 1 篇,当切片的容量 cap 充足时 第一份代码 slice1 的初始长度为 3,容量为 10 func main()…...

由于找不到mfc140u.dll,无法继续执行代码怎么修复?
当我在使用某个应用程序时遇到了mfc140u.dll缺失的错误提示时,我意识到这是由于该动态链接库文件丢失或损坏所引起的。mfc140u.dll是MFC的一部分,它包含了许多与用户界面、窗口管理、控件等相关的函数和类。这个文件通常用于支持使用MFC开发的应用程序的…...
【0.1】lubancat鲁班猫4刷入debian网络ping 域名不通问题
目录 1. 环境2. 操作步骤 1. 环境 lubancat4鲁班猫4 (4G0)不带emmc系统镜像lubancat-rk3588-debian11-gnome-20230807_update.img官方资料地址https://doc.embedfire.com/products/link/zh/latest/linux/ebf_lubancat.html 2. 操作步骤 从官网给的百度网盘下载linux系统全部…...

KafkaStream:基本使用
简介: kafkaStream:提供了对存储在kafka中的数据进行流式处理和分析的功能 特点: KafkasSream提供了一个非常简单轻量的Library,它可以非常方便的嵌入到java程序中,也可以任何方式打包部署 入门案例: 1、…...

【数据结构】二叉树
完全二叉树 是指所有结点度数小于等于2的树 所以这种情况也是: 几条性质 一个具有n个结点的完全二叉树的深度为: log 2 ( n 1 ) 的结果向上取整。 \\\log_{2}(n1) \ \ 的结果向上取整。 log2(n1) 的结果向上取整。设度为0的结点个数是n0&#…...

基于灰狼优化(GWO)、帝国竞争算法(ICA)和粒子群优化(PSO)对梯度下降法训练的神经网络的权值进行了改进(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

jenkins自动化构建保姆级教程(持续更新中)
1.安装 1.1版本说明 访问jenkins官网 https://www.jenkins.io/,进入到首页 点击【Download】按钮进入到jenkins下载界面 左侧显示的是最新的长期支持版本,右侧显示的是最新的可测试版本(可能不稳定),建议使用最新的…...

HTTPS 的加密流程
目录 一、HTTPS是什么? 二、为什么要加密 三、"加密" 是什么 四、HTTPS 的工作过程 1.对称加密 2.非对称加密 3.中间人攻击 4.证书 总结 一、HTTPS是什么? HTTPS (Hyper Text Transfer Protocol Secure) 是基于 HTTP 协议之上的安全协议&…...

Jmeter 参数化的几种方法
目录 配置元件-用户自定义变量 前置处理器-用户参数 配置元件-CSV Data Set Config Tools-函数助手 配置元件-用户自定义变量 可在测试计划、线程组、HTTP请求下创建用户定义的变量 全局变量,可以跨线程组调用 jmeter执行的时候,只获取一次࿰…...
剑指Offer45.把数组排成最小的数 C++
1、题目描述 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 示例 1: 输入: [10,2] 输出: “102” 示例 2: 输入: [3,30,34,5,9] 输出: “3033459” 2、VS2019上运行 先转换成字符串再组合起来 #in…...

【java毕业设计】基于SSM+MySql的人才公寓管理系统设计与实现(程序源码)--人才公寓管理系统
基于SSMMySql的人才公寓管理系统设计与实现(程序源码毕业论文) 大家好,今天给大家介绍基于SSMMySql的人才公寓管理系统设计与实现,本论文只截取部分文章重点,文章末尾附有本毕业设计完整源码及论文的获取方式。更多毕业…...

golang操作excel的高性能库——excelize/v2
目录 介绍文档与源码安装快速开始创建 Excel 文档读取 Excel 文档打开数据流流式写入 [相关 Excel 开源类库性能对比](https://xuri.me/excelize/zh-hans/performance.html) 介绍 Excelize是一个纯Go编写的库,提供了一组功能,允许你向XLAM / XLSM / XLS…...

学习51单片机怎么开始?
学习的过程不总是先打好基础,然后再盖上层建筑,尤其是实践性的、工程性很强的东西。如果你一定要先全面打好基础,再学习单片机,我觉得你一定学不好,因为你的基础永远打不好,因为基础太庞大了,基…...
[.NET学习笔记] -.NET6.0项目动态加载netstandard2.0报错但项目添加引用则正常的问题
问题描述 .NET6.0的项目使用netstandard2.0版本的动态链接库。若是在项目中直接添加引用,应用netstandard2.0项目或者netstandard2.0编译后的dll均能正常工作。但如果通过xcopy等方式,额外将对应的dll复制到执行目录,会执行失败。调用方式一…...

山景DSP芯片可烧录AP8224C2音频处理器方案
AP8224C2高性能32位音频应用处理器AP82系列音频处理器是面向音频应用领域设计的新一代SoC平台产品,适用于传统音响系统、新兴的蓝牙或Wifi 无线音频产品、Sound Bar 和调音台等市场。该处理器在总体架构和系统组成上,充分考虑了音频领域的特点࿰…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...