一个发展中的企业,往往都会有很多固定资产需要管理,而这些固定资产的管理、调拨分配、盘点折旧等流程都是非常繁琐的,常常需要大量的时间去完成,资产管理系统(Asset Management System,简称AMS)是一种专门用于对企业的各类资产进行综合管理的软件系统。它覆盖了从资产采购、登记、追踪、维护、调拨、报废到最终处置的整个生命周期,旨在提高资产管理效率、降低管理成本,并为企业决策提供有力支持。
固定资产的全生命周期管理的第一步是“资产入库”,而入库是一个非常繁琐的过程,需要将大量信息录入系统。通过前期调研发现录入过程费时费力,还经常出现录入错误的问题(比如设备型号、序列码是较长的数字、字母序列,人工录入很容易出错)。
那如何解决这个问题呢,我们想到了可以使用OCR辅助人工录入,通过OCR扫描技术结合人工实现资产的快速录入。
OCR 识别,即光学字符识别,是一种通过扫描和识别纸质文档上的文字,将其转换成计算机可编辑和处理的数字文本格式的技术。简单来说,OCR 识别就是将纸质文档上的文字“翻译”成电脑能读懂的文字。
OCR 识别技术主要依赖于图像处理和模式识别算法,通过捕捉文档中的字符特征,如笔画、形状、大小、间距等,与预设的字符库进行比对,从而识别出相应的文字信息。
核心就是对用户上传的图片使用OCR识别,将识别的内容填充到对应的输入框,辅助人工实现快速的资产录入。
大体的流程如下:
需要将OCR识别的内容转成结构化数据(例如JSON),然后返回到手机端,填充到对应的输入框内。
模型直接放在客户端的好处是可以离线使用,缺点也十分明显:一是识别准确率会受影响;二是安装包会变大;三是算法迭代必须等软件整体更新。所以除非是特殊的离线要求,还是把识别放在服务端好一点。
由于用户需要等待OCR的识别结果,所以对OCR识别效率有很高的要求,在正常的网络情况下,响应时间最好能控制在1s以内。
综上三个条件,经过我们对众多OCR产品的对比,最终选择了 腾讯OCR的智能结构化版本。
腾讯云智能OCR(Optical Character Recognition,光学字符识别) ,腾讯OCR产品是腾讯云提供的一项基于深度学习技术的人工智能服务,主要用于实现高精度、高效率的文字识别和提取功能。而智能结构化(Smart Structure Optical Character Recognition )更是融合了业界领先的深度学习技术、图像检测技术以及OCR大模型能力,能够实现不限版式的结构化信息抽取。
通过官方提供的体验地址,使用智能结构化的通用场景,上传我们的资产图片,可以完美的返回结构化数据,识别率也非常高。
可以看到,把我们需要的信息全部提取出来了,基于这些提取的信息,我们可以填充到资产录入信息中,用于辅助用户完成信息录入。
我们的系统使用JAVA语言开发,所以使用的是JAVA的sdk。
<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 密钥管理 页面,即可进行获取密钥。此处还需注意密钥对的保密。
// 为了保护密钥安全,建议将密钥设置在环境变量中或者配置文件中,请参考本文凭证管理章节。
// 硬编码密钥到代码中有可能随代码泄露而暴露,有安全隐患,并不推荐。
Credential cred = new Credential(System.getenv("TENCENTCLOUD\_SECRET\_ID"), System.getenv("TENCENTCLOUD\_SECRET\_KEY"));
2、 实例化一个http选项,设置http选项中的参数。
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选项中的参数。
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对象。
CvmClient client = new CvmClient(cred, "ap-shanghai", clientProfile);
5、 实例化一个cvm实例信息查询请求对象req,每个接口都会对应一个request对象,若有需要可以参照官网文档设置对象中的参数。
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类的实例
// 通过client对象调用DescribeInstances方法发起请求。注意请求方法名与请求对象是对应的
// 返回的resp是一个DescribeInstancesResponse类的实例,与请求对象对应
DescribeInstancesResponse resp = client.DescribeInstances(req);
7、 打印返回的结果
// 输出json格式的字符串回包
System.out.println(DescribeInstancesResponse.toJsonString(resp));
// 也可以取出单个值。
// 您可以通过官网接口文档或跳转到response对象的定义处查看返回字段的定义
System.out.println(resp.getTotalCount());
随着信息技术的飞速发展,资产管理领域正经历着一场深刻的变革。腾讯OCR技术的应用,为我们提供了一种高效、智能的资产管理解决方案。通过将光学字符识别技术与资产管理系统相结合,我们不仅提高了数据采集的准确性和效率,还实现了资产信息的自动化处理和智能分析。
展望未来,我们将继续深化与腾讯OCR技术的合作,不断探索和创新,以期在更多领域带来更多的智能化解决方案。我们相信,通过不断的技术革新和优化,我们的系统将能够更好地服务于企业,帮助他们在激烈的市场竞争中保持领先地位。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。