文档中心>文字识别>实践教程>OCR 技术解读和腾讯云文字识别试用教程体验

OCR 技术解读和腾讯云文字识别试用教程体验

最近更新时间:2023-12-08 16:27:19

我的收藏
近年来,随着人工智能技术的快速发展,OCR(Optical Character Recognition,光学字符识别)技术得到了广泛的应用和重视。OCR 技术用于将印刷或手写的文本转化为可编辑的数据,极大地提高了数据处理的效率和精确度。腾讯云的 文字识别 服务提供了强大而可靠的 OCR 功能,为开发者和 AI 爱好者提供了便捷的文字识别解决方案。
本文将介绍 OCR 技术的基本原理,深入解读腾讯云文字识别服务的特点和优势,并通过实际项目的应用案例,阐述在具体项目中腾讯云文字识别的最佳实践。

应用场景与基本原理

OCR 技术解读

基本原理

OCR 技术的基本原理是通过图像处理和模式识别的方法,将图像中的文字区域识别出来,并将其转化为可编辑的文本。
一般而言,OCR 技术的处理流程包括以下几个关键步骤:
1. 图像预处理:对输入的图像进行预处理,包括灰度化、二值化、噪声去除等,以便于后续的文字分割和识别。
2. 文字分割:将预处理后的图像中的文字区域切分成单个字符或单词,以提供给文字识别模型进行分析和识别。
3. 特征提取:对每个文字区域提取其特征,如形状、灰度和纹理等,以构建能够区分不同字符的特征向量。
4. 文字识别:使用机器学习或深度学习模型,对提取的文字特征进行识别和分类,得到最终的识别结果。
OCR 技术的关键在于特征提取和文字识别的过程。传统的 OCR 方法主要使用手工设计的特征和统计模型,但这些方法往往对光照、噪声和字体等因素较为敏感,对于复杂场景和多种字体的识别效果有限。而随着深度学习的发展,基于深度神经网络的 OCR 方法取得了显著的进展,能够更好地适应各种复杂场景和字体样式,提高了文字识别的准确性和鲁棒性。

腾讯云文字识别服务

腾讯云提供了一系列文字识别服务,包括通用 OCR、身份证 OCR、银行卡 OCR、车牌 OCR 等。这些服务基于深度学习模型,具有高度准确性和稳定性,并且支持多种语言和格式的文字识别。可参见最佳实践:用腾讯云 AI 文字识别实现企业资质证书识别




腾讯云文字识别服务的特点和优势如下:
高准确性:基于深度学习技术,腾讯云文字识别服务在不同场景和字体下都能取得较高的识别准确率,有效提高数据处理和文字识别的效率。
多语言支持:腾讯云文字识别服务支持多种语言的文字识别,包括中文、英文、日文、韩文等,满足不同用户的需求。
多格式支持:腾讯云文字识别服务支持多种格式的文字识别,包括图片、PDF、手写笔记等,方便用户进行多样化的文本识别。
高稳定性:腾讯云文字识别服务具有良好的稳定性和可靠性,确保服务的持续可用性和数据的安全性。

文字识别流程简介

1. 通过图像输入设备获取图像,
2. 通过图像处理对图像进行预处理,
3. 然后将预处理后的图像进行文字区域定位,在文字区域内进行字符分割和识别,
4. 得到最终的文字输出结果。

OCR 系统结构

OCR系统由以下组件组成:扫描仪/相机,预处理系统,字符分割系统,识别系统以及后处理系统。

OCR 技术原理

OCR 识别一般由实现字符处理、字符定位、字符分割和字符识别等多个模块组成,其中还要用到识别算法、图像处理算法等。




OCR 技术科普与应用实践

应用领域





项目实践





优缺点





OCR 应用案例





未来与展望





API 类型





最佳实践

在最新的我们日常交租赁税费时,可通过 OCR 识别,一键填写表格,省去大量的业务人员核对和填写时间,大大提升工作效率







初体验

1. 开通

进入文字识别控制台,阅读《文字识别服务条款》后单击勾选同意框,即可一键开通文字识别所有 API 接口服务。



通过迅速




2. 打开控制台





3. 使用 API 方式调用

使用 通用手写识别体 为例:



上传我手写的文本,通过 ImageUrl 方式调用









import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.ocr.v20181119.OcrClient;
import com.tencentcloudapi.ocr.v20181119.models.*;

public class GeneralHandwritingOCR{
public static void main(String [] args) {
try{
// 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
// 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
// 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
Credential cred = new Credential("SecretId", "SecretKey");
// 实例化一个http选项,可选的,没有特殊需求可以跳过
HttpProfile httpProfile = new HttpProfile();
httpProfile.setEndpoint("ocr.tencentcloudapi.com");
// 实例化一个client选项,可选的,没有特殊需求可以跳过
ClientProfile clientProfile = new ClientProfile();
clientProfile.setHttpProfile(httpProfile);
// 实例化要请求产品的client对象,clientProfile是可选的
OcrClient client = new OcrClient(cred, "ap-beijing", clientProfile);
// 实例化一个请求对象,每个接口都会对应一个request对象
GeneralHandwritingOCRRequest req = new GeneralHandwritingOCRRequest();
req.setImageUrl("https://zkk-1300025204.cos.ap-nanjing.myqcloud.com/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20230724135353.jpg");
// 返回的resp是一个GeneralHandwritingOCRResponse的实例,与请求对象对应
GeneralHandwritingOCRResponse resp = client.GeneralHandwritingOCR(req);
// 输出json格式的字符串回包
System.out.println(GeneralHandwritingOCRResponse.toJsonString(resp));
} catch (TencentCloudSDKException e) {
System.out.println(e.toString());
}
}
}



{
"Response": {
"Angel": 5.989999771118164,
"RequestId": "eafe1f28-147e-4380-803c-61219a84a0f1",
"TextDetections": [
{
"AdvancedInfo": "{\\"Parag\\":{\\"ParagNo\\":1}}",
"Confidence": 83,
"DetectedText": "腾讯云赵Kk",
"Polygon": [
{
"X": 128,
"Y": 799
},
{
"X": 2824,
"Y": 473
},
{
"X": 2903,
"Y": 1131
},
{
"X": 208,
"Y": 1458
}
],
"WordPolygon": []
}
]
}
}
识别速度 nice,识别准确率100%
错误码参考



英文识别
故意写为格式错误的






import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.ocr.v20181119.OcrClient;
import com.tencentcloudapi.ocr.v20181119.models.*;
public class EnglishOCR
{
public static void main(String [] args) {
try{
// 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
// 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
// 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
Credential cred = new Credential("SecretId", "SecretKey");
// 实例化一个http选项,可选的,没有特殊需求可以跳过
HttpProfile httpProfile = new HttpProfile();
httpProfile.setEndpoint("ocr.tencentcloudapi.com");
// 实例化一个client选项,可选的,没有特殊需求可以跳过
ClientProfile clientProfile = new ClientProfile();
clientProfile.setHttpProfile(httpProfile);
// 实例化要请求产品的client对象,clientProfile是可选的
OcrClient client = new OcrClient(cred, "", clientProfile);
// 实例化一个请求对象,每个接口都会对应一个request对象
EnglishOCRRequest req = new EnglishOCRRequest();
req.setImageUrl("https://zkk-1300025204.cos.ap-nanjing.myqcloud.com/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20230724140325.jpg");
// 返回的resp是一个EnglishOCRResponse的实例,与请求对象对应
EnglishOCRResponse resp = client.EnglishOCR(req);
// 输出json格式的字符串回包
System.out.println(EnglishOCRResponse.toJsonString(resp));
} catch (TencentCloudSDKException e) {
System.out.println(e.toString());
}
}
}



{
"Response": {
"Angel": 357.989990234375,
"RequestId": "67473d8e-4a94-43c7-8653-34c8deecad2e",
"TextDetections": [
{
"AdvancedInfo": "{}",
"CandWord": [],
"Confidence": 94,
"DetectedText": "tencont nice",
"Polygon": [
{
"X": 15,
"Y": 970
},
{
"X": 2924,
"Y": 970
},
{
"X": 2924,
"Y": 1621
},
{
"X": 15,
"Y": 1621
}
],
"WordCoordPoint": [],
"Words": [
{
"Character": "tencont",
"Confidence": 89
},
{
"Character": "nice",
"Confidence": 99
}
]
}
]
}
}
经过测试印刷体确实能够提升识别效率,但是会出现丢字的情况

腾讯云文字识别带来的效果和收益

通过应用腾讯云文字识别,可以带来以下效果和收益:
提高工作效率:文字识别技术可以将繁琐的手工输入转为自动化处理,提高处理速度和准确度,节省人力成本和时间成本。
数据整合与分析:将纸质或图像化的数据转化为可编辑和可搜索的电子文本,方便后续的数据整合和分析工作。
智能化应用:结合其他人工智能技术,如自然语言处理、机器学习等,可以实现更高级别的智能化应用,如智能客服、自动化填表等。
错误减少和精度提升:相比手工处理,文字识别技术可以减少人为因素对识别结果的影响,提高处理的准确度和一致性。

结论

腾讯云文字识别作为一项先进的 OCR 解决方案,利用深度学习和人工智能技术,具备高准确率、多语言支持、灵活易用的优势。在具体项目中,腾讯云文字识别能够解决各种文字识别需求,并带来提高工作效率、数据整合与分析、智能化应用以及错误减少和精度提升的效果和收益。无论是开发者还是广泛的人工智能爱好者,腾讯云文字识别都是一项值得探索和应用的先进技术。随着技术的不断发展和创新,文字识别技术将在更多领域发挥重要作用,为数字化时代的工作和生活带来更快捷高效的体验