一种相机校准的方法和系统
文献发布时间:2023-06-19 12:14:58
技术领域
本申请涉及计算机视觉,更具体地涉及用于相机校准的方法和系统。
背景技术
监控系统中期望实现大范围监控,以及获取该监控范围内任何特定目标的详细信息。所以,相机的并排组合,如云台(PTZ)相机旁边的广角相机,可以用于监控系统。在监控系统检测到移动物体并拍摄移动物体的图片之前,需要对这两台相机进行校准。期望提供用于在两个相机之间进行自动且高效的相机校准的系统和方法。
发明内容
本申请的一部分附加特性可以在以下描述中进行说明。通过对以下描述和相应附图的研究或者对实施例的生产或操作的了解,本申请的一部分附加特性对于本领域技术人员是明显的。本申请的特征可以通过对以下描述的具体实施例的各个方面的方法、手段和组合的实践或使用得以实现和达到。
根据本申请的第一方面,图像获取系统可以包括至少一个存储设备,包括一组指令;至少一个处理器与所述至少一个存储设备通信,其中,当执行该组指令时,所述至少一个处理器被指示使所述系统:获得两组或多组图像,其中所述两组或多组图像包括由第一图像获取设备获取的第一图像和由第二图像获取设备获取的第二图像;对于其中一组图像,确定两个或多个点对,其中所述两个或多个点对中的每一个包括所述第一图像中的第一点和所述第二图像中的第二点,并且所述第一点和所述第二点对应同一个对象;以及基于所述两组或多组图像中的点对确定第一旋转矩阵,其中所述第一旋转矩阵与所述第一图像获取设备和所述第二图像获取设备的位置之间的关系相关联。
在一些实施例中,可以从所述第一图像获取设备的第一视野获取所述第一图像,从所述第二图像获取设备的第二视野获取所述第二图像,在所述第一视野和所述第二视野之间存在重叠。
在一些实施例中,与所述两组或多组图像中的所述第二图像相关的所述第二视野完全覆盖所述第一视野。
在一些实施例中,所述第一图像获取设备具有大于阈值的宽视野,并且所述第二图像获取设备是云台(PTZ)相机。
在一些实施例中,基于所述两组或多组图像中的点对确定所述第一旋转矩阵,所述至少一个处理器使所述系统:对于每个点对,基于与所述第一图像获取设备相关联的第一三维坐标系,确定与所述第一点相关的第一三维信息;以及基于与所述第二图像获取设备相关联的第二三维坐标系,确定与所述第二点相关的第二三维信息;以及基于所述第一三维信息和所述第二三维信息确定所述第一旋转矩阵。
在一些实施例中,与所述第一点相关的所述第一三维信息包括所述第一点的三维坐标或者从所述第一图像获取设备的光学中心到所述第一点的向量,与所述第二点相关的所述第二三维信息包括所述第二点的三维坐标或者从所述第二图像获取设备的光学中心到所述第二点的向量。
在一些实施例中,基于所述第一三维信息和所述第二三维信息确定所述第一旋转矩阵,所述至少一个处理器进一步指示系统:对于所述两组或多组图像中每个第二图像,获取用于获取所述第二图像的所述第二图像获取设备的平移参数和倾斜参数;以及基于所述平移参数和所述倾斜参数确定所述第二旋转矩阵,其中,所述第二旋转矩阵与所述第二三维坐标系和世界坐标系之间的关系相关联,所述第二三维坐标系与所述第二图像获取设备相关联;以及基于与每个所述第二图像相关联的所述第二旋转矩阵、所述第一三维信息和所述第二三维信息,确定所述第一旋转矩阵。
在一些实施例中,可以使用Levenberg-Marquardt(LM)算法确定所述第一旋转矩阵。
根据本申请的另一方面,图像获取方法可以包括以下操作中的一个或多个。一个或多个处理器可以获得两组或多组图像,其中所述两组或多组图像包括由第一图像获取设备获取的第一图像和由第二图像获取设备获取的第二图像;对于其中一组图像,确定两个或多个点对,其中所述两个或多个点对中的每一个包括所述第一图像中的第一点和所述第二图像中的第二点,并且所述第一点和所述第二点对应同一个对象;以及基于所述两组或多组图像组中的点对确定第一旋转矩阵,其中所述第一旋转矩阵与所述第一图像获取设备和所述第二图像获取设备的位置之间的关系相关联。
根据本申请的又一方面,图像获取系统可以包括图像获取模块,被配置为获得两组或多组图像,其中所述两组或多组图像包括由第一图像获取设备获取的第一图像和由第二图像获取设备获取的第二图像;点确定模块,被配置为对于其中一组图像,确定两个或多个点对,其中所述两个或多个点对中的每一个包括所述第一图像中的第一点和所述第二图像中的第二点,并且所述第一点和所述第二点对应同一个对象;以及矩阵确定模块,被配置为基于所述两组或多组图像中的点对确定第一旋转矩阵,其中所述第一旋转矩阵与所述第一图像获取设备和所述第二图像获取设备的位置之间的关系相关联。
根据本申请的又一方面,非暂时性计算机可读介质可以包括用于图像获取的至少一组指令。可以由计算设备的一个或多个处理器执行所述至少一组指令。一个或多个处理器可以获得两组或多组图像,其中所述两组或多组图像包括由第一图像获取设备获取的第一图像和由第二图像获取设备获取的第二图像;对于其中一组图像,确定两个或多个点对,其中所述两个或多个点对中的每一个包括所述第一图像中的第一点和所述第二图像中的第二点,并且所述第一点和所述第二点对应同一个对象;以及基于所述两组或多组图像中的点对确定第一旋转矩阵,其中所述第一旋转矩阵与所述第一图像获取设备和所述第二图像获取设备的位置之间的关系相关联。
附图说明
本申请将通过示例性实施例进行进一步描述。这些示例性实施例将通过附图进行详细描述。这些实施例是非限制性的示例性实施例,在这些实施例中,各图中相同的编号表示相似的结构,其中:
图1是根据本申请一些实施例所示的成像系统的示例性示意图;
图2是根据本申请一些实施例所示的计算设备的示例性硬件组件和软件组件的示意图;
图3是根据本申请一些实施例所示的移动设备的硬件组件和软件组件的示例性示意图;
图4是根据本申请一些实施例所示的处理设备的示例性示意图;
图5是根据本申请一些实施所示的用于相机校准的示例性流程图;以及
图6A和6B是根据本申请一些实施例所示的一组图像中的示例性点对的示意图。
具体实施方式
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。然而,本领域技术人员应该明白,可以在没有这些细节的情况下实施本申请。在其他实例中,已经在相对较高的层次上描述了公知的方法、过程、模块、系统、装置和/或驱动器,而没有详细说明,以避免不必要地模糊本申请的方面。
本申请中所使用的术语仅出于描述特定示例实施例的目的,而非限制性的。如本申请使用的单数形式“一”、“一个”及“该”同样可以包括复数形式,除非上下文明确提示例外情形。还应当理解,如在本申请说明书中使用的术语“包括”、“包含”仅提示存在所述特征、整数、步骤、操作、组件和/或部件,但并不排除存在或添加一个或以上其它特征、整数、步骤、操作、组件、部件和/或其组合的情况。
应当理解,本文中使用的术语“系统”、“引擎”、“模块”和/或“单元”是以升序区分不同级别的不同组件、元件、部件、部分或组件的一种方法。然而,如果它们可以达到相同的目的,则这些术语可以由其他表达式代替。
应当理解,当设备、单元或模块被称为“在其上”、“连接到”或“耦合到”另一设备、单元或模块时,它可以直接连接或耦合到另一设备、单元或模块,或与之通信,或者可以存在中间设备、单元或模块,除非上下文另有明确说明。在本申请中,术语“和/或”可包括任何一个或以上相关所列条目或其组合。
本申请的这些和其他特点和特征,以及在参考附图的以下描述考虑以下描述时,结构和制造经济的相关元件的操作和功能的操作和功能的运行方法和功能的运行方法可以变得更加明显,所有这些都形成了本规范的一部分。然而,应明确地理解,附图仅出于说明和描述的目的,并不旨在限制本申请的范围。应当理解的是,附图并不是按比例绘制的。
本申请涉及用于两个相机之间的相机校准的系统和方法。两组或多组图像可以由两个相机获取。可以在每组图像中确定两个或多个点对。一个点对可以对应于同一个对象。表示两个相机的位置之间的关系的旋转矩阵可以基于两个或多个点对的三维(3D)信息来确定。本申请的用于相机校准的系统和方法中,云台相机可以从一个视角拍摄一张图片,所述视角与广角相机的视角至少部分重叠,而不是通过手动移动云台相机使云台相机聚焦在广角相机获取的图像中的选定点处。另外,本申请中的相机校准的过程可以是全自动的,这减少了人力,并提高了相机校准的效率和准确性。
图1是根据本申请一些实施例所示的成像系统100的示例性示意图。成像系统100可以是使用一个或多个相机和计算机来模拟生物视觉并通过获取、处理和分析图像来识别、跟踪、定位和测量现实世界中的对象的系统。如图1所示,成像系统100可以包括图像获取系统110、处理设备120、一个或多个用户终端130、网络140和存储设备150。
图像获取系统110可以被配置为获取图像或视频。图像或视频可以是二维(2D)或三维(3D)。在一些实施例中,图像获取系统110可以是双目视觉系统或多视觉系统。图像获取系统110可以包括被配置为获取一个或多个图像或视频的两个或多个图像获取设备。两个或多个图像获取设备可以单独安装或包括在单个设备中,例如具有两个或多个相机的设备。
在一些实施例中,两个或多个图像获取设备可以包括数码相机、静态相机、云台(PTZ)相机、广角相机、移动相机、立体相机、结构化光相机、飞行时间相机、透视相机等或其任何组合。数码相机可以包括2D相机、3D相机、全景相机、虚拟现实(VR)相机、网络相机、即时图片相机、相机、监控相机等或其任何组合。在一些实施例中,图像获取系统110中的两个或多个图像获取设备中的至少一个可以是云台相机。例如,图像获取系统110可以包括静态广角相机和云台相机。作为另一示例,图像获取系统110可以包括两个云台相机。
在一些实施例中,图像获取系统110可以被添加到医学成像设备、夜视设备、雷达设备、声纳设备、电子眼、相机、热成像设备、智能手机的一部分、平板电脑(PC)、笔记本电脑、可穿戴设备(例如,3D眼镜)、机器人的眼睛、车辆行驶数据记录器、无人驾驶设备(例如,无人驾驶飞行器(UAV)、无人驾驶汽车等)、视频游戏控制台等或其任何组合。
在一些实施例中,图像获取系统110可以经由网络140与成像系统100的一个或多个组件(例如,用户终端130、处理设备120或存储设备150)通信。在一些实施例中,图像获取系统110可以直接连接到成像系统100的一个或多个组件(例如,用户终端130、处理设备120或存储设备150)。
用户终端130可以从图像获取系统110、处理设备120和/或存储设备150接收/发送数据和/或信息。例如,用户终端130可以从图像获取系统110接收图像和/或视频。作为另一示例,用户终端130可以将指令发送到图像获取系统110和/或处理设备120。
用户终端130可以包括移动设备、平板电脑、膝上型计算机等或其任何组合。在一些实施例中,移动设备可以包括智能家庭设备、可穿戴设备、移动设备、虚拟现实设备、增强现实设备等或其任何组合。在一些实施例中,智能家居设备可以包括智能照明设备、智能电器控制设备、智能监控设备、智能电视、智能相机、对讲机等,或其任意组合。在一些实施例中,可穿戴设备可以包括手镯,鞋袜,眼镜,头盔,手表,衣物,背包,智能配件等,或其任意组合。在一些实施例中,移动设备可包括移动电话、个人数字助理(PDA)、游戏设备、导航设备、销售点(POS)设备、膝上型计算机、平板计算机、台式机等,或其任何组合。在一些实施例中,虚拟现实设备和/或增强现实设备可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强现实头盔、增强现实眼镜、增强现实眼罩等,或其任意组合。例如,虚拟现实设备和/或增强现实设备可以包括GoogleGlass
在一些实施例中,用户终端130可以经由网络140与成像系统100的一个或多个组件(例如,图像获取系统110、处理设备120或存储设备150)通信。在一些实施例中,用户终端130可以直接连接到成像系统100的一个或多个组件(例如,图像获取系统110、处理设备120或存储设备150)。在一些实施例中,用户终端130可以是图像获取系统110和/或处理设备120的一部分。
处理设备120可以处理信息和/或数据以执行本申请中描述的一个或多个功能。例如,处理设备120可以在成像获取系统110中的至少两个成像获取设备之间执行自动相机校准。
在一些实施例中,处理设备120可以是单个服务器或服务器组。服务器组可以是集中的,或分布的(例如,处理设备120可以是分布式系统)。在一些实施例中,处理设备120可以是本地的或远程的。例如,处理设备120可以经由网络140访问/发送图像获取系统110、用户终端130或存储设备150中的信息和/或数据。作为另一示例,处理设备120可以直接连接到图像获取系统110,用户终端130或存储设备150以访问/发送信息和/或数据。在一些实施例中,处理设备120可以在云平台上实现。仅作为示例,该云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。在一些实施例中,处理设备120可以在本申请的图2中所示的拥有一个或多个组件的计算设备200上实现。
在一些实施例中,处理设备120可以在移动设备、平板电脑、膝上型计算机、机动车辆中的内置设备等上实现,或者其任何组合。在一些实施例中,移动设备可以包括智能家居设备、可穿戴设备、智能移动设备、虚拟现实设备、增强现实设备等或其任意组合。在一些实施例中,智能家庭设备可以包括智能照明设备、智能电气设备的控制设备、智能监控设备、智能电视、智能相机、对讲机等或其组合。在一些实施例中,可穿戴设备可包括智能手镯、智能鞋子、智能玻璃、智能头盔、智能手表、智能服装、智能背包、智能附件等或其任何组合。在一些实施例中,智能移动设备可以包括智能手机、个人数字辅助(PDA)、游戏设备、导航设备、销售点(POS)设备等或任何组合。在一些实施例中,虚拟现实设备和/或增强现实设备可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强现实头盔、增强现实眼镜、增强现实眼罩等,或其任意组合。例如,虚拟现实设备和/或增强现实设备可以包括GoogleGlassTM、RiftConTM、FragmentsTM、GearVRTM等。在一些实施例中,机动车辆中的内置设备可以包括板载计算机、车载电视、行驶数据记录器等。在一些实施例中,处理设备120可以在本申请图3所示的拥有一个或多个组件的移动设备300上实现。
在一些实施例中,处理设备120可以包括一个或多个处理引擎(例如,单核处理发动机或多核处理器)。仅仅是示例,处理设备120可以包括一个或多个硬件处理器、例如中央处理单元(CPU)、应用专用的集成电路(ASIC)、专用的指令集处理器(ASIP)、图形处理单元(GPU)、物理处理单元(PPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、控制器、微控制器单元、A减少指令集计算机(RISC)、微处理器等或其任何组合。在一些实施例中,处理设备120可以是图像获取系统110的一部分。
网络140可以被配置为促进成像系统100的组件之间的通信(例如,图像获取系统110、用户终端130、处理设备120和存储设备150)。例如,网络140可以从图像获取系统110发送数字信号到处理设备120。作为另一示例,网络140可以将由图像获取系统110生成的图像发送到存储设备150。
在一些实施例中,网络140可以包括有线网络、无线网络或能够发送和接收数据的任何连接。在一些实施例中,有线网络可以包括使用金属电缆、光缆、混合电缆等的连接或其任何组合。在一些实施例中,无线网络可以包括近场通信(NFC)、身体区域网络(禁令)、个人区域网络(PAN,例如蓝牙,蓝牙,Z波,ZigBee,无线USB)、近我区域网络(NAN)、本地无线网络、骨干、大都市区域网络(MAN)、广域网(WAN)、互联网区域网络(IAN或云)等,或者其任何组合。
存储设备150可以被配置为存储数据和/或指令。在一些实施例中,存储设备150可以存储从处理设备120和/或图像获取系统110获得的数据。例如,存储设备150可以存储由图像获取系统110获取的图像。在一些实施例中,存储设备150可以存储数据和/或指令,即处理设备120可以执行或用于执行本申请中描述的示例性方法。例如,存储设备150可以存储处理设备120可以执行的指令,以在图像获取系统110中的至少两个图像获取设备之间执行自动相机校准。在一些实施例中,存储设备150可包括大容量存储器、可移动存储器、易失性读写内存、只读内存(ROM)等或其任意组合。示例性大容量存储器可以包括磁盘、光盘、固态驱动器等。示例性可移动存储器可以包括闪存驱动器、软盘、光盘、内存卡、压缩盘、磁带等。示例性易失性读写内存可以包括随机存取内存(RAM)。示例性RAM可包括动态随机存取内存(DRAM)、双倍数据速率同步动态随机存取内存(DDRSDRAM)、静态随机存取内存(SRAM)、晶闸管随机存取内存(T-RAM)和零电容随机存取内存(Z-RAM)等。示例性ROM可以包括掩模型只读内存(MROM)、可编程只读内存(PROM)、可擦除可编程只读内存(EPROM)、电可擦除可编程只读内存(EEPROM)、光盘只读内存(CD-ROM)和数字多功能磁盘只读内存等。在一些实施例中,所述存储设备150可以在云平台上实现。仅作为示例,该云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。
在一些实施例中,存储设备150可以连接到网络140,以与成像系统100中的一个或多个组件通信(例如,图像获取系统110、用户终端130和处理设备120)。成像系统100中的一个或多个组件可以通过网络140访问存储在存储设备150中的数据或指令。在一些实施例中,存储设备150可以直接连接到成像系统100中的一个或多个组件(例如,图像获取系统110、用户终端130和处理设备120)。在一些实施例中,存储设备150可以是图像获取系统110、用户终端130和/或处理设备120的一部分。
在一些实施例中,成像系统100的两个或多个组件可以集成在一个设备中。例如,图像获取系统110、处理设备120和存储设备150可以集成在一个设备中(例如,相机、智能手机、笔记本电脑、工作站、服务器等)。在一些实施例中,成像系统100的一个或多个组件可以位于远离其他组件的位置。例如,图像获取系统110可以安装在远离处理设备120的位置,该位置可以在具有存储设备150的单个设备中实现。
应当注意,图1所示的成像系统100的组件可以通过各种方式实现。例如,组件可以通过硬件、软件或其组合来实现。这里,硬件可以由专用逻辑实现;软件可以存储在存储器中,系统可以由适当的指令执行,例如由微处理器或专用设计硬件执行。本领域技术人员可以理解,本申请中描述的方法和系统可以由计算机的可执行指令和/或通过处理器中的控制代码来实现,例如,在诸如载波介质中提供的代码磁盘、CD、DVD-ROM,在可编程存储中,例如,只读存储器、或者在诸如光信号载波或电信号载体的数据载体中。本申请中的系统和方法可以通过超大规模集成电路中的可编程硬件设备中的硬件电路、门阵列芯片、诸如晶体管的半导体、现场可编程门阵列、可编程逻辑设备、由各种处理器执行的软件来实现,或其组合(例如固件)。
图2是根据本申请一些实施例所示的可以实现处理设备120和/或图像捕获系统110的计算设备的示例性硬件组件和软件组件的示意图如图2所示,计算设备200可以包括处理器201、存储器203、输入/输出(I/O)205和通信端口207。
处理器201可以执行计算机指令(程序代码)并根据本申请描述的技术执行处理设备的功能。计算机指令可以包括执行本申请描述的特定功能的例程、程序、对象、组件、信号、数据结构、过程、模块和功能。例如,处理设备120可以在计算设备200上实现,处理器201可以在图像获取系统110中的至少两个图像获取设备之间执行自动相机校准。在一些实施例中,处理器201可以包括微控制器、微处理器、精简指令集计算机、特定应用集成电路、特定应用指令集处理器、中央处理单元、图形处理单元、物理处理单元、微控制器单元、数字信号处理器、现场可编程门阵列、高级精简指令系统处理器、可编程逻辑器件、能够执行一个或以上功能的任何电路或处理器等,或其组合。
仅用于说明目的,计算设备200中仅描述一个处理器。然而,应该注意,本申请中的计算设备200还可以包括多个处理器,因此如本申请中所述的一个处理器执行的操作和/或方法步骤也可以由多个处理器联合或单独执行。例如,如果在本申请中,计算设备200的处理器执行步骤A和步骤B,则应理解,步骤A和步骤B也可以由在计算设备200中的两个不同的处理器联合或单独地执行(例如,第一处理器执行步骤A和第二处理器执行步骤B,或者第一处理器和第二处理器联合执行步骤A和B)。
存储器203可以存储从计算设备200的任何其他组件获得的数据/信息(例如,处理器201)。在一些实施例中,存储器203可以包括大容量存储设备、可移动存储设备、易失性读写存储器、只读存储器(ROM)等或其任何组合。例如,大容量存储装置可以包括磁盘、光盘、固态驱动等。可移动存储设备可以包括闪存驱动器、软盘、光盘、存储卡、拉链盘、磁带等。易失性读写存储器可以包括随机存取存储器(RAM)。RAM可以包括动态RAM(DRAM)、双日期速率同步动态RAM(DDRSDRAM)、静态RAM(SRAM)、晶闸管RAM(T-RAM)和零电容RAM(Z-RAM)等等。ROM可以包括掩模ROM(MROM)、可编程ROM(PROM)、可擦除的可编程ROM(PEROM)、可擦除可编程ROM(EEPROM)、光盘ROM(CD-ROM)和数字多功能磁盘ROM等在一些实施例中,存储器203可以存储一个或多个程序和/或指令以执行本申请中描述的示例性方法。例如,存储器203可以存储用于相机校准的程序。作为另一示例,存储器203可以存储由图像获取系统110获取的图像。
I/O205可以输入或输出信号、数据或信息。在一些实施例中,I/O205可以启用处理设备的用户交互。例如,可以通过I/O205显示获取的图像。在一些实施例中,I/O205可以包括输入设备和输出设备。示例性输入设备可以包括键盘、鼠标、触摸屏、麦克风等或其组合。示例性输出设备可以包括显示设备、扬声器、打印机、投影仪等或其组合。示例性显示装置可以包括液晶显示器(LCD)、发光二极管(LED)、被基于显示器、平板显示器、弯曲屏幕、电视装置、阴极射线管(CRT)等。或其组合。
通信端口207可以连接到网络以便于数据通信。通信端口207可以在计算设备200(例如,获取设备100)和外部设备(例如,智能电话)之间建立连接。连接可以是有线连接、无线连接或两者的组合,以实现数据传输和接收。有线连接可以包括电缆、光缆、电话线等或其任何组合。无线连接可以包括蓝牙、Wi-Fi、WiMAX、WLAN、ZigBee、移动网络(例如,3G、4G、5G等)等或其组合。在一些实施例中,通信端口207可以是标准化通信端口,例如RS232、RS485等。
图3是根据本申请一些实施例所示的可以在其上实现图像获取系统110、用户终端130和/或处理设备120的移动设备的硬件组件和/或软件组件的示例性示意图。如图3所示,移动设备300可以包括通信平台310、显示器320、图形处理单元(GPU)330、中央处理单元(CPU)340、I/O350、内存360和存储器390。在一些实施例中,任何其他合适的组件,包括但不限于系统总线或控制器(未示出),也可包括在移动设备300内。在一些实施例中,移动操作系统370(例如,iOS
因此,如本文所述的图像处理和/或其他处理的方法的方面可以在编程中体现。可以将技术的程序方面视为通常以可执行代码和/或在某种类型的机器可读介质上体现的可执行代码和/或关联数据的形式的“产品”或“制品”。有形的非暂时性“存储”类型介质包括用于计算机、处理器等的任何或全部存储器或其他存储,或其相关模块,例如各种半导体存储器、磁带驱动器、磁盘驱动器等,其可随时为软件编程提供存储。
软件的全部或部分有时可以通过诸如因特网或各种其他电信网络的网络传送。例如,这种通信使软件从一台计算机或处理器加载到另一台计算机或处理器中,例如,从调度系统的管理服务器或主计算机加载到计算环境的硬件平台或实现与图像处理相关的计算环境或类似功能的其他系统。因此,可以承载软件元件的另一种类型的介质包括光波,电波和电磁波,例如在本地设备之间的物理接口中使用,通过有线和光纤固定电话网络和各种空气链路。承载这种波的物理元件,例如有线或无线链路、光链路等,也可以作为承载软件的介质。如本申请所用,除非仅限于有形的“存储”媒体,否则诸如计算机或机器“可读介质”的术语是指参与向处理器提供指令的任何介质。
机器可读介质可以采用多种形式,包括但不限于有形存储介质,载波介质或物理传输介质。非易失性存储介质包括例如光学或磁盘,例如任何计算机中的任何存储设备等,其都可用于实现附图中所示的系统或其任何组件。易失性存储介质可以包括动态存储器,例如这种计算机平台的主存储器。有形传输介质可包括同轴电缆、铜线和光纤,包括在计算机系统内形成总线的电线。载波传输介质可以采用电子信号或电磁信号的形式,或诸如射频和红外数据通信期间产生的声波或光波。常见的计算机可读介质形式可以包括,例如:软盘、软磁盘、硬盘、磁带、任何其他磁介质、只读光盘、数字视频光盘或DVD-ROM、任何其他光学介质、穿孔卡纸带、任何其他带有孔图案的物理存储介质、RAM、PROM和EPROM、Flash-EPROM、任何其他存储芯片或盒带、用于传输数据或指令的载波,用于传输此类载波的电缆或链接、或者计算机可以从中读取编程代码和/或数据的任何其他介质。这些形式的计算机可读介质中的许多可以涉及将一个或多个指令的一个或多个序列传送到物理处理器以执行。
本领域技术人员将认识到,本教导可用于各种修改和/或增强。例如,尽管本申请描述的各种组件的实现可以体现在硬件设备中,它也可以实现为仅软件解决方案(例如,在现有服务器上的安装)。另外,如本申请所公开的图像处理可以实现为固件,固件/软件组合,固件/硬件组合或硬件/固件/软件组合。
图4是根据本申请一些实施例所示的处理设备的示例性示意图。处理设备120可以包括图像获取模块410,点确定模块420和矩阵确定模块430。
图像获取模块410可以被配置为获得一组或多组图像。一组或多组图像中的每一组可以包括由图像获取系统110中的第一图像获取设备(例如,主相机)获取的第一图像和由图像获取系统110中的第二图像获取设备(例如,从相机)获取的第二图像。
在一些实施例中,第二图像获取设备可以是云台相机。第一图像获取装置可以具有大于角度阈值(例如,30°、40°、50°、60°、90°等)的宽视野。第一图像获取设备可以是静态相机或云台相机。
在一些实施例中,可以同时或基本上同时获取第一图像和第二图像。例如,对于本领域中的普通人,第一图像和第二图像的获取时间之间的差异可以合理地小,例如不大于2s,优选地不大于1s,更优选不大于0.5s,还更优选地不大于0.1s,特别优选不大于0.05s,更优选不大于0.01s,最优选不大于0.001秒。在一些实施例中,一个或多个图像组中的第一图像可以是相同的图像。
在一些实施例中,第一图像获取设备可以从第一视野获取第一图像。第二图像获取设备可以从第二视野获取第二图像。第一视野和第二视野之间可能存在重叠。
在一些实施例中,在图像获取系统110获取两组或多组图像的条件下,如果第一图像获取设备是云台相机,则与两组或多组图像中的第一图像相关的第一视图。可以相同或不同。如果从相同的视野获取第一图像(例如,第一图像获取设备是静态相机,或者第一图像获取设备是云台相机并获取来自相同视野的第一图像),则第二个与两组或多组图像中的第二图像相关的视野可以完全覆盖第一视野。两组或多组图像中与第二图像相关的第二视野的重叠可以尽可能小。
在一些实施例中,在获取一组或多组图像期间,云台相机(例如,第一图像获取设备和/或第二图像获取设备)的变焦比可以是云台相机允许的任何值,如云台相机的最小变焦比。
在一些实施例中,第一图像获取设备和第二图像获取设备可以在接收到获取一组或多组图像的指令之后获取一组或多组图像。用于生成获取一组或多组图像的指令的过程可以是手动的或自动的。
例如,用户可以通过处理设备120、用户终端130或图像获取系统110输入用于获取一组或多组图像的指令,并将该指令发送到第一图像获取设备和第二图像获取设备。作为另一示例,处理设备120、用户终端130和/或图像获取系统110可以连续地或周期性地监视第一图像获取设备和第二图像获取设备。当处理设备120、用户终端130和/或图像获取系统110检测到第一图像获取设备和第二图像获取设备之间的相对位置改变时,处理设备120、用户终端130,和/或图像获取系统110可以自动地向第一图像获取设备和第二图像获取设备发送用于获取一组或多组图像的指令。作为又一示例,处理设备120、用户终端130和/或图像获取系统110可以自动地和周期性地(例如,每周一次或每月一次)向第一图像获取设备和第二图像获取设备发送用于获取一组或多组图像的指令。
在一些实施例中,获取一组或多组图像可以是手动或自动的。例如,可以自动设置第一图像获取设备和第二图像获取设备的相机参数(例如变焦比、焦距、摇摄角、倾斜角等),并且第一图像获取设备和第二图像获取设备可以自动获取一组或多组图像。作为另一示例,可以手动设置第一图像获取设备和第二图像获取设备的相机参数。作为又一个示例,可以手动操作第一图像获取设备和第二图像获取设备的快门。
点确定模块420可被配置为确定至少一组图像的一个或多个点对。在一些实施例中,一个或多个点对中的每一对可对应于一组或多组图像中的一个。例如,一个点对可以包括一组图像的第一图像中的第一点和该组图像的第二图像中的第二点。第一点和第二点可以对应于相同的对象。在一些实施例中,每组图像中的点对的数量可以相同或不同。
在一些实施例中,第一图像中的第一点(和/或第二图像中的第二点)可以稀疏地分布(如图6所示)。例如,第一点的任意两个之间的距离可以大于距离阈值(例如,第一图像长度的0.5mm、1mm、2mm、1%、2%或5%等)。在一些实施例中,第一图像中的第一点(和/或第二图像中的第二点)可以是非共线的(如图6所示)。此外,在第一图像中的第一点(和/或第二个图像中的第二个点)中可能不存在三个共线点在一些实施例中,一个或多个点对可以对应于静止物体,例如建筑物、地面、树干、停放的车辆等。
在一些实施例中,可以手动确定一个或多个点对。在一些实施例中,点确定模块420可以自动地确定一个或多个点对。例如,点确定模块420可以使用任何现有的识别算法(例如,基于特征的识别算法、基于神经网络的识别算法)自动识别第一图像和/或第二图像中的一个或多个静止对象,一种基于支持向量机(SVM)等或其任意组合的识别算法。作为另一示例,点确定模块420可以使用任何现有的匹配算法自动确定一个或多个点对,例如加速的鲁棒特征(SURF)算法、规模不变特征变换(SIFT)算法、以定向简短(ORB)算法、来自加速段测试(快)算法、哈里斯角算法等的特征,或其任何组合。
在一些实施例中,可以手动和自动地确定一个或多个点对。例如,点确定模块420可以首先自动确定一个或多个点对。如果一个或多个点对的自动确定失败,则成像系统100的用户可以手动确定一个或多个点对。作为另一示例,点确定模块420可以首先自动确定一个或多个点对。然后可以修改一个或多个点对(例如,校正至少一个点、手动删除至少一个点或添加一个或多个新点)。
矩阵确定模块430可以被配置为基于一组或多组图像中的一个或多个点对来确定第一旋转矩阵。第一旋转矩阵可以指示第一图像获取设备和第二图像获取设备的位置之间的关系。例如,第一旋转矩阵可以指示第一图像获取设备的相机坐标系与第二图像获取设备的相机坐标系之间的关系。
在一些实施例中,第一旋转矩阵可以是正交矩阵。在一些实施例中,行的数量和第一旋转矩阵的列可以是任何值。例如,第一旋转矩阵可以是3×3或4×4矩阵。在一些实施例中,第一旋转矩阵可以任何方式表示,例如四元数、欧拉角、平移-倾斜(PT)参数、Rodrigues矩阵、图形等。
在一些实施例中,第一旋转矩阵可以涉及在图像获取系统110中的云台相机(例如,第一图像获取设备和/或第二图像获取设备)的外部参数。外部参数可以是云台相机的姿势和/或位置参数,包括例如俯仰角、侧倾角、偏航角、高度和/或云台相机坐标系在世界坐标系中的原点的3D坐标,或其组合。如这里所使用的,世界坐标系可以是根据现实世界构建的3D坐标系,世界坐标系的原点可能是现实世界中的一个点。世界坐标系的第一坐标轴和第二坐标轴可以平行于水平面并且相互垂直。世界坐标系的第三坐标轴可以垂直于水平面。云台相机坐标系的原点可以是云台相机的光学中心。云台相机坐标系的第一坐标轴可以是云台相机的光轴。云台相机坐标系的第二坐标轴和第三坐标轴可以平行于云台相机的成像平面并且彼此垂直(例如,云台相机坐标系的第二坐标轴和第三坐标轴可以分别平行于云台相机的成像平面的侧面)。俯仰角、偏航角和侧倾角分别指世界坐标系的第一、第二和第三坐标轴的旋转角,以形成云台相机坐标系。
在一些实施例中,矩阵确定模块430可以确定第一图像的第一图像坐标系(或第一像素坐标系)中的每个第一点的2D坐标和第二图像的第二图像坐标系(或第二像素坐标系)中的每个第二点的2D坐标。在图像(例如,第一或第二图像)的图像坐标系(例如,第一或第二图像坐标系)(或像素坐标系)中,原点可以是图像中的像素(例如,图像左上角最高位置的像素,或图像中的中心像素)。图像坐标系(或像素点坐标系)的水平坐标轴可以是图像的水平方向。图像坐标系(或像素点坐标系)的垂直坐标轴可以是图像的垂直方向。
在一些实施例中,矩阵确定模块430可以基于一个或多个点对的2D坐标和/或第一图像获取设备和/或第二图像获取设备的内部参数来确定一个或多个点对的3D信息。内部参数可以包括焦距、中心点、透镜失真参数等或其组合。
例如,与第一图像中的第一点相关的第一3D信息可以包括从第一图像获取设备的光学中心到第一点的第一点或向量的3D坐标,以及与第二点相关的第二3D信息可以包括第二点的3D坐标或从第二图像获取设备的光学中心到第二点的向量。
在一些实施例中,矩阵确定模块430可以基于第一3D信息和第二3D信息来确定第一旋转矩阵。例如,矩阵确定模块430可以基于第二点的第二3D信息和初始旋转矩阵来确定第一点的第三3D信息。矩阵确定模块430可以将第一3D信息与第三3D信息进行比较。如果第一3D信息和第三3D信息之间的差小于差分阈值,则矩阵确定模块430可以将初始旋转矩阵确定为第一旋转矩阵。如果第一3D信息和第三3D信息之间的差大于或等于差分阈值,则矩阵确定模块430可以使用另一初始旋转矩阵,直到第一3D信息和第三3D信息小于差分阈值。
仅仅是示例,如果第一图像获取设备是静态透视相机,并且第二图像获取设备是云台透视相机,则矩阵确定模块430可以基于第一图像中的第一点确定第一点的3D信息等式(1)以下:
其中,x(β)是指从所述第一图像获取装置的光学中心到所述第一点的向量,β是指所述第一图像获取装置和/或所述第二图像获取装置的内部参数,x和y是所述第一图像坐标系中第一点的2D坐标,f是第一图像获取装置的焦距。矩阵确定模块430可以基于类似于第一3D信息的操作来确定第二3D信息。
当第二图像获取设备获取第二图像时,可以将PT参数记录并存储在成像系统100的存储介质(例如,存储设备150、存储器203、存储器390或存储器390)中。矩阵确定模块430可以从存储介质获得每个第二图像的PT参数。基于第二图像获取设备的PT参数,矩阵确定模块430可以确定第二旋转矩阵。第二旋转矩阵可以指示第二图像获取设备的位置和世界坐标系之间的关系。例如,所述第二旋转矩阵可表示所述世界坐标系与所述第二图像获取设备的相机坐标系之间的关系。作为另一示例,第二旋转矩阵可以指示世界坐标系和第二图像获取设备的图像坐标系(或像素点坐标系)之间的关系。矩阵确定模块430可以基于PT参数使用用于单个相机校准的任何现有技术来确定第二旋转矩阵。
矩阵确定模块430可以使用下面的等式(2)基于第一3D信息,第二3D信息和第二旋转矩阵来确定第一旋转矩阵:
其中,θ指的是第一图像获取装置和/或第二图像获取装置的外部参数,x
矩阵确定模块430可以使用任何现有技术来优化方程(2),例如Levenberg-Marquardt(LM)算法。
处理设备120中的模块可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属电缆、光缆、混合电缆等或其任何组合。无线连接可以包括局域网络(LAN)、广域网络(WAN)、蓝牙、紫蜂网络、近场通信(NFC)等或其任意组合。两个或以上模块可以被组合为单个模块。所述模块中的任一个可以被分成两个或以上单元。
应当注意的是,以上描述仅出于说明的目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。然而,这些变化和修改不脱离本申请的范围。例如,处理设备120还可以包括存储模块(图4中未示出)。存储模块可以被配置成存储在处理设备120中的任何组件执行任何处理过程中产生的数据。作为另一示例,处理设备120的每个组件可以分别对应于存储模块。附加地或替代地,处理设备120的组件可以共享公共存储模块。
图5是示出根据本申请的一些实施例所示的用于相机校准的示例性流程图。在一些实施例中,过程500可以在图1所示的成像系统100中实现。例如,过程500可以作为指令的形式存储在存储介质(例如,存储设备150、存储器220、内存360或存储器390)中,并且可以由处理设备120(例如,处理器210、CPU340或图4所示的处理设备120中的一个或多个模块)调用和/或执行。下面呈现的所示过程500的操作旨在说明。在一些实施例中,过程500可以利用一个或以上未描述的附加操作和/或没有所讨论的一个或以上操作来完成。另外,图5中示出的和下面描述的过程500的操作的顺序不旨在是限制性的。
为简洁起见,相机校准的方法和/或系统的描述可以以包括两个图像获取设备的图像获取系统110为例。应当注意,下面描述的用于相机校准的方法和/或系统仅仅是一些示例或实现。对于本领域的技术人员,本申请中的用于相机校准的方法和/或系统可以应用于其他类似情况,例如包括多于两个图像获取设备的图像获取系统110。
为简洁起见,相机校准的方法和/或系统的描述可以以确定两个相机之间的旋转矩阵为例。应当注意,下面描述的用于相机校准的方法和/或系统仅仅是一些示例或实现。对于本领域的技术人员,本发明中用于相机校准的方法和/或系统可应用于其他类似情况,例如确定平移矩阵,或包括两个相机之间的旋转矩阵和平移矩阵的变换矩阵。
在510中,处理设备120(例如,图像获取模块410)可以获得一组或多组图像。一组或多组图像中的每一个可以包括由图像获取系统110中的第一图像获取设备(例如,主相机)获取的第一图像和由图像获取系统110中的第二图像获取设备(例如,从相机)获取的第二图像。
在一些实施例中,第二图像获取设备可以是云台相机。第一图像获取设备可以具有大于角度阈值(例如,30°,40°,50°,60°,90°等)的宽视野。第一图像获取设备可以是静态相机或云台相机。
在一些实施例中,可以同时或基本上同时获取第一图像和第二图像。例如,对于本领域技术人员,第一图像和第二图像的获取时间之间的差异可以合理地小,例如不大于2s,优选地不大于1s,更优选不大于0.5s,还更优选地不大于0.1s,特别优选不大于0.05s,更优选不大于0.01s,最优选不大于0.001秒。在一些实施例中,一组或多组图像组中的第一图像可以是相同的图像。
在一些实施例中,第一图像获取设备可以从第一视野获取第一图像。第二图像获取设备可以从第二视野获取第二图像。第一视野和第二视野之间可以存在重叠。
在一些实施例中,在图像获取系统110获取两组或多组图像的条件下,如果第一图像获取设备是云台相机,则与两组或多组图像中的第一图像相关的第一视野可以相同或不同。如果从同一视野(例如,第一图像获取设备是静态相机,或者第一图像获取设备是云台相机并且从相同的视野获取第一图像)获取第一图像,则与两组或多组图像中的第二图像相关的第二视野可以完全覆盖第一视野。与两组或多组图像中的第二图像相关的第二视野的重叠可以尽可能小。
在一些实施例中,在获取一组或多组图像期间,云台相机(例如,第一图像获取设备和/或第二图像获取设备)的变焦比可以是云台相机允许的任何值,如云台相机的最小变焦比。
在一些实施例中,第一图像获取设备和第二图像获取设备可以在接收到获取一组或多组图像的指令之后获取一组或多组图像。生成用于获取一个或多个图像集的指令的过程可以是手动或自动的。
例如,用户可以通过处理设备120,用户终端130或图像获取系统110输入用于获取一个或多个图像集的指令,并将指令发送到第一图像获取设备和第二图像获取设备。作为另一示例,处理设备120,用户终端130和/或图像获取系统110可以连续地或周期性地监视第一图像获取设备和第二图像获取设备。当处理设备120,用户终端130和/或图像获取系统110检测到第一图像获取设备和第二图像获取设备之间的相对位置被改变,处理设备120,用户终端130和/或图像获取系统110可以自动发送用于将一个或多个图像获取到第一图像获取设备和第二图像获取设备的指令。作为又一示例,处理设备120,用户终端130和/或图像获取系统110可以自动且周期性地(例如,每周一次或一次每月一次)发送用于获取一组或多组的指令图像到第一图像获取设备和第二图像获取设备。
在一些实施例中,获取一组或多组图像可以是手动或自动的。例如,可以自动设置第一图像获取设备和第二图像获取设备的相机参数(例如,变焦比,焦距,平移角度,倾斜角度等),以及第一图像获取设备并且第二图像获取设备可以自动获取一组或多组图像。作为另一示例,可以手动设置第一图像获取设备和第二图像获取设备的相机参数。作为又一个示例,可以手动操作第一图像获取设备和第二图像获取设备的快门。
在520中,处理设备120(例如,点确定模块420)可以针对至少一组图像确定一个或多个点对。在一些实施例中,一个或多个点对中的每一对可以对应于一组或多组图像中的一组。例如,一个点对可以包括一组图像的第一图像中的第一点和该组图像的第二图像中的第二点。第一点和第二点可以对应于同一对象。在一些实施例中,每组图像中的点对的数量可以相同或不同。
在一些实施例中,第一图像中的第一点(和/或第二图像中的第二点)可以稀疏地分布(如图6所示)。例如,第一点中的任意两个点之间的距离可以大于距离阈值(例如,0.5mm、1mm、2mm、第一图像长度的1%、2%或5%等)。在一些实施例中,第一图像中的第一点(和/或第二图像中的第二点)可以是非共线的(如图6所示)。此外,在第一图像中的第一点(和/或第二图像中的第二点)中可能不存在三个共线点。在一些实施例中,一个或多个点对可以对应于静止物体,例如,建筑物、地面、树干、停放的车辆等。
在一些实施例中,可以手动确定一个或多个点对。在一些实施例中,处理设备120可以自动地确定一个或多个点对。例如,处理设备120可以使用任何现有的识别算法自动识别第一图像和/或第二图像中的一个或多个静止对象,例如,基于特征的识别算法、基于神经网络的识别算法、基于支持向量机(SVM)的识别算法等,或其任意组合。作为另一示例,处理设备120可以使用任何现有匹配算法自动确定一个或多个点对,例如,加速鲁棒特征(SURF)算法、尺度不变特征变换(SIFT)算法、定向简式(ORB)算法、来自加速分段测试的特征(FAST)算法、Harris角点算法等,或其任何组合。
在一些实施例中,可以手动和自动地确定一个或多个点对。例如,处理设备120可以首先自动确定一个或多个点对。如果一个或多个点对的自动确定失败,则成像系统100的用户可以手动确定一个或多个点对。作为另一示例,处理设备120可以首先自动确定一个或多个点对。然后可以修改一个或多个点对(例如,校正至少一个点,手动删除至少一个点或添加一个或多个新点)。
在530中,处理设备120(例如,矩阵确定模块430)可以基于一组或多组图像中的一个或多个点对来确定第一旋转矩阵。第一旋转矩阵可以指示第一图像获取设备和第二图像获取设备的位置之间的关系。例如,第一旋转矩阵可以指示第一图像获取设备的相机坐标系与第二图像获取设备的相机坐标系之间的关系。
在一些实施例中,第一旋转矩阵可以是正交矩阵。在一些实施例中,第一旋转矩阵的行和列的数目可以是任何值。例如,第一旋转矩阵可以是3×3或4×4矩阵。在一些实施例中,第一旋转矩阵可以任何方式表示,例如四元数、欧拉角、PT参数、Rodrigues矩阵、图形等。
在一些实施例中,第一旋转矩阵可以与图像获取系统110中的云台相机(例如,第一图像获取获设备和/或第二图像获取设备)的外部参数相关。外部参数可以是云台相机的姿势和/或位置参数,包括例如俯仰角、侧倾角、偏航角、高度和/或云台相机坐标系在世界坐标系中的原点的3D坐标,或其组合。如这里所使用的,世界坐标系可以是根据现实世界构建的3D坐标系,世界坐标系的原点可以是现实世界中的一个点。世界坐标系的第一坐标轴和第二坐标轴可以平行于水平面,彼此垂直。世界坐标系的第三坐标轴可以垂直于水平面。云台相机坐标系的原点可以是云台相机的光学中心。云台相机坐标系的第一坐标轴可以是云台相机的光轴。云台相机坐标系的第二坐标轴和第三坐标轴可以平行于云台相机的成像平面并且彼此垂直(例如,云台相机坐标系的第二坐标轴和第三坐标轴可以分别平行于云台相机的成像平面的边)。俯仰角、偏航角和侧倾角分别指世界坐标系的第一、第二和第三坐标轴的旋转角,以形成云台相机坐标系。
在一些实施例中,处理设备120可以确定第一图像的第一图像坐标系(或第一像素坐标系)中每个第一点的2D坐标和第二图像的第二图像坐标系(或第二像素坐标系)中每个第二点的2D坐标。在图像(例如,第一或第二图像)的图像坐标系(例如,第一或第二图像坐标系)(或像素坐标系)中,原点可以是图像中的像素(例如,图像左上角最高位置的像素,或图像中的中心像素)。图像坐标系(或像素点坐标系)的水平坐标轴可以是图像的水平方向。图像坐标系(或像素点坐标系)的垂直坐标轴可以是图像的垂直方向。
在一些实施例中,处理设备120可以基于一个或多个点对的2D信息,和/或第一图像获取设备和/或第二图像获取设备的内部参数,确定所示一个或多个点对的3D信息。内部参数可包括焦距、中心点、透镜畸变参数等,或其组合。
例如,与第一图像中的第一点相关的第一3D信息可以包括第一点的3D坐标或从第一图像获取设备的光学中心到第一点的向量,与第二点相关的第二3D信息可以包括第二点的3D坐标或从第二图像获取设备的光学中心到第二点的向量。
在一些实施例中,处理设备120可以基于第一3D信息和第二3D信息来确定第一旋转矩阵。例如,处理设备120可以基于第二点的第二3D信息和初始旋转矩阵来确定第一点的第三3D信息。处理设备120可以将第一3D信息与第三3D信息进行比较。如果第一3D信息和第三3D信息之间的差异小于差异阈值,则处理设备120可以确定初始旋转矩阵作为第一旋转矩阵。如果第一3D信息和第三3D信息之间的差异大于或等于差异阈值,则处理设备120可以使用另一个初始旋转矩阵,直到第一3D信息和第三3D信息小于差异阈值。
仅仅是示例,如果第一图像获取设备是静态透视相机,并且第二图像获取设备是云台透视相机,则处理设备120可以基于下式方程(1)确定第一图像中的第一点的3D信息:
其中,x(β)指的是从第一图像获取设备的光学中心到第一点的向量,β指第一图像获取设备和/或第二图像获取设备的内部参数,x和y表示第一图像坐标系中的第一点的2D坐标,f指的是第一图像获取设备的焦距。处理设备120可以基于类似于第一3D信息的操作来确定第二3D信息。
当第二图像获取设备获取第二图像时,可以将PT参数记录并存储在成像系统100的存储介质(例如,存储设备150、存储器203、存储器390或存储器390)中。处理设备120可以从存储介质获得每个第二图像的PT参数。处理设备120可以基于第二图像获取设备的PT参数来确定第二旋转矩阵。第二旋转矩阵可以指示第二图像获取设备和世界坐标系之间的位置关系。例如,第二旋转矩阵可以指示世界坐标系和第二图像获取设备的相机坐标系之间的关系。作为另一示例,第二旋转矩阵可以指示世界坐标系和第二图像获取设备的图像坐标系(或像素点坐标系)之间的关系。处理设备120可以基于PT参数使用任何现有的单次相机校准技术来确定第二旋转矩阵。
处理设备120可以使用下式方程(2)基于第一3D信息,第二3D信息和第二旋转矩阵来确定第一旋转矩阵:
其中θ指的是第一图像获取设备和/或第二图像获取设备的外部参数,x
处理设备120可以使用任何现有技术来解决方程(2)以进行优化,如Levenberg-Marquardt(LM)算法。
在一些实施例中,用于在操作530中确定第一旋转矩阵的过程可以是自动的。
在一些实施例中,当成像系统100跟踪目标时,第一图像获取设备可以首先获取包括目标的图像。然后可以手动或自动地确定包括图像中的目标的目标区域。处理设备120可以在第一图像获取设备的相机坐标系中确定区域的中心点的第一3D坐标。处理设备可以在第二图像获取设备的相机坐标系中使用第一旋转矩阵确定区域的中心点的第二3D坐标。处理设备120可以确定第二图像获取设备的PT参数,该PT参数用于使第二图像获取设备的视野聚焦在所述区域的中心点。处理设备120可以基于所确定的PT参数调整第二图像获取设备的位置,使得第二图像获取设备的视野聚焦在所述区域的中心点,实现第一图像获取设备和第二图像获取设备的互动连接。
应当注意的是,以上描述仅出于说明的目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。然而,这些变化和修改不脱离本申请的范围。
图6A和6B是根据本申请的一些实施例的一组图像中的示例性点对的示意图。如图6A和6B所示,图6A是指由第一图像获取设备从第一视野获取的第一图像,图6B是指由第二图像获取设备从第二视野获取的第二图像。第一视野和第二视野之间存在重叠。在图6A和6B中,用直线连接的两个点是指一个点对,例如,点602和604。
上文已对基本概念做了描述,显然,对于阅读此申请后的本领域的普通技术人员来说,上述发明披露仅作为示例,并不构成对本申请的限制。虽然此处并未明确说明,但本领域的普通技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定词语来描述本申请的实施例。例如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特性。因此,应当强调并注意的是,本说明书中在不同位置两次或以上提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或以上实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域的普通技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的过程、机器、产品或物质的组合,或对其任何新的和有用的改进。因此,本申请的各方面可以完全以硬件,完全以软件(包括固件、常驻软件、微代码等)或软件和硬件的组合方式来实现,这些实现方式在本文中通常都统称为“单元”、模块”或“系统”。此外,本发明的各方面可以采取计算机程序产品的形式,该计算机程序产品体现在一个或以上计算机可读介质中,其上包含计算机可读程序代码。
计算机可读信号介质可以包含一个内含有计算机程序代码的传播数据信号,例如,在基带上或作为载波的一部分。此类传播信号可以有多种形式,包括电磁形式、光形式等或任何合适的组合。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通信、传播或传输供使用的程序。位于计算机可读信号介质上的程序代码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF等,或任何上述介质的组合。
可以以一种或多种编程语言的任何组合来编写用于执行本申请的各方面的操作的计算机程序代码,所述编程语言包括诸如Java,Scala,Smalltalk,Eiffel,JADE,Emerald,C,C的面向对象的编程语言。该程序代码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者可以与外部计算机建立连接(例如,通过使用网络服务提供商的网络)或在云计算环境中或作为服务提供,例如,软件服务(SaaS)。
此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其它名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,尽管上述各种组件的实现可以体现在硬件设备中,但也可以实现为纯软件解决方案,例如,在现有服务器或移动设备上的安装。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或以上发明实施例的理解,前文对本申请的实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。然而,本申请的该方法不应被解释为反映所声称的待扫描对象物质需要比每个权利要求中明确记载的更多特征的意图。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
- 照相机的校准装置、照相机系统、以及照相机的校准方法
- 一种多线阵相机检测系统的相机高精度校准标定板及实现校准的方法