当观察者在观察一幅图像时会选择性地忽略掉图像中自己所不关注的区域, 而关注那些自己感兴趣的区域, 这些感兴趣的区域就是图像处理中要模拟人的视觉注意机制提取的显著性区域. 人类视觉注意机制有两种, 其一是自下而上的注意机制, 使用一幅图像的各个初级底层特征, 获取显著区域, 进而获得我们所需要的显著图. 其二是自上而下的注意机制, 基于人的主观意识, 人为的选择显著区域. 由此得来的常见的显著性检测模型有: 认知模型, 信息论模型, 图论模型, 频域模型. 在认知模型中最经典的算法模型就是Itti视觉注意计算模型, 这种模型能够通过普通的纯数学方法来计算我们所需要的显著区域, 而不需要花费大量的时间来学习, 但是计算过程和参数设置的繁琐限制了其在更大范围内的应用[1,2]. 张玉薇等提出了一种结合图像边缘检测技术的基于Canny边缘检测的改良的Itti视觉注意计算模型[3].
而Canny算法存在一定的缺陷: 边缘检测过程中定位精度较低的问题、容易出现漏检的问题以及容易检测出伪边缘的问题等. 本文在张玉薇等人研究的基础上, 主要对Canny边缘检测算法进行改进, 提出一种建立在优化后的Canny算法基础上的Itti视觉注意计算模型, 以期模型准确率、性能上的提升. 本文算法实现步骤如图1所示.
1 传统Itti模型原理 1.1 Itti模型简介
Itti模型理论是在1998年被提出[4], 后来在2001年又得到了进一步的改进.
Itti视觉显著性模型的基本思想是通过对一幅输入图像提取初级的3个视觉特征, 接着建立各类特征的高斯金字塔, 然后对高斯金字塔使用中央-周边方法和归一化方法获取多个特征图, 最后将这些特征图进行交叉尺度合并和归一化操作得到相应的单特征维显著图, 最后线性融合3张显著图得到我们所需要的整合的一张显著图.
1.2 Itti模型检测步骤(1) 为了获得亮度特征和颜色特征的九层金字塔, 我们首先需要对r, g, b三通道做图像降采样, 依次获得9个不同尺度的三通道图像r(σ), g(σ), b(σ), 其中σ∈{0~8}.
然后我们依次建立各类特征的九层高斯金字塔:
亮度特征公式:
${I}(\sigma ) = (r(\sigma ) + g(\sigma ) + b(\sigma ))/3$ | (1) |
颜色特征公式:
红色:
$R(\sigma ) = r(\sigma ) - (g(\sigma ) + b(\sigma ))/2$ | (2) |
绿色:
$G(\sigma ) = {{g}}(\sigma ) - (r(\sigma ) + b(\sigma ))/2$ | (3) |
蓝色:
$B(\sigma ) = {{b}}(\sigma ) - (r(\sigma ) + g(\sigma ))/2$ | (4) |
黄色:
${{Y}}(\sigma ) = (r(\sigma ) + g(\sigma ))/2 - |r(\sigma ) - g(\sigma )|/2 - {{b}}(\sigma )$ | (5) |
然后使用Gabor滤波器构建方向金字塔O(σ,θ), 其中σ∈{0~8}, θ∈{0°, 45°, 90°, 135°}.
(2)接着, Itti算法利用中央—周边(center-surround)方法对每一个特征都分别在特征金字塔的不同尺度间做相减计算从而得到对应的特征图. 然后将不同尺度的图像调整到相同分辨率后再做点对点相减操作, 这个过程用符号Θ表示. 则具体计算公式为:
亮度特征图:
$I(c,s) = |I(c)\Theta I(s)|$ | (6) |
红/绿颜色特征图:
$RG(c,s) = |(R(c) - G(c))\Theta (G(s) - R(s))|$ | (7) |
蓝/黄颜色特征图:
$BY(c,s) = |(B(c) - Y(c))\Theta (Y(s) - B(s))|$ | (8) |
方向特征图:
$O(c,s,\theta ) = |O(c,\theta )\Theta O(s,\theta )|$ | (9) |
(3)然后分别进行归一化操作, 该过程用符号N表示. 接着对处理后的的42张特征图(亮度×6、颜色×12、方向×24)进行跨尺度合并(across-scale combinations)操作, 即将多幅图像的尺度调整到相同分辨率后再做点对点相加操作, 这个过程用符号Å表示, 则亮度特征显著图、方向特征显著图、颜色特征显著图的计算如式(10)–式(12)所示:
亮度特征显著图:
$\mathop I\limits^\_ = \mathop \oplus \limits_{c = 2}^4 \mathop \oplus \limits_{s = c + 3}^{c + 4} N(I(c,s))$ | (10) |
颜色特征显著图:
$\mathop C\limits^\_ = \mathop \oplus \limits_{c = 2}^4 \mathop \oplus \limits_{s = c + 3}^{c + 4} [N(RG(c,s)) + N(BY(c,s))]$ | (11) |
方向特征显著图:
$\mathop {{O}}\limits^\_ = \sum N\left(\mathop \oplus \limits_{c = 2}^4 \mathop \oplus \limits_{s = c + 3}^{c + 4} N(O(c,s,\theta )) \right)$ | (12) |
(4)对三张显著图进行归一化(normalization)操作后进行线性合并得到最终的显著图, 如式(13)所示, 显著图使用胜者为王竞争机制, 满足返回抑制特点, 找到注意点, 然后循环下一个点.
$S = (N(\mathop I\limits^\_ ) + N(\mathop C\limits^\_ ) + N(\mathop O\limits^\_ ))/3$ | (13) |
传统Canny边缘检测算法[5]通过寻找像素点局部最大值并沿着梯度方向比较其梯度值, 确定高低阈值之间边缘点. 检测步骤为: 先对图像进行灰度化处理, 然后用高斯滤波对图像降噪, 接着计算图像的梯度幅值和方向, 再对图像进行局部非极大值抑制处理, 最后进行阈值筛选和边缘连接就确定了我们所要找的边缘.
2.2 传统Canny算法的缺陷(1)在图像降噪处理时是使用高斯滤波来对原始图像进行降噪处理, 而其对图像的降噪平滑处理在面对椒盐噪声时效果并不是特别理想, 且边缘保持的效果不好.
(2)在进行边缘检测时, 是从水平和垂直两个方向上采用2×2大小的模板通过derivative operator对滤波结果进行求导处理, 从而计算出导数的幅值和相角. 从两个方向对图像进行边缘检测, 容易出现伪边缘和漏检现象.
(3)阈值筛选的过程中是通过人为的设定高、低阈值, 将低阈值与高阈值中间的像素点确定为图像的边缘. 而使用固定的阈值所引发的问题是, 如果设置的高阈值太小会出现误检现象, 太大则出现漏检现象. 而设置太大的低阈值会出现漏检现象, 太小会出现较多的误检.
3 优化传统Canny边缘检测算法 3.1 改进双边滤波对图像平滑双边滤波器算法利用某个像素点周围像素点亮度值的加权平均来表示其强度, 这一方面与高斯滤波相似. 另一方面, 双边滤波可以基于像素空间接近度和灰度相似性处理图像, 并去除噪声, 同时保持更多的图像特征[6]. 双边滤波相比高斯滤波可以更好的保持边缘(edge perseving), 对于图像模糊来说双边滤波可以有更好的效果. 双边滤波在采样时考虑像素的欧氏距离、空间距离关系以及像素范围域(range domain) R中的辐射差异, 因而相比起高斯滤波来说, 可以更好的保持边缘.
通常双边滤波可以用一个公式来定义. 如式(14):
${I_p} = \frac{1}{{{W_p}}}\sum\limits_{q \in S} {{G_{{\sigma _c}}}(||p - q||){G_{{\sigma _s}}}(|{I_p} - {I_q}|){I_q}} $ | (14) |
其中, Wp的公式为:
${{{W}}_p} = \sum\limits_{q \in S} {{G_{{\sigma _c}}}(||p - q||){G_{{\sigma _s}}}(|{I_p} - {I_q}|)} $ | (15) |
其中, Iq为输入图像中的某个位置上的像素值, Ip是滤波后图像. Wp是一个标准量, 用于归一化权重和. ||p–q||表示的是两个值p、q之间的欧式距离. Gσc(||p–q||)表示的是像素之间的空间距离关系, 可以有效的减少远距离像素对我们处理中的原图像像素的影响. Gσs (|Ip–Iq|)表示的是像素范围域中的辐射差异, 可以有效的减少灰度值不同于我们处理中的原图像某位置像素的像素所带来的影响.
传统的双边滤波算法的性能并不是很高, 因为其算法过程中的参数必须要人手动设置, 这样就导致参数是凭借人的经验值来设定的, 而且设定后就是固定的值, 不具有通用性. 孟庆顺等针对传统算法中参数值的设定太依赖于人工经验值设定以至于参数不够合理的问题, 提出了一种新的基于参数估计的自适应双边滤波算法[6], 首先, 对于双边滤波空间标准差σc的设定, 我们可以引入灰度共生矩阵的惯性矩特征值, 然后通过拉普拉斯进行快速估计整幅图像的各个光滑区域噪声标准差σn’, 接着噪声标准差σn的取值就可以取为σn’的平均值, 从而实现了对灰度标准差σs的自适应设置. 相比于使用传统的双边滤波算法来改进性能, 我们参考文献[6]提出的算法来执行平滑处理, 效果对比如图2所示, 3种滤波方法的图像峰值信噪比(PSNR)和运行时间的比较, 如表1所示,改进后的双边滤波算法可以获得更好的效果.
3.2 改进计算梯度幅值和方向
传统的Canny算法在计算梯度幅值的时候是利用一个2×2大小的模板矩阵, 这样容易受到噪声的影响, 不能很精确地检测出边缘. 所以本文在此基础上借鉴Sobel算子, 用4个3×3大小的模板矩阵分别从X、Y、45°和135° 4个方向对原图进行卷积计算, 得出图像梯度幅值, 在实验中有效的降低了噪声敏感度并在一定程度上提高了边缘定位的精度[7], 4个模板如图3所示.
用图3(b)中的4个模板矩阵对滤波后图像进行卷积计算获得4个方向梯度分量的公式如式(16)–式(19):
X方向梯度分量:
$\begin{split} {{{G}}_{{x}}}{{(x,y)}} = & {{([f(x + 1,y - 1) + 2f(x + 1,y) + f(x + 1,y + 1)]}} \\ & {{ - [f(x - 1,y - 1) + 2f(x - 1,y) + f(x - 1,y + 1)])}} \end{split}$ | (16) |
Y方向梯度分量:
$\begin{split} {{{G}}_y}{{(x,y)}} =&{{ ([f(x - 1,y + 1) + 2f(x,y + 1) + f(x + 1,y + 1)]}} \\ & {{ - [f(x - 1,y - 1) + 2f(x,y - 1) + f(x + 1,y - 1)])}} \end{split} $ | (17) |
45°方向梯度分量:
$\begin{split} {{{G}}_{45}}{{(x,y) }}=&{{ ([f(x + 1,y) + 2f(x + 1,y + 1) + f(x,y + 1)]}} \\ & {{ - [f(x,y - 1) + 2f(x - 1,y - 1) + f(x - 1,y)])}} \end{split} $ | (18) |
135°方向梯度分量:
$\begin{split} {{{G}}_{{{135}}}}{{(x,y)}} = &{{([f(x,y - 1) + 2f(x + 1,y - 1) + f(x + 1,y)]}} \\ &{{ - [f(x - 1,y) + 2f(x - 1,y + 1) + f(x,y + 1)])}} \end{split} $ | (19) |
从上面4个方向的梯度分量来获得梯度幅值和梯度角度, 公式如下[7,8]:
${{M}}(x,y) = \sqrt {G_x^2 + G_y^2 + G_{45}^2 + G_{135}^2} $ | (20) |
$\theta (x,y) \!=\! \arctan \left(\frac{{{{\left({G_y}(x,y) \!+ \!\dfrac{{\sqrt 2 }}{2}{G_{45}}(x,y) \!+\! \dfrac{{\sqrt 2 }}{2}{G_{135}}(x,y)\right)}^2}}}{{{{\left({G_x}(x,y) \!+\! \dfrac{{\sqrt 2 }}{2}{G_{45}}(x,y) \!+\! \dfrac{{\sqrt 2 }}{2}{G_{135}}(x,y)\right)}^2}}}\right)$ | (21) |
改进后的梯度计算方法综合考虑像素8邻域内X方向、Y方向、45°和135° 4个方向的梯度幅值, 提高了边缘定位的精度, 同时也对错检率进行了一定的降低, 也减少了边缘丢失现象, 如图4.
3.3 改进OTSU算法选取双阈值
在众多阈值选取的算法中, 最早由OTSU在1978年提出的最大类间方差法这么多年以来一直是被大家使用最多的一种阈值选取方法[9–11]. 其基本思想是通过设定灰度阈值与图像中的像素点进行比较后把图像分成两个部分(前景目标、背景), 背景和前景目标之间的类间方差越大, 说明背景和前景目标在图像中的差别越大, 而类间方差越小则说明背景和前景目标在图像中的差别越小, 从而降低了图像分割的准确性. 因此, 当背景类与前景目标类的类间方差趋近于最大的时候, 将此时的灰度等级值用来作为图像分割的阈值能够大大提高图像分割的准确性.
OTSU算法通过计算一幅图像中所有灰度等级对应的类间方差值, 取使得类间方差达到最大的像素值(灰度等级值)作为分隔高阈值, 根据文献[12]的研究显示, 当低阈值选取为高阈值的1/2时具有最好的分割结果, 本文借鉴该结论, 对低阈值的选取为高阈值的1/2. OTSU算法具体步骤如下:
假设一幅图像I(M×N), 记图像中的某点的像素值为f(x,y), T为前景目标和背景的分割阈值, 前景目标类所占图像的比例为W0, 前景目标类灰度均值为U0; 背景类所占整个图像的比例为W1, 背景类灰度均值为U1, 则整个图像的灰度均值Ur为:
${{{U}}_r} = {W_0}{U_0} + {W_1}{U_1}$ | (22) |
则方差值
${\sigma ^2} = {{{W}}_0}{({U_0} - {U_r})^2} + {{{W}}_1}{({U_1} - {U_r})^2}$ | (23) |
根据参考文献[13]的研究, 用式(24)代替式(23), 可以大大优化并缩短大津法的计算过程.
${\sigma ^2}={{{W}}_0}{{{W}}_1}{({U_1} - {U_0})^2}$ | (24) |
接着最大化类间方差函数, 当σ2的值达到最大的时候, 说明此时前景目标类与背景类最容易区分开, 因此此时分离前景目标与背景, 准确率最高, 所以当σ2达到最大值时, 取对应的灰度值作为最佳阈值(高阈值), 低阈值则参照文献[12]取为高阈值的一半.
4 基于改进边缘检测的视觉注意计算模型的实现传统Itti视觉显著性模型通过对一幅输入图像提取颜色、亮度、方向3个特征并构建相应的高斯金字塔, 然后对高斯金字塔使用中央-周边方法和归一化方法获取多个特征图, 将这些特征图进行交叉尺度合并和归一化操作得到相应的单特征维显著图, 再对3幅单特征维显著图用线性合并的处理方式进行合并处理得到最终的显著图. 而本文改进的Itti模型是对图像提取颜色、亮度、方向以及边缘(利用改进Canny边缘检测算法) 4个特征, 然后构建4个特征的特征图[14,15], 最后获得显著图. 最终的显著图会受到一些细小物体的影响, 我们可以通过面积法保留体积最大的连通区域, 从而去除掉其余干扰点, 获得最终的显著图(如图5).
5 改进模型验证分析利用本文提出的该种建立在优化后的Canny算法基础上的视觉注意计算模型算法对100幅图像进行检测, 数据来源于相机拍摄和网络下载. 将本文算法与经典的Itti模型算法和基于传统Canny边缘检测的视觉注意计算模型进行比较, 其中3个实验结果对比效果如图6所示, 对于100幅都是950×522的图像进行测试后,准确率和耗时的分析如表2所示, 本文算法耗时相对于传统Itti计算模型来说有所提升, 但是可以更加准确地检测出目标区域, 且具有更清晰的边界, 相对于传统Itti计算模型准确率提升了15%, 相对于基于传统Canny边缘检测的视觉注意计算模型准确率提升了6%.
6 结论
在传统Itti视觉注意计算模型的基础上, 引入边缘检测, 同时对于Canny边缘检测算法进行了优化改进(改进双边滤波对图像平滑, 改进计算梯度幅值和方向, 改进OTSU算法选取双阈值), 提出一种建立在优化后的Canny算法基础上的视觉注意计算模型, 有效改善了显著区域提取效果, 使得显著区域的提取更加准确、完整, 同时提升了效率.
但是, 该方法无法应用到复杂环境下多物体的检测, 对于复杂环境下的多物体能够大体检测识别却无法精细区分, 因此, 如何精细区分并检测出多个物体是下一步的研究重点.
[1] |
Mehrani P, Mouraviev A, Gonzalez OJA, et al. Color-opponent mechanisms for local hue encoding in a hierarchical framework. arXiv:1706.10266, 2018. |
[2] |
Shpaner M, Molholm S, Forde E, et al. Disambiguating the roles of area V1 and the lateral occipital complex (LOC) in contour integration. NeuroImage, 2013, 69: 146-156. DOI:10.1016/j.neuroimage.2012.11.023 |
[3] |
张玉薇, 潘勇才. 一种基于边缘检测的视觉注意计算模型. 福建电脑, 2018, 34(11): 19-20. |
[4] |
Itti L, Koch C, Niebur E. A model of saliency-based visual attention for rapid scene analysis. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1998, 20(11): 1254-1259. DOI:10.1109/34.730558 |
[5] |
Canny J. A computational approach to edge detection. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1986, PAMI-8(6): 679-698. DOI:10.1109/TPAMI.1986.4767851 |
[6] |
孟庆顺, 宁芊, 雷印杰. 一种新的基于参数估计的自适应双边滤波算法. 计算机应用研究, 2017, 34(7): 2221-2223, 2231. DOI:10.3969/j.issn.1001-3695.2017.07.065 |
[7] |
许宏科, 秦严严, 陈会茹. 一种基于改进Canny的边缘检测算法. 红外技术, 2014, 36(3): 210-214. DOI:10.11846/j.issn.1001_8891.201403007 |
[8] |
刘丽霞, 李宝文, 王阳萍, 等. 改进Canny边缘检测的遥感影像分割. 计算机工程与应用, http://kns.cnki.net/kcms/detail/11.2127.tp.20190319.1610.010.html, [2019-03-21/2019-04-11].
|
[9] |
Otsu N. A threshold selection method from gray-level histograms. IEEE Transactions on Systems, Man, and Cybernetics, 1979, 9(1): 62-66. DOI:10.1109/TSMC.1979.4310076 |
[10] |
康怀祺, 陈宝国. 基于分形的改进Otsu红外图像分割算法. 红外技术, 2009, 31(6): 359-361. DOI:10.3969/j.issn.1001-8891.2009.06.012 |
[11] |
韩建涛, 姜卫东, 陈曾平. 基于OTSU准则及图像熵的局部递归分割算法研究. 红外技术, 2004, 26(6): 89-92, 96. DOI:10.3969/j.issn.1001-8891.2004.06.024 |
[12] |
宋人杰, 刘超, 王保军. 一种自适应的Canny边缘检测算法. 南京邮电大学学报(自然科学版), 2018, 38(3): 72-76. |
[13] |
郭方方, 严高师, 李旭东, 等. 一种改进的基于Otsu算法的Canny红外边缘检测方法. 红外, 2010, 31(7): 24-27. DOI:10.3969/j.issn.1672-8785.2010.07.005 |
[14] |
Paul LK, Brown WS, Adolphs R, et al. Agenesis of the corpus callosum: Genetic, developmental and functional aspects of connectivity. Nature Reviews Neuroscience, 2007, 8(4): 287-299. DOI:10.1038/nrn2107 |
[15] |
Zhang J, Barhomi Y, Serre T. A new biologically inspired color image descriptor. Proceedings of the 12th European Conference on Computer Vision. Florence, Italy. 2012. 312–324.
|