CN116800947A - 用于大规模生产过程的快速rgb-ir校准验证 - Google Patents

用于大规模生产过程的快速rgb-ir校准验证 Download PDF

Info

Publication number
CN116800947A
CN116800947A CN202210277884.XA CN202210277884A CN116800947A CN 116800947 A CN116800947 A CN 116800947A CN 202210277884 A CN202210277884 A CN 202210277884A CN 116800947 A CN116800947 A CN 116800947A
Authority
CN
China
Prior art keywords
calibration
warp
tables
processor
full
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210277884.XA
Other languages
English (en)
Inventor
汤坚
邱井洋
刘涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anba International LP
Original Assignee
Anba International LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Anba International LP filed Critical Anba International LP
Priority to CN202210277884.XA priority Critical patent/CN116800947A/zh
Priority to US17/721,392 priority patent/US11743450B1/en
Priority to US18/140,945 priority patent/US20230300318A1/en
Publication of CN116800947A publication Critical patent/CN116800947A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • H04N17/002Diagnosis, testing or measuring for television systems or their details for television cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/90Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/10Cameras or camera modules comprising electronic image sensors; Control thereof for generating image signals from different wavelengths
    • H04N23/11Cameras or camera modules comprising electronic image sensors; Control thereof for generating image signals from different wavelengths for generating image signals from visible and infrared light wavelengths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/617Upgrading or updating of programs or applications for camera control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/667Camera operation mode switching, e.g. between still and video, sport and normal or high- and low-resolution modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N23/81Camera processing pipelines; Components thereof for suppressing or minimising disturbance in the image signal generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/60Noise processing, e.g. detecting, correcting, reducing or removing noise
    • H04N25/61Noise processing, e.g. detecting, correcting, reducing or removing noise the noise originating only from the lens unit, e.g. flare, shading, vignetting or "cos4"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10048Infrared image

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Studio Devices (AREA)

Abstract

一种包括多个捕获设备和校准设备的系统。所述捕获设备可以各自包括扭曲表。所述校准设备可以被配置为:将多个配置的扭曲表存储在扭曲表池中,对所述捕获设备中的一个捕获设备执行完全校准以生成所述配置的扭曲表,发起针对所述捕获设备的快速校准,以及将所述配置的扭曲表中的一个扭曲表作为所述扭曲表应用于所述捕获设备。所述校准设备可以响应于所述快速校准通过从所述扭曲表池中选择所述配置的扭曲表中的一个扭曲表来将所述配置的扭曲表中的一个扭曲表应用于所述捕获设备。如果所述快速校准失败,则所述校准设备可以响应于所述完全校准为所述扭曲表池生成新的配置的扭曲表,并选择所述新的配置的扭曲表。

Description

用于大规模生产过程的快速RGB-IR校准验证
技术领域
概括地说,本发明涉及相机生产,更具体地说,本发明涉及一种用于针对大规模生产过程实施快速RGB-IR校准验证的方法和/或装置。
背景技术
机器视觉、光学技术和人工智能得到了快速发展。由于机器人技术和深度学习技术的进步,三维(3D)重构已成为机器视觉的一个重要分支。生成准确的输入图像对于提供可用于各种后处理技术分析的可靠像素数据非常重要。
硬件和软件的组合能够对输入图像执行各种校正。然而,由于物理特性的差异,每个相机都会对输入图像提供各种变形。不同相机设备之间的物理差异之一可能是由镜头变形引起的。由于每个镜头可能具有不同的物理差异,因此每个镜头能够生成不同的物理变形。镜头校准是一种技术,其可以克服镜头产生的输入图像的变形。
镜头校准是为了获得经矫正图像的关键过程。后处理步骤(即对象检测、人脸检测、人脸识别等)的准确性很大程度上取决于镜头校准结果的完美程度。然而,针对镜头校准实施传统的去扭曲(dewarp)方法非常耗时。确定完美的扭曲(warp)表需要重复校准循环,并且每个校准循环都非常耗时。镜头校准的耗时特性成为确定完美扭曲表和为相机的大规模生产中使用的传感器模块提供高效过程的主要问题。
通常,传统的镜头校准需要将相机从特定距离精确对准点图案板。相机设备的旋转和移动等变量对于每次捕获用于校准的点图案都是必不可少的。由于精确的要求,必须有高技能的人来不断地旋转和重新定向相机并捕获图像。捕获点图案图像之后,可以执行校准以计算扭曲表。执行对扭曲表的评估,如果评估结果不够好,则必须重新捕获并重新计算点图案图像。由训练有素的技术人员针对每个相机设备模块执行的整个校准过程大约需要半小时。对于大规模生产,校准时间将扩大为巨大的数字。
需要为大规模生产过程实施快速的RGB-IR校准验证。
发明内容
本发明涉及一种包括多个捕获设备和校准设备的系统。多个捕获设备可以各自包括镜头、传感器和扭曲表。所述校准设备可以被配置为:将多个配置的扭曲表存储在扭曲表池中,对所述多个捕获设备中的至少一个捕获设备执行完全校准技术以生成所述配置的扭曲表,发起针对所述多个捕获设备的快速校准,以及将所述配置的扭曲表中的一个扭曲表作为所述扭曲表应用于所述多个捕获设备中的每个捕获设备。所述校准设备可以响应于所述快速校准通过从所述扭曲表池中选择所述配置的扭曲表中的一个扭曲表来将所述配置的扭曲表中的一个扭曲表应用于所述多个捕获设备中的每个捕获设备。如果所述快速校准失败,则所述校准设备可以响应于所述完全校准技术为所述扭曲表池生成新的配置的扭曲表,并选择所述新的配置的扭曲表。
附图说明
通过下文的具体实施方式以及所附的权利要求书和附图,本发明的实施例将变得显而易见。
图1是示出可以利用被配置为实施根据本发明的示例实施例生成的扭曲表的处理器的边缘设备的示例的图。
图2是示出实施本发明的示例实施例的示例相机的图。
图3是示出相机系统的框图。
图4是图示了实现被配置为执行3D重构的卷积神经网络的相机系统的处理电路的图。
图5是示出被配置为针对边缘设备相机的大规模生产过程执行快速RGB-IR校准验证的示例校准设备的框图。
图6是示出使用校准设备执行RGB-IR传感器校准的图。
图7是示出基于从棋盘图案获取交点来评估去扭曲效果的图。
图8是示出在去扭曲操作之后基于计算交点的平直度来评估去扭曲效果的图。
图9是示出用于为大规模生产过程执行快速RGB-IR校准验证的方法的流程图。
图10是示出用于使用完全校准技术将配置的扭曲表添加到扭曲表池的方法的流程图。
图11是示出用于执行快速校准技术的方法的流程图。
图12是示出用于使用于捕获快速校准目标的最外边缘的快速校准技术自动化的方法的流程图。
具体实施方式
本发明的实施例包括为大规模生产过程提供快速RGB-IR校准验证,其可以(i)提供快速校准,快速校准减少用于多个相机的镜头校准的总时间量,(ii)使用先前计算的扭曲表用于具有相似镜头特性的相机,(iii)提供扭曲表池来存储先前计算的扭曲表,(iv)在没有合适的扭曲表可用时启用完整的校准技术,(v)评估镜头校准的去扭曲效果,(vi)计算像素之间的距离总和以评估应用的扭曲表的去扭曲效果,(vii)执行校准以补偿由相机镜头引起的物理变形,(viii)对不同传感器之间的物理偏差进行量化和/或(ix)在相机设备的制造过程中节省时间和成本。
本发明的实施例可以被配置为快速验证RGB-IR传感器校准结果,以便在相机设备的大规模生产期间缩短镜头校准的时间量。可以实施传感器校准以确保相机设备能够为后期制作技术(例如,3D重构、面部ID、对象检测、距离计算等)提供准确的结果。RGB-IR传感器校准可以使相机设备作为边缘设备运行,边缘设备在本地执行后处理技术(例如,无需将数据上传到云服务以依赖于分布式计算能力)。
本发明的实施例可以生成可在捕获设备的大规模生产期间可用的扭曲表池。例如,如果生产的传感器的全部或一些能够使用相同的扭曲表,则可以节省时间和人力资源(例如,使用可用扭曲表的每个相机节省大约半小时)。传感器可能具有独特的偏差,这会阻止所有相机使用相同的扭曲表。偏差可能是由在安装和制造过程期间实现的镜头模块造成的。由于物理差异(例如,由镜头和/或其他物理特性引起),生产的每个传感器可能无法使用相同的扭曲表。一些传感器单元可能具有接近或精确的偏差,可以使用相同的扭曲表对这样的偏差进行校正,而有些传感器单元则可能不具有这样的偏差。
本发明的实施例可以被配置为:对传感器之间的物理偏差进行量化。可以在大规模生产期间执行对物理偏差的量化。具有相似或相同偏差的传感器可以直接共享相同的扭曲表。生成扭曲表池并基于偏差的相似性确定哪些扭曲表可以应用于不同的设备可以在大规模生产中节省大量时间。例如,通过共享相同的扭曲表,在校准过程期间对于一些相机,可以跳过捕获点图案图像和计算扭曲表。与针对每个所生产的相机执行完整的镜头校准相比,重复使用先前计算的扭曲表可以节省生产设施中的物理空间并减少人力资源的量。在一些实施例中,可以实施自动设备来放置和移动校准中使用的点图案板。
实施的快速验证可以被配置为:通过基于物理偏差对传感器模块进行分类来执行传感器校准,以显著缩短整体校准时间。最初,可以使用完全校准技术来校准传感器单元中的至少一个。可以响应于完全校准技术生成扭曲表并将其存储在扭曲表池中。然后可以将扭曲表应用于下一个传感器单元以进行快速校准。快速校准可以测试应用的扭曲表。例如,传感器单元可以自动捕获16x9棋盘图案的图像。然后,可以基于棋盘图像来计算去扭曲效果。如果确定去扭曲效果是准确的(例如,足够好),则可以确定传感器单元在偏差特性上与生成扭曲表的传感器单元非常接近。当去扭曲效果准确时,然后传感器单元可以使用相同的扭曲表(例如,直接共享扭曲表)。
如果确定去扭曲效果不够准确,则可以在传感器单元上测试扭曲表池中的下一个扭曲表。可以反复测试扭曲表池中的每个扭曲表,直到扭曲表提供准确的去扭曲效果。如果扭曲表池中的所有扭曲表都经过测试并且不提供准确的去扭曲效果,则没有可用的扭曲表可以被共享。可以生成新的扭曲表。为了生成新的扭曲表,可以使用完全校准技术来校准传感器单元。每次使用完全校准技术校准传感器单元之一时,新生成的扭曲表可以被添加到扭曲表池存储中。扭曲表池可以包括来自具有独特偏差特性的设备的样本扭曲表。
本发明的实施例可以评估去扭曲效果以确定扭曲表是否可以被传感器单元共享(例如,应用于多于一个传感器单元)。可以通过计算棋盘图像中线条的平直度来校准去扭曲效果。在应用扭曲表之后,传感器单元可以捕获棋盘图像。棋盘图像的交点可以通过相交检测操作来获取。可以收集和存储棋盘的每条边缘线上的交点。可以分析通过交点的线。线越平直,则去扭曲效果越好(例如,更准确)。
为了计算线的平直度,可以实施线拟合技术。可以计算从每个点到线性拟合的距离的总和。距离的总和越小,则去扭曲效果的准确性就越高。例如,如果距离的总和小于预定阈值,则扭曲表可以使得去扭曲效果通过。
参考图1,图1示出了可以利用被配置为实现根据本发明的示例实施例生成的扭曲表的处理器的边缘设备的示例的图。示出了区域50的俯视图。在图示示例中,区域50可以是室外位置。显示了街道、车辆和建筑物。
在区域50中的不同位置出示出了设备100a-100n。设备100a-100n可以各自实现边缘设备。边缘设备100a-100n可以包括智能IP相机(例如,相机系统)。边缘设备100a-100n可以包括被设计为部署在网络边缘的嵌入式平台中的低功率技术(例如,在传感器、相机或其他电池供电设备上运行的微处理器),其中功耗是关键问题。在一个示例中,边缘设备100a-100n可以包括各种交通相机和智能交通系统(ITS)解决方案。
边缘设备100a-100n可以被实现用于各种应用。在图示示例中,边缘设备100a-100n可以包括自动车牌识别(ANPR)相机100a、交通相机100b、车辆相机100c、访问控制相机100d、自动柜员机(ATM)相机100e、子弹头相机100f、圆顶相机100n等。在一个示例中,边缘设备100a-100n可以实现为交通相机和智能交通系统(ITS)解决方案,旨在通过结合人员和车辆检测、车辆品牌/型号识别以及自动车牌识别(ANPR)功能来增强道路安全。
在图示示例中,区域50可以是室外位置。在一些实施例中,可以在各种室内位置实现边缘设备100a-100n。在示例中,边缘设备100a-100n可以结合卷积神经网络以便在安全(监视)应用和/或访问控制应用中使用。在一个示例中,实现为安全相机和访问控制应用的边缘设备100a-100n可以包括电池供电的相机、门铃相机、室外相机、室内相机等。根据本发明的实施例,安全相机和访问控制应用可以从卷积神经网络的应用中实现性能优势。在一个示例中,利用根据本发明实施例的卷积神经网络的边缘设备可以获取大量图像数据并进行设备上推断以获得有用信息(例如,每个网络执行的多个图像时间实例),从而减少带宽和/或减少功耗。由边缘设备100a-100n执行的设计、类型和/或应用可以根据特定实施方式的设计标准而变化。
参考图2,示出了图示实现本发明的示例实施例的示例边缘设备相机的图。示出了相机系统100a-100n。每个相机设备100a-100n可以具有不同的风格和/或用例。例如,相机100a可以是运动相机,相机100b可以是安装在天花板上的安全相机,相机100n可以是网络相机等。可以实现其他类型的相机(例如,家庭安全相机、电池供电相机、门铃相机、立体相机等)。
相机系统100a-100n中的每一个可以包括块(或电路)102、块(或电路)104和/或块(或电路)106。电路102可以实现处理器。电路104可以实现捕获设备。电路106可以实现结构光投影仪。相机系统100a-100n可以包括其他组件(未示出)。可以结合图3来描述相机100a-100n的组件的细节。
处理器102可以被配置为实现人工神经网络(ANN)。在一个示例中,ANN可以包括卷积神经网络(CNN)。处理器102可以被配置为实现视频编码器。处理器102可以被配置为对布置为视频帧的像素数据进行处理。捕获设备104可被配置为:捕获可由处理器102使用以生成视频帧的像素数据。结构光投影仪106可以被配置为:生成结构光图案(例如,散斑图案)。结构光图案可以投影到背景(例如,环境)上。捕获设备104可以捕获包括具有散斑图案的背景图像(例如,环境)的像素数据。
相机100a-100n可以是边缘设备。由相机100a-100n中的每一个相机实现的处理器102可以使相机100a-100n能够在内部(例如,在本地级别)实现各种功能。例如,处理器102可以被配置为:在设备上执行对象/事件检测(例如,计算机视觉操作)、3D重构、活体检测、深度图生成、视频编码和/或视频转码。例如,处理器102甚至可以执行诸如计算机视觉和3D重构之类的高级过程,而无需将视频数据上传到云服务以卸载计算量大的功能(例如,计算机视觉、视频编码、视频转码等)。
在一些实施例中,可以实现多个相机系统(例如,相机系统100a-100n可以彼此独立地操作)。例如,相机100a-100n中的每一个可以单独地对捕获的像素数据进行分析并且在本地执行事件/对象检测。在一些实施例中,相机100a-100n可以被配置为相机网络(例如,安全相机,其将视频数据发送到诸如网络附加存储和/或云服务之类的中央源)。相机100a-100n的位置和/或配置可以根据特定实施方式的设计标准而变化。
相机系统100a-100n中的每一个的捕获设备104可以包括单个镜头(例如,单目相机)。处理器102可以被配置为:加速用于单眼3D重构的散斑结构光的预处理。可以在不使用立体相机的情况下执行单目3D重构以生成深度图像和/或视差图像。
参考图3,示出了说明示例实现的相机系统100的框图。相机系统100可以是结合图2示出的相机100a-100n的代表性示例。相机系统100可以包括处理器/SoC 102、捕获设备104以及结构光投影仪106。
相机系统100还可以包括块(或电路)150、块(或电路)152、块(或电路)154、块(或电路)156、块(或电路)158、块(或电路)160、块(或电路)162、块(或电路)164和/或块(或电路)166。电路150可以实现存储器。电路152可以实现电池。电路154可以实现通信设备。电路156可以实现无线接口。电路158可以实现通用处理器。块160可以实现光学镜头。块162可以实现结构光图案镜头。电路164可以实现一个或多个传感器。电路166可以实现人机接口设备(HID)。在一些实施例中,相机系统100可以包括处理器/SoC 102、捕获设备104、IR结构光投影仪106、存储器150、镜头160、IR结构光投影仪106、结构光图案镜头162、传感器164、电池152、通信模块154、无线接口156和处理器158。在另一示例中,相机系统100可以包括处理器/SoC 102、捕获设备104、结构光投影仪106、处理器158、镜头160、结构光图案镜头162以及传感器164作为一个设备,并且存储器150、电池152、通信模块154和无线接口156可以是单独设备的组件。相机系统100可以包括其他组件(未示出)。相机系统100的组件的数量、类型和/或布置可以根据特定实施方式的设计标准而变化。
处理器102可以实现为视频处理器。在一个示例中,处理器102可以被配置为:接收具有高速SLVS/MIPI-CSI/LVCMOS接口的三传感器视频输入。在一些实施例中,处理器102可以被配置为:除了生成视频帧之外还执行深度感测。在一个示例中,可以响应于在视频帧中捕获的深度信息和/或向量光数据来执行深度感测。
存储器150可以存储数据。存储器150可以实现各种类型的存储器,包括但不限于高速缓存、闪存、存储卡、随机存取存储器(RAM)、动态RAM(DRAM)存储器等。存储器的类型和/或大小150可以根据特定实施方式的设计标准而变化。存储在存储器150中的数据可以对应于视频文件、运动信息(例如,来自传感器164的读数)、视频融合参数、图像稳定参数、用户输入、计算机视觉模型、特征集和/或元数据信息。在一些实施例中,存储器150可以存储参考图像。参考图像可用于计算机视觉操作、3D重构等。在一些实施例中,参考图像可以包括参考结构光图像。
处理器/SoC 102可以被配置为:执行计算机可读代码和/或处理信息。在各种实施例中,计算机可读代码可以存储在处理器/SoC 102内(例如,微代码等)和/或存储器150中。在一个示例中,处理器/SoC 102可以被配置为:执行存储在存储器150中的一个或多个人工神经网络模型(例如,面部识别CNN、对象检测CNN、对象分类CNN、3D重构CNN、活体检测CNN等)。在一个示例中,存储器150可以存储一个或多个有向无环图(DAG)以及定义一个或多个人工神经网络模型的一组或多组权重和偏置。处理器/SoC 102可以被配置为:从存储器150接收输入和/或向存储器150呈现输出。处理器/SoC 102可以被配置为:呈现和/或接收其他信号(未示出)。处理器/SoC 102的输入和/或输出的数量和/或类型可以根据特定实施方式的设计标准而变化。处理器/SoC 102可以被配置用于低功率(例如,电池)操作。
电池152可以被配置为:为相机系统100的组件存储和/或供电。用于卷帘式快门传感器的动态驱动器机制可以被配置为节省功耗。降低功耗可以使相机系统100能够使用电池152在延长的时间段内操作而无需再充电。电池152可以是可充电的。电池152可以是内置的(例如,不可更换的)或可更换的。电池152可以具有用于连接到外部电源(例如,用于充电)的输入。在一些实施例中,装置100可由外部电源供电(例如,可以不实现电池152或者电池152可以实现为备用电源)。可以使用各种电池技术和/或化学物质来实现电池152。所实现的电池152的类型可以根据特定实施方式的设计标准而变化。
通信模块154可以被配置为实现一种或多种通信协议。例如,通信模块154和无线接口156可以被配置为实现IEEE 102.11、IEEE 102.15、IEEE 102.15.1、IEEE 102.15.2、IEEE 102.15.3、IEEE102.15.4、IEEE 102.15.4、IEEE 102.15.5、IEEE 102.20、和/或/>在一些实施例中,通信模块154可以是硬连线数据端口(例如,USB端口、迷你USB端口、USB-C连接器、HDMI端口、以太网端口、显示端口接口、闪电端口等等)。在一些实施例中,无线接口156还可以实现与蜂窝通信网络相关联的一种或多种协议(例如,GSM、CDMA、GPRS、UMTS、CDMA2000、3GPP LTE、4G/HSPA/WiMAX、SMS等)。在相机系统100被实现为无线相机的实施例中,由通信模块154和无线接口156实现的协议可以是无线通信协议。由通信模块154实现的通信协议的类型可以根据特定实施方式的设计标准而变化。
通信模块154和/或无线接口156可以被配置为生成广播信号作为来自相机系统100的输出。广播信号可以向外部设备发送视频数据、视差数据和/或控制信号。例如,可以将广播信号发送到云存储服务(例如,能够按需扩展的存储服务)。在一些实施例中,在处理器/SoC 102已经执行了视频分析以确定对象在相机系统100的视野中之前,通信模块154可以不发送数据。
在一些实施例中,通信模块154可以被配置为生成手动控制信号。手动控制信号可以响应于由通信模块154接收到的来自用户的信号而生成。手动控制信号可以被配置为激活处理器/SoC 102。无论相机系统100的电源状态如何,处理器/SoC 102都可以响应于手动控制信号而被激活。
在一些实施例中,通信模块154和/或无线接口156可以被配置为接收特征集。接收到的特征集可用于检测事件和/或对象。例如,特征集可用于执行计算机视觉操作。特征集信息可以包括处理器102确定哪些类型的对象对应于感兴趣的对象和/或事件的指令。
在一些实施例中,通信模块154和/或无线接口156可以被配置为接收用户输入。用户输入可以使用户能够调整由处理器102实现的各种特征的操作参数。在一些实施例中,通信模块154和/或无线接口156可以被配置为与应用(例如app)对接(例如,使用应用编程接口(API))。例如,应用可以在智能手机上实现,以使最终用户能够为由处理器102实现的各种功能调整各种设置和/或参数(例如,设置视频分辨率、选择帧速率、选择输出格式、为3D重构设置容差参数等)。
可以使用通用处理器电路来实现处理器158。处理器158可用于与视频处理电路102和存储器150交互以执行各种处理任务。处理器158可以被配置为执行计算机可读指令。在一个示例中,计算机可读指令可由存储器150存储。在一些实施例中,计算机可读指令可以包括控制器操作。通常,来自传感器164和/或人机接口设备166的输入被示为由处理器102接收。在一些实施例中,通用处理器158可以被配置为:接收和/或分析来自传感器164和/或HID 166的数据并且响应于输入做出决定。在一些实施例中,处理器158可以向相机系统100的其他组件(例如,电池152、通信模块154和/或无线接口156)发送数据和/或从其接收数据。处理器102和通用处理器158执行相机系统100的哪个功能可以根据特定实施方式的设计标准而变化。
镜头160可以附接到捕获设备104。捕获设备104可以被配置为经由镜头160接收输入信号(例如,LIN)。信号LIN可以是光输入(例如,模拟图像)。镜头160可以实现为光学镜头。镜头160可以提供变焦特征和/或聚焦特征。在一个示例中,捕获设备104和/或镜头160可以实现为单个镜头组件。在另一个示例中,镜头160可以是与捕获设备104分开的实现。
捕获设备104可以被配置为将输入光LIN转换成计算机可读数据。捕获设备104可以捕获通过镜头160接收的数据以生成原始像素数据。在一些实施例中,捕获设备104可以捕获通过镜头160接收的数据以生成比特流(例如,生成视频帧)。例如,捕获设备104可以接收来自镜头160的聚焦光。镜头160可以被定向、倾斜、平移、缩放和/或旋转以提供来自相机系统100的目标视图(例如,视频帧的视图、使用多个相机系统100a-100n捕获的全景视频帧的视图、立体视觉的目标图像和参考图像视图,等等)。捕获设备104可以生成信号(例如,视频)。信号VIDEO可以是像素数据(例如,可用于生成视频帧的像素序列)。在一些实施例中,信号VIDEO可以是视频数据(例如,视频帧序列)。信号VIDEO可以被呈现给处理器102的输入中的一个。在一些实施例中,由捕获设备104生成的像素数据可以是未压缩的和/或响应于来自镜头160的聚焦光而生成的原始数据。在一些实施例中,捕获设备104的输出可以是数字视频信号。
在一个示例中,捕获设备104可以包括块(或电路)180、块(或电路)182以及块(或电路)184。电路180可以是图像传感器。电路182可以是处理器和/或逻辑单元。电路184可以是存储器电路(例如,帧缓冲器)。镜头160(例如,相机镜头)可以被引导以提供相机系统100周围环境的视图。镜头160可以旨在捕获环境数据(例如,光输入LIN)。镜头160可以是广角镜头和/或鱼眼镜头(例如,能够捕获宽视野的镜头)。镜头160可以被配置为捕获和/或聚焦用于捕获设备104的光。通常,图像传感器180位于镜头160的后面。基于从镜头160捕获的光,捕获设备104可以生成比特流和/或视频数据(例如,信号VIDEO)。
捕获设备104可以被配置为捕获视频图像数据(例如,由镜头160收集和聚焦的光)。捕获设备104可以捕获通过镜头160接收的数据以生成视频比特流(例如,视频帧序列的像素数据)。在各个实施例中,镜头160可以被实现为定焦镜头。定焦镜头通常有利于较小尺寸和较低功率。在一个示例中,定焦镜头可用于电池供电、门铃和其他低功率相机应用。在一些实施例中,镜头160可以被定向、倾斜、平移、缩放和/或旋转以捕获相机系统100周围的环境(例如,从视野捕获数据)。在一个示例中,专业相机型号可以使用有源镜头系统来实现,以达到增强功能、远程控制等。
捕获设备104可以将接收到的光转换成数字数据流。在一些实施例中,捕获设备104可以执行模数转换。例如,图像传感器180可以对镜头160接收的光执行光电转换。处理器/逻辑单元182可以将数字数据流转换成视频数据流(或比特流)、视频文件和/或多个视频帧。在示例中,捕获设备104可以将视频数据呈现为数字视频信号(例如,VIDEO)。数字视频信号可以包括视频帧(例如,连续数字图像和/或音频)。在一些实施例中,捕获设备104可以包括用于捕获音频的麦克风。在一些实施例中,麦克风可以实现为单独的组件(例如,传感器164之一)。
捕获设备104捕获的视频数据可以表示为信号/比特流/数据VIDEO(例如,数字视频信号)。捕获设备104可以向处理器/SoC 102呈现信号VIDEO。信号VIDEO可以表示视频帧/视频数据。信号VIDEO可以是由捕获设备104捕获的视频流。在一些实施例中,信号VIDEO可以包括可由处理器102(例如,视频处理流水线、图像信号处理器(ISP)等)操作的像素数据。处理器102可以响应于信号VIDEO中的像素数据生成视频帧。
信号VIDEO可以包括布置为视频帧的像素数据。信号VIDEO可以是包括背景(例如,捕获的对象和/或环境)以及由结构光投影仪106生成的散斑图案的图像。信号VIDEO可以包括单通道源图像。可以响应于使用单目镜头160捕获像素数据来生成单通道源图像。
图像传感器180可以从镜头160接收输入光LIN并将光LIN转换成数字数据(例如,比特流)。例如,图像传感器180可以对来自镜头160的光执行光电转换。在一些实施例中,图像传感器180可以具有不用作图像输出的一部分的额外边距。在一些实施例中,图像传感器180可能没有额外的余量。在各种实施例中,图像传感器180可以被配置为生成RGB-IR视频信号。在仅红外光照射的视场中,图像传感器180可以生成单色(B/W)视频信号。在由IR光和可见光二者照射的视场中,图像传感器180可以被配置为:除了生成单色视频信号之外还生成颜色信息。在各种实施例中,图像传感器180可以被配置为:响应于可见光和/或红外(IR)光而生成视频信号。
在一些实施例中,相机传感器180可以包括卷帘式快门传感器或全局快门传感器。在示例中,卷帘式快门传感器180可以实现RGB-IR传感器。在一些实施例中,捕获设备104可以包括卷帘式快门IR传感器和RGB传感器(例如,实现为单独的组件)。在示例中,卷帘式快门传感器180可以被实现为RGB-IR卷帘式快门互补金属氧化物半导体(CMOS)图像传感器。在一个示例中,卷帘式快门传感器180可以被配置为:断言指示第一线曝光时间的信号。在示例中,卷帘式快门传感器180可以将掩模施加到单色传感器。在示例中,掩模可以包括多个单元,该单元包含一个红色像素、一个绿色像素、一个蓝色像素和一个IR像素。IR像素可以包含红色、绿色和蓝色滤波器材料,这些滤波器材料可以高效地吸收可见频谱中的所有光,同时允许更长的红外波长以最小的损失通过。在卷帘式快门的情况下,随着每一排(或每一行)传感器开始曝光,该排(或行)中的所有像素可以同时开始曝光。
处理器/逻辑单元182可以将比特流转换成人类可见的内容(例如,无论图像质量如何,普通人都可以理解的视频数据,例如可由处理器102转换为视频帧的视频帧和/或像素数据)。例如,处理器/逻辑单元182可以从图像传感器180接收纯(例如,原始)数据并且基于原始数据生成(例如,编码)视频数据(例如,比特流)。捕获设备104可以具有存储器184以存储原始数据和/或经处理的比特流。例如,捕获设备104可以实现帧存储器和/或缓冲器184以存储(例如,提供临时存储和/或高速缓存)一个或多个视频帧(例如,数字视频信号)。在一些实施例中,处理器/逻辑单元182可以对存储在捕获设备104的存储器/缓冲器184中的视频帧执行分析和/或校正。处理器/逻辑单元182可以提供关于捕获的视频帧的状态信息。
结构光投影仪106可以包括块(或电路)186。电路186可以实现结构光源。结构光源186可以被配置为:生成信号(例如,SLP)。信号SLP可以是结构光图案(例如,散斑图案)。信号SLP可以被投射到相机系统100附近的环境上。结构光图案SLP可以由捕获设备104捕获作为光输入LIN的一部分。
结构光图案镜头162可以是用于结构光投影仪106的镜头。结构光图案镜头162可以被配置为使得由结构光投影仪106的结构光源186产生的结构光SLP能够被发射,同时保护结构光源186。结构光图案镜头162可以被配置为:将由结构光源186产生的激光图案分解成图案阵列(例如,用于散斑图案的密集点图案阵列)。
在示例中,结构光源186可以被实现为垂直腔体表面发射激光器(VCSEL)的阵列和镜头。然而,可以实现其他类型的结构光源以满足特定应用的设计标准。在示例中,VCSEL的阵列通常被配置为生成激光图案(例如,信号SLP)。镜头通常被配置为将激光图案分解为密集的点图案阵列。在示例中,结构光源186可以实现近红外(NIR)光源。在各种实施例中,结构光源186的光源可以被配置为发射波长大约为940纳米(nm)的光,该光对于人眼是不可见的。然而,可以利用其他波长。在示例中,可以利用在大约为800nm-1000nm的范围内的波长。
传感器164可以实现多个传感器,包括但不限于运动传感器、环境光传感器、接近度传感器(例如,超声波、雷达、激光雷达等)、音频传感器(例如,麦克风)等。在实现运动传感器的实施例中,传感器164可以被配置为:检测由相机系统100监测的视场中的任何地方(或视场外的一些位置)的运动。在各种实施例中,运动的检测可以用作用于激活捕获设备104的一个阈值。传感器164可以被实现为相机系统100的内部组件和/或相机系统100外部的组件。在示例中,传感器164可以被实现为被动红外(PIR)传感器。在另一个示例中,传感器164可以被实现为智能运动传感器。在又一示例中,传感器164可以被实现为麦克风。在实现智能运动传感器的实施例中,传感器164可以包括被配置为检测运动和/或人的低分辨率图像传感器。
在各种实施例中,传感器164可以生成信号(例如,SENS)。信号SENS可以包括由传感器164收集的各种数据(或信息)。在一个示例中,信号SENS可以包括响应于在被监测视野中检测到的运动、被监测视野中的环境光水平和/或在被监测视野中拾取的声音而收集的数据。然而,可以基于特定应用的设计标准来收集和/或生成其他类型的数据。信号SENS可以呈现给处理器/SoC 102。在一个示例中,当在由相机系统100监测的视场中检测到运动时,传感器164可以生成(断言)信号SENS。在另一示例中,当由相机系统100监测的视场中的音频触发时,传感器164可以生成(断言)信号SENS。在又一个示例中,传感器164可以被配置为:提供关于在视场中检测到的运动和/或声音的方向信息。方向信息也可以经由信号SENS传送到处理器/SoC 102。
HID 166可以实现输入设备。例如,HID 166可以被配置为:接收人类输入。在一个示例中,HID 166可以被配置为:接收来自用户的密码输入。在另一示例中,HID 166可以被配置为接收用户输入以便向处理器102和/或存储器150提供各种参数和/或设置。在一些实施例中,相机系统100可以包括键盘、触摸板(或屏幕)、门铃开关和/或其他人机接口设备(HID)166。在示例中,传感器164可以被配置为:确定对象何时接近HID 166。在相机系统100被实现为访问控制应用的一部分的示例中,可以开启捕获设备104以提供用于识别尝试访问的人的图像,并且可以打开锁定区域和/或访问触摸板166的照明。例如,来自HID 166的输入(例如,密码或PIN码)的组合可以与由处理器102执行的活性判断和/或深度分析相结合以实现双因素认证。
处理器/SoC 102可以接收信号VIDEO和信号SENS。处理器/SoC 102可以基于信号VIDEO、信号SENS和/或其他输入来生成一个或多个视频输出信号(例如,VIDOUT)、一个或多个控制信号(例如,CTRL)和/或一个或多个深度数据信号(例如,DIMAGES)。在一些实施例中,信号VIDOUT、DIMAGES和CTRL可以基于对信号VIDEO和/或在信号VIDEO中检测到的对象的分析来生成。
在各种实施例中,处理器/SoC 102可以被配置为执行以下各项中的一项或多项:特征提取、对象检测、对象跟踪、3D重构、活体检测以及对象识别。例如,处理器/SoC 102可以通过分析来自信号VIDEO的帧并且将该帧与先前的帧进行比较来确定运动信息和/或深度信息。比较可以用于执行数字运动估计。在一些实施例中,处理器/SoC 102可以被配置为:从信号VIDEO生成包括视频数据的视频输出信号VIDOUT和/或包括视差图和深度图的深度数据信号DIMAGES。视频输出信号VIDOUT和/或深度数据信号DIMAGES可以呈现给存储器150、通信模块154和/或无线接口156。在一些实施例中,视频信号VIDOUT和/或深度数据信号DIMAGES可以由处理器102内部使用(例如,不呈现为输出)。
信号VIDOUT可以被呈现给通信设备156。在一些实施例中,信号VIDOUT可以包括由处理器102生成的编码视频帧。在一些实施例中,编码视频帧可以包括完整的视频流(例如,表示由捕获设备104捕获的所有视频的编码视频帧)。编码视频帧可以是从信号VIDEO接收的像素数据的编码、裁剪、拼接和/或增强版本。在示例中,编码视频帧可以是信号VIDEO的高分辨率、数字、编码、去扭曲、稳定、裁剪、混合、拼接和/或滚动快门效果校正版本。
在一些实施例中,信号VIDOUT可以基于由处理器102对生成的视频帧执行的视频分析(例如,计算机视觉操作)来生成。处理器102可以被配置为:执行计算机视觉操作以检测视频帧中的对象和/或事件,然后将检测到的对象和/或事件转换为统计数据和/或参数。在一个示例中,由计算机视觉操作确定的数据可以由处理器102转换为人类可读格式。来自计算机视觉操作的数据可用于检测对象和/或事件。计算机视觉操作可由处理器102本地执行(例如,无需与外部设备通信以卸载计算操作)。例如,本地执行的计算机视觉操作可以使计算机视觉操作能够由处理器102执行并且避免在后端服务器上运行的繁重的视频处理。避免在后端(例如,远程位置)服务器上运行视频处理可以保护隐私。
在一些实施例中,信号VIDOUT可以是由处理器102生成的数据(例如,视频分析结果、音频/语音分析结果等),该数据可以传送到云计算服务以便聚合信息和/或为机器学习提供训练数据(例如,改进对象检测、改进音频检测、改进活体检测等)。在一些实施例中,信号VIDOUT可以被提供给用于大容量存储的云服务(例如,使用户能够使用智能电话和/或桌面式计算机取回编码视频)。在一些实施例中,信号VIDOUT可以包括从视频帧中提取的数据(例如,计算机视觉的结果),并且可以将结果传送到另一个设备(例如,远程服务器、云计算系统等)以将结果分析卸载到另一个设备(例如,将对结果的分析卸载到云计算服务,而不是在本地执行所有分析)。由信号VIDOUT传送的信息类型可以根据特定实施方式的设计标准而变化。
信号CTRL可以被配置为:提供控制信号。信号CTRL可以响应于处理器102做出的决定而产生。在一个示例中,可以响应于检测到的对象和/或从视频帧中提取的特征来生成信号CTRL。信号CTRL可以被配置为启用、禁用、改变另一设备的操作模式。在一个示例中,可以响应于信号CTRL来锁定/解锁由电子锁控制的门。在另一示例中,设备可以响应于信号CTRL而被设置为睡眠模式(例如,低功率模式)和/或从睡眠模式被激活。在又一示例中,可以响应于信号CTRL产生警报和/或通知。由信号CTRL控制的设备的类型和/或设备响应于信号CTRL而执行的反应可以根据特定实施方式的设计标准而变化。
信号CTRL可以基于由传感器164接收的数据(例如,温度读数、运动传感器读数等)而生成。信号CTRL可以基于来自HID 166的输入而产生。信号CTRL可以基于由处理器102在视频帧中检测到的人的行为来生成。信号CTRL可以基于检测到的对象的类型(例如,人、动物、车辆等)生成。可以响应于在特定位置检测到特定类型的对象来生成信号CTRL。可以响应于用户输入生成信号CTRL,以便向处理器102和/或存储器150提供各种参数和/或设置。处理器102可以被配置为:响应于传感器融合操作(例如,对从不同源接收的信息进行聚合)来生成信号CTRL。处理器102可以被配置为:响应于由处理器102执行的活体检测结果生成信号CTRL。用于生成信号CTRL的条件可以根据特定实施方式的设计标准而变化。
信号DIMAGES可以包括由处理器102生成的深度图和/或视差图中的一个或多个。可以响应于对单目单通道图像执行的3D重构来生成信号DIMAGES。可以响应于对捕获的视频数据和结构光图案SLP的分析来生成信号DIMAGES。
可以实现基于运动传感器164的输出和/或相机系统100的任何其他功耗特征来激活和/或禁用捕获设备104的多步骤方式以降低相机系统100的功耗并延长电池152的使用寿命。传感器164中的运动传感器可以在电池152上具有低消耗(例如,小于10W)。在示例中,传感器164的运动传感器可以被配置为:保持开启(例如,始终活动),除非响应于来自处理器/SoC 102的反馈被禁用。由处理器/SoC 102执行的视频分析可能对电池152具有相对较大的消耗(例如,大于运动传感器164)。在一个示例中,处理器/SoC 102可以处于低功率状态(或断电),直到传感器164的运动传感器检测到一些运动。
相机系统100可以被配置为:使用各种电源状态来进行操作。例如,在断电状态(例如,睡眠状态、低功率状态)中,传感器164和处理器/SoC 102的运动传感器可以开启,并且相机系统100的其他组件(例如,图像捕获设备104、存储器150、通信模块154等)可以关闭。在另一示例中,相机系统100可以在中间状态下操作。在中间状态下,图像捕获设备104可以开启,并且存储器150和/或通信模块154可以关闭。在又一示例中,相机系统100可以在通电(或高功率)状态下操作。在通电状态下,传感器164、处理器/SoC 102、捕获设备104、存储器150和/或通信模块154可以开启。相机系统100可以在断电状态下消耗来自电池152的一些电力(例如,相对小的和/或最小量的电力)。在通电状态下,相机系统100可以消耗来自电池152的更多电力。电源状态的数量和/或相机系统100的在相机系统100在每个电源状态中操作时开启的组件的数量可以根据特定实施方式的设计标准而变化。
在一些实施例中,相机系统100可以被实现为片上系统(SoC)。例如,相机系统100可以被实现为包括一个或多个组件的印刷电路板。相机系统100可以被配置为:对视频的视频帧执行智能视频分析。相机系统100可以被配置为:对视频进行裁剪和/或增强。
在一些实施例中,视频帧可以是由捕获设备104捕获的某个视图(或某个视图的派生)。像素数据信号可由处理器102增强(例如,颜色转换、噪声过滤、自动曝光、自动白平衡、自动对焦等)。在一些实施例中,视频帧可以提供一系列经裁剪和/或增强的视频帧,这些视频帧改进了从相机系统100的角度来看的视图(例如,提供夜视、提供高动态范围(HDR)成像、提供更多查看区域、突出显示检测到的对象、提供附加数据(例如到检测到的对象的数字距离)等等),以使处理器102能够比人用人类视觉所能看到的更好地看到位置。
编码视频帧可以在本地进行处理。在一个示例中,经编码的视频可以由存储器150本地存储以使处理器102能够在内部促进计算机视觉分析(例如,无需首先将视频帧上传到云服务)。处理器102可以被配置为:选择将被打包为可以通过网络(例如,带宽受限网络)发送的视频流的视频帧。
在一些实施例中,处理器102可以被配置为执行传感器融合操作。由处理器102执行的传感器融合操作可以被配置为:对来自多个源(例如,捕获设备104、传感器164和HID166)的信息进行分析。通过对来自不同来源的各种数据进行分析,传感器融合操作可能能够对数据进行推断,而这可能无法仅从数据源之一进行推断。例如,由处理器102实现的传感器融合操作可以对视频数据(例如,人的嘴部运动)以及来自定向音频的语音模式进行分析。不同的来源可用于开发场景模型以支持决策制定。例如,处理器102可以被配置为:将检测到的语音模式的同步与视频帧中的嘴部运动进行比较以确定视频帧中的哪个人正在说话。传感器融合操作还可以提供正在接收的数据之间的时间相关性、空间相关性和/或可靠性。
在一些实施例中,处理器102可以实现卷积神经网络能力。卷积神经网络功能力可以使用深度学习技术来实现计算机视觉。卷积神经网络能力可以被配置为:使用通过多层特征检测的训练过程来实现模式和/或图像识别。计算机视觉和/或卷积神经网络能力可由处理器102在本地执行。在一些实施例中,处理器102可以从外部源接收训练数据和/或特征集信息。例如,外部设备(例如,云服务)可以访问各种数据源以使用相机系统100可能无法获得的训练数据。然而,使用特征集执行的计算机视觉操作可以使用相机系统100内的处理器102的计算资源来执行。
处理器102的视频流水线可以被配置为:在本地执行去扭曲、裁剪、增强、卷帘式快门校正、稳定、缩小、打包、压缩、转换、混合、同步和/或其他视频操作。处理器102的视频流水线可以启用多流支持(例如,并行生成多个比特流,每个比特流包括不同的比特率)。在示例中,处理器102的视频流水线可以实现具有320M像素/秒输入像素速率的图像信号处理器(ISP)。处理器102的视频管线的架构可以使得能够实时和/或接近实时地对高分辨率视频和/或高比特率视频数据执行视频操作。处理器102的视频流水线可以实现对4K分辨率视频数据的计算机视觉处理、立体视觉处理、对象检测、3D降噪、鱼眼镜头校正(例如,实时360度去扭曲和镜头变形校正)、过采样和/或高动态范围处理。在一个示例中,视频管线的架构可以实现具有双实时速度(例如,60fps)的H.264编码的4K超高分辨率、具有30fps的H.265/HEVC和/或4K AVC编码(例如,支持多流的4KP30 AVC和HEVC编码)的4K超高分辨率。视频操作的类型和/或由处理器102操作的视频数据的类型可以根据特定实施方式的设计标准而变化。
相机传感器180可以实现高分辨率传感器。使用高分辨率传感器180,处理器102可以将图像传感器180的过采样与经裁剪区域内的数字缩放相结合。过采样和数字缩放均可以是由处理器102执行的视频操作之一。可以实现过采样和数字缩放以在经裁剪区域的总尺寸限制内提供更高分辨率的图像。
在一些实施例中,镜头160可以实现鱼眼镜头。由处理器102实现的视频操作之一可以是去扭曲操作。处理器102可以被配置为:对生成的视频帧进行去扭曲。去扭曲可以被配置为:减少和/或去除由鱼眼镜头和/或其他镜头特性引起的严重变形。例如,去扭曲可以减少和/或消除凸出效果以提供直线图像。
处理器102可以被配置为:从完整视频帧中裁剪(例如,修剪为)感兴趣区域(例如,生成感兴趣区域的视频帧)。处理器102可以生成视频帧并选择区域。在示例中,对感兴趣区域进行裁剪可以生成第二图像。经裁剪的图像(例如,感兴趣区域视频帧)可以小于原始视频帧(例如,经裁剪图像可以是所捕获视频的一部分)。
可以基于音频源的位置动态地调整感兴趣区域。例如,检测到的音频源可能正在移动,并且检测到的音频源的位置可能随着视频帧的捕获而移动。处理器102可以更新所选择的感兴趣区域坐标并且动态地更新经裁剪的部分(例如,实现为传感器164中的一个或多个传感器的定向麦克风可以基于捕获的定向音频动态地更新位置)。经裁剪部分可以对应于所选择的感兴趣区域。随着感兴趣区域的变化,经裁剪部分可能会发生变化。例如,感兴趣区域的所选择的坐标可以逐帧改变,并且处理器102可以被配置为在每一帧中对所选择区域进行裁剪。
处理器102可以被配置为:对图像传感器180进行过采样。图像传感器180的过采样可以产生更高分辨率的图像。处理器102可以被配置为:以数字方式放大视频帧的区域。例如,处理器102可以以数字方式放大感兴趣的经裁剪区域。例如,处理器102可以基于定向音频建立感兴趣区域、对感兴趣区域进行裁剪,然后以数字方式放大经裁剪的感兴趣区域视频帧。
由处理器102执行的去扭曲操作可以调整视频数据的视觉内容。由处理器102执行的调整可以使视觉内容看起来自然(例如,看起来就像观看与捕获设备104的视野相对应的位置的人所看到的那样)。在示例中,去扭曲可以改变视频数据以生成直线视频帧(例如,校正由镜头160的镜头特性引起的伪影)。可以实现去扭曲操作以校正由镜头160引起的变形。可以生成经调整的视觉内容以实现更准确和/或可靠的对象检测。
各种特征(例如,去扭曲、数字缩放、裁剪等)可以在处理器102中实现为硬件模块。实现硬件模块可以增加处理器102的视频处理速度(例如,比软件实现更快)。硬件实现可以使视频能够被处理同时减少延迟量。所使用的硬件组件可以根据特定实施方式的设计标准而变化。
处理器102被示为包括多个块(或电路)190a-190n。块190a-190n可以实现由处理器102实现的各种硬件模块。硬件模块190a-190n可以被配置为:提供各种硬件组件来实现视频处理流水线。电路190a-190n可以被配置为:接收像素数据VIDEO,从像素数据生成视频帧,对视频帧执行各种操作(例如,去扭曲、卷帘式快门校正、裁剪、放大、图像稳定、3D重构、活体检测等),准备用于与外部硬件通信的视频帧(例如,编码、打包、色彩校正等),对特征集进行解析,实现计算机视觉的各种操作(例如,对象检测、分割、分类等)等。硬件模块190a-190n可以被配置为:实现各种安全特征(例如,安全引导、I/O虚拟化等)。处理器102的各种实现可能不一定利用硬件模块190a-190n的所有特征。硬件模块190a-190n的特征和/或功能可以根据特定实施方式的设计标准而变化。硬件模块190a-190n的细节可以结合于2020年4月16日递交的美国专利申请No.16/831,549、于2019年2月28日递交的美国专利申请No.16/288,922、于2017年5月12日递交的美国专利申请15/593,493(现为美国专利No.10,437,600)、于2020年5月14日递交的美国专利申请No.15/931,942、于2020年8月12日递交的美国专利申请No.16/991,344、于2021年9月20日递交的美国专利申请No.17/479,034来描述,在此将上述各申请的适当部分通过引用的方式整体并入本文。
硬件模块190a-190n可以实现为专用硬件模块。与软件实现相比,使用专用硬件模块190a-190n实现处理器102的各种功能可以使处理器102能够被高度优化和/或定制以限制功耗、减少热量产生和/或提高处理速度。硬件模块190a-190n可以是可定制的和/或可编程的以实现多种类型的操作。实现专用硬件模块190a-190n可以使用于执行每种类型计算的硬件能够针对速度和/或效率进行优化。例如,硬件模块190a-190n可以实现在计算机视觉操作中经常使用的多个相对简单的操作,这些操作一起可以使得计算机视觉操作能够被实时执行。视频流水线可以被配置为:识别对象。可以通过对数字和/或符号信息进行解释以确定视觉数据代表特定类型的对象和/或特征来识别对象。例如,视频数据的像素数量和/或像素颜色可用于将视频数据的一些部分识别为对象。硬件模块190a-190n可使计算密集型操作(例如,计算机视觉操作、视频编码、视频转码、3D重构、深度图生成、活体检测等)能够由相机系统100在本地执行。
硬件模块190a-190n中的一个(例如,190a)可以实现调度器电路。调度器电路190a可以被配置为:存储有向无环图(DAG)。在示例中,调度器电路190a可以被配置为:响应于接收到(例如,加载)的特征集信息来生成和存储有向无环图。有向无环图可以定义要执行用于从视频帧中提取数据的视频操作。例如,有向无环图可以定义各种数学加权(例如,神经网络权重和/或偏置)以便在执行计算机视觉操作以将各种像素组分类为特定对象时进行应用。
调度器电路190a可以被配置为:对无环图进行解析以生成各种操作符。操作符可以由其他硬件模块190a-190n中的一个或多个硬件模块中的调度器电路190a调度。例如,硬件模块190a-190n中的一个或多个硬件模块可以实现被配置为执行特定任务的硬件引擎(例如,被设计为执行重复用于执行计算机视觉操作的特定数学操作的硬件引擎)。调度器电路190a可以基于操作符何时准备好被硬件引擎190a-190n处理来调度操作符。
调度器电路190a可以基于硬件模块190a-190n执行工作的可用性将任务时间复用到硬件模块190a-190n。调度器电路190a可将有向无环图解析为一个或多个数据流。每个数据流可以包括一个或多个操作符。一旦有向无环图被解析,调度器电路190a就可以将数据流/操作符分配给硬件引擎190a-190n,并发送相关操作符配置信息以启动操作符。
每个有向无环图二进制表示可以是有向无环图的有序遍历,其中描述符和操作符基于数据相关性交织。描述符通常提供将数据缓冲器链接到相关操作符中的特定操作数的寄存器。在各种实施例中,在为操作数声明所有相关描述符之前,操作符可能不会出现在有向无环图表示中。
硬件模块190a-190n(例如,190b)中的一个硬件模块可以实现卷积神经网络(ANN)模块。人工神经网络模块可以实现为全连接神经网络或卷积神经网络(CNN)。在一个例子中,全连接网络是“结构不可知”的,因为不需要对输入做出特殊假设。全连接神经网络由一系列全连接层组成,这些层将一层中的每个神经元连接到另一层中的每个神经元。在全连接层中,对于n个输入和m个输出,存在n*m个权重。每个输出节点也存在一个偏差值,导致总共有(n+1)*m个参数。在已经训练好的神经网络中,在训练过程中已经确定了(n+1)*m个参数。已经训练好的神经网络通常包括架构规范和训练过程期间确定的一组参数(权重和偏差)。在另一示例中,CNN架构可以明确假设输入是图像,以便能够将特定属性编码到模型架构中。CNN架构可以包括一系列层,每层通过可微函数将一个激活量转换为另一个激活量。
在图示示例中,人工神经网络190b可以实现卷积神经网络(CNN)模块。CNN模块190b可以被配置为:对视频帧执行计算机视觉操作。CNN模块190b可以被配置为:通过多层特征检测来实现对象的识别。CNN模块190b可以被配置为:基于执行的特征检测来计算描述符。描述符可以使处理器102能够确定视频帧的像素对应于特定对象(例如,车辆的特定品牌/型号/年份、将人识别为特定个体、检测动物类型、检测面部特征等)的可能性。
CNN模块190b可以被配置为:实现卷积神经网络能力。CNN模块190b可以被配置为:使用深度学习技术来实现计算机视觉。CNN模块190b可以被配置为:使用通过多层特征检测的训练过程来实现模式和/或图像识别。CNN模块190b可以被配置为:针对机器学习模型进行推断。
CNN模块190b可以被配置为:仅在硬件中执行特征提取和/或匹配。特征点通常代表视频帧中感兴趣的区域(例如,角、边等)。通过在时间上跟踪特征点,可以生成捕获平台的自我运动的估计或场景中观察对象的运动模型。为了跟踪特征点,匹配操作通常由硬件纳入CNN模块190b中,以找到参考视频帧和目标视频帧中的特征点之间最可能的对应关系。在匹配参考特征点和目标特征点对的过程中,每个特征点可以由描述符表示(例如,图像补丁、SIFT、BRIEF、ORB、FREAK等)。使用专用硬件电路实现CNN模块190b可以实现实时计算描述符匹配距离。
CNN模块190b可以被配置为执行人脸检测、人脸识别和/或活体判断。例如,人脸检测、人脸识别和/或活体判断可以基于由CNN模块190b实现的经训练的神经网络来执行。在一些实施例中,CNN模块190b可以被配置为:从结构光图案生成深度图像。CNN模块190b可以被配置为:执行各种检测和/或识别操作和/或执行3D识别操作。
CNN模块190b可以是被配置为执行视频帧的特征检测的专用硬件模块。CNN模块190b检测到的特征可用于计算描述符。CNN模块190b可以响应于描述符确定视频帧中的像素属于特定对象和/或一些对象的可能性。例如,使用描述符,CNN模块190b可以确定像素与特定对象(例如,人、一件家具、宠物、车辆等)和/或对象的特性(例如,眼睛的形状、面部特征之间的距离、车辆引擎盖、身体部位、车辆牌照、人脸、人穿的衣服等)相对应的概率。将CNN模块190b实现为处理器102的专用硬件模块可以使装置100能够在本地(例如,片上)执行计算机视觉操作,而无需依赖远程设备的处理能力(例如,将数据传送到云计算服务)。
由CNN模块190b执行的计算机视觉操作可以被配置为:对视频帧执行特征检测以生成描述符。CNN模块190b可以执行对象检测以确定视频帧的具有匹配特定对象的高可能性的区域。在一个示例中,要进行匹配的对象的类型(例如,参考对象)可以使用开放操作数栈来定制(使处理器102的可编程性能够实现由有向无环图定义的各种人工神经网络,每个有向无环图提供用于执行各种类型的对象检测的指令)。CNN模块190b可以被配置为:对具有匹配特定对象的高可能性的区域执行局部掩蔽以检测对象。
在一些实施例中,CNN模块190b可以确定检测到的对象的各种特征(例如,特性)的位置(例如,3D坐标和/或位置坐标)。在一个示例中,可以使用3D坐标来确定人的手臂、腿、胸部和/或眼睛的位置。可以存储身体部位在3D空间中的垂直位置的第一轴上的一个位置坐标以及身体部位在3D空间中的水平位置的第二轴上的另一个坐标。在一些实施例中,距镜头160的距离可以表示3D空间中身体部位的深度位置的一个坐标(例如,第三轴上的位置坐标)。使用各种身体部位在3D空间中的位置,处理器102可以确定检测到的人的身体位置和/或身体特性。
可以对CNN模块190b进行预训练(例如,被配置为执行计算机视觉以基于接收的训练数据来检测对象以训练CNN模块190b)。例如,训练数据的结果(例如,机器学习模型)可以被预编程和/或加载到处理器102中。CNN模块190b可以对机器学习模型进行推断(例如,以执行对象检测)。训练可以包括确定神经网络模型的每一层的权重值。例如,可以为特征提取(例如卷积层)和/或分类(例如全连接层)的每个层确定权重值。CNN模块190b所学习到的权重值可以根据特定实施方式的设计标准而变化。
CNN模块190b可以通过执行卷积操作来实现特征提取和/或对象检测。卷积操作可以是硬件加速的,用于可以在消耗低功率的同时执行的快速(例如,实时)计算。在一些实施例中,由CNN模块190b执行的卷积操作可用于执行计算机视觉操作。在一些实施例中,由CNN模块190b执行的卷积操作可用于由处理器102执行的可能涉及计算卷积操作的任何功能(例如,3D重构)。
卷积操作可以包括:在执行计算(例如,矩阵操作)的同时沿层滑动特征检测窗口。特征检测窗口可以对像素应用过滤器和/或提取与每一层相关联的特征。特征检测窗口可以应用于一个像素和多个周围像素。在示例中,这些层可以被表示为:表示这些层中的一个层的像素和/或特征的值的矩阵,并且由特征检测窗口应用的滤波器可以被表示为矩阵。卷积操作可以在由特征检测窗口覆盖的当前层的区域之间应用矩阵乘法。卷积操作可以沿层的区域滑动特征检测窗口以生成表示每个区域的结果。区域的大小、滤波器应用的操作类型和/或层数可以根据特定实施方式的设计标准而变化。
使用卷积操作,CNN模块190b可以在每个提取步骤中计算输入图像的像素的多个特征。例如,每一层都可以从位于前一层(例如,局部感受域)的小邻域(例如,区域)中的一组特征接收输入。卷积操作可以提取基本的视觉特征(例如,定向边缘、端点、角等),然后由更高层对这些特征进行组合。由于特征提取窗口对一个像素及其附近的像素(或子像素)进行操作,因此操作结果可能具有位置不变性。这些层可以包括卷积层、池化层、非线性层和/或全连接层。在示例中,卷积操作可以学习从原始像素(例如,第一层)检测边缘,然后使用来自前一层的特征(例如,检测到的边缘)来检测下一层中的形状,然后使用这些形状来检测更高层中的更高级别特征(例如,面部特征、宠物、车辆、车辆部件、家具等),最后一层可能是使用更高级别特征的分类器。
CNN模块190b可以执行针对特征提取和匹配的数据流,包括两阶段检测,变形操作符,操纵分量列表的分量操作符(例如,分量可以是共享公共属性的向量区域并且可以与边界框组合在一起),矩阵求逆操作符,点积操作符,卷积操作符,条件操作符(例如,复用和解复用),重映射操作符,最小-最大-约简操作符,池化操作符,非最小、非最大抑制操作符,基于扫描窗口的非最大抑制操作符,聚集操作符,分散操作符,统计操作符,分类操作符,积分图像操作符,比较操作符,索引操作符,模式匹配操作符,特征提取操作符,特征检测操作符,两阶段对象检测操作符,得分生成操作符,块减少操作符,以及上采样操作符。由CNN模块190b执行用于从训练数据提取特征的操作类型可以根据特定实施方式的设计标准而变化。
硬件模块190a-190n中的每一个可以实现处理资源(或硬件资源或硬件引擎)。硬件引擎190a-190n可以用于执行特定的处理任务。在一些配置中,硬件引擎190a-190n可以并行并且彼此独立地操作。在其他配置中,硬件引擎190a-190n可以在彼此之间共同操作以执行分配的任务。硬件引擎190a-190n中的一个或多个硬件引擎可以是同构处理资源(所有电路190a-190n可以具有相同能力)或异构处理资源(两个或更多个电路190a-190n可以具有不同能力)。
参考图4,示出了说明实现被配置为执行3D重构的卷积神经网络的相机系统的处理电路的图。在示例中,相机系统100的处理电路可以被配置用于各种应用,这些应用包括但不限于:自主和半自主车辆(例如,汽车、卡车、摩托车、农业机械、无人机、飞机等)、制造、和/或安全和监视系统。与通用计算机相比,相机系统100的处理电路通常包括硬件电路,该硬件电路被优化以在最小面积和最小功耗下提供高性能图像处理和计算机视觉流水线。在示例中,用于执行计算机(或机器)视觉的图像处理、特征检测/提取、3D重构、活体检测、深度图生成和/或对象检测/分类的各种操作可以使用被设计成降低计算复杂度和有效使用资源的硬件模块来实现。
在示例实施例中,处理电路100可以包括处理器102、存储器150、通用处理器158和/或存储器总线200。通用处理器158可以实现第一处理器。处理器102可以实现第二处理器。在示例中,电路102可以实现计算机视觉处理器。在示例中,处理器102可以是智能视觉处理器。存储器150可以实现外部存储器(例如,电路158和102外部的存储器)。在一个示例中,电路150可以被实现为动态随机存取存储器(DRAM)电路。相机系统100的处理电路可以包括其他组件(未示出)。相机系统100的处理电路的组件的数量、类型和/或布置可以根据特定实施方式的设计标准而变化。
通用处理器158可以用于与电路102和电路150交互以执行各种处理任务。在一个示例中,处理器158可以被配置为电路102的控制器。处理器158可以被配置为执行计算机可读指令。在一个示例中,计算机可读指令可由电路150存储。在一些实施例中,计算机可读指令可以包括控制器操作。处理器158可以被配置为与电路102通信和/或访问由电路102的组件产生的结果。在示例中,处理器158可以被配置为:利用电路102来执行与一个或多个神经网络模型相关联的操作。
在示例中,处理器102通常包括调度器电路190a、块(或电路)202、一个或多个块(或电路)204a-204n、块(或电路)206以及路径208。块202可以实现有向无环图(DAG)存储器。DAG存储器202可以包括CNN模块190b和/或权重/偏置值210。块204a-204n可以实现硬件资源(或引擎)。块206可以实现共享存储器电路。在示例实施例中,电路204a-204n中的一个或多个电路可以包括块(或电路)212a-212n。在图示示例中,电路212a和电路212b被实现为相应硬件引擎204a-204b中的代表性示例。电路202、电路204a-204n和/或电路206中的一个或多个电路可以是与图3相关联示出的硬件模块190a-190n的示例实现。
在示例中,处理器158可以被配置为:利用一个或多个经预训练的人工神经网络模型(ANN)对电路102进行编程,人工神经网络模型包括具有根据本发明的实施例的多个输出帧的卷积神经网络(CNN)190b以及由CNN模块190b使用的权重/内核(WGTS)210。在各种实施例中,CNN模块190b可以被配置(训练)用于在边缘设备中操作。在示例中,相机系统100的处理电路可以耦合至被配置为生成数据输入的传感器(例如,摄像机等)。相机系统100的处理电路可以被配置为:基于通过使用权重/内核(WGTS)210执行经预训练的CNN模块190b做出的一个或多个推断,响应于来自传感器的数据输入生成一个或多个输出。由处理器158执行的操作可以根据特定实施方式的设计标准而变化。
在各种实施例中,电路150可以实现动态随机存取存储器(DRAM)电路。电路150通常用于存储输入数据元素和各种形式的输出数据元素的多维阵列。电路150可以与处理器158和处理器102交换输入数据元素和输出数据元素。
处理器102可以实现计算机视觉处理器电路。在示例中,处理器102可以被配置为:实现用于计算机视觉的各种功能。处理器102通常用于执行由处理器158安排的特定处理任务。在各种实施例中,处理器102的全部或部分可以单独以硬件实现。处理器102可以直接执行涉及CNN模块190b的执行并且由指定处理(例如,计算机视觉、3D重构、活体检测等)任务的软件(例如,有向无环图等)生成的数据流。在一些实施例中,处理器102可以是由相机系统100的处理电路实现并被配置为一起操作的众多计算机视觉处理器的代表性示例。
在示例中,电路212a可以实现卷积操作。在另一个示例中,电路212b可以被配置为提供点积操作。卷积和点积操作可用于执行计算机(或机器)视觉任务(例如,作为对象检测过程的一部分等)。在又一示例中,电路204c-204n中的一个或多个电路可以包括用于提供多维卷积计算的块(或电路)212c-212n(未示出)。在又一示例中,电路204a-204n中的一个或多个电路可以被配置为执行3D重构任务。
在示例中,电路102可以被配置为从处理器158接收有向无环图(DAG)。从处理器158接收的DAG可以存储在DAG存储器202中。电路102可以被配置为:使用电路190a、204a-204n和206针对CNN模块190b执行DAG。
可以在电路190a和相应的电路204a-204n之间交换多个信号(例如,OP_A-OP_N)。信号OP_A-OP_N中的每个信号可以传达执行操作信息和/或让步操作信息。多个信号(例如,MEM_A-MEM_N)可以在各个电路204a-204n和电路206之间交换。信号MEM_A-MEM_N可以携带数据。信号(例如,DRAM)可以在电路150和电路206之间交换。信号DRAM可以在电路150和190a之间(例如,在传输路径208上)传输数据。
调度器电路190a通常用于在电路204a-204n之间调度任务以执行由处理器158定义的各种计算机视觉相关任务。单独的任务可以由调度器电路190a分配给电路204a-204n。调度器电路190a可以响应于对由处理器158提供的有向无环图(DAG)进行解析来分配各个任务。调度器电路190a可以基于电路204a-204n执行工作的可用性将任务时间复用到电路204a-204n。
每个电路204a-204n可以实现处理资源(或硬件引擎)。硬件引擎204a-204n通常可用于执行特定处理任务。硬件引擎204a-204n可以被实现为包括在执行特定处理任务的同时针对高性能和低功耗优化的专用硬件电路。在一些配置中,硬件引擎204a-204n可以并行并且彼此独立地操作。在其他配置中,硬件引擎204a-204n可以在彼此之间共同操作以执行分配的任务。
硬件引擎204a-204n可以是同构处理资源(例如,所有电路204a-204n可以具有相同的能力)或异构处理资源(例如,两个或更多个电路204a-204n可以具有不同的能力)。硬件引擎204a-204n通常被配置为执行操作符,这些操作符可以包括但不限于重采样操作符,变形操作符,操纵分量列表的分量操作符(例如,分量可以是共享公共属性的向量区域并且可以与边界框组合在一起),矩阵求逆操作符,点积操作符,卷积操作符,条件操作符(例如,复用和解复用),重映射操作符,最小-最大-约简操作符,池化操作符,非最小、非最大抑制操作符,聚集操作符,分散操作符,统计操作符,分类操作符,积分图像操作符,上采样操作符,以及两个下采样操作符的幂,等等。
在示例中,硬件引擎204a-204n可以包括存储在各种存储器缓冲器中的矩阵。存储在存储器缓冲器中的矩阵可以实现卷积操作符的初始化。卷积操作符可以被配置为有效地执行对卷积函数重复执行的计算。在示例中,实现卷积操作符的硬件引擎204a-204n可以包括多个数学电路,这些电路被配置为处理多比特输入值并且并行地操作。卷积操作符可以通过使用一维或更高维内核计算卷积(也被称为互相关)来为计算机视觉和/或3D重构提供有效且通用的解决方案。卷积可用于诸如对象检测、对象识别、边缘增强、图像平滑等的计算机视觉操作。由本发明实现的技术和/或架构可用于计算输入阵列与内核的卷积。卷积操作符的细节可以结合于2017年1月11日递交的美国专利No.10,310,768来进行描述,其适当部分通过引用并入本文。
在各个实施例中,硬件引擎204a-204n可以单独实现为硬件电路。在一些实施例中,硬件引擎204a-204n可以被实现为通用引擎,其可以通过电路定制和/或软件/固件被配置为作为专用机器(或引擎)操作。在一些实施例中,硬件引擎204a-204n可以实现为在处理器158和/或一个或多个处理器102上执行的程序代码的一个或多个实例或线程,这些处理器包括但不限于向量处理器、中央处理单元(CPU)、数字信号处理器(DSP)或图形处理单元(GPU)。在一些实施例中,可以由调度器190a为特定进程和/或线程选择硬件引擎204a-204n中的一个或多个。调度器190a可以被配置为:响应于对存储在DAG存储器202中的有向无环图进行解析,将硬件引擎204a-204n分配给特定任务。
电路206可以实现共享存储器电路。共享存储器206可以被配置为:响应于输入请求来存储数据和/或响应于输出请求(例如,来自处理器158、DRAM 150、调度器电路190a和/或硬件引擎204a-204n的请求)来呈现数据。在示例中,共享存储器电路206可以实现用于计算机视觉处理器102的片上存储器。共享存储器206通常用于存储由硬件引擎204a-204n生成和/或利用的输入数据元素和输出数据元素的多维阵列(或向量)的全部或部分。输入数据元素可以经由存储器总线200从DRAM电路150传输到共享存储器206。输出数据元素可以经由存储器总线200从共享存储器206发送到DRAM电路150。
路径208可以实现处理器102内部的传输路径。传输路径208通常可操作以将数据从调度器电路190a移动到共享存储器206。传输路径208也可以用于将数据从共享存储器206移动到调度器电路190a。
处理器158被示为与计算机视觉处理器102通信。处理器158可以被配置为计算机视觉处理器102的控制器。在一些实施例中,处理器158可以被配置为:向调度器190a传输指令。例如,处理器158可以经由DAG存储器202向调度器190a提供一个或多个有向无环图。调度器190a可以响应于对有向无环图进行解析来初始化和/或配置硬件引擎204a-204n。在一些实施例中,处理器158可以从调度器190a接收状态信息。例如,调度器190a可以向处理器158提供来自硬件引擎204a-204n的输出的状态信息和/或准备状态,以使处理器158能够确定要执行的一个或多个下一指令和/或要做出的决定。在一些实施例中,处理器158可以被配置为:与共享存储器206通信(例如,直接或通过调度器190a,调度器190a经由路径208从共享存储器206接收数据)。处理器158可以被配置为:从共享存储器206取回信息以做出决定。由处理器158响应于来自计算机视觉处理器102的信息而执行的指令可以根据特定实施方式的设计标准而变化。
参照图5,图5示出了被配置为对边缘设备相机的大规模生产过程执行快速RGB-IR校准验证的示例校准设备的框图。示出了校准系统250。校准系统250可以包括多个相机系统100a-100n和块(或电路)252。电路252可以实现校准设备。相机系统100a-100n可以表示在大规模生产期间开发的大量相机。例如,相机系统100a-100n可以表示正在生产的数百或数千个相机(例如,生产运行)。
校准设备252可以被配置为对相机系统100a-100n中的每个执行传感器和/或镜头校准。为了说明的目的,校准设备252被示为连接到多个相机系统100a-100n。然而,在一些实施例中,相机系统100a-100n中的每个可以由校准设备252单独校准(例如,一次一个连接)。在一些实施例中,相机100a-100n可以由校准设备252分批校准,这些批次包括少于已生产的相机系统100a-100n的总数的全部(例如,一次多个连接)。
校准设备252可以是计算设备。例如,校准设备252可以实现为智能手机、功能手机、平板电脑、平板手机、台式计算机、膝上型/笔记本电脑、上网本(例如Chromebook)、ASIC等。设备252可以实现操作系统(例如,Windows、Mac OS X、Linux、Android、Chrome OS、iOS等)。校准设备252可以包括块(或电路)254和/或块(或电路)256。电路254可以实现CPU。电路256可以实现存储器。校准设备252可以包括其他组件(未示出)。校准设备252的组件的数量、类型和/或布置和/或实现校准设备252的设备类型可以根据特定实施方式的设计标准而变化。
CPU 254可以是通用处理器电路。CPU 254可操作用于与存储器256和/或相机系统100a-100n交互以执行各种处理任务。CPU 254可以被配置为执行计算机可读指令。在一个示例中,计算机可读指令可由存储器256存储。在一些实施例中,计算机可读指令可以包括校准操作。在一些实施例中,计算机可读指令可以包括响应于校准操作生成扭曲表。在一些实施例中,计算机可读指令可以包括向/从扭曲表池存储和/或取回扭曲表。在一些实施例中,计算机可读指令可以包括将扭曲表之一应用于相机系统100a-100n中的一个或多个。通常,来自相机系统100a-100n和/或人机接口设备的输入可以由CPU 254接收和/或处理。CPU254可以被配置为接收和/或分析数据并响应于输入做出决策。在一个示例中,CPU 254可以实现32位指令集(例如,x86)。在另一示例中,CPU 254可以实现64位指令集(例如,AMD64)。在又一示例中,CPU 254可以实现ARM指令集。在又一个示例中,CPU 254可以实现RISC-V指令集。由CPU 254实现的架构和/或计算机可读指令可以根据设计标准或特定实现而变化。
在一些实施例中,CPU 254可以包括或可以访问图形处理单元(GPU)。例如,CPU254可以是组合的图形处理单元和/或通用处理单元。图形处理单元可以被实现为高效地执行图像和/或视频处理计算。
存储器256可以存储数据。存储器256可以实现各种类型的存储器,包括但不限于高速缓存、闪存、存储卡、随机存取存储器(RAM)、动态RAM(DRAM)存储器等。存储器256的类型和/或大小可以根据特定实施方式的设计标准而变化。存储器256可以由CPU 254存取。
存储器256可以包括块(或电路)260和/或块(或电路)262。块260可以包括校准指令。块262可以包括扭曲表池。存储器256可以包括出于说明目的而未示出的其他类型的存储(例如,操作系统、交换数据、用户数据等)。由存储器256存储的数据的数量、类型和/或布置可以根据特定实施方式的设计标准而变化。
校准指令260可包括可由CPU 254执行的计算机可读指令。校准指令260可以被配置为:生成可以应用于相机系统100a-100n的扭曲表。校准指令260可以被配置为:分析图像、检测扭曲、确定去扭曲以校正扭曲、分析去扭曲效果的结果、向相机系统100a-100n提供用于校准的指令等。校准指令260可以被配置为:执行可用于校正相机系统100a-100n中的每个相机系统的镜头160的变形特性的各种计算(例如,校正由镜头160的特性造成的像素数据的不准确性)。对变形特性的校正可以包括可以应用于相机系统100a-100n的扭曲表。
校准指令260可以包括块(或电路)270和/或块(或电路)272。块270可以包括用于执行完全校准技术的指令。块272可以包括用于执行快速校准技术的指令。校准指令260可以包括其他指令集。由校准指令260执行的指令的数量和/或类型可以根据特定实施方式的设计标准而变化。
扭曲表池262可以包括多个块(或电路)280a-280m。块280a-280m可以包括扭曲表(例如,配置的扭曲表)。扭曲表池262可以包括用于由校准设备252生成的多个配置的扭曲表280a-280m的存储。
完全校准技术270可以被配置为生成配置的扭曲表280a-280m。校准设备252可以至少执行一次完全校准技术270以生成配置的扭曲表280a-280m之一。例如,如果配置的扭曲表280a-280m中的单个扭曲表对于相机系统100a-100n中的每个相机系统都是准确的,则可以首先执行完全校准技术270以生成配置的扭曲表,并且然后可以执行快速校准技术272。然而,对于相机系统100a-100m中的每个相机系统来说准确的单个扭曲表可能是不太可能的。在另一示例中,如果相机系统100a-100n中的每个相机系统不能共享配置的扭曲表中的一个,则可以针对相机系统100a-100n中的每个相机系统执行完全校准技术270。然而,配置的扭曲表280a-280m中没有一个能够针对相机系统100a-100n中的一些所共享可能是不可能的。每次当前在扭曲表池262中的可用的配置的扭曲表280a-280m被确定为对于当前正在被校准的相机系统100a-100n之一不准确时,可以执行完全校准技术270。
完全校准技术270可以被配置为:针对相机系统100a-100n中的特定一个相机系统生成准确的扭曲表。可以将由完全校准技术270生成的准确扭曲表添加到扭曲表池262作为配置的扭曲表280a-280m之一。完全校准技术270可以被配置为:确定相机系统100a-100n之一的传感器180和/或镜头160的特性并且计算可以补偿传感器180和/或镜头160的特性的去扭曲表。完全校准技术270可以包括可以由相机系统100a-100n执行的一些操作(例如,在距目标的精确位置处捕获图像)以及可以由校准设备252执行的一些操作(例如,评估图像、生成扭曲表并评估扭曲表)。
通常,完全校准技术270可能是耗时和/或资源密集的过程。确定完美扭曲表可以包括重复的校准循环迭代。校准循环的每次迭代都可能很耗时。例如,完全校准技术270可以包括将相机系统100a-100n之一从特定距离精确地瞄准具有特定旋转量的点图案板。精确瞄准可以在完全校准技术270的一次迭代中执行多次,以便从精确的角度和距离捕获多个图像(例如,可以捕获九个图像)。在一个示例中,可能需要花费大约二十分钟到半小时来执行完全校准技术270。
完全校准技术270可能并不总是在一次迭代中就生成完美的扭曲表。例如,校准设备252可以评估响应于完全校准技术270而生成的扭曲表。如果校准设备252确定生成的扭曲表与实际变形不完全匹配,则校准设备252可以重复完全校准技术270(例如,可以再增加二十分钟到半小时来执行的另一次迭代)。
快速校准技术272可以被配置为:测试相机系统100a-100n上可用的配置的扭曲表280a-280m。快速校准技术272可以被配置为:确定先前确定的配置的扭曲表280a-280m之一是否提供了准确的去扭曲。快速校准技术272可以被配置为:如果配置的扭曲表280a-280m之一提供了准确的去扭曲效果,则将配置的扭曲表280a-280m之一应用于相机系统100a-100n。快速校准技术272可以包括可以由相机系统100a-100n执行的一些操作(例如,使用配置的扭曲表280a-280m之一来执行各种测试)以及可以由校准设备252执行的一些操作(例如,由相机系统100a-100n执行的对测试结果的评估)。
快速校准技术272可能无法针对扭曲表池262生成新的配置的扭曲表280a-280m。快速校准技术272可以被配置为:将已经在扭曲表池262中的现有配置的扭曲表280a-280m应用于相机系统100a-100n中的一个或多个相机系统。快速校准技术272可以被配置为:确定配置的扭曲表280a-280m之一对于可能由传感器180和/或镜头160引起的变形方面校正而引起的结果。如果配置的扭曲表280a-280m之一校正了变形(例如,提供了准确的去扭曲效果),则可以应用配置的扭曲表280a-280m之一。如果配置的扭曲表280a-280m中没有一个扭曲表校正了变形(例如,没有当前可用的扭曲表提供了准确的去扭曲效果),则可以执行完全校准技术270以生成准确的去扭曲效果。
在扭曲表池262包括配置的扭曲表280a-280m中的至少一个扭曲表之后,可以对相机系统100a-100n执行快速校准技术272。快速校准技术272可以测试可用配置的扭曲表280a-280m中的每一个以确定配置的扭曲表280a-280m中的任何一个是否提供了准确的去扭曲效果。例如,可以使用快速校准技术272迭代地测试配置的扭曲表280a-280m。可以比完全校准技术270更快地执行快速校准技术272。与完全校准技术270相比,快速校准技术272可以使用更少的人力资源。即使扭曲表池262包括许多配置的扭曲表280a-280m,但快速校准技术272也可以比完全校准技术270更快和/或资源密集度更低。每当快速校准技术272确定配置的扭曲表280a-280m之一为相机系统100a-100n之一提供了准确的去扭曲效果时,系统250可以跳过完全校准技术270的一次执行。对于相机系统100a-100n的大规模生产,每次跳过完全校准技术270时可以节省额外的时间。由于通过使用快速校准技术272可以由多于一个的相机系统100a-100n使用配置的扭曲表280a-280m中的至少一些,所以可以有比相机系统100a-100n的总数更少的存储在扭曲表池262中的配置的扭曲表280a-280m。
对于相机系统100a-100n的大规模生产期间的校准,相机系统100a-100n中的一些相机系统可以在相机系统100a-100n中的其他相机系统之前被校准。由于相机系统100a-100n在大规模生产期间被校准,因此可以执行完全校准技术270以便将更多配置的扭曲表280a-280m添加到扭曲表池262。由于配置的扭曲表280a-280m随着时间被添加到扭曲表池262,因此在大规模生产过程中较早被校准的相机系统100a-100n可能具有较少的配置的扭曲表280a-280m可用于使用快速校准技术272进行测试。由于可用于测试的配置的扭曲表280a-280m较少,如果配置的扭曲表280a-280m中没有一个被确定为合适的,则快速校准技术272可以更快地结束。随着在大规模生产过程期间更多配置的扭曲表280a-280m被添加到扭曲表池262,随后在大规模生产过程中被校准的相机系统100a-100n可以具有更多配置的扭曲表280a-280m可用于使用快速校准技术272进行测试。随着更多配置的扭曲表280a-280m可用于测试,如果确定配置的扭曲表280a-280m中没有一个是合适的(例如,可以使用更多的迭代来测试附加的配置的扭曲表),则快速校准技术272需要更长的时间。
执行快速校准技术272的时间长度可以基于扭曲表池262中配置的扭曲表280a-280m的数量而变化。在示例中,用于配置的扭曲表280a-280m之一的快速校准技术272的一次迭代可能需要大约300ms-350ms。可以针对扭曲表池262中的每个配置的扭曲表280a-280m重复用于测试配置的扭曲表280a-280m之一的300ms-350ms的时间。然而,当配置的扭曲表280a-280m之一提供了适当的去扭曲效果时,快速校准技术272可以停止(例如,不再需要测试配置的扭曲表280a-280m中的其余配置的扭曲表)。因此,当测试扭曲表池262中的第一批配置的扭曲表280a-280m之一时的准确结果可以导致快速校准技术272比扭曲表池262中的最后配置的扭曲表280a-280m之一提供准确的结果时更快地结束。
校准设备252可以将信号(例如,TESTWARP)传送到相机系统100a-100n中的每个相机系统。信号TESTWARP可以包括配置的扭曲表280a-280m之一到相机系统100a-100n的通信。可以在快速校准技术272期间将信号TESTWARP传送到相机系统100a-100n之一(例如,对于测试扭曲表280a-280m之一的每次迭代进行一次)。如果通过快速校准技术272确定去扭曲效果是准确的,则信号TESTWARP可以进一步应用扭曲表。在一些实施例中,信号TESTWARP可以提供指令,这些指令可以由相机系统100a-100n的处理器102执行以使由相机系统100a-100n执行的快速校准技术272的一部分自动化。信号TESTWARP还可以提供使用完全校准技术270生成的准确扭曲表。
信号(例如,DEWARPRES_A-DEWARPRES_N)可以由相机系统100a-100n中的相应一个传送到校准设备252。信号DEWARPRES_A-DEWARPRES_N可以包括在应用了配置的扭曲表280a-280m之一之后由相机系统100a-100n生成的结果去扭曲效果。每次在快速校准技术272期间测试配置的扭曲表280a-280m之一时,可以传送信号DEWARPRES_A-DEWARPRES_N中的相应一个(例如,对于测试扭曲表280a-280m之一的每次迭代进行一次)。快速校准技术272可以分析信号DEWARPRES_A-DEWARPRES_N中的结果以确定去扭曲效果是否准确。如果去扭曲效果是准确的(例如,经由信号TESTWARP),则校准设备252可以将经测试的扭曲表应用于相机系统100a-100n。
信号(例如,FCAL_A-FCAL_N)被示为由各个相机系统100a-100n传送到校准设备252。信号FCAL_A-FCAL_N可以包括在完全校准技术270期间传送的数据。每次执行完全校准技术270时,信号FCAL_A-FCAL_N可以从相机系统100a-100n中的相应一个传送到校准设备252。在信号FCAL_A-FCAL_N中传送的数据可以是由相机系统100a-100n生成的图像(例如,九个高分辨率图像),校准设备252可以使用这些图像来生成配置的扭曲表280a-280m。在示例中,信号FCAL_A-FCAL_N可以包括可以被完全校准技术270使用的图像数据,以便针对扭曲表池262生成经校准扭曲表280a-280m中一个新的扭曲表,并将准确的扭曲表提供给相机系统100a-100n。响应于信号FCAL_A-FCAL_N中的相应一个信号,完全校准技术270可以使用信号TESTWARP将准确的扭曲表呈现给相机系统100a-100n中的相应一个相机系统。
相机系统100a-100n被示为包括块(或电路)290、块(或电路)292、块(或电路)294、块(或电路)296和/或块(或电路)298。电路290可以包括扭曲表(例如,应用的扭曲表)。电路292可以包括相交检测模块。电路294可以包括线拟合模块。电路296可以包括距离求和模块。电路298可以包括输入模块。相机系统100a-100n可以包括其他组件(例如,关联于图1-图4描述的组件)。在示例中,应用的扭曲表290可以存储在存储器150中。在示例中,模块292-296可以实现为硬件模块190a-190n之一。在另一示例中,模块292-296可以实现为硬件资源块204a-204n。在又一个示例中,模块292-296可以实现为CNN模块190b的一部分。在一个示例中,输入模块298可以实现为人机接口设备166的一部分。模块292-298的布置和/或实现可以根据特定实施方式的设计标准而变化。
应用的扭曲表290可由相机系统100a-100n实现,以校正由镜头160和/或传感器180的物理特性引起的变形。对于相机系统100a-100n中的每个相机系统,由镜头160和/或传感器180引起的变形可以是不同的和/或独特的。然而,由镜头160和/或传感器180引起的一些变形在相机系统100a-100n中的一个或多个相机系统之间可以是相似的。相机系统100a-100n的处理器102可以使用应用的扭曲表290以补偿镜头160和/或传感器180中的物理缺陷。可以更新、修改和/或替换应用的扭曲表290。在示例中,应用的扭曲表290可以包括值矩阵,处理器102可以将该值矩阵应用于所生成的像素数据以便补偿镜头160和/或传感器180。
完全校准技术270可以被配置为生成可以提供具有完美(或接近完美)准确度的扭曲表的应用的扭曲表290。在完全校准技术270之后,校准设备252可以呈现信号TESTWARP,该信号可以提供准确的扭曲表以用作应用的扭曲表290。在快速校准技术272期间,信号TESTWARP可以迭代地提供配置的扭曲表280a-280m之一以用作应用的扭曲表290。使用配置的扭曲表280a-280m之一作为应用的扭曲表290的去扭曲效果的结果可以作为信号DEWARPRES_A-DEWARPRES_N传送到校准设备252。如果快速校准技术272确定去扭曲效果是准确的,那么配置的扭曲表280a-280m中的当前的一个可以用作应用的扭曲表290。
相交检测模块292可以被配置为:在配置的扭曲表280a-280m之一被用作应用的去扭曲表290时确定去扭曲效果的准确性。相交检测模块292可以被配置为:分析测试图案(例如棋盘图案)的图像并获取交点。由相交检测模块292执行的操作可以包括可以由相机系统100a-100n的处理器102执行的快速校准技术272的一部分。可以结合图7描述由相交检测模块292执行的相交检测的细节。
线拟合模块294可以被配置为:在配置的扭曲表280a-280m之一被用作应用的去扭曲表290时确定去扭曲效果的准确度。线拟合模块294可以被配置为:跨使用相交检测模块292获取的交点实现线拟合功能。在一个示例中,线拟合模块294可以实现普通的最小二乘技术以便计算交点的线性拟合函数。由线拟合模块294执行的操作可以包括可以由相机系统100a-100n的处理器102执行的快速校准技术272的一部分。可以关联于图8来描述由线拟合模块294执行的线拟合的细节。
距离求和模块296可以被配置为:在配置的扭曲表280a-280m之一被用作应用的去扭曲表290时确定去扭曲效果的准确性。距离求和模块296可以被配置为计算交点到使用线拟合模块294计算的线的距离的总和。距离可以计算为距线的像素的数量。计算的距离的总和可用于确定去扭曲效果的准确性。在示例中,如果在快速校准技术272期间使用的棋盘图像中的线被捕获并被处理为绝对平直,那么距离的总和可以是0像素。在示例中,信号DEWARPRES_A-DEWARPRES_N可以包括由距离求和模块296计算的距离的总和。由距离求合模块296执行的操作可以包括可以由相机系统100a-100n的处理器102执行的快速校准技术272的一部分。
输入模块298可以被配置为:在完全校准技术270期间和/或在快速校准技术272期间接收来自人员(例如,操作员、技术人员、工程师等)的输入。在示例中,输入模块298可以使人能够在相机系统100a-100n之一瞄准目标图像之后启动快速校准技术272的自动化部分。在另一示例中,每当相机系统100a-100n中的一个相机系统瞄准目标图像时,输入模块298可以使人能够开始捕获测试图像之一以用于完全校准技术270。在图示示例中,输入模块298被示为机械按钮。在一些实施例中,输入模块298可以是触摸屏输入。在一些实施例中,输入模块298可以是被配置为接收语音命令的扬声器。输入模块298接收的输入类型可以根据特定实施方式的设计标准而变化。
系统250可以在大规模生产期间校准相机系统100a-100n中的每个相机系统。为了针对扭曲表池262生成配置的扭曲表280a-280m中的第一个,可以对相机系统100a执行完全校准技术270。完全校准技术270可以为提供准确去扭曲效果的相机系统100a计算应用的扭曲表290。可以将应用的扭曲表290添加到扭曲表池262。
在扭曲表池262具有配置的扭曲表280a-280m中的至少一个之后,校准设备252可以对剩余的相机系统100b-100n执行快速校准技术272。快速校准技术272可以测试相机系统100b上当前可用的经校准扭曲表280a-280m。例如,如果在大规模生产期间在相机系统100a之后第二次校准相机系统100b,则只有配置的扭曲表280a可用于快速校准技术272。快速校准技术272可以测试经校准的扭曲表280a作为相机系统100b的应用的扭曲表290。相机系统100b可以使用模块292-296来生成去扭曲效果的结果。如果配置的扭曲表280a提供准确的去扭曲效果,则配置的扭曲表280a可以用作相机系统100b的应用的扭曲表290。如果配置的扭曲表280a没有提供准确的去扭曲效果,则可以测试配置的扭曲表280a-280m中的下一个。
当相机系统100b在相机系统100a之后第二次被校准时,可能只有配置的扭曲表280a当前在扭曲表池262中,并且可能没有其他扭曲表要测试。当配置的扭曲表280a-280m都没有提供准确的去扭曲效果时,则可以执行完全校准技术270。完全校准技术270可以计算用于相机系统100b的应用的扭曲表290,并且然后将来自相机系统100b的应用的扭曲表290添加到扭曲表池262作为配置的扭曲表280b。
校准设备252所执行的校准过程可以针对相机系统100c-100n的其余部分重复。每次执行完全校准技术270以确定用于相机系统100a-100n之一的应用的扭曲表290时,可以将经校准的扭曲表280a-280m中的一个新的经校准的扭曲表添加到扭曲表池262。每次快速校准技术272确定配置的扭曲表280a-280m之一可以为相机系统100a-100n之一提供准确的去扭曲效果时,提供准确去扭曲效果的配置的扭曲表280a-280m之一可以用作应用的扭曲表290,并且可以不执行完全校准技术270。在大规模生产期间,可以使用先前生成的配置的扭曲表280a-280m之一来校准快速校准技术272可以确定相机系统100a-100n之一的次数可以取决于由相机系统100a-100n的镜头160和/或传感器180引起的变形的相似性而改变。
参照图6,图6示出了使用校准设备执行RGB-IR传感器校准的图。示出了校准环境320。校准环境320可用于在相机系统100a-100n的大规模生产期间校准相机系统100a-100n。
校准环境320可以包括相机系统100i、校准设备252、完全校准目标322、完全校准支架324、电缆326、快速校准支架328和/或快速校准目标330。相机系统100i可以是相机系统100a-100n的代表性示例。例如,相机系统100a-100n中的每个可以在大规模生产期间在校准环境320中单独校准。在图示示例中,校准设备252可以实现为膝上型计算机。
在图示示例中,相机系统100i被示为安装在完全校准支架324上并且瞄准完全校准目标322。相机系统100i(例如,100i’)的虚线图示安装在快速校准支架328上并对准快速校准目标330。在大规模生产期间,人员可以在完全校准支架324和快速校准支架328之间移动相机系统100a-100n。安装在完全校准支架324上的相机系统100i可以表示为完全校准技术270设置的相机系统100a-100n之一。安装在快速校准支架328上的相机系统100i'可以表示为快速校准技术272设置的相机系统100a-100n中的同一相机系统。
完全校准目标322可以包括点图案板。完全校准目标322可以是特定尺寸和/或形状的。完全校准目标322可以是点图案板。在图示示例中,完全校准目标322可以是1米乘1米的点图案板。完全校准目标322可以包括点图案340a-340n。
点图案340a-340n可以包括点图案。点图案340a-340n可以精确地定位在完全校准目标322上以启用完全校准技术270。在一些实施例中,点图案340a-340n可以包括具有不同尺寸的点。在一些实施例中,点图案340a-340n可以包括具有一致尺寸和/或间距的点。点图案340a-340n可以提供参考图案以使完全校准技术270能够计算具有用于相机系统100a-100n的完美去扭曲效果的应用的扭曲表290和/或将应用的扭曲表290添加到扭曲表池262作为配置的扭曲表280a-280之一。
完全校准支架324可以为相机系统100i提供稳定和一致的支持,以便执行完全校准技术270。完全校准支架324被示出为具有距完全校准目标322的距离D和角度A处的镜头160。在示例中,距离D可以与校准目标322相距大约1.5米。
电缆326(以及用于快速校准支架328上的相机系统100i'的电缆326')可以实现相机系统100i和校准设备252之间的有线通信。在一个示例中,在完全校准技术270期间,电缆326可以将来自相机系统100i的信号FCAL_I提供给校准设备252,并且电缆326可以将来自校准设备252的信号TESTWARP提供给相机系统100i。在一个示例中,在快速校准技术272期间,电缆326可以将来自校准设备252的信号TESTWARP提供给相机系统100i,并且将信号DEWARPRES_I从相机系统100i提供给校准设备252。在针对校准环境320所示的示例中,通信可以是电缆326上的有线连接。在一些实施例中,相机系统100i和校准设备252之间的通信可以是无线的。例如,校准设备252可以实现无线通信(例如,Wi-Fi、蓝牙等),并且相机系统100i可以使用通信模块154来传送图像、扭曲表、结果和/或其他数据。用于相机系统100i和校准设备252之间的通信的协议可以根据特定实施方式的设计标准而变化。
对于完全校准技术270,可以朝向校准目标322捕获至少9个图像。捕获的每个图像可以处于不同的取向和/或位置。例如,对于每个图像,可以改变角度A,可以旋转镜头160的取向和/或可以改变相机系统100i的位置。相机设备100i的旋转和/或移动的精度对于每次捕获可能是必不可少的。由于对相机系统100i相对于完全校准目标322的放置和/或取向(例如,距离D和角度A)的严格要求,人员可以手动旋转和重新定向相机系统100i并捕获校准图像中的下一个(例如,当相机系统100i与完全校准目标322正确对准时,通过使用输入模块298)。
在捕获完全校准目标322的校准图像之后,可以将图像(例如,包括点图案340a-340n)传送到校准设备252。CPU 254可以执行完全校准技术270以便基于校准图像输入(例如,从信号FCAL_I)计算新的扭曲表。完全校准技术270可以生成输出扭曲表。可以将输出扭曲表传送到相机系统100i(例如,形成信号TESTWARP)以用作应用的扭曲表290。完全校准技术270可以使用输出扭曲表对结果执行评估。如果评估结果被确定为不够好(例如,去扭曲结果的准确性不足),则可能必须重新捕获校准图像,并且可能需要重新计算经更新的扭曲表。
完全校准技术270可能需要捕获校准图像的多次迭代,以便为相机系统100i生成准确的扭曲表。准确的扭曲表可以用作相机系统100i的应用的扭曲表290。准确的扭曲表可以存储在扭曲表池262中。
对于完全校准技术270,校准设备252可以将用于点图案340a-340n的预定义的已知值存储在存储器256中。在示例中,可以预先知道(并存储)完全校准目标322的点的总数(例如,行和列)以及点图案340a-340n中的点之间的距离。预定义的已知值可以是校准结果的目标值(例如,黄金标准或完美值)。
对于在完全校准技术270期间由相机系统100i捕获的九个高分辨率点图案图像,校准设备252可以计算来自捕获的点图案图像的点与参考(例如,预定义的已知值)之间的变形差异。校准设备252可以使用捕获的图像中的点图案与参考的比较来量化镜头160的变形。响应于镜头160的变形的量化,校准设备252可以生成准确的扭曲表。
校准设备252可以基于两个方面来评估结果(例如,生成的准确扭曲表)。校准设备252可以检查来自九个高分辨率图像的点图案区域的并集是否覆盖了镜头160的整个视场(例如,以确保评估镜头160的整个区域)。校准设备252可以输出拟合误差结果。可以将拟合误差结果与预定阈值进行比较。在示例中,预定阈值可以低于0.2。拟合误差结果可以对来自完全校准目标322的捕获图像的真实变形与来自拟合函数的计算变形之间的误差水平进行量化。如果拟合误差接近于零像素,则计算出的拟合函数可以准确地再现镜头160的真实变形。如果误差水平高于预定阈值,则可以重复完全校准技术270。
在快速校准支架328上的相机系统100i'的镜头160'和快速校准目标330之间示出了距离(例如,FD)和角度(例如,FA)。距离FD可以表示固定距离。角度FA可以表示固定角度。快速校准支架328可以相对于快速校准目标330放置在固定距离FD处和固定朝向(例如,固定角度FA)处。对于快速校准技术272,可以不移动相机系统100i'的位置。与完全校准技术270相比,不移动快速校准支架328的位置可以为快速校准技术272提供一些时间节省(例如,可以多次移动完全校准支架324以捕获九个高分辨率图像)。
可以基于快速校准目标330的尺寸来确定固定距离FD。快速校准目标330被示为棋盘图像。快速校准支架328可以定位成确保快速校准目标330的棋盘几乎占据镜头160'的整个视场。在示例中,相机系统100i'可以放置在距离具有30cm x 20cm棋盘图案的快速校准目标330大约0.4m处。对于使用快速校准技术272的大规模生产,快速校准支架328可以在开始时由人员仅调整一次(例如,初始设置)。对于大规模生产过程的剩余部分,人员可以将相机系统100a-100n中的每个相机系统安装到快速校准支架328上(例如,而不移动快速校准支架328)以执行快速校准技术272。由于在相机系统100a-100n上执行的快速校准技术272的一些部分(例如,相交检测、线拟合、距离求和等)可以是自动化过程(例如,通过按下输入模块298来初始化),因此在安装了相机系统100i之后,对于快速校准技术272而言,可以不需要额外的人机交互。
在图示示例中,用于完全校准目标322的图像(例如,点图案340a-340n)可以不同于用于快速校准目标330的图像(例如,棋盘图像)。在一些实施例中,相同的图像可以用于完全校准目标322和快速校准目标330。用于完全校准目标322和快速校准目标330的图像的选择可以取决于由校准设备252实现的各种扭曲表生成工具。例如,一些库(例如,OpenCV)可以启用对完全校准目标322使用棋盘图像而不是点图案340a-340n。通常,棋盘图像(或点图案340a-340n)的尺寸、维度和/或距相机系统100i的距离可以根据特定实施方式的设计标准而变化。通常,针对完全校准技术270和快速校准技术272捕获的图像可以是RGB图像。
在大规模生产过程期间,如果快速校准技术272无法在扭曲表池262中找到准确的扭曲表,则执行相机系统100a-100n的校准的人员可以使用快速校准支架328,并且然后使用完全校准支架324。由于快速校准技术272可以使用恒定的角度和距离(例如,固定角度FA和固定距离FD),因此快速校准支架328可以与快速校准目标330正确地对准,以实现快速安装用于快速校准技术272的相机系统100a-100n,而无需重新调整快速校准支架328。完全校准技术270需要有规律地移动角度A和/或距离D(例如,对于九幅图像中的每幅图像操作一次)。完全校准支架324可以是单独的支架,以防止在执行完全校准技术270之后重新调整针对快速校准目标330的固定角度FA和固定距离FD(例如,如果只使用一个支架,则该人员将忙于恢复和调整同一个支架)。
为了执行大规模生产,人员可以将相机系统100i安装到快速校准支架328以执行快速校准技术272。如果来自扭曲表池262的配置的扭曲表280a-280m之一提供了准确的结果,则相机系统100a-100n中的下一个相机系统可以安装到快速校准支架328以用于快速校准技术272。如果扭曲表池262中的配置的扭曲表280a-280m都没有提供准确的结果,则可以执行完全校准技术270。用户可以从快速校准支架328上卸下相机系统100i并将相机系统100i移动到完全校准支架324以启动完全校准技术270(例如,如完全校准技术270指示,完全校准支架324可以针对九个不同的角度至少调整九次)。
参照图7,图7示出了基于从棋盘图案获取交点来评估去扭曲效果的图。示出了快速校准评估360的示例部分。快速校准评估360的示例部分可以对应于由相交检测模块292实现的棋盘相交检测。例如,快速校准评估360的示例部分可以包括可以由相机系统100a-100n的处理器102执行的快速校准技术272的一部分。
快速校准评估360的该部分可以包括由相机系统100i捕获的棋盘图像370和获取的交点372。棋盘图像370可以包括被布置为关联于图6示出的快速校准目标330的视频帧的像素数据。对于快速校准技术272,快速校准目标330可以包括棋盘图案板。在配置的扭曲表280a-280m之一被应用于相机系统100i之后,相机系统100i可以在固定距离FD和固定角度FA处捕获快速校准目标330的校准图像。棋盘图像370可以包括捕获的校准图像之一。例如,捕获设备104可以生成像素数据(例如,信号VIDEO),并且处理器102可以对布置为视频帧的像素数据进行处理以生成棋盘图像370。
棋盘图像370被示为具有轻微的扭曲效果。在图示示例中,扭曲效果可以是凸出效果(例如,棋盘图像370的中心看起来好像有东西从后面向外推动,从而产生看起来中心比棋盘图像370的外边缘更靠近镜头160的效果)。扭曲效果可以说明可能由镜头160和/或传感器180的物理特性和/或应用的扭曲表290的效果引起的变形。
在图示例中,棋盘图像370的形状通常可以是正方形。可以选择固定距离FD和固定角度FA,使得在棋盘图像370中捕获的快速校准目标330可以几乎占据镜头160和/或传感器180的整个视场。理想地,棋盘图案370的交点可以靠近视场的边界。视场的边界可以在捕获的图像中具有最大的变形。棋盘图像370的尺寸、维度和/或距离可以基于镜头160的视场而变化。棋盘图像370的维度和/或纵横比可以根据特定实施方式的设计标准而变化。
棋盘图像370可以包括交替的深色方块380aa-380nn和浅色方块382aa-382nn。交替的深色方块380aa-380nn和浅色方块382aa-382nn可以形成棋盘图案中的网格。交替的深色方块380aa-380nn和浅色方块382aa-382nn可以提供快速校准目标330上均匀间隔的位置之间的差异的高对比度参考(例如,视觉转换)。交替的深色方块380aa-380nn和浅色方块382aa-382nn的数量和/或尺寸可以根据特定实施方式的设计标准而变化。
交点384aa-384nn显示在棋盘图像370上。交点384aa-384nn可以对应于交替的深色方块380aa-380nn和浅色方块382aa-382nn中的至少两个方块的角相交的位置。在图示示例中,交点384aa可以在棋盘图像370的边缘处相交。然而,交点384aa-384nn可以位于棋盘图像370的整个中间,在此处交替的深色方块380aa-380nn和浅色方块382aa-382nn相交。
棋盘图像370可以由相机系统100i的处理器102分析。相交检测单元292可以被配置为获取交点384aa-384nn。获取的交点372可以由相交检测模块292响应于棋盘图像370生成。
获取的交点372可以包括检测到的交点390aa-390nn。检测到的交点390aa-390nn可以对应于棋盘图像370的交点384aa-384nn。在示例中,检测到的交点390aa可以对应于交点384aa。通过检测棋盘图像370中的高对比度差异和/或转换,相交检测模块292可以从棋盘图像370中提取获取的交点372。获取的交点372可以被呈现给线拟合模块294。
参考图8,示出了说明在去扭曲操作之后基于计算交点的线平直度来评估去扭曲效果的图。示出了快速校准评估420的示例部分。快速校准评估420的该部分可以对应于由线拟合模块294实现的交点平直度计算和/或由距离求和模块296实现的距离总和计算。
快速校准评估420可以包括一行交点390aa-390an、一行交点390na-390nn、一列交点390aa-390na、一列交点390an-390nn、线422、线424、线426和线428。在图示示例中,一行交点390aa-390an、一行交点390na-390nn、一列交点390aa-390na以及一列交点390an-390nn可以各自包括由相交检测模块292提取的交点390aa-390nn中的六个。尽管出于说明的目的,示出了针对交点390aa-390nn的行和列中的每一个提取了六个交点390aa-390nn,但是用于快速校准评估420的交点390aa-390nn的行和列可以包括任意数量的交点(例如,取决于捕获的棋盘图像370中的交点384aa-384nn的数量)。
线422-428可以分别是由线拟合模块294计算的拟合线(例如,直线)。拟合线422可以被计算为直线以紧密地穿过交点390aa-390an。线拟合模块294可以被配置为确定跨交点390aa-390an的线性拟合函数。在一个示例中,线拟合模块294可以被配置为执行最小二乘逼近技术以确定拟合线422穿过交点390aa-390an的线性拟合函数。可以计算拟合线422以穿过交点390aa-390an,其中,拟合线422被计算为尽可能靠近交点390aa-390an中的每一个。
类似地,线拟合模块294可以被配置为确定拟合线424-428。可以计算拟合线424以紧密地穿过交点390aa-390na。可以计算拟合线426以紧密地穿过交点390na-390nn。可以计算拟合线428以紧密地穿过交点390an-390nn。例如,快速校准评估420可以包括:线拟合模块294响应于由相交检测模块292提取的交点390aa-390nn来确定四个拟合线424-428。
通常,为了测量镜头160和/或传感器180的变形效果,所捕获的图像帧中的像素数据离镜头160的中心越远,可能存在的变形量越大。为了测试镜头160的变形,快速校准技术272可以对在靠近镜头160的视场的边界捕获的棋盘图像370中检测到的变形量执行分析。镜头160'可以设置在固定距离FD和固定角度FA,以便相机系统100i捕获快速校准目标330,使得快速校准目标330几乎填满由镜头160'捕获的整个视场。随着快速校准目标330填充镜头160'的整个视场,捕获的棋盘图像370可以用快速校准目标330的像素数据填充整个视频帧(例如,在捕获的视频帧的边缘上没有或只有少量的“空白”)。在快速校准技术272期间执行的快速校准评估420可以执行线拟合以测试四个最外侧边缘(例如,最顶部边缘、最左侧边缘、最底部边缘和最右侧边缘)。因此,线422可以是包括交点390aa-390an的顶部行的最顶部缘线,线424可以是包括交点390aa-390na的左列的最左边缘线,线426可以是包括交点390na-390nn的底部行的最底部边缘线,而线428可以是包括交点390an-390nn的右侧列的最右侧边缘线。
在图示示例中,拟合线422-428显示为穿过从棋盘图像370获取的交点390aa-390nn的最外边缘。例如,使用针对交点390aa-390nn的最外边缘的拟合线422-428可以通过测量测量镜头160中可能导致最大变形量的部分的变形来提供对变形的最准确评估。在一些实施例中,可以针对棋盘图像370的一个边缘上的交点390aa-390nn的一行(或列)计算单个拟合线。在一些实施例中,可以针对交点390aa-390nn的多行(或多列)计算多于四个的拟合线。在一些实施例中,可以针对贯穿交点390aa-390nn中间的交点390aa-390nn的各个行(或列)计算拟合线422-428。计算的拟合线的数量和/或用于计算拟合线的交点390aa-390nn的位置可以根据特定实施方式的设计标准而变化。
交点390aa被示为在拟合线422下方并且不接触拟合线422。交点390ab被示为在拟合线422上方并且接触拟合线422。交点390ac被示为在拟合线422上方并且不接触拟合线422。交点390ac可以具有距拟合线422的最大绝对距离。交点390ad被示为在拟合线422上方并且不接触拟合线422。交点390ae被示为在拟合线422上方并且接触拟合线422。交点390an被示为在拟合线422下方并且不接触拟合线422。拟合线422可以用交点390aa-390an距拟合线422的不同距离和/或方向来计算。然而,拟合线422可被确定为具有最佳拟合(例如,绝对距离的最小总和)。通过交点390aa-390an的拟合线422的路径可以根据由镜头160和/或传感器180对每个单独的相机系统100a-100n引起的变形的特性以及在快速校准272期间应用的配置的扭曲表280a-280m的特性而变化。
在线拟合模块294计算出拟合线422之后,距离求和模块296可以计算交点390aa-390an中的每个交点与拟合线422的绝对距离。距离PD_D被示为代表性示例。距离PD_D可以说明交点390ad与拟合线422的绝对距离。距离PD_D可以在棋盘图像370的多个像素中测量。距离PD_D可以是正值(例如,绝对值),而不管交点390ad是在拟合线422上方(如图所示)还是在拟合线422下方。类似地,对于针对交点390aa-390na的垂直布置计算的拟合线424(或拟合线428),无论该交点是在拟合线424的左侧或交点在拟合线424的右侧,测量的距离都可以是正值。
距离求和模块296可以被配置为计算交点390aa-390an中的每个交点与拟合线422的绝对距离。在图示示例中,交点390aa可以是中等值(例如,不接触拟合线422),交点390ab可以是小值(例如,接触拟合线422但不直接以拟合线422为中心),交点390ac可以是大值(例如,拟合线422之间的大空间),交点390ad可以是大值(例如,拟合线422之间的大空间),交点390ae可以是小值(例如,接触拟合线422),并且交点390an可以是大值(例如,拟合线422之间的大空间)。如果任何交点390aa-390an直接以拟合线422为中心,则测量的绝对值可以为零。如果棋盘图像370中的交点390aa-390an是绝对平直的,则距离的总和可以是零像素。
距离求和模块296可以计算拟合线422-428中的每条拟合线的绝对距离的总和。例如,距离求和模块296可以计算交点390aa-390an的最顶部行与最顶部边缘线422的绝对距离的总和、交点390aa-390na的最左列与最左边缘线424的绝对距离的总和、交点390na-390nn的最底部行与最底部边缘线426的绝对距离的总和,以及交点390an-390nn的最右列的绝对距离的总和。每个绝对距离可用于确定快速校准技术272的去扭曲效果的结果。
由距离求和模块296计算的绝对距离的总和可以是对配置的扭曲表280a-280m之一的评估的去扭曲效果结果。绝对距离的总和可以作为信号DEWARPRES_I呈现给校准设备252。快速校准技术272可以确定使用配置的扭曲表280a-280m中的经测试的一个扭曲表的去扭曲效果结果是否提供了足够准确的结果(例如,基于与预定阈值的比较)。如果去扭曲效果结果足够准确,则配置的扭曲表280a-280m中的经测试的一个扭曲表可以用作相机系统100i的应用扭曲表290,可以跳过完全校准技术270并且校准设备252可以校准相机系统100a-100n中的下一个相机系统。如果去扭曲效果结果不够准确,则快速校准技术272可以选择配置的扭曲表280a-280m中的另一个扭曲表来进行测试,或者如果扭曲表池262中没有更多的配置的扭曲表280a-280m要测试,则可以执行完全校准技术270。产生足够准确结果的总和值可以根据特定实施方式的设计标准而变化。
参考图9,示出了方法(或过程)550。方法550可以针对大规模生产过程执行快速RGB-IR校准验证。方法550一般包括步骤(或状态)552、步骤(或状态)554、步骤(或状态)556、决策步骤(或状态)558、步骤(或状态)560、步骤(或状态)562、步骤(或状态)564、步骤(或状态)566、决策步骤(或状态)568、步骤(或状态)570、决策步骤(或状态)572、步骤(或状态)574、步骤(或状态)576以及步骤(或状态)578。
步骤552可以开始方法550。在步骤554中,系统250可以对相机系统100a-100n中的第一相机系统执行第一传感器校准。在示例中,扭曲表池262可以是空的并且技术人员可以将相机系统100a连接到校准设备252。校准设备252可以执行完全校准技术270以确定相机系统100a的应用的扭曲表290。接下来,在步骤556中,校准设备252可以将使用完全校准技术270确定的扭曲表作为配置的扭曲表280a-280m之一存储在扭曲表池262中。接下来,方法550可以移动到决策步骤558。
在决策步骤558中,CPU 254可以确定是否有更多的相机系统100b-100n需要校准。例如,可以在大规模生产过程期间制造一批相机系统100a-100n。如果有更多的捕获设备100b-100n要校准,则方法550可以移动到步骤560。在步骤560中,校准设备252可以将配置的扭曲表280a-280m中的下一个扭曲表应用于使用快速校准技术272校准的相机系统100b-100n之一。例如,可以使用信号TESTWARP来传送配置的扭曲表280a-280m。接下来,在步骤562中,测试图像可以通过使用配置的扭曲表280a-280m中所选择的一个扭曲表作为应用的扭曲表290来被校准的相机系统100b-100n之一捕获。在示例中,测试图像可以是从快速校准目标330捕获的棋盘图像370。接下来,方法550可以移动到步骤564。
在步骤564中,经校准的相机系统100b-100n之一可以使用应用的扭曲表290来计算棋盘图像370的去扭曲效果。例如,相机系统100b-100n之一的处理器102可以确定交点390aa-390nn、确定拟合线422-428和/或计算距离的总和,如关联于图7-图8所示。计算出的去扭曲效果可以作为信号DEWARPRES_B-DEWARPRES_N之一呈现给校准设备252。接下来,在步骤566中,CPU 254可以将去扭曲效果与预定阈值进行比较。接下来,方法550可以移动到决策步骤568。
在决策步骤568中,CPU 254可以确定去扭曲效果是否超过预定阈值。预定阈值可以是用于确定去扭曲效果是否提供足够准确度的数值。在一个示例中,预定阈值可以是可由技术人员调整的可配置值。例如,可以基于相机系统100a-100n的消费者用例来修改预定阈值。例如,与消费级产品相比,高安全性用例场景可以针对准确性设置更高的阈值。如果去扭曲效果确实超过了预定阈值,则方法550可以移动到步骤570。在步骤570中,快速校准技术272可以使用配置的扭曲表280a-280m中所选择的一个扭曲表作为应用的扭曲表290,并且结束对正在被校准的相机系统100b-100n之一的校准。接下来,方法550可以返回到决策步骤558。例如,如果配置的扭曲表280a-280m之一提供了准确的去扭曲效果,则快速校准技术272可以结束。在决策步骤568中,如果去扭曲效果没有超过预定阈值,则方法550可以移动到决策步骤572。
在决策步骤572中,CPU 254可以确定扭曲表池262中是否有更多配置的扭曲表280a-280m。例如,随着在更多相机系统100a-100n上执行完全校准技术270以确定应用的扭曲表290,更多的配置的扭曲表280a-280m可以被添加到扭曲表池262以在快速校准技术272期间使用。如果扭曲表池262中有更多配置的扭曲表280a-280m,则方法550可以返回到步骤560。例如,快速校准技术272可以通过测试配置的扭曲表280a-280m中的下一个扭曲表来继续。如果扭曲表池262中没有更多配置的扭曲表280a-280m,则方法550可以移动到步骤574。例如,快速校准技术272可以在扭曲表池262中的所有配置的扭曲表280a-280m已经被测试并且配置的扭曲表280a-280m中没有任一个提供准确的去扭曲效果之后结束。
在步骤574中,CPU 254可以针对正在被校准的相机系统100b-100n之一执行完全校准技术270。举例来说,捕获设备100b-100n可捕获九幅影像,并经由信号FCAL_B-FCAL_N将捕获的影像呈现给校准设备252。完全校准技术270可以针对正在被校准的相机系统100b-100n之一生成应用的扭曲表290(例如,经由信号TESTWARP)。接下来,在步骤576中,CPU 254可以添加针对应用的扭曲表290生成的新扭曲表作为配置的扭曲表280a-280m的新条目。例如,当执行完全校准技术270时,扭曲表池262的总大小可以增加一。接下来,方法550可以返回到决策步骤558。
在决策步骤558中,如果所有的相机系统100a-100n都已经被校准,则方法550可以移动到步骤578。步骤578可以结束方法550。
参考图10,示出了方法(或过程)600。方法600可以使用完全校准技术将配置的扭曲表添加到扭曲表池。方法600一般包括步骤(或状态)602、步骤(或状态)604、步骤(或状态)606、决策步骤(或状态)608、步骤(或状态)610、步骤(或状态)612、决策步骤(或状态)614、步骤(或状态)616、步骤(或状态)618、决策步骤(或状态)620、步骤(或状态)622以及步骤(或状态)624。
步骤602可以开始方法600。在步骤604中,用户可以将相机系统100i安装到完全校准支架324以用于完全校准技术270。将相机系统100i安装到完全校准支架324可能需要大约1分钟来执行。接下来,在步骤606中,用户可以调整完全校准支架324处于距完全校准目标322的下一个特定角度A和距离D处。每次执行调整(例如,九个全分辨率图像的九次)可能需要大约1分钟。接下来,方法600可以移动到决策步骤608。
在决策步骤608中,输入模块298可以确定是否已经接收到输入以继续完全校准技术270。例如,完全校准技术270可以在用户调整每次图像捕获之间的角度A和距离D时暂停。如果没有检测到输入,则方法600可以移动到步骤610。在步骤610中,处理器102可以等待来自输入模块298的输入。接下来,方法600可以返回到决策步骤608。在示例中,用户按下输入模块298的按钮可能需要大约30秒(并且可能需要重复九次,针对每个捕获的图像一次)。在决策步骤608中,如果已经检测到输入,则方法600可以移动到步骤612。
在步骤612中,处理器102可捕获完全校准目标322的点图案图像。捕获的图像可以是4K分辨率(例如,3840x2160,而文件大小约为12MB)。捕获图像可能需要大约66毫秒(并且可能针对捕获的九个图像中的每个图像执行一次)。接下来,方法600可以移动到决策步骤614。
在决策步骤614中,用户可以确定是否已捕获用于完全校准技术270的所有九个图像。如果不是,则方法600可以返回到步骤606(例如,用户可以重新调整完全校准支架324的位置和角度并捕获下一个图像)。如果已捕获所有九个点图案图像,则方法600可移至步骤616。在步骤616中,通信模块154可以将全分辨率点图案图像上传到校准设备252(例如,传送信号FCAL_A-FCAL_N之一)。在示例中,每个图像可能需要大约一秒来通过电缆326传输到校准设备252(例如,总共九秒的传输)。接下来,在步骤618中,校准设备252可以生成新的扭曲表。在一个示例中,(例如,取决于CPU 254和/或校准设备252的其他组件的能力)计算新的扭曲表可能需要大约五分钟。接下来,方法600可以移动到决策步骤620。
在决策步骤620中,CPU 254可以确定是否需要重新生成扭曲表。如果确实需要重新生成扭曲表,则方法600可以返回到步骤606。如果不需要重新生成扭曲表,则方法600可以移动到步骤622。在步骤622中,校准设备252可以将新的扭曲表添加到扭曲表池262作为配置的扭曲表280a-280m之一。校准设备252可以使用信号TESTWARP将新配置的扭曲表呈现给相机系统100a-100n之一。接下来,方法600可以移动到步骤624。步骤624可以结束方法600。在示例中,可能需要大约21分钟来执行完全校准技术270。
参考图11,示出了方法(或过程)650。方法650可以执行快速校准技术。方法650一般包括步骤(或状态)652、步骤(或状态)654、步骤(或状态)656、步骤(或状态)658、步骤(或状态)660、步骤(或状态)662、步骤(或状态)664、步骤(或状态)666、决策步骤(或状态)668、步骤(或状态)670、决策步骤(或状态)672以及步骤(或状态)674。
步骤652可以开始方法650。在步骤654中,用户可以将相机系统100i安装到快速校准支架328以用于快速校准技术272。将相机系统100i安装到快速校准支架328可能需要大约1分钟来执行。由于固定角度FA和固定距离FD只需确定一次,并且无需再次移动快速校准支架328,因此用户可以无需调整快速校准支架328的位置。接下来,在步骤656中,相机系统100i可以从校准设备252接收配置的扭曲表280a-280m中的下一个扭曲表(例如,经由信号TESTWARP)。在示例中,配置的扭曲表280a-280m中的一个扭曲表的大小可以是大约51kB,并且需要大约1ms来经由电缆326传输。在步骤658中,处理器102可以捕获棋盘图像370。在一个示例中,可能需要大约66ms来捕获棋盘图像370。接下来,方法650可以移动到步骤660。
在步骤660中,相交检测模块292可以分析棋盘图像370并获取交点390aa-390nn。接下来,在步骤662中,线拟合模块294可以确定交点390aa-390nn的线拟合。例如,线拟合模块294可以计算最顶部边缘线422、最左边缘线424、最底部边缘线426和最右边缘线428。在步骤664中,距离求和模块296可以计算来自每条线422-428的距离总和。接下来,在步骤666中,相机系统100i可以经由信号DEWARPRES_A-DEWARPRES_N之一将结果传送给校准设备252以进行评估。在示例中,用于快速校准技术272的相交检测、线拟合、距离求和和/或去扭曲效果的结果的评估可能需要大约240ms。接下来,方法650可以移动到决策步骤668。
在决策步骤668中,校准设备252可确定经测试的扭曲表280a-280m之一是否适用于相机系统100i。如果经测试的扭曲表是合适的,则方法650可以移动到步骤670。在步骤670中,已被确定为合适的配置的扭曲表280a-280m之一可用作应用的扭曲表290。接下来,方法650可以移动到步骤674。在决策步骤668中,如果测试的扭曲表不合适,则方法650可以移动到决策步骤672。
在决策步骤672中,校准设备252可以确定在扭曲表池262中是否还有任何更多的配置的扭曲表280a-280m尚未被测试。如果扭曲表池262中有更多的配置的扭曲表280a-280m尚未被测试,则方法650可以返回到步骤656并且可以测试配置的扭曲表280a-280m中的下一个扭曲表。如果没有更多配置的扭曲表280a-280m要测试(例如,所有的扭曲表先前都已经被测试过),那么方法650可以移动到步骤674(例如,可以执行完全校准技术270)。步骤674可以结束方法650。如果执行了测试配置的扭曲表280a-280m的一百次迭代,则可能需要大约1.5分钟来执行快速校准技术272(例如,安装一次需要一分钟,并且每次迭代需要额外的1ms+66ms+240ms,乘以执行的迭代次数)。通常,取决于运气以及存储在扭曲表池262中的配置的扭曲表280a-280m的数量(例如,可以存储大约一百个),在找到合适的匹配之前,可能测试了配置的扭曲表280a-280m中的大约十个扭曲表。
参考图12,示出了方法(或过程)700。方法700可以使用于捕获快速校准目标的最外边缘的快速校准技术自动化。方法700一般包括步骤(或状态)702、步骤(或状态)704、决策步骤(或状态)706、步骤(或状态)708、步骤(或状态)710、步骤(或状态)712、步骤(或状态)714、步骤(或状态)716、步骤(或状态)718以及步骤(或状态)720。
步骤702可以开始方法700。在步骤704中,用户可以将快速校准支架328设置在距快速校准目标330的固定距离FD和固定角度FA处。可以选择固定距离FD和固定角度FA,使得快速校准目标330的棋盘图案占据镜头160的整个视场。在快速校准支架328已经被设置在固定距离FD和固定角度FA处之后,可以使快速校准技术272自动化。接下来,方法700可以移动到决策步骤706。
在决策步骤706中,输入模块298可以确定是否已经发起了快速校准自动化。在一个示例中,快速校准自动化可以包括存储在存储器150中的计算机可读指令,该计算机可读指令可以响应于输入模块298接收到的输入而被执行。在另一示例中,快速校准自动化可以包括从校准设备252与配置的扭曲表280a-280m之一一起在信号TESTWARP中传送的计算机可读指令(例如,可以响应于接收到配置的扭曲表280a-280m中的新的一个扭曲表来执行快速校准自动化)。如果尚未发起快速校准自动化,则方法700可移至步骤708。在步骤708中,处理器102可以等待来自输入模块298的输入。接下来,方法700可以返回到决策步骤706。在决策步骤706中,如果已经发起了快速校准自动,则方法700可以移动到步骤710。
在步骤710中,处理器102可以捕获棋盘图像370。接下来,在步骤712中,相交检测模块292可以检测在棋盘图像370的四个最外边缘处的交点(例如,交点390aa-390an的最顶行、交点390aa-390na的最左列、交点390na-390nn的最底行,以及交点390an-390nn的最右列)。在步骤712中,线拟合模块294可以确定四个最外边缘(例如,最顶部边缘线422、最左边缘线424、最底部边缘线426和最右边缘线428)的线拟合。接下来,在步骤716中,距离求和模块296可以计算交点390aa-390nn中的在最外边缘处与相应的线422-428的绝对距离,以像素为单位。接下来,处理器102可以将结果(例如,绝对距离的总和)传送到校准设备252。接下来,方法700可以移动到步骤720。在步骤720中,可以结束快速校准自动化迭代。通常,步骤710-720可以是快速校准技术272的自动化部分,其可以在大规模生产过程期间由处理器102在捕获设备100a-100n中的每个捕获设备上本地执行。接下来,方法700可以移动到步骤708(例如,可以使用快速校准技术272来校准相机系统100a-100n中的下一个相机系统)。
可以实现由图1-图12的图执行的功能可以使用常规通用处理器、数字计算机、微处理器、微控制器、RISC(精简指令集计算机)处理器、CISC(复杂指令集计算机)处理器、SIMD(单指令多数据)处理器、信号处理器、中央处理单元(CPU)、算术逻辑单元(ALU)、视频数字信号处理器(VDSP)和/或类似的运算机器中的一项或多项来实现,根据说明书的教导进行编程,如对于相关领域技术人员来说将显而易见的。适当的软件、固件、编码、例程、指令、操作码、微码和/或程序模块可以由熟练的程序员基于本公开内容的教导容易地准备,这对于相关领域的技术人员来说也是显而易见的。软件通常由机器实现的一个或多个处理器从一种介质或几种介质执行。
本发明还可以通过准备ASIC(专用集成电路)、平台ASIC、FPGA(现场可编程门阵列)、PLD(可编程逻辑器件)、CPLD(复杂可编程逻辑器件)、门海、RFIC(射频集成电路)、ASSP(专用标准产品)、一个或多个单片集成电路、布置为倒装芯片模块和/或多芯片模块的一个或多个芯片或裸片来实现,或者通过对一个适当的传统元件电路网络进行互连来实现,如本文所描述的,其修改对于本领域技术人员来说将是显而易见的。
因此,本发明还可以包括一种计算机产品,其可以是存储介质或介质和/或传输介质或介质,包括可用于对机器进行编程以执行根据本发明的一个或多个过程或方法的指令。机器执行包含在计算机产品中的指令以及周围电路的操作,可以将输入数据转换为存储介质上的一个或多个文件和/或代表物理对象或物质的一个或多个输出信号,例如音频和/或视觉描述。存储介质可以包括但不限于任何类型的盘,包括软盘、硬盘、磁盘、光盘、CD-ROM、DVD和磁光盘以及诸如ROM(只读存储器)、RAM(随机存取存储器)、EPROM(可擦除可编程ROM)、EEPROM(电可擦除可编程ROM)、UVPROM(紫外线可擦除可编程ROM)、闪存、磁卡、光卡等电路和/或适用于存储电子指令的任何类型的介质。
本发明的元件可以形成一个或多个设备、单元、组件、系统、机器和/或装置的部分或全部。这些设备可能包括但不限于服务器、工作站、存储阵列控制器、存储系统、个人计算机、膝上型计算机、笔记本计算机、掌上计算机、云服务器、个人数字助理、便携式电子设备、电池供电设备、机顶盒、编码器、解码器、转码器、压缩器、解压缩器、预处理器、后处理器、发射机、接收机、收发机、密码电路、蜂窝电话、数码相机、定位和/或导航系统、医疗设备、抬头显示器、无线设备、音频记录、音频存储和/或音频播放设备、视频记录、视频存储和/或视频播放设备、游戏平台、外围设备和/或多芯片模块。相关领域的技术人员将理解,本发明的元件可以在其他类型的设备中实现以满足特定应用的标准。
术语“可以”和“一般”在本文中与“是(都是)”和动词一起使用时旨在传达以下意图:描述是示例性的并且被认为足够广泛以涵盖本公开内容中呈现的具体示例以及可以基于本公开内容得出的替代示例这二者。本文中使用的术语“可以”和“一般”不应被解释为必然暗示省略相应元素的可取性或可能性。
各种组件、模块和/或电路的标记“a”-“n”,当在本文中使用时,公开了单个组件、模块和/或电路或多个这样的组件、模块和/或电路,其中,“n”标记用于意指任何特定的整数。每个具有标记为“a”-“n”的实例(或事件)的不同组件、模块和/或电路可指示不同组件、模块和/或电路可以具有匹配数量的实例或不同数量的实例。指定为“a”的实例可以表示多个实例中的第一个,并且实例“n”可以指代多个实例中的最后一个,而不暗示特定数量的实例。
虽然已经参考本发明的实施例具体地示出和描述了本发明,但是本领域技术人员将理解,可以在不脱离本发明的范围的情况下对形式和细节进行各种改变。

Claims (20)

1.一种系统,包括:
多个捕获设备,所述多个捕获设备中的每个捕获设备包括(i)镜头,(ii)传感器以及(iii)扭曲表;以及
校准设备,其被配置为:(i)将多个配置的扭曲表存储在扭曲表池中,(ii)针对所述多个捕获设备中的至少一个捕获设备执行完全校准技术以生成所述配置的扭曲表,(iii)发起针对所述多个捕获设备的快速校准,以及(iv)将所述配置的扭曲表中的一个配置的扭曲表作为扭曲表应用于所述多个捕获设备中的每个捕获设备,其中,所述校准设备通过以下操作将所述配置的扭曲表中的一个配置的扭曲表应用于所述多个捕获设备中的每个捕获设备:
(a)响应于所述快速校准从所述扭曲表池中选择所述配置的扭曲表中的一个配置的扭曲表,以及
(b)如果所述快速校准失败,则(i)响应于所述完全校准技术针对所述扭曲表池生成新的配置的扭曲表以及(ii)选择所述新的配置的扭曲表。
2.根据权利要求1所述的系统,其中,所述快速校准包括:(a)将所述配置的扭曲表中的一个配置的扭曲表应用于所述捕获设备中的一个捕获设备,(b)使用所述配置的扭曲表中的所述一个配置的扭曲表来计算所述捕获设备的去扭曲效果,(c)确定所述去扭曲效果是否超过阈值,(d)如果所述去扭曲效果超过所述阈值,则选择所述配置的扭曲表中的所述一个配置的扭曲表作为用于所述捕获设备的扭曲表,(e)如果所述去扭曲效果没有超过所述阈值,则选择所述配置的扭曲表中的下一个配置的扭曲表用于所述捕获设备中的所述一个捕获设备,并且重复(a)-(d),以及(f)针对所述捕获设备中的每个捕获设备重复(a)-(e)。
3.根据权利要求2所述的系统,其中,仅当确定所述扭曲表池中的所述配置的扭曲表都没有超过所述阈值时,才针对所述捕获设备执行所述完全校准技术以生成所述配置的扭曲表中的一个配置的扭曲表。
4.根据权利要求1所述的系统,其中,每次所述完全校准技术被执行时,所述新的配置的扭曲表被添加到所述扭曲表池以增加存储在所述扭曲表池中的可用于所述快速校准的所述配置的扭曲表的总数。
5.根据权利要求1所述的系统,其中,所述快速校准使得能够重新使用根据所述完全校准技术的先前性能所确定的配置的扭曲表,以减少在对所述多个捕获设备中的每个捕获设备进行校准时所述完全校准技术被执行的次数。
6.根据权利要求1所述的系统,其中,在对所述多个捕获设备执行所述快速校准之前,对所述捕获设备中的一个捕获设备执行所述完全校准技术以将所述配置的扭曲表中的第一个配置的扭曲表添加到所述扭曲表池中。
7.根据权利要求1所述的系统,其中,(i)所述扭曲表被配置为对由所述传感器捕获的像素数据应用补偿,并且(ii)所述补偿被实施以校正由所述镜头的特性引起的所述像素数据的不准确性。
8.根据权利要求1所述的系统,其中,所述快速校准包括对去扭曲效果的评估以确定所述快速校准是否失败。
9.根据权利要求8所述的系统,其中,对所述去扭曲效果的所述评估包括:(i)所述捕获设备中的一个捕获设备捕获棋盘图像,(ii)将所述配置的扭曲表中的所述一个配置的扭曲表应用于所述棋盘图像,(iii)所述捕获设备中的所述一个捕获设备的处理器(a)取回所述棋盘图像的交点,(b)计算所述交点的拟合线,以及(c)计算所述交点距所述拟合线的绝对距离的总和,以及(vi)所述校准设备将所述绝对距离的总和与预定阈值进行比较。
10.根据权利要求9所述的系统,其中,所述交点包括所述棋盘图像的位置,在所述位置处,所述棋盘图像的浅色方块和深色方块沿所述棋盘图像的边缘相遇。
11.根据权利要求9所述的系统,其中,所述拟合线是被计算为通过所述交点的直线。
12.根据权利要求11所述的系统,其中,所述拟合线是使用最小二乘逼近技术计算的。
13.根据权利要求9所述的系统,其中,所述交点距所述拟合线的绝对距离的总和被测量为像素的数量。
14.根据权利要求9所述的系统,其中,如果所述交点的绝对距离的总和为零像素,则所述去扭曲效果是完美的。
15.根据权利要求9所述的系统,其中,所述拟合线是针对所述棋盘图像的四个最外边缘中的每个最外边缘计算的。
16.根据权利要求9所述的系统,其中,所述捕获设备被设置在距快速校准目标板的一距离和一角度处,使得所述棋盘图像填满所述镜头的整个视场。
17.根据权利要求1所述的系统,其中,所述系统被配置为针对所述多个捕获设备的大规模生产过程而实现快速RGB-IR校准验证。
18.根据权利要求1所述的系统,其中,所述完全校准技术是使用下列各项来执行的:(i)完全校准支架,其被实施用于安装所述多个捕获设备以捕获用于所述完全校准技术的完全校准目标,以及(ii)快速校准支架,其被实施用于安装所述多个捕获设备以捕获用于所述快速校准的快速校准目标。
19.根据权利要求18所述的系统,其中,(i)在所述完全校准技术期间所述完全校准支架被移动至少九次,以便捕获所述完全校准目标的至少九个图像,所述至少九个图像中的每个图像处于不同的特定距离和角度,以及(ii)所述快速校准支架设置在距所述快速校准目标固定距离和固定角度处,并且不针对所述快速校准而移动。
20.根据权利要求1所述的系统,其中,所述完全校准技术比所述快速校准花费更长的时间量来执行。
CN202210277884.XA 2022-03-16 2022-03-16 用于大规模生产过程的快速rgb-ir校准验证 Pending CN116800947A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202210277884.XA CN116800947A (zh) 2022-03-16 2022-03-16 用于大规模生产过程的快速rgb-ir校准验证
US17/721,392 US11743450B1 (en) 2022-03-16 2022-04-15 Quick RGB-IR calibration verification for a mass production process
US18/140,945 US20230300318A1 (en) 2022-03-16 2023-04-28 Quick rgb-ir calibration verification for a mass production process

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210277884.XA CN116800947A (zh) 2022-03-16 2022-03-16 用于大规模生产过程的快速rgb-ir校准验证

Publications (1)

Publication Number Publication Date
CN116800947A true CN116800947A (zh) 2023-09-22

Family

ID=87767230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210277884.XA Pending CN116800947A (zh) 2022-03-16 2022-03-16 用于大规模生产过程的快速rgb-ir校准验证

Country Status (2)

Country Link
US (2) US11743450B1 (zh)
CN (1) CN116800947A (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9846960B2 (en) * 2012-05-31 2017-12-19 Microsoft Technology Licensing, Llc Automated camera array calibration
US20140307055A1 (en) * 2013-04-15 2014-10-16 Microsoft Corporation Intensity-modulated light pattern for active stereo
US9894350B2 (en) * 2015-02-24 2018-02-13 Nextvr Inc. Methods and apparatus related to capturing and/or rendering images
CN109781261B (zh) * 2018-12-31 2021-03-02 苏州大学 紧凑型折反式无热化成像光谱仪

Also Published As

Publication number Publication date
US11743450B1 (en) 2023-08-29
US20230300317A1 (en) 2023-09-21
US20230300318A1 (en) 2023-09-21

Similar Documents

Publication Publication Date Title
CN108702437B (zh) 计算深度图的方法、系统、设备和存储介质
US20210227126A1 (en) Deep learning inference systems and methods for imaging systems
US11132771B2 (en) Bright spot removal using a neural network
CN114093142B (zh) 通过组合视觉传感和热传感的对象感知的温度异常监控和预警
US11935257B2 (en) Adding an adaptive offset term using convolution techniques to a local adaptive binarization expression
US12002229B2 (en) Accelerating speckle image block matching using convolution techniques
US11146747B1 (en) Dynamic driver mechanism for rolling shutter sensor to acquire the structured light pattern
US11594254B2 (en) Event/object-of-interest centric timelapse video generation on camera device with the assistance of neural network input
US11563927B2 (en) Mounting calibration of structured light projector in mono camera stereo system
US20240029285A1 (en) Adaptive face depth image generation
US11843760B2 (en) Timing mechanism to derive non-contaminated video stream using RGB-IR sensor with structured light
US20230125040A1 (en) Temporally Consistent Neural Network Processing System
US20230419505A1 (en) Automatic exposure metering for regions of interest that tracks moving subjects using artificial intelligence
US11743450B1 (en) Quick RGB-IR calibration verification for a mass production process
US11574484B1 (en) High resolution infrared image generation using image data from an RGB-IR sensor and visible light interpolation
US11924555B2 (en) Intelligent auto-exposure control for RGB-IR sensor
US20230206476A1 (en) Accelerated alignment of high-resolution image and depth map for low-bit-width floating-point representation
US11935377B1 (en) Security cameras integrating 3D sensing for virtual security zone
US11812007B2 (en) Disparity map building using guide node
US11922697B1 (en) Dynamically adjusting activation sensor parameters on security cameras using computer vision

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination