chineseocr火车票识别研究
一、chieseocr项目框架
1、app.py:web入口,加载检测及识别模型,控制总体项目的流程
2、application文件夹:身份证和火车票等结构化数据识别模块
3、crnn文件夹:包括dnn、keras和torch中英文识别网络模型
4、models文件夹:训练好的模型文件,包括如下
5、static和templates文件夹:html+css的页面显示设计,包括文字方向检测选择、单行文字识别,身份证和火车票结构化识别,图片和结果的显示等。
6、test文件夹:测试图片
7、text文件夹:支持darknet 转keras, keras转darknet, pytorch 转keras模型
8、darknet文件夹:darknet文字检测及训练
9、dockerfile:构建的docker镜像
10、main.py:app.py提供的功能函数,包括使用模型的加载,文字方向检测,文字检测,合并同行框,显示矩形框结果在原图等。
11、apphelper文件夹:图像工具和redis操作。
二、chineseocr火车票识别
根据火车票信息,从已识别出的文字中,通过正则表达式选取出以下火车票信息:出发站、起始站、车次、车票价格、座位席别、出发日期和时间,座位号等信息。
1、出发站、起始站、车次:杭州东站G123上海虹桥站
res = re.findall('[一-龥]+站',txt),re.findall('[一-龥]+站(.+?)[][一-龥]+站',txt)
2、车票价格:¥123元
res = re.findall('¥[0-9]{1,4}.[0-9]{1,2}元',txt)
3、座位席别:二等座
res = re.findall('二等座|一等座|商务座|硬座|硬卧|无座|动卧|新空调硬座|新空调硬卧',txt)
4、出发日期时间:2020年11月24日12:40
res = re.findall('[0-9]{1,4}年[0-9]{1,2}月[0-9]{1,2}日[0-9]{1,2}:[0-9]{1,2}',txt)
5、座位号:04车13A号
res = re.findall('[0-9]{2,}车.*号|无座|'[0-9]{2,}车无座',txt)
三、改写为通过POST请求图片识别的接口
需要将已写好前端页面调用方式,改为后台接口web调用方式。我采用了flask web框架。
1)安装Flask
pip3.6 install flask
2)创建一个app服务,构建参数及返回对象,打开浏览器/Postman调试,可以使用Get或者Post。
from flask import Flask,url_for,request,render_template,redirect,session,make_response
@app.route('/login', methods=['POST', 'GET'])
def login():
if request.method == 'POST':
...
if 'user' in session:
...
else:
title = request.args.get('title', 'Default')
response = make_response(render_template('login.html', title=title), 200)
response.headers['key'] = 'value'
return response
if __name__ == "__main__":
app.run(debug=True)
四、提高准确率
1、模糊匹配查询:存在部分文字识别不清楚,如果严格按照正则匹配信息,会出现很多信息无法匹配的现象。采用模糊匹配的方式,只要是类似的文字组成即可认为是所需要的信息。例如
1)车站车次车站,很多时候,ocr识别的组合txt会有车站车次/车次车站/车站车次车站/多种组合,因此,在匹配时,可以先优先匹配车站车次车站,如果没有,再匹配车站车次及车次车站,认定,车次前为出发站,车次后的站为到达站,这样可以提高准确率。
2)票价:只要出现¥或元即可
2、调整参数:在model中有识别文字方向,文字大小,区分行间距,判断是否合并同行的阈值参数。通过缩小文字大小判断,提高合并同行阈值,缩小行间距等参数,并不断测试来找到最高的准确率匹配参数。
3、图像预处理:针对图像的清晰度提高以使得识别率变高的方式有两种,1)使用ImageFilter.DETAIL滤波,增强细节描绘;2)使用ImageEnhance.Contrast函数,增强图片对比度。通过两种方式的测试对比,第二种更有效果。
4、混行文字处理:针对火车票编号和出发站混行导致的出发站无法识别问题,采用了提取图片的红色通道,因为火车票编号是红色的,其余火车票信息均为黑色,提取了红色通道之后,火车票编号就会与背景色几乎一致,变相的去掉了火车票编号对于出发站的影响,此方法可以解决混行的问题,但是同时也会使得图片的清晰度变弱一些。
chineseocr火车票识别研究相关推荐
- 基于 PacBio 测序数据的纠错算法评测与剪切位点识别研究
基于 PacBio 测序数据的纠错算法评测与剪切位点识别研究 摘 要 高通量测序技术的产生和发展催生了许多大规模基因测序项目, 如国际千人基 因组计划. 英国 UK10K 计划以及中国的百万人群基因组 ...
- 三维人脸识别研究进展综述(附pdf)
近年来,三维人脸识别研究取得了较大进展.相比二维人脸识别,三维人脸识别更具有优势,主要特点是在识别中利用了三维形状数据.该文首先根据三维形状数据的来源,将三维人脸识别分为基于彩色图像的三维人脸识别. ...
- 《中国人工智能学会通讯》——3.15 社交媒体中的谣言识别研究及其发展趋势...
3.15 社交媒体中的谣言识别研究及其发展趋势 随着计算机和互联网技术的不断发展,社会已经进入了信息互联和人的互联高度融合的时代,人们可以在网络上自由地发布.传播和获取信息:人与人之间的联系也更加紧密 ...
- xmlstreamexception 参数实体未进行声明_命名实体识别研究进展概述
Future丨Intelligence丨Nutrition丨Energy 让阅读成为习惯,让灵魂拥有温度 点击关注PKUFineLab 一起进步 命名实体识别研究进展概述 命名实体识别任务旨在从自然 ...
- 【笔记】基于边缘检测和BP神经网络的大豆杂草识别研究
<基于边缘检测和BP神经网络的大豆杂草识别研究> 单位:吉林农业大学信息技术学院 作者:侯雨 数据获取 设备:大疆 DJI 精灵3 相机:EXMOR 1/2.3 RGB 相机 拍照:飞行高 ...
- matlab 神经网络dpi,基于DPI和BP神经网络的P2P流量识别研究
研究与开发 现代计算机 2019.04 上 文章编号:1007-1423(2019)10-0031-05 DOI:10.3969/j.issn.1007-1423.2019.10.007 基于 DPI ...
- 深度人脸表情识别研究进展
近年来,随着人工智能与人机交互技术的发展,人脸检测.对齐.识别技术的不断跟进,自动人脸表情识别由于其潜在的社交媒体分析和情感计算能力而成为了计算机视觉领域的热点研究话题,并在众多商业场景中有着巨大的应 ...
- 【项目调研+论文阅读】(目录)中文实体识别研究方法综述 day6
文章目录 一.基于词典和规则的方法 二.基于统计机器学习的方法 1.隐马尔可夫模型(HiddenMarkovMode,HMM)的方法 2.基于最大熵(MaxmiumEntropy)的 方 法 3.基 ...
- 机器学习在植物病害识别研究中的应用
机器学习在植物病害识别研究中的应用 1.文章思路 阐述传统机器学习方法到深度学习的模式分类技术变迁,重点提出深度学习在植物病害识别中的应用优势:然后,调研机器学习在植物病害应用的相关研究文献,对文献所 ...
最新文章
- C语言满分代码:L1-056 猜数字 (20分)
- dubbo注册中心的细节
- LeetCode(944)——删列造序(JavaScript)
- Python空间数据处理环境搭
- 1-1 Go抽奖系统导学
- 分享一个echart 广州地图的demo
- 算法(第四版)IDEA终极环境配置
- OTA频发的“大数据杀熟”,想要治你不容易?
- 关于Android中开机启动服务
- html中的if函数,IF函数的使用方法
- Linux Mint(version19)
- 1252:走迷宫 2021-01-05
- webots和ros2笔记08-分封
- Python爬虫(上)
- uni-app 子组件调用父组件的方法(vue同样适用)
- 干货分享 | UE游戏鼠标双击判定
- java毕业设计游戏交易平台Mybatis+系统+数据库+调试部署
- Zabbix 实现简单的WEN监测
- c语言———定积分计算
- Qt商业版和开源版下载地址!!!!!!
热门文章
- 新手学习MAYA,需要知道的10个技巧!
- 我的保研之旅——北京航空航天大学、北理工、南大
- 计算机毕业设计ssmAI学院教务信息管理系统lx9v9系统+程序+源码+lw+远程部署
- 安装环境Anaconda+pytorch
- 曾红过那英,巅峰时却远嫁日本,
- 密林深处里藏着一个古国
- Office365跨订阅迁移邮箱-批量导出用户PST文件
- 基于Android的实时共享白板虚拟会议空间设计与实现
- lua如何判断是否支持cookie_如何判断电磁炉是否故障?
- mysql 快速导出100万数据_mysql8.0如何快速生成100万数据人员信息数据