公开/公告号CN105528575A
专利类型发明专利
公开/公告日2016-04-27
原文格式PDF
申请/专利权人 首都师范大学;
申请/专利号CN201510796500.5
申请日2015-11-18
分类号G06K9/00(20060101);G06K9/62(20060101);G06K9/72(20060101);G06T7/00(20060101);
代理机构北京清亦华知识产权代理事务所(普通合伙);
代理人张大威
地址 100048 北京市海淀区西三环北路105号
入库时间 2023-12-18 15:50:38
法律状态公告日
法律状态信息
法律状态
2019-03-19
授权
授权
2016-05-25
实质审查的生效 IPC(主分类):G06K9/00 申请日:20151118
实质审查的生效
2016-04-27
公开
公开
技术领域
本发明属于场景理解技术领域,涉及基于上下文推理的天空检测算法。
背景技术
随着计算机和机器人技术的发展,智能机器人已经不仅在制造方面,而且在军用、 民用、科学研究等许多方面得到了广泛的应用。本文针对地面机器人等视觉系统中的重要 的预处理步骤—天空检测—做出详细的讨论,并提出相应的算法。天空区域是室外图像的 重要组成部分,并且提供了有关周围环境的重要信息。在由斯坦福大学研制的地面自主机 器人中,运用简单的天空识别算法提高了道路检测效果。目前存在的天空检测算法主要有 基于颜色先验的方法、基于梯度先验的方法和基于模型融合的方法。基于颜色先验的天空 识别算法假设天空的主要颜色为蓝色,并基于该假设对识别天空。基于颜色先验的天空识 别算法速度较快,但是识别精度较低。这是因为天空在不同时间段、不同天气条件下,天空 的颜色会发生显著变化,因此基于颜色的天空识别算法无法适应天空颜色的变化。
基于梯度先验的天空识别算法假设天空区域的梯度变化较为平缓。该算法通过构 造一个能量函数优化求解得到图像中梯度较为平滑的连续区域,即为天空区域。但是当天 空中存在云彩时,天空中存在明显的梯度变化,该算法的假设不再成立。因此基于梯度的天 空识别算法不适用于天空中存在云、太阳等附着物的情况。基于多模型融合的天空检测算 法综合利用颜色、梯度等多种模型,提高了算法的适应性。但是在天空场景图像中天空区域 与非天空区域之间可能存在较大相似性,比如天空与白色地面建筑物。对于这种情况,上述 算法都无法较好的处理。上述算法尽管在特定领域能取得较好的效果,但是无法适应天空 复杂的变化以及天空与非天空区域间存在的相似性。究其原因,上述算法在检测天空时仅 仅利用了有限的先验知识,不能涵盖多样的天空变化。为了满足实际需求,有必要探索更更 有效的天空检测方法。不同于目前天空检测算法中所采用的思路,本文将天空检测看做场 景理解问题。
场景理解作为计算机视觉的基本问题,近年来得到了越来越多的理论研究和实际 应用。2000年以来,随着计算机视觉技术和认知学的快速发展,对场景图像中单一形式物体 的识别逐渐过渡到对类内多形式物体的识别,以及场景的全局理解和场景物体间上下文信 息的建模。在天空场景图像中,天空区域与非天空区域之间存在明显的上下文约束,比如, 位于天空区域中的对象以更大的概率属于天空区域。利用这种上下文约束关系,可以帮助 消除天空与非天空区域之间存在的歧意,从而减少识别错误。在场景理解理论中,马尔科夫 随机场(Markovrandomfield,MRF),条件随机场(Conditionalrandomfield,CRF)等模 型常用于对上下文约束关系建模。此外,在场景理解中通常运用机器学习分类模型对局部 区域区域初步分类,相比于简单的由人工挖掘的先验知识,机器学习方法可以从数据中自 适应的学习到规则以适应复杂的数据分布。
发明内容
本发明的目的在于提供基于上下文推理模型的天空检测算法,解决了现有的算法 尽管在特定领域能取得较好的效果,但是无法适应天空复杂的变化以及天空与非天空区域 间存在的相似性的问题。
本发明所采用的技术方案是按照下面步骤进行:
步骤1:天空样本数据集建立;数据集包含采集的若干原始图像;
步骤2:场景分割;对数据集中的原始图像做超像素分割,分割出若干超像素;
步骤3:用合并超像素的方式产生图像的多尺度分割;合并相邻超像素得到图像的 多尺度分割;
步骤4:计算超像素属于天空区域的概率;图像的多尺度分割中一个超像素可能属 于多个不同的Region,将每一个超像素区域作为一个识别单元,累加多个Region属于天空 或非天空的概率并做归一化处理,该超像素区域中的像素要么被全部识别为天空,要么被 全部识别为非天空,这样将一幅图像分为天空区域和非天空区域;
步骤5:提取正负样本;由天空区域产生的超像素为正样本,由非天空区域产生的 超像素作负样本,对于一个超像素,N表示超像素中包含的像素总数,NB表示超像素中天空 像素的数目,NR表示超像素中非天空像素的数目;
超像素为正样本的条件:
超像素为负样本的条件:
步骤6:超像素特征提取;从正负样本中选择能将天空与非天空区域分开且能够表 达场景语义信息的特征;特征包括颜色特征、纹理特征、位置特征、直线特征;将四种特征拼 成一个向量,作为超像素的最终特征;
步骤7:局部超像素分类;训练分类器来识别天空区域;对每个超像素区域,SVM得 到一个置信度值confidence,将每个置信度值利用Logistic函数压缩到[0,1]区间,作为该 超像素属于天空区域的似然值:
ci∈{sky,non-sky}c1=sky,c2=non-sky
L(vi,c1)=g(confidence)
L(vi,c2)=1-L(vi,c1)
sky表示天空,non-sky,L(vi,c1)表示超像素属于天空区域的似然值,同样L(vi, c2)表示超像素属于非天空区域的似然值,初步检测天空区域,将SVM分类器输出为正1的超 像素标记为天空,输出为负1的标记为非天空;
步骤8:上下文推理;在超像素基础上构建了一个CRF条件随机场模型,定义图G= (V,E),其中顶点v∈V,边V集合中元素为超像素,E集合中元素为相邻超像 素间的边,eij表示相邻超像素vi与vj之间的边,li表示vi被分配的类别,CRF能量函数通常包 含数据项DataTerm和平滑项SmoothTerm,DataTerm迫使l接近预测值p,SmoothTerm保持l的 局部一致性,通过最小化能量函数E(l)得到最后的检测结果,CRF模型如式:
其中数据项:
Φ(vi,li)=exp(-L(vi,c))1(li≠c)
1(.)表示示性函数,当输入为真时输出1,否则输出0;
E(l)的定义中平滑项有三部分组成:
定义为vi与vj的颜色特征的欧几里得距离;
定义为vi与vj的中心点坐标的欧几里得距离。
进一步,所述步骤1中,天空样本数据集中原始图像分为13个类别,分别为:清晨、 中午、下午、傍晚、多云、雾霾、阴天、城市、乡村、草原、森林、沙漠、山区。
进一步,所述步骤4中Region属于天空或非天空的概率可由SVM分类器输出的置信 度值得到。
进一步,所述步骤6中,颜色特征提取方法:提取超像素区域的颜色直方图特征并 作归一化处理;
纹理特征提取方法:采用Leung和Malik提出的LMfilterbank提取超像素的纹理 特征,将滤波器组中的每一滤波器分别与图像卷积,得到该滤波器的响应值图,在每一个像 素点计算得到该像素点处取得最大响应值的滤波器序号,接下来在超像素中建立直方图, 作为该超像素的纹理特征;
位置特征提取方法:计算超像素的中心点坐标并把中心点坐标归一化到 [0,1],规定图像尺寸为M*N,得到下式
把归一化后的坐标向量作为超像素的位置特征;
直线特征:采用直线段检测算法,标记出图像中的直线,NSLines为超像素中包含的 不同直线数,NLines为图像中检测出的直线段总数,超像素的直线特征表示为:
上式中N表示超像素中的像素数。
本发明的有益效果是本发明算法利用上下文推理模型对分割后的图像建模,进而 用图割方法得到天空区域。实验证明,本算法相比同类算法具有更高的精确度,并且可以通 过对训练样本的扩充,使得算法可以很好的适应不同时段、不同天气条件的天空场景图像。 本文提出了一种基于CRF上下文推理模型的天空检测算法,取得了比现有算法更高的检测 精度,能够满足复杂天空条件下的检测任务。
附图说明
图1为多尺度分割图;
图2为天空检测算法对比结果示意图。
具体实施方式
下面结合具体实施方式对本发明进行详细说明。
步骤1:天空样本数据集建立
对于常见天空区域,可以从时间和天气两个不同的角度考察。从时间角度讲,清晨 的天空、中午的天空和傍晚的天空在颜色和亮度方面存在显著差异,因此数据集中应该包 含清晨、中午和傍晚的天空样本。同理,从天气角度讲,晴天、多云、阴天、雾霾等天气条件 下,天空区域的特征也存在显著差异,因此数据集中也应该包含晴天、多云、阴天和雾霾等 不同天气条件下的天空样本。在搜集的图像集中,一副图像同时包含了天空区域和非天空 区域。同样非天空区域也应该包含不同地貌特征的样本,在数据集中包含了城市、乡村、草 原、沙漠、森林等不同地形。最终数据集中原始图像分为13个类别,分别为:清晨、中午、下 午、傍晚、多云、雾霾、阴天、城市、乡村、草原、森林、沙漠、山区。每个类别大概包含20张左右 图像,并统一图像尺寸为300*450。
步骤2:场景分割
现有天空检测算法中多是以逐像素方式检测天空,这种方法无法提取较高层次的 图像特征,并且由于像素数量很大,导致算法的运行效率较低。因此,本文在检测天空之前 首先进行图像分割。采用Graph-Based图像分割方法对数据集中的图像做超像素分割,分割 出若干超像素,Graph-Based图像分割方法是基于图的贪心聚类算法,出自FelzenszwalbP F,HuttenlocherDP.EfficientGraph-BasedImageSegm-entation[J] .InternationalJournalofComputerVision,2004,volume59(2):167-181(15)。实现 简单,速度比较快,精度也挺高。许多算法以该方法作为基础。相比于其他超像素分割方法, Graph-Based的优势在于可以分割得到比较大的超像素区域,较大的超像素区域更有利于 保持语义单元的完整性。
步骤3:用合并超像素的方式产生图像的多尺度分割(如图1)。
一般通用的图像分割方法缺少对图像场景的先验知识,单一的图像分割无法保证 语义单元的完整性。为了克服这一缺点,引入了多尺度分割方法。多尺度分割允许我们从多 个不同的视角理解图像场景,而每一视角都提供了关于图像场景的不同信息。综合不同的 场景信息可以进一步消除场景理解中存在的歧意。可以采用HoiemD.RecoveringSurface LayoutfromanImage[J].InternationalJournalofComputerVision,2007,volume 75(1):151-172(22)中描述的方法实现多尺度分割。在图2中,首先对原始图像(图1左上)进 行超像素分割(图1右上),根据一定的规则合并相邻超像素得到图像的多尺度分割(图1左 下和图1右下)。这样一个超像素可能属于多个不同的区域,称之为Region。
步骤4:计算超像素属于天空区域的概率
步骤3中说明在图像的多尺度分割中一个超像素可能属于多个不同的Region(区 域),因此一个超像素属于天空或非天空区域的概率应该综合多个Region的概率,即累加多 个Region属于天空或非天空的概率并做归一化处理。其中Region属于天空或非天空的概率 可由SVM分类器输出的置信度值得到。另外本发明将每一个超像素区域作为一个识别单元, 该超像素区域中的像素要么被全部识别为天空,要么被全部识别为非天空。这样将一幅图 像分为天空区域和非天空区域。
步骤5:提取正负样本
由于需要训练分类器用于计算超像素属于天空或非天空区域的似然值,因此需要 进一步从天空区域和与非天空区域中提取超像素作为训练样本。由天空区域产生的超像素 为正样本,由非天空区域产生的超像素作负样本。对于一个超像素,N表示超像素中包含的 像素总数,NB表示超像素中天空像素的数目,NR表示超像素中非天空像素的数目。
超像素为正样本的条件:
超像素为负样本的条件:
步骤6:超像素特征提取
在步骤3中提取了正负样本,接下来将提取样本的特征,为分类器的训练做准备。
为了克服天空识别中的难点,应选择可以将天空与非天空区域分开且能够表达场 景语义信息的特征。本发明选取了颜色特征、位置特征、纹理特征、直线特征。
颜色特征
通过观察天空场景样本发现,尽管不同时间不同天气条件下天空形态变化多种多 样,但颜色分布相对集中。相反,非天空区域样本的颜色分布较为分散。一般一副图像的颜 色非常多,尤其是真彩色图像,因此直方图的维度会非常多。如果对HSV空间进行适当的量 化后再计算直方图,则计算量要少的多。本文采用“MeskaldjiK,ChikhiS,Boucherkha S.ColorQuantizationanditsImpactonColorHistogramBasedImageRetrieval [C].NetworkedDigitalTechnologies,2009.NDT'09.FirstInternationalConference on.IEEE,2009:515-517”中介绍的方法提取超像素区域的颜色直方图特征并作归一化处 理。
纹理特征
纹理特征一种不依赖于颜色特征的反应图形中同质物体的底层特征,是所有物体 表面共有的内在特征,例如天空、云彩、树木、水面、地面等都有各自的纹理特征。
本文采用Leung和Malik提出的LMfilterbank提取超像素的纹理特征。本文将滤 波器组中的每一滤波器分别与图像卷积,得到该滤波器的响应值图。在每一个像素点计算 得到该像素点处取得最大响应值的滤波器序号。接下来在超像素中建立直方图,作为该超 像素的纹理特征。
位置特征
通过对现实场景的观察,不难发现,不同类别的物体在图像中的位置分布不一样。 对于天空场景图像来说,天空一般位于图像的中上部,而非天空区域一般位于图像的中下 部。因此,位置特征也为区分天空与非天空区域提供了重要的信息。
为提取超像素的位置特征,首先计算超像素的中心点坐标并把中心点坐标 归一化到[0,1],规定图像尺寸为M*N,得到下式。
把归一化后的坐标向量作为超像素的位置特征。
直线特征
众所周知,在城市场景中,存在许多建筑物、道路等人工设施。由于投影作用,城市 场景图像中,会生成大量的直线。比如,建筑物的棱线、道路的边缘等。而在天空区域中,物 体的形状不规则,很少存在规则的直线。
本文采用“J.KoseckaandW.Zhang,”Videocompass”,inProc.E- CCV.Springer-Verlag.2002.”中的直线段检测算法,标记出图像中的直线。NSLines为超像素 中包含的不同直线数,NLines为图像中检测出的直线段总数。超像素的直线特征表示为:
上式中N表示超像素中的像素数。
特征融合:至此,已经分别介绍了本文中所用的颜色特征、纹理特征、位置特征、直 线特征。每一种特征从不同角度反映了图像区域的性质,为综合利用四种特征,可以采用简 单的特征融合方法,即将四种特征拼成一个向量,作为超像素的最终特征。
步骤7:局部超像素分类
训练分类器来识别天空区域。机器学习理论中,常用的分类模型有支持向量机、随 机森林、朴素贝叶斯等。本发明选择支持向量机SVM作为分类模型。支持向量机(support vectormachine,简称SVM)理论是Vapnik等人1995年首先提出来的一种前馈神经网络,是 在统计学习理论基础上发展而来的一种新的模式识别方法,在解决小样本、非线性及高维 模式识别问题中表现出许多特有的优势.
对每个超像素区域,SVM可以得到一个置信度值confidence。将每个置信度值利用 Logistic函数压缩到[0,1]区间,作为该超像素属于天空区域的似然值。为方便后文叙述, 在这里定义:
ci∈{sky,non-sky}c1=sky,c2=non-sky
L(vi,c1)=g(confidence)(6)
L(vi,c2)=1-L(vi,c1)(8)
sky表示天空,non-sky。L(vi,c1)表示超像素属于天空区域的似然值。同样L(vi, c2)表示超像素属于非天空区域的似然值,c为c1时表示天空区域,c为c2时表示非天空区域。 初步检测天空区域,将SVM分类器输出为正1的超像素标记为天空,输出为负1的标记为非天 空。
步骤8:上下文推理
尽管局部超像素分类可以初步识别天空区域,但忽视了图像场景的全局信息。这 样导致的一个问题是当天空区域与非天空存在相似性时,容易发生错误的识别。上下文推 理的目的就在于利用上下文约束纠正被分类器误识别的图像区域。上下文约束或称为场景 语义约束,举例来说,存在于非天空区域中的超像素以更大的概率属于非天空区域。若由于 相似性导致该超像素区域被误识别为天空区域时,期望上下文约束可以纠正该错误。
本发明在超像素基础上构建了一个CRF(条件随机场)模型。CRF同MRF(条件随机 场)一样,是场景理解中普遍应用的模型。这两种模型的共同特点是在图像之上构建图模 型,并基于图定义能量函数。使得能量函数取得最小值时的解就是我们期望的分割结果。
定义图G=(V,E),其中顶点v∈V,边V集合中元素为超像素,E集合 中元素为相邻超像素间的边。eij表示相邻超像素vi与vj之间的边。li表示vi被分配的类别。 CRF能量函数通常包含数据项(DataTerm)和平滑项(SmoothTerm)。DataTerm迫使l接近预测 值p。SmoothTerm保持l的局部一致性。本发明定义的CRF模型能量函数如式(9)所示。通过最 小化能量函数E(l)得到的l就得到最后的检测结果。
CRF模型如式(9):
其中数据项:
Φ(vi,li)=exp(-L(vi,c))1(li≠c)(10)
L(vi,c)的定义如式(6)L(vi,c)(c为c1时表示天空区域,c为c2时表示非天空区 域),1(.)表示示性函数,当输入为真时输出1,否则输出0。
E(l)的定义中平滑项有三部分组成:
定义为vi与vj的颜色特征的欧几里得距离。
定义为vi与vj的纹理特征的欧几里得距离。
定义为vi与vj的中心点坐标的欧几里得距离。
在本节定义的CRF模型中考虑了相邻超像素在颜色、纹理与位置的差异,通过这样 的约束使得特征差异较大的相邻超像素被标记为不同的类别。
E(l)的最小化是一个组合优化问题,一般可以用α-βswap算法求解。本文中用开源 软件gco-v3.0实现了E(l)的最小化。根据E(l)最小化时得到的l就得到最终的检测结果,如 果li为1则该超像素属于天空区域,若为0则为非天空区域。
对本发明方法进行仿真实验:
在本节我们设计了一组实验来验证算法的有效性和探索影响算法效果的不同因 素。
正如前文所述,目前还没有公开的用于评测天空识别算法的图像数据集。这里我 们采用第4节建立的天空样本数据集,从每个类别中随机抽取80%的样本作为训练集,将剩 余的图像作为测试集。
本文选择Matlab作为实验平台,其中用到的第三方工具包有libsvm和gco-v3.0。 实验所在机器的配置为:IntelP73502.0GHZCPU,2GBRAM,WindowsXP操作系统。
在CRF能量模型(9)中,我们通过GridSearch得到参数值α=X,β=X,θ=X。
为了量化算法的识别精度,本文定义一张图像的识别精度为:
Nsky与Nnon-sky分别为样本图像中天空与非天空的像素数。Ncorr-sky与Ncorr-non-sky分别 为识别后分类正确的天空与非天空像素数。
图像分割方法选择
通过选取不同的分割方法来验证分割方法对识别精度的影响。本仿真试验中所用 的特征有颜色特征、纹理特征、位置特征和直线特征。分割方法的选择对识别精度有较大的 影响。其中多尺度分割方法得到了最高的识别精度。
特征选择
尽管不同特征从不同视角提供了信息来区分天空与非天空区域,但不同特征对识 别结果的影响是不同的。为了探究不同特征对天空识别的作用,本仿真实验选取不同特征 的组合实现天空识别算法。
实验结果如表1所示。
表1
为了验证本文算法相比现有同类算法的优势,本文与[1]和[2]中提出的算法做了 对比。我们自己用Matlab实现了[1]和[2]中的算法。这里,我们用到了所有的特征,并结合 Graph-based分割方法。
[1]中算法实质上是一个基于梯度的算法,该算法有两个基本假设,首先天空区域 应该位于图像的上部,其次天空区域的梯度变化应该是平滑的。
该算法定义了一个能量函数如下所示:
∑s表示天空区域像素RGB值的协方差矩阵。∑g表示非天空区域的RGB值的协方差 矩阵。它们都为3×3矩阵。
Ns与Ng分别为天空与非天空区域的像素数目。μs代表天空区域像素的RGB平均值。 μg代表非天空区域的RGB平均值。μs与μg均为3×1向量。
最后,[1]通过优化求解能量函数得到天空区域与非天空区域的分界线。
[2]中提出的算法本质上是一种基于颜色的算法,此外还融合了位置和纹理特征。 该算法通过(17)获得每个像素属于天空区域的概率值。
Psky=Pcolor×Pposition×Ptexture(17)
Pcolor、Pposition与Ptexture分别为高斯模型。
比如对于Pcolor:
最后将Psky小于一定阈值的像素判定为天空区域。
[1]、[2]中的算法分别基于梯度和颜色,在天空区域检测中具有代表性。因此本文 选择了[1]、[2]作为对比算法。实验结果如图2所示。图2天空检测算法对比结果。最左边一 列是原始图像。左起第二列是我们算法的检测结果,其中蓝色表示天空,红色表示非天空; 左起第三列是[1]的检测结果;最右边一列是[2]的检测结果。图2天空检测算法对比结果。 最左边一列是原始图像。左起第二列是本发明算法的检测结果,其中蓝色表示天空,红色表 示非天空;左起第三列是[1]的检测结果;最右边一列是[2]的检测结果。
以上所述仅是对本发明的较佳实施方式而已,并非对本发明作任何形式上的限 制,凡是依据本发明的技术实质对以上实施方式所做的任何简单修改,等同变化与修饰,均 属于本发明技术方案的范围内。
机译: 一种基于车辆的地理语境建模系统和道路与天空的分区方法,该方法通过使用能够从当前上下文中提取道路和天空的组成图案的自适应模式匹配来进行地理环境建模和依赖于分区的自适应划分现在的情况
机译: 基于相同模型的上下文表示模型,上下文推理方法和装置
机译: 用户输入的上下文意识系统,上下文翻译方法作为参考以及基于案例的推理方法