1.本发明属于光电探测领域,尤其涉及一种mems镜扫描畸变自适应矫正的方法、装置、系统及存储介质。
背景技术:2.mems(micro-electro-mechanical system,微机电系统)是利用微加工工艺和集成电路(ic)工艺把微传感器、微执行器和微控制电路集成到一块或者多块芯片上的微型系统。mems从20世纪50年代发展至今,因其微型化、智能化、集成化等众多优点,已经被广泛应用到军民领域,为社会的发展进步做出了贡献。mems扫描镜与传统光学扫描镜相比,具有尺寸小、成本低、扫描频率高、响应速度快和功耗低等优点,已经在条形扫描、光通信、激光投影显示、内窥镜等领域得到广泛应用。由于其快速,尺寸小的特点,mems扫描镜在扫描式激光雷达领域也具备很好的应用前景。
3.对mems镜激光雷达而言,通过控制双轴mems镜的偏转,对目标表面深度信息进行数据采集,所成距离像可实现较高的成像分辨率。但在实际应用的过程中,在扫描光束离轴入射的情况下,不加调制地控制双轴mems镜进行行列式扫描会使扫描区域具有明显的畸变,畸变是由离轴光束从扫描镜到扫描平面的轨迹变化引起的。传统的畸变矫正方法是使用光学元件对出射光路进行矫正,但光束在光学元件中传播会导致能量的损失,使得激光雷达的最大探测距离减小。
技术实现要素:4.为解决上述技术问题,本技术的实施例提供了一种mems镜扫描畸变自适应矫正的方法、装置、系统及存储介质。
5.本技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本技术的实践而习得。
6.本发明的目的是通过下述技术方案实现的:
7.本发明公开的一种mems镜扫描畸变自适应矫正的方法,包括:
8.根据预先加载的行列式扫描参数控制mems镜对待采集平面进行行列式扫描;其中,所述mems镜在进行行列式扫描时会向所述待采集平面投射激光点;
9.根据投射在所述待采集平面的激光点,采集所述mems镜进行行列式扫描的扫描路径;其中,所述扫描路径由多个激光点构成;
10.为所述扫描路径建立直角坐标系;
11.根据所述扫描路径中各激光点在所述直角坐标系中的坐标数据计算所述扫描路径在水平方向的水平畸变量和垂直方向的垂直畸变量;
12.基于所述水平畸变量与所述垂直畸变量对所述mems镜的行列式扫描参数进行矫正处理,以使所述mems镜基于矫正处理后的行列式扫描参数对所述待采集平面进行行列式扫描。
13.进一步地,所述根据预先加载的行列式扫描参数控制mems镜对待采集平面进行行列式扫描,包括:
14.读取预先加载的行列式扫描参数中多个扫描点;其中,一个扫描点对应一个水平扫描角和一个俯仰扫描角;
15.将多个扫描点转换为对应电压值,以通过所述电压值驱使所述mems镜对待采集平面进行行列式扫描。
16.进一步地,所述根据投射在所述待采集平面的激光点,采集所述mems镜进行行列式扫描的扫描路径,包括:
17.根据所述mems镜进行行列式扫描的频率对所述待采集平面进行拍摄,得到多帧图像;其中,每帧图像的获取频率与所述mems镜进行行列式扫描的频率相同,且每帧图像上对应有所述mems镜投射在所述待采集平面上的激光点;
18.对所述多帧图像进行二值化处理,提取所述多帧图像中的激光点;
19.将提取得到的激光点按照所述mems镜进行行列式扫描的路径进行排布,得到所述扫描路径。
20.进一步地,所述根据所述扫描路径中各激光点在所述直角坐标系中的坐标数据计算所述扫描路径在水平方向的水平畸变量和垂直方向的垂直畸变量,包括:
21.提取所述扫描路径的激光点在同一行中第一坐标数据,并提取所述扫描路径的激光点在同一列中第二坐标数据;
22.根据所述第一坐标数据中的纵坐标计算垂直方向的垂直畸变量;
23.根据所述第二坐标数据中的横坐标计算水平方向的水平畸变量。
24.进一步地,所述基于所述水平畸变量与所述垂直畸变量对所述mems镜的行列式扫描参数进行矫正处理,以使所述mems镜基于矫正处理后的行列式扫描参数对所述待采集平面进行行列式扫描,包括:
25.基于所述垂直方向的垂直畸变量对所述行列式扫描参数中的俯仰扫描角进行矫正,得到矫正后的俯仰扫描角;
26.基于所述水平方向的水平畸变量对所述行列式扫描参数中的水平扫描角进行矫正,得到矫正后的水平扫描角;
27.基于所述矫正后的俯仰扫描角与所述矫正后的水平扫描角控制所述mems镜对待采集平面进行行列式扫描。
28.进一步地,通过以下公式计算矫正后的俯仰扫描角:
[0029][0030]
其中,β
′a为所述行列式扫描参数中扫描点a矫正后的俯仰扫描角,αa为所述行列式扫描参数中扫描点a的水平扫描角,α
max
为所述行列式扫描参数中数值最大的水平扫描角,βa为所述行列式扫描参数中扫描点a的俯仰扫描角,βa为所述行列式扫描参数中扫描点a的俯仰扫描角,y2为第一坐标数据的纵坐标,y1为第一坐标数据的另一个纵坐标;其中,y2所在的激光点与y1所在的激光点在所述扫描路径的同一行中。
[0031]
进一步地,通过以下公式计算矫正后的水平扫描角:
[0032][0033]
其中,α
′b为所述行列式扫描参数中扫描点b矫正后的水平扫描角,αb为所述行列式扫描参数中扫描点b的水平扫描角,βb为所述行列式扫描参数中扫描点b的俯仰扫描角,β
max
为所述行列式扫描参数中数值最大的俯仰扫,x3为第二坐标数据的一个横坐标,x4为第二坐标数据的另一个横坐标,其中,x3所在的激光点与x4所在的激光点在所述扫描路径的同一列中。
[0034]
本发明还公开一种mems镜扫描畸变自适应矫正的装置,包括:
[0035]
初始行列式扫描模块,配置为根据预先加载的行列式扫描参数控制mems镜对待采集平面进行行列式扫描;其中,所述mems镜在进行行列式扫描时会向所述待采集平面投射激光点;
[0036]
扫描路径获取模块,配置为根据投射在所述待采集平面的激光点,采集所述mems镜进行行列式扫描的扫描路径;其中,所述扫描路径由多个激光点构成;
[0037]
直角坐标系建立模块,配置为为所述扫描路径建立直角坐标系;
[0038]
畸变量获取模块,配置为根据所述扫描路径中各激光点在所述直角坐标系中的坐标数据计算所述扫描路径在水平方向的水平畸变量和垂直方向的垂直畸变量;
[0039]
矫正行列式扫描模块,配置为基于所述水平畸变量与所述垂直畸变量对所述mems镜的行列式扫描参数进行矫正处理,以使所述mems镜基于矫正处理后的行列式扫描参数对所述待采集平面进行行列式扫描。
[0040]
本发明还公开一种mems镜扫描畸变自适应矫正的系统,包括:
[0041]
存储器,用于存储计算机程序;
[0042]
处理器,用于执行所述计算机程序以实现如上所述的方法。
[0043]
本发明还公开一种可读存储介质,所述可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的方法
[0044]
有益效果:
[0045]
本发明公开的一种mems镜扫描畸变自适应矫正的方法,对离轴入射mems镜扫描系统的扫描视场畸变进行矫正,而且对不同扫描视场,不同入射角度,不同电压响应的mems镜能自适应地调整矫正量,实现高效率,无能量损耗的mems镜扫描视场畸变矫正。
附图说明
[0046]
图1为本发明实施例运行过程所需硬件结构示意图
[0047]
图2为本发明一种mems镜扫描畸变自适应矫正的方法的运行流程图;
[0048]
图3为本发明实施例中提取mems镜扫描轨迹图;
[0049]
图4位本发明实施例中示出的扫描路径结果图;
[0050]
图5为本发明实施例中使用矫正后的俯仰扫描角进行行列式扫描的扫描视场图;
[0051]
图6为本发明实施例中使用矫正后的水平扫描角进行行列式扫描的扫描视场图;
[0052]
图7为本发明实施例中基于矫正后的行列式扫描参数进行行列式扫描得到扫描视场图;
[0053]
图8本发明一种mems镜扫描畸变自适应矫正的装置的结构示意图;
[0054]
图1中,1—fpga开发板、2—激光器驱动装置、3—激光器、4—mems镜驱动装置、5—mems镜、6—反射板、7—摄像头、8—上位机。
具体实施方式
[0055]
下面将结合附图和实施例对本发明加以详细说明。同时也叙述了本发明技术方案解决的技术问题及有益效果,需要指出的是,所描述的实施例仅旨在便于对本发明的理解,而对其不起任何限定作用。
[0056]
为了进一步解释本发明,下面结合图1所示的硬件结构示意图作进一步说明。
[0057]
如图1所示,本实施例中运行过程所需硬件结构包括:fpga开发板1、激光器驱动装置2、激光器3、mems镜驱动装置4、mems镜5、反射板6、摄像头7、上位机8;其中摄像头7可以为ccd(charge coupled device,电荷耦合器件)等可通过电机驱动的相机,反射板6即为待采集平面,图1中为利于mems镜扫描畸变自适应矫正的方法后续扫描路径的采集,可采用白色高反射度平面板进行实验。
[0058]
本实施例中的mems镜扫描畸变自适应矫正的方法基于图1中的硬件结构完成,图1中整个硬件结构工作流程为:fpga开发板1发送起始信号到激光器驱动装置2,驱动激光器3发射激光到mems镜5上,mems镜5反射激光到反射板6;同时,fpga开发板1加载预设电压,输出不同的电平到mems镜驱动装置4,将数字电平转换为模拟电压,驱动mems镜5进行偏转,使用行列式扫描对反射板6进行扫描。摄像头7采集扫描轨迹图像,并将数据传输到上位机8中,上位机8基于采集的数据计算畸变,并对行列式扫描数据进行矫正,将矫正畸变后的角度值回传到fpga1。fpga1按新的角度值输出数字电平到mems镜驱动装置4,驱动mems镜5实现无畸变扫描。
[0059]
基于图1中的硬件结构,图2为本实施例的一种mems镜扫描畸变自适应矫正的方法的运行流程图,其具体实现步骤如下:
[0060]
步骤s201:根据预先加载的行列式扫描参数控制mems镜对待采集平面进行行列式扫描。
[0061]
本实施例中,通过图1中的fpga加载行列式扫描参数,该行列式扫描参数包括行列式扫描的行数m、列数n,存在m*n个扫描点,水平方向的扫描视场
±
α
max
,垂直方向的扫描视场
±
β
max
,由这些参数可生成一组水平扫描角(α1,α2,
…
,αm)和一组俯仰扫描角(β1,β2,
…
,βn)两组角度值存入rom(read-only memory,只读存储器)中,每个扫描点对应一个水平扫描角和一个俯仰扫描角,fpga读出角度值,转换为电压值驱动mems镜进行行列式扫描。
[0062]
如图3所示,图3为一示例性实施例中mems镜进行行列式扫描的扫描轨迹图,图3中每个点为一个扫描点,行列式扫描起点为mems扫描镜向右向上的最大偏转角处,并开始行列式扫描,mems镜的转动角度由轴上的正通道和负通道之间的电压差决定:如对图3中的扫描轨迹图构建直角坐标系,随着x轴上的电压差逐渐增加,mems扫描镜水平向左逐渐偏转;随着y轴上的电压差逐渐增加,mems扫描镜垂直向下逐渐偏转。
[0063]
同时,mems镜在进行行列式扫描的过程中,激光器发射激光到mems镜上,mems镜会反射激光到待采集平面,mems镜在进行行列式扫描的同时会向待采集平面投射激光点,基于行列式扫描的特性,投射在待采集平面的激光点应与mems镜在进行行列式扫描的扫描轨迹图重叠。
[0064]
步骤s202:根据投射在待采集平面的激光点,采集mems镜进行行列式扫描的扫描路径。
[0065]
本实施例中的扫描路径由多个激光点构成。
[0066]
具体地,使用摄像机对待采集平面的扫描轨迹进行采集,摄像机的拍摄采用延时模式,采集一帧图像的时间与mems镜扫描一次视场的时间相同,即每帧图像的获取频率与mems镜进行行列式扫描的频率相同,且每帧图像上对应有mems镜投射在待采集平面上的激光点,对扫描光点的扫描轨迹进行完整的采集,得到完整的扫描视场。
[0067]
在采集到多帧图像后,可将图像发送至上位机,上位机接收图像后对图像进行二值化处理,分离出扫描轨迹图像和扫描背景,扫描轨迹图像即图像中的激光点,扫描背景即图像中出激光点外的其他部分,然后将分离出的多帧扫描轨迹图像按照mems镜进行行列式扫描的扫描轨迹进行排布,即将分离出的激光点排布在同一平面上,即可得到扫描路径,也即mems镜的扫描轨迹,如图4即为一实施例中得到的扫描路径图。
[0068]
步骤s203:为扫描路径建立直角坐标系。
[0069]
本实施例中,对在一平面的扫描路径建立直角坐标系,如图4,可将扫描路径的中心点作为原点,构建直角坐标系,但在其他实施例中,还可以扫描路径所在平面的任一点为原点,构建直角坐标系,在构建直角坐标系以后,扫描路径中的所有激光点,均会被分配其对应的坐标数据。
[0070]
步骤s204:根据扫描路径中各激光点在直角坐标系中的坐标数据计算扫描路径在水平方向的水平畸变量和垂直方向的垂直畸变量。
[0071]
提取扫描路径的激光点在同一行中第一坐标数据,并提取扫描路径的激光点在同一列中第二坐标数据;根据第一坐标数据中的纵坐标计算垂直方向的垂直畸变量;根据第二坐标数据中的横坐标计算水平方向的水平畸变量。
[0072]
具体地,对于直角坐标系下的扫描路径,对于同一行的激光点而言,如是没有发生畸变的扫描,所有的激光点应在同一水平线,即同一行的激光点在直角坐标系中的纵坐标相同;对于同一列的激光点而言,如是没有发生畸变的扫描,同一列的激光点在直角坐标系中的横坐标相同,以此,可基于同一行/同一列中激光点的坐标数据计算垂直方向的垂直畸变量/水平方向的水平畸变量。
[0073]
在一具体实施例中,以扫描路径第一行和第一列的激光点为例,第一行中存在两个激光点的第一坐标数据为(x1,y1)、(x2,y2),则可以说垂直方向的垂直畸变量即为y
2-y1或其中,y2的绝对值需大于y1的绝对值;而第一列中存在两个激光点的第二坐标数据为(x3,y3)、(x4,y4),则可以说垂直方向的垂直畸变量即为y
4-y3或其中,y4的绝对值需大于y3的绝对值。如此,即可以垂直方向的垂直畸变量/水平方向的水平畸变量对扫描路径进行矫正。
[0074]
当然,在计算垂直畸变量/水平畸变量时,可不以第一行/第一列的数据进行计算,而是通过比较每一行/每一列的第一坐标数据/第二坐标数据,最后得到最终的垂直畸变量/水平方向的水平畸变量。
[0075]
当然,基于述mems镜扫描的轨迹图,如参考图4所示的俯仰扫描角不变时,扫描轨
迹为斜率为负;水平扫描角不变时,实际上扫描轨迹为开口向右的二次曲线,则可以扫描路径中第一个激光点m1、与第一个激光点位于同一行且水平扫描角最大的激光点m2(即右上角的激光点)以及与m2在同一列俯仰扫描角最大的m3(x轴上最左点m)作为关键点计算垂直畸变量/水平畸变量。
[0076]
具体地,确定左上角点坐标m1(x1,y1),右上角点m2坐标(x2,y2),x轴上最左点m3坐标(x3,y3),则m1(x1,y1)、m2(x2,y2)即为第一坐标数据,m2(x2,y2)、m3(x3,y3)即为第二坐标数据,以m1与m2的纵坐标计算垂直畸变量,计算出水平扫描角从0
°
到α
max
max的过程中,横坐标的偏移量;以m2与m3的横坐标计算水平畸变量计算出俯仰扫描角从0
°
到β
max
的过程中,横坐标的偏移量。
[0077]
步骤s205:基于水平畸变量与垂直畸变量对mems镜的行列式扫描参数进行矫正处理,以使mems镜基于矫正处理后的行列式扫描参数对待采集平面进行行列式扫描。
[0078]
离轴入射mems镜扫描系统的扫描视场畸变为沿x轴对称,左宽右窄的扇形,可以将扫描视场的畸变分为两个部分:垂直方向的畸变和水平方向的畸变。垂直方向的畸变与mems镜的水平扫描角有关,俯仰扫描角不变时,理想情况下扫描轨迹为一条平行于x轴的直线,实际上扫描轨迹为斜率为负的直线,则可根据第一坐标数据的纵坐标计算从最小水平扫描角到最大水平扫描角的过程中,纵坐标减小的比例,即通过以下公式计算矫正后的俯仰扫描角:
[0079][0080]
其中,β
′a为行列式扫描参数中扫描点a矫正后的俯仰扫描角,αa为行列式扫描参数中扫描点a的水平扫描角,α
max
为行列式扫描参数中数值最大的水平扫描角,βa为行列式扫描参数中扫描点a的俯仰扫描角,βa为行列式扫描参数中扫描点a的俯仰扫描角,y2为第一坐标数据的纵坐标,y1为第一坐标数据的另一个纵坐标;其中,y2所在的激光点与y1所在的激光点在扫描路径的同一行中。
[0081]
当然,若以图4中的m1、m2作为第一坐标数据计算矫正后的俯仰扫描角,上式中的y2与y1为m1、m2的纵坐标。
[0082]
使用矫正后的俯仰扫描角进行行列式扫描的扫描视场图可参考图5,该扫描视场图中每个点即为mems镜的经矫正后扫描点,也可以为通过与扫描频率相同的相机拍摄mems镜反射在待扫描图像上的所有激光点组合而成的扫描路径。
[0083]
水平方向的畸变与mems镜的俯仰扫描角有关,水平扫描角不变时,理想情况下扫描轨迹为一条平行于y轴的直线,实际上扫描轨迹为开口向右的二次曲线。根据点m1的横坐标x1和点m3的横坐标x3可计算出俯仰扫描角从0
°
到β
max
的过程中,横坐标的偏移量,即通过以下公式计算矫正后的水平扫描角:
[0084][0085]
其中,α
′b为行列式扫描参数中扫描点b矫正后的水平扫描角,αb为行列式扫描参数中扫描点b的水平扫描角,βb为行列式扫描参数中扫描点b的俯仰扫描角,β
max
为行列式扫描参数中数值最大的俯仰扫,x3为第二坐标数据的一个横坐标,x4为第二坐标数据的另一个横坐标,其中,x3所在的激光点与x4所在的激光点在扫描路径的同一列中。
[0086]
当然,若以图4中的m2、m3作为第二坐标数据计算矫正后的水平扫描角,上式中的x3与x4分别为m2、m3的横坐标。
[0087]
在图5的基础上,使用矫正后的水平扫描角进行行列式扫描的扫描视场图可参考图6。
[0088]
本实施例中,通过上述方法对行列式扫描参数中的俯仰扫描角进行矫正,得到矫正后的俯仰扫描角;对行列式扫描参数中的水平扫描角进行矫正,生成矫正后的水平扫描角(α
′1,α
′2,
…
,α
′m)和矫正后的垂直扫描角(β
′1,β
′2,
…
,β
′n)两组数据。上位机将两组数据通过串口传输到fpga的rom中,在实现无畸变扫描时,fpga从rom中读取角度值并转换为mems镜的驱动电压。fpga将矫正后扫描电压数据连同地址数据传输到mems镜驱动装置,驱动mems镜实现无畸变扫描,mems镜基于矫正后的行列式扫描参数进行行列式扫描得到扫描视场图如图7所示。
[0089]
本实施例中的mems镜扫描畸变自适应矫正的方法通过图1所示硬件结构图中的fpga开发板1加载存储在rom中的水平扫描角度值和俯仰扫描角度值,开始行列式扫描,同时发送起始信号给图1中的激光器驱动装置2,以通过激光器驱动装置2驱动激光器3发射激光到mems镜5上;mems镜5对反射板6进行行列式扫描的同时,会将激光反射在反射板上,摄像头7采集完整的扫描轨迹图像并传输到上位机8中,上位机8对图像进行处理后提取关键点的坐标数据信息。根据关键点的坐标信息可以计算出扫描视场在水平方向和垂直方向的畸变规律。上位机8将补偿畸变后的水平角度值和俯仰角度值回传到fpga1的rom中,由fpga1生成驱动电压,导入mems镜驱动装置4,完成无畸变扫描。
[0090]
基于上述实施例提出的mems镜扫描畸变自适应矫正的方法,本实施例中提出mems镜扫描畸变自适应矫正的装置,其结构参考图8,具体包括:
[0091]
初始行列式扫描模块810,配置为根据预先加载的行列式扫描参数控制mems镜对待采集平面进行行列式扫描;其中,mems镜在进行行列式扫描时会向待采集平面投射激光点;
[0092]
扫描路径获取模块820,配置为根据投射在待采集平面的激光点,采集mems镜进行行列式扫描的扫描路径;其中,扫描路径由多个激光点构成;
[0093]
直角坐标系建立模块830,配置为为扫描路径建立直角坐标系;
[0094]
畸变量获取模块840,配置为根据扫描路径中各激光点在直角坐标系中的坐标数据计算扫描路径在水平方向的水平畸变量和垂直方向的垂直畸变量;
[0095]
矫正行列式扫描模块850,配置为基于水平畸变量与垂直畸变量对mems镜的行列式扫描参数进行矫正处理,以使mems镜基于矫正处理后的行列式扫描参数对待采集平面进行行列式扫描。
[0096]
本实施例中提出的mems镜扫描畸变自适应矫正的装置与mems镜扫描畸变自适应矫正的方法属于同一技术构思,具体可参考mems镜扫描畸变自适应矫正的方法中的技术方案,此处不再赘述。
[0097]
以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。