-
Tesseract.js 在识别图片中的文字时,可以获取每个文字(或单词)的精确位置信息,主要通过以下两种方式实现:1. HOCR 输出(HTML 格式)Tesseract.js 支持生成 HOCR(HTML-based OCR) 格式的输出,其中包含每个识别元素的边界框坐标。关键字段:每个单词的 HTML 标签会包含 bbox 属性,格式为 bbox x1 y1 x2 y2,表示单词在图片中的左上角坐标 (x1, y1) 和右下角坐标 (x2, y2)。示例:<span class="ocrx_word" id="word_1" title="bbox 100 200 300 250">Hello</span> 这表示单词 “Hello” 的边界框从坐标 (100, 200) 到 (300, 250)。2. 通过 ResultIterator 遍历结果在 JavaScript 中,可以使用 ResultIterator 逐字遍历识别结果,并获取每个单词的坐标和置信度。代码示例:import { createWorker } from 'tesseract.js'; (async () => { const worker = await createWorker('eng'); // 加载英文模型 await worker.loadLanguage('eng'); await worker.initialize('eng'); const result = await worker.recognize('image.png'); const iterator = result.getIterator(); iterator.forEachWord((word) => { const text = word.getText(); const confidence = word.getConfidence(); const bbox = word.getBoundingBox(); // 获取边界框 {x0, y0, x1, y1} console.log(`文字: ${text}, 置信度: ${confidence}, 位置: ${bbox}`); }); await worker.terminate(); })(); 3. 关键参数配置设置识别模式:使用 setPageSegMode(tesseract.PSM_SINGLE_WORD) 将每个单词作为独立块处理,提高坐标精度。启用 HOCR 输出:通过 setTessVariable("tessedit_create_hocr", "1") 生成 HOCR 格式结果。4. 应用场景票据识别:自动提取发票、收据中的文字及其位置。内容分析:定位社交媒体图片中的关键文字(如广告文案)。文档数字化:重建扫描文档的版式,保留文字位置信息。5. 注意事项坐标原点:Tesseract 的坐标原点默认在图片左上角,y 轴向下延伸。图像预处理:对低质量图片(如模糊、倾斜)进行灰度化、二值化等预处理,可提升坐标精度。如果需要进一步处理坐标数据(如可视化或映射到原始图像),可以结合 Canvas 或 OpenCV 等工具实现。
-
ICDAR(国际文档分析与识别会议)是文档分析与识别(Document Analysis and Recognition, DAR)领域最具影响力的学术会议,自1991年创办以来,已成为该领域研究和技术发展的风向标。会议每两年举办一次,期间举办的竞赛(ICDAR Competitions)聚焦于文本检测、识别、布局分析等核心任务,推动了技术的快速迭代。1. 早期阶段(1990s–2000s):奠定基础• 1991年:首届ICDAR在法国圣马洛举办,早期竞赛主要围绕OCR(光学字符识别)的准确性,数据集规模较小(如扫描文档中的字符识别)。• 1990年代:竞赛任务以手写文本识别和印刷体OCR为主,例如:• ICDAR 2003:首次引入**文本定位(Text Locating)**任务,标志着从纯识别向检测-识别联合任务的过渡。• 技术进展:传统方法(如投影分析、连通域分析)主导,但准确率较低(早期OCR的F1值约70%-80%)。2. 中期发展(2010s–2015):任务多样化与深度学习崛起2011年(ICDAR 2011):推出“Born Digital Images”竞赛,针对自然场景中的文本(如网页截图),推动技术向复杂场景扩展。2013年(ICDAR 2013):引入“Focused Scene Text”和“Incidental Scene Text”任务,区分定向文本和任意朝向文本,检测指标(如F1值)提升至80%+。2015年(ICDAR 2015):成为技术分水岭:• 任务创新:提出**“Challenge 4: Incidental Scene Text”**,使用大规模数据集(如1000张自然图像),要求检测和识别任意形状文本。• 成绩突破:深度学习(如CNN+RNN)开始主导,最佳团队的检测F1值达80%以上,识别准确率(Word Accuracy)约70%。3. 近期突破(2017–2023):复杂场景与端到端系统• 2017年(ICDAR 2017):• MLT(多语言文本)竞赛:支持9种语言,推动多语言OCR发展。• SROIE(票据理解)任务:针对结构化文档的信息提取(如发票关键字段识别),冠军团队F1值超90%。• 2019年(ICDAR 2019):• ArT(任意形状文本)竞赛:弯曲文本检测与识别成为焦点,最佳检测Hmean达85%。• 技术趋势:Transformer和注意力机制开始应用,端到端模型(如Mask TextSpotter)表现突出。• 2021–2023年:• 任务扩展:新增文档布局分析(Document Layout Analysis)和表格识别任务,反映工业需求。• 成绩新高:在弯曲文本检测(如Total-Text数据集)中,Hmean突破90%;端到端识别准确率(如ABCNet)达85%+。4. 关键成绩与技术演进时期代表性竞赛任务最佳成绩(示例)技术里程碑2000s印刷体OCR准确率~80%基于特征工程的传统方法2013–2015场景文本检测(Focused)F1: 80%+CNN+滑动窗口2017–2019任意形状文本(ArT)Hmean: 85%+实例分割(Mask R-CNN)2021–2023端到端识别端到端准确率: 85%+Transformer+多模态预训练5. 未来方向• 跨模态理解:结合文本、图像、表格的联合建模(如DocEnTR)。• 低资源语言:扩展小语种和手写文档的支持。• 鲁棒性:应对模糊、遮挡等极端场景的泛化能力。ICDAR竞赛通过不断升级任务难度和数据集多样性,推动了从传统OCR到智能文档理解的跨越,成绩的提升也反映了深度学习对领域的革命性影响。
-
原文章:https://www.compdf.com/blog/best-intelligent-document-processing-software1. ComIDPComIDP 是由ComPDFKit开发的智能文档处理解决方案,旨在帮助企业实现数据自动化并提高文档处理效率。这款全面的工具涵盖了整个文档生命周期,包括预处理、识别、分类、数据提取和数据分析,为企业提供可靠的决策支持。它为企业提供标准模型和可定制的 AI 解决方案,以满足其在实现数字化转型方面的特定需求。好处ComIDP拥有专利的版式分析和表格识别功能,适用于各种复杂应用场景,提高文档处理效率。支持导入各种非结构化、半结构化文档并进行结构化处理。基于AI的OCR功能支持70+种语言文档识别,准确率高达95%。如何部署ComIDP解决方案?ComIDP 提供三种部署选项:私有部署、公有云部署和本地部署。无论您的企业需要严格的数据安全性和定制、适合中小型企业的经济高效的解决方案,还是需要无缝集成到大型企业的现有系统和应用程序中,ComIDP都能满足您的需求。通过利用 ComIDP,企业可以显著提高文档协作效率和整体生产力。应用ComIDP为大型模型训练提供高精度数据,从而提升AI性能,同时集成企业业务系统,减少冗余任务,支持工作流自动化。ComIDP可应用于各行各业,例如在金融领域,智能文档处理可以满足企业财务管理需求,在银行领域,ComIDP可以加速信贷审核流程,提高业务处理速度和用户满意度。2. AWSAWS(亚马逊网络服务)智能文档处理 解决方案是一套强大的工具和服务,旨在帮助企业和组织自动化和优化其文档处理流程。整个智能文档处理流程包括几个阶段,首先使用Amazon Textract进行文本和表单识别和提取,然后使用Amazon Comprehend进行智能分析和自动校对,最后将处理后的数据存储在Amazon S3中以供企业集成。3. Automation AnywhereAutomation Anywhere IDP 支持本地和云部署,提供 32 种语言模型,满足企业的文档自动化需求。它可以自动处理 80% 的文档数据,减少人为错误并在数据进入关键业务系统之前进行验证。此外,它还可以帮助企业主动避免与不合规相关的成本。4. Microsoft AzureMicrosoft Azur e Form Recognizer 是一款人工智能文档处理解决方案,可以自动从文档中提取和解析关键信息,实现智能数据处理和管理。从各种类型的文档、表格、收据、发票和卡片中准确提取文本、键值对和表格。具有预构建和自定义 AI 模型,可以从结构化、半结构化和非结构化文档中精确提取字段、复选标记和表格。5. ABBYYABBYY Vantage智能文档处理软件可帮助企业自动处理各种类型的文档,包括结构化、半结构化和非结构化文档。通过利用 ABBYY Vantage 预先训练的 AI 提取模型/技能,企业可以高效处理这些文档类型,同时确保高达 90% 的准确率。该软件可以与其他智能自动化系统无缝集成,例如 Microsoft Power Automate、Blue Prism、UiPath 和 Automation Anywhere。Vantage 还可以监控、衡量和分析所有部署技能的性能,以创建新的学习模型,实现持续改进和优化。6. AppainAppian的智能文档处理技术结合AI,帮助企业优化工作流程、统一数据、提高工作效率。通过将智能文档处理与企业系统集成,不仅可以节省时间,还可以将纸质流程数字化,缩短交易时间。该技术支持AI与RPA、业务规则等结合,实现端到端的全流程自动化,并通过自动化的任务调度和内容处理大幅提高工作吞吐量。......更多内容请查看原文章:https://www.compdf.com/blog/best-intelligent-document-processing-software
-
今天我们就来学习一下,如何用1行代码,自动识别银行卡信息并且自动生成Excel文件~ 第一步:识别一张银行卡识别银行卡的代码最简单,只需要1行腾讯云AI的第三方库potencent的代码,如下所示。左右滑动,查看全部。👇# pip install potencent import potencent # 可以填写本地图片的地址:img_path,也可以填写在线图片的地址:img_url # 如果2个都填,则只用在线图片 res = potencent.ocr.BankCardOCR( img_path=r'C:\Users\程序员晚枫的文件夹\银行卡图片', img_url='https://python-office-1300615378.cos.ap-chongqing.myqcloud.com/2-free-group.jpg', configPath=r'配置文件的信息,可以不填,默认是同级目录下的potencent-config.toml') print(res)识别后的返回结果,几乎涵盖所有银行卡上肉眼可见的内容。👇{ "CardNo": "621700888888888889", "BankInfo": "建设银行(01050000)", "ValidDate": "08/2026", "CardType": "借记卡", "CardName": "龙卡通", "RequestId": "86b70007-3ef5-4b7e-8685-556b0a7df1c9" }支持对中国大陆主流银行卡正反面关键字段的检测与识别,包括卡号、卡类型、卡名字、银行信息、有效期。支持竖排异形卡识别、多角度旋转图片识别。支持对复印件、翻拍件、边框遮挡的银行卡进行告警,可应用于各种银行卡信息有效性校验场景,如金融行业身份认证、第三方支付绑卡等场景。 以上代码中,关于potencent-config.toml的配置方法,可以参考昨天视频的讲解👇第二步:写入Excel想把上面这个代码用来识别大量银行卡信息,并且将识别后的返回数据,全部写入Excel文件。代码如下👇import os from os.path import join import pandas as pd # home_path = "你存放大量银行卡图片的位置" home_path = r"C:\Users\Lenovo\Desktop\temp\test\card" res_df = pd.DataFrame() for (root, dirs, files) in os.walk(home_path): for file in files: single_res = potencent.ocr.BankCardOCR(img_path=join(root, file)) single_res = json.loads(single_res.to_json_string()) line_df = pd.DataFrame(single_res, index=[0]) print(line_df) res_df = res_df.append(other=line_df) print(res_df) res_df.to_excel(r"./银行卡信息(程序员晚枫).xlsx")运行后的结果如下,会在同级目录下,生成一个Excel文件 第三步:优化思路以上代码还可以进一步优化,例如:路径处理改为Path方法,适配更多的平台变量名称更简洁index改为序号但优化的前提是程序能运行成功,赶紧去跑起来吧~转载自:cid:link_0
-
在学习rpa高级课程时,尝试使用增值税发票识别时,使用学习材料中的user id和user key时提示参数错误,请问怎么解决User ID:com.huawei.gts.rparobotUser Key/Token:hC4Q2yZ8p11h186KcC8b6un6ZS2 tcAtegOn89HCJy6CurddgTkCzmm 7hXCH3mJJt
-
// Java 8 and earlier import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; public class Main { public static void main(String[] args) throws IOException { URL url = new URL("https://www.example.com"); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); int status = con.getResponseCode(); System.out.println(status); } } // 优点:简单易用。缺点:功能有限,不够灵活。 // Java 8 import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; public class Main { public static void main(String[] args) throws IOException, InterruptedException { HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://www.example.com")) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode()); } } // 优点:比Java 8和之前的版本具有更多的功能和灵活性。缺点:仍然缺少一些高级功能。 // Java 9 import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; public class Main { public static void main(String[] args) throws IOException, InterruptedException { HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://www.example.com")) .GET() .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode()); } } // 优点:添加了Java 8中缺少的一些功能。缺点:仍然不如Java 11功能丰富。 // Java 11 import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; public class Main { public static void main(String[] args) throws IOException, InterruptedException { HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://www.example.com")) .GET() .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode()); } } // 优点:HttpClient最丰富和灵活的版本。缺点:需要Java 11或更高版本。
-
这种验证码用哪种方法识别率高一些呀,我目前直接用ext_aiverifyinput_1.0.1这种验证码识别还有ocr验证码识别 识别出来效果都很差
-
weAutomate studio 右上叫报设计器出错请稍后重试
-
我用设计器运行时是正常的,但是用机器人助手运行时却报解密失败 机器人助手日志如下:[2023-02-17 14:42:38] 启动机器人 3.1.1[2023-02-17 14:42:38] 开始执行[脚本] [残疾证办理][2023-02-17 14:42:40] 开始执行[子脚本] [playbackScript.xml 第4行] 调用子脚本(共享上下文) (login.xml) [调用子脚本(共享上下文)][2023-02-17 14:42:43] 完成执行[原子命令] [login.xml 第4行] 打开网页 [打开网页] [OK][2023-02-17 14:42:44] 完成执行[原子命令] [login.xml 第12行] 在网页中输入文本 [在网页中输入文本] [OK][2023-02-17 14:42:44] 完成执行[原子命令] [login.xml 第24行] 在网页中输入文本 [在网页中输入文本] [OK][2023-02-17 14:42:45] 完成执行[原子命令] [login.xml 第36行] 截取元素图片 [截取元素图片] [OK][2023-02-17 14:42:45] 完成执行[原子命令] [login.xml 第48行] 验证码识别 [验证码识别] [NOK] [RobotDecryptError] [系统执行错误: 解密失败][2023-02-17 14:42:45] [调试日志] @{getVerificationCodeInfoOcr_ret}[2023-02-17 14:42:45] 完成执行[子脚本] [playbackScript.xml 第4行] 调用子脚本(共享上下文) (login.xml) [调用子脚本(共享上下文)] [NOK] [RobotDecryptError] [系统执行错误: 解密失败][2023-02-17 14:42:45] 完成执行[脚本] [残疾证办理] [NOK] [RobotDecryptError] [系统执行错误: 解密失败][2023-02-17 14:42:45] 成功向管理中心发送数据[2023-02-17 14:42:45] 结束机器人
yd_260249960
发表于2023-02-17 14:51:32
2023-02-17 14:51:32
最后回复
This is WeAutomate
2023-02-19 18:13:33
137 6 -
我看api调用的形式可以多传一个模板id的参数,但是sdk里面的源码里面的种类根本没有说自定义模板形式的类,没有地方传这个模板id参数呀
-
华为云OCR服务支持视频中字幕进行识别么?
-
请问,华为的OCR,支持用户自定义模板吗?
-
一、相关模块人工智能 -> EI-OCR -> 华为云EI-OCR服务插件(试用)-> 前置控件-华为云版UI自动化 -> 基于OCR的自动化 -> 基于在线OCR自动化 -> 在线OCR智能表单UI自动化 -> 基于OCR的自动化 -> 基于在线OCR自动化 -> 获取OCR文本二、问题列表获取Token时账密报错详情error(“code”: 401, “message”: “The username or password is wrong”, “title”:”Unauthorized”)解决方案参考视频:cid:link_1 见获取Token时账密报错 2. 连接错误详情ConnectionError(MaxRetryError(\"HTTPSConnectionPool(host='iam.cn-north-4.myhuaweicloud.com', port=443): Max retries exceeded with url: /v3/auth/tokens (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000021359A315E0>: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。'))解决方案前置控件-华为云版:在参数http代理和https代理中填入你本地引用的网络代理配置;如:http://{user}:{password}@proxy.huawei.com:8080,此处{user},{password}为你的代理账号密码。其他控件在全局变量中添加代理参数:ProxyParameter ,类型为:Object,示例值为:{ "proxy_user": "{user}", "proxy_pwd": "{password}", "proxy_host": "proxy.huawei.com", "proxy_port": 8080 }
-
算法能力描述调用方式接口详细说明通用表格识别提取表格内的文字和所在行列位置信息,适应不同格式的表格。同时也识别表格外部的文字区域。用于各种单据和报表的电子化,恢复结构化信息。POST详细通用文字识别提取图片内的文字及其对应位置信息,并能够根据文字在图片中的位置进行结构化整理工作。POST详细手写文字识别识别文档中的手写文字信息,并将识别的结构化结果返回给用户。POST详细网络图片识别自动识别网络图片内的所有文字及其对应位置信息,并能根据识别出来的结果进行联系人信息的提取,同时可供进一步的数据挖掘后处理操作。POST详细智能分类识别自动检测定位图片上指定要识别的票证,一次扫描即可识别票证的位置坐标、结构化识别的内容以及对应的类别。POST详细
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签