前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >腾讯云智能结构化识别~资产管理系统

腾讯云智能结构化识别~资产管理系统

原创
作者头像
卖核弹的小男孩
修改2024-12-20 11:17:54
修改2024-12-20 11:17:54
2323
举报

项目背景

一个发展中的企业,往往都会有很多固定资产需要管理,而这些固定资产的管理、调拨分配、盘点折旧等流程都是非常繁琐的,常常需要大量的时间去完成,资产管理系统(Asset Management System,简称AMS)是一种专门用于对企业的各类资产进行综合管理的软件系统。它覆盖了从资产采购、登记、追踪、维护、调拨、报废到最终处置的整个生命周期,旨在提高资产管理效率、降低管理成本,并为企业决策提供有力支持。

企业资产管理的痛点

固定资产的全生命周期管理的第一步是“资产入库”,而入库是一个非常繁琐的过程,需要将大量信息录入系统。通过前期调研发现录入过程费时费力,还经常出现录入错误的问题(比如设备型号、序列码是较长的数字、字母序列,人工录入很容易出错)。

那如何解决这个问题呢,我们想到了可以使用OCR辅助人工录入,通过OCR扫描技术结合人工实现资产的快速录入。

OCR是什么

OCR 识别,即光学字符识别,是一种通过扫描和识别纸质文档上的文字,将其转换成计算机可编辑和处理的数字文本格式的技术。简单来说,OCR 识别就是将纸质文档上的文字“翻译”成电脑能读懂的文字。

OCR 识别技术主要依赖于图像处理和模式识别算法,通过捕捉文档中的字符特征,如笔画、形状、大小、间距等,与预设的字符库进行比对,从而识别出相应的文字信息。

功能设计

核心就是对用户上传的图片使用OCR识别,将识别的内容填充到对应的输入框,辅助人工实现快速的资产录入。

大体的流程如下:

OCR技术的几点考虑考虑

1. 结构化数据

需要将OCR识别的内容转成结构化数据(例如JSON),然后返回到手机端,填充到对应的输入框内。

2.OCR服务在客户端还是服务端

模型直接放在客户端的好处是可以离线使用,缺点也十分明显:一是识别准确率会受影响;二是安装包会变大;三是算法迭代必须等软件整体更新。所以除非是特殊的离线要求,还是把识别放在服务端好一点。

3.性能需求

由于用户需要等待OCR的识别结果,所以对OCR识别效率有很高的要求,在正常的网络情况下,响应时间最好能控制在1s以内。

4. 技术选型

综上三个条件,经过我们对众多OCR产品的对比,最终选择了 腾讯OCR的智能结构化版本

腾讯OCR是什么

腾讯云智能OCR(Optical Character Recognition,光学字符识别) ,腾讯OCR产品是腾讯云提供的一项基于深度学习技术的人工智能服务,主要用于实现高精度、高效率的文字识别和提取功能。而智能结构化(Smart Structure Optical Character Recognition )更是融合了业界领先的深度学习技术、图像检测技术以及OCR大模型能力,能够实现不限版式的结构化信息抽取。

效果体验

通过官方提供的体验地址,使用智能结构化的通用场景,上传我们的资产图片,可以完美的返回结构化数据,识别率也非常高。

可以看到,把我们需要的信息全部提取出来了,基于这些提取的信息,我们可以填充到资产录入信息中,用于辅助用户完成信息录入。

代码实践

我们的系统使用JAVA语言开发,所以使用的是JAVA的sdk。

引入依赖

代码语言:java
复制
<dependency>

    <groupId>com.tencentcloudapi</groupId>

    <artifactId>tencentcloud-sdk-java</artifactId>

    <!-- go to https://search.maven.org/search?q=tencentcloud-sdk-java and get the latest version. -->

    <!-- 请到https://search.maven.org/search?q=tencentcloud-sdk-java查询所有版本,最新版本如下 -->

    <version>3.1.1000</version>

</dependency>

详细接入步骤

1、 实例化一个认证对象cred,入参需要传入腾讯云账户密钥 secretId,secretKey, 前往 API 密钥管理 页面,即可进行获取密钥。此处还需注意密钥对的保密。

代码语言:java
复制
// 为了保护密钥安全,建议将密钥设置在环境变量中或者配置文件中,请参考本文凭证管理章节。

// 硬编码密钥到代码中有可能随代码泄露而暴露,有安全隐患,并不推荐。

Credential cred = new Credential(System.getenv("TENCENTCLOUD\_SECRET\_ID"), System.getenv("TENCENTCLOUD\_SECRET\_KEY"));

2、 实例化一个http选项,设置http选项中的参数。

代码语言:java
复制
HttpProfile httpProfile = new HttpProfile();

//  从3.1.16版本开始, 单独设置 HTTP 代理

// httpProfile.setProxyHost("真实代理ip");

// httpProfile.setProxyPort(真实代理端口);

// get请求(默认为post请求)

httpProfile.setReqMethod("GET"); // get请求(默认为post请求)

httpProfile.setProtocol("https://");  // 合法值:https:// 或者 http:// ,公有云只能使用 https。

httpProfile.setConnTimeout(30); // 请求连接超时时间,单位为秒(默认60秒)

httpProfile.setWriteTimeout(30);  // 设置写入超时时间,单位为秒(默认0秒)

httpProfile.setReadTimeout(30);  // 设置读取超时时间,单位为秒(默认0秒)

httpProfile.setEndpoint("cvm.ap-shanghai.tencentcloudapi.com"); // 指定接入地域域名(默认就近接入)

3、 实例化一个client选项,设置client选项中的参数。

代码语言:java
复制
ClientProfile clientProfile = new ClientProfile();

clientProfile.setSignMethod(ClientProfile.SIGN\_TC3\_256); // 指定签名算法(默认为TC3-HMAC-SHA256)

// 自3.1.80版本开始,SDK 支持打印日志。

clientProfile.setHttpProfile(httpProfile);

clientProfile.setDebug(true);

// 从3.1.16版本开始,支持设置公共参数 Language, 默认不传,选择(ZH\_CN or EN\_US)

clientProfile.setLanguage(Language.EN\_US);

4、 实例化要请求产品的client对象,示例代码以cvm产品为例,实例化CvmClient对象。

代码语言:java
复制
CvmClient client = new CvmClient(cred, "ap-shanghai", clientProfile);

5、 实例化一个cvm实例信息查询请求对象req,每个接口都会对应一个request对象,若有需要可以参照官网文档设置对象中的参数。

代码语言:java
复制
DescribeInstancesRequest req = new DescribeInstancesRequest();

// 填充请求参数,这里request对象的成员变量即对应接口的入参

// 您可以通过官网接口文档或跳转到request对象的定义处查看请求参数的定义

Filter respFilter = new Filter(); // 创建Filter对象, 以zone的维度来查询cvm实例

respFilter.setName("zone");

respFilter.setValues(new String[] { "ap-shanghai-1", "ap-shanghai-2" });

req.setFilters(new Filter[] { respFilter }); // Filters 是成员为Filter对象的列表

6、 通过client对象调用您想调用的接口,返回对应的Response类的实例

代码语言:java
复制
// 通过client对象调用DescribeInstances方法发起请求。注意请求方法名与请求对象是对应的

// 返回的resp是一个DescribeInstancesResponse类的实例,与请求对象对应

DescribeInstancesResponse resp = client.DescribeInstances(req);

7、 打印返回的结果

代码语言:java
复制
// 输出json格式的字符串回包

System.out.println(DescribeInstancesResponse.toJsonString(resp));

// 也可以取出单个值。

// 您可以通过官网接口文档或跳转到response对象的定义处查看返回字段的定义

System.out.println(resp.getTotalCount());

总结

随着信息技术的飞速发展,资产管理领域正经历着一场深刻的变革。腾讯OCR技术的应用,为我们提供了一种高效、智能的资产管理解决方案。通过将光学字符识别技术与资产管理系统相结合,我们不仅提高了数据采集的准确性和效率,还实现了资产信息的自动化处理和智能分析。

展望未来,我们将继续深化与腾讯OCR技术的合作,不断探索和创新,以期在更多领域带来更多的智能化解决方案。我们相信,通过不断的技术革新和优化,我们的系统将能够更好地服务于企业,帮助他们在激烈的市场竞争中保持领先地位。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目背景
  • 企业资产管理的痛点
  • OCR是什么
  • 功能设计
  • OCR技术的几点考虑考虑
    • 1. 结构化数据
    • 2.OCR服务在客户端还是服务端
    • 3.性能需求
    • 4. 技术选型
  • 腾讯OCR是什么
  • 效果体验
  • 代码实践
    • 引入依赖
    • 详细接入步骤
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档