大家好,我是Echa。
光学字符识别(Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。亦即将图像中的文字进行识别,并以文本的形式返回。
光学字符识(OCR)别技术应用
OCR技术的特点
提高效率:OCR技术相比传统的人工方式,能够更快实现信息录入。
降低成本:以机器代替人工,能够节省人力成本的开销。
适用性强:OCR技术能够实现多场景和多语言的识别,还能通过提取图像中的文本分析其所包含的语义信息,为机器理解图像提供高层语义线索。
OCR技术的特点
OCR的应用场景
- 卡片证件识别类:身份证识别、银行卡识别、驾驶证识别、行驶证识别、港澳通行证识别、护照识别、户口簿识别、营业执照识别;
- 票据类识别:增值税发票识别、支票识别、承兑汇票识别、银行票据识别、营业执照识别、物流快递识别;
- 文字信息结构化视频类识别:主要有字幕识别和文字跟踪;
- 其他识别:二维码识别、一维码识别、车牌识别、数学公式识别、物理化学符号识别、音乐符号识别、工程图识别、流程图识别、古迹文献识别、手写输入识别;
- 除了以上列举的之外,还有自然场景下的文字识别、菜单识别、横幅检测识别、图章检测识别、广告类图文识别等围绕审核相关的业务应用。
借此机会,小编今天又给大家好物分享17个超级实用OCR开源项目,涉及各个应用场景,覆盖人、车、OCR等9大经典识别场景、在CPU上可3毫秒实现急速识别、一行代码就可实现迭代训练的项目。希望对大家对OCR有新的认识和帮助。同时祝愿每一个粉丝都能拥有一份健康的身体,每天都能有充沛的精力去实现自己的梦想。
全文大纲
- yx-image-recognition - 图像识别管理系统
- EasyPR - 是一个中文的开源车牌识别系统
- meihu-meiyan - 美狐直播美颜系统
- dface - 是个开源的深度学习人脸检测和人脸识别系统
- HyperLPR - 高性能中文车牌识别管理系统
- idCardCv - 证件识别管理系统
- verification-decoder - 验证码CNN识别库
- medicine-identification - 中药图像识别系统
- face-search - 人脸搜索采集管理系统
- PaddleDetection - 目标检测管理系统
- red5-rtmp-push - 天网人脸识别系统
- open-anpr - 智能车牌识别管理系统,支持14种中文车牌类型。
- Free Offline OCR - 离线的中文文本检测+识别SDK
- car- 车辆检测计数+车牌定位+车牌识别的融合技术
- document-ocr - 一个相对完整的文档分析和识别项目
- gradio_yolov5_det - 通用目标检测系统
- mobile-lpr - 是一个面向移动端的准商业级车牌识别库
yx-image-recognition - 图像识别管理系统
Gitee:https://gitee.com/admin_yu/yx-image-recognition
介绍
基于spring boot + maven + opencv 实现的图像深度学习Demo项目,包含车牌识别、人脸识别、证件识别等功能,贯穿样本处理、模型训练、图像处理、对象检测、对象识别等技术点
功能特点
- 蓝、绿、黄车牌检测及车牌号码识别
- 网上常见的轮廓提取车牌算法JAVA实现
- hsv色彩分割提取车牌算法JAVA实现
- harrcascade特征识别算法 JAVA实现
- 基于svm算法的车牌检测训练JAVA实现
- 基于ann算法的车牌号码识别训练JAVA实现
- 人脸检测 接下来将实现人脸识别
- 图片工具: 目前实现了HSV色彩切割,后续将添加更多使用的图片处理工具,用于辅助算法优化
- 证件文字识别
系统截图
EasyPR - 是一个中文的开源车牌识别系统
Gitee:https://gitee.com/liuruoze/EasyPR
介绍
EasyPR是一个开源的中文车牌识别系统,其目标是成为一个简单、高效、准确的非限制场景(unconstrained situation)下的车牌识别库。
相比于其他的车牌识别系统,EasyPR有如下特点:
- 它基于openCV这个开源库。这意味着你可以获取全部源代码,并且移植到opencv支持的所有平台。
- 它能够识别中文。例如车牌为苏EUK722的图片,它可以准确地输出std:string类型的"苏EUK722"的结果。
- 它的识别率较高。图片清晰情况下,车牌检测与字符识别可以达到80%以上的精度。
例子
假设我们有如下的原始图片,需要识别出中间的车牌字符与颜色:
经过EasyPR的第一步处理车牌检测(PlateDetect)以后,我们获得了原始图片中仅包含车牌的图块:
接着,我们对图块进行OCR过程,在EasyPR中,叫做字符识别(CharsRecognize)。我们得到了一个包含车牌颜色与字符的字符串:
“蓝牌:苏EUK722”
截图:
meihu-meiyan - 美狐直播美颜系统
Gitee:https://gitee.com/MeiHuSDK/meihu-meiyan
介绍
美狐美颜sdk,满足客户在直播平台实现美颜效果、短视频系统自带美颜特效等众多音视频软件业务场景的美化需求的第三方美颜api,是以人脸识别、人脸关键点技术为核心,提供专业级实时美颜、大眼瘦脸、美颜滤镜、动态贴纸、美白磨皮、美型、萌颜等特效的接口,以打造多功能视频美颜软件为目标。
截图
dface - 是个开源的深度学习人脸检测和人脸识别系统
Gitee:https://gitee.com/kuaikuaikim/dface
介绍
基于多任务卷积网络(MTCNN)和Center-Loss的多人实时人脸检测和人脸识别系统。
DFace 是个开源的深度学习人脸检测和人脸识别系统。所有功能都采用 pytorch 框架开发。pytorch是一个由facebook开发的深度学习框架,它包含了一些比较有趣的高级特性,例如自动求导,动态构图等。DFace天然的继承了这些优点,使得它的训练过程可以更加简单方便,并且实现的代码可以更加清晰易懂。 DFace可以利用CUDA来支持GPU加速模式。
HyperLPR - 高性能中文车牌识别管理系统
Gitee:https://gitee.com/zeusees/HyperLPR
介绍
HyperLRP是一个开源的、基于深度学习高性能中文车牌识别库,支持PHP、C/C++、Python语言,Windows/Mac/Linux/Android/IOS 平台。
特性
- 速度快 720p,单核 Intel 2.2G CPU (MaBook Pro 2015)平均识别时间低于100ms
- 基于端到端的车牌识别无需进行字符分割
- 识别率高,卡口场景准确率在95%-97%左右
- 轻量,总代码量不超1k行
可识别和待支持的车牌的类型
- 单行蓝牌
- 单行黄牌
- 新能源车牌
- 白色警用车牌
- 使馆/港澳车牌
- 教练车牌
- 武警车牌
- 民航车牌
- 双层黄牌
- 双层武警
- 双层军牌
- 双层农用车牌
- 双层个性化车牌
截图
idCardCv - 证件识别管理系统
Gitee:https://gitee.com/endlesshh/idCardCv
介绍
idCardCv 身份证号码识别,适用于web端身份证识别服务器,前端进行身份证号码定位,后端精准处理识别,准确率在96左右,对于自治区的身份证前面有其他文字的一样可以识别。
verification-decoder - 验证码CNN识别库
Gitee:https://gitee.com/kdldbq/verification-decoder
介绍
通过训练CNN(卷积神经网络)对4位验证码识别,其中字符有0-9a-zA-Z共计62种,但是预测结果不区分大小写,所以最终预测结果为36种。验证码由多个字体、颜色、干扰线随机生成。
使用TensorFlow,CNN识别4位字符验证码,60万次训练,90.02%正确率
结果
以下是对100万张训练验证码进行训练,20万张不参与训练的测试验证码测试出的结果
一般的验证码系统都会去掉类似的字符(例如:i, l, o, 1, 0...),为了更全面的测试,所以我选择将这些难以识别的字符也添加进去测试,可以看出有这些难以辨别的字符时,连人类也很难去完全预测正确(下图,第一行为预测值,第二行为真实值)
训练60万次时的结果:
medicine-identification - 中药图像识别系统
Gitee:https://gitee.com/xiaohaoo/medicine-identification
介绍
中药识别系统主要采用APP端拍照上传的方式,构建卷积神经网络(CNN)对图像进行识别,具有识别效率高,准确度高的特点。APP端的功能包括但不限于拍照识别、中药问答(付费咨询)、检索查询、中药性状以及功效查看、方剂智能推荐【开发中】等;本系统包含APP端以及服务器端。
系统截图
face-search - 人脸搜索采集管理系统
Gitee:https://gitee.com/open-visual/face-search
介绍
本项目是阿里云视觉智能开放平台的人脸搜索M:N的开源替代,项目中使用的模型均为开源模型,项目支持opensearch、milvus和proxima向量存储库,并具有较高的自定义能力。
系统架构图
截图
PaddleDetection - 目标检测管理系统
Gitee:https://gitee.com/paddlepaddle/PaddleDetection
介绍
PaddleDetection是一个基于PaddlePaddle的目标检测端到端开发套件,在提供丰富的模型组件和测试基准的同时,注重端到端的产业落地应用,通过打造产业级特色模型|工具、建设产业应用范例等手段,帮助开发者实现数据准备、模型选型、模型训练、模型部署的全流程打通,快速进行落地应用。
截图
red5-rtmp-push - 天网人脸识别系统
Gitee:https://gitee.com/endlesshh/red5-rtmp-push
介绍
天网人脸识别系统,获取视频流 进行人脸识别后推送到流媒体服务器实时展示
整个系统共有两个项目组成
- red5_hls 流媒体服务器是对red5服务器进行springboot构建,同时支持hls,rtsp等流的播放支持
- red5-rtmp-push 接受视频流并推送到服务器
系统截图
open-anpr - 智能车牌识别管理系统,支持14种中文车牌类型。
Gitee:https://gitee.com/open-visual/open-anpr
最全车牌识别
- 最全车牌识别算法,支持14种中文车牌类型。
- 项目使用纯Java开发,免去使用Python带来的服务不稳定性。
- 欢迎大家贡献代码,如果你觉得项目还不错,请给个star。
Free Offline OCR - 离线的中文文本检测+识别SDK
Gitee:https://gitee.com/microic/tr
一款针对扫描文档的离线文本识别SDK,核心代码全部采用C++开发,并提供Python接口
car- 车辆检测计数+车牌定位+车牌识别的融合技术
Gitee: https://gitee.com/jiang_maowei/car
介绍
基于pytorch深度学习框架,使用开源模型yolov4实现模板检测与yolov5实现车牌检测与LPRNet实现车牌检测
基于win10系统,使用anaconda配置python环境,在anaconda里面下载vscode对项目进行编辑,
截图
document-ocr - 一个相对完整的文档分析和识别项目
Gitee:https://gitee.com/rockyzheng/document-ocr
介绍
一个相对完整的文档分析和识别项目含以下五部分:
- 文档分析数据,
- 识别数据合成工具,
- 文档版面分析模型,
- 文本行识别模型,
- 单字识别模型
数据
数据从网络抓取的公开上市公司年报数据 PDF 文件解析生成,有图片和文本的位置信息
截图
gradio_yolov5_det - 通用目标检测系统
Gitee:https://gitee.com/CV_Lab/gradio_yolov5_det
介绍
基于Gradio的YOLOv5通用目标检测演示系统,可自定义检测模型、演示便捷、安装简单
流程图
截图
mobile-lpr - 是一个面向移动端的准商业级车牌识别库
Gitee:https://gitee.com/damone/mobile-lpr
介绍
Mobile-LPR 是一个面向移动端的准商业级车牌识别库,以NCNN作为推理后端,使用DNN作为算法核心,支持多种车牌检测算法,支持车牌识别和车牌颜色识别。
特点
- 超轻量,核心库只依赖NCNN,并且对模型量化进行支持
- 多检测,支持SSD,MTCNN,LFFD等目标检测算法
- 精度高,LFFD目标检测在CCPD检测AP达到98.9,车牌识别达到99.95%, 综合识别率超过99%
- 易使用,只需要10行代码即可完成车牌识别
- 易扩展,可快速扩展各类检测算法
流程图
截图
最后
一行代码,可能会创造出下一个让人惊叹的产品;一个创新,可能会开启一个全新的科技时代;一份初心,可能会影响到无数人的生活;无论是在大公司工作,还是在小团队奋斗;无论是资深的程序员,还是刚刚入行的新手;每个人的代码,都有力量改变世界。