2. 新疆师范大学 计算机学院,乌鲁木齐 830054
2. College of Computer Science and Technology, Xinjiang Normal University, Wulumuqi 830054, China
图像显著性检测体现了图像中各部分的重要程度[1],可以分成两大类:基于数据驱动的自底向上方法[2-3]和基于任务驱动的自顶向下方法[4-6].从普适性的角度出发,本文采用自底向上的方法.
贝叶斯框架在图像的显著性检测中得到了广泛的应用[2, 7].文献[2]首先通过计算兴趣点得到代表图像显著部分的凸包,然后使用凸包在贝叶斯框架下计算图像的显著图.文献[7]在贝叶斯框架下使用多层元胞自动机融合现有最新的显著性检测算法,效果很好.
水平集方法在处理图像分割问题中表现出了很好的性能, 李春明等使用灰度不均匀的水平集方法[8]对图像进行分割, 得到了很好的效果,但分割结果往往存在图像分割过大或者过小的问题, 造成了不同区域分割不明显从而会影响准确性.
本文创新点在于:首先,提出了基于水平集的超像素分割方法来得到适应图像中不同区域大小的超像素.其次,提出了基于水平集超像素和贝叶斯框架的显著性检测和更新算法, 对基于内部和边缘超像素间的颜色位置差异构建的显著性图进行更新得到显著性检测结果, 同时提高现有算法的准确率、召回率、F值,降低平均绝对误差值.第三,提出了基于人脸识别的显著性检测方法来处理包含人的图片,得到更准确的显著图.
1 算法 1.1 水平集方法构建超像素基于灰度不均匀的水平集方法对图像进行分割, 得到初始的超像素.从图 1中可看出, 该方法得到的超像素大小不同, 有些超像素分割太小, 本属于同一区域被分到不同部分,而不属于同一区域的部分被划分在同一个超像素.针对这些问题,需要对分割结果做进一步改进.
针对水平集方法存在的问题,采取的策略是:对于过小的超像素,合并到相邻的颜色相近的大超像素中;对于过大的超像素,进行再分割.
1.2.1 大超像素再分割后合并对超像素的再分割使用多种方法:首先,将整幅图像转换成灰度图像,使用K均值聚类算法将灰度图像按照灰度值分成K类,以经验为主将K设置为3,对于聚类后的每一类, 将其与每个大超像素的交集作为一个新的超像素从原超像素中分离出来(将内部像素数大于800的超像素定为大超像素).其次,对每个大超像素,用K均值算法将其内部分成K类,K同样设为3,而每一类都作为一个新的超像素从大超像素中分离出去.第三,通过边缘检测找到图像中不同物体的边缘, 从而进行图像分割;分别利用Prewitt算子[9]、Sobel算子[10]、Prewitt算子[11]进行边缘检测,然后合并三种算法的结果得到新的边缘检测结果.
合并的边缘检测结果保存在一个跟输入灰度图片大小相同的二维矩阵中;矩阵中只有两个值: 0和1, 其中1表示边缘, 0表示内部.对于边缘检测结果中的每个超像素,计算其内部值为0的像素数所占的比例;如果该比例大于一定的值T(设为0.95), 表示该超像素应在某个区域的内部,就在该超像素相邻的超像素中查找最大的超像素(内部像素数最多).若此邻居超像素跟该超像素颜色相近,就把该超像素合并到此邻居超像素中;否则不进行合并.使用CIELAB颜色空间来描述图像及超像素的颜色特征,超像素的颜色特征为该超像素内部每个像素颜色特征的均值.两个超像素的颜色差异可用下面的公式得到:
$ {d_{\rm{C}}} = \left\| {{c_i}, {c_j}} \right\|. $ | (1) |
式中:‖ci, cj‖为超像素i和j在CIELAB空间中的欧式距离,设定当dC<0.2时代表两个超像素的颜色是相近的.
1.2.2 小超像素的合并在超像素分割中会产生很多小的超像素,设定当超像素数小于200时为小超像素,需要进行合并.对于小超像素,采取两种策略:首先,小于30的过小超像素直接合并到与其相邻的且大于它的超像素中.其次,对于≥30的小超像素,使用了颜色特征和距离特征将其与相邻的大超像素进行比较,选择其中一个最相近的超像素进行合并.对超像素再分割然后合并小超像素的结果以及使用SLIC算法得到的结果见图 2.
根据已经得到的新超像素,用贝叶斯框架进行显著性检测.与文献[2]类似,用下面的公式来估计像素属于显著区域的后验概率:
$ p\left( {s|v} \right) = \frac{{p\left( s \right)p\left( {v|s} \right)}}{{p\left( s \right)p\left( {v|s} \right) + p\left( b \right)p\left( {v|b} \right)}}, $ | (2) |
$ p\left( b \right) = 1 - p\left( s \right). $ | (3) |
式中:p(s|v)为p(s=1|v)的简写, p(s)为某像素是显著像素的先验概率, p(v|s)为p(v|s=1)的简写, p(v|b)为p(v|b=1)的简写,代表观测似然概率.
1.3.2 观测似然概率计算基于中心周围原则来计算观测似然概率,文献[4]用滑动窗口在图像中扫描来查找目标所有可能出现的位置,计算量很大,见图 3(a).文献[1]用凸包来作为显著部分的位置减少了计算量,但凸包并不能很准确地将属于同一部分区域的轮廓标注出来,这就会产生误差,见图 3(b).为了解决凸包轮廓不准确的问题,用基于水平集算法得到的超像素作为图像的显著区,将图像分成两部分:显著区域Ⅰ(其像素更可能属目标的)和非显著区域O(其像素更可能是背景),见图 3(c).
用如下公式计算像素v的观测似然值
$ p\left( {v|s} \right) = \prod\limits_{f \in \left\{ {l, a, b} \right\}} {\frac{{{N_{{\rm{I}}(\mathit{f}(\mathit{v}))}}}}{{{N_{\rm{I}}}}}}, $ | (4) |
$ p\left( {v|b} \right) = \prod\limits_{f \in \left\{ {l, a, b} \right\}} {\frac{{{N_{{\rm{O}}(\mathit{f}(\mathit{v}))}}}}{{{N_{\rm{O}}}}}} . $ | (5) |
式中:{l, a, b}为每个像素v,NI为显著区域Ⅰ内部像素数,NO为非显著区域O内部像素数. NI(f(v))为在区域Ⅰ中颜色值f(v)所在颜色区间在颜色直方图中的值,NO(f(v))为在区域O中对应颜色直方图中的值.把式(4)、(5)代入式(2)中就得到了更新后的显著图.为此提出了基于新超像素和贝叶斯框架的显著性更新算法SUNSB,在实际计算的过程中,对于内部区域Ⅰ使用如下三种方法来对式(2)进行计算.
NS法:以不显著的部分作为区域Ⅰ.在一幅图像中,不显著的部分往往处于图像的边缘,基于已得到的显著性图,首先将图像4条边上所有的超像素及除了4条边之外所有显著性值≤0.2的超像素作为区域O,剩下的超像素作为区域Ⅰ,代入式(2)中进行计算, 以此来降低被误划入显著部分的非显著像素的显著度.实验结果见图 4(b).
MS法:以显著性图中最显著的部分作为区域Ⅰ.在显著性图中查找显著性值≥0.8的超像素作为区域Ⅰ,剩下的所有超像素作为区域O,代入式(2)中进行计算,可以增加被误划入非显著区域的显著像素的显著度.实验结果见图 4(c).
ES法:分别以每个显著性强的超像素作为区域Ⅰ,多次更新显著图.选择所有显著值≥0.8的超像素,对于每个显著的超像素,以其作为区域Ⅰ,剩下的为区域O, 代入式(2)多次更新图像的显著图.结果见图 4(d).
1.3.3 根据显著部分增加相邻超像素显著性在显著图中,设定显著值≥0.8为显著的部分.相邻部分显著性增加流程是:
输入:初始显著性图sori.
输出:更新后的显著性图.
Step 1 若显著图中显著的部分像素数>8 000,用SUNSB的ES法来计算,降低被误划入显著部分的非显著像素的显著性.若显著部分像素数≤8 000,进入Step2.
Step 2 对于显著的超像素S1,查找所有相邻的超像素S2,对于S2中的每个超像素,用式(1)来计算其跟S1中的每个超像素的颜色差异,用式(6)来计算超像素之间的距离为
$ {\rm{dis}} = \left\| {{r_i}, {r_j}} \right\|. $ | (6) |
式中ri和rj是超像素i和j的坐标.
Step 3 对于S2中内部像素数小于6 000的超像素,使用如下公式计算.
$ s = ({{\rm{e}}^{\frac{{ - {m_{{\rm{dif}}}}}}{{2{\sigma _1}{\sigma _1}}}}} - {{\rm{e}}^{\frac{{ - {m_{{\rm{dis}}}}}}{{2{\sigma _2}{\sigma _2}}}}})({m_{\rm{s}}}/ns). $ | (7) |
式中:mdif为超像素与S1中所有超像素颜色差异的均值,mdis为超像素与S1中所有超像素的距离均值,ms为显著部分S1中超像素大小的均值,ns为当前计算的超像素的数,设定σ1=1.3, σ2=0.9.
1.3.4 对显著图的更新使用SUNSB算法中三种观测似然概率的计算方法更新显著图, 具体流程是:
输入:初始显著性图sori.
输出:更新后的显著性图.
Step 1 使用2.3.3中方法根据显著图中显著部分增加相邻超像素的显著性得到su.
Step 2 使用2.3.2中ES法两次更新su加上su×2.5得到su1.
Step 3 使用NS法更新su1得到su2.
Step 4 使用MS法更新su1得到su3.
Step 5 su2、su3取均值得到新的显著图.
1.4 显著图的构建基于新超像素和贝叶斯框架的显著性检测算法SNB是以图像边缘部分的超像素为基础,用K均值聚类算法将边缘超像素分成3类,用式(8)计算其它超像素与每类边缘超像素的颜色差异,用式(9)计算其它超像素与每类边缘超像素的距离关系.
${s_{k, i}} = \frac{1}{{{p^k}}}\sum\limits_{j = 1}^{{p^k}} {\frac{1}{{ - \frac{{\left\| {{c_i}, {c_j}} \right\|}}{{2\sigma _1^2}} + \beta }}}, $ | (8) |
$ {w_{k, i}} = \frac{1}{{{p^k}}}\sum\limits_{j = 1}^{{p^k}} {{e^{ - \frac{{\left\| {{r_i}, {r_j}} \right\|}}{{2\sigma _3^2}}}}} . $ | (9) |
式中:参考文献[11]设置σ1=0.2, β = 10, σ3=1.3. Pk为属于第k类超像素的总数,Sk, i为以第k个边缘聚类为基础, 第i个超像素的显著性值. wk, i为以第k个边缘聚类为基础,第i个超像素的空间距离,ri和rj为超像素i和j的坐标.
基于图像边缘超像素得到颜色和距离差异,可以得到一个初始显著图S为
$ S = \sum\limits_{k = 1}^{\rm{K}} {{w_{k, i}} \times {s_{k, i}}} . $ | (10) |
三种贝叶斯框架下的算法(SUNSB),按照方法MS、NS、ES的顺序更新显著性图,每次更新之后将其与上一步得到的显著性结果相加然后均值化,得到最终的显著性图.实验结果见图 5.
发现对于有人的图片,显著的部分往往是包含人的部分,故提出用人脸检测的方法来增加包含人的这部分的显著性同时减少不相关部分的显著性.
使用Face++[12]提供的接口来对人脸进行检测,然后对显著性进行更新.若没检测到人脸,则图像的显著性不更新.对于检测到的脸,用SLIC算法将图片分成Nf (设为400)个超像素,保存矩形框包含的所有的超像素.
对于包含人的图片,往往也包含部分或者全部的身体部分.按照人的头部和身体比例,假设头部所在的矩形框的左上角坐标为(x, y),设置左上角坐标为(x+h, y-w/2),宽度为3w,高度为6h的部分作为身体的大致位置(该位置可能会超出图片的范围,超出部分不计),其中w和h分别为头部所在矩形框的宽度和高度.在身体所在的矩形框内,使用基于水平集得到的新超像素,查找所有显著的超像素,剩下的超像素为非显著的.对于每个非显著的超像素,在显著的超像素中查找颜色相似的超像素,颜色的相似度用式(1)来计算.若两个超像素颜色相近,取显著部分的超像素的均值作为该非显著超像素的显著值.最后为了降低人所在之外部分的显著性,保存人体的头部和身体部分所在的矩形框内的超像素,这里的超像素使用的是基于水平集得到的新超像素.对于人体所在部分之外的超像素,降低其显著性值.更新后的显著性结果见图 6(其中第一行是各类算法的初始结果,第二行是人脸识别更新后的结果).
在Pascal-S、ECSSD、MSRA三个标准的数据库上,将提出的算法与当前最新的或者很经典算法,包括FT[13], CA[14], BSCA[7], wCO[15], MR[16], GMR[16], XL[2]等进行对比. 图 7显示了不同算法的显著性检测结果.
使用精确度precision (P)-召回率recall(R)曲线来评价所有的算法,绘制出精确度-召回率曲线图,使用F-measure作为整体性能的评价,具体计算公式为
$ {F_\beta } = \frac{{(1 + {\beta ^2}) \times P \times R}}{{{\beta ^2} \times P + R}}. $ | (11) |
式中同样将β2设置为0.3.使用像素单位上的平均绝对误差(MAE)表示显著性图和真值之间的平均差异, 以此来作为精确度-召回率曲线的补充,具体计算公式为
$ {\rm{MAE}} = \frac{1}{{\rm{H}}}\sum\limits_{h = 1}^{\rm{H}} {\left| {{\rm{S}}\left( h \right) - {\rm{GT}}\left( h \right)} \right|} . $ | (12) |
式中:S为显著性值,GT为真值,H为像素个数,h代表每个像素.
2.2 与现有算法进行比较定性评测:为检测在2.4部分所提出的显著性图构建算法(SNB)的有效性,在上面三个标准数据库上进行了测试.为了直观地对多种算法进行比较,在图 7中展示了部分显著性图.本文算法使用新的超像素能够很好的区分背景和目标,从而提高目标检测的准确率.
定量测评:如图 8所示,对多种算法进行评价,其中第一列为精确度-召回率曲线,横坐标为召回率,纵坐标为精确率;第二列为F-measure曲线,横坐标为阈值,纵坐标为F值.在三个数据库上(从上到下分别为Pascal-S、MSRA、ECSSD数据库)的评测结果充分说明了本文算法的优越性. 表 1在Pascal-S, ECSSD, MSRA行表示不同算法的最初结果.在Pascal-S*,ECSSD*, MSRA*行表示不同算法的更新后的结果.每行中最好的两个结果分别用**和*进行了标注,可以看出本更新算法可以降低现有算法的MAE值.
本文提出了一种基于水平集超像素和贝叶斯框架的显著性检测算法;具体地以图像边缘部分的超像素为基础,基于K均值聚类算法并在贝叶斯框架下提出三种更新算法,并使用人脸识别技术来对包含人的图片进行优化,减少了这些算法显著性图和真值之间的平均差异,提高了该类图片检测的准确性.在三个公开的数据库上进行了定性和定量的大量实验评测,结果表明本文提出的显著性检测方法和更新算法在准确率、召回率、F值及平均绝对误差这四个指标上均优于已有的图像显著性检测经典算法.
[1] |
BORJI A, CHENG Mingming, JIANG Huaizu, et al. Salientobject detection: a benchmark[J].
IEEE Transactions on Image Processing, 2015, 24(12): 5706-5722.
DOI: 10.1109/TIP.2015.2487833 |
[2] |
XIE Yulin, LU Huchuan, YANG Minghsuan. Bayesian saliency via low and mid level cues[J].
IEEE Transactions on Image Processing, 2013, 22(5): 1689-1698.
DOI: 10.1109/TIP.2012.2216276 |
[3] |
TONG Na, LU Huchuan, ZHANG Ying, et al. Salient object detection via global and local cues[J].
Pattern Recognition, 2015, 48(10): 3258-3267.
DOI: 10.1109/TIP.2015.2216270 |
[4] |
ALEXE B, DESELAERS T, FERRARI V. What is an object? [C]// Computer Vision and Pattern Recognition. San Francisco, CA, USA: IEEE Press, 2010: 73-80. DOI: 10.1109/CVPR.2010.5540226.
|
[5] |
LI Guanbin, YU Yizhou. Visual saliency detection based on multiscale deep CNN features[J].
IEEE Transactions on Image Processing, 2016, 25(11): 5012-5024.
DOI: 10.1109/TIP.2016.2602079 |
[6] |
FU Keren, GU Yuhua, YANG Jie. Saliency detection by fully learning a continuous conditional random field[J].
IEEE Transactions on Multimedia, 2017, 19(7): 1531-1544.
DOI: 10.1109/TMM.2017.2679898 |
[7] |
QIN Yao, LU Huchuan, XU Yiqun, et al. Saliency detection via cellular automata [C]// IEEE Conference on Computer Vision and Pattern Recognition. Boston, MA, USA: IEEE Press, 2015: 110-119. DOI: 10.1109/CVPR.2015.7298606.
|
[8] |
LI Chunming, HUANG Rui, DING Zhaohua, et al. A level set method for image segmentation in the presence of intensity inhomogeneities with application to MRI[J].
IEEE Transactions on Image Processing, 2011, 20(7): 2007-2016.
DOI: 10.1109/TIP.2011.2146190 |
[9] |
ROBERTS L G. Machine perception of three-dimensional solids [D]. Massachusetts: Massachusetts Institute of Technology, 1980.
http://www.mendeley.com/catalog/machine-perception-threedimensional-solids/
|
[10] |
EDWARD I. Camera models and machine perception [D]. Stanford: Stanford University, 1970.
http://portal.acm.org/citation.cfm?id=905376
|
[11] |
PREWITT J M S.
Object enhancement and extraction in B. S. lipkin and a rosenfeldeds[M]. New York: Academic Press, 1970: 75-149.
|
[12] |
Face++. Development tool and SDK [OL]. http://www.faceplusplus.com.cn/dev-tools-sdks/. April, 2016.
|
[13] |
ACHANTA R, HEMAMI S, ESTRADA F, et al. Frequency-tuned salient region detection [C]// Computer Vision and Pattern Recognition. Miami, Florida, USA: IEEE Press, 2009: 1597-1604. DOI: 10.1109/CVPR.2009.5206596.
|
[14] |
GOFERMAN S, ZELNIKMANOR L, TAL A. Context-aware saliency detection[J].
IEEE Transactions on Pattern Analysis and Machine Intelligence, 2012, 34(10): 1915-1926.
DOI: 10.1109/TPAMI.2011.272 |
[15] |
ZHU Wangjiang, LIANG Shuang, WEI Yichen, etal. Saliency optimization from robust background detection [C]// Computer Vision and Pattern Recognition. Columbus, OH, USA: IEEE Press, 2014: 2814-2821. DOI: 10.1109/CVPR.2014.360.
|
[16] |
YANG Chuan, ZHANG Lihe, LU Huchuan, et al. Saliency detection via graph-based manifold ranking [C]// Computer Vision and Pattern Recognition CVPR. Portland, OR, USA: IEEE Press, 2013: 5166-5173. DOI: 10.1109/CVPR.2013.407.
|