水位尺读数识别python_一种基于人工智能识别水尺水位的方法与流程
⽔位尺读数识别python_⼀种基于⼈⼯智能识别⽔尺⽔位的⽅
法与流程
本发明涉及深度学习算法在计算机视觉领域的应⽤,具体是指基于深度神经⽹络,⾃动识别图⽚中⽔尺位置及刻度的⽅法。
背景技术:
⽔位是河流湖库的基本⽔⽂要素之⼀,由于城市及灌区对于供⽔量、暴⾬及洪⽔流量、径流泥沙及养分输移率等信息通常均需要根据⽔位测量值求得,因此连续可靠的⽔位监测对于流域⽔资源管理与综合治理具有重要意义。
当前,⽔利⾏业监测⽔位的⽅法除了⼈⼯检测外,还有⾃动⽔位计检测,⾃动⽔位计检测主要包括浮⼦式、压⼒式、超声波式及雷达式等,以及会采⽤传统的图像识别⽅法对⽔位进⾏监测。
这些⽅法在监控时存在诸多缺陷,⽐如⼈⼯监测,存在安全问题,劳动强度⼤且⾃动化程度低;各种⾃动⽔位计成本⾼,易受环境影响,维护成本较⾼;⽽传统的图像识别⽅法对每个摄像头的安装⾓度和位置要求较⾼,适应性较差。
技术实现要素:
针对现有技术存在的不⾜,本发明的⽬的在于提供⼀种基于⼈⼯智能识别⽔尺⽔位的⽅法,解决现有⾃动⽔位计成本⾼并且精度易受环境影响,以及传统图像识别⽅法灵活度较低的缺点。
该⽅法根据已经安装的摄像头获取⼤量⽔尺图像数据进⾏训练,由于训练数据全部来⾃已有的实际场景,加之深度学习算法固有的可迁移和泛化能⼒,所以对新安装的现场环境有很好的适应性,⼏乎可以做到安装摄像头即可使⽤,⽆需专业技术调试,且后期升级只需要替换预训练的模型算法即可,前期安装和后期维护都很简单。
该⽅法通过简单的图像处理后使⽤预训练的⼈⼯智能算法模型检测⽔位尺上数字和刻度,在经过误差校正算法校正后,将刻度换算为⽔位深度。测量误差最终可达1到2cm,能够满⾜⽔⽂测验的要求。
本发明的上述技术⽬的是通过以下技术⽅案得以实现的:
本发明采⽤深度学习算法实现,该深度学习算法需要使⽤已标注的⼤量⽔尺图像数据进⾏预训练,在预训练的基础上才能将算法应⽤到对未知⽔尺刻度的⽔尺图像的预测中,所以本发明的主要⼯作由两部分组成:算法训练阶段和预训练算法预测阶段,算法使⽤开源机器学习框架Tensorflow实现。具体如下:
⼀种基于⼈⼯智能识别⽔尺⽔位的⽅法,包括以下步骤:
根据已安装的摄像头获取⽔尺图像;
根据获取的⼤量⽔尺图像数据通过训练算法预训练出⼈⼯智能算法模型的算法训练阶段;
使⽤预训练⼈⼯智能算法模型对⽔尺图像上数字和刻度的统计数据进⾏预测的预训练算法预测阶段;
使⽤误差校正算法对检测出的统计数据进⾏校正,并在校正后将刻度换算为实测⽔位深度。
上述的训练算法包括⽔尺对象检测模块和⽔尺刻度识别模块,⽔尺对象检测模块⽤于识别出⽔尺在图像数据中的位置信息,⽔尺刻度识别模块⽤于对⽔尺对象检测模块检测出的⽔尺位置范围内的图像数据进⾏数字和刻度的特征提取、并依据提取的特征预测⽔尺图像中出现的数字和刻度的统计数据。
算法训练阶段包括以下两个训练步骤:
通过⽔尺对象检测模块的训练,由基于深度学习的机器视觉对象检测算法实现,对输⼊预标注且处理好的⽔尺图像数据进⾏训练,经多次迭代训练,得到满⾜预期精度的⽔尺对象检测模型;
做梦梦到血
通过⽔尺刻度识别模块的训练,使⽤深度卷积神经⽹络算法,有监督地提取已标注的图像中⽔尺的数字和刻度的图像特征并提取学习,在多次迭代中深度卷积神经⽹络算法对特征分布不断拟合学习,得到满⾜预期精度的⽔尺数据识别⽹络模型,⽔尺对象检测模型和⽔尺数据识别⽹络模型构成⼈⼯智能算法模型。
预训练算法预测阶段主要分为:
⽔尺原图采集与预处理,基于摄像头获取⽔尺图像,对其中⼤⼩进⾏调整以满⾜算法模型输⼊要求;
⽔尺对象识别及刻度推理,将预处理好的⽔尺图像输⼊到预训练的⽔尺对象检测模型中、检测出图像中的⽔尺位置,基于预测的⽔尺位置截取出原图中的⽔尺图像,然后将⽔尺图像输⼊到⽔尺刻度识别⽹络模型中、输出⽔尺图像中出现的数字和刻度的统计数据。
上⼀步中得到数字统计数据可能存在误差,由此本步骤根据上述的误差校正算法对⽔尺中数字分布规律可能的误差进⾏校正。标准⽔尺中数字0⾄9的出现具有以下规律:每⼀段⽔尺,长度1⽶,数字分布由最低端到顶端为0到9。根据以上数字分布规律,可以设计出数字统计误差的校正算法:某⼀个数字的数量出现错误时,只要其相邻的两个数字的数量正确,那么可以根据其相邻的两个数字数量将该出错的数字数量校正过来。
最后根据校正的⽔尺信息计算出⽔⾯上的⽔尺长度,再依据预先输⼊的安装⽔尺长度计算出⽔⾯下的⽔尺长度,从⽽得出实测⽔位深度。
综上所述,本发明对⽐于现有技术的有益效果为:基于深度学习算法,通过摄像头获取⽔尺图像数据,通过算法训练阶段的训练算法构建⼈⼯智能算法模型、利⽤预训练算法预测阶段对⼈⼯智能算法
模型进⾏预测试,使得⼈⼯智能算法模型在之后的⽔尺图像识别上灵活度和准确度更好,以此避免传统识别⽅法灵活度低的缺点,同时不需要使⽤⾃动⽔位计成本较⾼的设备,并且⾃动⽔位计等设备精度易受环境影响,由此能够提⾼⽔尺识别的精度。
附图说明
图1为实施例中算法训练阶段的流程图;
图2为实施例中预训练完成后⽔尺⽔位实测的流程图;
图3为实施例的⽔尺误差校正⽰意图;
图4为实施例中对象检测算法的内部⽰意图;一个土一个于念什么
图5为实施例中⽔尺刻度识别模块的深度学习⽹络框架。
附图标记:1、⽔尺图像采集;2、训练算法;21、⽔尺对象检测模块;22、⽔尺刻度识别模块;3、⼈⼯智能算法模型;31、⽔尺对象检测模型;32、⽔尺数据识别⽹络模型;4、实测⽔位深度;5、误差校正算法;6、预训练算法预测阶段;7、算法训练阶段。
具体实施⽅式
以下结合附图对本发明作进⼀步详细说明。
本⽅法发明根据已经安装的摄像头获取⼤量⽔尺图像数据进⾏训练,由于训练数据全部来⾃已有的实际场景,加之深度学习算法固有的可迁移和泛化能⼒,所以对新安装的现场环境有很好的适应性,⼏乎可以做到安装摄像头即可使⽤,⽆需专业技术调试,且后期升级只需要替换预训练的模型算法即可,前期安装和后期维护都很简单。
该⽅法通过简单的图像处理后使⽤预训练的⼈⼯智能算法模型3检测⽔位尺上数字和刻度,在经过误差校正算法5校正后,将刻度换算为⽔位深度。测量精度最终可达1到2cm,能够满⾜⽔⽂测验的要求。
本发明的上述技术⽬的是通过以下技术⽅案得以实现的:
本发明采⽤深度学习算法实现,该深度学习算法需要使⽤已标注的⼤量⽔尺图像数据进⾏预训练,在预训练的基础上才能将算法应⽤到对未知⽔尺刻度的⽔尺图像的预测中,所以本发明的主要⼯作由两部分组成:算法训练阶段7和预训练算法预测阶段6,算法使⽤开源机器学习框架Tensorflow实现。具体如下:
财产保全担保⼀种基于⼈⼯智能识别⽔尺⽔位的⽅法,参照图1和图2所⽰,包括以下步骤:
根据已安装的摄像头进⾏⽔尺图像采集1;
根据获取的⼤量⽔尺图像数据通过训练算法2预训练出⼈⼯智能算法模型3的算法训练阶段7;
使⽤预训练⼈⼯智能算法模型3对⽔尺图像上数字和刻度的统计数据进⾏预测的预训练算法预测阶段6;
使⽤误差校正算法5对检测出的统计数据进⾏校正,并在校正后将刻度换算为实测⽔位深度4。
上述的训练算法2包括⽔尺对象检测模块21和⽔尺刻度识别模块22,⽔尺对象检测模块21⽤于识别出⽔尺在图像数据中的位置信息,⽔尺刻度识别模块22⽤于对⽔尺对象检测模块21检测出的⽔尺位置范围内的图像数据进⾏数字和刻度的特征提取、并依据提取的特征预测⽔尺图像中出现的数字和刻度的统计数据。
算法训练阶段7包括以下两个训练步骤:风云之玄武真经
通过⽔尺对象检测模块21的训练,由基于深度学习的机器视觉对象检测算法实现,对输⼊预标注且处理好的⽔尺图像数据进⾏训练,经多次迭代训练,得到满⾜预期精度的⽔尺对象检测模型31;
通过⽔尺刻度识别模块22的训练,使⽤深度卷积神经⽹络算法,有监督地提取已标注的图像中⽔尺的
数字和刻度的图像特征并提取学习,在多次迭代中深度卷积神经⽹络算法对特征分布不断拟合学习,得到满⾜预期精度的⽔尺数据识别⽹络模型32,⽔尺对象检测模型31和⽔尺数据识别⽹络模型32构成⼈⼯智能算法模型3。
预训练算法预测阶段6主要分为:
⽔尺原图采集与预处理,基于摄像头获取⽔尺图像,对其中⼤⼩进⾏调整以满⾜算法模型输⼊要求;
⽔尺对象识别及刻度推理,将预处理好的⽔尺图像输⼊到预训练的⽔尺对象检测模型31中、检测出图像中的⽔尺位置,基于预测的⽔尺位置截取出原图中的⽔尺图像,然后将⽔尺图像输⼊到⽔尺刻度识别⽹络模型32中、输出⽔尺图像中出现的数字和刻度的统计数据。
上⼀步中得到数字统计数据可能存在误差,由此本步骤根据上述的误差校正算法5对⽔尺中数字分布规律可能的误差进⾏校正。标准⽔尺中数字0⾄9的出现具有以下规律:每⼀段⽔尺,长度1⽶,数字分布由最低端到顶端为0到9,如图3中左侧数字。根据以上数字分布规律,可以设计出数字统计误差的校正算法:某⼀个数字的数量出现错误时,只要其相邻的两个数字的数量正确,那么可以根据其相邻的两个数字数量将该出错的数字数量校正过来。
例如,参照图3中左侧⽔尺中数字3的个数错误(错误数为2),但是其相邻的数字2和4的个数都是正确的
(个数都为1),那么算法将数字3的个数校正为1,如图3右侧所⽰。如果错误出现在9这样的末端数字时,则算法失效,但是这样的概率是很低的。例如,如果数字的识别正确率为98%(最终算法可以轻易实现该准确率),则出现9错误的概率为0.002,所以对模型最终的精度影响应该是很⼩的。
最后根据校正的⽔尺信息计算出⽔⾯上的⽔尺长度,再依据预先输⼊的安装⽔尺长度计算出⽔⾯下的⽔尺长度,从⽽得出⽔位数据。
中国十大地板品牌值得说明的是,如前所述,⽔尺对象检测模块21和⽔尺刻度识别模块22均使⽤了深度学习算法,下⾯分别对两个模块使⽤的深度学习⽹络框架进⾏阐述。
⼀、⽔尺对象检测模块21的深度学习⽹络框架使⽤的是最新对象检测算法YOLO(v3),相⽐其他对象检测算法的优势有:识别速度快,本⽅法使⽤的是YOLO(v3)的105层模型版本,即使是这么深的模型,该算法仍然可以达到51帧每秒的识别速度,这完全可以满⾜⽔尺检测对实时性的要求;
核能识别精度⾼,YOLO(v3)的105层模型版本在COCO数据集的测试数据集上可以达到33mAP,在只识别⽔尺(单⼀类别)的应⽤中,这样的精度完全可以更⾼。图4所⽰是YOLO(v3)的⽹络结构图,模型的⾻⼲⽹络是被称为darknet-53的特征提取⽹络,顾名思义,它有53个卷积层,从图中可以看出,⽹络中使⽤了⼤量的残差模块。YOLO算法从三个不同的尺⼨预测对象box,这三个不同的尺⼨来⾃不同层级的卷积层的输出。
由于卷积层每隔⼏层,特征映射(feature mapping)的宽和⾼就会减少,⽽通道数会增加,随着⽹络层次的加深,特征映射组成的形状类似于⾦字塔,如果将不同层级的特征映射转换为最终的输出,那么将有助于提升模型在对象不同尺度⼤⼩上的表现,即可以提⾼模型从⼩⽬标到⼤⽬标的综合检测能⼒。
从图4中我们可以明显看出该⽹络结构有以下⼏个特点:
1、从⽹络的不同层次映射不同尺⼨的输出,如图中从79层(外加两个卷积层)得到13*13的的输出,从91层(外加两个卷积层)得到26*26的输出;最后再得到52*52的输出;
2、后⾯的⾼层结合使⽤低层特征(图中的86、98层,分别使⽤了61层和36层的特征映射),使⾼层能使⽤细粒度(fine grained)特征和更多的语义信息;
3、最后⼀个尺⼨输出使⽤了前两个尺⼨计算的特征映射,使得最后的尺⼨输出也能使⽤细粒度。
⼯作原理:在推理未知图⽚中⽔尺位置时,需要针对⽹络的设计预先将图⽚的输⼊尺⼨调整为416*416,然后通过darknet-53的基础⽹络提取图⽚中⽔尺的特征映射,随后将特征映射输⼊到负责预测不同尺⼨的对象检测卷积层,对象检测卷积层对原始的特征映射再计算不同层特征之间的关系后通过输出层(图中layer82,layer94和layer106c层)的⾮线性回归预测⽔尺在图中的box,并通过逻辑回归预测⽔尺的类别,最终得到图⽚中是否有⽔尺的可能性和⽔尺出现的位置。
⽔尺刻度识别模块22的深度学习⽹络框架使⽤的是ResNet⽹络结构,选择ResNet的原因有:该⽹络结构简单,易扩展为更深的⽹络;由于残差模块的作⽤,⽹络的训练拟合速度很快;⽹络的拟合能⼒很强,最终模型的精度很⾼。图5为本发明中使⽤的ResNet的具体⽹络结构,由于绝⼤部分⽔尺的形状为瘦⾼类型,所以本发明根据训练数据集中所有⽔尺图⽚尺⼨分别计算出图⽚的平均宽和⾼作为模型输⼊图⽚的尺⼨⼤⼩,即图5中的350和100分别为输⼊的⾼和宽。flatten操作之前的都是结合使⽤残差模块的全卷积层,总共使⽤了4组不同尺⼨的残差模块,每组包含5个残差单元,这些全卷积层主要⽤来提取⽔尺中每个数字和最⼩刻度的特征,所有卷积层均使⽤ReLU激活函数。flatten之后为两个全连接层,layer42使⽤ReLU激活函数,因为最终输出的数字和刻度数量问题是⼀个回归问题,所以layer43使⽤线性激活函数。由于最终要输出0到9和最⼩刻度的数量,所以输出层(layer43)的输出⼤⼩为11,即为各个数字和刻度的数量。
以上所述仅是本发明的⽰范性实施⽅式,⽽⾮⽤于限制本发明的保护范围,本发明的保护范围由所附的权利要求确定。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。