CN113554714B - 车载双目立体相机自校正方法及其***、fpga芯片 - Google Patents

车载双目立体相机自校正方法及其***、fpga芯片 Download PDF

Info

Publication number
CN113554714B
CN113554714B CN202110828659.6A CN202110828659A CN113554714B CN 113554714 B CN113554714 B CN 113554714B CN 202110828659 A CN202110828659 A CN 202110828659A CN 113554714 B CN113554714 B CN 113554714B
Authority
CN
China
Prior art keywords
difference
ground
calculating
column
row
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110828659.6A
Other languages
English (en)
Other versions
CN113554714A (zh
Inventor
郑继川
赵利军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yuanxiang Technology Suzhou Co ltd
Original Assignee
Yuanxiang Technology Suzhou Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yuanxiang Technology Suzhou Co ltd filed Critical Yuanxiang Technology Suzhou Co ltd
Priority to CN202110828659.6A priority Critical patent/CN113554714B/zh
Publication of CN113554714A publication Critical patent/CN113554714A/zh
Application granted granted Critical
Publication of CN113554714B publication Critical patent/CN113554714B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • G06T7/85Stereo camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Processing (AREA)

Abstract

本发明公开了一种车载双目立体相机自校正方法及其***、FPGA芯片,其属于机器视觉这一技术领域,其要点在于:S100,判断双目立体相机是否需要自动校正;S200,根据S100的结果,决定是否需要利用地面的平面特性和车道线的宽度信息进行自动校正:当S100判断不需要进行自动,不进行自动校正;当S100判断需要进行自动,进行自动校正。采用本申请的一种车载双目立体相机自校正方法及其***、FPGA芯片,能够方便有效的对车载双目立体相机进行自校正。

Description

车载双目立体相机自校正方法及其***、FPGA芯片
技术领域
本发明涉及机器视觉(计算机视觉)这一技术领域,更具体地说,尤其涉及一种车载双目立体相机自校正方法及其***、FPGA芯片。
背景技术
双目立体相机使用同步的两路摄像头图像,基于精确标定的内外参数,利用三角测量原理计算空间信息。
作为立体视觉解决方案,双目相机已开始广泛应用于各种目标识别与测距场景。随着车载辅助***及无人驾驶***的逐渐普及,由于测距精度高与单目相机方案,双目立体相机在车载领用的价值逐渐体系出来,并逐步在各种车载领域普及起来。
双目相机要保持测距准确,需要标定后的两个单目摄像头的光学参数保持不变,即内参不变,且两个单目的相对位置关系保持不变,即双目相机的外参不变。
在车载环境,工况比较恶略,尤其是汽车在各种颠簸路面行驶时,会对相机形成振动冲击。长期的振动冲击可能会导致双目视差的退化,其中镜头的内参变化是主要原因。双目立体相机一般使用定焦镜头。镜头的主要元件是一组镜片、镜筒和固定及密封结构件。由于镜片、镜筒、结构件等的制造精度和组装工艺等原因,镜片和镜筒之间存在间隙。在剧烈振动冲击环境,镜片相对于镜筒可能会出现位置偏移。这个偏移会导致摄像头内参的变化,最终导致双目立体相机退化。退化体现在两方面,一是视差密度降低,二是测距精度变化。
在相机生产和实验环境,可以通过对双目相机进行再次标定来消除这种退化。再次标定需要精密的标靶如棋盘和相应的环境、设备,且标定过程比较复杂。通常专业的厂商才具备这些设备、环境和标定能力,普通用户基本不可能自己完成再次标定。对于车载双目相机,由于数量庞大,相机退化后客户自身不具备再次标定能力,即使通过4S店进行维护,也是费时费力,且维修时效性不高。
对于双目立体视觉***校正方法而言,发明人检索到了以下文献:
参考文献1:杨景豪等.双目立体视觉测量***的标定[J]光学精密工程,第24卷第2期:300-308.
参考文献2:CN111862235A双目相机自标定方法及***:,包括:1)获取左右原始图像;2)校正左右原始图像;3)从左右校正图像中提取特征点并匹配;4)统计左右图像纵坐标偏差的平均值,若大于对应阈值则修正估计第一参数组,反复迭代修正,直至小于对应阈值;5)找到静态物体及车道线;6)处于移动状态时,追踪静态物体的视差及车轮运动信息;7)得到车轮运动距离与静态物体的三维距离变化值的距离偏差及车道线的宽度偏差,若大于对应阈值则修正估计第二参数组,反复迭代校正,直至小于对应阈值,完成自标定。
然而,上述文献提出的自校正方法仍然有所不足。因此,有必要对双目立体相机的自校正方法进行进一步深入的研究。
发明内容
本发明的目的在于针对上述现有技术的不足,提供一种双目立体相机自校正方法。
本发明的另一目,在于提供一种车载双目立体相机自校正***。
本发明的又一目的,在于提供一种FPGA芯片。
本发明的再一目的,在于提供一种车辆。
一种车载双目立体相机自校正方法,包括以下步骤:
S100,判断双目立体相机是否需要自动校正;
S200,根据S100的结果,决定是否需要利用地面的平面特性和车道线的宽度信息进行自动校正:
当S100判断不需要进行自动,不进行自动校正;
当S100判断需要进行自动,进行自动校正。
一种车载双目立体相机自校正方法,其用于仅发生行差的校正,双目立体相机包括:第一图像采集模块,第二图像采集模块;
包括以下步骤:
S100,从第一图像采集模块、第二图像采集模块分别获得原始图像;
S200,判断双目立体相机是否发生行差、是否需要进行自校正,其包括步骤S201、S202、S203:
S201,设列差为0,行差为0,计算视差密度;
S202,设列差为0,行差为0,计算地面厚度;
S203,基于S201、S202的结果来判断是否存在行差:
当视差密度<阈值ρ且地面厚度>阈值ε,判断需要进行自校正,进入步骤S300;
当视差密度≥阈值ρ或地面厚度≤阈值ε,判断不需要进行自校正,结束步骤;
S300,需要进行自校正时,确定行差
S301,设定行差的区间值ymin,ymax;设定计算次数P;设定步距:dy=(ymax-ymin)/P;初始条件下,计算行差y赋值为ymin
S302,设列差为0,行差为y,计算视差密度;
S303,设列差为0,行差为y,计算地面厚度;
S304,基于S302、S303的结果来判断执行:
当视差密度<阈值ρ且地面厚度>阈值ε,y重新赋值为:y+dy,重复步骤S302~S304;
当视差密度≥阈值ρ或地面厚度≤阈值ε,返回行差y,结束程序;
进一步,计算地面厚度的步骤,包括以下内容:
S-A,根据第一图像采集模块以及第二图像采集模块传来的图像以及行差、列差,获取地面点云集合Cloud,其表达为:
Cloud={(xi,yi,zi)|xi∈R,yi∈R,zi∈R,i=1,2,...,N}
其中,(xi,yi,zi)表达式任意第i个点的三维坐标(x轴大小,y轴大小,z轴大小);N表示点的总量个数,R表示实数。
S-B,基于地面点云集合Cloud,拟合地面所在的平面方程为:
Ax+By+Cz+D=0
A、B、C为相关参数;
S-C,计算非噪声点集Cloudres,包括步骤S-C-1、S-C-2:
S-C-1,从地面点云集合Cloud寻找噪声点集Noise:
首先,计算每一个点到拟合的地面所在的平面的距离,且将上述结果保存到地面点云集合Cloud中所有点到拟合平面的距离集合Distance中:
地面点云集合中的任意一点Pi=(xi,yi,zi)到拟合平面的距离di,其大小为:
Figure GDA0003521522880000031
地面点云集合Cloud中所有点到拟合平面的距离集合记为
Distance={di|di≥0}
然后,计算距离均值
Figure GDA0003521522880000032
Figure GDA0003521522880000033
再次,计算距离方差S:
Figure GDA0003521522880000034
最后,得到噪声点集Noise,噪声点集Noise为:
Figure GDA0003521522880000041
其中,k为设定的倍率系数;
S-C-2,确定非噪声点集Cloudres
Cloudres=Cloud-Noise
S-D,计算非噪声点集Cloudres中的每个点到拟合平面的距离均值
Figure GDA0003521522880000042
即为地面厚度。
一种车载双目立体相机自校正方法,其用于仅发生列差的校正,双目立体相机包括:第一图像采集模块,第二图像采集模块;
包括以下步骤:
S100,从第一图像采集模块、第二图像采集模块分别获得原始图像;
S200,判断双目立体相机是否发生列差、是否需要进行自校正:其包括步骤S201~S203;
S201,先获取当前道路车道线宽度L:当前道路车道线宽度信息可以从地理信息***获取,也能够从单目图像上左右车道线在图像上的宽度判断车道线的宽度;
S202,行差=0,列差=0,然后根据第一图像采集模块、第二图像采集模块、获得的原始图像、行差、列差来计算车道线的宽度L1;
S203,比较L、L1的结果,从而确定是否进行校正:
若|L-L1|<ξ,则相机精度良好,不需要校正,结束程序;
若|L-L1|≥ξ,则相机需要对列差进行校正,转入步骤S300;
其中,ξ表示阈值,根据实际需要设定;
S300,确定列差:
S301,设定列差的区间值xmin,xmax;设定计算次数M,步距:dx=(xmax-xmin)/M;初始条件下,计算列差x赋值为xmin
S302,对计算列差为x进行计算分析:
S3021,先获取当前道路车道线宽度L;
S3022,行差为0,列差为x;然后根据第一图像采集模块、第二图像采集模块、行差、列差、获得的原始图像、计算列差x来计算车道线的宽度L1;
S3023,比较L、L1的结果,进行以下判断:
若|L-L1|<ξ,则返回计算列差x,程序结束;
若|L-L1|≥ξ,则x赋值为x+dx,重复步骤S3022~S3023。
一种车载双目立体相机自校正方法,双目立体相机包括:第一图像采集模块,第二图像采集模块;
包括以下步骤:
S100,从第一图像采集模块、第二图像采集模块分别获得原始图像;
S200,初步判断双目立体相机是否发生行差、是否需要进行自校正,其包括步骤S201、S202、S203:
S201,设列差为0,行差为0,计算视差密度;
S202,设列差为0,行差为0,计算地面厚度;
S203,基于S201、S202的结果来初步判断是否存在行差:
当视差密度<阈值ρ且地面厚度>阈值ε,初步判断需要进行自校正,进入步骤S400;
当视差密度≥阈值ρ或地面厚度≤阈值ε,初步判断不需要进行自校正,进入步骤S300;
步骤S300,初步判断双目立体相机是否发生列差、是否需要进行自校正:其包括步骤S301~S303;
S301,先获取当前道路车道线宽度L:当前道路车道线宽度信息可以从地理信息***获取,也能够从单目图像上左右车道线在图像上的宽度判断车道线的宽度;
S302,行差=0,列差=0,然后根据第一图像采集模块、第二图像采集模块、获得的原始图像、行差、列差来计算车道线的宽度L1;
S303,比较L、L1的结果,从而确定是否进行校正:
若|L-L1|<ξ,则相机精度良好,不需要校正,结束程序;
若|L-L1|≥ξ,则相机需要对列差进行校正,转入步骤S500;
其中,ξ表示阈值,根据实际需要设定;
S400,初步需要进行行差的自校正时,确定行差
S401,设定行差的区间值ymin,ymax;设定计算次数P;设定步距:dy=(ymax-ymin)/P;初始条件下,计算行差y赋值为ymin
S402,设列差为0,行差为y,计算视差密度;
S403,设列差为0,行差为y,计算地面厚度;
S404,基于S402、S403的结果来进行如下判断:
当视差密度<阈值ρ且地面厚度>阈值ε,y重新赋值为:y+dy,重复步骤S402~S404;
当视差密度≥阈值ρ或地面厚度≤阈值ε,返回行差y,进入步骤S300;
S500,确定行差、列差
S501,设定列差的区间值xmin,xmax;设定计算次数M,步距:dx=(xmax-xmin)/M;初始条件下,计算列差x赋值为xmin
S502,寻找计算列差为x下对应的行差y
S5021设定行差的区间值ymin,ymax;设定计算次数P;设定步距:dy=(ymax-ymin)/P;初始条件下,计算行差y赋值为ymin
S5022,设列差为x,行差为y,计算视差密度;
S5023,设列差为x,行差为y,计算地面厚度;
S5024,基于S5022、S45023的结果来进行如下判断:
当视差密度<阈值ρ且地面厚度>阈值ε,y重新赋值为:y+dy,重复步骤S5022~S5024;
当视差密度≥阈值ρ或地面厚度≤阈值ε,返回行差y,进入步骤S503;
S503,判读计算列差x是否正确
S5031,先获取当前道路车道线宽度L:当前道路车道线宽度信息可以从地理信息***获取,也能够从单目图像上左右车道线在图像上的宽度判断车道线的宽度;
S5032,列差为x,行差为y,然后根据第一图像采集模块、第二图像采集模块、获得的原始图像、行差、列差来计算车道线的宽度L1;
S5033,比较L、L1的结果,来进行如下判断:
若|L-L1|<ξ,则返回计算列差x,程序结束;
若|L-L1|≥ξ,则x赋值为x+dx,重复步骤S502~S503。
进一步,步骤S202,S403,S5023中计算地面厚度的步骤,包括以下内容:
S-A,根据第一图像采集模块以及第二图像采集模块传来的图像以及行差、列差,获取地面点云集合Cloud,其表达为:
Cloud={(xi,yi,zi)|xi∈R,yi∈R,zi∈R,i=1,2,...,N}
其中,(xi,yi,zi)表达式任意第i个点的三维坐标(x轴大小,y轴大小,z轴大小);N表示点的总量个数,R表示实数。
S-B,基于地面点云集合Cloud,拟合地面所在的平面方程为:
Ax+By+Cz+D=0
A、B、C为相关参数;
S-C,计算非噪声点集Cloudres,包括步骤S-C-1、S-C-2:
S-C-1,从地面点云集合Cloud寻找噪声点集Noise:
首先,计算每一个点到拟合的地面所在的平面的距离,且将上述结果保存到地面点云集合Cloud中所有点到拟合平面的距离集合Distance中:
地面点云集合中的任意一点Pi=(xi,yi,zi)到拟合平面的距离di,其大小为:
Figure GDA0003521522880000071
地面点云集合Cloud中所有点到拟合平面的距离集合记为
Distance={di|di≥0}
然后,计算距离均值
Figure GDA0003521522880000072
Figure GDA0003521522880000073
再次,计算距离方差S:
Figure GDA0003521522880000074
最后,得到噪声点集Noise,噪声点集Noise为:
Figure GDA0003521522880000075
其中,k为设定的倍率系数;
S-C-2,确定非噪声点集Cloudres
Cloudres=Cloud-Noise
S-D,计算非噪声点集Cloudres中的每个点到拟合平面的距离均值
Figure GDA0003521522880000076
即为地面厚度。
一种FPGA芯片,其集成有能够执行前述的车载双目立体相机自校正方法程序。
一种车载双目立体相机自校正***,包括:双目立体相机以及前述的FPGA芯片,所述FPGA芯片分别读取双目立体相机的两个相机所拍摄的图像。
一种车辆,其安装有前述的车载双目立体相机自校正***。
本申请的有益效果在于:
第一,本申请的基础构思在于:提供一种用户无感的双目立体相机自动校正方法。若双目立体相机出现退化,在用户日常的行车使用过程中,相机会利用地面及车道线等自然物信息进行自动校正,无需用户主动参与标定和校正过程,避免相机出现较大的精度退化,持续保持相机可用性。
第二,本申请的第一个发明方案,提出了“行差的现象与判断方式、校正方法”;
在该方案,需要解决以下几个问题:
2.1首先要确定表征行差现象的参数:发明人经过认真思考,意识到“当行差变化,会导致出现较多的点的匹配置信度低,即视差密度发生变化”,因此,采用“视差”来表征行差现象。同时,发明人还提出了一种新的测量参数:平面厚度。其原理在于:行差在降低视差密度的同时,同一平面内的点的三维坐标也会引入较大噪声。当视差良好时,同一平面内的点的三维坐标也基本在同一平面内。通过平面拟合,可以筛选出到拟合平面距离小于一定方差内的点。然后计算出这些点到拟合平面的距离的均值。这个均值即为平面的厚度,其可体现出行差的大小。
而在平面厚度这个角度上,选取地面是最佳的选择,因为一般地面区域是漫反射,纹理丰富,视差良好。
基于“视差密度”和“平面厚度”两个指标进行判断,提高了检测***的鲁棒性。
2.2在计算平面厚度时,为什么要用非噪声点集?
发明人团队在提出前述2.1节的平面厚度的概念时,自然而然的想到直接采用cloud来计算。然而效果相当差。认真分析原因后,总结如下:如果采用全部点云数据,噪声点可能会导致平面厚度即距离均值严重偏离真实的厚度,而且每帧图像的噪声点不同,这样均值就很不稳定,整个判定过程就不鲁棒。
对此问题,发明人提出了如下方案:
从地面点云集合Cloud寻找噪声点集Noise为:
Figure GDA0003521522880000081
其中,k为设定的倍率系数,k一般取3.0。
即非噪声点集Cloudres
Cloudres=Cloud-Noise
2.3如何寻找行差?
行差的计算上,采用试算法。即先设定好区间以及步距,然后初始值选取最小值,依次进行试算。其核心点,还是在于,试算时,即将行差引入到***中,然后根据新的参数,重新计算视差密度和地面平面厚度,根据视差密度和地面平面厚度两个参数来判断参数是否适宜。
第三,本申请的第二个发明方案,提出了“列差的现象与判断方式、校正方法”。
第四,本申请的另一发明点在于:在考虑“行差、列差”的耦合影响时,提出了“要先进行“行差”的自校定,然后再进行“列差”的自校定,而非相反”的校定顺序:发明人经过多次试验,发现:行差严重时,视差密度很低,不利于进行列差调整(退化严重时顺序不能相反,严重退化会导致车道线检测困难及距离计算困难)。
附图说明
下面结合附图中的实施例对本发明作进一步的详细说明,但并不构成对本发明的任何限制。
图1是左右图立体匹配的示意图。
图2是行差的示意图。
图3是列差的示意图。
图4是实施例一的车载双目立体相机自校正方法的流程图。
具体实施方式
实施例1,一种车载双目立体相机自校正方法,包括以下步骤:
S100,判断双目立体相机是否需要自动校正:利用车道线以及其他地面信息来自动判断双目立体相机是否出现视差退化:通过计算视差密度、平面厚度、车道线间距来判断是否出现视差退化;
S200,利用地面的平面特性和车道线的宽度信息进行自动校正。
<1.行差的现象与判断方式、校正方法>
如图1所示为标定良好的双目立体相机,左右图是行对齐的(即双目立体相机的第一相机的图像、第二相机的图像,这两张图像的特征点的Y坐标是相同的),立体匹配一般根据极线寻找左右图中的对应匹配点。
行差现象解释
由于车辆在运行时,振动导致镜头镜片移位,偏移方向是不确定的。如图2所示:当偏移是上下方向时(即Y坐标时),左右图会出现行不对齐现象,原来应该配对的点不再是在同一行上,这样就会出现左右图中的点误匹配。如图2所示,右图中方格的点是应该匹配的点,由于右图发生上下方向偏移,导致左图中的点匹配到右图中同行的其它错误点。
行差的表征参数
行差异引起的误匹配会导致视差密度显著降低:一般而言,地面视差密度从良好状态的93%退化到55%。
视差参数计算的实现
现象分析:视差计算过程中,需要对参考图像中的点,在另一个配对图像中寻找匹配点。如果匹配置信度高,则输出视差值;如果匹配置信度低,在输出0,认为没有视差。理论上如果没有遮挡且光照合适,左右图像上公共区域内的点都会有视差。一般地面区域是漫反射,纹理丰富,视差良好,大部分像素点上都有视差。如果行差变化,就会出现较多的点的匹配置信度低,即没有视差。
表征参数1:对于选定的图像区域,视差密度为有视差的点数和区域内点数的比值。
表征参数2:对于选定的图像区域,平面厚度超过一定值,即表示发生行差。
行差的判断方式:行差在降低视差密度的同时,同一平面内的点的三维坐标也会引入较大噪声。当视差良好时,同一平面内的点的三维坐标也基本在同一平面内。通过平面拟合,可以筛选出到拟合平面距离小于一定方差内的点。然后计算出这些点到拟合平面的距离的均值。这个均值即为平面的厚度,其可体现出行差的大小。
判断方式为:
视差密度<阈值1(一般可取93%),地面厚度>阈值2(一般选择沿道路前进方向10m内厚度阈值取15cm),需要进行调整。
若满足:视差密度≥阈值1或者地面厚度≤阈值2,则不需要进行调整。
对于地面厚度计算而言,该指标是本申请特有的发现,说明如下:
设地面点云集合Cloud(只选择地面的场景点,数值是基于已经发生行差的双目立体相机得到)为:
Cloud={(xi,yi,zi)|xi∈R,yi∈R,zi∈R,i=1,2,...,N}
(xi,yi,zi)表达式任意第i个点的三维坐标(x轴大小,y轴大小,z轴大小)。
N表示点的总量个数,R表示实数。
通过平面拟合算法,如最小二乘法、RANSAC等,拟合地面点云平面(相关拟合方法属于现有技术,不再熬述);设拟合后的平面方程为
Ax+By+Cz+D=0
点云中的任意一点Pi=(xi,yi,zi)到拟合平面的距离为
Figure GDA0003521522880000101
点云中所有点到拟合平面的距离集合记为
Distance={di|di≥0}
计算距离均值
Figure GDA0003521522880000111
Figure GDA0003521522880000112
计算距离方差S:
Figure GDA0003521522880000113
从地面点云集合Cloud寻找噪声点集Noise为:
Figure GDA0003521522880000114
其中,k为设定的倍率系数,k一般取3.0。
非噪声点集Cloudres
Cloudres=Cloud-Noise
然后用Cloudres中点计算到拟合平面的距离均值
Figure GDA0003521522880000115
如果
Figure GDA0003521522880000116
这可认为视差退化。可以通过调节行差来校正视差。
其中,ε的大小可根据实际需要进行选择,如取15cm。
上述方法与三维坐标系无法,即三维坐标系的原点、x轴y轴z轴(三者只需满足相互垂直)的方向也无关系。
校正方法
对于上下振动引起的图片上下偏移导致的视差退化,根据视差密度指标和平面厚度指标,通过搜索最优行差参数,自动校正视差质量。
设定行差的区间值:-1cm,1cm;
步距:0.01mm;
即按照-1cm,-0.999cm,-0.998cm.......1cm的顺序进行搜索。
即假定行差为-1cm,计算视差密度和地面厚度:
若满足:视差密度<阈值1&地面厚度>阈值2;则继续搜索行差,-1cm变为-0.999cm,其中步距d=0.01mm;
若满足:视差密度≥阈值1或者地面厚度≤阈值2,则停止搜索,且当前的行差-1cm即为要寻找的行差,停止搜索。
按照行差为-1cm进行自动校正。
<2.列差的现象与判断方式、校正方法>
列差现象解释
振动导致的镜头镜片移位可能发生在水平方向。如图2所示,右侧图像里面的深色点为正常匹配点,浅色为镜片偏移后的匹配点。此时,对应匹配点的视差值会比真实值变大或变小,从而目标测距不准。
距离Z=B×F/D
其中,B、F分别为相机标定后获得的两个相机的基线长度和焦距值,是固定值。D是匹配点对的视差,如果镜片水平移位,D会发生变化,从而距离也跟随发生变化。
由于室外道路自然场景下无精确标定用的标靶和设备,为了简化操作过程,相机可以使用道路车道线信息进行自动校正。根据《公路路线设计规范(JTG D20-2017)》等国家规范,车道宽度为3.5米(如城市次干道)或者3.75米(如城市主干道、高速公路)。
列差的判断方式
步骤一,先获取当前道路车道线宽度L:当前道路车道线宽度信息可以从地理信息***获取(通过当前位置从而判断车道线宽度),也可以从单目图像上左右车道线在图像上的宽度判断车道线的宽度。
步骤二,然后双目立体相机计算车道线的宽度L1(该技术属于现有技术,如:王庆,基于双目立体全景视觉传感器的道路宽度实时检测技术的研究[D]浙江工业大学,2011.);
步骤三,比较步骤一、二的结果,从而确定是否进行校正:
如果步骤一获取的车道线宽度与步骤二计算得到的车道线宽度一致(即两者的差值小于阈值,阈值的选择根据实际情况具体选择,例如:测量值和真实值的差异超过5%),则相机精度良好,不需要校正;
如果步骤一获取的车道线宽度与步骤二计算得到的车道线宽度超过阈值(即两者的差值小于阈值),则说明相机测距精度下降,需要进行校正;
列差的校正方式
对于左右振动引起的图片左右偏移导致的视差退化,根据车道宽度参数,自动校正。
设定列差的区间值:-1cm,1cm;
步距:0.01mm;
即按照-1cm,-0.999cm,-0.998cm.......1cm的顺序进行搜索。
例如:假定列差为x,计算车道宽度L1:
若|L-L1|<阈值3,则相机精度良好,不需要校正列差,结束程序。
若|L-L1|≥阈值3,则相机需要对列差进行校正。但是在实际工作时,发现:行差、列差的影响是耦合的。即,列差=0时符合的行差,和列差=1mm时符合的行差,两者不一致。因此,如何考虑两个参数的耦合影响就显的尤其重要。
也即,相机需要对列差进行校正,需要重新对行差进行修订。
以上所举实施例为本发明的较佳实施方式,仅用来方便说明本发明,并非对本发明作任何形式上的限制,任何所属技术领域中具有通常知识者,若在不脱离本发明所提技术特征的范围内,利用本发明所揭示技术内容所作出局部更动或修饰的等效实施例,并且未脱离本发明的技术特征内容,均仍属于本发明技术特征的范围内。

Claims (6)

1.一种车载双目立体相机自校正方法,其用于仅发生行差的校正,双目立体相机包括:第一图像采集模块,第二图像采集模块;
其特征在于,包括以下步骤:
S100,从第一图像采集模块、第二图像采集模块分别获得原始图像;
S200,判断双目立体相机是否发生行差、是否需要进行自校正,其包括步骤S201、S202、S203:
S201,设列差为0,行差为0,计算视差密度;
S202,设列差为0,行差为0,计算地面厚度;
S203,基于S201、S202的结果来判断是否存在行差:
当视差密度<阈值ρ且地面厚度>阈值ε,判断需要进行自校正,进入步骤S300;
当视差密度≥阈值ρ或地面厚度≤阈值ε,判断不需要进行自校正,结束步骤;
S300,需要进行自校正时,确定行差
S301,设定行差的区间值ymin,ymax;设定计算次数P;设定步距:dy=(ymax-ymin)/P;初始条件下,计算行差y赋值为ymin
S302,设列差为0,行差为y,计算视差密度;
S303,设列差为0,行差为y,计算地面厚度;
S304,基于S302、S303的结果来判断执行:
当视差密度<阈值ρ且地面厚度>阈值ε,y重新赋值为:y+dy,重复步骤S302~S304;
当视差密度≥阈值ρ或地面厚度≤阈值ε,返回行差y,结束程序;
S202以及S303中的计算地面厚度的步骤,均包括以下内容:
S-A,根据第一图像采集模块以及第二图像采集模块传来的图像以及行差、列差,获取地面点云集合Cloud,其表达为:
Cloud={(xi,yi,zi)|xi∈R,yi∈R,zi∈R,i=1,2,...,N}
其中,(xi,yi,zi)表达式任意第i个点的三维坐标;N表示点的总量个数,R表示实数;
S-B,基于地面点云集合Cloud,拟合地面所在的平面方程为:
Ax+By+Cz+D=0
A、B、C为相关参数;
S-C,计算非噪声点集Cloudres,包括步骤S-C-1、S-C-2:
S-C-1,从地面点云集合Cloud寻找噪声点集Noise:
首先,计算每一个点到拟合的地面所在的平面的距离,且将上述结果保存到地面点云集合Cloud中所有点到拟合平面的距离集合Distance中:
地面点云集合中的任意一点Pi=(xi,yi,zi)到拟合平面的距离di,其大小为:
Figure FDA0003521522870000021
地面点云集合Cloud中所有点到拟合平面的距离集合记为
Distance={di|di≥0}
然后,计算距离均值
Figure FDA0003521522870000022
Figure FDA0003521522870000023
再次,计算距离方差S:
Figure FDA0003521522870000024
最后,得到噪声点集Noise,噪声点集Noise为:
Figure FDA0003521522870000025
其中,k为设定的倍率系数;
S-C-2,确定非噪声点集Cloudres
Cloudres=Cloud-Noise
S-D,计算非噪声点集Cloudres中的每个点到拟合平面的距离均值
Figure FDA0003521522870000026
即为地面厚度。
2.一种车载双目立体相机自校正方法,其用于仅发生列差的校正,双目立体相机包括:第一图像采集模块,第二图像采集模块;
其特征在于,包括以下步骤:
S100,从第一图像采集模块、第二图像采集模块分别获得原始图像;
S200,判断双目立体相机是否发生列差、是否需要进行自校正:其包括步骤S201~S203;
S201,先获取当前道路车道线宽度L:当前道路车道线宽度信息可以从地理信息***获取,也能够从单目图像上左右车道线在图像上的宽度判断车道线的宽度;
S202,行差=0,列差=0,然后根据第一图像采集模块、第二图像采集模块、获得的原始图像、行差、列差来计算车道线的宽度L1;
S203,比较L、L1的结果,从而确定是否进行校正:
若|L-L1|<ξ,则相机精度良好,不需要校正,结束程序;
若|L-L1|≥ξ,则相机需要对列差进行校正,转入步骤S300;
其中,ξ表示阈值,根据实际需要设定;
S300,确定列差:
S301,设定列差的区间值xmin,xmax;设定计算次数M,步距:dx=(xmax-xmin)/M;初始条件下,计算列差x赋值为xmin
S302,对计算列差为x进行计算分析:
S3021,先获取当前道路车道线宽度L;
S3022,行差为0,列差为x;然后根据第一图像采集模块、第二图像采集模块、行差、列差、获得的原始图像、计算列差x来计算车道线的宽度L1;
S3023,比较L、L1的结果,进行以下判断:
若|L-L1|<ξ,则返回计算列差x,程序结束;
若|L-L1|≥ξ,则x赋值为x+dx,重复步骤S3022~S3023。
3.一种车载双目立体相机自校正方法,双目立体相机包括:第一图像采集模块,第二图像采集模块;
其特征在于,包括以下步骤:
S100,从第一图像采集模块、第二图像采集模块分别获得原始图像;
S200,初步判断双目立体相机是否发生行差、是否需要进行自校正,其包括步骤S201、S202、S203:
S201,设列差为0,行差为0,计算视差密度;
S202,设列差为0,行差为0,计算地面厚度;
S203,基于S201、S202的结果来初步判断是否存在行差:
当视差密度<阈值ρ且地面厚度>阈值ε,初步判断需要进行自校正,进入步骤S400;
当视差密度≥阈值ρ或地面厚度≤阈值ε,初步判断不需要进行自校正,进入步骤S300;
步骤S300,初步判断双目立体相机是否发生列差、是否需要进行自校正:其包括步骤S301~S303;
S301,先获取当前道路车道线宽度L:当前道路车道线宽度信息可以从地理信息***获取,也能够从单目图像上左右车道线在图像上的宽度判断车道线的宽度;
S302,行差=0,列差=0,然后根据第一图像采集模块、第二图像采集模块、获得的原始图像、行差、列差来计算车道线的宽度L1;
S303,比较L、L1的结果,从而确定是否进行校正:
若|L-L1|<ξ,则相机精度良好,不需要校正,结束程序;
若|L-L1|≥ξ,则相机需要对列差进行校正,转入步骤S500;
其中,ξ表示阈值,根据实际需要设定;
S400,初步需要进行行差的自校正时,确定行差
S401,设定行差的区间值ymin,ymax;设定计算次数P;设定步距:dy=(ymax-ymin)/P;初始条件下,计算行差y赋值为ymin
S402,设列差为0,行差为y,计算视差密度;
S403,设列差为0,行差为y,计算地面厚度;
S404,基于S402、S403的结果来进行如下判断:
当视差密度<阈值ρ且地面厚度>阈值ε,y重新赋值为:y+dy,重复步骤S402~S404;
当视差密度≥阈值ρ或地面厚度≤阈值ε,返回行差y,进入步骤S300;
S500,确定行差、列差
S501,设定列差的区间值xmin,xmax;设定计算次数M,步距:dx=(xmax-xmin)/M;初始条件下,计算列差x赋值为xmin
S502,寻找计算列差为x下对应的行差y
S5021设定行差的区间值ymin,ymax;设定计算次数P;设定步距:dy=(ymax-ymin)/P;初始条件下,计算行差y赋值为ymin
S5022,设列差为x,行差为y,计算视差密度;
S5023,设列差为x,行差为y,计算地面厚度;
S5024,基于S5022、S45023的结果来进行如下判断:
当视差密度<阈值ρ且地面厚度>阈值ε,y重新赋值为:y+dy,重复步骤S5022~S5024;
当视差密度≥阈值ρ或地面厚度≤阈值ε,返回行差y,进入步骤S503;
S503,判读计算列差x是否正确
S5031,先获取当前道路车道线宽度L:当前道路车道线宽度信息可以从地理信息***获取,也能够从单目图像上左右车道线在图像上的宽度判断车道线的宽度;
S5032,列差为x,行差为y,然后根据第一图像采集模块、第二图像采集模块、获得的原始图像、行差、列差来计算车道线的宽度L1;
S5033,比较L、L1的结果,来进行如下判断:
若|L-L1|<ξ,则返回计算列差x,程序结束;
若|L-L1|≥ξ,则x赋值为x+dx,重复步骤S502~S503;
步骤S202,S403,S5023中计算地面厚度的步骤,包括以下内容:
S-A,根据第一图像采集模块以及第二图像采集模块传来的图像以及行差、列差,获取地面点云集合Cloud,其表达为:
Cloud={(xi,yi,zi)|xi∈R,yi∈R,zi∈R,i=1,2,...,N}
其中,(xi,yi,zi)表达式任意第i个点的三维坐标;N表示点的总量个数,R表示实数;
S-B,基于地面点云集合Cloud,拟合地面所在的平面方程为:
Ax+By+Cz+D=0
A、B、C为相关参数;
S-C,计算非噪声点集Cloudres,包括步骤S-C-1、S-C-2:
S-C-1,从地面点云集合Cloud寻找噪声点集Noise:
首先,计算每一个点到拟合的地面所在的平面的距离,且将上述结果保存到地面点云集合Cloud中所有点到拟合平面的距离集合Distance中:
地面点云集合中的任意一点Pi=(xi,yi,zi)到拟合平面的距离di,其大小为:
Figure FDA0003521522870000051
地面点云集合Cloud中所有点到拟合平面的距离集合记为
Distance={di|di≥0}
然后,计算距离均值
Figure FDA0003521522870000052
Figure FDA0003521522870000053
再次,计算距离方差S:
Figure FDA0003521522870000054
最后,得到噪声点集Noise,噪声点集Noise为:
Figure FDA0003521522870000061
其中,k为设定的倍率系数;
S-C-2,确定非噪声点集Cloudres
Cloudres=Cloud-Noise
S-D,计算非噪声点集Cloudres中的每个点到拟合平面的距离均值
Figure FDA0003521522870000062
即为地面厚度。
4.一种FPGA芯片,其特征在于,其集成有能够执行所述权利要求1至权利要求3任意一项所述的车载双目立体相机自校正方法。
5.一种车载双目立体相机自校正***,其特征在于,包括:双目立体相机以及如权利要求4所述的FPGA芯片,所述FPGA芯片读取双目立体相机的两个相机所拍摄的图像。
6.一种车辆,其特征在于,其安装有如权利要求5所述的车载双目立体相机自校正***。
CN202110828659.6A 2021-07-22 2021-07-22 车载双目立体相机自校正方法及其***、fpga芯片 Active CN113554714B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110828659.6A CN113554714B (zh) 2021-07-22 2021-07-22 车载双目立体相机自校正方法及其***、fpga芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110828659.6A CN113554714B (zh) 2021-07-22 2021-07-22 车载双目立体相机自校正方法及其***、fpga芯片

Publications (2)

Publication Number Publication Date
CN113554714A CN113554714A (zh) 2021-10-26
CN113554714B true CN113554714B (zh) 2022-04-05

Family

ID=78103988

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110828659.6A Active CN113554714B (zh) 2021-07-22 2021-07-22 车载双目立体相机自校正方法及其***、fpga芯片

Country Status (1)

Country Link
CN (1) CN113554714B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117516594B (zh) * 2024-01-08 2024-03-22 元橡科技(北京)有限公司 一种双目相机测距自校正方法、***及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102592124A (zh) * 2011-01-13 2012-07-18 汉王科技股份有限公司 文本图像的几何校正方法、装置和双目立体视觉***
CN110537109A (zh) * 2017-04-28 2019-12-03 深圳市大疆创新科技有限公司 用于自主驾驶的感测组件
CN111563952A (zh) * 2020-03-30 2020-08-21 北京理工大学 基于相位信息与空间纹理特征实现立体匹配方法及***

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101729918A (zh) * 2009-10-30 2010-06-09 无锡景象数字技术有限公司 一种实现双目立体图像校正和显示优化的方法
JP6520080B2 (ja) * 2014-01-31 2019-05-29 株式会社リコー ステレオカメラ校正方法、視差算出装置、ステレオカメラ及び車両
CN106525004A (zh) * 2016-11-09 2017-03-22 人加智能机器人技术(北京)有限公司 双目立体视觉***及深度测量方法
CN107909616A (zh) * 2017-12-14 2018-04-13 元橡科技(北京)有限公司 一种双目视觉***的自动矫正方法
CN110838148B (zh) * 2019-11-11 2023-05-05 杭州凌像科技有限公司 一种双目相机自标定方法
CN111062990B (zh) * 2019-12-13 2023-06-02 哈尔滨工程大学 一种面向水下机器人目标抓取的双目视觉定位方法
CN111429527B (zh) * 2020-03-24 2023-12-01 广东星舆科技有限公司 一种车载相机的外参自动标定方法及***
CN111862235B (zh) * 2020-07-22 2023-12-29 中国科学院上海微***与信息技术研究所 双目相机自标定方法及***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102592124A (zh) * 2011-01-13 2012-07-18 汉王科技股份有限公司 文本图像的几何校正方法、装置和双目立体视觉***
CN110537109A (zh) * 2017-04-28 2019-12-03 深圳市大疆创新科技有限公司 用于自主驾驶的感测组件
CN111563952A (zh) * 2020-03-30 2020-08-21 北京理工大学 基于相位信息与空间纹理特征实现立体匹配方法及***

Also Published As

Publication number Publication date
CN113554714A (zh) 2021-10-26

Similar Documents

Publication Publication Date Title
EP1944734B1 (en) Distance correcting apparatus of surrounding monitoring system and vanishing point correcting apparatus thereof
CN110264525B (zh) 一种基于车道线与目标车辆的相机标定方法
US8593524B2 (en) Calibrating a camera system
CN113034568B (zh) 一种机器视觉深度估计方法、装置、***
CN111080714B (zh) 一种基于三维重建的平行式双目相机标定方法
EP1087336A2 (en) Apparatus and method for stereoscopic image processing
CN110319772B (zh) 基于无人机的视觉大跨度测距方法
CN109211198B (zh) 一种基于三目视觉的智能目标检测和测量***和方法
CN111862234B (zh) 双目相机自标定方法及***
CN110189400B (zh) 一种三维重建方法、三维重建***、移动终端及存储装置
CN111028285A (zh) 基于双目视觉和激光雷达融合的深度估计方法
JP2008082870A (ja) 画像処理プログラム及びこれを用いた路面状態計測システム
CN111709985B (zh) 一种基于双目视觉的水下目标测距方法
CN113096189B (zh) 一种itof深度相机标定及深度优化方法
CN105551020A (zh) 一种检测目标物尺寸的方法及装置
CN115468567A (zh) 一种面向越野环境的激光视觉融合slam方法
CN113554714B (zh) 车载双目立体相机自校正方法及其***、fpga芯片
CN111429571B (zh) 一种基于时空图像信息联合相关的快速立体匹配方法
CN111382591A (zh) 一种双目相机测距校正方法及车载设备
CN109798877B (zh) 一种仿生水下机器鱼双目立体测距方法
CN110487254B (zh) 一种用于rov的水下目标尺寸快速测量方法
CN117406234A (zh) 基于单线激光雷达与视觉融合的目标测距和追踪的方法
CN111627067B (zh) 一种双目相机的标定方法及车载设备
CN116026323A (zh) 一种用于发动机油加注机定位与区域防错方法
CN114018167A (zh) 一种基于单目三维视觉的桥梁挠度测量方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant