计算机系统应用  2020, Vol. 29 Issue (1): 209-214   PDF    
高光去除的聚类算法改进
许丽, 宋滢     
浙江理工大学信息学院, 杭州 310018
摘要:高光去除是计算机视觉领域研究的一个热点问题. 现有的基于双色反色模型分离漫反射分量和镜面反射分量去除单幅图像中的高光的方法, 容易引起图像颜色失真和纹理的丢失. 针对此问题, 在使用像素强度比去高光的基础上改进了像素聚类算法, 能够更准确的进行像素分类, 改善图像颜色失真的现象. 首先计算原图像与最小强度值单通道图像的差值得到无高光图像. 然后根据无高光图像计算与高光区域相关的每个像素点的最大漫反射色度值和最小漫反射色度值. 最后将高光区域内的像素点转换到最小最大色度空间, 对高光区域内的像素点进行x-means聚类, 利用分类后漫反射像素点的强度比估计值很容易分离高光区域像素点的镜面反射分量, 从而得到去高光图像. 实验结果表明, 与现有的方法对比, 峰值信噪比值平均提升了2%至4%, 图像颜色失真和纹理丢失状况得到改善, 视觉效果更好.
关键词: 双色反射模型    色度    反射分量    强度比    x-means    
Specular Highlight Removal Using Improved Pixel Clustering
XU Li, SONG Ying     
School of Information Science and Technology, Zhejiang Sci-Tech University, Hangzhou 310018, China
Foundation item: Technology Application Plan for Public Welfare of Zhejiang Province (2017C31032)
Abstract: Specular highlight removal is a hot topic in the field of computer vision. Existing methods based on dichromatic reflection model,which separate diffuse and specular reflection components to remove specular highlights in a single image, tend to cause color distortion and texture loss. To relieve this problem, the pixel clustering algorithm is improved by using pixel intensity ratio to remove specular highlight, which can more accurately classify pixels and improve the image color distortion. Firstly, the difference between the original image and the single channel image of the minimum intensity value is calculated, to obtain the specular-free image. Secondly, the minimum and maximum diffuse chromaticity values for each pixel in the highlight area is estimated based on the specular-free image. Finally, the distribution pattern of the pixels in the highlight area are analyzed in a minimum-maximum chromaticity space and clustered by x-means method. The specular components of highlight area pixels can be easily separated by using the estimated intensity ratio of diffuse pixels, thereby getting a non-highlight image. Experimental results show that, compared with the existing method, the peak signal-to-noise ratio increases by 2% to 4% on average, and the image color distortion and texture loss are improved with better visual effects.
Key words: dichromatic reflection model     chromaticity     reflection component     intensity ratio     x-means    

在计算机视觉的许多应用中, 如边缘检测[1]、目标或者场景的识别[2,3]、特征匹配[4], 基于图像的多视角几何三维重建[5], 处理的物体或者场景的图像都是基于理想的朗伯表面假设, 当用这些算法处理非朗伯表面时效果往往并不理想, 由于拍摄的物体或场景的图像含有高光区域, 这时会出现无法检测识别场景和物体, 特征点少, 以及重建出的几何不完整的现象. 双色反射模型[6]提出, 图像是镜面反射分量和漫反射分量的线性组合. 漫反射和镜面反射是由光和物体表面之间不同的物理相互作用形成的. 在非均匀光照条件下, 物体表面会出现高光现象, 这是物体表面强反射造成的. 为了提高这些算法在计算机视觉领域的精确性, 去除单张图像中的高光部分很有必要.

Tan等人[7]提出近似于仅含漫反射的无高光图像, 迭代地将高光位置的色度替换为相邻像素的最大漫反射色度, 直到算法收敛. 利用漫反射分量与镜面反射分量的差别达到去除镜面反射分量的目的, 但是这种方法非常耗时. Shen等人[8]使用改进的SF图像MSF图像(Modified Specular-Free image, MSF), MSF图像色度的计算比Tan等人[7]的SF图像计算出的色度更具鲁棒性, 然后利用最小二乘法分离镜面反射分量和漫反射分量去除图像中的高光. Shen和Cai[9]根据镜面区域与漫反射区域边界平滑过渡的准则对镜面反射分量进行调整, 此方法没有进行耗时的迭代处理, 使计算更简单, 但是效果一般. Shen等人[10]在最小最大色度空间对像素点进行聚类, 将每个类的像素点的最大强度值与最大强度值和最小强度值差值之比升序排列, 取序列中值作为该类所有像素点的统一的强度比值, 用于分离镜面反射分量. Souza等人[11]发现相关像素点在最小最大色度空间中的分布呈三角形, 故选出固定的3个种子点将相关像素点聚类为3类, 估计出每个类的统一的强度比, 去除图像中的镜面分量. 以上方法都不同程度的存在图像颜色失真和纹理丢失的问题. Li等人[12]利用黑色素和血红蛋白的模型表示面部皮肤的漫反射颜色变化, 并用这个物理模型约束高光去除的解决方案, 这就不需要摄像机颜色校准, 可以对在多种光照环境中的人脸图像进行高光去除, 但这种方法需要人体皮肤和面部的物理和统计的先验知识并且只局限在脸部高光的去除. Yang等人[13]利用多视角图像序列去除镜面反射分量, 但通常没有场景或物体的多幅多视角图像. Ren等人[14]将RGB颜色空间转换到球形坐标系下, 通过聚类像素点去除高光. Yang等人[15]将最大漫反射色度估计值作为低通滤波器的值域, 处理后的最大漫反射色度用于镜面反射分量去除. Wang等人[16]利用强度比去除高光分量的方法产生高光区域的图像掩码, 随后进行图像修复工作, 但这只针对海洋表面图像的解决方法.

本文针对高光图像颜色失真或者纹理缺失的现象对像素聚类算法做了相关的改进, 像素聚类的方法使用不需要用户指定分类数的聚类方法x-means, 自动确定像素点的分类数. 实验结果表明, 该方法能够有效的去除图像高光和改善图像颜色失真的现状.

1 双色反射模型

大多数非均匀材质的物体, 如塑料制品、丙烯酸树脂制品等, 都同时表现出漫反射和镜面反射. 漫反射是由于物体表面和物体内部折射率的变化引起的, 而镜面反射主要是由于物体表面和空气折射率的不同引起的. 根据双色反射模型[6], 假设光照颜色是均匀的, 数码彩色相机拍摄的非均匀物体图像的像素x位置处的RGB颜色向量 ${{I}}\left( x \right)$ 可以表示成式(1):

${{I}}\left( x \right) = {{{w}}_{\rm{d}}}\left( x \right){{D}}\left( x \right) + {{{w}}_{\rm{s}}}\left( x \right){{S}}$ (1)

其中, ${{D}}\left( x \right) = \int_\Omega {{{S}}\left( {{{\lambda}}, x} \right)} {{E}}\left( {{\lambda}} \right){{q}}\left( {{\lambda}} \right){\rm{d}}{{\lambda}} $ ; ${{S}}= \int_\Omega {{{E}}\left( {{\lambda}} \right)} {{q}}\left( {{\lambda}} \right){\rm{d}}{{\lambda}} $ 代表镜面反射分量; $x = \left\{ {u, v} \right\}$ 为二维图像中像素点的坐标; ${{I}}\left( x \right) = \left\{ {{{{I}}_{\rm{r}}}\left( x \right),{{{I}}_{\rm{g}}}\left( x \right),{{{I}}_{\rm{b}}}\left( x \right)} \right\}$ 为图像中x位置像素点的颜色向量; ${{{w}}_{\rm{d}}}\left( x \right)$ 为图像中x位置像素点的漫反射权重系数; $\Omega $ 为可见光光谱; ${{\lambda}} $ 为波长; ${{S}}\left( {{{\lambda}}, x} \right)$ 为漫反射光谱反射率函数; ${\rm{E}}\left( {{\lambda}} \right)$ 为光照的光谱功率分布函数. 假设光照颜色一致, 则 ${{E}}\left( {{\lambda}} \right)$ 不依赖于像素的位置; ${{q}} = \left\{ {{{{q}}_{\rm{r}}}{\rm{,}}{{{q}}_{\rm{g}}}{\rm{,}}{{{q}}_{\rm{b}}}} \right\}$ 为传感器对三原色的敏感度. 假设忽略相机噪声和相机增益等因素的影响, 镜面反射分量可以用来估计光照颜色, 满足光照颜色与镜面反射颜色相等[6].

Shen等人[10]定义色度(Chromaticity)表示像素点颜色的归一化, 色度定义为式(2):

${{\sigma }}\left( x \right) = \frac{{{{I}}\left( x \right)}}{{{{{I}}_{\rm{r}}}\left( x \right) + {{{I}}_{\rm{g}}}\left( x \right) + {{{I}}_{\rm{b}}}\left( x \right)}}$ (2)

由此可知漫反射色度 ${{\Lambda }}$ 可以表示为 $ {{\Lambda }}\left( x \right) =$ $ \dfrac{{{{D}}\left( x \right)}}{{{{{D}}_{\rm{r}}}\left( x \right) + {{{D}}_{\rm{g}}}\left( x \right) + {{{D}}_{\rm{b}}}\left( x \right)}}$ , 镜面反射色度 ${{\Gamma }}$ 可以表示为 ${{\Gamma }} = \dfrac{{{S}}}{{{{{S}}_{\rm{r}}} + {{{S}}_{\rm{g}}} + {{{S}}_{\rm{b}}}}}$ . 则式(1)可以用漫反射色度和镜面反射色度表示为式(3):

${{I}}\left( {{x}} \right) = {{{m}}_{\rm{d}}}\left( x \right){{\Lambda }}\left( x \right) + {{{m}}_{\rm{s}}}\left( x \right){{\Gamma }}$ (3)

其中, ${{{m}}_{\rm{d}}}\left( x \right) = {{{w}}_{\rm{d}}}\left( x \right)\left[ {{{{D}}_{\rm{r}}}\left( x \right) + {{{D}}_{\rm{g}}}\left( x \right) + {{{D}}_{\rm{b}}}\left( x \right)} \right]$ ; $ {{{m}}_{\rm{s}}}\left( x \right) =$ $ {{{w}}_{\rm{s}}}\left( x \right)\left[ {{{{S}}_{\rm{r}}} + {{{S}}_{\rm{g}}} + {{{S}}_{\rm{b}}}} \right]$ .

2 高光去除相关理论

本文去高光过程如图1所示. 首先计算MSF图像(b), 根据MSF图像计算所有像素点的最小漫反射度(c), 最大漫反射(d). 在最大最小色度空间对高光区域相关像素点进行x-means分类(e), 根据分类结果估计强度比分离漫反射分量(f)和镜面反射分量(g).

2.1 强度比

对于同种颜色的非均匀材质的表面, 可分为仅含有漫反射分量的像素和同时有漫反射分量和镜面反射分量的像素, Shen等人[10]在此基础上, 提出了强度比的概念, 即利用漫反射像素点的最大强度值与强度范围值(最大强度值减去最小强度值)之比, 对于颜色非均匀的表面根据强度比值在最小最大色度空间中对像素进行聚类, 用来去除图像中的高光.

图 1 高光去除过程

文献[10]将强度比 ${{{I}}_{{\rm{ratio}}}}\left( x \right)$ 的定义为式(4):

${{{I}}_{{\rm{ratio}}}}\left( x \right) = \frac{{{{\rm{\Lambda }}_{{\rm{max}}}}}}{{{{\rm{\Lambda }}_{{\rm{max}}}} - {{{\Lambda }}_{{\rm{min}}}}}} + \frac{{{{{m}}_{\rm{s}}}\left( x \right){{\Gamma }}}}{{{{{m}}_{\rm{d}}}\left( x \right){{{\Lambda }}_{{\rm{range}}}}\left( x \right)}}$ (4)

通过上述式(4)可知, 漫反射像素点强度比的计算仅和漫反射色度值有关, 并且高光区域像素点强度比值大于只含有漫反射的像素点. 由于高光附近区域的漫反射像素点依然受到高光的影响, 因此这些漫反射像素点的强度比值难以估计.

2.2 漫反射色度估计

Shen等人[8]提出用MSF图像计算漫反射色度. 输入的图像减去 ${{{I}}_{{\rm{min}}}}$ 加上 ${{{I}}_{\min }}$ 的均值 $\overline {{{{I}}_{\min }}} $ 得到MSF图像 ${{{I}}_{{\rm{sf}}}}\left( x \right) = {{{m}}_{\rm{d}}}\left( x \right)\left( {{{\Lambda }}\left( x \right) - {{{\Lambda }}_{{\rm{min}}}}\left( x \right)} \right) + \overline {{{{I}}_{{\rm{min}}}}} $ . 通过 ${{{I}}_{{\rm{sf}}}}$ 图像可以计算像素点的漫反射色度 ${\Lambda _{{\rm{sf}}, c}}\left( x \right) \!=\! \dfrac{{{{{I}}_{{\rm{sf}}, c}}\left( x \right)}}{{{I_{{\rm{sf}},{\rm{r}}}}\left( x \right) \!+\! {I_{{\rm{sf, g}}}}\left( x \right) \!+\! {I_{{\rm{sf, b}}}}\left( x \right)}}$ , 其中 $c \in \left\{ {{\rm{r, g, b}}} \right\}$ . 漫反射点的强度比仅依赖于最小漫反射色度 $\Lambda _{{\rm{sf}}}^{\min }\left( x \right) = \min \left( {{\Lambda _{{\rm{sf, r}}}}\left( x \right),{\Lambda _{{\rm{sf, g}}}}\left( x \right),{\Lambda _{{\rm{sf, b}}}}\left( x \right)} \right)$ 和最大漫反射色度 $\Lambda _{{\rm{sf}}}^{\max }\left( x \right) = \max \left( {{\Lambda _{{\rm{sf, r}}}}\left( x \right),{\Lambda _{{\rm{sf, g}}}}\left( x \right),{\Lambda _{{\rm{sf, b}}}}\left( x \right)} \right)$ . 高光去除针对的是高光区域以及与之相关的区域, 与高光无关的像素不应参与后续计算. 当 ${{{I}}_{{\rm{min}}}}\left( x \right) > \overline {{{{I}}_{\min }}} $ 时认为该像素点与高光区域有关, 否则认为不含有高光分量, 在后续计算中应被丢弃.

3 像素聚类方法的改进

文献[10]计算未分类的像素点与所有类中心点的色度距离, 但是需要设置阈值控制像素点的分类, 这导致分类结果依赖于阈值. 文献[11]选取初始的3个种子点, 将相关像素点转换到最小最大漫反射色度空间, 迭代两次K-means算法[17]将每张图像高光相关像素点分为3类, 估计出每类稳健的强度比, 用于去除高光. 然而这种方法有一定的局限性, 两次K-means算法迭代不一定达到收敛的状态或者收敛到局部最优解.

本文提出使用x-means聚类算法[18]进行相关像素的分类, 该算法使用kd-tree算法(k-dimensional tree)[19]对K-means算法的每一轮迭代进行了加速, 根据贝叶斯信息准则分数(Bayesian Information Criterion score, BIC)确定一个最优分类数K, 无需用户指定. 每一轮迭代对每一类只进行了2-means分类, 2-means分类对局部最优解不敏感, 所以能够达到更好的分类效果, 分类效果如图1(e)所示.

本文在最小最大漫反射色度空间用二范数定义两个像素点的距离为式(5):

${{\rm{d}}_\Lambda }\left( {x, y} \right) = {\left\| {{\Lambda ^{\rm{P}}}\left( x \right) - {\Lambda ^{\rm{P}}}\left( y \right)} \right\|_2}$ (5)

其中, $ {\Lambda ^{\rm{P}}}\left( x \right) = \left( {\Lambda _{{\rm{sf}}}^{{\rm{min}}}\left( x \right),\Lambda _{{\rm{sf}}}^{{\rm{max}}}\left( x \right)} \right)$ ; ${\Lambda ^{\rm{P}}}\left( y \right) =\left( \Lambda _{{\rm{sf}}}^{{\min}}\left( y \right),\right. $ $\left. \Lambda _{{\rm{sf}}}^{{\max}}\left( y \right) \right)$ .

文献[10]提出镜面反射分量 ${{S}}\left( x \right)$ 为式(6):

${{S}}\left( x \right) = {{{I}}_{{\max}}}\left( x \right) - {{{I}}_{{\rm{ratio}}}}\left( x \right) * {{{I}}_{{\rm{range}}}}\left( x \right)$ (6)

这时 ${{{I}}_{{\rm{max}}}}\left( x \right) = {{{I}}_{{\rm{ratio}}}}\left( x \right) * {{{I}}_{{\rm{range}}}}\left( x \right)$ 会导致 ${\rm{S}}\left( x \right)$ 为零. 故使用x-means对像素进行分类后, 将每类像素点的强度比升序排列, 取中值作为每类稳健的强度比估计值, 将每个类的像素点强度比设为该值, 可以解决 ${\rm{S}}\left( x \right)$ 为零的问题, 从而分离镜面反射分量如图1(g)所示, 得到的无高光图如图1(f)所示.

x-means算法如算法1.

算法1. x-means聚类算法

1)随机选取一个聚类中心点c(x, y).

2)计算所有像素点 $\scriptstyle {x_i}$ 与中心点的漫反射色度距离 $\scriptstyle {{d}_\Lambda }\left( {{x_i},{{c}}} \right)$ 进行初始分类.

3) 得到初始分类结果后, 再依次找每一类的两个相对离得较远的点作为初始中心点, 然后对当前类运行一次K-means (K=2)算法.

4) 计算每个类分裂前与分裂后的BIC分数, BIC值越大越好, 以此决定保留分裂前的状态还是分裂后的状态.

5) 回到2)进行迭代, 如果前后两次迭代中心点的数量一样, 则结束整个分类过程.

4 实验结果与分析

文献[10,11]都是基于强度比去除镜面反射分量, 为了验证本文方法的有效性, 在Shen和Zheng[10]的数据集上, 将本文实验结果与这两篇文献做比较. 本文实验平台为Intel(R) Core(TM) i5-4590 CPU @ 3.30 GHz 12 GB RAM, 使用OpenCV 2.3.1库[20]进行测试.

本文测量标准高光去除数据集[10]中50幅图片的峰值信噪比(Peak Signal-to-Noise Ratio, PSNR). 表1为本文方法与文献[10,11]方法的PSNR值比较, PSNR值越大说明结果图像越接近原图像. 结果显示, 本文的方法在3幅图像上的PSNR值与文献[10,11]比均有所提高. 图2为本文方法与文献[10,11]可视化结果的比较, 可见本文在视觉效果上也有明显改善. Shen和Zheng等人[10], Souza等人[11]在处理图像时会有明显的颜色不一致现象, 如animals图2(c)图2(d)框选处, 本文与[10,11]相比在框选处皆有明显的改善, 最大程度的保留了图像纹理和颜色.

表 1 不同方法的PSNR值

表1中对比了3个算法的峰值信噪比. 对于animals图本文方法比Shen等人[10]的峰值信噪比提高了0.99, 比Souza等人[11]峰值信噪比提高了0.67, 峰值信噪比越高表明图像越接近真实图像. 对于cups图, 本文方法比Shen等人[10]的峰值信噪比提高了0.52, 比Souza等人[11]峰值信噪比提高了0.91. 对于mask图, 本文方法比Shen等人[10]的峰值信噪比提高了1.44, 比Souza等人[11]峰值信噪比提高了0.79.

5 结论与展望

本文对使用强度比分离镜面反射分量和漫反射分量去除高光进行了理论分析和实验数据分析. 针对像素点在色度空间的聚类数不稳定提出使用x-means聚类算法自动确定聚类数, 实验结果表明, 本文方法保护图像纹理信息和颜色信息方面均高于传统方法.

本文方法存在一定的局限性, 不能处理大面积高光区域, 高光区域过强接近白色时处理效果不理想, 因此在高光去除领域仍然需要发展更大的高光去除数据集, 这同时有利于深度学习策略提供高质量的高光去除. 因此, 未来研究方向是如何去除大面积高光.

图 2 不同算法处理结果

参考文献
[1]
Gevers T, Stokman H. Classifying color edges in video into shadow-geometry, highlight, or material transitions. IEEE Transactions on Multimedia, 2003, 5(2): 237-243. DOI:10.1109/TMM.2003.811620
[2]
Tominaga S. Surface identification using the dichromatic reflection model. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1991, 13(7): 658-670. DOI:10.1109/34.85656
[3]
Gevers T, Smeulders AWM. Color-based object recognition. Pattern Recognition, 1999, 32(3): 453-464. DOI:10.1016/S0031-3203(98)00036-3
[4]
Xing XH, Gu GH. Method of quickly recognizing vehicle plate based on pattern matching and characteristic dot matching. Optoelectronic Technology, 2003, 23(4): 268-270.
[5]
Fuhrmann S, Langguth F, Goesele M. MVE: A multi-view reconstruction environment. Proceedings of the Eurographics Workshop on Graphics and Cultural Heritage. Darmstadt, Germany. 2014. 11–18.
[6]
Shafer S A. Using color to separate reflection components. Color Research & Application, 1985, 10(4): 210-218.
[7]
Tan RT, Ikeuchi K. Separating reflection components of textured surfaces using a single image. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2005, 27(2): 178-193. DOI:10.1109/TPAMI.2005.36
[8]
Shen HL, Zhang HG, Shao SJ, et al. Chromaticity-based separation of reflection components in a single image. Pattern Recognition, 2008, 41(8): 2461-2469. DOI:10.1016/j.patcog.2008.01.026
[9]
Shen HL, Cai QY. Simple and efficient method for specularity removal in an image. Applied Optics, 2009, 48(14): 2711-2719. DOI:10.1364/AO.48.002711
[10]
Shen HL, Zheng ZH. Real-time highlight removal using intensity ratio. Applied Optics, 2013, 52(19): 4483-4493. DOI:10.1364/AO.52.004483
[11]
Souza ACS, Macedo MCF, Nascimento VP, et al. Real-time high-quality specular highlight removal using efficient pixel clustering. SIBGRAPI. Parana, Brazil. 2018. 56–63.
[12]
Li C, Lin S, Zhou K, et al. Specular highlight removal in facial images. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA. 2017. 2780–2789.
[13]
Yang QX, Wang SN, Ahuja N, et al. A uniform framework for estimating illumination chromaticity, correspondence, and specular reflection. IEEE Transactions on Image Processing, 2011, 20(1): 53-63. DOI:10.1109/TIP.2010.2055573
[14]
Ren WH, Tian JD, Tang YD. Specular reflection separation with color-lines constraint. IEEE Transactions on Image Processing, 2017, 26(5): 2327-2337. DOI:10.1109/TIP.2017.2675204
[15]
Yang QX, Tang JH, Ahuja N. Efficient and robust specular highlight removal. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(6): 1304-1311. DOI:10.1109/TPAMI.2014.2360402
[16]
Wang SK, Yu CY, Sun YJ, et al. Specular reflection removal of ocean surface remote sensing images from UAVs. Multimedia Tools and Applications, 2018, 77(9): 11363-11379. DOI:10.1007/s11042-017-5551-7
[17]
Hartigan JA, Wong MA. A K-means clustering algorithm . Journal of the Royal Statistical Society: Series C (Applied Statistics), 1979, 28(1): 100-108.
[18]
Pelleg D, Moore A. X-means: Extending K-means with efficient estimation of the number of clusters. Proceedings of International Conference on Machine Learning. Stanford, CA, USA. 2000. 727–734.
[19]
Zhou K, Hou QM, Wang R, et al. Real-time KD-tree construction on graphics hardware. ACM Transactions on Graphics (TOG), 2008, 27(5): 126.
[20]
Kaehler A, Bradski G R. Learning OpenCV 3: Computer vision in C++ with the OpenCV library. Sebastopol: O’Reilly, 2016.