跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaScriptAI大前端算法

基于 PaddleOCR 的纯离线 OCR 识别插件,支持身份证银行卡驾驶证识别

一款基于 PaddleOCR 的纯离线 OCR 识别插件,专为 uni-app 多端开发设计。该插件无需依赖云服务,所有模型和识别均在本地完成,保障隐私安全。支持身份证、银行卡、驾驶证等多种证件的自动识别与解析,内置校验功能验证证件有效性。技术架构包含 PaddleOCR、ONNX Runtime 和 OpenCV.js,兼容 H5 及 Android/iOS App。项目开源,支持自定义模型和模板扩展,适用于需要离线证件识别的场景。

氛围发布于 2026/3/23更新于 2026/9/82K 浏览

基于 PaddleOCR 的纯离线 OCR 识别插件

不依赖任何云服务,所有识别在本地完成,隐私安全有保障。

背景

在移动应用开发中,OCR 识别是一个常见需求,尤其是证件识别场景:身份证实名认证、银行卡绑定、驾驶证信息录入等。

然而,市面上大多数 OCR 方案都依赖云服务 API,存在以下问题:

  • 成本高 - 按调用次数收费,量大时费用惊人
  • 需要网络 - 离线场景无法使用
  • 隐私风险 - 敏感证件数据上传到第三方服务器

为了解决这些痛点,开发了 lf-OCR —— 一款基于 PaddleOCR 的纯离线 OCR 识别插件,专为 uni-app 多端开发设计。

核心特性

特性说明
纯离线所有模型和依赖本地化,无需网络即可使用
高性能基于 PaddleOCR,识别速度快、准确率高
中文优化专为中文场景优化,识别效果出色
多平台支持 H5、App (Android/iOS)
证件识别内置身份证、银行卡、驾驶证解析模板
智能验证自动验证证件有效性(校验码、有效期等)
自动识别智能判断证件正反面,无需手动指定
易于扩展支持自定义模型和识别模板

技术架构

lf-OCR
├── 核心引擎 (PaddleOCR + ONNX Runtime + OpenCV.js)
├── 证件解析模板 (身份证/银行卡/驾驶证/通用)
├── 校验工具 (身份证号/银行卡号/手机号等)
└── 格式化工具 (日期/金额/手机号等)

整个插件大小约 35MB,包含:

  • ppocr_det.onnx - 文字检测模型
  • ppocr_rec.onnx - 文字识别模型
  • OpenCV.js - 图像处理
  • ONNX Runtime - 模型推理

快速上手

安装

通过 npm 安装或手动复制到 uni_modules 目录。

基础使用
import lfOCR from "@/uni_modules/lf-OCR/index.js";

// 初始化引擎
await lfOCR.init({
  :  .(, msg),
});


 result =  lfOCR.(imagePath, );
 (result.) {
  .(, result.);
  .(, result.);
  .(, result.);
}
onProgress
(msg) =>
console
log
"加载进度:"
// 识别身份证
const
await
recognize
"idCard"
if
valid
console
log
"姓名:"
name
console
log
"身份证号:"
idNumber
console
log
"地址:"
address
返回数据示例

身份证正面识别结果:

{
  "name": "张三",
  "gender": "男",
  "ethnicity": "汉族",
  "birthDate": "1990 年 01 月 01 日",
  "address": "北京市朝阳区某某街道 123 号",
  "idNumber": "110101199001011234",
  "valid": true,
  "side": "front"
}

支持的证件类型

1. 身份证识别

自动判断正反面,提取完整信息:

import { parseIdCard, validateIdCard } from "@/uni_modules/lf-OCR/index.js";

const result = parseIdCard(ocrText);
if (result.side === "front") {
  // 正面:姓名、性别、民族、出生日期、地址、身份证号
  const validation = validateIdCard(result.idNumber);
  console.log("年龄:", validation.info.age);
} else {
  // 背面:签发机关、有效期限
  console.log("是否过期:", result.isExpired);
}
2. 银行卡识别

支持国内主流银行卡,自动识别银行和卡类型:

import { parseBankCard } from "@/uni_modules/lf-OCR/index.js";

const result = parseBankCard(ocrText);
console.log("卡号:", result.cardNumberFormatted); // 6222 0212 3456 7890 123
console.log("银行:", result.bankName); // 中国工商银行
console.log("类型:", result.cardType); // 借记卡
3. 驾驶证识别

支持主页和副页识别:

import { parseDriverLicense } from "@/uni_modules/lf-OCR/index.js";

const result = parseDriverLicense(ocrText);
console.log("准驾车型:", result.licenseClass); // C1
console.log("车型描述:", result.licenseClassDesc); // 小型汽车

内置校验功能

插件不仅能识别文字,还能验证证件有效性:

import { validateIdCard, validateBankCard } from "@/uni_modules/lf-OCR/index.js";

// 身份证校验(含校验码验证)
const idResult = validateIdCard("110101199001011234");
if (idResult.valid) {
  console.log("地区:", idResult.info.region);
  console.log("出生日期:", idResult.info.birthDate);
  console.log("性别:", idResult.info.gender);
  console.log("年龄:", idResult.info.age);
}

// 银行卡校验(Luhn 算法)
const bankResult = validateBankCard("6222021234567890123");
console.log("是否有效:", bankResult.valid);

扩展开发

更换 OCR 模型

支持替换为其他 ONNX 格式模型:

hybrid/html/models/
├── ppocr_det.onnx # 替换检测模型
├── ppocr_rec.onnx # 替换识别模型
└── ppocr_keys_v1.txt # 替换字典文件
新增识别模板

在 js_sdk/templates/ 目录下创建新模板,实现自定义证件解析:

// js_sdk/templates/passport.js
export function parsePassport(text, lines = []) {
  const result = {
    name: "",
    passportNumber: "",
    nationality: "",
    valid: false,
  };
  // 实现字段提取逻辑...
  return result;
}

平台兼容性

平台支持
H5✅
App (Android)✅
App (iOS)✅
微信小程序❌ (不支持 WebAssembly)

项目地址

  • GitHub
  • Gitee

常见问题

Q: 识别准确率如何?

A: 基于 PaddleOCR,中文识别准确率可达 95% 以上。建议使用清晰、光线充足的图片。

Q: 支持哪些证件?

A: 目前内置身份证、银行卡、驾驶证模板,同时支持通用文字识别。后续会持续更新。

Q: 如何添加新证件类型?

A: 在 js_sdk/templates/ 目录下创建新模板文件,参考现有模板实现即可。

开源协议

MIT License - 可免费用于商业项目

目录

  1. 基于 PaddleOCR 的纯离线 OCR 识别插件
  2. 背景
  3. 核心特性
  4. 技术架构
  5. 快速上手
  6. 安装
  7. 基础使用
  8. 返回数据示例
  9. 支持的证件类型
  10. 1. 身份证识别
  11. 2. 银行卡识别
  12. 3. 驾驶证识别
  13. 内置校验功能
  14. 扩展开发
  15. 更换 OCR 模型
  16. 新增识别模板
  17. 平台兼容性
  18. 项目地址
  19. 常见问题
  20. Q: 识别准确率如何?
  21. Q: 支持哪些证件?
  22. Q: 如何添加新证件类型?
  23. 开源协议

更多推荐文章

查看全部
  • Win10 里关闭 Microsoft 365 Copilot 弹窗的几种办法
  • 基于 OpenHarmony 的 Flutter 智能家居应用开发实战
  • Visual C++ Redistributable 运行库缺失与损坏修复指南
  • AI 绘画在商业设计中的应用与版权探讨
  • SM4 国密算法原理与 C++跨平台实现详解
  • Stable Diffusion 秋叶整合包本地安装与使用指南
  • 攻防世界 Web 题解:SQL 注入与文件包含漏洞分析
  • AI Coding 提效实战:从工具选择到思维升级
  • MCP+Skill 驱动的前端 JS 逆向自动化方案与工具实现
  • PyCharm 安装配置与使用指南
  • Java Servlet 核心原理与 Spring Boot 实战指南
  • 前端地图基本操作控制:平移、缩放、旋转及样式切换
  • C++ 伸展树与红黑树原理及实现
  • LeetCode 20. 有效的括号(栈结构详解)
  • GitHub Copilot 最新演进:从代码补全到需求理解
  • C++ Boost 库介绍与配置
  • Open-WebUI 本地部署指南:构建私有化 AI 对话界面
  • StreamVLN 具身导航复现:环境搭建、数据集准备与模型推理
  • DeepSeek-R1 大模型基于 MS-Swift 框架部署、推理与微调实践
  • 旋转矩阵、齐次变换矩阵、欧拉角与四元数相互转换 C++ Python 实现

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online