首页> 中国专利> 使用常规相机传感器针对可见光通信的数据检测

使用常规相机传感器针对可见光通信的数据检测

摘要

本发明涉及一种用于确定以N个符号的重复序列的形式嵌入到光源的光输出中的数据的检测系统。该检测系统包括相机和处理单元。该相机被配置成经由快门的特定打开/关闭模式获取场景的一系列图像。该处理单元被配置成处理所获取的一系列图像以确定N个符号的重复序列。通过在相机的快门打开时小心触发以在相机的每个帧时间内捕获编码光的不同符号,可以使用具有相对较长的帧时间的常规相机。因此,本文所呈现的技术适合用于在使用如现有技术中使用的较不昂贵的相机的同时检测不可见的“高频”编码光。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-03-29

    专利权的转移 IPC(主分类):H05B37/02 登记生效日:20170309 变更前: 变更后: 申请日:20110113

    专利申请权、专利权的转移

  • 2017-03-29

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H05B37/02 变更前: 变更后: 申请日:20110113

    专利权人的姓名或者名称、地址的变更

  • 2016-07-06

    授权

    授权

  • 2013-02-27

    实质审查的生效 IPC(主分类):H05B37/02 申请日:20110113

    实质审查的生效

  • 2012-09-26

    公开

    公开

说明书

技术领域

本发明的实施例总体涉及照明系统和光接收器领域,并且更特别地涉及用于检测嵌入到这样的照明系统的光输出中的数据的系统和方法。

背景技术

可见光通信是指经由由发光源产生的光输出传送数据。这样的通信是未来实现本地化无线数据交换的有前途的方式,因为宽无照频带可用于此并且因为用于照亮房间或空间的发光二极管(LED)可以被应用以提供通信。也许未来的每个发光源可以变成通信源。

一种可见光通信技术基于通过响应于重复数据信号调制照明设备的光输出而将数据嵌入到照明设备的光输出中(这种光输出有时被称为“编码光”且被缩写为“CL”)。优选地,该光输出在高频率处被调制,使得该调制对消费者而言是不可见的。

可以应用CL的一种情境包括灯,在它们的光输出中嵌入了关于它们的维护信息的数据,比如燃烧小时数、调光方案、能力、控制网络地址、灯温度、调光计划、故障等。另一种情境包括公共场所中的灯,其嵌入提供本地天气、方向、附近商店/饭店的本地商业广告、交通信息、音乐等的数据。

所嵌入的数据可以由光接收器检测,该光接收器可以例如在用于控制灯的遥控装置中实现或者包括在诸如开关或传感器设备之类的另一个单元中。一种用于检测CL的已知技术包括使光接收器指向特定灯并且读出嵌入在该灯的光输出中的数据。

该检测技术的一个缺陷是只能检测在单个位置处存在的嵌入数据。相反,所期望的是同时取回在场景内的不同位置处传送的数据。为此,其他检测技术已经被示出以通过使相机指向场景并且并行地处理和记录该场景内各种位置的数据流来使用相机。该类型的基于相机的检测需要具有至少等于用于将数据嵌入到灯的光输出中的调制频率的帧速率的相机。常规的商用相机(比如在移动电话和网络摄像机中使用的相机)具有50到100Hz的帧速率,这远低于以对消费者而言不可见的方式嵌入数据所必需的调制频率。尽管这些相机可以用于检测CL,但是该CL必须通过使用低调制频率或通过使用颜色调制来嵌入。这两种嵌入方法均导致灯的光输出对消费者而言显而易见的变化。

如上文所说明,本领域中所需要的是解决至少一些上述问题的、用于检测嵌入到光源的光输出中的数据的技术。

发明内容

本发明的目的是提供一种适合用于在使用如先前技术中所使用的常规商用相机的同时确定利用不可见“高频”调制嵌入到光源的光输出中的数据的检测系统和方法。

本发明的一个实施例提出一种用于确定第一代码中所包括的N个符号的重复第一序列的检测系统。第一代码被嵌入到照明系统的第一光源的光输出中。该检测系统至少包括相机和处理单元。该相机被配置成获取场景的一系列图像。每个所获取的图像包括多个像素,每个像素表示场景内不同的物理位置处照明系统的总光输出的强度。照明系统的总光输出包括场景内至少一个物理位置中第一光源的光输出。所述图像系列包括至少N个不同的图像。所述至少N个不同图像中的每一个图像是利用包括在N个符号的重复第一序列内不同时间位置处的一个或多个曝光实例(instance)的总曝光时间来获取的。该处理单元被配置成处理所获取的图像系列以确定N个符号的重复第一序列。

这种检测系统可以例如在用于控制照明系统的遥控装置中实现或包括在诸如开关、传感器设备或移动电话之类的另一个单元中。该处理单元可以在硬件中、在软件中实现,或实现为具有硬件和软件组件二者的混合解决方案。

而且,提供一种用于确定第一代码中所包括的N个符号的重复第一序列的对应的方法和计算机程序,其中第一代码被嵌入到照明系统的第一光源的光输出中。计算机程序可以例如被下载到现有的检测系统(例如下载到现有的光接收器或移动电话)或可以在制造检测系统时被存储。

如本文所使用,术语[图像的]“像素”是指对应于场景内的特定点的图像数据的单元。图像数据包括场景内的不同点处照明系统的总光输出的强度(或其衍生物)。在像素的行和列中布置图像数据是在2D图像中表示三维(3D)场景的一种方式。

所嵌入的代码的重复序列的持续时间(或,可替代地,在包括该序列的二进制值的数量中测量的嵌入代码的重复序列的长度)在本文中被称为“代码周期”。特定的代码可以通过经由使用如本领域已知的例如脉冲宽度调制、脉冲密度调制或幅度调制的二进制调制或多级调制来调制应用于光源的驱动信号而被嵌入到光源的光输出中。如本文所使用的术语“驱动信号”是指电信号,该电信号在被应用于光源时使得该光源生成光输出。优选地,该代码以以下这样的方式被嵌入在光输出中:人眼不能区分包括嵌入代码的光输出与没有嵌入代码的光输出。这可以通过例如以高频调制应用于第一光源的驱动信号来实现。

本发明基于以下认识:通过捕获相同场景的一系列图像(它们的不同点仅在于每个图像在重复序列内被获取的相对时间(这样的时间在本文中被称为“曝光实例”))并且选择对应于编码光的特定代码位的相机的帧时间内曝光实例的时间位置和持续时间,可以确定嵌入到光源的光输出中的代码位的特定序列(该光源的光输出存在于场景内)。帧内的所有曝光实例的持续时间的和被称为相机的“曝光时间”。在特定曝光实例处期望的曝光时间可以通过打开和关闭相机的快门来实现,其中该快门可以在相机的内部或外部。对于所有图像,该曝光时间保持相同,同时在快门打开时相对于所嵌入的代码位的序列而改变(即同时改变重复序列内曝光实例的时间位置)。例如,对于被设置为20毫秒(ms)的相机的帧时间和被设置为5ms的曝光时间,可以在快门仅在该帧的最初5ms打开(即,该快门在该帧的最后15ms关闭)时获取一个图像,而可以在快门仅在帧的最后5秒打开(即,该快门在该帧的最初15ms关闭)时获取另一个图像,可以在快门在帧的第一毫秒打开、然后关闭一毫秒、然后打开另一毫秒、然后再次关闭一毫秒、然后再次打开3ms、且然后在帧时间的剩余时间关闭时获取又一个图像。处理单元可以被配置成将所获取的图像系列的所选像素与将不同的代码位区分开来的阈值进行比较以确定编码序列的所有代码位。

以此方式获取和处理一系列图像允许确定嵌入到2D场景内光源的光贡献的数据。通过在相机的快门打开时小心触发以在相机的每个帧时间内捕获编码光的不同代码位,可以使用具有相对较长的帧时间的常规相机。因此,本文所呈现的技术适合用于在使用如现有技术中所使用的较不昂贵的相机的同时检测不可见“高频”CL。

本文所述的光源可以包括高/低压气体放电源、无机/有机发光二极管、激光二极管、白炽源或卤素源。嵌入在照明系统的光输出中的数据可以包括光源的本地化标识、它们的能力和当前设置或与光源相关的其他类型的信息。然而,应当注意,照明系统不一定用于照亮空间或区域的目的,而是就其本身而言还可以用于数据通信。作为示例,该照明系统可以构成到网络的接入点。对于这样的应用,由照明系统产生的至少一部分光输出可以位于可见光谱之外(即该系统的光源之一的光输出可以位于可见光谱之外)。

权利要求2和13的实施例指定了对所获取的图像系列的处理可以有利地包括:确定用于将第一代码嵌入到第一光源的光输出中的调制类型;使用所确定的类型的调制来确定区分第一代码的不同符号的一个或多个阈值;以及通过将所获取的对应于包括第一光源的光输出的场景内所述至少一个物理位置的图像系列的像素序列的每个像素与所述一个或多个所确定的阈值的至少一个进行比较,来确定N个符号的重复第一序列。

权利要求3的实施例提供:用于确定N个符号的重复第一序列的像素序列包括对应于仅包括第一光源的光输出的场景内物理位置的像素。以此方式,仅包括嵌入到单个光源的光输出中的单个数据流的像素序列被用于确定所述符号。

权利要求4的实施例提供在第一代码内包括中间序列。该中间序列可以有利地用于例如:在N个符号的重复第一序列与接收器之间提供同步(权利要求5);确定N个符号的重复第一序列包括对应于仅包括第一光源的光输出的场景内物理位置的像素(权利要求5);和/或确定用于将重复第一序列嵌入到第一光源的光输出中的调制的类型(权利要求6)。

权利要求7的实施例阐述了曝光实例的持续时间。选择这种持续时间是有利的,因为它允许处理单元解析嵌入代码的各个符号。

权利要求8和9的实施例提供:当一个或多个曝光实例包括至少两个曝光实例时,这些曝光实例可以是连续的(即单次曝光)或非连续的(即相机的帧内的曝光被分解成多个单独的曝光实例)。当相机的帧内所有曝光实例是连续的时,典型地在所有相机内部的快门可以用于在总曝光时间内设置正确的曝光实例(即在相机的帧时间内期望的时间位置处设置曝光实例)。可替代地,典型地在所有相机内部的快门可以被设置成在每个帧的整个帧时间内打开,并且在相机外部的快门可以用于在总曝光时间内设置正确的曝光实例。电子快门可以用于此目的。

权利要求10和14的实施例允许当所述一个或多个曝光实例包括两个或更多个曝光实例时对相机每帧的多位曝光的校正。获取具有每帧多位曝光的每个图像可以通过减少噪声对检测过程的影响而达到更高的光效率,特别是在低光条件下。

权利要求11的实施例有利地指定使用具有比用于将第一代码嵌入到第一光源的光输出中的调制频率更低的帧速率的相机来获取所述图像系列。

在下文中,将更详细地描述本发明的实施例。然而,应当领会,该实施例可以不被解释为限制本发明的保护范围。

附图说明

图1是在根据本发明的一个实施例的结构中安装的照明系统的示意性图示;

图2是根据本发明的一个实施例的照明系统的示意性图示;

图3是根据本发明的一个实施例的包括N个符号的重复序列的代码的示意性图示;

图4是根据本发明的一个实施例的检测系统的示意性图示;

图5提供了根据本发明的一个实施例的包括4个符号的重复序列的示例性代码和在适用于这样的代码的相机的帧内的示例性单个位曝光实例的示意性图示;

图6a是根据本发明的一个实施例的在两个光源向场景提供光贡献时所取得的图像系列的第一图像的示意性图示;

图6b是根据本发明的一个实施例的在两个光源向场景提供光贡献时所取得的图像系列的第二图像的示意性图示;

图6c是根据本发明的一个实施例的在两个光源向场景提供光贡献时所取得的一系列图像的示意性图示;

图7是根据本发明的一个实施例的用于确定N个符号的重复序列的方法步骤的流程图;

图8是根据本发明的一个实施例的对应于包括一个第一光源的光输出的场景内一个所选物理位置的所获取的图像系列的像素序列的示意性图示;

图9提供了根据本发明的一个实施例的包括4个符号的重复序列的示例性代码和在适用于这样的代码的相机的帧内的示例性多位曝光实例的示意性图示;以及

图10提供了根据本发明的一个实施例的包括N个符号的重复序列的示例性代码和用于操作相机外部的快门的示例性开关信号的示意性图示。

具体实施方式

在下面的描述中,阐述许多特定细节以提供对本发明的更彻底的理解。然而,对本领域技术人员而言,显然本发明可以在没有这些特定细节中的一个或多个的情况下被实施。在其他实例中,众所周知的特征未被描述以便避免使本发明晦涩难懂。

图1示出安装了照明系统110的结构100(在此情况下为房间)。该照明系统110包括一个或多个光源120和一个或多个控制光源120的控制器(在图1中未示出)。当利用电信号驱动时,光源120照亮结构100的各部分,来自各种照明光源120的照明贡献被示出为足迹(footprint)125a-125d。光源120可以包括高/低压气体放电源、无机/有机发光二极管、激光二极管、白炽源或卤素源。该照明系统110可以进一步包括允许用户控制光源120的遥控装置130。

图2是根据本发明的一个实施例的照明系统200的示意性图示。照明系统200可以用作图1所示的结构100中的照明系统110。如图所示,照明系统200至少包括系统控制器210和第一光源220-1,并且被配置成根据光设置生成光输出205。在其他实施例中,该照明系统可以包括附加光源且可选地可以包括附加控制器,所述附加控制器单独地控制每个附加光源。可替代地,单个控制器可以被配置成控制多个光源。

照明系统200被配置成操作如下。如图2所示,用于照明系统200的光设置被提供给驱动信号发生器230(其可选地可以包括在照明系统200内)。所述光设置指示就例如光功率(例如以流明定义)和颜色而言平均光输出205应当是什么。光设置可以由用户经由遥控装置130来提供,或者可以从控制场景设置的外部单元预编程并提供。可替代地,光设置可以被预编程并存储在驱动信号发生器230内或照明系统200内的存储器中。驱动信号发生器230将光设置转化为用于照明系统200内的不同光源的不同的电驱动信号,并且将这些驱动信号提供给系统控制器210。在图2中所示的实施例中,驱动信号发生器230将光设置转化为用于第一光源220-1的第一驱动信号。系统控制器210继而利用不同光源的相应驱动信号驱动这些不同的光源以产生光输出205。在图2所示的实施例中,系统控制器210被配置成利用第一驱动信号驱动光源220-1以产生光输出225-1。在该实施例中,照明系统200的光输出205包括光输出225-1。

如本文所述,光设置指示照明系统200的光输出205就例如光颜色而言应当是什么。光输出205的颜色变化可以通过经由控制从驱动信号发生器230提供给系统控制器210的驱动信号而有区别地调光照明系统200内的不同光源(图2中未示出的附加的、可选的光源)来实现。对于每个光源的恒定调光水平,从驱动信号发生器230提供给系统控制器210的驱动信号包括脉冲的重复模式。这种重复模式在本文中被称为“驱动模式”。

用于调光光源的各种方法对本领域技术人员而言是已知的,因此在这里没有进行详细描述。这些方法包括例如脉冲宽度调制、脉冲密度调制或幅度调制。

系统控制器210被进一步配置成从数据源240接收信号245。信号245(至少)包括要被嵌入到光源220-1的光输出225-1中的数据位。系统控制器210被配置成通过在重复序列中布置数据位来生成要被嵌入到光输出225-1中的代码。图3中图示了这种代码的一个示例。如图所示,代码310包括N个符号(例如位)的第一重复序列,被示为“序列1”。在下面的描述中,这些符号将被称为位。然而,应当认识到每当词语“位”在本申请中使用时,“符号”的更宽泛的定义适用,其也可以包括由单个符号表示的多个位。一个示例是多级符号,其中不仅存在0和1以嵌入数据,而且存在多个离散级。

代码310的每个位具有持续时间Tbit。因此,代码周期等于N*Tbit。该序列可以表示例如光源220-1的本地化标识、其能力和当前光设置、或者可能与光源220-1或照明系统200相关或可能与其不相关的其他类型的信息。

在一个实施例中,“序列1”可以包括要被嵌入到光输出225-1中的所有数据位。在另一个实施例中,系统控制器210可以将要被嵌入的数据位分成更小长度的组(即分组)。在这种实施例中,要被嵌入光输出225-1中的第一代码将包括一个组的重复序列(例如,重复第一分组),下一个代码将包括另一个组的重复序列(例如,重复第二分组),以此类推。

可选地,可以使用信道编码(例如,使用卷积编码或分块编码)或使用循环冗余校验(CRC)码来编码要被嵌入光输出225-1的数据位。这可以被完成以增加所传输的数据序列中的冗余,以便在位检测中纠正错误和/或验证所检测的数据是否有效。可替代地,该编码可以用于成形所传输的光信号的谱,从而例如降低被嵌入到光输出225-1中的数据的可见性。对于后一种方案,在一个实施例中,可以采用曼彻斯特(Manchester)编码。该编码方法的优点在于,它抑制了光信号中的低频成分,其是造成可见闪烁的成分。

在一个实施例中,代码310可以包括插入在“序列1”的至少一些出现(occurrence)之间的中间序列(图3中未示出)。例如,中间序列可以被包括在“序列1”的每一个出现之间。在数据位被分成分组的实施例中,这种中间序列可以类似于分组的头部,其包含与该分组相关的信息,比如在传输侧上使用的调制和/或编码的类型、和/或光源220-1的标识。可替代地,中间序列可以被包括在“序列1”的每两个或三个出现之后。而在另一个实施例中,中间序列可以以偶然的、非周期性的方式被包括在内。

如下文所说明,中间序列可以被检测系统的处理单元用来取得光源220-1与检测系统之间的同步化并且/或者向该处理单元提供附加信息,所述附加信息允许处理单元确定N个位的第一序列的代码位。

系统控制器210可以通过响应于代码310调制要被应用于光源220-1的驱动信号而将代码310嵌入到光源220-1的光输出225-1中。用于将代码嵌入到光源的光输出中的各种技术对本领域技术人员而言是已知的,因此在此未被详细描述。信号245可以进一步包括要嵌入到其他光源的光输出的其他类似代码。所述代码的每一个包括N个位的不同的重复序列。

图4是根据本发明的一个实施例的检测系统400的示意性图示。如图所示,检测系统400至少包括相机410、快门420和处理单元430。可选地,检测系统400还包括存储器440。相机410被配置成获取场景的一系列图像。快门420被配置成在相机410获取图像时对所述实例仔细安排时间(time)(当快门420打开时获取图像,而当快门420关闭时不获取图像)。在各种实施例中,快门420可以包括相机410内部的只能在相机的帧时间期间打开和关闭单次(即在帧内预定的持续时间的单次曝光)的常规快门或者置于相机前面的可以在单个帧期间打开和关闭多次的电子快门。

情境1:每帧单个位曝光

首先,考虑照明系统200使得两个光源可以向特定场景提供光贡献的示例性情境。考虑该场景是图1中图示的结构100的地板的一部分,第一光源是图1中图示的光源120中在该场景内(即,在地板上)具有足迹125b的一个光源,以及第二光源是图1中图示的光源120中在场景内具有足迹125c的一个光源。嵌入到第一和第二光源的光输出中的相应代码包括N个位的不同的重复序列。

为了简化起见,考虑要被嵌入到第一光源的光输出中的数据仅包括4位。包括这4位的重复序列的代码在图5中被示出为代码510(即,N个位的第一重复序列包括4位的序列)。如图所示,这些位中的每一个具有持续时间Tbit。因此,代码周期等于4*Tbit。而且,考虑序列的各个位,位c11、c12、c13、c14分别包括图5中用信号520所图示的0、1、0和0。信号520可以包括在图2中所述的信号245中。

如上所述,通过利用响应于代码510调制的驱动信号驱动第一光源来将数据嵌入到第一光源的光输出中。在各种实施例中,系统控制器210可以通过使用例如脉冲宽度调制(PWM)、脉冲位置调制、脉冲密度调制或幅度调制的二进制或多级调制以调制驱动信号来生成经调制的驱动信号。例如,为了使用PWM嵌入来自信号520的二进制值0,系统控制器210可以使得驱动信号内的驱动模式变窄量a以嵌入来自信号520的二进制值“0”,并且系统控制器210可以使驱动信号内的另一个驱动模式变宽量b以嵌入来自信号520的二进制值“1”。通过使量a与量b之间的比率等于信号520中1的数目与0的数目之间的比率,可以使得在照明系统的光输出中嵌入数据对人眼而言是不可见的,因为已调制的驱动信号的时间平均保持与原始的驱动信号的时间平均相同。本领域技术人员将认识到用于依据信号520调制驱动信号以将数据嵌入到照明系统的光输出中的其他方法。

类似地,考虑嵌入到第二光源的光输出中的数据包括4位,c21、c22、c23、c24。再次,每个位具有持续时间Tbit,并且因此代码周期等于4*Tbit。上述关于数据的位可以如何被嵌入到第二光源的光输出中的讨论是适用的,并且因此为了简短而不进行重复。

检测系统400可以被配置成以下述方式操作以便确定嵌入到第一光源的光输出中的数据的位。

首先,相机410被配置成获取场景的一系列图像,其中该场景被选择成使得该场景的至少一部分包括第一光源的光输出。为此,相机的帧时间可以被设置成比代码周期大一位,即5*Tbit,并且相机的曝光可以被设置成包括具有等于代码周期的一位的持续时间(即Tbit)的持续时间的单个曝光实例。而且,相机410可以被配置成在每个帧的第一时间周期Tbit期间获取图像。以此方式配置的相机410的曝光在图5中用线530图示。

当取得图像时,相机获取在场景内所有位置处照明系统的总光输出的强度。在本申请中,每当使用术语(光输出的)“强度”时,应当理解,“强度的衍生物”也包括在内,比如光颜色、色温、光谱和光强度的变化。该图像通常被分成多个像素,其中每个像素表示在场景内不同的物理位置处照明系统的总光输出的强度。在当前情境中,照明系统的总光输出包括来自第一光源的光贡献和来自第二光源的光贡献。

考虑每个图像被分成150个像素的2D网格,其中在x方向上10个像素且在y方向上15个像素。因为相机410的曝光时间被设置成等于代码的单个代码位,所以在取得图像时,在图像的特定像素处的强度受到编码到第一光源的光输出中的代码的位的值和编码到第二光源的光输出中的代码的位的值的影响。这种第一图像在图6a中被示出(该图像对应于图5中图示的帧1)。在场景内第一光源的足迹被示出为圆610,并且第二光源的足迹被示出为圆620。因为在用代码位c11调制第一光源的光输出并且用代码位c21调制第二光源的光输出时取得第一图像600-1,所以在每个像素(x,y)处的强度Ix,y可以被计算如下:

,

其中Ax,y和Bx,y是在应用到第一和第二光源的驱动信号未被用特定代码位调制的情况下第一和第二光源的光输出的强度的相应值。因此,如图6a所示,在例如像素(7,6)处的强度等于。而且,如图6a所示,在例如像素(4,5)处的强度等于并且在像素(5,5)处的强度等于,因为第二光源不向由这些像素表示的场景的各部分提供任何光贡献(这些像素在足迹620之外),即B4,5=B5,5=0。类似地,在例如像素(7,9)处的强度等于并且像素(8,12)处的强度等于 因为第一光源不向由这些像素表示的场景的各部分提供任何光贡献(这些像素在足迹610之外),即B7,9=B8,12=0。例如在像素(9,2)处的强度被示出为等于零,因为第一和第二光源都不向由该像素表示的场景的部分提供任何光贡献(该像素在足迹610和620之外)。

如从曝光530看出,在相机410的帧2期间获取场景的所述图像系列的第二图像。第二图像在图6b中被示出为图像600-2。由于该图像是从同一场景取得的,因此足迹610和620保持与第一图像中的相同。因为图像600-2是在利用编码位c12调制第一光源的光输出并且利用编码位c22调制第二光源的光输出时取得的,所以在每个像素(x,y)处的强度可以计算如下:

因此,如图6b所示,在例如像素(7,6)处的强度等于()。而且,如图6a所示,在例如像素(4,5)处的强度等于,在像素(5,5)处的强度等于,在像素(7,9)处的强度等于,并且在像素(8,12)处的强度等于。此外,在例如像素(9,2)处的强度被示出为等于零,因为第一和第二光源都不向由该像素表示的场景的部分提供任何光贡献。

以相似的方式,在帧3和4中,相机410分别获取所述图像系列的第三图像(600-3)和第四图像(600-4)。此外,由于相机410的曝光时间和帧时间相对于嵌入的代码而被配置的方式的缘故,第三图像是在分别利用代码位c13和c23调制第一和第二光源的光输出时取得的,并且第四图像是在分别利用代码位c14和c24调制第一和第二光源的光输出时取得的。在图6c中示出了图像系列600-1、600-2、600-3和600-4,其中不同的图像被示出为在t方向上延伸(其中“t”代表“时间”),表示这些图像是从同一场景中但在不同时间处取得的。

在获取了图像系列600-1至600-4之后,处理单元430可以处理所述图像系列以确定嵌入到第一光源的光输出中的N个位的第一重复序列。图7图示了根据本发明的一个实施例的用于确定N个位的第一重复序列的方法700的流程图。尽管结合图4描述所述方法步骤,但是本领域技术人员将认识到被配置成以任何顺序执行所述方法步骤的任何系统在本发明的范围内。

方法700可以以步骤710开始,在步骤710中处理单元430被配置成在图像系列600-1至600-4内选择对应于仅包括第一光源的光输出的场景内的物理位置的像素序列。

为了说明图像系列600-1至600-4内对应于场景内特定物理位置的像素序列,考虑在场景内所选择的物理位置是对应于图像600-1至600-4上像素(4,5)的位置。然后,所获取的对应于该位置的系列的像素序列包括来自所述图像的每一个的像素(4,5)。该序列在图8中被示出为序列810。该序列810包括来自第一图像600-1的像素(4,5)(被示出为像素820-1)、来自第二图像600-2的像素(4,5)(被示出为像素820-2)、来自第三图像600-3的像素(4,5)(被示出为像素820-3)和来自第四图像600-4的像素(4,5)(被示出为像素820-4)。如图8所示,在像素820-1至820-4处的强度分别等于、、 和。

在一个实施例中,关于对应于场景内的特定物理位置的像素序列仅包括单个(第一)光源的光输出的确定可以以下述方式完成。

系统控制器210可以偶尔将一个中间序列包括在要嵌入到第一光源的光输出中的代码中,并且将另一个中间序列包括在要嵌入到第二光源的光输出中的代码中,其中处理单元430可以访问这两个中间序列。

每一个中间序列可以包括某种类的标识符,比如特定光源的标识符。可以以上述的这种方式识别的不同光源的数量取决于中间序列的长度。例如,对于包括M个二进制值的重复序列的同步Walsh-Hadamard代码,M个不同光源可以被识别,这意味着处理单元430可以确定M个不同光源中任何一个的光贡献是否在场景内的特定位置处存在,并且可选地确定这种光贡献的大小。使用被配置成在每个帧处具有单个位长曝光实例的常规的50Hz相机(即该相机可以每秒取得50个图像),可以在1秒内获取解析所嵌入的代码的50位中间序列所必需的一系列图像。

在一个实施例中,照明系统200可以直接向处理单元430提供中间序列。在另一个实施例中,检测系统400可以包括存储中间序列的存储器440。在又一个实施例中,检测系统440可以被配置成从(无线地)接收的光信号获得中间序列。可替代地,处理单元430可以通过上述任何手段不获得包含在所嵌入的代码本身的每一个中的中间序列,而是获得其衍生物(即,可以从中获得中间序列的参数)。例如,处理单元430可以获得特定的已知序列的长度或关于可能的序列集合中的一个序列的指示符编号。这些中间序列然后可以由处理单元430重新创建,从而潜在地减少了提供给检测系统400的通信的量。在另一个实施例中,描述中间序列的参数可以从所接收的光信号中提取。

在访问中间序列之后,处理单元430可以被配置成将所获取的对应于场景内所选物理位置的图像系列的像素序列与每一个中间序列关联。在此应当注意,在代码510进一步包括例如在序列1的每一个出现之前或之后所包括的M个位的中间序列的实施例中,由相机410获取的图像的数量将是至少(4+M)个图像,而非如上所述的仅4个图像(因为N=4)。在代码510进一步包括例如在序列1的每第二个出现之前或之后所包括的M个位的中间序列的实施例中,由相机410获取的图像的数量将是至少(2*N+M)个图像。本领域技术人员可以计算出利用相机410获取的必需的图像的最小数量的类似变化,以便解析所嵌入的代码的所有位。在这样的具有中间序列的实施例中,所获取的图像系列的像素的序列将不同于图8中图示的序列810,因为该序列然后将包含多于4个值。具体地,它将包含来自每一个所获取的图像的一个值:例如,对于上述第一实施例的(4+M)个值,以及对于上述第二实施例的(8+M)个值。类似地,相机410的帧时间然后将被设置为适合用于获取不同图像的最小数量—该帧时间可以例如被设置为对于上述第一实施例的(4+1+M)*Tbit和对于上述第二实施例的(8+1+M)*Tbit

由于对应于场景内所选的物理位置的所获取的图像系列的像素序列与嵌入到第一光源的光输出中的中间序列(在本文中被称为“第一中间序列”)的关联,生成具有至少一个峰值的关联输出。关联输出典型地包括多个“峰值”,其中一些峰值比其他峰值小并且表示关联过程的伪影。这样的小峰值在本文中被称为“子峰值”,并且术语“峰值”在本文中用于描述关联输出中指示对应于场景内所选择的物理位置的所获取的图像系列的像素序列内的特定中间序列的存在的峰值。该峰值将明显高于关联输出中的子峰值,并且本领域技术人员可以容易地识别这种峰值。因此,基于对应于场景内所选的物理位置的所获取的图像系列的像素序列与第一中间序列的关联,处理单元430能够确定:如果关联输出包括峰值,则第一光源的光贡献在场景内的所选物理位置处存在。可以通过将来自对应于场景内所选位置的所获取的图像的像素序列与第一中间序列关联来针对场景内任何其他所选物理位置执行类似的关联。

另一方面,由于对应于场景内所选的物理位置的所获取的图像系列的像素序列与嵌入到第一光源的光输出的中间序列(在本文中被称为“第二中间序列”)的关联,生成不具有峰值的关联输出,因为,如例如图6a所示,第二光源不向像素(4,5)提供任何(或至少可忽略的)光贡献。因此,处理单元430可以确定来自所获取的图像系列的像素(4,5)的序列仅仅或主要包括单个(第一)光源的光输出。

如果例如处理单元430开始于通过将像素(7,6)的序列与第一和第二中间序列中的每一个关联来确定例如所获取的图像的系列内像素(7,6)的序列是否仅包括单个(第一)光源的光输出,则两个关联输出将包括峰值。这些关联输出的每一个中的峰值将指示在场景内对应于像素(7,6)的物理位置中两个光源的光输出的存在。处理单元430然后将继续分析另一个像素序列,直到发现所获取的图像系列的至少一个像素序列包括仅第一光源的光输出为止。

对于确定对应于场景内特定物理位置的像素序列仅包括单个(第一)光源的光输出的这种实施例,中间序列可以包括具有良好的自相关属性的序列。当在每个光源被分配唯一中间序列的系统中使用时,这些序列优选地是正交的。这种序列的示例将是Walsh-Hadamard序列,其中中间序列的长度等于要被分配中间序列的光源的数量。然而,这些序列典型地需要同步操作,由于附加的复杂性的缘故,这不总是所期望的。因此,中间序列的另一个可取的属性是具有良好的互相关属性,即在这些序列之间的高自相关和低互相关。这样的序列的示例包括伪随机序列、由线性反馈移位寄存器生成的序列或可以用于码分多址通信系统的其他序列。

在又一个实施例中,所有光源被分配唯一开关频率,其充当标识码。这些还导致低互相关和高自相关。

本领域技术人员将认识到,对于本文所描述的所有情境,用于处理图像系列以确定在场景内所选物理位置处是否存在特定光源的光贡献的其他方法可以由处理单元430来实施。例如,处理单元430可以生成例如对应于不同的中间序列的各种像素序列,并且确定这些序列中的哪一个与对应于所选物理位置的所获取的图像系列的像素的序列匹配,这可以例如利用最大似然搜索来完成。也可以设想其他方法。

在另一个实施例中,关于对应于场景内特定物理位置的像素序列包括主要包括单个(第一)光源的光输出的确定可以使用位序列中嵌入的CRC来完成,并且它用于确定像素序列是否仅或主要包括第一光源的光贡献。为了确定这一点,如进一步所述,可以应用图7的过程。CRC然后用于验证数据是否被正确地检测。当第一光源的光贡献太弱时,当第一光源的光贡献在该像素中不存在时,或者当在该像素存在来自多个光源的强光贡献时,情况可能不是这样的。

在确定对应于场景内的各种特定物理位置的像素序列是否仅或主要包括第一光源的光输出期间,很可能在多个像素处检测到相同的数据流(对应于第一光源的光输出)。在一个实施例中,来自这些像素的信号可以在关于嵌入到第一光源的光输出中的数据的各个位的后续确定期间被组合。可替代地,对导致嵌入到第一光源的光输出中的数据的第一分组中的成功检测的仅少数像素的选择可以用于检测下述分组。不仅仅包括第一光源的光输出的像素可以在下述步骤中被忽略。

在又一个实施例中,其中不同的光源生成不同波长的光输出,检测系统400可以通过使用适于在获取图像系列时仅通过特定波长(或波长范围)的光的滤色器来确保对应于场景内特定物理位置的像素序列仅包括单个(第一)光源的光输出。

所述方法然后进行可选的步骤720,其中处理单元430可以使检测系统400同步到第一重复序列(即,处理单元430可以确定第一重复序列在哪里开始)。

在这种实施例中,中间序列可以包括同步序列,其中处理单元430可以访问该同步序列。对同步序列的访问可以以与上文所述的对中间序列访问的相同方式被布置。

在对同步序列访问之后,处理单元430可以被配置成将图像系列600-1至600-4内对应于仅包括第一光源的光输出的场景内的物理位置的至少一个所选的像素序列与同步序列关联。关联输出中的最大值于是涉及同步序列的起点,并且被用于确定代码510的(至少一些)第一重复序列的起点。实践中对同步有用的序列是具有良好的自相关属性的序列,比如Barker序列,其对于完全对准具有高相关,而对于移位的版本具有低相关。

方法700然后进行至步骤730,其中处理单元430确定用于在第一光源的光输出中嵌入N个位的第一序列的调制类型。在一个实施例中,这可以通过再次使用中间序列来完成。中间序列内典型地由若干位构成的字段可以指示哪种调制被用于将N个位的第一序列嵌入到第一光源的光输出中。为此,处理单元430也需要对用于中间序列的调制类型的访问。用于中间序列的调制的类型可以通过例如将某个标识符包括在中间数据中而被识别,并且可以被提供给处理单元430,如先前针对不同光源的标识符或针对光源的同步序列所描述的。

可替代地,对中间序列和/或N个位的第一序列的调制可以总是利用固定的调制格式来执行。然后步骤730被简化为处理单元430通过例如从存储器440读出固定的调制格式或从系统200接收固定调制格式来获得固定调制格式。

在又一个实施例中,处理单元430可以得知用于根据图像系列600-1至600-4内对应于仅包括第一光源的光输出的场景内的物理位置的所选像素序列(例如序列810)将N个位的第一序列嵌入到第一光源的光输出中的调制方法。例如,处理单元430可以将幅度调制中的水平的数量确定为等于序列810中的幅度水平数的数量。

一旦用于将N个位的第一序列嵌入在第一光源的光输出中的调制的类型是已知的,则在步骤740中,处理单元430被配置成确定区分N个位的第一序列的不同位的一个或多个阈值。换言之,处理单元430确定调制的字母表。例如,对于二进制幅度调制,序列810的特定像素中高于某水平(即阈值)的强度可以被认为表示嵌入到第一光源的光输出中的数据位“1”,而序列810的特定像素中低于某水平的强度可以被认为表示嵌入到第一光源的光输出中的数据位“0”。类似地,在多级幅度调制中,可以确定多个阈值。本领域技术人员可以设想处理单元430可以如何确定这些阈值的各种方法,这取决于例如中间序列的相关值、所接收的像素序列的幅度和/或所接收的强度水平的分布。

方法700然后可以进行至步骤750,在该步骤中处理单元430通过比较序列810的每一个像素与所确定的阈值的至少一个(即通过使用在步骤740中获得的调制的字母表)来确定N个位的第一序列。

可选地,紧随步骤750之后,在嵌入到第一光源的光输出中的数据被嵌入在多个分组中的实施例中,在步骤750中确定的数据位可以被聚合成单个数据分组。然后可以针对嵌入到第一光源的光输出中的第二数据分组重复步骤710-750,以此类推。一旦确定了所有数据分组的数据位,可以将这些数据位重新组合以形成原始数据。

可以执行对所获取的图像系列600-1至600-4的类似处理,以确定嵌入到第二光源的光输出中的位的重复序列。

即使当前情境认为相机的帧时间等于5*Tbit,在其他实施例中,相机的帧时间可以被设置成等于Tbit的任何整数倍,只要该帧时间不是代码周期的整数倍或整数因子(integer fraction)(在此情况下,每个图像将包含相同代码位的值)。例如,如果代码周期等于7*Tbit,相机的帧时间可以被设置成比代码周期大两位或小两位,即9*Tbit或5*Tbit。而且,相机410可以被配置成在每一个帧的任何时间周期Tbit期间、而不一定在每一个帧的第一时间周期Tbit期间获取图像。

在一个实施例中,曝光实例可能基本与所嵌入的数据的全体位一致(即,每个曝光实例基本上在新的代码位被用于调制应用于光源的驱动信号时开始且在应用新代码位结束时结束)。在其他实施例中,这些曝光实例可以与整体位不一致,而是与所嵌入的数据的整体位的所仔细选择的部分一致(例如,与位的中间50%一致)。

而且,在应对N个位的重复序列的其他实施例中,多于N个图像可以被处理单元430获取并处理。这可以例如在信号520包括M个位的中间序列的实施例中完成。在这种实施例中,由处理单元430获取并处理的图像的最小量是(N+M)个图像。在另一个实施例中,这可以用于改进光源检测的概率并且用于改进对嵌入到光源的光输出中的数据位的检测。例如,当2N个图像被获取时,可以对2组N个图像取平均以进一步抑制噪声对检测的影响。这在弱光条件下是特别有利的,因为在所提出的方法中,与曝光周期相比,曝光瞬间典型地较小。

情境2:每帧多位曝光

接下来,类似于第一情境,考虑照明系统200使得两个光源可以向特定场景提供光贡献,其中该场景是图1中图示的结构100的地板的一部分,第一光源是图1中图示的光源120中在该场景内(即,在地板上)具有足迹125b的一个光源,以及第二光源是图1中图示的光源120中在场景内具有足迹125c的一个光源。嵌入到这两个光源的光输出中的相应代码再次包括N个位的不同的重复序列。

再次考虑嵌入到第一光源的光输出中的代码的重复序列包括4位c11、c12、c13、c14,并且嵌入到第二光源的光输出中的代码的重复序列包括4位c21、c22、c23、c24。再次,这些位中的每一个具有持续时间Tbit并且因此代码周期等于4*Tbit。嵌入到第一光源的光输出中的代码在图9中被示出为代码910并且可以被包括在图2中所描述的信号245中。

对第一情境关于代码的位可以如何被嵌入到光源的光输出中的讨论在此是适用的,并且因此为了简短起见在此不再重复。然而,为了简化,由于关于N个位的重复序列的确定针对每个光源独立于另一个光源而被执行并且由于处理单元430开始于选择所获取的图像系列的、其中基本仅存在单个光源的光输出的像素,因此当前情境现在将聚焦于下述示例:其中仅单个光源向该场景提供光贡献。当然本领域技术人员将认识到,在此所示出的说明性示例可以容易地通过合并关于仅包括单个(第一)光源的光输出的所获取的图像的像素序列如何被选择(上述方法700的步骤710)的第一情景的教导而被扩展到多个光源。

相机410再次被配置成获取场景的一系列图像。为此,相机的曝光可以被设置成包括多个曝光实例,每个曝光实例具有等于代码周期的一个位的持续时间的持续时间,即Tbit。在这种情况下,相机410的总曝光时间Texp为所有多个曝光实例的持续时间的和。在这种情境中,为了确定代码910中所包括的N个符号的重复第一序列,检测系统400可以被配置成以不同于第一情境中所述的方式操作。

首先,考虑多个曝光实例是连续的并且相机410被配置成在每个帧的第一时间周期Texp期间获取图像。以此方式配置的在每个帧中具有三个曝光实例的相机410的曝光在图9中用线930图示。

当取得图像时,相机获取场景内所有位置处照明系统的总光输出的强度。在当前情境的说明性示例中,照明系统的总光输出仅包括来自第一光源的光贡献。

因为相机的曝光时间被设置为等于代码910的三个连续代码位,所以在图像的特定像素处的强度受到在取得图像时编码到光源220-1的光输出中的代码的所有位的值的影响。每个像素表示场景内不同的物理位置处照明系统的总光输出的强度。因为第一图像是在利用代码位c11、c12和c13调制第一光源的光输出时取得的(见图9中,曝光930的帧1的相机曝光如何与代码910重叠),所以在每个像素(x,y)处的强度dx,y(1)可以被确定如下:

 ,       (1)

其中是在未利用代码位c11、c12和c13调制应用到第一光源的驱动信号的情况下强度的值,且dx,y(1)中的下标(1)指示这是在帧1处获得的强度。

如从曝光930看出,在相机410的帧2期间获取场景的图像系列的第二图像。因为第二图像是在利用代码位c12、c13和c14调制光源220-1的光输出时取得的(见图5中,曝光530的帧2的相机曝光如何与代码910重叠),所以在每个像素(x,y)处的强度dx,y(2)可以被确定如下:

            (2)。

类似地,对于第三图像,在每个像素(x,y)处的强度dx,y(3)可以被确定为:

         (3)。

最后,对于第四图像,在每个像素(x,y)处的强度d4可以被确定为:

            (4)。

上述针对四个所获取的图像的特定像素(x,y)的强度(1)-(4)可以被写为矩阵强度:

,                     (5)

使用记号 和 ,公式(5)可以重写为:

                    (6)。

在公式(6)中,处理单元430拥有来自所获取的图像系列的强度和来自相机410和快门420被配置以取得图像的方式的。因此等式(6)是具有一个未知量(即)的等式。再次利用矩阵记号写出,处理单元430可以将未知量确定为:

                     (7)

其中,根据常用的矩阵记号, 表示矩阵的逆,或者对于非方形矩阵而言表示伪逆。根据公式(7)执行计算可以被认为将导致(account for)在相机的每个帧时间内具有多位曝光实例的转换应用到所接收的强度的序列。该转换校正每帧多位曝光,从而导致所获取的图像的包含 形式的数据(类似于第一情境中所描述的序列810)而非形式的数据(即未针对每帧多位曝光校正)的像素(x,y)的序列。然后,如第一情境中所述的类似处理(方法700)可以被应用到。在各种实施例中,在如上所述的步骤710-750的部分或全部步骤之前,该转换被应用到像素的序列。

尽管对该情境的讨论迄今为止应对相机410的帧时间内为连续的多个曝光实例的情况,但是类似的方案将适用非连续的多个曝光实例。等式(6)和(7)仍将成立,而在选择用于获取图像的不同的曝光实例的过程中的差异将在不同的矩阵中得到反映。由于根据等式(7)执行计算需要确定矩阵的逆,所以用于图像系列的多个曝光实例应当以这种方式来选择:使得矩阵是可逆的。

在相机410的帧时间内获取具有多个连续的与多个非连续的位的图像之间的又一差异在于这样的曝光可以如何实现。由于在所有相机内部的快门420可以在帧内仅打开和关闭单次,所以这种快门典型地可以仅用于在相机410的帧时间内获取具有多个连续位的图像。

相反,在相机410外部的快门420可以用于在每个帧内获取具有多个连续的和多个非连续的位二者的图像。这种快门可以被实现为置于相机前面的电子快门,其在单个帧期间实现了快门的多次打开/关闭。在一个实施例中,这种快门可以通过数字代码来开关。通过使用相机410外部的快门而实现的打开/关闭模式的一个示例在图10中被图示为开关信号1030。图10还图示了示例性代码1010。

在一个实施例中,检测系统400然后将操作如下。组合的光信号落在置于相机410前面的快门420上。快门420由开关信号1030操作,该信号确定快门的打开/关闭状态。考虑快门420的开关频率与编码光的开关频率相同,即二者使用相同的Tbit。相机410然后将在帧时间Tframe内整合入射光(这也适用于本文所描述的所有其他实施例)。通过开关快门420,代码1010的位在打开快门时间期间将被接收,而其他位则不被接收。因此,所得到的从快门420到相机410的输出信号将是快门被打开期间的各个位的和。

对于每个帧,应用长度为Tframe的不同快门代码,其中Tframe=Tbit*Nshut。在快门420被实现为在相机410外部的快门的实施例中,Nshut优选地是Ncode的整数倍或整数因子。在快门420被实现为在相机410内部的快门的实施例中,Nshut优选地不等于Ncode的整数倍或整数因子。通过选择连续代码的正确组以包括在开关信号1030中,即以使得代码矩阵H是可逆的,可以在对相机410的信号输出进行电处理之后恢复信号d(t)。处理单元430然后可以继续以上述方式确定N个样本的序列。

在一个实施例中,开关信号1030优选地包含尽可能多的1,因为快门420打开的越长,相机410的传感器接收的光越多。用于该目的的适当代码是S-矩阵,其由移除第一行和第一列之后的Hadamard矩阵构成。

对第一情境的所有讨论在此是适用的,并且因此不再重复,除了关于帧时间的持续时间相对于代码周期的持续时间的这一点之外。在每个图像被利用多个曝光实例获取且快门420被实现为在相机410外部的快门的情境中,相机的帧时间优选地被设置为代码周期的整数倍或整数因子。例如,如果代码周期等于7*Tbit,则相机的帧时间可以被设置成代码周期的两倍,即14*Tbit。在每个图像被利用多个曝光实例获取且快门420被实现为在相机410内部的快门的情境中,相机的帧时间优选地被设置为不等于代码周期的整数倍或整数因子,如第一情境中所图示。

当前情境的一个优点是:利用每帧多位曝光获取每个图像是更加光高效的,特别是在弱光条件下。因此噪声对检测过程的影响可以得到减少。

本发明的一个优点在于:基于通过选择相机的快门的特定打开/关闭模式获取的图像系列,可以使用常规的低速率相机来检测在高频处调制的、且因此对人眼而言不可见的编码光。例如,常规的50Hz相机可以用于确定在1kHz或更高处调制的编码光,其远高于人类可见性阈值。

尽管本文所图示的示例实施例被提供用于同步的照明系统(即,各种光源的嵌入代码同时开始的系统),但是本领域技术人员将能够把本发明的教导扩展到异步照明系统(即,各种光源的嵌入代码在不同时间开始的系统)。

本发明的一个实施例可以被实现为与计算机系统一起使用的程序产品。该程序产品的(多个)程序定义了实施例的功能(包括本文所述的方法)并且可以被包含在多种计算机可读存储介质上。说明性的计算机可读存储介质包括但不限于:(i)信息永久地被存储在其上的不可写存储介质(例如,计算机内的只读存储器设备,如CD-ROM驱动器可读的CD-ROM盘、闪存、ROM芯片或任何类型的固态非易失性半导体存储器);和(ii)可变信息被存储在其上的可写存储介质(例如,软盘驱动器内的软盘或硬盘驱动器或任何类型的固态随机存取半导体存储器)。

尽管上文针对本发明的实施例,但是可以设计出本发明的其他和另外的实施例,而不脱离其基本范围。例如,本发明的各方面可以在硬件或软件中或在硬件和软件的组合中实现。而且,尽管在可见光通信的背景下讨论了实施例,但是本发明也适用于除可见范围之外的波长范围。因此,本发明的范围由随后的权利要求确定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号