基于OCR的水位检测项目
创作时间:
作者:
@小白创作中心
基于OCR的水位检测项目
引用
CSDN
1.
https://blog.csdn.net/qq1309399183/article/details/143982106
本项目基于OCR技术,结合水位尺,实现自动读取水位数值的功能,目标精度达到0.01。整个系统的设计和实现涵盖了从原始数据的采集、预处理、目标检测、字符识别到最终的水位计算等多个环节,旨在构建一个高效、准确的自动化水位监测解决方案。
水位尺读数系统概述
本项目旨在利用OCR技术结合水位尺,实现自动读取水位数值的功能,目标精度达到0.01。整个系统的设计和实现涵盖了从原始数据的采集、预处理、目标检测、字符识别到最终的水位计算等多个环节,旨在构建一个高效、准确的自动化水位监测解决方案。
├── Hough(霍夫变换检测直线)
├── LSTM-OCR(基于LSTM模型的OCR方法,包含部分权重)
├── Number_detect_dataset(用于训练数字检测模型YOLO v3的数据集)
├── Post_Process_Result(OCR模型输出)
├── data_for_ocr_train(用于训练OCR模型的数据集)
├── demo(演示系统源码与可执行文件下载地址)
├── TPS(模糊文本识别模型)
├── creat_dataset(用于生成合成数据集,训练TPS模型)
环境配置
- 操作系统:支持Windows或Linux。
- 编程语言:Python 3.5及以上版本。
- 深度学习框架:TensorFlow-GPU 1.14.0及以上版本,要求CUDA 10.0及以上版本支持GPU加速。
- 调整摄像头至仅拍摄水位尺区域,使用训练好的目标检测模型检测数字区域(如图1左),根据bounding
box的位置关系(主要基于Y轴,根据实际情况需要分别讨论(1)),确定检测区域1和检测区域2,其中,检测区域1代表最下方的刻度区数字,精度为0.1,经过OCR模型识别数字,得到值L2(数值);检测区域2为最下方的较长数字,精度为1,经过OCR模型识别数字,得到值L1(数值),检测区域1和检测区域2由bounding
box的宽度区分(如图1中); - 另外,检测区域1的bounding
box下边界至水面为检测区域三,通过霍夫变换检测直线数目,精度为0.01,得到值L3(直线条数);最终,通过计算式L1-(10-L2·0.1)-0.25·L3(1),获得最终水位(如图1右)。 - 其中(1)中的讨论主要指较长数字区域(L1值)和刻度区数字区域(L2值)的位置关系,实际数据中,二者并不总是呈现L1在L2上方的情况。所以需要分情况确定加减号,详见附录。
项目目录结构
- Hough(霍夫变换检测直线):负责通过霍夫变换检测水位尺上的直线,用于提高0.01精度的水位测量。
- LSTM-OCR(基于LSTM模型的OCR方法):实现对检测到的数字区域的字符识别,包括模型训练和预测。
- Number_detect_dataset(用于训练数字检测模型YOLO v3的数据集):提供训练YOLO v3模型所需的数据集。
- Post_Process_Result(OCR模型输出):存放OCR模型识别后的输出结果。
- data_for_ocr_train(用于训练OCR模型的数据集):为训练OCR模型准备的数据集。
- demo(演示系统源码与可执行文件下载地址):包含演示系统的源代码及可执行文件。
- TPS(模糊文本识别模型):针对模糊文本的识别模型。
- creat_dataset(用于生成合成数据集,训练TPS模型):生成合成数据集,用于训练TPS模型。
技术方案
整体思路
- 摄像头调整:确保摄像头只拍摄水位尺的有效区域,减少环境干扰。
- 目标检测:使用YOLO v3模型检测水位尺上的数字区域,通过bounding box的位置关系确定检测区域1(最下方的刻度区数字,精度为0.1)和检测区域2(最下方的较长数字,精度为1)。
- OCR识别:利用LSTM模型对检测区域内的数字进行识别,输出数字值。
- 霍夫变换:通过霍夫变换检测直线数目,精度为0.01,以进一步细化水位的测量。
- 水位计算:综合上述步骤的信息,根据特定公式计算最终水位值。
方案实施
- 原始数据处理:从摄像头采集的数据中筛选并提取出感兴趣的水位尺区域。
- 数据标注:对提取出的区域进行标注,数字检测采用YOLO v3模型,标注格式为YOLO格式。
- 数字检测模型训练:基于标注数据训练YOLO v3模型,用于检测水位尺上的数字。
- OCR模型训练:使用数字检测模型的结果作为输入,训练LSTM模型,以识别检测到的数字区域。
- 霍夫变换应用:对检测区域1和检测区域2之间的区域应用霍夫变换,检测直线数目,以提高水位测量的精度。
存在的问题与挑战
- 检测精度:目标检测模型可能存在漏检或误检的情况,尤其是在尺子倾斜或弯曲的情况下。
- 识别准确性:OCR模型在识别长数字时可能出现位数错误,这主要是因为训练数据中多位数字的数量较少。
- 霍夫变换的鲁棒性:霍夫变换对参数非常敏感,容易受到环境因素的影响,如水面反射等,导致直线检测不准确。
演示系统
- 用户界面:基于PyQt构建,提供了友好的用户界面,方便用户选择图片进行水位读数。
- 授权限制:演示系统设有授权限时,需要将系统时间。
该项目是一个复杂的多阶段处理流程,每个阶段的成功实施都是保证最终水位读数准确性的关键。未来的工作将集中在提升各模块的性能和鲁棒性,以及优化整个系统的运行效率。
热门推荐
揭秘芯片流片:为什么动辄花费数亿元?
如何选择和购买家电产品?如何判断其性价比和耐用性?
阴天也需要防晒?关于防晒,这些你得知道
Excel中数据相加的三种方法:SUM函数、直接相加和自动求和按钮
跨境电商可以免征增值税的服务有哪些
财务报表中如何查看净资产?
《哪吒》背后光线传媒股价过山车:年轻人的第一个“天地板”?市场情绪的狂欢与泡沫
技术开发合同的分类及特点
研究发现:灵活工作制或加剧家务分工不平等
二手电动车过户全攻略:证据准备与流程详解
买卖二手电动车购车协议怎么写
吕文扬:从电商小白到手机销售巨头的逆袭之路
上帝为什么不拯救堕落的天使?原因有哪些?
跨境电商之马来西亚消费者洞察分析:马来西亚文化趋势与风俗习惯
2025深圳交通近期建设情况(城际、道路、地铁、公交)
斯拉沃热是如何“拉黑”学术圈,变成齐泽克的?
杭州三天两晚旅行攻略 | 杭州3天2夜最佳旅行路线及攻略分享!超详细
连接器常见机械性能测试项目及要求
属虎女性最适合从事的职业及成功路径 属虎女人的事业发展机会
中国十大红枣品种:从和田到灵宝,品味千年枣文化
不同类型实验室的设计要求详解
肺结节需要在呼吸内科的哪个科室进行诊疗?
电脑可以正常开机但是想进入安全模式就死机了在登入界面卡住了
Excel中如何实现鼠标点击单元格自动变色
中国电影史上的第五代导演:从《一个和八个》到《站直啰别趴下》
【事件分析】 中美关税问题对豆类行情影响分析
十大便宜好养的宠物:价格不超百元,学生党也可以养
路由器第三方固件哪个好?性能、安全、体验全解析
“难怪无量仙翁要化身肌肉男,配音是他就合理了”
一种光电容积波PPG 转换到心电图ECG进行房颤检测的神经网络模型