腾讯云OCR实践 - 降低客服财务运营成本
一、 前言:
随着图片时代的飞速发展,大量的文字内容为了优化排版和表现效果,都采用了图片的形式发布和存储,这为内容的传播和安全性带来了很大的便利,需要做重复性劳动。
OCR文字扫描工具也逐渐的应运而生,主要是为了帮助用户解决了内容编辑的难题。
二、 OCR是什么?
OCR全称是Optical Character Recognition,意思是“光学字符识别技术”。
1. OCR的作用:
通过OCR 技术识别图像中的文字,提取出来转换成文本格式,输出一些结构化的文本数据。

2. OCR实现文字识别的过程:
OCR的原理就是通过扫描仪将汉字文稿通过电荷耦合器件CCD将文稿的光信号转换为电信号,经过模拟/数字转换器转化为数字信号传输给计算机。计算机接受的是文稿的数字图像,然后对这些图像中的汉字进行识别。

3. OCR的选择:

4. OCR在生活中的应用:
智能识别技术高速发展的今天,通过仔细回忆,发现生活中方方面面都应用了OCR识别技术,以下为本人实际在生活中实际应用场景,看看您是否也有同样的经历?
(1). 小孩做作业:
平时家里老人在辅导小孩做作业,遇到不会做的,会使用“作业帮”的软件。对不理解的题目进行拍照,上传到服务器,服务器识别到文字,并在题库中查找对应的题目,将查询的结果再返回到界面中。

(2). 自媒体运营:
经常需要去公众号发布一些文案、活动,在网上找的比较好的素材,大家应该经常会看到一些百度文库等这种付费的文案素材下载,有时,只能靠自己对着手敲形式。可以使用微信自带的“文字识别”功能进行识别。

(3). 支付付款:
在手机二维码支付之前,人们都还是用现金支付,而现在大街小巷都在用手机支付,这样一新的支付方式已经进入我们的生活并被逐渐被大众所接受。那我们打开扫一扫,往商家或者个人的二唯码扫一下,就能识别是谁?甚至更为先进的人脸识别扫码支付,这些其实都是OCR应用场景最广的一种方式吧。
(4). 共享单车:
上班离公司比较近,每天上下班都是扫一下共享单车,来回通勤。使用微信扫描共享单车上的二唯码,也是一种OCR的应用场景。

以下是OCR在生活的应用场景的一个总结:

接下来,结合公司的业务,进行流程优化,以达到公司节能降本提效的结果。
三、公司业务:
公司是做宠物相关业务的,公司秉承为宠物提供营养、健康、安全的食品为己任,专注于犬猫粮的研发、生产和销售。

四、公司业务痛点:
目前OCR技术正在被广泛的运用,腾讯云文字识别就是一款运用OCR的技术,可以帮助企业解决一些业务的痛点,为公司进行增效降本。
1.业务场景:
-
场景一:公司的地推业务员,需要去宠物店进行登记授权店铺可以销售本公司的产品,也可以为公司拓展客户的目的,公司客服部门专门需要对业务员地推的提交的信息进行审核,同时,也为业务的考核进行评定。
-
场景二:供应商在采购后,需要将开立的发票进行公司交账。

2. 业务痛点:
- 商家认证时,上传的营业执照后,需要人工去审核,十分耗费人力,而且是一个十分枯燥重复的事情。
- 发票提交后,需要财务人员人工去审核,财务的人员也经常加班。
- 通过扩展人力 + 加班的形式,会导致公司的人力成本增大。

下面让我们通过对腾讯云文字识别实践,来降低客服财务运营成本.
五、腾讯云文字识别实践:
基于腾讯优图实验室的深度学习技术的文字识别,将图片上的文字内容,智能识别成为可编辑的文本。OCR 支持身份证、名片等卡证类和票据类的印刷体识别,也支持运单等手写体识别,支持提供定制化服务,可以有效地代替人工录入信息。

基于腾讯优图实验室的深度学习技术的文字识别,在产品选型时,相对于其它产品提供了很大的优势。
基于腾讯自研的深度学习技术和海量的数据,提供卡证、票据类印刷体和手写体、自定义模板等多种场景和类型的文字识别服务。

腾讯云OCR是一款优秀的文字识别服务,具有高精度、低错误率、快速识别等特点,并可应用于不同的场景。使用腾讯云OCR可以帮助我们快速处理图像中的文字信息,提高工作效率,受到了广泛的应用。
1. 开通相关产品:
可以看到腾讯云的OCR的产品很多,可以看到在很多领域可以广泛的应用,成为高效生产力的辅助工具。

这里为了测试本文提到的2种场景,选择“通用文字识别”类型。

勾选“我已阅读并同意”,即可进行开通文字识别产品功能。

账号记得需要实名制,否则会提示需要进行实名制。审核通过后,可以看到我们首次开通“文字识别服务”,各个资源包有免费赠送的次数,让我们可以对产品进行一个调研与测试,十分的贴心。

首次开通会赠送250次免费机会,开通的类型也是有9种之多,可以灵活根据自己的业务需求进行测试。

2. 免费测试:
腾讯云文字识别产品家族包括通用文字识别、通用卡证识别、票据单据识别、文本图像增强、智能结构化识别、智能扫码以及特定场景识别等服务,开通后即可享受1,000次/月的免费调用额度。

3. 新手体验:
官方提供了多种途径,可以根据这些途径选择合适的使用方式。

- 文字识别体验Demo
- 可视化调用文字识别服务
- 一分钟代码接入服务端 API
4. 在线文字识别体验Demo:
直接点击“上传本地文件”,选择一个营业执照,进行在线解析,可以看到返回的识别结果。

5. 可视化调用文字识别服务 - 官方调试工具:
先从官网提供的在线调试工具进行测试,先看看效果,在“签名串生成”中,点击“查看密钥”,去查看ID和密钥。

查看API的ID和密钥,显示密钥需要短信验证一下。

在“在线调用”中,输入参数里面,填入imageUrl,和刚刚生成的签名串,点击“发起调用”,可以看到响应结果有返回的数据了。
六、构建Node服务解析:
腾讯云OCR官方准备了多种方式,快速将该接口对应的腾讯云开发者工具套件(SDK) 集成到本地项目中,本文为了演示功能,使用的是Node的Koa框架进行开发。

| 序号 | 包 | 作用 |
|---|---|---|
| 1 | koa | Koa是Node.js的一个高级框架,它基于Node.js的中间件机制,提供了一个更简单、更灵活的框架,用于构建高效、可扩展的Web应用程序。 |
| 2 | koa-bodyparser | Koa-bodyparser是一个Web框架koa的中间件,用于解析HTTP请求中的请求体,也就是把POST请求中的数据解析到ctx.request.body中。 |
| 3 | koa-router | koa-router是koa的一个中间件,其内部也包含众多的中间件,这些中间件通过Layer对象根据路由路径的不同进行划分。 |
| 4 | tencentcloud-sdk-nodejs | 用于访问腾讯云服务的 SDK,可以帮助您使用 Node.js 语言在腾讯云上进行开发。 |
1. 初始化项目:
mkdir orc-test
cd orc-test
npm init
# 一路按回车即可初始化一个package.json# 安装插件
yarn add tencentcloud-sdk-nodejs@4.0.673 koa@^2.14.2 koa-bodyparser@^4.4.1 koa-router@^12.0.0
2. 写入ocr识别的代码:
const tencentcloud = require("tencentcloud-sdk-nodejs")
const OCRClient = tencentcloud.ocr.v20181119.Clientconst Koa = require('koa');
const Router = require('koa-router');
const bodyParser = require('koa-bodyparser');const client = new OCRClient({credential: {secretId: "AKIDyxpjjmxxxxxxxFdtx", # 使用自己的idsecretKey: "eFh0961yxxxxAQ", # 使用自己的密钥},// 产品地域region: "ap-guangzhou",
})// 实例化Koa对象 => app
const app = new Koa();
// 实例化路由对象 => router
const router = new Router();app.use(bodyParser())// 测试接口
router.get('/', async (ctx, next) => {ctx.response.body = `<h1>Hello, Koa2</h1>`;
});function getImg(ImageUrl) {return client.BizLicenseOCR({ImageUrl,},)
}// 获取营业执照结果
router.post('/api/getBusiness', async (ctx, next) => {const request = ctx.request.bodylet result = await getImg(request.url);ctx.response.type = 'application/json';ctx.response.body = {"code": '200', "message": '成功', "data": result };
});app.use(router.routes()).use(router.allowedMethods());// 在端口3000监听
app.listen(3000);
console.log('app started at port 3000...');
3. 构建测试url:
在postman中输入get请求的http://127.0.0.1:3000即可

4. 测试营业执照是否能正确解析:
在postman中,输入post请求的http://127.0.0.1:3000/api/getBusiness,post请求参数为url,可以看到能返回营业执照的信息。

5. 测试增值税发票是否能正确解析:
将请求图片的解析函数BizLicenseOCR,替换为函数VatInvoiceOCR。
function getImg(ImageUrl) {return client.VatInvoiceOCR({ImageUrl,},)
}
这里方法的名称可以参考以下,不同的类型图片,使用不同的方法:

在postman中,输入post请求的http://127.0.0.1:3000/api/getBusiness,post请求参数为url,可以看到能返回增值税发票的信息。

6. 总结:
以下是我从0到1开始由入门到实战,花了不到半小时,就完成了整个OCR的体验流程,可以感受到腾讯云的产品确实简单易用,同时,也完成了对营业执照、增值税发票的一个调研完成。

7. 改善措施前后对比:

六、预计导入收益:

- 采用腾讯云的OCR文字识别功能,可以大大的简化了业务的工作流程。
- 由之前的纯人工操作,改为自动审核机制,将识别不出来或者识别有误的,再进行人工审核。
- 极大的方便了客服、财务人员的工作量,也不需要经常下班后还要带电脑。
对公司的一个降本节流的策略,做了一个预计的评估,人力的成本约减少30%左右,工作提高的效率在50%以上,做成基础的公共服务,后续有新的业务场景也可以很快的上线。
当然,需要根据公司的实际情况进行调研,比如采购的成本如果远远大于人工的成本,可能就需要进行衡量一下。
七、总结:
OCR技术的成熟,使得图文时代的内容编辑更加轻松,对于经常和文字图片打交道的业务场景来说,基于OCR技术的文字识别和提取工具是必不可少的效率提升的利器。
在信息社会时代,每天会产生大量的票据、表单、证件数据,这些数据想要从人工处理转变到信息电子化,需要利用OCR技术进行提取录入。
相关文章:
腾讯云OCR实践 - 降低客服财务运营成本
一、 前言: 随着图片时代的飞速发展,大量的文字内容为了优化排版和表现效果,都采用了图片的形式发布和存储,这为内容的传播和安全性带来了很大的便利,需要做重复性劳动。 OCR文字扫描工具也逐渐的应运而生,…...
springboot+vue上传图片
这里是一个简单的示例,演示了如何在Spring Boot中从Vue.js上传图像: 1.前端Vue.js代码: <template><div><input type"file" change"handleFileUpload"><button click"uploadImage">…...
高压电缆护层接地环流及温度在线监测系统
高压电缆的金属护层是电缆的重要组成部分,当缆芯通过电流时,会在金属护层上产生环流,外护套的绝缘状态差、接地不良、金属护层接地方式不正确等等都会引起护套环流异常现象,严重威胁电缆运行安全。 当电缆金属护层环流出现异常时…...
无涯教程-JavaScript - IPMT函数
描述 IPMT函数根据定期,固定的还款额和固定的利率返回给定投资期限内的利息支付。 语法 IPMT (rate, per, nper, pv, [fv], [type])争论 Argument描述Required/OptionalRateThe interest rate per period.RequiredPerThe period for which you want to find the interest a…...
【EI会议征稿】第三届机械自动化与电子信息工程国际学术会议(MAEIE 2023)
第三届机械自动化与电子信息工程国际学术会议(MAEIE 2023) 第三届机械自动化与电子信息工程国际学术会议(MAEIE 2023)将于2023年12月15-17日在江苏南京举行。本会议通过与业内众多平台、社会各团体协力,聚集机械自动…...
手写实现LRN局部响应归一化算子
1、重写算子的需求 芯片推理过程中遇到很多算子计算结果不对的情况,原因是封装的算子会在某些特殊情况下计算超限,比如输入shape特别大或者数值特别大时,LRN算子计算会出现NAN值,所以需要重写算子。先对输入数据做一个预处理&…...
朗思科技数字员工通过统信桌面操作系统兼容性互认认证
近日,朗思科技数字员工与统信桌面操作系统V20进行了兼容互认,针对上述产品的功能、兼容性方面,通过共同严格测试表明——朗思科技数字员工在统信桌面操作系统 V20上整体运行稳定,满足功能及兼容性测试要求。 北京朗思智能科技有限…...
十六、Webpack常见的插件和模式
一、认识插件Plugin Webpack的另一个核心是Plugin,官方有这样一段对Plugin的描述: While loaders are used to transform certain types of modules, plugins can be leveraged to perform a wider range of tasks like bundle optimization, asset m…...
ChatGPT新增超强插件:文本直接生成视频、海报,支持自定义修改!
全球著名在线设计平台Canva,在ChatGPT Plus(GPT-4)上推出了插件功能,用户通过文本提示,几秒钟就能生成演示文稿、PPT插图、电子书封面、宴会邀请函等各种精美设计海报,同时支持生成视频。 该插件最强大的功…...
亚像素边缘提取的例子
求帮忙下载: 1.http://download.csdn.net/detail/pkma75/925394 pkma75 资源积分:1分 备注:pdf格式,用曲线拟合的方法计算亚像素,编程易实现,具有较强的实用价值 2.http://download.csdn.net/detail/kua…...
Wayland:推动Linux桌面进入下一代图形显示时代
文章首发地址 Wayland是Linux系统下的一种图形显示协议,旨在替代X Window System(X11)作为Linux桌面环境的图形显示服务。下面是对Wayland的详细解释: 背景: 传统的Linux桌面环境使用X Window System(X11&…...
mysql外键(foreign key)
简介 MySQL的外键约束用来在两个表数据之间建立链接,其中一张表的一个字段被另一张表中对应的字段约束。也就是说,设置外键约束至少要有两种表,被约束的表叫做从表(子表),另一张叫做主表(父表&…...
内网穿透——Windows搭建服务器
文章目录 1.前言2. Emby网站搭建2.1. Emby下载和安装2.2 Emby网页测试 3. 本地网页发布3.1 注册并安装cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar内网穿透本地设置 4.公网访问测试5.结语 1.前言 在现代五花八门的网络应用场景中,观看视频绝对是主力应用场景之一&…...
UE5.1 + Android 环境搭建
官方文档:一定一定一定要参照官方文档,因UE不同版本对应的环境搭建并不完全一致。 准备工作 通过EpicGameLaunch下载Android目标平台。 必须安装jdk1.8并配置环境变量,UE5.1不要使用最新的jdk20;下载地址 安装 Android Studio …...
华为python面试题目
华为Python常见的面试问题包括: Python是如何被解释的?什么是PEP8?Python是怎样管理内存的?什么是Python装饰器?Python提供哪些内置类型?Python中的异常处理是怎样的?什么是Python的上下文管理器?Python中的列表推导式是什么?Python中的生成器是什么?什么是Python的装…...
IP代理安全吗?如何防止IP被限制访问?
你是否遇到过可以正常上网,但访问某个网站却被禁止?注册某个网站账号,却被封号?那都是因为IP出现问题!您的IP地址透露很多关于您的信息,包括您的位置和互联网活动。 在本文中,我们将一起了解IP地…...
使用 gst-template 创建自己的 gstreamer 插件
系列文章目录 创建 gstreamer 插件的几种方式 使用 gst-template 创建自己的 gstreamer 插件 使用 gst-plugins-bad 里面的 gst-element-maker 工具创建gstreamer 插件 文章目录 系列文章目录前言一、如何获取 gst-template 仓库代码二、gst-template 相关的软件依赖1. 根据自…...
nginx反向代理,用户访问服务器1的80端口,请求转发至服务器2,3的8882端口
两台应用服务器,一台nginx,用户访问nginx服务器80端口,将请求转发至服务器2和服务器3的8882端口。 1、修改nginx配置文件 upstream backend {server 10.60.16.187:8882;server 10.60.16.188:8882;}server {listen 80;server_name 10.6…...
Python学习笔记:导入txt、xlsx文件并做简单函数处理
1.txt文件 1.1路径 file_path "E:\Python Project\temp.txt" with open(file_path) as f:content1 f.read() 导入文件时,如果直接放文件绝对路径上去会报错,这是因为\P是转义字符 所以在绝对路径前面加r可以避免将引号内的内容识别成转义…...
uniapp 轮播列表左右滑动,滑动到中间放大
html <!-- 轮播 --><view class"heade"><swiper class"swiper" display-multiple-items3 circulartrue previous-margin1rpxnext-margin1rpx current0 change"swiperChange" ><block v-for"(item,index) in list"…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...


