-
随着无人机技术的发展,利用无人机对地观测的方式受到诸多行业的青睐。利用无人机获取地面影像时,当水体、太阳、镜头三者构成镜面反射条件或遇到有风天气,影像内的水体会含有明显的镜面反光或涟漪状反光——本文统称高光。一般可在影像拼接时对高光进行掩模处理、保留重叠影像中的无高光水域。但此方法仅适用于重叠影像中高光分布较为分散的情况,当分布连续时,拼接线无法绕过并会保留一定程度的高光,导致数字正射影像图(digital orthophoto map,DOM)质量较差,并对分割、识别等后续处理产生一定影响。因此,单张无人机影像水体高光自动检测与补偿具有比较重要的研究意义与实用价值。
现有高光处理方法可分为硬件支持的处理方法、基于实验室标定的序列影像处理方法和基于双色反射模型的单张影像处理方法。文献[1-2]使用偏振片获取影像,得到的效果较好。但一般情况下一些学者研究利用多张影像进行处理,通过改变视点[3-4]或光源[5-7]位置来去除每个像素的高光。虽然效果较好,但对位置变化有一定要求、仍不能解决一般情况,学者们开始研究基于单张影像的处理方法,这些方法均基于双色反射模型[8]。文献[9-11]在颜色空间中进行矢量分割;文献[12-14]使用伪影像辅助处理;文献[15-16]主要使用颜色聚类的方法;文献[17-18]采用了局部范围比较特定比率值的方法;文献[19]在处理时引入投票机制,使补偿后的色彩更连续;文献[20]在检测高光后转换到HSV空间中进行处理;文献[21]采用非负矩阵分解的方式补偿高光。
然而,现有方法不适合处理无人机水体高光。首先,使用偏振片会减少通光量, 降低成像质量,且需要改装相机, 提高了成本;其次,多张影像的处理方法须对相机或光源位置变化进行控制,而无人机航飞时难以满足要求;最后,已有单张影像处理方法针对的场景均不同程度限制了材质、光照条件、色彩种类等,且从影像全局考虑,而获取航空影像时光照环境复杂、物种多样且有大量混合像元,只能采用对象级的处理方法。
针对现有方法的不足,本文提出一种单张无人机影像水体高光自动检测与补偿方法。先基于提出的高光分量多尺度初步检测高光,使用Grabcut算法优化高光边界;随后建立决策树, 综合几何与光谱特性对非水体高光进行剔除;接着精化高光区域, 将附近未检出的高光点纳入到区域内;最后,以相邻非高光水体为参考, 使用改进的Cri-minisi算法对高光水体进行补偿。
HTML
-
本文方法共分为初始高光区域提取、误检测高光剔除、水体高光区域精化、高光补偿等4个步骤,处理流程如图 1所示。
-
现有的单张处理方法均基于双色反色模型[8]处理高光,该模型适用于有颜色的介电物体。但水体为水与水下物质构成的组合体:水覆于水下物质之上,表面光滑、无色透明,镜面反射时现象显著,呈反射光颜色;水下物质可近似为介电物体,色彩变化缓慢,水面高光较弱时水体呈水下物质色彩。
水体反射具有特殊性,角度合适时才会产生水面高光,而此时高光区域较亮、非高光区域较暗,且亮度过度较明显;除水体外,其他地物亮度相对水体高光较暗, 可能比非高光水体亮。由于水体组成的特殊性,无法将漫反射与高光分量进行准确分离。但因水体高光与其他区域的亮度反差较大,故采用经验阈值初步确定高光位置,基于此, 本文提出高光分量来近似高光程度。采集影像时天气晴朗, 散射程度低,日光可近似为白光,而通道的最小值为各通道共有的最低光反射程度,可反映反射白光的程度,故取红、绿、蓝中的最小值作为高光分量V′。
将V′分量与HSV色彩空间[22]的亮度分量V(即RGB中的最大值)进行对比(见图 2),非高光区域明显变暗,一些看起来与高光区域亮度相近的植被在V′分量下其反射日光的程度并不高,这种灰度差异性的提升也更利于后续对高光区域进行优化。
-
虽然高光分量可以使高光与非高光的差异更明显,但水体高光所在水域相对整体影像面积往往较小,且云影等外部因素也会造成明显的灰度两极分布, 除水体高光之外的大量像素干扰了灰度统计,因而在统计直方图时较高灰度级附近无法出现明显高峰甚至没有峰值,自适应分割则会导致分割错误。假若影像中没有明显高光,自适应分割方法则会导致影像严重失真。
但先验知识表明,无论环境光的明暗分布如何,高光必然以极高亮度和低饱和度的形式表达在影像中,故利用人工阈值检测高光。对于阈值方法导致的误检测,后续则采用一定方法进行筛选。
对原始影像建立多尺度高斯金字塔,计算每个尺度k的高光分量V′k和HSV空间的饱和度分量Sk。接着利用这两个分量的金字塔影像进行阈值分割(见式(1)和式(2)。
式中, p指每个尺度影像内的每个像素。多尺度分割结束后, 将每个尺度合并便可获得种子点Q和候选区域A,然后将含有种子点的候选区域作为初始高光区域。
因高光较亮且饱和度偏低,故将V′(p)大于指定阈值V′max的像素确定为种子点(V′(p)取通道最小值,隐含限制了饱和度)。虽然距高光中心较近范围内的亮度衰减较缓慢,但随着距离增加衰减速度显著加快,这一特点使得局部处理具有可能性。式(2)的难点在于设置最小阈值V′min,在保留明显高光基本形状的同时非高光相对较少。初步确定的大致范围为后续优化、补偿等局部处理提供了适当的先验范围,但候选点并不作为确定的高光而只为其赋予一定权重。
高光程度较高时, 物体饱和度较低,设置阈值V′1和Smax,将V′(p)>V′1,S(p)<Smax的像素作为候选高光。高光程度降低后饱和度升高,而饱和度较低的地物(沥青、水泥、岩石等)随高光程度的降低饱和度仍然很低,因此对V′(p)值在V′min与V′1之间的像素进行饱和度约束, 将饱和度小于Smax的像素剔除,该约束影响到的高光像素较少, 可去除较多的非高光像素,并使分析窗口设置更加合理,而高光区域可以利用后续优化进行改正。图 3为水泥地面,去掉低亮度、低饱和度的像素后,余下了较少的误检测,而剩余的误检测会采用§1.2中的方法被剔除。
只采用阈值手段检测高光较为粗略,因此在预选高光区域周围设置处理窗口,使用Grabcut算法[23]对初始高光区域的边界位置进行优化。
-
上述方法得到的高光仍含有较多非水体地物构成的误检测,如自身反射率较高或饱和度较低的地物(房屋、道路、岩石等)。此外,还无法得知整体反光水体的内部色彩,但此类水体相对影像面积较小, 可从重叠影像中获得无高光部分,故不进行补偿,剔除方式与非水体地物相同。本文选择设计决策树来筛选出水体高光, 因重叠影像中水体高光的各个特征基本不同而非水体高光可能出现特征相似的情况,且一张影像出现漏检也可通过重叠影像进行弥补,因此不接受误检而允许误剔。以下为本文针对水体高光提出的先验规则,并按如下规则对标记样本进行学习, 作为决策树的筛选条件。
规则1:仅对水体高光样本进行学习。高光中心亮度极高、饱和度极小,较多像素V′(p)等于或接近255,S(p)等于或接近0。因此对高光阈值和饱和度阈值进行统计学习,若区域内同时存在V′(p)>V′2,S(p)<S2的较多像素则被当作高光(图 1(b)中第1行示例含有满足要求的像素较少,判断量的多少可采用形态学腐蚀运算)。
规则2:利用几何特性可快速剔除某些整体反光的误检测,这些误检测的几何形状较简单或与所属地物形状接近。可使用道格拉斯-普克算法[24]对区域进行拟合来剔除特定多边形,边数范围N2需人工指定(图 1(b)第2行)。也可利用形状描述子剔除与特定形状相似的误检测,具体剔除何种形状需人工指定。图 1(b)第3行示例为使用面积开方比和对角线比这两种矩形描述子来剔除与矩形相似的误检测,相似度μ2需人工指定。
规则3:综合多种光谱特性对误检测进行剔除。误检测与水体高光的主要区别如下:水体高光的亮度变化范围较大而误检测整体反光,内部差异较小(图 1(b)第4行),可将内部像素归一化V′(p)值的变化范围αV2作为筛选条件;整体反光的另一特点为大部分像素集中在较高亮度级(图 1(b)第5行),将高于指定阈值V′mid的像素数占全部的百分比βV2作为筛选条件;水体本身含有一定颜色信息,高光程度减弱时饱和度升高,而一些误检测内部的饱和度差异不大或集中在较小值,同时也对饱和度相应的变化和分布进行统计,方法不再赘述,对应人工阈值为Smid,统计值分别为αS2和βS2。统计结束后,将4类统计值组成样本的特征向量,利用SVM算法[25]对特征空间中的高光与非高光样本进行分割,并将拟合得到的超平面作为筛选规则。对于错分到高光的数据点,将超平面平移至最大错误点处即可。
-
上述方法得到的高光往往忽略了周围较近、面积较小的离散高光点,若直接补偿则效果较差,则需对高光区域进行精化。
在检测高光点之前需获取所在的水体范围。根据水体内部色彩变化缓慢的特点,先对原始影像建立高斯金字塔,对金字塔影像检测边缘后合并可得到边缘影像。将之前提取的初始高光区域作为种子点,以边缘为截止条件,按区域增长的方式在边缘影像中填充后便可获得水体的大致范围。建立局部窗口,再次使用Grabcut算法优化水体的边界。分割结束后距离高光较远、较暗的水体会有一定缺失,但由于处理范围为距离高光区域较近、较亮的区域,故满足要求。
高光点的特点是中心亮度比周围高。在水域范围内对高光分量进行中值滤波(最小值滤波过于敏感而不利于补偿),将滤波前后灰度差大于τ的像素点作为高光点。运用形态学膨胀将初始高光区域与相邻高光点进行合并,得到最终精化的高光区域。
-
获得精化的高光区域后,采用改进的Criminisi算法[26]进行高光补偿。Criminisi算法是一种基于样本块的地物去除算法,根据水体质地较为均一、存在大范围色彩渐变的特点对Criminisi算法进行以下3个方面改进。
1) 原有的像素补偿优先级包括置信项C(p)和数据项D(p)。由于高光程度低的像素更接近周围色彩,先对其补偿可使颜色变化更自然,引入高光项(256-V′(p)),则
2) 修补高光时,原有相似度计算仅包含修补块p与待匹配块q之间对应行列位置(i, j)像素在RGB三通道上的差异,而与待补偿位置较近的匹配块应优先被考虑,故引入距离项D(p, q)为匹配块与修补位置间的中心像素距离,则
3) 现有算法主要针对复杂纹理填补问题,纹理的复杂化导致区域内的整体色彩变化被隐藏,而水体整体色彩变化占主导地位。修复水体时,最初的修补块与周围存在细微色彩差异,直接使用Criminisi算法会导致差异累计,最终产生明显的色彩突变。因此,每次修补后还要在修补位置进行平滑滤波。
4) 将高光区域周围的非高光水体作为参考,使用改进的Criminisi算法补偿高光。由于补偿后的区域内部尚存在低程度的色彩突变,补偿后需再次进行平滑滤波。
1.1. 初始高光区域提取
1.1.1. 高光分量
1.1.2. 初始高光区域提取
1.2. 误检测高光剔除
1.3. 水体高光区域精化
1.4. 水体高光补偿
-
图 4所示试验数据均由无人机航飞获取,红框处为高光大致位置:影像4(a)-4(c)来自武汉市江夏区五里界,所用相机为Canon PowerShot ELPH 110 HS,4 608×3 456像素大小;影像4(d)-4(f)来自武汉工贸职业学院南侧,使用Canon PowerShot G9X,5 472×3 648像素大小(展示时调整为影像4(a)比例大小);影像4(g)-4(i)来自黄冈市罗田县三里畈巴河某段。相机参数均为自动,搭载平台为某型双翼无人机,航高约250~340 m,地面分辨率约6~8 cm。航飞时天气晴朗、少云且风力2~3级。
文中提及的人工阈值如下:N2为8、μ2为0.89;V′max为235,V′1为190,V′min为150,Smax为20;V′mid为220,Smid为5;τ为3;§1.2中统计或学习参数方面V′2设为245,S2为3,对[αV2, βV2, αS2, βS2]进行学习得到w为[1.015 7, -1.218 9, 0.039 2, 0.184 2],b为0.963 6。
-
本文方法检测的高光结果如图 5所示。
以影像5(a)为例,本文方法可将距核心高光较近的离散高光点纳入到补偿范围(图 6(a))。图 6(b)所示的水体边缘处存在连续的高光点。这是因为风的摩擦作用形成的波浪排击岸边后,反射波浪与原波浪的叠加使得近岸处的波浪更密集,拍摄角度合适时则会产生较多的高光点,故检测结果符合真实情况。
-
分别使用Mallick[13]、Shen[18]、Yoon[17]等人提出的高光补偿方法和本文方法对试验数据进行处理。如图 7所示,从补偿效果来看,本文方法针对性强,仅处理了影像中的水体部分,效果较好且保留了其他地物信息。而其他方法均造成影像失真与信息损失,导致影像不能被后续使用(图 7(i)中第2行图结果仅含有少量信息损失,局部放大如图 8所示)。
Figure 7. Each Image from Top to Bottom are Results of Mallick's, Shen's, Yoon's Methods and Our Method
本文方法较好地恢复了水体的整体色彩变化,以影像图 9(a)为例。图 9(a)中箭头所指的高光同时位于云影与非云影之间,且附近存在一小片云影(见图 9(c)右上部)。结果表明,本文方法也恢复了两个较近云影间的过度连接关系。相比于本文方法,除图 7(i)中第2行图内的水体没有明显变化外,其他算法均造成了水体失真。
除提供目视效果外,以原始影像为基准,使用经典影像质量评价指数峰值信噪比[27](peak signal to noise ratio,PSNR)和结构相似性[28](structural similarity index,SSIM)对结果进行评价(见表 1)。其中,PSNR值越大,代表影像恢复质量越高,SSIM值越大,代表影像的有用信息损失越少。另外,计算两张相同影像的PSNR值时会导致分母为零、分式无意义,故原始影像的PSNR值不存在。
数据 评价指标 原始影像 Mallick方法 Shen方法 Yoon方法 本文方法 图 7(a) PSNR — 16.951 20 13.592 40 8.657 59 32.986 50 SSIM 1 0.516 79 0.588 52 0.197 91 0.984 56 图 7(b) PSNR — 13.664 30 8.182 90 6.276 32 33.893 50 SSIM 1 0.585 82 0.410 09 0.082 81 0.991 14 图 7(c) PSNR — 16.089 50 12.098 30 7.925 96 31.960 20 SSIM 1 0.493 68 0.473 36 0.171 79 0.984 44 图 7(d) PSNR — 15.568 10 11.433 90 6.863 11 33.549 40 SSIM 1 0.509 55 0.527 31 0.113 75 0.964 90 图 7(e) PSNR — 12.259 50 8.519 52 6.332 30 15.156 70 SSIM 1 0.321 71 0.413 84 0.085 75 0.744 66 图 7(f) PSNR — 13.738 70 11.240 50 8.452 03 27.901 30 SSIM 1 0.524 72 0.542 79 0.105 76 0.973 73 图 7(g) PSNR — 16.477 10 23.023 80 5.102 08 27.437 70 SSIM 1 0.526 83 0.974 69 0.054 03 0.942 10 图 7(h) PSNR — 15.465 40 20.691 60 6.676 17 19.171 80 SSIM 1 0.512 38 0.980 41 0.156 60 0.861 06 图 7(i) PSNR — 12.729 00 30.429 90 6.619 50 26.890 80 SSIM 1 0.426 76 0.981 69 0.121 51 0.963 65 Table 1. Evaluation of Processing Results
相对于其他影像,影像7(g)-7(i)的物质组成较为单一,大部分为河床沙和人工地物,与其他方法相比,Shen方法仅影响了该组影像的较小区域,评价结果与本文方法相近或优于本文方法,但目视结果表明该方法将导致影像空洞(见图 8)。除该特例外,PSNR评价结果表明,本文方法的恢复质量优于其他方法;SSIM评价结果表明,本文方法保留了原始影像更多的信息,更接近原始影像的SSIM值,其他方法则损失了大量信息。
-
为进一步验证本文方法,使用Pix4Dmapper软件分别对含有影像(见图 10(a))水体的高光补偿前后影像进行处理,生成DOM,两次结果如图 10所示,为展示效果,仅截取了DOM中的水体部分。
图 10(a)为对原始影像的处理结果,但仍保留了两处较明显的高光区域:左侧为一处完整高光区域;而中部,高光与非高光之间则存在明显的拼接痕迹与失真。图 10(b)为高光补偿后的处理结果,相同位置未出现明显高光,色彩过渡较为连续。结果表明,本文方法处理水体高光后生成的DOM质量明显提高,水体内未见明显高光,且色彩变化较连续,没有明显的拼接痕迹与失真。
2.1. 试验数据及主要阈值设置
2.2. 试验结果与分析
2.2.1. 水体高光检测结果
2.2.2. 水体高光补偿结果与对比
2.2.3. 本文算法用于DOM生成结果
-
本文提出了一种针对单张无人机影像的水体高光自动检测与补偿方法,将高光作为一个整体进行单独处理。一方面,高光分量可提高高光与非高光之间的差异,为后续处理提供有利条件;另一方面,将高光补偿问题等价于地物去除并使用改进的Criminisi算法,补偿效果较好。使用无人机影像对本文方法进行试验,证明本文方法有效可行,与其他方法处理结果进行目视与客观评价比较,本文方法针对性强,恢复水体色彩的同时未损失其他信息;分别使用高光处理前后的影像生成DOM,本文方法改善了DOM质量。
当高光靠近水体边缘时,较亮的少量非水体像素可能被当作水体高光并被补偿为水体,且当高光区域内存在其他地物时则被消除。未来工作将尝试在影像拼接过程中使用一定方法从重叠影像中获取缺失的信息。