[特殊字符] 开源一款基于 PaddleOCR 的纯离线 OCR 识别插件 | 支持身份证、银行卡、驾驶证识别

🚀 开源一款基于 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 - 模型推理

🎮 快速上手

安装

在 HBuilder 插件市场搜索 lf-OCR 导入,或手动复制到 uni_modules 目录。

基础使用

import lfOCR from"@/uni_modules/lf-OCR/index.js";// 初始化引擎await lfOCR.init({onProgress:(msg)=> console.log("加载进度:", msg),});// 识别身份证const result =await lfOCR.recognize(imagePath,"idCard");if(result.valid){ console.log("姓名:", result.name); console.log("身份证号:", result.idNumber); console.log("地址:", result.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.jsexportfunctionparsePassport(text, lines =[]){const result ={name:"",passportNumber:"",nationality:"",valid:false,};// 实现字段提取逻辑...return result;}

📱 平台兼容性

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

🔗 项目地址


📷 页面截图

在这里插入图片描述

🤔 常见问题

Q: 识别准确率如何?

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

Q: 支持哪些证件?

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

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

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


📄 开源协议

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


🙏 致谢


如果这个项目对你有帮助,欢迎 ⭐️ Star 支持一下!有问题或建议也欢迎提 Issue 讨论。

Read more

毕业论文怎么降低AI率?2026最全实用指南

毕业论文怎么降低AI率?2026最全实用指南

毕业论文怎么降低AI率?2026最全实用指南 又到了一年一度的毕业季,相信很多同学都在为论文发愁。今年的情况比较特殊——越来越多的高校引入了AIGC检测系统,不管你有没有用AI写论文,都可能面临"AI率偏高"的问题。 作为一个刚经历过这场"战斗"的过来人,我想把自己踩过的坑和总结的经验分享给大家。这篇文章会从原理到实操,从手动修改到工具辅助,给你一份真正用得上的降AI率指南。 一、先搞清楚:什么是论文AI率? 在动手改论文之前,你得先明白AI率到底是怎么回事。 简单来说,AI率就是检测系统判断你的论文中有多少内容"像是AI写的"。不同平台的叫法不一样,有的叫"AIGC检测率",有的叫"AI疑似度",但本质上都是同一回事。 目前主流的检测平台包括知网、维普、万方、Turnitin等。它们的检测原理略有不同,但大体上都是通过分析文本的语言模式、句式结构、词汇选择等特征来判断内容是否由AI生成。 AI检测的核心逻辑

By Ne0inhk

[AI提效-30]- 2026年国内OPC社区全景地图

🏙️ 2026年国内OPC社区全景地图 一、📍 核心城市OPC生态社区 1. 上海:OPC发源地与政策高地 上海是国内OPC概念最成熟、政策支持力度最大的城市。 社区/园区名称地点特色亮点加入方式上海临港“超级个体288”基地浦东新区临港新片区零租金创业空间、算力补贴、AI工具免费用 关注“临港新片区”公众号 → 搜索“超级个体” → 在线申请 张江AI小镇 OPC孵化中心浦东新区张江高科 聚焦AI应用开发、 大模型生态对接 访问张江高科官网 → 创业服务 → 提交BP NVIDIA AI Tech Center (上海)徐汇区/浦东新区国际技术资源、GPU算力支持、开发者社群 注册NVIDIA开发者账号 → 申请加入本地社群 微软加速器 (上海)闵行区/徐汇区面向早期初创企业、含一人公司官网提交申请 → 筛选面试 💡 上海特别提示: 临港新片区对“超级个体”有专项认定,通过认定后可享受3年免租及税收返还。 2.

By Ne0inhk
一句话生成PCB?和AI聊聊天,就把板子画了!

一句话生成PCB?和AI聊聊天,就把板子画了!

在键盘上敲下一句“我要一个STM32的电机驱动板,带CAN总线”,几秒后,一张完整的原理图和PCB布局在你眼前展开——这不是科幻电影,而是AI给硬件工程师带来的真实震撼。 清晨的阳光洒进办公室,资深硬件工程师李工没有像往常一样直接打开Altium Designer。他对着电脑屏幕上的对话框,敲入了一行简单的需求描述:“设计一个基于ESP32的智能插座PCB,要求支持Wi-Fi控制、过载保护,尺寸尽量小巧。” 15分钟后,一份完整的原理图草案、经过初步优化的双层板布局,甚至是一份物料清单(BOM)初稿已经呈现在他面前。这不可思议的效率背后,正是AI驱动的PCB设计工具在重新定义电子设计的边界。 01 效率革命,从对话到电路板 如今的PCB设计领域正经历着一场静悄悄的革命。传统上,一块电路板从概念到图纸,需要工程师经历需求分析、器件选型、原理图绘制、布局布线等一系列复杂工序,耗时数天甚至数周。 AI工具的出现彻底改变了这一流程。这类工具的核心是经过海量电路数据和设计规则训练的大型语言模型,它们能理解自然语言描述的需求,自动完成从逻辑设计到物理实现的全流程或关键环节。 比如,当

By Ne0inhk
告别重复劳动:用AI数据标注工具提速3倍的实战经验

告别重复劳动:用AI数据标注工具提速3倍的实战经验

👋 大家好,欢迎来到我的技术博客! 📚 在这里,我会分享学习笔记、实战经验与技术思考,力求用简单的方式讲清楚复杂的问题。 🎯 本文将围绕AI这个话题展开,希望能为你带来一些启发或实用的参考。 🌱 无论你是刚入门的新手,还是正在进阶的开发者,希望你都能有所收获! 文章目录 * 告别重复劳动:用AI数据标注工具提速3倍的实战经验 * 为什么数据标注是“效率黑洞”? * AI标注工具的核心优势:不只是快,更是智能 * 实战经验:从0到1的AI标注落地 * 项目背景:一个真实的数据标注挑战 * 工具集成:代码示例详解 * 步骤1:安装依赖库 * 步骤2:加载预训练模型(使用PyTorch) * 步骤3:集成到Label Studio工作流 * 步骤4:人工审核界面优化 * 速度与质量实测数据 * 流程优化:用Mermaid重构标注工作流 * 避坑指南:实战中的常见陷阱 * 陷阱1:AI模型不匹配业务场景 * 陷阱2:数据格式不兼容

By Ne0inhk