初窥强大,AI识别技术实现图像转文字(OCR技术)

ops/2025/2/12 8:32:10/

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️
🐴作者:秋无之地

🐴简介:CSDN爬虫、后端、大数据、人工智能领域创作者。目前从事python全栈、爬虫和人工智能等相关工作,主要擅长领域有:python全栈、爬虫、大数据开发、人工智能等。

🐴欢迎小伙伴们点赞👍🏻、收藏⭐️、留言💬、关注🤝,关注必回关

前言:

上一篇讲到采用AI技术Docling实现高效地解析和转换多种文档格式。无论是PDF、Word文档,还是PPT、Excel表格,Docling都能够高效地解析和转换多种文档格式,将文档内容以HTML、Markdown和JSON等格式呈现,并支持OCR识别和表格结构的解析。

今天就来“初窥强大”,AI识别技术实现图像转文字(OCR技术)。

一、OCR技术的介绍

1、OCR技术是个啥

OCR(Optical Character Recognition,光学字符识别)技术是一种将图像中的文字转换为计算机可编辑文本格式的技术。

OCR 技术凭借其高效、准确的文字识别能力,在众多行业和领域都有广泛应用,以下是一些主要的方面。

金融行业

  • 票据处理:银行等金融机构每天会处理大量的票据,如支票、汇票、存单等。OCR 技术可快速准确地识别票据上的文字信息,包括金额、账号、日期等,实现票据处理的自动化,提高处理效率,降低人工录入的错误率。
  • 信用卡审批:在信用卡申请审批过程中,OCR 技术可以识别申请人提交的身份证、工作证明等文件上的文字信息,快速提取关键数据,辅助银行进行风险评估和审批决策。

医疗行业

  • 病历管理:医院的病历资料通常包含大量的文字信息,使用 OCR 技术可以将纸质病历快速转换为电子文本,方便医生查阅、检索和分析患者的病史、诊断结果等信息,提高医疗服务的效率和质量。
  • 医疗报告解读:对于一些医学检验报告、影像诊断报告等,OCR 技术能够识别其中的文字内容,结合自然语言处理技术,帮助医生更快速地理解报告信息,做出准确的诊断。

教育行业

  • 试卷批改:在考试阅卷过程中,OCR 技术可以识别学生答题卡上的答案信息,实现客观题的自动批改,提高阅卷效率。同时,对于一些手写的主观题,也可以通过 OCR 技术进行文字识别,辅助教师进行批改。
  • 数字化教学资源建设:将纸质教材、教案、文献资料等转化为电子文本,便于制作数字化教学资源,如电子课件、在线课程等,方便学生学习和教师教学。

物流行业

  • 快递面单识别:快递包裹上的面单包含了收件人、寄件人、地址等重要信息,OCR 技术可以快速准确地识别这些信息,实现包裹信息的自动化录入和跟踪,提高物流配送的效率和准确性。
  • 物流单据处理:在物流运输过程中,涉及到各种单据,如托运单、提货单等。OCR 技术可以对这些单据上的文字信息进行识别和提取,实现物流信息的数字化管理,方便物流企业进行业务调度和跟踪。
2、技术原理
  • 图像预处理:对输入的图像进行处理,包括灰度化、降噪、二值化、倾斜校正等操作,以提高图像的质量,便于后续的字符分割和识别。例如,通过灰度化将彩色图像转换为黑白图像,减少数据量;利用降噪算法去除图像中的噪声点,使文字更加清晰。
  • 字符分割:尝试将文本中的字符分割开,对于手写文字或不规则排列的文字,这一步尤为重要。方法包括基于字符间距、笔画连接等特征进行分割。比如在识别手写体时,根据笔画的走势和间隔,将每个字符准确地分离出来。
  • 特征提取:提取字符的特征,如笔画特征、轮廓特征、结构特征等。这些特征是识别字符的关键依据,不同的字体、字号可能具有不同的特征组合。以汉字为例,可能会提取笔画的端点、交叉点、弯曲度等特征。
  • 分类识别:将提取的特征与预定义字库对比,以找出最匹配的字符。常用的分类方法包括模板匹配、神经网络、支持向量机等。例如模板匹配就是将待识别字符与字库中的模板进行逐一比对,计算相似度,选择相似度最高的模板对应的字符作为识别结果。
  • 后处理:对识别结果进行校正、修补和质量评估等处理。如通过语言模型、上下文信息来纠正可能出现的识别错误,提高识别的准确性和可靠性。比如在一段英文文本中,根据语法和词汇搭配,对识别出的单词进行校正。

3、技术应用
  • 文档处理:能快速将纸质文档中的文字转换为电子文本,便于编辑、存储和检索,提高办公效率。如将大量的纸质合同、文件转换为电子文档,方便进行文字搜索和内容修改。
  • 数字图书馆:把扫描的图书、文献等转化为可搜索的文本,既方便读者查阅,也有利于图书资源的长期保存和传播。
  • 车牌识别:在智能交通系统中,用于识别车辆号牌,实现自动收费、违章监控等功能。通过对车牌图像的处理和字符识别,快速准确地获取车牌号码信息。
  • 身份证识别:在公安、银行等领域,快速识别身份证上的文字信息,用于身份验证和信息录入,提高业务办理的效率和准确性。
  • 图像识别:在处理包含文字的图像时,能够提取其中的文字信息,为图像分析和理解提供支持。比如在分析广告图片、宣传海报等时,提取其中的文字内容进行语义分析。

二、OCR技术的接入

1、选择第三方OCR服务

看到这里,或许有人疑惑,为啥要接入第三方的服务,自己安装训练不可以吗?

可以,但效率太低,而且第三方的服务已经很成熟,而且有些是免费试用的或有一定试用额度的。

常用的第三方OCR服务有如下几种:

  • 阿里云的OCR服务
  • 百度的OCR服务

  • 华为云的OCR服务

基于识别准确度、使用成本和接入复杂度,优先选择阿里云的OCR服务

2、开通服务

在阿里云控制台——>搜索“文字识别”——>服务管理与开通,点击开通,结果如下:

  • 统一识别有每月200次的额度
  • 通用票证识别免费试用

3、根据开发文档安装SDK

打开“通用票证识别”的文档:RecognizeGeneralStructure - 通用票证抽取_文字识别(OCR)-阿里云帮助中心

点击“调试页面”,可以看到SDK的python示例:

安装SDK命令:

pip install alibabacloud_ocr_api20210707==3.1.2
4、连接服务
@staticmethod
def create_client() -> ocr_api20210707Client:"""使用AK&SK初始化账号Client@return: Client@throws Exception"""# 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。# 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378659.html。config = open_api_models.Config(# 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。,access_key_id='xxx',# 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。,access_key_secret='xxx')# Endpoint 请参考 https://api.aliyun.com/product/ocr-apiconfig.endpoint = f'ocr-api.cn-hangzhou.aliyuncs.com'return ocr_api20210707Client(config)
5、调用函数
@staticmethod
def main(img_link=''):client = aliyunOcrImgPiao.create_client()recognize_general_structure_request = ocr_api_20210707_models.RecognizeGeneralStructureRequest(url=img_link,keys=['统一社会信用代码','名称类型','公司类型','注册资本','住所','成立日期','法定代表人'])runtime = util_models.RuntimeOptions()img_info = {}try:# 复制代码运行请自行打印 API 的返回值resp = client.recognize_general_structure_with_options(recognize_general_structure_request, runtime)# print(resp.body.data)for i in resp.body.data.sub_images:img_info = i.kv_info.databreakexcept Exception as error:# 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。# 错误 messageprint(error)# 诊断地址print(error)UtilClient.assert_as_string(error)#更改keynew_info = {'creditCode':img_info['统一社会信用代码'],'legalPerson':img_info['法定代表人'],'companyName': img_info['名称类型'],'companyType':img_info['公司类型'],'businessAddress':img_info['住所'],'RegistrationDate':img_info['成立日期'],'registeredCapital':img_info['注册资本'],}print("输出结果:",new_info)return new_info

三、完整代码

# -*- coding: utf-8 -*-
import os
import sysfrom typing import Listfrom alibabacloud_ocr_api20210707.client import Client as ocr_api20210707Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_ocr_api20210707 import models as ocr_api_20210707_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClientclass aliyunOcrImgPiao:'''阿里云票证OCR识别(不限额度)'''def __init__(self):pass@staticmethoddef create_client() -> ocr_api20210707Client:"""使用AK&SK初始化账号Client@return: Client@throws Exception"""# 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。# 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378659.html。config = open_api_models.Config(# 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。,access_key_id='xxx',# 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。,access_key_secret='xxx')# Endpoint 请参考 https://api.aliyun.com/product/ocr-apiconfig.endpoint = f'ocr-api.cn-hangzhou.aliyuncs.com'return ocr_api20210707Client(config)@staticmethoddef main(img_link=''):client = aliyunOcrImgPiao.create_client()recognize_general_structure_request = ocr_api_20210707_models.RecognizeGeneralStructureRequest(url=img_link,keys=['统一社会信用代码','名称类型','公司类型','注册资本','住所','成立日期','法定代表人'])runtime = util_models.RuntimeOptions()img_info = {}try:# 复制代码运行请自行打印 API 的返回值resp = client.recognize_general_structure_with_options(recognize_general_structure_request, runtime)# print(resp.body.data)for i in resp.body.data.sub_images:img_info = i.kv_info.databreakexcept Exception as error:# 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。# 错误 messageprint(error)# 诊断地址print(error)UtilClient.assert_as_string(error)#更改keynew_info = {'creditCode':img_info['统一社会信用代码'],'legalPerson':img_info['法定代表人'],'companyName': img_info['名称类型'],'companyType':img_info['公司类型'],'businessAddress':img_info['住所'],'RegistrationDate':img_info['成立日期'],'registeredCapital':img_info['注册资本'],}print("输出结果:",new_info)return new_infoif __name__ == '__main__':obj_ = aliyunOcrImgPiao()obj_.main(img_link='https://xxx.com/123.png')

版权声明

本文章版权归作者所有,未经作者允许禁止任何转载、采集,作者保留一切追究的权利。


http://www.ppmy.cn/ops/157320.html

相关文章

LVSNAT服务搭建

LVSNAT实验环境搭建 在虚拟机上,我的NAT模式ip划分为:172.25.254.0 仅主机模式IP为:192.168.0.0 拓补图如下 配置服务:LVS服务端添加两个网卡,分别为NAT模式和仅主机模式 LVS服务端配置: systemctl st…

pytest-xdist 进行多进程并发测试

在自动化测试中,运行时间过长往往是令人头疼的问题。你是否遇到过执行 Pytest 测试用例时,整个测试流程缓慢得让人抓狂?别担心,pytest-xdist 正是解决这一问题的利器!它支持多进程并发执行,能够显著加快测试…

Open-Interface:基于大语言模型 LLM 的自动化界面操作系统

开放式界面助手 核心原理 这是一个基于大语言模型(LLM)的自动化界面操作系统。它通过截取屏幕画面,将用户需求转化为具体的鼠标键盘操作指令,并能实时监控执行效果进行修正。整个系统采用模块化设计,实现了从用户输入到界面操作的完整闭环。 …

【安当产品应用案例100集】037-强化OpenVPN安全防线的卓越之选——安当ASP身份认证系统

在当前数字化时代,网络安全已成为企业发展的重要组成部分。对于使用OpenVPN的企业而言,确保远程访问的安全性尤为重要。安当ASP身份认证系统凭借其强大的功能和便捷的集成方式,为OpenVPN的二次登录认证提供了理想的解决方案,特别是…

profinet转ModbusTCP网关,助机器人“掀起”工业智能的惊涛骇浪

在现代汽车制造过程中,生产设备的精确控制与实时监测是确保产品质量和生产效率的关键。某汽车制造厂在其生产线上应用了可编程逻辑控制器(PLC)和压力传感器,这两种设备分别使用稳联技术Profinet和ModbusTCP协议( WL-A…

嵌入式AI革命:DeepSeek开源如何终结GPU霸权,开启单片机智能新时代?

2025年,全球AI领域最震撼的突破并非来自算力堆叠的超级模型,而是中国团队DeepSeek通过开源策略,推动大模型向微型化、低功耗场景的跨越。相对于当人们还在讨论千亿参数模型的训练成本被压缩到600万美金而言,被称作“核弹级别”的操…

日志2025.2.9

日志2025.2.9 1.增加了敌人挥砍类型 2.增加了敌人的死亡状态 在敌人身上添加Ragdoll,死后激活布偶模式 public class EnemyRagdoll : MonoBehaviour { private Rigidbody[] rigidbodies; private Collider[] colliders; private void Awake() { rigidbodi…

机器学习数学基础:15.分块矩阵

分块矩阵的概念 把矩阵 A A A用若干条纵线和横线分成许多小矩阵,每个小矩阵称为 A A A的子块,形式上以子块为元素的矩阵称为分块矩阵。例如: A ( a 1 0 0 0 a 0 0 1 0 b 1 0 1 1 b ) A\ \begin{pmatrix}a&1&0&0\\0&a&…