python实现OCR识别
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识别相关推荐
- 使用OpenCV和Python,OCR识别数字
使用OpenCV和Python,OCR识别数字 1. 效果图 2. 原理 2.1. 什么是七段显示器 2.2 识别数字步骤 3. 源码 参考 这篇博客将演示如何使用OpenCV和Python识别图像中 ...
- python 百度ocr识别_Python使用百度Ocr识别文字保存CSV
1.准备: 1)Python开发环境, 笔者用的是3.7; 工具用的是Pycharm 2)百度云后台创建文字识别的应用, 获取AppID, API key, Secret Key 百度云后台创建文字识 ...
- Python之ocr识别图片并转为excel文件
环境准备 1.开通腾讯文字识别服务 按照官网步骤进行开通:https://cloud.tencent.com/product/generalocr/getting-started 开通 ...
- python做身份证识别_不到100行代码搞定Python做OCR识别身份证,文字等各种字体
不告诉你我用了它配合Python简简单单开发OCR识别,带你识别手写体.印刷体.身份证等N种,附代码! 一.你心目中的OCR 在你心目中,OCR是多大(-, 厉害,好厉害,非常厉害,-)呢? 是这么大 ...
- Python实现OCR识别:pytesseract
Python常用pytesseract进行图片上的文字识别,即OCR识别,完整的代码比较简单,只要下面一行即可,但是实际使用时环境配置上容易出错. from PIL import Image impo ...
- python实现ocr识别算法_基于Python的OCR实现示例
摘要: 近几天在做一个东西,其中需要对图像中的文字进行识别,看了前辈们的文章,找到两个较简单的方法:使用python的pytesseract库和调用百度AI平台接口.写下这篇文章做一个比较简短的记录和 ...
- python将OCR识别的表格还原到excel中
将OCR识别结果写入excel,直接上代码: # -*- coding: UTF-8 -*- import pdfplumber import pandas as pd import time, js ...
- python实现OCR识别图片验证码
用cv2模块读取和显示模块 #导包cv2拓展模块 import cv2#先给窗体起名字 cv2.namedWindow("ShowImage1") cv2.namedWindow( ...
- python 实现OCR识别
最近公司需要对一批图片进行文字识别,为了方便找到了python的第三方库cnocr来实现 cnocr 简介 一个面向中国ocr的python包,提供了经过训练的模型. 所以安装后可以直接使用.当前cr ...
最新文章
- 解决J2EE系统应用性能问题常用方法
- spring boot几个初始配置文件
- 解析弱电安防监控管理系统的安装技术重点
- 【GWT系列】实现远程过程调用
- 《Entity Framework 6 Recipes》中文翻译系列 (11) -----第三章 查询之异步查询 (转)...
- 35岁是继续做测试,还是回家送外卖?
- 进度计划管理软件 PowerPlan (包含GRID,甘特图,直方图,网络图,跟踪逻辑,时标概要图等功能)
- java - EM算法
- 【LaTex】 Font “FandolSong-Regular“ does not contain requested(fontspec)Script “CJK“.如何抑制此种警告?
- Morsel-Driven Parallelism: 一种NUMA感知的并行Query Execution框架
- 基于模板匹配的知识图谱问答系统
- 搜狗输入法自定义短语使用小技巧
- 这款录屏神器在 GitHub 火了,秒杀 33 种同类工具!
- 观点丨如何让劳动价值像资本一样自由流动与交易
- TensorFlow实时任意风格迁移,送女朋友的创意礼物有了
- Gazebo使用笔记(6) —— 摩擦力特性与碰撞位掩码
- 阈的粤语发音_阈_阈的意思_阈的解释_读音、组词、笔划-98在线字典
- C++学习之分式化简
- DEM的分析相关操作
- 程序员跳槽找工作避坑指南(2019最新新版)