具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明,提供一种自动多重曝光方法,如图1所示,包括:
S100,获取激光轮廓传感器在曝光时间T时扫描目标物体得到的光条质量评价权重S=(s1,s2,…,sn,…,sN),T=(t1,t2,…,tn,…,tN),tn为预设的第n个曝光时间,n的取值范围为1到N,N为预设的曝光时间的数量;sn为激光轮廓传感器在tn时扫描目标物体得到的光条质量评价权重,sn用于表征光条的成像质量。
作为一个实施例,N=10,T=(16384,8192,4096,2048,1024,512,256,128,64,32),单位为微秒。本领域技术人员知悉,现有技术中激光轮廓传感器的任何的不同的曝光时间的组合均落入本发明的保护范围。
根据本发明,sn的获取方法包括:
S110,获取激光轮廓传感器在tn时扫描目标物体得到的光条Pn=(pn,1,pn,2,…,pn,a,…,pn,A),pn,a为光条Pn沿x轴方向出现的第a列像素点,a的取值范围为1到A,A为光条Pn对应的像素点列数;pn,a=(pna,1,pna,2,…,pna,b,…,pna,B),pna,b为光条Pn沿x轴方向出现的第a列像素点的第b个像素点,b的取值范围为1到B,B为光条Pn沿x轴方向出现的第a列像素点包含的像素点数量。
根据本发明,光条Pn沿x轴方向延伸,光条延伸的长度为光条Pn对应的像素点列数;光条上每一列对应的像素点数量为光条在对应位置的宽度。例如,光条的第1列对应像素点数量为3,那么光条在第1列位置的宽度为3。
S120,遍历Pn,获取pn,a的光条质量评价权重sn,a;当B=1时,sn,a=0;当B=2时,sn,a=0.75;当3≤B≤5时,如果pn,a中像素点的亮度最大值Wa,max小于255,则sn,a=(Wa,max/255)0.15,如果pn,a中像素点的亮度最大值Wa,max等于255,且pn,a中过曝点的数量Dn,a=1,则sn,a=1,如果pn,a中像素点的亮度最大值Wa,max等于255,且Dn,a>1,则sn,a=(1/Dn,a)0.5;当B>5时,如果pn,a中像素点的亮度最大值Wa,max等于255,则sn,a=20/(B2)+0.1,如果pn,a中像素点的亮度最大值Wa,max小于255,则sn,a=(Wa,max/255)0.15;过曝点为亮度值为255的像素点。
S130,获取sn=(∑A a=1sn,a)×(vpn/mpn),vpn为光条Pn的有效点数量,mpn为光条Pn的有效点的亮度最大值,有效点为亮度值小于255的像素点。
根据本发明,∑A a=1sn,a为光条的所有列对应的光条质量评价权重之和,vpn/mpn用于对光条的所有列对应的光条质量评价权重之和进行修正,以使获取的sn能够更准确地表征光条的成像质量好坏。
根据本发明,光条质量评价权重与光条沿x轴方向出现的各列的像素点的数量、光条中过曝点的数量和有效点的数量相关;除本发明S110-S130之外,基于上述光条沿x轴方向出现的各列的像素点的数量、光条中过曝点的数量和有效点的数量获取光条质量评价权重的其他获取方法也落入本发明的保护范围,例如,为上述三个相关的参数分配一个对应的权重,然后根据加权求和公式获取光条质量评价权重。
S200,获取max(S)对应的光条的平均亮度直方图H,H的横轴为光条中列的平均亮度值,列的平均值为该列包含的像素点的亮度的平均值,H的纵轴为光条中列的数量。
根据本发明,H中pn,a对应的平均亮度值为round((∑B b=1Una,b)/B),Una,b为pna,b的亮度值,round( )为取整。
应当理解的是,H中某平均亮度值对应的列的数量越多,说明max(S)对应的光条中平均亮度值为该平均亮度值的列的数量越多;H中某平均亮度值对应的列的数量越少,说明max(S)对应的光条中平均亮度值为该平均亮度值的列的数量越少。
S300,如果H中峰的数量M=1,则将max(S)对应的光条中的所有列作为1类;如果H中峰的数量M≥2,则将max(S)对应的光条中的列进行划分,得到C=(c1,c2,…,cm,…,cM),cm为划分得到的第m类,m的取值范围为1到M,cm中列的平均亮度范围为[(fm-1+fm)/2,(fm+fm+1)/2),fm-1为H中沿横轴方向出现的第(m-1)个峰对应的亮度值,fm为H中沿横轴方向出现的第m个峰对应的亮度值,fm+1为H中沿横轴方向出现的第(m+1)个峰对应的亮度值,f0=0,(fM+fM+1)/2=256。
本领域技术人员知悉,现有技术中任何获取直方图中峰的数量的方法均落入本发明的保护范围。
作为一个实施例,平均亮度直方图H对应的峰数量M=2,第1个峰对应的亮度值为22,第2个峰值对应的亮度值为138,说明光条中平均亮度值为22和138的列比较多;对应的将光条中的列进行划分为2类,第1类中列的平均亮度范围为[0,80),第2类中列的平均亮度范围为[80,256)。
S400,对于任一类,获取该类中列的平均亮度的最大值Vmax和平均亮度的最小值Vmin,如果该类的亮度跨度值ΔV≤V0,则不对该类进行划分;如果该类的亮度跨度值ΔV>V0,则将该类划分为Q个簇,ΔV=(Vmax-Vmin),Q=roundup(ΔV/V0);roundup( )为向上取整,V0为预设的亮度阈值,每个簇对应的亮度跨度值小于等于V0。
根据本发明,Q与ΔV成正比,ΔV越大,Q越大。可选的,50≤V0≤60。
根据本发明,将该类划分为Q个簇包括:
S410,获取该类的亮度分簇值e=round(ΔV/Q),round( )为取整。
根据本发明,ΔV和Q确定的情况下,为了满足每个簇对应的亮度跨度值小于等于V0的条件,可选的,e=round(ΔV/Q)。
S420,将该类划分为Q个簇,其中第q个簇对应的像素点的亮度范围为[Vmin+(q-1)×e,Vmin+q×e),q的取值范围为1到(Q-1);第Q个簇对应的像素点的亮度范围为[Vmin+(Q-1)×e,Vmax]。
由此,划分得到的Q个簇均能够满足上述每个簇对应的亮度跨度值小于等于V0的条件。
S500,获取划分得到的任一簇以及未被划分的任一类对应的最优曝光时间。
根据本发明,划分得到的任一簇对应的最优曝光时间的获取方法包括:
S510,对于划分得到的任一簇,获取激光轮廓传感器在曝光时间T时扫描该簇得到的光条质量评价权重S’=(s’1,s’2,…,s’n,…,s’N),s’n为激光轮廓传感器在tn时扫描该簇得到的光条质量评价权重。
根据本发明,任一簇是多个列的集合,任一列对应的光条质量评价权重的获取方法在S120中已经进行了说明,然后再将该簇中包括的所有列的光条质量评价权重进行求和,将得到的值再乘以该簇对应的有效点数量与有效点的亮度最大值之比,得到的就是该簇对应的光条质量评价权重。
S520,获取max(S’)对应的曝光时间t0。
S530,如果t0≠t1且t0≠tN,则获取t0-和t0+,t0-为T中小于t0且距离t0最近的曝光时间,t0+为T中大于t0且距离t0最近的曝光时间。
作为一个实施例,T=(16384,8192,4096,2048,1024,512,256,128,64,32),单位为微秒,t0=64,那么t0-为32,t0+为128。
S540,获取s1-和s1+,s1-为激光轮廓传感器在t1-时扫描该簇得到的光条质量评价权重,t1-=(t0-+t0)/2,s1+为激光轮廓传感器在t1+时扫描该簇得到的光条质量评价权重,t1+=(t0++t0)/2。
S550,如果max(s1-,max(S’), s1+)=max(S’),则在[(t1-+t0)/2, (t1++t0)/2]的曝光时间范围内获取该簇对应的最优曝光时间;如果max(s1-,max(S’), s1+)=s1-,则在[t0-,t0]的曝光时间范围内获取该簇对应的最优曝光时间;如果max(s1-,max(S’), s1+)=s1+,则在[t0, t0+]的曝光时间范围内获取该簇对应的最优曝光时间。
根据本发明,在确定了曝光时间范围之后,优选的,利用二分法的思想获取最优曝光时间,以提高获取最优曝光时间的效率。作为一个实施例,T=(16384,8192,4096,2048,1024,512,256,128,64,32),单位为微秒,t0=64,那么t0-为32,t0+为128,如果激光轮廓传感器在曝光时间为(128+64)/2=96时扫描该簇得到的光条质量评价权重相较于曝光时间为64和(64+32)=48时对应的光条质量评价权重,那么在[64,128]的曝光时间范围内获取该簇对应的最优曝光时间。
为了进一步提高获取最优曝光时间的效率,按照类似的方式,继续获取激光轮廓传感器在曝光时间为(128+96)/2=112和(96+64)/2=80时扫描该簇得到的光条质量评价权重,如果激光轮廓传感器在曝光时间为80时扫描该簇得到的光条质量评价权重相较于曝光时间为112和96时对应的光条质量评价权重,那么在[64,96]的曝光时间范围内获取该簇对应的最优曝光时间;如果激光轮廓传感器在曝光时间为96时扫描该簇得到的光条质量评价权重相较于曝光时间为112和80时对应的光条质量评价权重,那么在[80,112]的曝光时间范围内获取该簇对应的最优曝光时间;如果激光轮廓传感器在曝光时间为112时扫描该簇得到的光条质量评价权重相较于曝光时间为80和96时对应的光条质量评价权重,那么在[96,128]的曝光时间范围内获取该簇对应的最优曝光时间。
以此类推,直至满足收敛条件,停止利用二分法获取最优曝光时间。可选的,收敛条件为:获取的曝光时间范围对应的曝光时间跨度<获取的曝光时间范围对应的历史最优曝光时间/16。应当理解的是,曝光时间范围对应的曝光时间跨度为曝光时间范围的最大值与最小值之差,曝光时间范围对应的曝光时间跨度为上次对比得到的最优曝光时间,例如,[96,128]的曝光时间范围对应的曝光时间跨度为32,[96,128]的曝光时间范围对应的历史最优曝光时间为112;[80,112]的曝光时间范围对应的曝光时间跨度为32,[80,112]的曝光时间范围对应的历史最优曝光时间为96。
对于未被划分的任一类,即S400中亮度跨度值ΔV≤V0的类,其也是多个列的集合,其对应的最优曝光时间的获取方法与划分得到的任一簇对应的最优曝光时间的获取方法的方案类似,此处不再赘述。
本领域技术人员知悉,对于划分得到的任一簇或未被划分的任一类,将其包括的所有列视为一个整体,现有技术中任何获取最优曝光时间的方法均落入本发明的保护范围。
S600,将划分得到的各簇和未被划分的各类对应于最优曝光时间下的局部光条进行拼接,得到目标物体的最优光条。
根据本发明,光条的各列的位置信息是已知的,根据各列对应的位置关系可以实现对各列对应的局部光条的拼接。作为一个实施例,光条对应的像素点列数为A,光条沿x轴方向出现的第1至A/2列为一类,这一类对应的最优曝光时间为t1;光条沿x轴方向出现的第(A/2)+1至A列为一类,这一类对应的最优曝光时间为t2;那么拼接后得到的最优光条沿x轴方向出现的第1至A/2列的部分为激光轮廓传感器在曝光时间为t1时扫描目标物体得到的光条沿x轴方向出现的第1至A/2列,拼接后得到的最优光条沿x轴方向出现的第(A/2)+1至A列的部分为激光轮廓传感器在曝光时间为t2时扫描目标物体得到的光条沿x轴方向出现的第(A/2)+1至A列。
本发明以光条上的每列像素点为最小单元对光条进行分类,如果某类的亮度跨度值较大,则进一步对该类进行分簇,由此得到的未被划分的每一类和划分得到的每一簇内的各列像素点的平均亮度值较为接近;在此基础上,本发明采用了多重曝光的方案,以未被划分的每一类和划分得到的每一簇为基本单元获取对应的最优曝光时间,由于未被划分的每一类和划分得到的每一簇内的各列像素点的平均亮度值较为接近,因此获取的对应的最优曝光时间能够较好地匹配类/簇内的每一列像素点,进一步将各列像素点对应于最优曝光时间的局部光条进行拼接得到的光条就是目标物体的最优光条(由于每列像素点的位置信息已知,因此可以根据每列像素点的位置信息进行拼接)。相较于现有技术中使用单一曝光照射目标物体的技术方案,本发明提高了对表面纹理颜色差异或形状曲率变化较大的目标物体的轮廓采集准确性。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明的范围由所附权利要求来限定。