具体实施方式
在本发明的较佳实施例的下述描述中,参考了作为说明书一部分的附图进行描述,所述附图说明了本发明可以采用的特定实施例。本领域技术人员应该理解在不背离本发明精神的情况下,还可以使用其它实施例或对这些实施例进行修改。这都没有超出本发明的公开范围。
1.0示范工作环境
图1示出了可以实现本发明的一种合适的计算系统环境100实例。该计算系统环境100只是一个合适的计算环境的实例,并不是要将本发明的使用和功能范围局限在该环境中。也不是要将计算环境100解释为与示范工作环境100中所示部件之一或其组合具有联系或要求。
本发明可以在许多其它通用或专用计算系统环境或配置中工作。这些适用于本发明的众所周知的计算系统、环境和/或配置的实例可以包括(但不局限于)个人计算机、服务器计算机、手提或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费类电子产品、网络PC、微型计算机、大型机、包含上述任意系统和设备的分布式计算环境,等等。
本发明从计算机可执行指令的概括角度进行描述,例如以计算机可执行的程序模块来进行描述。通常,程序模块包括例行程序、程序、对象、部件、数据结构等,它们能执行特定任务或实现特定抽象数据类型。本发明也可以在分布式计算环境中实现,在这种环境中,由通过通信网络连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包含存储器存储设备的本地和远程计算机存储媒体中。
参照图1,一种执行本发明的示范系统包括以计算机110形式出现的通用计算设备。该计算机110的部件包括(但不局限于)处理单元120、系统存储器130和系统总线121,它将各种系统部件(包括系统存储器到处理单元120)都连接在一起。系统总线121可以是下述几种总线结构类型中任意一种:存储器总线或存储器控制器、外设总线和使用各种总线体系的局域总线。这种体系包括例如(但不局限于)工业标准结构(ISA)总线、微通道结构(MCA)总线、扩展ISA(EISA)总线、视频电子标准协会(VESA)局域总线以及外设部件互连(PCI)总线,也称为中层总线(Mezzanine bus)。
计算机110通常包括各种计算机可读媒体。计算机可读媒体包括任何可由计算机110存取的可用媒体,包括易失和非易失媒体、可移动和非可移动媒体。计算机可读媒体可以包括例如(但不局限于)计算机存储媒体和通信媒体。计算机存储媒体包括易失和非易失、可移动和非可移动媒体,这些媒体可以用于任何存储信息,例如计算机可读指令、数据结构、程序模块或其它数据,的方法或技术实现。计算机存储媒体包括(但不局限于)RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字通用光盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或任意其它可用于存储所需信息并可被计算机110存取的媒体。通信媒体通常包含计算机可读指令、数据结构、程序模块或其它调制数据信号(例如载波)或其它传输机制中的数据,并且包括任何信息传递媒体。术语“调制数据信号”是指以对信号中信息编码的方式使其一个或多个特性被设定或改变的信号。通信媒体包括(但不局限于)有线媒体例如有线网络或直线连接、以及无线媒体例如声音、RF、红外线和其它无线媒体。上述媒体的任意组合也应包含在计算机可读媒体的范畴。
系统存储器130包括易失和/或非易失存储器形式的计算机存储媒体,例如只读存储器(ROM)131和随机访问存储器(RAM)132。基本输入/输出系统133(BIOS),含有例如在启动期间帮助在计算机110中的元件之间传送信息的基本例行程序,通常存储在ROM 131中。RAM 132通常含有立刻就要存取和/或目前正在被处理单元120处理的数据和/或程序模块。图1示例出(但不局限于)操作系统134、应用程序135、其它程序模块136以及程序数据137。
计算机110可以包括其它可移动/非可移动、易失/非易失计算机存储媒体。图1示例出(但不局限于)可以对非可移动、非易失磁性媒体进行读写的硬盘驱动器141,可对可移动、非易失磁盘152进行读写的磁盘驱动器151,以及可对可移动、非易失光盘(例如CD-ROM或其它光学媒体156)进行读写的光盘驱动器155。其它可用于示范操作环境的可移动/非可移动、易失/非易失计算机存储媒体包括(但不局限于)磁带盒、闪存卡、数字通用光盘、数字摄像带、固态RAM、固态ROM等等。硬盘驱动器141通常通过即时-可移动(anon-removable)存储器接口(例如接口140)与系统总线121连接,而磁盘驱动器151和光盘驱动器155通常通过可移动存储器接口(例如接口150)与系统总线121相连。
在如上所述和图1中所示的驱动器及其相关的计算机存储媒体为计算机可读指令、数据结构、程序模块和计算机110的其它数据提供了存储。在图1中,例如,硬盘驱动器141如图所示存储了操作系统144、应用程序145、其它程序模块146以及程序数据147。注意这些部分可以与操作系统134、应用程序135、其它程序模块136以及程序数据137相同,也可以不同。操作系统144、应用程序145、其它程序模块146以及程序数据147在这里用不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备例如键盘162和指点设备161(通常指鼠标、轨迹球或触摸板)将命令和信息输入到计算机110中。其它输入设备(未示出)可以包括麦克风、操纵杆、游戏手柄、卫星天线、扫描仪等。这些和其它输入设备通常通过连接到系统总线121的用户输入接口160连接到处理单元120,但也可以由其它接口或总线结构连接,例如并行口、游戏端口或通用串行总线(USB)。监视器191或其它类型的显示设备也通过接口(例如视频接口190)连接到系统总线121。除了监视器外,计算机还可以包括其它外围输出设备,例如扬声器197和打印机196,它们可以通过输出外围接口195进行连接。而能捕获图像193序列的摄像头192(例如数字/电子静态或视频摄像机)作为本发明特别重要的设备也可作为输入设备包括在个人计算机110中。而且,虽然只描述了采用一个摄像头的情况,但个人计算机110也可采用多个摄像头作为输入设备。来自一个或多个摄像头的图像193通过合适的摄像头接口194输入到计算机110中。该接口194连接到了系统总线121,因而允许图像发送并存储在RAM 132或与计算机110相关的其它数据存储设备中的一个中。然而,需要注意,图像数据也可以从任意上述计算机可读媒体中输入到计算机110,而不需要使用摄像头192。
计算机110可以在使用物理连接一个或多个远程计算机(例如远程计算机180)的联网环境中运行。该远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并且虽然在图1中仅示出存储器存储设备181,但通常还包括上述有关计算机110的许多或所有元件。在图1中所示的物理连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这些网络环境在办公室、企业计算机网络、内联网和互联网中已经广泛采用。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接到LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或其它与WAN 173,例如互联网,建立通信的装置。调制解调器172可以是内置的,也可以是外置的,可通过用户输入接口160连接到系统总线121,或其它合适的机构。在网络环境中,有关计算机110所描绘的程序模块或其部分可以存储在远程存储器存储设备中。图1示例出(但不局限于)驻留在存储器设备181上的远程应用程序185。需要注意,所示的网络连接是示例性的,也可以使用其它装置在计算机之间建立通信连接。
现在,已经讨论了示范操作环境,本说明书部分的剩余内容将致力于描述实现本发明的程序模块。
2.0实时白板流技术的系统和方法
2.1概述
实时白板流技术的系统和方法通常具有基于服务器的部件,并且能具有一个或多个安排在基于网络的环境中的远程客户机。增加的实况视频或增强实时白板快照序列以流技术传送给远程会议参与者的PC,而他们可以在白板内容上发送回注解以及在会议进程中进行口头评论。
如图2所示,典型的这种系统的方案包括头脑风暴会议,它涉及到处于某地(例如典型的会议室202)的N个人员,以及M个(通常是1到3个)远程人员204a…,204m,每个人员位于他们自己的办公室中或其它远程地点。
聚集在会议室202中的N个人配备有白板206、捕获白板内容的摄像头208、捕获会议音频的麦克风210、会议服务器、投影仪、电视或其它显示器212,它们连接到所述会议服务器214上;以及安装在麦克风设备上的扬声器216。而M个个人中的每个人坐在他们自己的办公室或其它远程地点204a…,204m,配备有桌面计算机或笔记本电脑218、扬声器(未示出)、麦克风/耳机220以及将远程个人计算机218与会议服务器214相连的网络连接222。
在会议室202中的N个人使用白板206作为协作空间,通过在白板上描绘来共享他们的意见。在白板上的内容迅速被捕获,并通过将增强白板内容传送到远程人员的计算机218a…,218m,使得远程人员能共享内容。而口头上的讨论将由麦克风210捕获,并且该音频(最好和定向信息一起)发送给远程人员。
而参加会议的远程人员通过在会议室中由扬声器216播放的音频来参与会议。远程人员也可以通过在捕获的白板帧上注解来参与会议,并且经注解的白板帧会显示在会议室的显示器212上以及其它远程个人计算机218a…,218m的屏幕上。另外,还可以使用例如蜂鸣器或某些视觉闪烁警示信号来提醒会议参与者,远程参与者已经作出了注解。
2.2基于服务器的实时白板流技术系统和方法
通常,如图3所示,实时白板流技术系统和方法在功能上由4个主要部分组成:1)分类处理,将图像序列单元分类成背景、前景或笔划单元(处理动作302);2)动态白板背景初始化和更新处理,计算白板颜色而不包括前景对象(例如人员)和笔划(处理动作304);3)有效实时处理,对输入视频序列中的白板区域进行增强(处理动作306);4)分析处理,提取白板上新出现的笔划(处理动作308)。图像增强处理的输出是一个增强白板图像序列(处理动作310),而笔划分析处理的输出仅是流技术化白板数据(处理动作312)。
更具体地说,如图4所示,如本发明所述的系统和方法最初获取由白板图像帧实时序列构成的实况白板输入,如在处理动作402中所示。该视频、快照或图像序列以逐帧为基础进行实时处理。
白板图像帧序列输入给基于单元运动检测的处理404。在该处理中,在给定帧序列中的每个图像帧分成了几个单元。对每个对应的单元位置随时间变化进行比较,以检测亮度中的任何变化(处理动作406)。如果有显著的亮度变化,就执行白板颜色匹配处理动作(处理动作408),这将随后进行详细描述。如果没有显著的亮度变化,该视频帧的每个单元就分类成前景、白板背景或笔划单元(处理动作410)。在单元分类中,其主要意图在于过滤掉遮挡白板部分的人或其它对象的图像部分,以便在白板背景上仅显示白板内容的笔划。单元分类也用于创建白板图像流,它是一种具有白板和前景对象(例如站在所显示白板之前的人员)的增强的实况视频或快照流,如处理动作414所示。该流通过增强处理进行增强,如处理动作412所示。还会创建其它数据流(白板数据流),其中在笔划处理(处理动作416)执行之后,以增强方式在白板上仅显示笔划,而不显示前景对象(处理动作418)。
为了显示含有白板和前景对象的增强图像,执行图像增强处理,如处理动作412所示。在图像增强处理(处理动作412)中,白板颜色更加统一,而白板内容(也就是写在白板上的内容)的笔划饱和度增加以使得笔划更加鲜明和易读。
单元分类的另一输出是判断是否添加了笔划或从白板中去除了笔划,如处理动作416所示。在这种处理动作中,实时白板流技术系统和方法判定单元中的笔划内容是否增加或减少了。如果单元的笔划内容发生了变化,该内容就输出给白板数据流(处理动作418)。
另外,如处理动作420所示,在单元分类之后,系统判定白板颜色模型是否需要更新。白板颜色模型更新处理是对白板颜色中的逐渐变化的识别。这种变化是由于例如,光照条件中的微小变化,而这些微小变化是由于例如云彩从太阳前经过或某些东西在白板上投下阴影。如果变化被识别,则更新白板颜色模型数据库422(是所有可用白板颜色模型的数据库)中当前白板颜色的模型。
如前所述,如果显著的光照变化在基于单元的运动检测处理中被记录(处理动作406),如本发明所述的系统或方法就判定所记录的光照变化是否体现在当前白板颜色模型中(处理动作408)。如果新光照条件对应于白板颜色模型数据库中的白板颜色模型(处理动作424),该模型就用于后续单元分类。然而,如果没有找到该颜色模型,就初始化新的颜色模型(处理动作426),并将其加入到白板颜色模型数据库中。
上面已经描述了根据本发明的通用系统和方法,随后将详细描述先前所述的处理动作。
2.2.1实况白板视频或快照序列输入
根据本发明的系统和方法最初获取实况白板视频输入或一系列由白板图像帧实时序列组成的快照。该视频或快照序列以逐帧为基础基本上进行实时处理。在图5示出的示例视频序列中展示了一些选中的帧。有多少序列的帧可以被处理在某种程度上取决于会议服务器214的中央处理器(CPU)的利用率。一些(但不是全部)输入帧基于CPU利用率用于后续白板背景颜色的处理。用于创建增强白板视频流和白板数据流的前景、笔划计算以及增强处理的实时处理在会议服务器处理带宽受到限制时会比白板背景计算优先进行。
2.2.2基于单元的运动检测和单元分类
单元分类将单元分成1)前景;2)白板背景或3)写在白板上的笔划。实时白板流技术系统和方法从输入图像序列中计算空白的白板颜色。该处理的难点在于整个白板在任意单个帧中可能是不可见的,这主要是由于在白板前的阻碍物。因此,白板背景必须通过先将图像帧部分分类成前景或背景来构造。仅有背景部分用于计算白板的背景色。
在根据本发明的一种系统和方法的工作实施例中,前景/背景的判决针对16×16像素的图像块进行,该图像块称之为单元。通常,有两种主要直观推断用于执行单元分类中:1)由于摄像头和白板都是固定的,白板背景单元在这个序列中也是固定的;2)虽然有时前景对象(例如站在白板前的人)会阻碍白板,但属于白板背景的单元通常是多数。
这样,本发明的一个实施例中,如图6所示,输入图像帧单元(处理动作602)。单元的图像与先前帧的同一单元(例如在同一位置中的单元)的图像进行比较,如在处理动作604中所示。在每个帧,所有对于超过N帧(在实时白板流技术系统和方法的工作实施例中为4帧)都是固定的单元被视作是背景候选者,并馈送给白板颜色模型更新模块(处理动作610)。如果单元寿命没有超过寿命阈值(在实施例中是4),该单元就被分类为前景单元,如处理动作608所示;而该单元的寿命重置为1。如果在单元颜色中存在任何显著的差异,该单元分类成前景单元(处理动作610)。该差异测试是这样的:单元颜色的Y、U、V通道必须分别位于白板颜色中它们的对应部分的15、5和5强度级的范围中。对于前景单元,为了验证这些单元没有被错误分类,还要执行附加测试以判定单元是否和其它前景单元连接(处理动作612)。如果一组前景单元是孤立的,它们的分类就还原,并且继续分类处理。在本发明一个实施例中的孤立定义为在5×5单元的邻域,少于6个前景单元。如果所讨论的单元先前并没有由上述的测试确定为前景单元,就判定该单元是否含有边缘,如处理动作614所示。如果该单元含有边缘,就将其指派为笔划单元(处理动作616)。如果不具有边缘,就将其分类为白板背景单元(处理动作618)。
2.2.3白板颜色估计和白板颜色模型更新
白板颜色模型更新(处理动作420)寻找白板背景颜色中的逐渐变化。在一般意义上,实时白板流技术系统和方法通过判断每个单元的平均颜色来检测是否存在逐渐变化。如果每个单元的平均颜色几乎与先前相同,就判定逐渐变化发生了。在实施例中的系统也采用了在确定单元是否是背景单元中所使用的相同测试。当记录了逐渐变化时,就更新现有的白板颜色模型而不是创建新的白板颜色模型。在现有白板颜色模型中仅更新背景单元或笔划单元的颜色模型。前景单元没有被更新。
更具体地说,如图7所示,在本发明的一个工作实施例中,白板图像被分成许多单元,如处理动作702所示。单元的大小最好大致等于白板上所预期的单个字符的大小(在本发明的工作实施例中是16×16像素)。由于墨水吸收了入射光,白板像素的亮度高于笔划像素。在该单元中的白板颜色因而是具有最高亮度的颜色。实际上,在最高的十分之一的像素颜色被平均,以减少传感器噪声所引起的错误。因此,通过先以亮度将(例如16×16=256)个像素分类,再取最高亮度10%的值进行平均以计算每个单元的颜色,如处理动作706所示。所得到的单元颜色作为给最小中值平方误差算法(least-median-square error algorithm)的输入,该算法对颜色在全平面(globalplane)上拟合,并将含有界外颜色(前景颜色)的单元丢弃,如在处理动作708中所示。剩余的单元就被看作是背景单元,并且使用它们的颜色来更新白板背景。为了对被前景对象阻挡的单元所产生的缺口进行填充,具有已知颜色的单元也被扩展到没有颜色的邻近单元。利用在附件A中所描述的颜色估计和过滤技术,将这些剩余的单元颜色和先前计算的单元颜色进行整合。
为了执行白板颜色模型的更新,实时白板流技术系统和方法针对背景或笔划采用了较大百分比的原始颜色模型(例如90%)和较小百分比的新颜色(例如10%)。
2.2.4显著的亮度变化
如上所述,考虑了显著的光照变化(处理动作406)。例如,如果关闭会议室中的一盏灯,几乎所有的给定白板图像中的单元都会变化。如果存在显著的光照变化,基于单元的运动检测(处理动作404)将报告大多数的单元已经变化(例如,在本发明的工作实施例中使用95%的单元作为阈值来表示光照的显著变化)。随后,重置白板背景,并初始化新的颜色模型或从白板颜色模型数据库中提取新模型。随后,再次开始执行单元分类等处理。
2.2.5图像增强
白平衡或图像增强的目的在于将输入白板图像转化为在统一背景(通常是白色)上具有相同笔划的图像。对于每个像素,颜色值=Clight,笔划颜色=Cpen,而白板背景颜色=Cwb。由于白板在物理上通常由统一的颜色构成,因此,可以假设Cwb对于所有像素都是常数。因此,输入图像的缺乏统一性是由于给每个像素的入射光量不同而造成的。因而,白平衡或颜色增强中的第一步处理是估计每个像素的Clight,其结果实际上是一幅空白白板的图像,如图7所示,处理动作702,并且如前面在白板颜色估计章节所述。
一旦计算了空白白板颜色,就可将其用于使输入视频序列的白板区域统一成白色,而笔划的颜色也能更饱和。如图8所示,一旦计算了空白白板图像(处理动作802),输入图像就通过下述两个步骤进行颜色增强:
1.使得背景统一成白色(处理动作804)。对于每个单元,经计算的白板颜色(等于入射光Clight)就用于衡量单元中每个像素的颜色:
2.减少图像噪声,并增强笔划的颜色饱和度。根据S型曲线:0.5-0.5cos(Cout pπ)来重新映射每个像素每个颜色通道的值。S曲线的斜度由p控制。在本发明的工作实施例中,p设定为0.75(处理动作806)。
2.2.6笔划识别和提取
也提取单元块级别的笔划以作为白板数据流输出。笔划具有下述属性:1)它们是固定的;2)它们具有某些边缘。如图9所示,为了识别边缘和识别直线,对每个输入帧执行两种Sobel滤波[-1-2-1;000;121]和[-101;-202;-101](处理动作902到906)。执行第一Sobel滤波以识别水平边缘,而第二Sobel滤波则识别垂直边缘。该处理识别了输入图像中存在的边缘值(edgel)。而边缘值定义为在两个经滤波的图像中对应的像素的绝对值的总和。对于每个单元,它必须对于N帧(本发明工作实施例中是4)是固定的,且含有一个边缘值,其值大于阈值(本发明工作实施例中是60),以作为笔划单元。这些笔划单元的边缘值定义了这些笔划的边缘,如处理动作908所示。
2.2.7白板颜色模型匹配
当系统开始运行或检测到光照变化时,就获取N帧(例如4帧),而在此期间的固定单元的颜色与数据库中每个白板背景图像进行比较。如果固定的单元与数据库中的一个图像的对应单元颜色都匹配(使用YUV颜色模型,和对于不同的测试使用15,5,5),就存在一个匹配,系统就用来自匹配的图像的颜色来初始化剩余非固定单元。一旦背景颜色更新过程稳定,就在此对数据库进行匹配。如果不存在匹配,就将当前颜色加入到数据库中。
2.3基于客户机的实时白板流技术系统和方法
如前所述,在会议室中的口头讨论由麦克风捕获,并且该音频(最好和定向信息一起)发送到远程人员。如前所述,增强白板图像流和白板数据流发送给远程参与者。远程参与者可以选择接收一个或另一个或都接收两者实时数据流。
会议中的远程人员通过音频(由会议室中的扬声器播放)和通过注解捕获的白板帧来参与会议。远程参与者的注解可以包括,例如使用鼠标或其它输入设备在白板上加入文本、圆圈定白板上的项目或绘图或作其它标记。远程参与者所作的注解通过网络使用任何适合的实时通信协议来传送给会议服务器并显示。由于白板信息已经驻留,因此,只需要传送注解,而不需要将整个白板图像都传送给会议服务器。这有利于使得传送注解所需的网络带宽很小。
2.3.1给单独显示器的注解
经注解的白板帧显示在会议室的显示器上。该显示器独立于会议室中的实际白板,但含有白板的内容和远程参与者的注解。远程参与者的注解也显示在其他远程人员的桌面上。还可以使用例如蜂鸣器或闪烁屏幕这样的信号来提醒会议参与者和远程参与者,有远程参与者已经向白板内容进行注解。
2.3.2在实际白板上投影注解
或者,远程参与者的注解可以显示在会议室的实际物理白板上。这可以通过将远程客户的注解使用投影仪投射在实际白板上来实现。
2.4使用平板PC注解
在上述方案中,远程参与者采用的是传统的PC。然而,远程参与者也可以使用平板PC。微软公司的平板PC是针对全配置个人计算机设计的,它允许用户使用输入笔或数字感应触摸屏代替键盘来通过自然手写记录笔记。墨水(ink)技术可以使得远程参与者进行注解(无论是公开的和/或私人的)变得更加容易。
2.5归档
整个会议(包括注解)都能归档,以便在将来进行查阅。白板和注解作了时间标记,并与音频同步。这样,会议参与者可以在空闲的时间回顾该会议。另外,不能参加会议的人员也可以在随后的时间查阅此次会议。
前面所述的本发明的内容都是为了对本发明进行说明和描述。这些内容并不是要将本发明局限于前面所述的内容中。可以通过上述示例进行修改和变化。
附页A
白板颜色估计
为了对在将单元分成前景单元时出现白板颜色缺口进行填充,就使用下述处理来估计要填充这些缺口的颜色。所述处理基于下述两个观察资料:
1)白板颜色填充随单元的变化而变化,但这种变化并不剧烈。白板颜色具有平滑性和连续性。
2)由于光照条件在短周期期间通常不会变化,因此,如果没有前景对象,就将白板颜色保持不变。
本处理的目标是从具有变化前景但处于恒定或渐变光照条件的图像序列中估计白板颜色。(当光照条件突然变化,例如关闭或开启一盏灯,的情况已经在2.2.4节中描述过了,是通过检测变化并使用多个颜色模型来处理)。恒定或渐变光照条件的假设是指每个白板像素的颜色只能随时间在限定范围内变化,并且,在本发明的一个实施例中,这种变化已经模型化为用零平均值和小标准偏差的随机处理。还假设相邻像素之间的白板反射率属性是类似的,这意味着相邻像素之间的白板颜色只能在限定范围内变化,并且,在本发明的一个实施例中,这种假设模型化为Markov随机场,因此,在一个像素的白板颜色仅由相邻像素制约。该估计处理包括下述步骤:
1.初始化。白板颜色需要初始化。这可以通过多种方法来实现。一种方法是通过利用邻近平滑度约束仅从一个图像来估计白板颜色。每个像素的颜色估计与协方差矩阵相关联,该矩阵表示了这种估计的精度。
2.颜色匹配。给出一个输入图像,对每个像素将期待的白板颜色和实际观测的颜色进行比较。如果它们差异巨大,所观测的像素不是笔划的一部分就是前景对象的一部分,并且在下一步骤将丢弃该像素的颜色;否则,该像素的颜色就是白板颜色的观测值,并在更新白板颜色中使用。
3.颜色更新。将输入图像中有效的白板颜色像素在概率性框架(probabilistic framework)下用于更新白板颜色。每个像素的白板颜色改变多少取决于当前所观测像素相对于所估计颜色来说有多可靠,当前所观测像素对于所估计颜色来说有多大不同,以及所观测颜色与相邻像素中的颜色有多大不同。每个像素颜色估计的协方差矩阵也会相应更新。
步骤2和3针对每个输入图像进行重复。
为了减少计算的复杂性并考虑到白板颜色实际上在空间上变化非常缓慢,白板区域可以分成一组小单元,而可以以每个单元(不是每个像素)为基础来估计白板颜色。更具体地说,估计白板颜色的数学细节将在下面的章节说明。
A.1目标
该处理的目标是从图像系列中实时动态估计白板颜色。在此假设亮度随时间是恒定的。(当光照突然变化,例如当关闭一盏灯,就需要使用多个白板颜色模型)
A.2表示
参照图A-1,状态变量xi,j是要估计的每个单元(i,j)白板的颜色。观察变量zi,j是从图像观测的每个单元(i,j)处的白板的颜色,该变量可以通过例如直方图(histogramming)来计算。
A.3问题陈述
给出:
●状态变换:
即对于随机变量ηi,j t~N(0,Ri,j t)(即以0为中心具有协方差矩阵Ri,j t的正态/高斯分布)恒定;
●在时间t,观察:
其中观察噪声ζ
i,j t~N(0,Q
i,j t);在t时的估计状态:
协方差矩阵
这是在
需要在空间上非常平滑作为限制条件下。
A.4平滑度
人们可以使用4或8个邻域来如下建立平滑度模型:(xi,j t-xk,l t)~N(0,Si,j t)
其中,k∈[i-1,i+1],而l∈[j-1,j+1],并且(k,l)≠(i,j)。
在t时间的状态预测如下:
A.5目标函数
随后给出试图最小化的总体能量:
其中Ω是邻域的数目。这三个项分别是预测、观察和邻域的差异。所有的差异是统计距离,并由协方差矩阵归一化。
A.6解答
对于
到0设定F的偏导数,产生:
其中
xi,j t是邻域中状态的平均值,即:
这给出了下列解答:
不幸地是,右侧的
x
i,j t涉及到未知的x
k,l t。因此,为了解决相互依赖的问题,使用了下述迭代处理:对于第一次迭代,使用预期平均值,
,作为
x
i,j t;并且在随后的迭代中,我们采用来自先前迭代的估计平均值。注意,这种迭代处理是非常有效的,因为迭代之间唯一的修改就在于
x
i,j t;其它的都能被高速缓冲。同样,给出如下x
i,j t的协方差:
其中I是单位矩阵,并且
再次使用迭代过程,将预测平均值
作为第一迭代中的
Pi,j t。
A.7实际考虑事项
在实现时,需要注意下述问题:
●观测协方差Qi,j t。它应该包括传感器噪声和判决的不肯定性。判决的不肯定性是我们认为zi,j t是白板颜色的有多少可信度的倒数。如果是界外值,就设定
(无限值)。
●状态转换噪声ηi,j t和它的协方差矩阵Ri,j t。这用于说明由于灯或日光引起的光照中的小变化。(巨大的变化例如当关闭一盏灯时需要考虑使用多个模型。)
●平滑度协方差矩阵S
i,j t。它应该比协方差
的当前估值和理想情况下期望的变量之和要小。如果期望的变量为每颜色通道5个强度级,就可使用