新闻详情

新闻详情

首页 / 资讯中心 / 详情

OnnxOCRSharp 支持多文件识别了

发布时间:2026/9/8 15:49:11来源:尧图网络
OnnxOCRSharp 支持多文件识别了
1、写在前面我答应一个小伙伴尽快把多文件识别做出来。这不周末就来兑现此承诺。对于真实的项目场景批量识别还真是一个十分方便的功能。一个一个识别简直是费时费力工作毫无效率可言。那我们今天就来完成这个功能顺便也优化一下其他小伙伴提到的小问题需求清单如下1、批量识别 API 支持批量文件识别2、桌面端新增文件夹导入功能也可以拖拽文件夹或者多个文件到队列3、桌面端新增进度与导出功能4、桌面端新增模型偏好本地记忆功能下次打开会自动选择上次使用的模型5、桌面端的预览自适应缩放功能根据窗口大小自动缩放预览图好了先就这么多。版本号定为OnnxOCRSharp v0.2.0。2、转换为功能列表交付物说明OnnxOcr.App新增批量识别 APIRecognizeManyAsyncOnnxOcr.Desktop多文件队列、拖拽、文件夹导入、进度与导出桌面体验模型偏好本地记忆、预览自适应缩放NuGet 包OnnxOCRSharpv0.2.0如果还没生成也别急我这边要等网络恢复才行这次不动Core 算法层多文件本质是外层循环调用同一个已加载好的引擎ORT Session 也适合串行复用。3、界面如何设计界面从原来的「左图右文」扩成三栏┌─ 工具栏模型 / 设备 / 添加文件 / 添加文件夹 / 开始识别 / 导出 … ─┐ ├──────────┬────────────────────┬───────────────────────┤ │ 文件队列 │ 图片预览 检测框 │ 当前文件识别结果 │ │ ○ a.jpg │ │ │ │ ● b.png │ │ │ │ ○ c.webp │ │ │ └──────────┴────────────────────┴───────────────────────┘日常用法添加文件可多选或添加文件夹扫顶层图片也可以直接把图片 / 文件夹拖进窗口点开始识别按队列串行跑失败的记状态然后继续执行点左侧某一行中间预览、右侧结果跟着变化复制当前/复制全部/导出 TXT再次点「开始识别」时优先重跑「等待 / 失败」项如果全成功了就整批重跑。多文件队列识别界面4、库侧怎么调用批量 API单图还是老样子用法usingvarservicenewOcrService(OcrModelPreset.PpOcrV6Tiny);varresultawaitservice.RecognizeAsync(a.jpg);多图新增varpathsnew[]{a.jpg,b.png,c.webp};varprogressnewProgressOcrBatchProgress(pConsole.WriteLine($[{p.CurrentIndex}/{p.Total}]{Path.GetFileName(p.CurrentPath)}));IReadOnlyListOcrBatchItemResultbatchawaitservice.RecognizeManyAsync(paths,progress);foreach(variteminbatch){if(!item.Success){Console.WriteLine($失败:{item.ImagePath}-{item.ErrorMessage});continue;}Console.WriteLine(${Path.GetFileName(item.ImagePath)});foreach(varlineinitem.Result!.Lines)Console.WriteLine(line.Text);}设计上我们倾向于简单使用串行一张接一张复用同一OcrService单张失败不中断结果里带Success/ErrorMessage可取消、可进度CancellationTokenIProgressOcrBatchProgress没有这个 API 也可自己foreach调RecognizeAsync。5、其他优化的体验点5.1 模型选择会记住以前每次打开都回到 Tiny。现在你切到 Small / Medium关掉再进还是上次那个。偏好落在本地%LocalAppData%\OnnxOCRSharp\settings.json就一个很小的 JSON本地偏好设置属于是。5.2 预览图自动适配窗口中间预览以前按原图来展示图要是很大就会非常不方便查看对比。现在打开 / 切换图片时会按预览区大小做contain 适配窗口尺寸变了也会重新适配。需要细看细节的话还是可以Ctrl 滚轮手动缩放的。6、分层设计回顾┌─────────────────────────────────────────┐ │ OnnxOcr.Desktop队列 / 预览 / 关于 │ ├─────────────────────────────────────────┤ │ OnnxOcr.AppOcrService 批量 API │ ├─────────────────────────────────────────┤ │ OnnxOcr.Core单图检测 识别流水线 │ └─────────────────────────────────────────┘Core 只处理一张图App 可处理一批图Desktop 把一批图处理的非常好。7、这个包为啥那么大这次我打包后发现不带模型就300MB上下。发现上次为了支持GPU推理加入了cuda包导致包体积增加。onnxruntime_providers_cuda.dll 就有285MB。好吧后续可能会做些优化。这次就先这样。8、开源地址# 源码https://github.com/lincyang/OnnxOCRSharp# NuGetdotnetaddpackage OnnxOCRSharp--version0.2.0# 桌面应用 Releasehttps://github.com/lincyang/OnnxOCRSharp/releases# 网盘获取公众号聊天输入OnnxOCRSharpv0.2.09、最后能看到这里的都是好朋友所以大家就多多支持下我的小程序「程序员Linc表格识别」。点击试用一下有反馈直接找我~~~欢迎关注公众号「程序员Linc」获取更多技术文章和项目更新参考OnnxOCRSharp GitHubhttps://github.com/lincyang/OnnxOCRSharp本系列前文《OnnxOCRSharp 支持 GPU 和竖排文字了 [PP-OCRv6]》本系列前文《PP-OCRv6 来了C# 离线 OCR OnnxOCRSharp再升级》本系列前文《表格识别从「一行行文字」到「一格一格的表」》
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Atmosphère 崩溃快速修复指南:3 步解决 RetroArch 0x4A8 数据中止报错 2026/9/8 16:28:18

Atmosphère 崩溃快速修复指南:3 步解决 RetroArch 0x4A8 数据中止报错

Atmosphre 崩溃快速修复指南:3 步解决 RetroArch 0x4A8 数据中止报错 【免费下载链接】Atmosphere Atmosphre is a work-in-progress customized firmware for the Nintendo Switch. 项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere 在 Atmosp…

阅读更多 →
aider 编辑器配置指南:定制 /editor 命令与阻塞模式编辑器的完整方案 2026/9/8 16:28:18

aider 编辑器配置指南:定制 /editor 命令与阻塞模式编辑器的完整方案

aider 编辑器配置指南:定制 /editor 命令与阻塞模式编辑器的完整方案 【免费下载链接】aider aider is AI pair programming in your terminal 项目地址: https://gitcode.com/GitHub_Trending/ai/aider 本文基于 aider 仓库的官方编辑器配置文档&#xff08…

阅读更多 →
Python 条件表达式:A if condition else B 2026/9/8 16:28:18

Python 条件表达式:A if condition else B

条件表达式是什么 若存在当依据一个条件要从两个值里挑选出一个的情况时, 能够将平常的if / else写成条件表达式: status "adult" if age > 18 else "minor"固定结构是: value_if_true if condition else value_if_false要先对中间的条件…

阅读更多 →
APM32F072移植moonglow固件,手搓Kvaser兼容USB-CAN分析仪 2026/9/8 16:28:18

APM32F072移植moonglow固件,手搓Kvaser兼容USB-CAN分析仪

前阵子在调一个CANopen从站,手边的USB-CAN分析仪是朋友借的原厂Kvaser,还没焐热就得还。想自己买一块,又觉得为了看几条报文花大几千不划算。翻仓库时找到一块APM32F072核心板,想起开源圈有个叫moonglow的固件,可以让S…

阅读更多 →
反反复复学?是因为你没找最伟大的Python学习方式,没有之一! 2026/9/8 16:28:18

反反复复学?是因为你没找最伟大的Python学习方式,没有之一!

各位好呀, 我是那在雨中缓缓漫步的伞里之人, 每日为大家送去最新的动态情况 , 所呈现的内容依照机缘而更新 , 每一篇都会掏出实在的、有价值的东西;要是你认为这些信息对生活有着实际的用处 , 那就点上一个关注吧~。 去学那最为折磨人的常态, 想必九成的…

阅读更多 →
运维学AI,90%的人第一步就错了:先学Python的,三个月都放弃了 2026/9/8 16:25:18

运维学AI,90%的人第一步就错了:先学Python的,三个月都放弃了

先说个事。 前天, 我撰写了一篇关于13岁女孩借助AI在三天内赚取1.8万的解读, 提到运维应当朝着自动化的方向, 向业务靠拢, 令我意想不到的是, 后台出现了一堆同行, 他们纷纷给我发送私信, 询问的内容几乎是同一个问题: "老逍,道理我都懂,可具体怎…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞