基于图像处理和元编程技术的汽车仪表指针零位自动矫正装置及方法
【专利摘要】基于图像处理和元编程技术的汽车仪表指针零位自动矫正装置及方法,属于汽车仪表指针零位矫正【技术领域】。本发明为了解决现有汽车仪表指针的零位采取人工方式进行矫正,精度低并且易造成零点位置失准的问题。装置包括视觉检测模块、工业相机和程序烧写器;方法从汽车仪表的内部程序入手,针对仪表的不同情况对仪表初始化程序做不同修改,考虑到速度、指针角度与电机转角所对应的程序参数均为线性对应,只更改零位的电机转数,令汽车启动后,指针准确地指向零位,由于每个仪表的零位偏差参数不同,所以需要先进行零位检测,再进行矫正。本发明用于汽车仪表指针的自动矫正。
【专利说明】基于图像处理和元编程技术的汽车仪表指针零位自动矫正装置及方法
【技术领域】
[0001]本发明涉及基于图像处理和元编程技术的汽车仪表指针零位自动矫正装置及方法,属于汽车仪表指针零位矫正【技术领域】。
【背景技术】
[0002]汽车仪表在生产时采取流水线作业,机械化、电气化程度较高,只有仪表指针的安装仍然是采取手工作业,由于表针与表针轴为过盈配合,又因为汽车仪表属于精密仪器,对加工精度和质量要求较高,手工作业的方法在精度和质量上都不尽人意,极其容易出现零点位置失准的情况,所以汽车仪表生产行业急需一种可靠的自动矫正汽车仪表零位的方法。
[0003]指针零位矫正往往需要两个环节:1、检测出零位的位置偏差;2、更改指针的初始位置。在多数工厂中,采用人眼检测零位偏差,然后手工调整指针转角,这种工作方式效率极低并且极容易出现错误,也容易带来其他的不可预知的错误。
[0004]图像处理技术可以提高零位偏差检测的精度和速度,可以极大提高流水线工作流程的效率,相比于人眼检测,得到的数据更加可靠。并且现在的基于图像处理的指针位置检测技术相对成熟,采用基于图像处理的仪表指针转角识别方法,完全可以达到仪表零位所要求的误差范围。如何基于图像处理技术,实现汽车仪表指针零位的自动矫正,是又一个需要解决的问题。
【发明内容】
[0005]本发明目的是为了解决现有汽车仪表指针的零位采取人工方式进行矫正,精度低并且易造成零点位置失准的问题,提供了一种基于图像处理和元编程技术的汽车仪表指针零位自动矫正装置及方法。
[0006]本发明所述基于图像处理和元编程技术的汽车仪表指针零位自动矫正装置,它包括:
[0007]用于控制汽车仪表系统初始化、控制工业相机进行图像采集,对工业相机采集的仪表灰度图像进行处理获得仪表指针零位偏差值;定义电机模块的零位偏差值获取接口、以宏定义的形式声明电机模块欲调整的参数,并将零位偏差值与欲调整的参数写入电机模块的独立头文件中,预设定电机模块的缺省值,在线将时时获取的零位偏差值以宏定义形式写入电机模块头文件中,以更新电机模块的视觉检测模块;
[0008]用于对汽车仪表系统的仪表指针图像进行拍照获取仪表灰度图像的工业相机;
[0009]用于将更新后的电机模块烧写到汽车仪表系统的电机控制芯片中的程序烧写器。
[0010]对工业相机采集的仪表灰度图像进行处理获得仪表指针零位偏差值为采用图像处理模块实现,它包括:
[0011]用于对仪表灰度图像进行图像预处理,再进行二值化处理获得待识别仪表灰度图像的预处理模块;
[0012]用于对待识别仪表灰度图像进行表盘刻度信息提取获得仪表盘图像,再对仪表盘图像进行Hough圆变换,最后确定仪表盘圆心的图像处理模块;
[0013]用于根据仪表盘圆心对待识别仪表灰度图像进行极坐标变换获得极坐标图像的极坐标变换模块;极坐标图像的X轴对应仪表盘的圆半径,y轴对应指针旋转角度;
[0014]用于根据极坐标图像的刻度部分建立刻度序列的模块;
[0015]用于根据极坐标图像上的指针,获取指针的直线参数方程的方程模块;
[0016]用于根据刻度序列和直线参数方程获取指针指向的刻度值,再与零刻度相减获得零位偏差值的偏差计算模块。
[0017]基于图像处理和元编程技术的汽车仪表指针零位自动矫正方法,它包括:
[0018]用于通过视觉检测模块控制汽车仪表系统初始化、控制工业相机进行图像采集,对工业相机采集的仪表灰度图像进行处理获得仪表指针零位偏差值;定义电机模块的零位偏差值获取接口、以宏定义的形式声明电机模块欲调整的参数,并将零位偏差值与欲调整的参数写入电机模块的独立头文件中,预设定电机模块的缺省值,在线将时时获取的零位偏差值以宏定义形式写入电机模块头文件中,以更新电机模块的步骤;
[0019]用于采用工业相机对汽车仪表系统的仪表指针图像进行拍照获取仪表灰度图像的步骤;
[0020]用于将更新后的电机模块通过程序烧写器烧写到汽车仪表系统的电机控制芯片中的步骤。
[0021]对工业相机采集的仪表灰度图像进行处理获得仪表指针零位偏差值为通过图像处理步骤实现,它包括:
[0022]用于对仪表灰度图像进行图像预处理,再进行二值化处理获得待识别仪表灰度图像的预处理步骤;
[0023]用于对待识别仪表灰度图像进行表盘刻度信息提取获得仪表盘图像,再对仪表盘图像进行Hough圆变换,最后确定仪表盘圆心的步骤;
[0024]用于根据仪表盘圆心对待识别仪表灰度图像进行极坐标变换获得极坐标图像的步骤;极坐标图像的X轴对应仪表盘的圆半径,y轴对应指针旋转角度;
[0025]用于根据极坐标图像的刻度部分建立刻度序列的步骤;
[0026]用于根据极坐标图像上的指针,获取指针的直线参数方程的步骤;
[0027]用于根据刻度序列和直线参数方程获取指针指向的刻度值,再与零刻度相减获得零位偏差值的步骤。
[0028]本发明的优点:本发明装置及方法考虑到汽车启动时,仪表指针会全部复位,若指针零位失准,则在此时会看到明显偏差。所以从汽车仪表的内部程序入手,针对仪表的不同情况对仪表初始化程序做不同修改。考虑到速度、指针角度与电机转角所对应的程序参数均为线性对应,所以只需要更改零位的电机转数即可成功,这样可令汽车启动后,指针准确地指向零位。由于每个仪表的零位偏差参数不同,所以需要先进行零位检测,再进行矫正。本发明采用元编程技术为汽车仪表电机模块程序编写代码,极大的提高了工作效率,并且出错率极低。
[0029]本发明结合图像处理技术和元编程技术来处理仪表零位失准情况,自动化程度高,只需要工人放置好仪表后点击少数按钮既可以完成整个工作,极大的提高了整个流水线的工作效率,并且极大的提高了矫正结果的准确性。
[0030]采用元编程技术对电机模块代码进行编写,代码编写速度极快,并且出错率极低,只要在元程序处修改目标代码编写格式,就可以任意修改电机模块程序的任意部分代码,在批量生产中有着极高的工作效率。
[0031]本发明可应用于各种汽车仪表的零位矫正,只需在目标代码编写处根据不同电机的驱动方式编写不同的目标代码即可,扩展性好,易于修改。
【专利附图】
【附图说明】
[0032]图1是本发明装置及方法的流程框图;
[0033]图2是本发明装置及方法的工作流程图。
【具体实施方式】
[0034]【具体实施方式】一:下面结合图1及图2说明本实施方式,本实施方式所述基于图像处理和元编程技术的汽车仪表指针零位自动矫正装置,它包括:
[0035]用于控制汽车仪表系统初始化、控制工业相机进行图像采集,对工业相机采集的仪表灰度图像进行处理获得仪表指针零位偏差值;定义电机模块的零位偏差值获取接口、以宏定义的形式声明电机模块欲调整的参数,并将零位偏差值与欲调整的参数写入电机模块的独立头文件中,预设定电机模块的缺省值,在线将时时获取的零位偏差值以宏定义形式写入电机模块头文件中,以更新电机模块的视觉检测模块;
[0036]用于对汽车仪表系统的仪表指针图像进行拍照获取仪表灰度图像的工业相机;
[0037]用于将更新后的电机模块烧写到汽车仪表系统的电机控制芯片中的程序烧写器。
[0038]本实施方式中,视觉检测模块、工业相机与汽车仪表系统构成零位检测子系统,该子系统完成工业相机的控制、仪表的控制、图像的采集和处理、编写汽车仪表电机模块程序所需的相应代码,其中视觉检测模块即为元程序。
[0039]程序烧写器与汽车仪表系统组成程序烧写子系统,电机控制芯片的相应参数代码由元程序生成,程序烧写子系统的工作由零位检测子系统控制。
[0040]视觉检测模块中,电机模块的缺省值代表电机控制芯片的程序不需要进行调整时的相应参数。视觉检测模块给汽车仪表系统发出启动命令,令其启动仪表并进行初始化,让指针指向零位,再给工业相机发出拍照命令,采集到一幅仪表灰度图像;将零位偏差值以宏定义形式写入所述的头文件中后,释放视觉检测模块对汽车仪表系统的控制,并发送烧写命令给程序烧写器,至此工作由零位检测子系统转入程序烧写子系统;
[0041]程序烧写器接到来自零位检测子系统的命令后,将新的电机模块程序烧写到电机控制芯片中,待烧写完毕后发送结束信号给视觉检测模块,并释放程序烧写器对仪表系统的控制,至此工作由程序烧写子系统转入零位检测子系统;
[0042]视觉检测模块接到来自程序烧写子系统的信号后,重复上述矫正过程,直到零位偏差在允许误差范围内结束所有工作。
[0043]【具体实施方式】二:下面结合图1说明本实施方式,本实施方式对实施方式一作进一步说明,本实施方式中对工业相机采集的仪表灰度图像进行处理获得仪表指针零位偏差值为采用图像处理模块实现,它包括:
[0044]用于对仪表灰度图像进行图像预处理,再进行二值化处理获得待识别仪表灰度图像的预处理模块;
[0045]用于对待识别仪表灰度图像进行表盘刻度信息提取获得仪表盘图像,再对仪表盘图像进行Hough圆变换,最后确定仪表盘圆心的图像处理模块;
[0046]用于根据仪表盘圆心对待识别仪表灰度图像进行极坐标变换获得极坐标图像的极坐标变换模块;极坐标图像的X轴对应仪表盘的圆半径,Y轴对应指针旋转角度;
[0047]用于根据极坐标图像的刻度部分建立刻度序列的模块;
[0048]用于根据极坐标图像上的指针,获取指针的直线参数方程的方程模块;
[0049]用于根据刻度序列和直线参数方程获取指针指向的刻度值,再与零刻度相减获得零位偏差值的偏差计算模块。
[0050]【具体实施方式】三:下面结合图1及图2说明本实施方式,本实施方式所述基于图像处理和元编程技术的汽车仪表指针零位自动矫正方法,它包括:
[0051]用于通过视觉检测模块控制汽车仪表系统初始化、控制工业相机进行图像采集,对工业相机采集的仪表灰度图像进行处理获得仪表指针零位偏差值;定义电机模块的零位偏差值获取接口、以宏定义的形式声明电机模块欲调整的参数,并将零位偏差值与欲调整的参数写入电机模块的独立头文件中,预设定电机模块的缺省值,在线将时时获取的零位偏差值以宏定义形式写入电机模块头文件中,以更新电机模块的步骤;
[0052]用于采用工业相机对汽车仪表系统的仪表指针图像进行拍照获取仪表灰度图像的步骤;
[0053]用于将更新后的电机模块通过程序烧写器烧写到汽车仪表系统的电机控制芯片中的步骤。
[0054]本实施方式中,定义电机模块的零位偏差值获取接口 GetZeroOfsO,函数内将矫正参数传入电机模块类的成员变量,并在独立头文件中声明若干宏定义,宏定义的值来自零位检测子系统。
[0055]在工控机上安装Windows操作系统,并打开视觉检测模块,模块通过CAN总线控制仪表启动,并使各指针指向零位,再通过1394卡控制工业相机拍照,从而采集到一幅图像,将其转换为灰度图像。
[0056]对灰度图像进行处理。首先标出感兴趣区域,然后对图像进行阈值化,再采用Canny算子提取轮廓,用3*3的模板对图像进行腐蚀,然后进行连通域查找,获取只含有刻度点图像,对所有刻度中心点进行Hough圆变换以确定表盘圆心。以表盘圆心为中心,对图像进行极坐标变换,得到的图像含有横放的指针和纵向排列的刻度点。对图像进行连通域查找获得刻度点信息和指针部分图像,进而获得刻度点的纵坐标序列,对指针部分图像进行细化后再进行Hough直线变换,得到直线方程。利用直线方程和刻度序列获取直线指向的刻度值,再与零刻度相减获得零位偏差,实验中得到的结果为+0.153,单位为刻度。
[0057]将零位偏差代入所述头文件中相应位置,输出至文件中。然后关闭仪表,并启动程序烧写器,准备将新的仪表程序烧入仪表的电机芯片中。
[0058]程序烧写器中,读入新的仪表程序,然后将程序烧写到仪表中,完成后关闭仪表,并重新运行视觉检测步骤的检测程序,再次重复上述过程,直到零位偏差满足误差范围要求后结束工作。
[0059]【具体实施方式】四:下面结合图1说明本实施方式,本实施方式对实施方式三作进一步说明,本实施方式中对工业相机采集的仪表灰度图像进行处理获得仪表指针零位偏差值为通过图像处理步骤实现,它包括:
[0060]用于对仪表灰度图像进行图像预处理,再进行二值化处理获得待识别仪表灰度图像的预处理步骤;
[0061]用于对待识别仪表灰度图像进行表盘刻度信息提取获得仪表盘图像,再对仪表盘图像进行Hough圆变换,最后确定仪表盘圆心的步骤;
[0062]用于根据仪表盘圆心对待识别仪表灰度图像进行极坐标变换获得极坐标图像的步骤;极坐标图像的X轴对应仪表盘的圆半径,y轴对应指针旋转角度;
[0063]用于根据极坐标图像的刻度部分建立刻度序列的步骤;
[0064]用于根据极坐标图像上的指针,获取指针的直线参数方程的步骤;
[0065]用于根据刻度序列和直线参数方程获取指针指向的刻度值,再与零刻度相减获得零位偏差值的步骤。
【权利要求】
1.一种基于图像处理和元编程技术的汽车仪表指针零位自动矫正装置,其特征在于,它包括: 用于控制汽车仪表系统初始化、控制工业相机进行图像采集,对工业相机采集的仪表灰度图像进行处理获得仪表指针零位偏差值;定义电机模块的零位偏差值获取接口、以宏定义的形式声明电机模块欲调整的参数,并将零位偏差值与欲调整的参数写入电机模块的独立头文件中,预设定电机模块的缺省值,在线将时时获取的零位偏差值以宏定义形式写入电机模块头文件中,以更新电机模块的视觉检测模块; 用于对汽车仪表系统的仪表指针图像进行拍照获取仪表灰度图像的工业相机; 用于将更新后的电机模块烧写到汽车仪表系统的电机控制芯片中的程序烧写器。
2.根据权利要求1所述的基于图像处理和元编程技术的汽车仪表指针零位自动矫正装置,其特征在于,对工业相机采集的仪表灰度图像进行处理获得仪表指针零位偏差值为采用图像处理模块实现,它包括: 用于对仪表灰度图像进行图像预处理,再进行二值化处理获得待识别仪表灰度图像的预处理模块; 用于对待识别仪表灰度图像进行表盘刻度信息提取获得仪表盘图像,再对仪表盘图像进行Hough圆变换,最后确定仪表盘圆心的图像处理模块; 用于根据仪表盘圆心对待识别仪表灰度图像进行极坐标变换获得极坐标图像的极坐标变换模块;极坐标图像的χ轴对应仪表盘的圆半径,y轴对应指针旋转角度; 用于根据极坐标图像的刻度部分建立刻度序列的模块; 用于根据极坐标图像上的指针,获取指针的直线参数方程的方程模块; 用于根据刻度序列和直线参数方程获取指针指向的刻度值,再与零刻度相减获得零位偏差值的偏差计算模块。
3.一种基于图像处理和元编程技术的汽车仪表指针零位自动矫正方法,其特征在于,它包括: 用于通过视觉检测模块控制汽车仪表系统初始化、控制工业相机进行图像采集,对工业相机采集的仪表灰度图像进行处理获得仪表指针零位偏差值;定义电机模块的零位偏差值获取接口、以宏定义的形式声明电机模块欲调整的参数,并将零位偏差值与欲调整的参数写入电机模块的独立头文件中,预设定电机模块的缺省值,在线将时时获取的零位偏差值以宏定义形式写入电机模块头文件中,以更新电机模块的步骤; 用于采用工业相机对汽车仪表系统的仪表指针图像进行拍照获取仪表灰度图像的步骤; 用于将更新后的电机模块通过程序烧写器烧写到汽车仪表系统的电机控制芯片中的步骤。
4.根据权利要求3所述的基于图像处理和元编程技术的汽车仪表指针零位自动矫正方法,其特征在于,对工业相机采集的仪表灰度图像进行处理获得仪表指针零位偏差值为通过图像处理步骤实现,它包括: 用于对仪表灰度图像进行图像预处理,再进行二值化处理获得待识别仪表灰度图像的预处理步骤; 用于对待识别仪表灰度图像进行表盘刻度信息提取获得仪表盘图像,再对仪表盘图像进行Hough圆变换,最后确定仪表盘圆心的步骤; 用于根据仪表盘圆心对待识别仪表灰度图像进行极坐标变换获得极坐标图像的步骤;极坐标图像的χ轴对应仪表盘的圆半径,y轴对应指针旋转角度; 用于根据极坐标图像的刻度部分建立刻度序列的步骤; 用于根据极坐标图像上的指针,获取指针的直线参数方程的步骤; 用于根据刻度序列和直线参数方程获取指针指向的刻度值,再与零刻度相减获得零位偏差值的步骤 。
【文档编号】G01D18/00GK104019843SQ201410267678
【公开日】2014年9月3日 申请日期:2014年6月16日 优先权日:2014年6月16日
【发明者】高会军, 李竹奇, 于金泳, 肖峰, 李博伦, 由嘉 申请人:哈尔滨工业大学