- 在「设置 → AI 模型 → 文字识别」选择、下载并启用模型;PC 质量优先推荐 PP-OCRv5 Server。模型按需下载,不随安装包发布;下载沿用应用代理并校验固定版本的 SHA-256。
- 选择全局模型并保存、启用。OCR 未手动指定设备时默认「自动(优先 GPU)」:依次尝试可用 CUDA、DirectML、CoreML,最后 CPU;实际可用设备取决于构建、平台与驱动。模型设备和检测器/识别器设备可分别配置,阶段设置优先于模型设置。之前明确保存的 CPU/GPU 选择不会被覆盖;重置参数后恢复自动策略。
- 打开与「人物」「地点」同级的「图片文字」入口,按「全部照片/有文字/未识别/无文字/识别失败」浏览;搜索框只匹配已识别的图片文字。照片网格复用原有排序、分组、多选和查看器,不是独立的媒体副本。
- 点击「继续识别」跳过有效结果并继续未完成项;「仅重试失败」只处理当前配置下的失败照片。「更多任务与设备详情」中可以查看实际设备、回退原因或确认后重新识别全部。无文字是成功结果,不算失败。
- 照片单张/多选右键支持识别和重新识别文字;文件夹及相册根目录右键支持识别其内部及子文件夹。任务明确显示当前图库、选中照片或文件夹范围;退出图片文字页后,左侧入口通过状态点提示进度,悬停或键盘聚焦可查看详情,点击返回功能页停止或重试任务。详见识别状态提示。
- 已完成照片逐张保存,列表按节流后的进度增量更新,不等整批结束。停止保留结果,重启后可继续;正在执行的 ONNX 调用不能强行打断。快速预览期间不重置列表;胶片预览中的当前照片若已离开所选状态筛选,则显示「列表待同步」,切换照片或退出预览后同步,避免后台任务导致跳图。模型管理仍在设置页,不会因进入图片文字页而自动下载或扫描。
- 照片信息面板支持单张识别、全文复制、逐行置信度和点击文字行定位。查看器支持文字框开关、命中高亮及区域定位,框线随缩放保持可辨识的屏幕粗细。旧索引缺少图像尺寸或 RAW 配对预览比例不匹配时,不猜测坐标;显示提示并保留文字结果,可重新识别补齐尺寸。
- 顶部普通搜索仍可同时匹配文件名、备注和图片文字;可见照片展示图片文字命中片段,详情和查看器高亮对应文字。切换照片、图库、模型或隐藏/删除照片时,失效的异步响应不会恢复旧文字。识别结果不写回原文件。
模型和执行参数是全局配置;文字结果、任务范围和页面筛选属于当前图库。状态统计和搜索只使用当前模型配置下、源文件未变化的有效结果;换模型或文件变化后归入未识别,切回原配置可复用仍有效的缓存。模型文件未安装时仍可浏览已有结果,识别按钮会引导先完成模型配置。
Mobile/Server 是模型规格,不是运行设备限制;两者均可在 PC 本机运行并使用 GPU。Server 也不是在线 API,不需要搭建服务器或上传照片。
| 模型 | 下载大小 | 定位 |
|---|---|---|
| RapidOCR · PP-OCRv5 Server | 约 164.7 MiB | 未配置过 OCR 时的默认、质量优先推荐 |
| RapidOCR · PP-OCRv4 Server | 约 194.4 MiB | 较大模型的另一选择,中英文 |
| 原有 PP-OCRv5 中英日模型 · Server | 约 165 MiB | 原先就已是 Server,保留原权重/下载指纹 |
| RapidOCR · PP-OCRv5 Mobile | 约 20.5 MiB | 小体积、低资源备选 |
| RapidOCR · PP-OCRv4 Mobile | 约 14.9 MiB | 小体积、低资源备选 |
- Server 倾向于更高模型容量,通常需要更多内存/显存和推理时间;不保证每张图片都比 Mobile 更准确,应按实际照片评估。
- 只改变新配置的默认值,不覆盖已经保存的模型选择。当前使用 Mobile 的用户需要手动下载、启用 Server,并为该模型继续建立索引。
- 推荐项与当前启用项分开显示;原有 PP-OCRv5 仅补充界面上的 Server 标识,不因此要求重新下载或丢弃已有索引。
- 自动设备策略只在 GPU/CPU 间回退,不会为了节省资源静默改用 Mobile 模型。
- OCR 索引面板显示当前启用模型最近加载会话的实际设备与回退原因;尚未加载时不猜测实际设备。「测试模型」还会显示真实算子分配,注册 GPU 不等于所有算子都在 GPU 上运行。
- 自动 GPU 会话初始化失败可继续尝试其他设备;自动 GPU 阶段在实际推理中报错时,可记录原因后重新创建 CPU 会话并重试一次。明确选择的 GPU 阶段保留原选择并报告错误,不静默改成 CPU;取消、字典不匹配等错误不触发设备回退。测试模型和后台索引共用这一策略。
- 执行策略不改变模型文件指纹或文字索引版本;已有 PP-OCRv5 权重无需因为默认策略改为自动而重新下载。
- RapidOCR 是推理工具链,不是单一模型。这里接入 RapidAI 官方发布的 PP-OCRv4/v5 Server、Mobile ONNX 模型,由 Lap 的 Rust DB/CTC 适配器运行,不依赖 Python,也不代表集成完整 RapidOCR Python 流水线;目前不含其文字角度分类器。
- OCR 文字作为派生数据保存在本地图库数据库中;应用锁不等于文件或数据库加密。
- 当前仅接入本地 OCR;没有在线 OCR 调用,不会上传照片。已隐藏、最近删除、被排除的文件夹和组合媒体从属项不参与普通索引/搜索。
- 动画当前只处理静态解码得到的首帧,不识别视频字幕;RAW/HEIC 等沿用应用的预览解码路径,细节受源预览影响。
- 默认模型识别中英日文,适配器面向正向、横排文字。旋转/弯曲文字、手写、艺术字和复杂版式未承诺支持;这不是文档版面分析或通用视觉问答。
- 索引按检测模型、识别模型、字典、适配器版本和影响结果的参数隔离,同时核对照片修改时间和大小。换模型后不会把旧模型的结果当成新结果;切回相同配置可以复用未失效的结果。切换 CPU/GPU 本身不要求重建文字索引。
- 单图最多解码 8000 万像素;文字区域数、输入尺寸和置信度可配置。超过限制会报告错误,不静默标成完整索引。失败不阻止其余照片继续处理。
- 第三方本地模型可通过 JSON 清单导入,但必须符合 DB 检测概率图 + 48 像素高 CTC 识别契约。
paddle_ocr_onnx需要ocr_detector、recognizer、charset三个文件;rapid_ocr_onnx只需前两个文件,但识别模型必须内置 ONNXcharacter元数据字典。不能替换任意 ONNX 文件,也不宣称支持所有 RapidOCR 模型版本。
- 上游算法:PaddleOCR,Apache-2.0。
- ONNX 转换:monkt/paddleocr-onnx,固定提交
7b02d0a30a07ba2b92ad1ff5a8941ae2c633de65。 - RapidAI 模型:RapidOCR,依据其提交
7cfd3d9ef786a2e538ca30df700325e72e85b5f5的default_models.yaml,下载官方 ModelScopev3.10.0发布,核对官方 SHA-256。v4 字典为 6623 个字符,v5 为 18383 个字符;CTC 另加空白与空格类别。 - 文件、大小、校验和与下载地址记录在
src-tauri/src/ai/catalog.json。测试模型和自建中英文图片仅放在忽略的src-tauri/target/ocr-validation/,不提交、不捆绑。
- 下载会在对应模型条目旁显示连接、接收文件、校验和安装阶段,包含进度、接收字节及文件角色;成功、失败和取消结果不会因进度条结束而立即消失。失败还会弹出通知,不需要滚回设置页顶部查找。
- 模型下载请求使用 Lap/版本号标识,并在 CDN 重定向后保留;部分下载源会拒绝没有 User-Agent 的 GET 请求。HEAD 请求或其他脚本成功,并不代表软件使用的实际下载链路一定可用。
- 失败提示包含模型、文件角色、来源主机及脱敏的 HTTP/DNS/代理/TLS 原因;请依据条目中的完整错误排查。校验或下载未完成的文件不会标记为已安装。
- 修改 Rust 下载逻辑后需运行重新编译的后端;开发模式下只刷新前端页面不会更新 HTTP 请求行为。
查看照片时点击「框选文字」,拖动选区即可提取;支持复制全部或勾选多行复制,信息面板也可以逐行复制。无需先完成整图索引。此操作只返回临时结果,不把局部识别当作整图完成,也不替换搜索索引。选择坐标跟随查看器缩放和旋转;预览与源图比例不同会明确拒绝,避免提取错误区域。关闭、切图、切换模型、隐藏或删除照片后旧响应失效;关闭进行中的提取会请求取消,正在执行的单次推理不能强制打断。
模型参数可分别配置文字方向(原始/90°/180°/270°/自动尝试)及 -15°~15° 的手动倾斜校正;区域提取也可以临时指定方向,不改变全局模型配置。默认不旋转、不额外跑多遍。自动模式先识别原方向,结果置信度足够时直接返回,否则比较其他直角方向,耗时可能增加。这是同一模型内的启发式重试,不是新增方向分类模型,也不保证自动判断一定正确。校正只处理内存中的输入,原文件不变,文字区域映射回原图坐标;模型参数变化会隔离对应文字索引。暂不包含自动倾斜估计或文档透视矫正。
照片信息面板的「修订文字」可以编辑、忽略识别行或恢复原文。人工内容以原始识别文档快照单独保存,搜索、分类数量和文字框优先使用有效的人工结果;忽略行不参与搜索。重新识别和更换模型只更新模型结果,不覆盖人工修订,也不把旧行号套到新模型结果上。可展开查看当前模型输出,或确认后移除人工修订并恢复当前模型结果。源照片版本变化后旧修订失效;隐藏/最近删除仍遵守可见性规则。编辑器校验来源指纹和修订版本,其他窗口或后台改变结果时拒绝覆盖,保留草稿供用户处理。
在图片文字任务面板展开「自动识别」后明确启用;默认关闭,策略全局保存,不是按图库启用模型。可以设置空闲秒数和每批数量,范围默认是当前打开图库的可见照片,也可限定到当前选择的目录及子目录(绑定图库 ID,不跨库误用目录 ID)。所有应用窗口仅上报活动信号,不记录或传送按键内容。后台独立校验启用、暂停、策略版本、空闲时间与其他媒体任务;只处理尚无有效结果的照片,失败项留给人工重试,不自动下载模型。操作窗口时在当前推理可取消点让出资源,手动停止会持久暂停自动识别;初始化等致命错误也会暂停并保留原因,修复后可恢复。
智能相册条件中可使用「图片文字:包含/不包含」和「文字识别状态:是/不是」,可与日期、评分、人物等条件嵌套组合。提供「包含文字的照片」「待识别文字的照片」两个可编辑模板。文字匹配按字面处理 %、_ 等字符,人工修订优先;「不包含」仅判断已有有效识别结果,未识别或失败不是“确认不包含”。使用当前全局 OCR 模型,不要求按相册启用模型,也不自动下载或启动识别。识别、人工修订与模型切换会使相关预览失效,并节流更新相关相册及计数。隐藏、最近删除和排除目录仍遵守普通图库规则。