OCR识别

  • 什么是OCR?
  • OCR的技术原理是什么?
  • OCR技术的难点是什么?
  • 如何克服这些难点?
  • OCR目前支持什么功能?
  • 通用印刷体的技术难点,使用场景
  • code(python)

摘要:在日常生活工作中,我们难免会遇到一些问题,比如自己辛辛苦苦写完的资料,好不容易打印出来却发现源文件丢了;收集了一些名片,却要一个一个地录入信息,很麻烦;快递公司的业务越来越好,但每天需要花费很多时间登记录入运单,效率非常的低。

那么,有没有什么技术能帮助我们解决这些难题呢?有的,那就是OCR文字识别技术。
前面显示:让你把这个世界看得清清楚楚,真真切切

什么是OCR?

OCR英文全称是Optical Character Recognition,中文叫做光学字符识别。它是是实时高效的定位与识别图片中的所有文字信息,返回文字框位置与文字内容。支持多场景、任意版面下整图文字的识别,以及中英文、字母、数字的识别。简单来说,就是将图片上的文字内容,智能识别成为可编辑的文本,例如:

OCR的技术原理是什么?

OCR本质是图像识别。其原理也和其他的图像识别问题基本一样。包含两大关键技术:文本检测和文字识别。先将图像中的特征进行提取并检测目标区域,之后对目标区域的字符进行分割和分类。

以深度学习兴起的时间为分割点,直至近五年之前,业界最为广泛使用的仍然是传统的OCR识别技术框架,而随着深度学习的崛起,基于这一技术的OCR识别框架以另外一种新的思路迅速突破了原有的技术瓶颈(如文字定位、二值化和文字分割等),并已在工业界得到广泛应用。

首先文本定位,接着进行倾斜文本矫正,之后分割出单字后,并对单字识别,最后基于统计模型(如隐马尔科夫链,HMM)进行语义纠错。

OCR技术的难点是什么?

复杂背景、艺术字体、低分辨率、非均匀光照、图像退化、字符形变、多语言混合、文本复杂版式、检测框字符残缺,等等。

如何克服这些难点?

从几个方面入手。一是使用场景,另一方面是从技术上进行改进。腾讯优图实验室在文本检测技术方进行了深度优化,提出了Compact Inception,通过设计合理的网络结构来提升各尺度的文字检测/提取能力。同时引入RNN多层自适应网络和Refinement结构来提升检测完整性和准确性。

OCR目前支持什么功能?

  • 身份证识别
  • 银行卡识别
  • 名片识别
  • 营业执照识别
  • 行驶证驾驶证识别
  • 车牌号识别
  • 通用印刷体识别
  • 手写体识别

通用印刷体的技术难点,使用场景

我们知道身份证识别可广泛应用在金融行业中,在身份认证中,可以减少用户的信息输入,提升效率,提高用户体验,营业执照的识别完全省去了手工录入的繁琐,还可以为企业省去大量的人力资源成本,这些场景大家都已经比较熟悉。

对于通用印刷体,腾讯优图实验室自主设计一整套全方位多尺度文字识别引擎,可攻破模糊,散焦,透视,文字部分遮挡的问题,识别准确率高达90%以上,处于业界领先水平。使用场景广泛,例如对任意版面上图像的文字识别,可广泛应用在印刷文档、广告图、医疗、物流等行业中的识别。

code(python)

下面调用百度API进行识别:

from aip import AipOcrAPP_ID = "10739584"
API_KEY = "RQTE6EpB6y4OXUA2iNKyPMhR"
SECRET_KEY = "ibD0O15GOC949V2V16nwOkZZcVdwObcw"client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
""" 读取图片 """
def get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()def scrope(pic_path):image = get_file_content(pic_path)""" 如果有可选参数 """options = {}options["language_type"] = "CHN_ENG"options["detect_direction"] = "true"options["detect_language"] = "true"options["probability"] = "true"print("正在识别图片信息......")""" 带参数调用通用文字识别, 图片参数为本地图片 """result=client.basicGeneral(image, options)src=result['words_result']print(len(src))dicfile=open('file.txt','a+',encoding='utf-8')for key in range(len(src)):dicfile.write(src[key]['words'])dicfile.write('\n')print(src[key]['words'])dicfile.close()pic_path='ocr_test.png'
scrope(pic_path)

对比一下识别效果


参考:腾讯云技术

python实现OCR识别相关推荐

  1. 使用OpenCV和Python,OCR识别数字

    使用OpenCV和Python,OCR识别数字 1. 效果图 2. 原理 2.1. 什么是七段显示器 2.2 识别数字步骤 3. 源码 参考 这篇博客将演示如何使用OpenCV和Python识别图像中 ...

  2. python 百度ocr识别_Python使用百度Ocr识别文字保存CSV

    1.准备: 1)Python开发环境, 笔者用的是3.7; 工具用的是Pycharm 2)百度云后台创建文字识别的应用, 获取AppID, API key, Secret Key 百度云后台创建文字识 ...

  3. Python之ocr识别图片并转为excel文件

    环境准备 1.开通腾讯文字识别服务         按照官网步骤进行开通:https://cloud.tencent.com/product/generalocr/getting-started 开通 ...

  4. python做身份证识别_不到100行代码搞定Python做OCR识别身份证,文字等各种字体

    不告诉你我用了它配合Python简简单单开发OCR识别,带你识别手写体.印刷体.身份证等N种,附代码! 一.你心目中的OCR 在你心目中,OCR是多大(-, 厉害,好厉害,非常厉害,-)呢? 是这么大 ...

  5. Python实现OCR识别:pytesseract

    Python常用pytesseract进行图片上的文字识别,即OCR识别,完整的代码比较简单,只要下面一行即可,但是实际使用时环境配置上容易出错. from PIL import Image impo ...

  6. python实现ocr识别算法_基于Python的OCR实现示例

    摘要: 近几天在做一个东西,其中需要对图像中的文字进行识别,看了前辈们的文章,找到两个较简单的方法:使用python的pytesseract库和调用百度AI平台接口.写下这篇文章做一个比较简短的记录和 ...

  7. python将OCR识别的表格还原到excel中

    将OCR识别结果写入excel,直接上代码: # -*- coding: UTF-8 -*- import pdfplumber import pandas as pd import time, js ...

  8. python实现OCR识别图片验证码

    用cv2模块读取和显示模块 #导包cv2拓展模块 import cv2#先给窗体起名字 cv2.namedWindow("ShowImage1") cv2.namedWindow( ...

  9. python 实现OCR识别

    最近公司需要对一批图片进行文字识别,为了方便找到了python的第三方库cnocr来实现 cnocr 简介 一个面向中国ocr的python包,提供了经过训练的模型. 所以安装后可以直接使用.当前cr ...

最新文章

  1. 解决J2EE系统应用性能问题常用方法
  2. spring boot几个初始配置文件
  3. 解析弱电安防监控管理系统的安装技术重点
  4. 【GWT系列】实现远程过程调用
  5. 《Entity Framework 6 Recipes》中文翻译系列 (11) -----第三章 查询之异步查询 (转)...
  6. 35岁是继续做测试,还是回家送外卖?
  7. 进度计划管理软件 PowerPlan (包含GRID,甘特图,直方图,网络图,跟踪逻辑,时标概要图等功能)
  8. java - EM算法
  9. 【LaTex】 Font “FandolSong-Regular“ does not contain requested(fontspec)Script “CJK“.如何抑制此种警告?
  10. Morsel-Driven Parallelism: 一种NUMA感知的并行Query Execution框架
  11. 基于模板匹配的知识图谱问答系统
  12. 搜狗输入法自定义短语使用小技巧
  13. 这款录屏神器在 GitHub 火了,秒杀 33 种同类工具!
  14. 观点丨如何让劳动价值像资本一样自由流动与交易
  15. TensorFlow实时任意风格迁移,送女朋友的创意礼物有了
  16. Gazebo使用笔记(6) —— 摩擦力特性与碰撞位掩码
  17. 阈的粤语发音_阈_阈的意思_阈的解释_读音、组词、笔划-98在线字典
  18. C++学习之分式化简
  19. DEM的分析相关操作
  20. 程序员跳槽找工作避坑指南(2019最新新版)

热门文章

  1. 一个好用的时间库——TimeLib,结合第三方进行时间校正
  2. 从零开始做站长一:域名与空间
  3. SIP协议的NAT穿越技术
  4. matlab模拟正态,Matlab仿真正态分布
  5. python便捷水果店_水果店标语
  6. 关于电脑上三星笔记的粗暴安装手法。
  7. 如何定位App是未来的App开发关键
  8. SnackBar源码解析及封装
  9. js实现贪吃蛇蛇蛇蛇
  10. 已知两条射线的方位俯仰角,求两线夹角的方法(C++实现)