CN112312031A - 增强的高动态范围成像和色调映射 - Google Patents

增强的高动态范围成像和色调映射 Download PDF

Info

Publication number
CN112312031A
CN112312031A CN202010172234.XA CN202010172234A CN112312031A CN 112312031 A CN112312031 A CN 112312031A CN 202010172234 A CN202010172234 A CN 202010172234A CN 112312031 A CN112312031 A CN 112312031A
Authority
CN
China
Prior art keywords
image data
tone
tone mapping
source image
mapping function
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
CN202010172234.XA
Other languages
English (en)
Inventor
邓忆宁
E·迪雅尔丹
H·米尔扎伊·多马比
黃盛炫
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.)
Nvidia Corp
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Publication of CN112312031A publication Critical patent/CN112312031A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • G06T5/92
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/741Circuitry for compensating brightness variation in the scene by increasing the dynamic range of the image compared to the dynamic range of the electronic image sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/77Circuits for processing the brightness signal and the chrominance signal relative to each other, e.g. adjusting the phase of the brightness signal relative to the colour signal, correcting differential gain or differential phase
    • 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/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20208High dynamic range [HDR] image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle

Abstract

本公开的各种实施例涉及用于色调映射高动态范围(HDR)图像数据的方法,以及控制由HDR编码的图像的亮度的图像数据和/或色调映射图像数据。捕获HDR图像。生成用于HDR图像数据的色调映射函数。为了生成色调映射函数,基于HDR图像数据的分析动态地确定控制点。色调映射函数适合控制点。色调映射函数是非线性函数,并且由平面中的曲线描述。曲线的形状受到从一部分控制点生成的线的约束。色调映射函数应用于HDR图像数据。对色调映射的图像数据应用颜色压缩以生成标准动态范围或低动态范围图像数据。

Description

增强的高动态范围成像和色调映射
背景技术
高动态范围成像(HDRI)包括生成高动态范围(HDR)的图像数据的技术。也就是说,HDRI提供最大可能像素值(例如,最大可能光度值)至最小可能像素值(例如,最小可能光度值)的增加的比率。较小光度值的像素渲染为经编码的图像的较暗(例如,较黑)区域,而较大光度值的像素渲染为图像的较亮(例如,较白)区域。由于最大光度值至最小光度值的比率增强,并且当在具有足够能力来渲染增加的动态范围(DR)的设备上显示时,HDR图像可以提供更多细节和对比度,并且因此对人类观看者而言可以看起来更逼真和自然。例如,当被适当地渲染时,HDR图像数据中编码的场景的图像可能看起来更接近人在直接观看场景时实际观察到的内容,或者可能在视觉上更具吸引力。然而,许多设备(诸如传统显示器和打印机)不能渲染HDR图像数据。因此,可以对HDR图像数据进行色调映射以将HDR图像数据转换为较低动态范围的图像数据。
用于色调映射HDR图像数据的常规方法可以假设在捕获HDR图像数据时相机的自动曝光(AE)设置被适当地配置。在某些情况下,此假设可能会失败,从而导致色调映射图像质量下降。此外,当控制HDR图像的亮度和/或由色调映射的HDR图像数据编码的图像时,一些传统方法可以将数字增益函数应用于HDR图像数据。数字增益函数可以退化与HDRI相关联的许多视觉益处,诸如通过渲染HDR图像和/或色调映射的HDR图像看起来“褪色”,不太逼真或者视觉上不那么吸引人。
发明内容
本公开的实施例涉及对高动态范围(HDR)图像数据的色调映射,以及控制色调映射的HDR图像数据的亮度。可以通过压缩像素值(例如,在色调映射的HDR图像数据上应用伽马压缩函数)将色调映射的HDR图像数据变换为标准动态范围(SDR)图像数据或低动态范围(LDR)。
各种实施例可以通过生成HDR图像数据的色调映射函数来控制HDR图像数据的图像亮度,而不是依赖于对AE设置的适当配置和数字增益函数。当应用于HDR图像数据时,色调映射函数映射HDR图像数据的色调(例如,亮度),使得经色调变换的HDR图像数据可以编码与成像场景的光照条件匹配的图像亮度,而无需依赖于对AE设置的适当配置。色调映射函数还可以最小化由于HDR成像(例如,闪耀抑制和高光压缩)引起的视觉伪像。在进行色调映射时,可以经由对HDR像素值的最低有效位(LSB)的滤波将HDR图像数据压缩为SDR或LDR图像数据。
一个非限制性实施例包括捕获和/或接收源图像数据。源图像数据可以是HDR图像数据,并且可以表示和/或编码源图像。基于源图像数据的源像素值确定色调控制点。所确定的色调控制点可以包括低色调点,中间色调点和高色调点。在一些实施例中,色调控制点可以另外包括闪耀抑制点。可以基于色调控制点的至少一部分来确定色调映射函数。例如,色调映射函数可以是定义曲线(例如,全局色调曲线)的参数函数,其中函数的参数拟合使得曲线被约束为通过(或包括)低色调点,中间色调点和高色调点。在一些实施例中,曲线被进一步约束为通过另外确定的点的至少一部分。
在至少一个实施例中,确定色调映射函数还可以基于增益值。可以基于中间色调点和至少另一个色调控制点来确定增益值,例如但不限于闪耀抑制点。可以确定增益值等于通过中间色调点和闪耀抑制点的增益线的斜率。可以进一步约束色调映射函数的拟合,使得在中间色调点的一个分量处评估的函数的导数和/或瞬时变化率至少近似等于增益值。可以通过应用色调映射函数来变换编码源图像的源图像数据和/或编码后续帧的源图像数据来生成目标图像数据(例如,较低动态范围图像数据)。目标图像数据可以包括目标像素值,其通过将色调映射函数应用于源图像数据的像素值来定义。
附图说明
下面参考附图详细描述用于色调映射高动态范围图像数据和控制图像亮度的本系统和方法,其中:
图1提供了根据本公开的一些实施例的高动态范围成像系统的示意图;
图2A示出了嵌入在2D空间中的低色调,中间色调,高色调和闪耀抑制控制点,该2D空间由第一基矢量和第二基矢量跨越,该第一基矢量用于对应于源图像数据的像素值的第一维度,而该第二基矢量用于对应于目标图像数据的像素值的第二维度;
图2B示出了根据各种实施例的色调映射函数的曲线图的非限制性实施例;
图3是示出根据本公开的一些实施例的用于色调映射高动态范围图像数据的方法的流程图;
图4是示出根据本公开的一些实施例的用于从较高动态范围图像数据生成较低动态范围图像数据的方法的流程图;
图5是示出根据本公开的一些实施例的用于分发色调映射的操作的方法的流程图;
图6A是根据本公开的一些实施例的示例自主车辆的图示;
图6B是根据本公开的一些实施例的、图6A的示例自主车辆的相机位置和视野的示例;
图6C是根据本公开的一些实施例的、图6A的示例自主车辆的示例系统架构的框图;
图6D是根据本公开的一些实施例的、用于一个或更多个基于云的服务器和图6A的示例自主车辆之间通信的系统图;
图7是适用于在实现本公开的一些实施例中使用的示例计算环境的框图。
具体实施方式
公开了与高动态范围成像(HDRI)相关的系统和方法。更具体地,本文的实施例涉及色调映射高动态范围(HDR)图像数据,以及控制由HDR图像数据编码的图像和/或由色调映射图像数据编码的图像的亮度。
可以通过压缩像素值(例如,在色调映射的HDR图像数据上应用伽马压缩函数)将色调映射的HDR图像数据变换为标准动态范围(SDR)图像数据或低动态范围(LDR)。一个非限制性实施例包括捕获和/或接收源图像数据。源图像数据可以是HDR图像数据,并且可以表示和/或编码源图像。基于源图像数据的源像素值确定色调控制点。所确定的色调控制点可以包括低色调点,中间色调点和/或高色调点。在一些实施例中,色调控制点可以另外包括闪耀(flare)抑制点。在至少一个实施例中,确定附加色调控制点。
可以基于控制点的至少一部分来确定色调映射函数。例如,色调映射函数可以是定义曲线(例如,全局色调曲线)的参数函数。可以拟合函数的参数,使得曲线被约束为通过(或包括)低色调点,中间色调点和高色调点。在一些实施例中,曲线被进一步约束为通过另外确定的点的至少一部分。
在至少一个实施例中,确定色调映射函数还可以基于增益值。可以基于中间色调点和至少另一个色调控制点来确定增益值,例如但不限于闪耀抑制点。可以确定增益值等于通过中间色调点和闪耀抑制点的增益线的斜率。可以进一步约束色调映射函数的拟合,使得在中间色调点的一个分量处评估的函数的导数和/或瞬时变化率至少近似等于增益值。可以通过在源图像数据上应用色调映射函数来变换源图像数据来生成目标图像数据。目标图像数据可以包括目标像素值,其通过将色调映射函数应用于源图像数据的像素值来定义。
与传统方法相反,各种实施例使得能够在不依赖于AE设置的情况下对HDR图像数据进行色调映射。如下所述,与通过传统方法进行色调映射的图像相比,色调映射的图像可以具有更多细节和对比度。此外,各种实施例使得能够在不应用数字增益函数的情况下控制HDR图像和/或色调映射图像的整体图像亮度。因此,在传统生成的图像的情况下,由各种实施例生成的图像可能不会出现“褪色”。另外,实施例可以成功地抑制闪耀(例如,图像数据中的正黑点或黑电平减法中的误差),以及压缩HDR图像数据中的高光(例如,具有显着光度值的像素)。各种实施例另外提供用于将HDR图像数据压缩为标准动态范围(SDR)或低动态范围(LDR)图像数据的增强方法,同时保留编码HDR图像数据的增加的细节和对比度的许多关键信息。
各种实施例的一些HDRI技术包括组合或混合相同场景的多个捕获的SDR图像,具有针对多个SDR图像中的每一个的单独的曝光设置或周期。可以通过多个SDR图像的像素值来生成HDR图像(由HDR图像数据编码)。例如,对于成像场景的较暗区域的HDR图像的像素值的确定可以由具有较长曝光时间的SDR图像的对应像素值支配。使用由较长曝光时间生成的像素值可以使得能够在场景的较暗区域中捕获更多细节和对比度。可以通过以较短曝光时间捕获的SDR图像的对应像素值来控制场景的较亮区域的HDR像素值的确定。使用由较短曝光时间生成的像素值可以防止对场景的较亮或较亮区域的“冲洗”或过度曝光的影响。在其他实施例中,可以从单个图像生成HDR图像数据,其中对应于较暗区域的图像传感器(例如,相机像素)被捕获较长的曝光时段,并且对应于较亮区域的图像传感器被捕获较短的曝光时段。
如上所述,传统的HDR相机和系统依赖于用户来适当地配置其相机的AE设置。这样的AE设置可以包括自动曝光包围(AEB)设置和/或各种AE模式(例如,夜晚和白天AE模式)。这些AE设置是相对静态的,并且用户可能很少更改设置以匹配其当前环境。此外,仅几个预先配置的模式用户可用(例如,白天模式或夜间模式)-其中没有一个可以与当前环境一致。例如,传统的HDR相机可能不为晴天、阴天或其间的状态提供单独的AE模式。
当AE模式不能充分提供与场景的当前照明条件一致的曝光设置时,HDR图像的整体亮度可能不会真实地反映场景的照明条件。例如,HDR图像可能不会将场景渲染为场景的当前照明条件提供的明亮照明。为了补偿这种光照不匹配,传统的HDR相机和系统通常采用数字增益函数来调整或增强HDR像素值的光度。在各种光照条件和/或AE设置下,应用于像素的增益值可能很大。这种大的增益通常使HDR图像的较亮区域饱和和/或剪辑,这可能使这些区域在渲染时看起来褪色或过度曝光。因此,在这些各种场景中,传统的HDR相机和系统无法实现用户打算通过HDRI捕获的增加的细节和对比度。
传统的HDR相机和系统与附加限制相关联。例如,当SDR设备渲染传统的HDR图像数据时,传统HDR图像数据的大部分增加的细节和对比度可能会丢失。为了编码增加的DR,HDR图像数据可包括深度大于SDR图像的像素。例如,SDR图像数据的像素深度可以是24位(每个颜色通道8位),而一些HDR图像数据的像素深度可以高达或大于96位(每个颜色通道32位)。因为许多显示设备,数据流,存储设备和打印机(例如,SDR设备)不能显示,流式传输,存储和/或打印这种深度的像素,所以HDR图像数据通常被转换为较浅的像素深度。为此,可以使用色调映射来将HDR像素值变换(或映射)为可能更适合于SDR设备的SDR像素值。例如,可以采用色调映射来将HDR图像数据变换为SDR,或者甚至是低动态范围(LDR)图像数据。如下所述,传统的色调映射可能导致HDR图像的细节和对比度的显着丢失。
传统的色调映射可能导致HDR图像数据的有损压缩,并且在许多场景中,与HDR图像相比,显着降低了较低动态范围图像或标准动态范围图像的质量。更具体地,传统色调映射可能受限于其保存HDR图像数据的关键信息的能力,该关键信息使得HDR图像对于人类观看者看起来自然且逼真。因此,通过传统的色调映射,在压缩过程中可能丢失渲染增加的细节和对比度的关键HDR信息的大部分。
传统的色调映射可能不保存HDR图像数据的大量关键信息,尤其是当上述AE设置和/或模式不适合场景的当前照明条件时。例如,当对昏暗照明的场景进行成像时,用户可能无法将传统的HDR相机从白天模式转换到夜晚模式。HDR图像可能看起来曝光不足,因为HDR图像数据无法编码成像场景的较暗区域的大部分细节和对比度。结果,当从曝光不足的HDR图像数据生成SDR(或LDR)图像时,SDR图像的曝光不足的外观可能更加明显。
即使当AE设置适合于当前光照条件时,光照条件也可以在短时间跨度上是动态的,而AE设置在这些短时间跨度上保持恒定。因为在帧级应用传统的色调映射,所以传统的映射可能不容易考虑动态光照条件。例如,在捕获HDR视频图像数据期间,相对明亮的对象(例如,高反射对象或包括光源的对象)可以进入场景,并且当前的AE设置可能不适合于引入明亮的物体。传统色调映射可以渲染动态明亮物体过度曝光,并且视频图像数据的整体亮度可能波动。
各种实施例可以通过生成HDR图像数据的色调映射函数来控制亮度,而不是依赖于AE设置和数字增益的适当配置。在一些非限制性实施例中,色调映射函数可以是全局色调映射(GTM)函数和/或全局色调曲线(GTC)。可以基于HDR图像动态地和/或全局地确定色调映射函数。这样,可以采用色调映射函数来动态地和全局地对HDR图像数据进行色调映射。当应用于HDR图像数据时,色调映射函数映射HDR图像数据的色调(例如,亮度),使得经色调变换的HDR图像数据可以编码与成像场景的光照条件匹配的图像亮度,而无需依赖AE设置的适当配置。色调映射函数还可以最小化由于HDR成像(例如,闪耀抑制和高光压缩)引起的视觉伪像。
一旦被进行色调映射,可以经由对HDR像素值的最低有效位(LSB)的滤波将HDR图像数据压缩为SDR或LDR图像数据。在一些实施例中,在像素深度减小之前,可以通过伽马压缩函数对色调映射的HDR图像数据进行颜色压缩。例如,可以经由固定(或至少相对固定)的曝光设置来捕获HDR图像数据,并且捕获的HDR图像数据可以被称为源图像数据。可以基于对源图像数据的像素值的分析来动态地确定色调映射函数。色调映射函数可以是将源图像数据的源像素值映射到目标图像数据的目标像素值的非线性函数。对于非线性实施例,非线性色调映射函数和/或GTM函数可以在2D坐标中绘制为全局色调曲线(GTC)。色调映射函数可用于大体上控制目标图像数据的亮度(或色调),而不依赖于传统的AE设置和/或数字增益。
为了生成色调映射函数,可以基于源图像数据的动态分析来确定多个控制点。可以在由源像素值和目标像素值的范围跨越的平面中定义控制点。在一些实施例中,可以基于源图像数据的感兴趣区域(ROI)来定义控制点。色调映射函数可以定义源图像像素的值与目标图像像素的值之间的一对一非线性映射。因此,色调映射函数可以定义(或至少评估其数值近似)源/目标平面中的曲线。曲线可以是曲线的近似值,例如具有变化斜率的多个分段线性段。也就是说,色调映射函数可以是样条函数。样条函数可以包括度数大于1的多项式。在一些实施例中,色调映射函数可以是一对一线性映射函数。平面内的控制点可以定义色调映射函数上的一个或更多个约束。在一些实施例中,可以基于一个或更多个约束来拟合参数化色调映射函数(例如,可以通过最小化差异或成本函数来选择定义色调映射的参数)。更具体地,成本函数可以由一个或更多个约束来定义。例如,可以基于一个或更多个约束拟合具有任何度数的多项式段的样条函数。
控制点的至少一部分可指示对特定和有限数量的源像素值和对应的目标像素值的色调映射的约束。色调映射函数可以适合于至少近似这些特定色调映射。为了抑制闪耀并压缩高光,一些控制点可以定义源图像数据的闪耀抑制或高光压缩阈值。可以采用至少一些控制点来约束在一个或更多个控制点处评估的色调映射函数的导数(或至少其数值近似)。也就是说,可以采用一些控制点来约束一个或更多个其他控制点处的色调映射函数的增益(例如,增益值)的斜率。
在一些实施例中,可以确定至少三个控制点:低色调点,中间色调点和高色调点。低色调点可以定义源图像数据的最低像素值与目标图像数据的最低像素值之间的色调映射,以及源图像数据的闪耀抑制阈值。类似地,高色调点可以定义源图像数据的最高像素值与目标图像数据的最高像素值之间的色调映射,以及源图像数据的高光压缩阈值。中间色调点可以定义源图像数据的中间色调值和目标图像数据的中间色调值之间的色调映射。如下所述,可以另外采用中间色调点来约束色调映射函数的导数。
因为低色调点可以定义源图像数据和目标图像数据的最暗或“黑色”像素的色调值之间的映射,所以低色调点可以是映射的“黑点”(BP)。同样地,因为高色调点可以定义源图像数据和目标图像数据的最亮或“白色”像素的色调值之间的映射,所以高色调点可以是映射的“白点”(WP)。在一些实施例中,当拟合色调映射函数时,可以选择色调映射参数以迫使色调映射函数评估(或至少近似)这些控制点。可以约束色调映射函数以评估(或至少近似)附加控制点。
在至少一些实施例中,色调映射函数的导数(或至少其数值近似)可以被约束在中间色调点或任何其他这样的控制点。也就是说,中间色调增益的斜率(通过色调映射函数定义)可以被约束和/或设置在中间色调点处。为了约束中间色调点处的色调映射函数的导数(或其数值近似),可以定义附加控制点。在中间色调点处评估的色调映射函数的导数可以被约束为至少近似等于通过中间色调点和另外的控制点的线的斜率(例如,增益值)。在一个这样的示例中,附加控制点可以是最大闪耀去除(MFR)点,其指定源像素值上的阈值以便去除闪耀。MFR点可以由用户设置和/或基于源图像数据的统计动态确定。
作为另外的示例,中间色调增益的斜率可以被约束为至少近似等于目标图像数据的中间色调与源图像数据的中间色调的比率。作为又一些示例,中间色调增益的斜率可以通过其他方法设置,例如,用户可配置的设置。当拟合参数化色调映射函数时,可以选择参数以迫使在中间色调点处评估的色调映射函数的导数至少接近以这些或任何其他方式定义的中间色调增益。
一旦确定了色调映射函数,就可以通过将色调映射函数应用于源图像数据来生成目标图像数据。在一些实施例中,在确定色调映射函数和应用色调映射函数之间可能存在一个或更多个帧偏移。例如,可以基于第一源图像帧确定色调映射函数并将其应用于后续帧。如上所述,可以通过从目标图像数据中滤波适当数量的LSB,从目标图像数据生成SDR或LDR图像数据。在从图像数据中丢弃LSB之前,可以将伽马压缩应用于目标图像数据以压缩像素值的颜色范围。
在一些实施例中,可以经由成像设备的通用处理器(例如,CPU)来确定色调映射函数,而可以经由成像设备的专用处理器(例如,图像信号处理器,FPGA或ASIC)的一个或更多个管线将源图像数据映射到目标图像数据。在一些实施例中,源图像数据可以由图形处理单元(GPU)、图像信号处理器(ISP)和/或数字信号处理器(DSP)处理。在一些实施例中,可以确定源图像数据的统计度量,并且可以从统计度量确定控制点。所公开的一些实施例可以部署在车载成像装置(例如,行车记录仪)中。此外,各种实施例可以部署在自主车辆应用或其他这样的机器视觉应用中。实施例可以部署在采用一种或更多种机器和/或计算机视觉方法的任何应用中。例如,可以部署实施例以实现自主车辆的各种机器视觉特征中的任何一个(参见图6A-6D)。可以部署实施例以在机器人中实现机器视觉,例如但不限于制造机器人。
用于高动态范围成像和色调映射的系统
参考图1,图1提供了根据本公开的一些实施例的高动态范围成像(HDRI)系统100的示意图。应该理解的是,本文描述的这个和其他布置仅作为示例阐述。除了所示的那些之外或代替所示的那些,可以使用其他布置和元件(例如,机器,接口,功能,顺序,功能分组等),并且可以完全省略一些元件。此外,本文描述的许多元件是功能实体,其可以实现为离散或分布式组件或者与其他组件一起实现,并且可以以任何合适的组合和位置实现。本文描述的由实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,各种功能可以由逻辑设备执行,例如但不限于通用处理器122和/或执行存储在存储器中的指令的图像信号处理器(ISP)124。
除其他之外,HDRI系统100可以包括计算设备,其包括一个或更多个图像传感器(例如,相机)。这样的计算设备可以包括但不限于移动或固定相机(例如,手持相机102,智能电话,平板电脑等),有人驾驶或无人驾驶地面车辆(例如,车辆104),有人驾驶或无人驾驶飞行器(例如,无人驾驶飞机106)或可穿戴设备(例如,智能眼镜108)。包括一个或更多个图像传感器的这种计算设备在本文中可以统称为相机计算设备102-108。
尽管图1中示出了一些相机计算设备,但这不是限制性的。在任何示例中,可以存在未在图1中明确示出的任何数量的相机计算设备和/或相机计算设备。实际上,包括一个或更多个图像传感器和/或相机的任何计算设备可以包括在根据各种实施例的HDRI系统中。
任何相机计算设备102-108(或包括在系统100中的其他相机计算设备)可以包括能够捕获高动态范围(HDR)图像数据的一个或更多个图像传感器,如贯穿全文所讨论的。HDRI系统100可以包括其他计算设备,例如但不限于服务器计算设备110。服务器计算设备110可以不包括图像传感器。然而,在其他实施例中,服务器计算设备110可以包括图像传感器(例如,辅助相机)。地面车辆104和/或飞行器106可以是至少部分手动操作的车辆和/或当有人驾驶时,部分自主的。在一些实施例中,当无人驾驶时,车辆104和106可以是自主的,部分自主的和/或远程控制的车辆。结合图6A-6D讨论这种车辆的各种实施例。
结合图7的计算设备700讨论计算设备的各种实施例,包括但不限于计算设备102-110。然而,本文简要地说,每个计算设备可以包括一个或更多个逻辑设备。例如,相机102被示出为包括逻辑设备120。逻辑设备120可以包括通用处理器122中的一个或更多个(例如,中央处理单元(CPU),微控制器,微处理器等),图像信号处理器(ISP)124,应用程序专用集成电路(ASIC)126和/或现场可编程门阵列(FPGA)128。尽管未在图1中示出,在一些实施例中,逻辑设备120可以包括图形处理单元(GPU)。应该注意,任何计算设备102-110可以包括一个或更多个这样的逻辑设备。
HDRI系统100的各种组件(例如,计算设备102-110)可以通过一个或更多个网络112进行通信。一个或更多个网络可以包括广域网(WAN)(例如,因特网,公共交换电话网(PSTN)等),局域网(LAN)(例如,Wi-Fi,ZigBee,Z-Wave,蓝牙,蓝牙低功耗(BLE),以太网等),低功率广域网(LPWAN)(例如,LoRaWAN,Sigfox等),全球导航卫星系统(GNSS)网络(例如,全球定位系统(GPS))和/或其他网络类型。在任何示例中,HDRI系统100的每个组件可以经由一个或更多个网络112与一个或更多个其他组件通信。
计算设备102-110中的任何一个可以实现、操作或以其他方式执行数字自动曝光高动态范围(DAE HDR)引擎140的功能和/或操作。例如,在图1中,示出了相机102实现DAEHDR引擎140。然而,可以使任何计算设备102-110能够实现DAE HDR引擎140。任何逻辑设备120可以实现DAE HDR引擎140的至少一些功能、操作和/或动作。
DAE HDR引擎140可以启用HDR图像数据的色调映射的各种方法,以及控制由HDR图像数据和/或色调映射图像数据编码的图像的亮度。为了执行这样的功能,DAE HDR引擎140可以包括一个或更多个组件,模块,设备等。这样的组件,模块和/或设备可以包括但不限于一个或更多个HDR图像传感器144,HDR传感器曝光设置142,一个或更多个HDR图像传感器144,感兴趣区域(ROI)定位器148,延迟单元150,统计模块152,控制点选择器154,色调映射生成器156和/或色调映射施加器158。在一些实施例中,这些组件,模块和/或设备中的任何一个可以是可选的。例如,在图1所示的非限制性实施例中,ROI定位器148,延迟单元150和统计模块152是可选的。在其他实施例中,每个其他组件,模块和/或设备可以是可选的。
如结合图1所讨论的,对DAE HDR引擎140的组件,模块和/或设备的枚举并非旨在详尽无遗。在其他实施例中,DAE HDR引擎140可以包括更少或更多的组件,模块和/或设备。如全文所讨论的,DAE HDR引擎140可以分别实现和/或执行结合图3,图4和图5的方法300,400和500讨论的过程,动作和/或操作的至少一部分。这样,逻辑设备120中的一个或更多个可以实现和/或执行方法300,400和/或500的至少一部分。
HDR图像传感器144能够捕获作为HDR图像数据的图像数据。捕获的HDR图像数据对由HDR图像传感器144成像的图像或场景进行编码。由HDR图像传感器144捕获的图像数据可以被称为源图像数据。因此,源图像数据可以是编码HDR源图像的HDR图像数据。如全文所述,捕获源图像数据的HDR图像传感器144可以安装在车辆(例如,地面车辆104或飞行器106)上。车辆可以是自主的或至少部分自主的车辆。可以至少部分地基于源图像数据和/或目标图像数据来控制车辆。在一些实施例中,源图像数据的编码可以在缺少非线性映射的线性颜色空间中。HDR图像传感器144可以包括一个或更多个HDR传感器曝光设置142,受其影响和/或受制于一个或更多个HDR传感器曝光设置142。HDR传感器曝光设置142可以是固定的,静态的和/或恒定的曝光设置。在其他实施例中,HDR传感器曝光设置142的至少一部分可以是动态的和/或可变的。在这样的实施例中,可以基于要成像的场景的光照条件和/或其他环境条件自动确定HDR传感器曝光设置142的值的至少一部分。可以基于这些和其他因素(例如HDR图像传感器144的规格和/或操作)自动设置HDR传感器曝光设置142。在至少一个实施例中,可以使用户能够手动设置至少一部分HDR传感器曝光设置142。
HDRI系统100中的一些计算设备可以不包括图像传感器和/或相机(例如,服务器计算设备110)。在这样的实施例中,包括在任何相机计算设备102-108中的HDR图像传感器可以用于捕获源图像数据。源图像数据可以经由网络112提供给在服务器计算设备110处和/或由服务器计算设备110实现的DAE HDR引擎。即,尽管源HDR图像数据可以由相机设备102-108中的至少一个捕获,可以在服务器计算设备110上离线执行色调映射和控制图像数据的亮度。为了以另一种方式陈述,可以将HDR图像数据的色调映射卸载到另一个计算设备,诸如但不限于服务器计算设备110,其不捕获图像数据。因为相机计算设备102-108可以包括一个或更多个有人驾驶或无人驾驶车辆(例如,地面车辆104和飞行器106),所以源图像数据可以由包括在车辆中或安装在车辆上的相机捕获。如上所述,车辆可以是自主的或至少部分自主的车辆。各种实施例可以在自主车辆的各种机器和/或自主车辆的计算机视觉特征中实现或至少辅助启用,例如但不限于地面车辆104或飞行器106。可以部署实施例以实现其他应用程序的机器和/或计算机视觉特征,例如但不限于机器人应用程序。
如图1所示,DAE HDR引擎140包括用于源图像数据的两个并行管线,如箭头所示。更具体地,DAE HDR引擎140包括图像数据管线162和图像数据管线164,其中两个管线可以并行操作。两个管线在HDR图像传感器144和可选的ROI定位器148之间示意性地分叉。两个分叉的管线示意性地会聚在色调映射施加器158处。
图像数据管线162通常负责确定和/或生成色调映射函数(例如,全局色调映射(GTM)函数)。图像数据管线162(通过可选的延迟单元150或色调映射生成器156)经由色调映射施加器158向图像数据管线164提供色调映射函数。图像数据管线164通常负责将色调映射函数应用到源图像数据,以生成目标图像数据160。如下所述,一个或更多个HDR图像传感器144捕获源图像数据,并将源图像数据提供给每个图像数据管线162和164。在图1的非限制性实施例中,并且如通过管线箭头所示,源图像数据经由可选的ROI定位器148被提供给图像数据管线162,并且源数据经由HDR图像数据缓冲器146被提供给并行图像数据管线164。
在涉及捕获多帧源图像数据的实施例中(例如,HDR视频实施例),可以基于源图像数据的第一帧生成色调映射函数并将其应用于源图像数据帧的第二(例如,下一个连续的)帧。也就是说,在这样的实施例中,可以假设基于源图像数据的第一帧生成的色调映射函数适用于并适合于源图像数据的下一帧,因为环境(例如,光照)条件并未在帧与帧之间显着变化。在这些实施例中,在生成色调映射函数的源数据和应用色调映射函数的源图像数据之间可能存在一帧滞后。例如,用于生成色调映射函数的源图像数据的帧可以是应用色调映射函数的源图像数据的帧之前的一帧。在这样的实施例中,图像数据管线162的可选延迟单元150可以缓冲用于一个(或多个)帧的色调映射函数,使得当色调映射函数被提供给图像数据管线164的色调映射施加器158时,色调映射应用于源图像数据的下一个连续的帧。在其他实施例中,滞后可以大于单个帧,并且延迟单元150可以缓冲源图像数据的多个帧的色调映射函数。在至少一个实施例中,相同的色调映射函数可以应用于多于一帧的源图像数据。例如,相同的色调映射函数可以应用于源图像数据的五个连续的帧。在这样的实施例中,图像数据管线162可以仅针对每第五帧生成色调映射函数。
如图1所示,DAE HDR引擎140输出目标图像数据160。如全文所述,目标图像数据160可以对由源图像数据编码的图像进行编码。然而,不是由HDR图像传感器144捕获的源图像数据的像素值,而是可以通过应用(经由图像数据管线164)色调映射函数(通过图像数据管线162确定)至源图像数据来定义目标图像数据160的像素值。也就是说,目标图像数据160的像素值可以表示源图像数据的像素值的色调映射版本。在一些实施例中,输出的目标图像数据160可以是标准动态范围(SDR)图像数据或低动态范围(LDR)图像数据。然而,在其他实施例中,目标图像数据160可以是HDR图像数据。由于管线至少是稍微平行的管线,并且在一些实施例中,图像数据管线162的操作的至少一部分可以由第一逻辑设备(例如,通用处理器122)执行并且图像数据管线164的操作的至少一部分可以由第二逻辑设备(例如,ISP 124)执行。在至少一个实施例中,ISP 124内的一个或更多个管线可以由DAE HDR引擎140的图像数据管线164使用。
如图1所示,源图像数据的至少一部分可以由图像数据管线164经由HDR图像数据缓冲器146提供和/或接收。HDR图像数据缓冲器146可以缓冲或至少临时存储源图像数据。如下面更详细讨论的,图像数据管线162生成色调映射函数并将色调映射函数提供给图像数据管线164。更具体地,如图1所示,可选的显示单元针对至少一帧缓冲色调映射函数,然后将色调映射函数提供给图像数据管线164的色调映射施加器158。色调映射施加器从HDR图像数据缓冲器146接收源图像数据并将色调映射函数应用于源图像数据以生成目标图像数据160。
如上所述,与用于生成色调映射函数的源图像数据中的帧相比,由色调映射施加器158接收的源图像数据可以是源图像数据的下一帧。在不包括延迟单元150的实施例中,源图像数据可以直接从色调映射生成器156提供给色调映射施加器158。在这样的实施例中,色调映射函数可以应用于用于生成色调映射函数的源图像数据的同一帧。
在包括可选ROI定位器148的实施例中,源图像数据可以经由ROI定位器148提供给图像数据管线162和/或由图像数据管线162接收。在不包括ROI定位器148但是包括在统计模块的实施例中,源图像数据通过可选的统计模块152提供给图像数据管线162。在缺少ROI定位器148和统计模块152二者的实施例中,源图像数据可以经由控制点选择器154被提供给图像数据管线162。应当注意,虽然实施例可以包括ROI定位器和/或统计模块152,但是它们的可操作性可以是可选的。例如,用户可以选择通过一个或更多个软件开关和/或标志启用ROI定位器148和/或统计模块152中的一个或两个的可操作性。同样,用户可以选择通过一个或更多个软件开关和/或标志禁用ROI定位器148和/或统计模块152中的一个或两个的可操作性。
在包括和/或启用ROI定位器148的可操作性的实施例中,ROI定位器148可确定源图像数据内的ROI。例如,可以采用与计算机视觉和/或图像处理有关的一个或更多个方法(例如,ROI可以是经过训练以标识ROI的神经网络的输出)来确定由源图像数据编码的图像内的感兴趣的区域(例如,包括图像的对象和/或焦点的图像的区域)。如本文所使用的,ROI可以是图像内的区域,其包括比其他区域更多的对比度,细节和/或更多变化的像素值。例如,ROI可以是图像中的区域,与图像中的其他区域相比,其中像素值的动态范围被最大化或至少增加。
在实施例中,ROI可以是包括或对应于图像的对象或图像的焦点的图像的区域。在一些实施例中,ROI定位器148可以包括掩蔽所确定的ROI之外的像素的滤波器或掩模。因此,当图像数据沿图像数据管线162向下行进时,图像数据可仅包括对应于ROI的像素值。因此,控制点的确定和色调映射函数的生成以及图像数据管线162的其他操作(例如,统计度量的确定和/或多个控制点的确定)可以是基于与经编码的源图像中的ROI对应的源图像数据的一部分,而不是编码源图像的整个源图像数据。
在包括和/或启用统计模块152的可操作性的实施例中,统计模块152可以基于源图像数据的像素值(或者与经编码的图像数据的ROI对应的源图像数据的一部分的像素值)来确定和/或生成多个统计度量。多个统计度量可以包括基于源图像数据的像素值的统计度量。统计度量可以包括一个或更多个参数,其实际上表征可以从源图像数据构建的任何连续或离散统计分布和/或直方图。这些参数可以包括从源图像数据的像素值导出的一个或更多个统计分布的均值,中值和/或标准偏差。
可以将源图像数据,对应于ROI的源图像数据的部分和/或多个统计度量提供给控制点选择器154。控制点选择器154通常负责基于源图像数据,与ROI对应的源图像数据的部分,和/或多个统计度量来确定多个色调控制点。更具体地,可以基于源图像数据的像素值,从像素值确定和/或从像素值导出的统计度量或其组合来确定色调控制点的至少一部分。控制点选择器154可以使用通用处理器122来确定多个色调控制点。
多个控制点可以包括低色调点,中间色调点和高色调点中的一个或更多个。多个控制点可以包括闪耀抑制点。在一些实施例中,多个色调控制点可以包括附加色调控制点。色调控制点可以是2D点和/或2D矢量,其包括两个标量值(例如,x分量和y分量),但是可以添加其他维度。因此,可以通过矢量符号(TC_x,TC_y)来表示色调控制点,其中TC_x和TC_y中的每一个是标量值。色调控制点的横坐标标量值(例如,x分量和/或x值)表示为TC_x。色调控制点的纵坐标标量值(例如,y分量和/或y值)表示为TC_y。控制点嵌入其中的2D空间可以由标准正交基础跨越,该标准正交基础包括对应于源图像数据的像素值的横坐标基矢量(例如,x轴)和对应于目标图像数据的像素值的纵坐标基矢量(例如,y轴)。
低色调,中间色调和高色调控制点可以指示源图像数据的像素值到目标图像数据的像素值的特定映射。例如,低色调点可以指示要被色调映射到目标图像数据的最低像素值(例如,对应于最暗或黑色像素的像素值)的源图像数据的像素值。同样地,高色调点可以指示要被色调映射到目标图像数据的最高像素值(例如,对应于最亮或白色像素的像素值)的源图像数据的像素值。这样,低色调点可以被称为黑点(BP),并且高色调点可以被称为白点(WP)。中间色调点可以指示要被色调映射到目标图像数据的中间像素值的源图像数据的像素值。中间点的确定可以控制由色调映射的目标图像数据编码的目标图像的整体中间色调亮度(或色调),而低色调点控制目标图像数据中的最黑(或最暗)像素的色调并且高色调点控制目标图像数据中最白(或最亮)像素的色调。
参见图2A,图2A示出了嵌入在2D空间中的低色调,中间色调,高色调和闪耀抑制控制点,该2D空间由第一基矢量和第二基矢量跨越,该第一基矢量用于对应于源图像数据的像素值的第一维度(例如,x轴),该第二基矢量用于对应于目标图像数据的像素值的第二维度(例如,y轴)。在图2A的非限制性实施例中,源图像数据和目标图像数据的像素值已被归一化为具有以下范围:[0,1]。然而,在其他实施例中,像素值可以归一化到其他范围,或者甚至不需要归一化。例如,捕获的图像数据的原始像素值可以用作源图像数据。在其他实施例中,可以在将原始像素值提供给DAE HDR引擎140的图像数据管线162和164之前对其进行归一化和/或预处理。
在图2A中,低色调点表示为:LT=(B_s,B_t),中间色调点表示为:MT=(M_s,M_t),并且高色调点表示为:HT=(W_s,W_t),其中x和y分量都是非负标量值。更具体地,在图2A的非限制性实施例中,LT=(B_s,0)并且HT=(W_s,1),其中0.0<B_s<W_s<1.0。在其他示例中,B_t不必等于0.0并且W_t不必等于1。图2A示出了另一个控制点,即闪耀抑制点,表示为:FS=(F_s,F_t),其中F_t设置为0.0。闪耀抑制点将在下面进一步讨论。
关于中间色调点,具有等于M_s的像素值的源图像数据中的任何像素可以经由色调映射函数被色调映射到目标图像数据的M_t的值。M_t的确定和/或选择控制目标图像的中间色调亮度。因此,M_t的确定可以基于目标图像数据的像素值的中间色调像素值。在一些实施例中,M_t=0.5。在其他实施例中,M_t可以采用其他值。在一些示例中,用户可以选择或设置M_t的值。在其他示例中,可以通过源图像数据的像素值的线性加权平均来确定M_s。在另外的示例中,可以通过源图像数据的像素值的对数平均(例如,对数平均)来确定M_s。对数平均可以在几乎任何基础上执行。然而,在一些实施例中,对数库是基数10。在其他实施例中,用于将源图像数据变换为对数值的对数函数可以是自然对数函数。然后可以对像素值的对数平均值进行取幂(通过相应的基数)以确定M_s。例如,可以基于源图像数据的像素值来确定对数变换源图像数据像素值。可以通过对数变换图像数据值的线性加权和来确定对数变换图像数据值的平均值。可以基于对数变换图像数据值的平均值的取幂来确定M_s。
在一些实施例中,仅采用源图像数据的一部分来确定M_s。例如,具有最高和最低值的源图像数据的像素可以从分析中被否定和/或滤波。也就是说,可以采用高色调阈值(或滤波器值)来从M_s的确定中否定高色调像素。同样地,可以采用低色调阈值(或滤波器或滤波器值)来从M_s的确定中否定低色调像素。可以基于通过低色调和高色调滤波器二者的像素值的线性或对数平均来确定M_s(例如,未从分析中阈值化的像素值)。滤波器的阈值可以是相对阈值(例如,百分比)或绝对值。在一些实施例中,可以至少部分地基于由图1的统计模块152生成的统计度量来确定M_s和/或M_t。关于确定M_s和/或M_t,上面讨论的各种方法中的任何方法可以与统计度量组合以确定M_s和/或M_t。在至少一个实施例中,可以至少部分地基于图1的HDR传感器曝光设置142来确定M_s和/或M_t。可以基于通过聚合来自大量源图像数据和/或目标图像数据的统计度量而生成的历史、训练和/或学习数据的分析来确定M_s和/或M_t的预测模型。
关于低色调点,具有等于B_s(或小于B_s)的像素值的源图像数据中的任何像素可被色调映射到目标图像数据的B_t的值。也就是说,可以剪切小于B_s的源图像数据的每个像素值并将其设置为具有B_s的像素值。对B_t的确定和/或选择控制目标图像的低色调亮度。因此,B_t的确定可以基于目标图像数据的像素值的最小像素值。在一些实施方案中,B_t=0。在其他实施例中,B_t可以采用小于M_t的正值。在一些示例中,用户可以选择或设置B_t的值。在捕获像素的源图像数据的图像传感器中,可能由闪耀或其他误差(例如,传感器黑电平减法误差)引起正黑像素值。因此,由于像素值小于B_s的源图像数据被剪切并设置为B_s,所以B_s的选择可以控制闪耀抑制。因此,B_s可以被称为闪耀抑制阈值。
在示例中,可以基于具有最低像素值的源图像数据的像素来确定B_s。例如,可以基于低色调点阈值来确定源图像数据的像素值的低色调子集。包括在低色调子集中的每个像素值可以小于或等于低色调点阈值。从低色调子集中排除的每个像素值可以大于低色调点阈值。低色调点阈值可以是绝对阈值或相对阈值。可以基于像素值的低色调子集中包括的像素值来确定B_s的值。例如,B_s可以被设置为低色调子集中的像素值的加权平均值可以是平均值。在另一个实施例中,B_s可以被设置为低色调子集中的像素值的预定百分比。在一些实施例中,可以至少部分地基于由图1的统计模块152生成的统计度量来确定B_s和/或B_t。关于确定B_s和/或B_t,上面讨论的各种方法中的任何方法可以与统计度量组合以确定B_s和/或B_t。在至少一个实施例中,可以至少部分地基于HDR传感器曝光设置142来确定B_s和/或B_t。可以基于对通过聚合来自大量源图像数据和/或目标图像数据的统计度量而生成的数据的训练和/或学习的分析来确定B_s和/或B_t的预测模型。
关于高色调点,具有等于W_s(或大于W_s)的像素值的源图像数据中的任何像素可被色调映射到目标图像数据的W_t的值。也就是说,大于W_s的源图像数据的每个像素值可以被剪切并设置为具有值W_s。因此,由于像素值大于W_s的源图像数据被剪切并设置为W_s,所以W_s的选择可以控制高光(例如,具有大像素值的像素)抑制。因此,W_s可以被称为高光抑制阈值。W_t的确定和/或选择控制目标图像的高色调亮度。因此,W_t的确定可以基于目标图像数据的像素值的最大像素值。在一些实施方案中,W_t=1。在其他实施例中,W_t可以采用小于1但大于M_t的正值。在一些示例中,用户可以选择或设置W_t的值。在另外的示例中,可以基于具有最高像素值的源图像数据的像素来确定W_s。例如,可以基于高色调点阈值来确定源图像数据的像素值的高色调子集。包括在高色调子集中的每个像素值可以大于或等于高色调点阈值。从高色调子集中排除的每个像素值可以小于高色调点阈值。
高色调点阈值可以是绝对阈值或相对阈值。可以基于像素值的高色调子集中包括的像素值来确定W_s的值。例如,W_s可以被设置为高色调子集中的像素值的加权平均值可以是平均值。作为另一示例,可以将W_s设置为高色调子集中的像素值的预定百分比。在一些实施例中,可以至少部分地基于由图1的统计模块152生成的统计度量来确定W_s和/或W_t。关于确定W_s和/或W_t,上面讨论的各种方法中的任何方法可以与统计度量组合以确定W_s和/或W_t。在至少一个实施例中,可以至少部分地基于HDR传感器曝光设置142来确定W_s和/或W_t。可以基于对通过聚合来自大量源图像数据和/或目标图像数据的统计度量而生成的数据的训练和/或学习的分析来确定W_s和/或W_t的预测模型。
图2A还示出了闪耀抑制点:FS=(F_s,0)。F_s可以指示最大闪耀去除阈值。在一些实施例中,F_s可以是用户指定和/或选择的。在其他实施例中,可以至少部分地基于源图像数据的统计度量来动态地确定F_s。在至少一个实施例中,可以基于M_s的百分比和/或源图像数据的最低像素值的百分比值来确定F_s。
返回图1,控制点选择器154可以确定一个或更多个附加色调控制点。可以至少部分地基于多个统计度量来确定附加色调控制点。色调映射生成器156通常负责基于多个控制点确定色调映射函数。色调映射生成器156可以使用通用处理器122来确定色调映射函数。为了确定色调映射函数,色调映射生成器156可以生成和/或确定增益线。增益线的生成可以基于多个色调控制点的至少一部分。可以将增益值确定为增益线的斜率、导数和/或变化率。在一些实施例中,增益线可以被确定为包括或通过至少两个控制点的唯一线。在图2A所示的示例中,增益线是包括中间色调点和闪耀抑制点二者的线。增益值等于增益线的斜率。
色调映射生成器156可以基于增益值和多个色调控制点的至少一部分来确定色调映射函数。色调映射函数可以将源图像数据的像素值映射到目标图像数据的像素值。这样,色调映射函数可以是单个标量变量(例如,像素值)的标量函数,其中函数的值是与源图像数据的像素值对应的目标图像数据的像素值,其作为函数的参数(或自变量)。映射可以是非线性映射。在一些实施例中,色调映射生成器156可以执行色调映射函数与一个或更多个色调控制点的拟合。色调映射函数可以被约束为包括或近似包括一个或更多个色调控制点。例如,在至少一个实施例中,色调映射函数可以被约束为包括低色调点,中间色调点和/或高色调点。在一些实施例中,色调映射函数可以由增益值约束。可以基于增益值来约束色调映射函数的导数或瞬时变化率(在一个或更多个色调控制点处评估的)。例如,在至少一个实施例中,可以约束色调映射函数的拟合,使得中间色调控制点处的切线的导数或瞬时变化率至少近似等于增益值。
转到图2B,图2B示出了根据各种实施例的色调映射函数的曲线图的非限制性示例。图2B的色调映射函数被限制,使得色调映射函数的曲线图包括低色调点,中间色调点和高色调点。进一步约束色调映射函数,使得在中间色调控制点处的切线的导数或瞬时变化率等于增益值。应当注意,可以基于附加色调控制点来进一步约束色调映射函数。图2B还示出了相应的低色调点,中间色调点,高色调点和增益线。
为了确定色调映射函数,可以拟合一个或更多个参数函数,其中拟合由多个色调控制点的至少一部分约束。参数函数可以包括几乎任何程度的一个或更多个多项式。在一些实施例中,可以约束色调映射函数的拟合,使得色调映射函数至少包括低色调点,中间色调点和高色调点和/或与其交叉。在更进一步的实施例中,可以约束色调映射函数的拟合,使得色调映射函数包括附加色调控制点和/或与其交叉。在一些实施例中,色调映射函数的拟合受到约束,使得在中间色调点的x分量处评估的色调映射函数的导数和/或瞬时变化率等于增益值。。
可以采用各种样条方法来拟合和/或生成色调映射函数。生成色调映射函数可以包括生成和/或构造非线性曲线。非线性曲线可以是全局色调曲线(GTC)。该曲线可包括多个线性或弯曲段(例如,多个样条)。该曲线可以是贝塞尔曲线,例如,二次或三次贝塞尔曲线。可以通过二阶、三阶或更高阶参数方程来构造曲线。可以采用各种样条方法来生成曲线。可以构造样条或段之间的连接以确保色调映射函数的导数是连续的。
返回图1,在包括可选延迟单元150的实施例中(或延迟单元150的函数被接合),延迟单元150可缓冲色调映射函数,而HDR图像传感器144捕获源图像数据的一个或更多个附加帧。在捕获源图像数据的一个或更多个附加帧时,延迟单元150可以经由色调映射施加器158将缓冲色调映射函数提供给DAE HDR引擎140的图像数据管线164。其中帧滞后当在用于确定色调映射函数的源图像数据的帧和应用色调映射函数的源图像数据的帧之间使用时,可以不需要延迟单元150。例如,在色调映射生成器156可以提供色调映射函数到色调映射施加器的时候,可以将源图像数据的下一个后续和/或连续帧提供给HDR图像数据缓冲器146和/或色调映射施加器158。在不使用延迟单元150的情况下,色调映射生成器156可以将色调映射函数直接提供给色调映射施加器158。
色调映射施加器158可以接收源图像数据和色调映射函数。色调映射施加器158可以将色调映射函数应用于源图像数据以生成目标图像数据160。即,色调映射施加器可以变换源图像数据(例如,用于生成色调映射函数的源图像数据的帧和/或源图像数据的一个或更多个后续帧)以生成目标图像数据160。色调映射施加器158可以使用ISP 124将色调映射函数应用于源图像数据。在一些实施例中,可以采用ISP 124的管线将色调映射函数应用于源图像数据。如上所述,色调映射函数可以提供源图像数据的像素值与目标图像数据160的像素值的非线性映射。在一些实施例中,映射可以是一对一映射。在其他实施例中,映射可以不是一对一映射。例如,在低色调点的x分量大于0.0和/或高色调点的x分量小于1的实施例中,源图像数据可以通过相应的x分量被剪切。在这样的实施例中,映射可以不是一对一映射。
在一些实施例中,色调映射施加器158可以将色调映射的目标图像数据变换为SDR或LDR目标图像数据。在这样的实施例中,可以将伽马压缩函数应用于色调映射的目标图像数据,以生成颜色压缩的目标图像数据。可以由DAE HDR引擎140基于颜色压缩的目标图像数据输出SDR或LDR目标图像数据。
高动态范围成像和色调映射的方法
现在参考图3-5,本文描述的方法300,400和500的每个块包括可以使用硬件,固件和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的处理器执行。该方法还可以体现为存储在计算机存储介质上的计算机可用指令。这些方法可以由独立应用程序,服务或托管服务(独立或与另一托管服务组合)或另一产品的插件提供,仅举几个例子。另外,作为示例,关于图1的HDRI系统100描述了方法300,400和500。例如,方法300,400和500的至少一部分可以由DAE HDR引擎140和/或一个或更多个逻辑设备120A执行。然而,这些方法可以附加地或替代地由任何一个系统或系统的任何组合来执行,包括但不限于本文所述的那些。
图3是示出根据本公开的一些实施例的用于色调映射高动态范围图像数据的方法300的流程图。方法300开始于框B302,其中源图像数据由一个或更多个图像传感器(例如,图1的HDR图像传感器144)捕获。源图像数据可以是HDR图像数据。源图像数据可以是源图像数据的第一帧。在至少一些实施例中(例如,视频实施例),可以在源图像数据的第一帧之后捕获一个或更多个附加和/或连续的源图像数据的帧(例如,源图像数据的第二连续帧)。源图像数据可以编码源图像。如果捕获了源图像数据的附加帧,则源图像数据的附加帧可以编码一个或更多个附加源图像。因此,在框B302处捕获源图像数据可以包括捕获源图像数据的一帧或更多帧。
源图像数据可以由安装在有人驾驶或无人驾驶地面车辆或飞行器(例如,图1中的地面车辆104和/或飞行器106)上的至少一个图像传感器(例如,相机设备)捕获。车辆可以是手动车辆,自动车辆,部分自动车辆和/或遥控车辆。可以基于源图像数据来操作车辆。在至少一些实施例中,可以至少部分地基于在框B314处生成的目标图像数据来控制车辆。然而,本文描述的图像传感器可以是任何合适设备的一部分,例如手持或固定相机。在至少一个实施例中,图像传感器可以包括在一个或更多个机器人中。
在框B302处,可以在数字自动曝光高动态范围(DAE HDR)引擎处接收和/或提供源图像数据,例如但不限于图1的DAE HDR引擎140。在至少一个实施例中,源图像数据可以被提供给和/或由以下至少一个接收:HDR图像数据缓冲器146,ROI定位器148,统计模块152和/或DAE HDR引擎140的控制点选择器154。
在可选框B304处,可以将感兴趣区域(ROI)滤波器应用于所接收的源图像数据。例如,图1的ROI定位器148可以确定源图像数据的ROI。ROI定位器148可以将滤波器和/或掩模应用于与源图像的ROI相对应的源图像数据像素,使得经滤波的源图像数据仅包括与所确定的源图像的ROI相对应的图像数据。注意,框B304是可选的,并且不需要基于ROI滤波和/或分析源图像数据。
在可选框B306处,可以从滤波的(或未滤波的)源图像数据生成和/或确定一个或更多个统计度量。例如,图1的统计模块152可以基于源图像数据的像素值(或者与经编码的源图像的ROI对应的源图像数据的部分的像素值)来确定和/或生成多个统计度量。
在框B308,确定源图像数据的多个色调控制点。例如,DAE HDR引擎140的控制点选择器154可以基于源图像数据确定和/或选择低色调点,中间色调点和/或高色调点。在基于ROI滤波源图像数据的实施例中,可以基于源图像数据的与源图像的ROI对应的部分来确定色调控制点。在框B306处确定多个统计度量的实施例中,可以至少部分地基于统计度量的至少一部分来确定色调控制点的至少一部分。在至少一些实施例中,可以在框B308确定附加控制点。例如,可以在框B308另外确定至少一个闪耀抑制控制点。至少结合图4的方法400讨论确定多个控制点的各种实施例。结合图2A讨论确定低色调点,中间色调点,高色调点和闪耀抑制点的进一步实施例。
在框B310,可以基于色调控制点确定色调映射函数。例如,图1的色调映射生成器156可基于色调控制点确定和/或生成色调映射函数。因此,色调映射函数可以基于与源图像的ROI和/或源图像数据的多个统计度量相对应的源图像数据。
至少结合图2A-2B和图4讨论确定色调映射函数的各种实施例。然而,本文简要地说,可以至少基于中间色调点和闪耀抑制点来确定增益线。可以基于增益线确定增益值。更具体地,增益值可以至少近似等于增益线的斜率,增益线是包括中间色调点和闪耀抑制点的线。色调映射函数可以至少基于低色调点,中间色调点,高色调点和增益值。例如,色调映射函数可以是拟合函数,其被约束为包括和/或通过低色调点,中间色调点和高色调点中的每一个。
在至少一个实施例中,色调映射函数的拟合受到约束,使得当在中间色调点处评估时,色调映射函数的导数和/或瞬时变化率至少近似等于增益值。在至少一个实施例中,可以采用第一逻辑设备(例如,图1的通用处理器122)来确定色调映射函数。在至少一个实施例中,用于确定和/或生成色调映射函数的逻辑设备可以是相机计算设备的通用处理器,该相机计算设备包括在捕获源图像数据的图像传感器。
如全文所述,色调映射函数提供从源图像数据的像素值到目标图像数据的像素值的映射。因此,色调映射函数可以是标量函数,其取决于单个标量变量,例如,源图像数据的单个像素的标量值。在源图像数据的标量像素值处评估的函数的标量值可以是对应像素的目标图像数据的色调映射标量值。如全文所述,映射可以是一对一的非线性映射。因为色调映射函数可以被约束为包括低色调点,所以色调映射函数可以将具有低色调点的x分量的标量值的源图像的像素映射到低色调点的y分量的标量值。
在一些实施例中,可以剪切具有小于低色调点的x分量的值的源图像数据的任何像素,使得剪切像素的值被设置为低色调点的x分量。在至少一个实施例中,可以剪切具有小于闪耀抑制点的x分量的值的源图像数据的任何像素,使得剪切像素的值被设置为闪耀抑制点的x分量。因为色调映射函数可以被约束为包括中间色调点,所以色调映射函数可以将具有中间色调点的x分量的标量值的源图像的像素映射到该中间色调点的y分量的标量值。类似地,因为色调映射函数可以被约束为包括高色调点,所以色调映射函数可以将具有高色调点的x分量的标量值的源图像的像素映射到高色调点的y分量的标量值。在一些实施例中,可以剪切具有大于高色调点的x分量的值的源图像数据的任何像素,使得被剪切的像素的值被设置为高色调点的x分量。图2B中示出了非线性色调映射函数的一个非限制性实施例。
在可选框B312处,可以采用帧延迟。例如,图1的延迟单元15可以缓冲色调映射函数,而HDR图像传感器144捕获源图像数据的一个或更多个附加帧(例如,源图像数据的后续和/或连续的第二帧)。框B312的帧延迟可以包括缓冲图像数据的第一帧(其被采用以在框B310处生成色调映射),同时捕获图像数据的第二帧,或者至少直到图像数据的第二帧被提供给DAE HDR引擎为止。
在框314处,可以基于源图像数据和色调映射函数生成目标图像数据。例如,色调映射施加器158可以将色调映射函数应用于源图像数据。目标图像数据可以编码目标图像,其中目标图像数据的像素值由应用于源图像数据的色调映射函数来定义。将色调映射函数应用于源图像数据可以包括将色调映射函数应用于源图像数据的像素值。将色调映射函数应用于源图像数据可以包括经由色调映射函数提供的源和目标图像数据之间的非线性和一对一映射和/或对应关系将源图像数据变换和/或映射到目标图像数据。在包括帧延迟的实施例中,色调映射函数可以应用于源图像数据的帧(例如,源图像数据的第二帧),其是用于生成色调映射函数的源图像数据的帧的后续和/或连续(例如,源图像数据的第一帧)。
在不采用框B312的帧延迟的实施例中,色调映射函数可以应用于用于确定色调映射函数的源图像数据的相同帧。在一些实施例中,可以采用第二逻辑设备(例如,图1的图像信号处理器(ISP)124)将色调映射函数应用于源图像数据以生成目标图像数据。在一些实施例中,所采用的ISP可以是用于捕获源图像数据的相机计算设备的ISP。在至少一个实施例中,可以采用ISP的管线将色调映射函数应用于源图像数据。
在一些实施例中,生成目标图像数据可以包括生成标准动态范围(SDR)或低动态范围(LDR)目标图像数据。SDR或LDR目标图像数据可以基于色调映射函数和/或色调映射目标图像数据的像素值。例如,可以将伽马压缩函数应用于色调映射目标图像数据,以生成颜色压缩的目标图像数据。可以基于颜色压缩的目标图像数据生成SDR或LDR目标图像数据。
图4是示出根据本公开的一些实施例的、用于从较高动态范围图像数据生成较低动态范围图像数据的方法400的流程图。方法400的框B402-B410包括选择和/或确定多个色调控制点。如全文所述,可以经由图1的控制点选择器154选择和/或确定多个色调控制点。结合至少图3的方法300的框B308讨论确定多个控制点的各种实施例。多个控制色调点的确定可以基于源图像数据的像素值,与源图像中的ROI对应的源图像数据的部分的像素值,和/或基于源图像数据的像素值的多个统计度量。还如在全文中指出的,多个色调控制点可以包括至少低色调点,中间色调点和/或高色调点。在一些实施例中,多个色调控制点可以另外包括闪耀抑制点。这样的色调控制点至少在图2A-2B中示出。还应注意,方法400的部分可以由第一逻辑设备(例如,图1的通用处理器122)执行,并且方法400的其他部分可以由第二逻辑设备执行(例如,图1的图像信号处理器(ISP)124)。
在一些实施例中,在方法400的初始化之前,可以对源图像数据的像素值进行归一化,使得归一化的源图像数据的像素值的范围为[0,1]。方法400开始于框B402,其中基于源图像数据确定中间色调点。在一些实施例中,为了确定中间色调点的x分量,可以通过高色调滤波器和低色调滤波器对源图像数据进行滤波,以生成滤波后的源图像数据。高色调滤波器滤除包括大于高色调阈值的像素值的源图像数据部分。低色调滤波器滤除包括小于低色调阈值的像素值的源图像数据的部分。中间色调点的x分量可以通过平均在应用高色调和低色调滤波器之后保留的源图像数据的部分的像素值来确定。在其他实施例中,高色调和低色调滤波器不应用于源图像数据。
在一些实施例中,像素值的平均可以包括对像素值进行对数平均。在这样的实施例中,可以通过将对数函数应用于滤波或未滤波的源图像数据来生成对数变换的图像数据像素值。可以基于源图像数据来选择对数函数的基数。在一个实施例中,对数函数的基数是10。在其他实施例中,对数函数可以是自然对数函数。可以确定对数变换像素值的平均值。对数变换像素值的平均值可以由对数函数的对应基数取幂。可以将中间色调点的x分量设置为源图像数据的对数变换像素值的平均值的取幂。可以将中间色调点的y分量设置为目标图像数据的指定中间色调值。
在框B404,可以基于源图像数据确定低色调点。在一个非限制性实施例中,确定和/或生成源图像数据的像素值的子集,其中包括在子集中的像素的每个值小于从子集中排除的像素的像素值。也就是说,可以经由低色调滤波器对源图像数据进行滤波,使得在滤波之后剩余的仅有像素值是具有小于低色调阈值的像素值的那些像素。可以基于像素值的子集来确定低色调点的x分量。例如,可以对在低色调滤波处理中存活的像素值进行平均以确定低色调点的x分量。可以确定和/或选择低色调点的y分量作为目标图像数据的最小像素值。在至少一个实施例中,低色调点的y分量被设置为0.0。低色调点可以是黑点。
在框B406,可以基于源图像数据确定高色调点。在一个非限制性实施例中,确定和/或生成源图像数据的像素值的子集,其中包括在子集中的像素的每个值大于从子集中排除的像素的像素值。也就是说,可以经由高色调滤波器对源图像数据进行滤波,使得在滤波之后剩余的仅有像素值是像素值大于高色调阈值的像素。可以基于像素值的子集来确定高色调点的x分量。例如,可以对在高色调滤波处理中存活的像素值进行平均以确定高色调点的x分量。可以确定和/或选择高色调点的y分量作为目标图像数据的最大像素值。在至少一个实施例中,低色调点的y分量被设置为1.0。高色调可能是白点。通过将低色调点的y分量设置为0.0并设置高色调分量的y分量,将目标图像数据归一化到[0,1]的范围。
在框B408处,可以确定闪耀抑制点。可以将闪耀抑制点的x分量设置为将在色调中抑制的最大闪耀的值。在一些实施例中,闪耀抑制点的x分量可以是用户选择的。在其他实施例中,可以基于源图像的像素值和/或源图像数据的所确定的多个统计度量来动态地确定x分量。例如,可以基于中间色调像素值的百分比或被低色调阈值化的像素值的值来设置闪耀抑制点的x分量。在各种实施例中,可以选择闪耀抑制点的x分量大于低色调点的x分量,但是小于中间色调点的x分量。在各种非限制性实施例中,将闪耀抑制点的y分量设定为0.0。在其他实施例中,可以将闪耀抑制点的y分量设置或选择为大于0.0,但是小于中间色调点的y分量。
在可选框B410处,基于源图像数据确定一个或更多个附加控制点。在框B412,可以基于控制点预处理源数据。例如,可以剪切具有小于低色调点的x分量的像素值的源图像数据的每个像素,使得这些像素的像素值被设置为低色调点的x分量的标量值。在至少一个实施例中,可以剪切具有小于闪耀抑制点的x分量的像素值的源图像数据的每个像素,使得这些像素的像素值被设置为闪耀抑制点的x分量的标量值。此外,可以剪切具有大于高色调点的x分量的像素值的源图像数据的每个像素,使得这些像素的像素值被设置为高色调点的x分量的标量值。
在框B414,可以基于中间色调点和闪耀抑制点来确定增益值。例如,可以通过中间色调点和闪耀抑制点构造增益线。增益值可以设置为增益值线的斜率。在各种实施例中,斜率是正的。增益值线的实施例和相应的斜率在图2A中示出。
在框B416,基于低色调点,中间色调点和高色调点确定色调映射函数。在一些实施例中,色调映射函数的确定还基于增益值。在其他实施例中,对色调映射函数的确定还基于在框B410中确定的一个或更多个附加色调控制点。在各种实施例中,可以采用图1的色调映射生成器156来确定色调映射函数。更具体地,色调映射生成器156可以使用图1的通用处理器122来生成色调映射函数。
为了确定色调映射函数,可以拟合一个或更多个参数函数,其中拟合受到各种色调控制点的至少一部分的约束。参数函数可以包括几乎任何程度的一个或更多个多项式。在一些实施例中,可以约束色调映射函数的拟合,使得色调映射函数至少包括低色调点,中间色调点和高色调点和/或与其交叉。在更进一步的实施例中,可以约束色调映射函数的拟合,使得色调映射函数包括附加色调控制点和/或与其交叉。在一些实施例中,色调映射函数的拟合受到约束,使得在中间色调点的x分量处评估的色调映射函数的导数和/或瞬时变化率等于增益值。图2B中示出了色调映射函数的一个实施例。
可以采用各种样条方法来拟合和/或生成色调映射函数。生成色调映射函数可以包括生成和/或构造非线性曲线。非线性曲线可以是全局色调曲线(GTC)。该曲线可包括多个线性或弯曲段(例如,多个样条)。该曲线可以是贝塞尔曲线,例如,二次或三次贝塞尔曲线。可以通过二阶,三阶或更高阶参数方程来构造曲线。可以采用各种样条方法来生成曲线。可以构造样条或段之间的连接以确保色调映射函数的导数是连续的。
在框B418,可以应用色调映射函数来生成目标图像数据。在各种实施例中,可以采用图1的色调映射施加器158,通过色调映射函数将源图像数据变换为目标图像数据。色调映射施加器158可以采用图1的ISP 124,对源图像数据应用非线性变换。在至少一个实施例中,可以采用ISP 124的管线来应用变换并生成目标图像数据。
框B420和B422是可选框,其可用于从色调映射目标图像数据生成SDR目标图像数据或LDR图像数据。在框B420,可以将伽马压缩函数应用于色调映射图像数据以生成颜色压缩图像数据。在框B422,可以基于颜色压缩源图像数据生成SDR或LDR目标图像数据。
图5是示出根据本公开的一些实施例的、用于分发色调映射的操作的方法500的流程图。在框B502,可以采用第一逻辑设备来确定色调映射函数。在框B502,第一逻辑设备可以是图1的逻辑设备120中的任何一个,例如但不限于通用处理器122,图像信号处理器(ISP)124,ASIC 126和/或FPGA128。在一些实施例中,用于确定色调映射的第一逻辑设备是通用处理器122。在至少一个实施例中,采用图形处理单元(GPU)来确定色调映射函数。
在框B504,可以采用第二逻辑设备将色调映射函数应用于源图像数据并生成目标图像源数据。在框B504,第二逻辑设备可以是逻辑设备120中的任何一个,诸如但不限于通用处理器122,ISP 124,ASIC 126和/或FPGA 128。在一些实施例中,用于应用色调映射函数的第二逻辑设备是ISP 124。可以采用ISP 124的管线来应用色调映射函数并将源图像数据变换为目标图像数据。在至少一个实施例中,采用GPU来确定色调映射函数。
自主车辆的示例实施例
图6A是根据本公开的一些实施例的示例自主车辆104的图示。自主车辆104(在本文中可选地称为“车辆104”)可包括乘客车辆,诸如汽车,卡车,公共汽车和/或容纳一个或更多个乘客的其他类型的车辆。自动驾驶车辆通常根据自动化水平进行描述,该自动化水平由国家公路交通安全管理局(NHTSA),美国交通部的一个部门和汽车工程师协会(SAE)的“与用于公路机动车辆的驾驶自动化系统相关的术语的分类和定义(Taxonomy andDefinitions for Terms Related to Driving Automation Systems for On-Road MotorVehicles)”(标准号J3016-201806,发布于2018年6月15日,标准号为J3016-201609,发布于2016年9月30日,以及该标准的先前版本和未来版本)。车辆104可以具有根据自动驾驶水平的水平3至水平5中的一个或更多个的功能。例如,取决于实施例,车辆104可以具有条件自动化(水平3),高自动化(水平4)和/或完全自动化(水平5)。
车辆104可包括诸如底盘,车身,车轮(例如,2,4,6,8,18等),轮胎,车轴的部件和车辆的其他部件。车辆104可包括推进系统650,诸如内燃机,混合动力发电厂,全电动发动机和/或其他推进系统类型。推进系统650可以连接到车辆104的传动系,其可以包括变速器,以实现车辆104的推进。推进系统650可以响应于接收来自节气门/加速器652的信号而被控制。
当推进系统650运行时(例如,当车辆运动时),可以使用可以包括方向盘的转向系统654来引导车辆104(例如,沿着期望的路径或路线)。转向系统654可以从转向致动器656接收信号。方向盘可以是可选的,用于完全自动化(水平5)功能。
制动传感器系统646可用于响应于从制动致动器648和/或制动传感器接收信号而操作车辆制动器。
可以包括一个或更多个片上系统(SoC)604(图6C)和/或一个或更多个GPU的一个或更多个控制器636可以向车辆104的一个或更多个组件和/或系统提供信号(例如,代表命令)。例如,一个或更多个控制器可以发送信号以通过一个或更多个制动致动器648操作车辆制动,通过一个或更多个转向致动器656来操作转向系统654,通过一个或更多个油门/极速器652来操作推进系统650。一个或更多个控制器636可以包括一个或更多个处理传感器信号的机载(例如,集成)计算设备(例如,超级计算机),并输出操作命令(例如,信号代表命令)以使能自动驾驶和/或帮助人类驾驶员驾驶车辆104。一个或更多个控制器636可包括用于自动驾驶功能的第一控制器636,用于功能安全功能的第二控制器636,用于人工智能功能(例如,计算机视觉)的第三控制器636,用于信息娱乐功能的第四控制器636,用于在紧急情况下冗余的第五控制器636,和/或其他控制器。在一些示例中,单个控制器636可以处理两个或更多个上述功能,两个或更多个控制器636可以处理单个功能,和/或其任何组合。
一个或更多个控制器636可以响应于从一个或更多个传感器(例如,传感器输入)接收的传感器数据提供用于控制车辆104的一个或更多个部件和/或系统的信号。传感器数据可以从例如但不限于一个或更多个全球导航卫星系统传感器658(例如,一个或更多个全球定位系统传感器),一个或更多个RADAR传感器660,一个或更多个超声波传感器662,一个或更多个LIDAR传感器664,一个或更多个惯性测量单元(IMU)传感器666(例如,一个或更多个加速度计,一个或更多个陀螺仪,一个或更多个磁罗盘,一个或更多个磁力计等),一个或更多个麦克风696,一个或更多个立体相机668,一个或更多个宽视野相机670(例如,鱼眼相机),一个或更多个红外相机672,一个或更多个环绕相机674(例如,360度相机),一个或更多个远程和/或中程相机698,一个或更多个速度传感器644(例如,用于测量车辆104的速度),一个或更多个振动传感器642,一个或更多个转向传感器640,一个或更多个制动传感器(例如,作为制动传感器系统646的一部分)和/或其他传感器类型。
一个或更多个控制器636可以从车辆104的仪表组632接收输入(例如,由输入数据表示)并通过人机界面(HMI)显示器634,可听见的信号器,扬声器和/或通过车辆104的其他组件提供输出(例如,由输出数据,显示数据等表示)。输出可以包括诸如车辆速率,速度,时间,地图数据(例如,图6C的HD地图622),位置数据(例如,车辆104的位置,例如在地图上),方向,其他车辆的位置(例如,占用网格),关于如一个或更多个控制器636所感知的物体的信息和物体的状态等。例如,HMI显示器634可以显示关于一个或更多个物体的存在的信息(例如,路牌,警示标志,交通灯改变等),和/或关于车辆已经做出的、正在做出的,或将要做出的驾驶操纵的信息(例如,现在改变车道,两英里后从34B出等)。
车辆104还包括网络接口624,其可以使用一个或更多个无线天线626和/或一个或更多个调制解调器通过一个或更多个网络进行通信。例如,网络接口624可以能够通过LTE,WCDMA,UMTS,GSM,CDMA2000等进行通信。一个或更多个无线天线626还可以通过使用局域网(如蓝牙,蓝牙LE,Z-Wave,ZigBee等),和/或一个或更多个低功率广域网(LPWAN)(诸如LoRaWAN,SigFox等)来实现环境中的物体(例如,车辆,移动设备等)之间的通信。
图6B是根据本公开的一些实施例的、图6A的示例自主车辆104的相机位置和视野的示例。相机和各自的视野是一个示例实施例,并不旨在限制。例如,可以包括附加和/或替代相机和/或相机可以位于车辆104上的不同位置。
用于相机的相机类型可包括但不限于可适于与车辆104的组件和/或系统一起使用的数码相机。一个或更多个相机可在汽车安全完整性水平(ASIL)B和/或另一个ASIL下操作。取决于实施例,相机类型可以具有任何图像捕获率,诸如60帧/秒(fps),620fps,240fps等。相机可能够使用卷帘门,全局快门,其他类型的快门或其组合。在一些示例中,滤色器阵列可以包括红色透明透明透明(RCCC)滤色器阵列,红色透明透明蓝色(RCCB)滤色器阵列,红色蓝色绿色透明(RBGC)滤色器阵列,Foveon X3滤色器阵列,拜耳传感器(RGGB)滤色器阵列,单色传感器滤色器阵列和/或其他类型的滤色器阵列。在一些实施例中,可以使用清晰像素相机,例如具有RCCC,RCCB和/或RBGC滤色器阵列的相机,以努力增加光灵敏度。
在一些示例中,一个或更多个相机可用于执行高级驾驶员辅助系统(ADAS)功能(例如,作为冗余或故障安全设计的一部分)。例如,可以安装多功能单声道相机以提供包括离开车道警告,交通标志辅助和智能前照灯控制的功能。一个或更多个相机(例如,所有相机)可以同时记录和提供图像数据(例如,视频)。
一个或更多个相机可以安装在安装组件中,例如定制设计(3-D打印)组件,以便切除车内的杂散光和反射(例如,来自挡风玻璃镜中反射的仪表板的反射),其可能会干扰相机的图像数据捕获能力。参考翼镜安装组件,翼镜组件可以定制3D打印,使得相机安装板与翼镜的形状相匹配。在一些示例中,一个或更多个相机可以集成到机翼镜中。对于侧视相机,一个或更多个相机也可以集成在舱每个角落的四个支柱内。
具有包括车辆104前方的环境的一部分的视野的相机(例如,前向相机)可以用于环绕视图,以帮助标识面向前方的路径和障碍物,以及在一个或更多个控制器636和/或控制SoC的帮助下辅助提供对生成占用网格和/或确定优选车辆路径至关重要的信息。前向相机可用于执行许多与LIDAR相同的ADAS功能,包括紧急制动,行人检测和防撞。前向相机还可以用于ADAS功能和系统,包括离开车道警告(“LDW”),自主巡航控制(“ACC”)和/或其他功能,例如交通标志识别。
可以在前向配置中使用各种相机,包括例如包括CMOS(互补金属氧化物半导体)彩色成像器的单眼相机平台。另一示例可以是一个或更多个宽视野相机670,其可以用于感知从周边进入视野的物体(例如,行人,穿越交通或自行车)。尽管图6B中仅示出了一个宽视野相机,在车辆104上可以有任意数量的宽视野相机670。此外,一个或更多个远程相机698(例如,长视野立体相机对)可以用于基于深度的物体检测,尤其是对于尚未训练神经网络的物体。一个或更多个远程相机698还可以用于物体检测和分类,以及基本物体跟踪。
一个或更多个立体相机668也可以包括在前向配置中。一个或更多个立体相机668可以包括集成控制单元,其包括可缩放处理单元,其可以在单个芯片上提供可编程逻辑(FPGA)和具有集成CAN或以太网接口的多核心微处理器。这样的单元可以用于生成车辆环境的3-D地图,包括图像中所有点的距离估计。替代的一个或更多个立体相机668可以包括一个或更多个紧凑的立体视觉传感器,其可以包括两个相机镜头(左右各一个)和图像处理芯片,该图像处理芯片可以测量从车辆到目标物体的距离并使用生成的信息(例如,元数据)来激活自主紧急制动和离开车道警告功能。除了本文描述的那些之外或者作为另外一种选择,可以使用其他类型的一个或更多个立体相机668。
具有包括车辆104侧面的环境的一部分的视野的相机(例如,侧视相机)可用于环绕视图,提供用于创建和更新占用网格的信息,以及至于生成侧面碰撞碰撞警告。例如,一个或更多个环绕相机674(例如,如图6B中所示的四个环绕相机674)可以定位在车辆104上。一个或更多个环绕相机674可以包括一个或更多个宽视野相机670,一个或更多个鱼眼相机,一个或更多个360度相机和/或类似物。例如,四个鱼眼相机可以定位在车辆的前部,后部和侧面。在替代布置中,车辆可以使用三个环绕相机674(例如,左,右和后),并且可以利用一个或更多个其他相机(例如,前向相机)作为第四环绕视图相机。
具有包括车辆104后部的环境的一部分的视野的相机(例如,后视相机)可用于停车辅助,环绕视图,后部碰撞警告,以及创建和更新占用网格。可以使用各种各样的相机,包括但不限于也适合作为一个或更多个前向相机的相机(例如,一个或更多个远程和/或中程相机698,一个或更多个立体相机668,一个或更多个红外相机672等),如本文所述的。
图6C是根据本公开的一些实施例的、图6A的示例自主车辆104的示例系统架构的框图。应该理解的是,这里描述的这个和其他布置仅作为示例阐述。除了所示的那些之外或代替所示的那些,可以使用其他布置和元件(例如,机器,接口,功能,顺序,功能分组等),并且可以完全省略一些元件。此外,本文描述的许多元件是功能实体,其可以实现为离散或分布式组件或者与其他组件一起实现,并且可以以任何合适的组合和位置实现。这里描述的由实体执行的各种功能可以由硬件,固件和/或软件来执行。例如,各种功能可以由执行存储在存储器中的指令的处理器执行。
图6C中的车辆104的组件,特征和系统中的每一个都示出为经由总线602连接。总线602可以包括控制器区域网络(CAN)数据接口(在本文中可选地称为“CAN总线”)。CAN可以是车辆104内部的网络,用于辅助控制车辆104的各种特征和功能,例如制动器的致动,加速,制动,转向,挡风玻璃刮水器等。CAN总线可以被配置为具有数十个甚至数百个节点,每个节点都有自己唯一的标识符(例如,CAN ID)。可以读取CAN总线以找到方向盘角度,地面速度,发动机每分钟转数(RPM),按钮位置和/或其他车辆状态指示器。CAN总线可符合ASILB.
虽然总线602在本文中被描述为CAN总线,但是这不是限制性的。例如,除CAN总线之外或作为其替代,可以使用FlexRay和/或以太网。另外,尽管使用单条线来表示总线602,但这不是限制性的。例如,可以存在任何数量的总线602,其可以包括一个或更多个CAN总线,一个或更多个FlexRay总线,一个或更多个以太网总线,和/或使用不同协议的一个或更多个其他类型的总线。在一些示例中,两个或更多个总线602可以用于执行不同的功能,和/或可以用于冗余。例如,第一总线602可以用于防撞功能,第二总线602可以用于致动控制。在任何示例中,每个总线602可以与车辆104的任何组件通信,并且两个或更多个总线602可以与相同的组件通信。在一些示例中,每个SoC 604,每个控制器636和/或车辆内的每个计算机可以访问相同的输入数据(例如,来自车辆104的传感器的输入),并且可以连接到公共总线,例如CAN总线。
车辆104可以包括一个或更多个控制器636,例如本文关于图6A描述的那些控制器。一个或更多个控制器636可以用于各种功能。一个或更多个控制器636可以耦合到车辆104的各种其他组件和系统中的任何一个,并且可以用于控制车辆104、车辆104的人工智能、车辆104的信息娱乐,和/或类似。
车辆104可以包括一个或更多个片上系统(SoC)604。SoC 604可以包括一个或更多个CPU 606,一个或更多个GPU 608,一个或更多个处理器610,一个或更多个高速缓存612,一个或更多个加速器614,一个或更多个数据存储器616和/或未示出的其他组件和特征。一个或更多个SoC 604可用于在各种平台和系统中控制车辆104。例如,一个或更多个SoC 604可以在系统(例如,车辆104的系统)中与HD地图622组合,HD地图622可以经由网络接口624从一个或更多个服务器(例如,图6D的一个或更多个服务器678)获得地图刷新和/或更新。
一个或更多个CPU 606可以包括CPU集群或CPU复合体(在本文中可选地称为“CCPLEX”)。一个或更多个CPU 606可以包括多个核心和/或L2高速缓存。例如,在一些实施例中,一个或更多个CPU 606可以包括相干多处理器配置中的八个核心。在一些实施例中,一个或更多个CPU 606可以包括四个双核心集群,其中每个集群具有专用L2高速缓存(例如,2MB L2高速缓存)。一个或更多个CPU 606(例如,CCPLEX)可以被配置为支持同时群集操作,使得一个或更多个CPU 606的群集的任何组合在任何给定时间都是活动的。
一个或更多个CPU 606可以实现包括以下特征中的一个或更多个的功率管理能力:各个硬件块可以在空闲时自动时钟门控以节省动态功率;当核心由于执行WFI/WFE指令而没有主动执行指令时,每个核心时钟可以被门控;每个核心可以独立电源门控;当所有核心都是时钟门控或电源门控时,每个核心集群可以独立地进行时钟门控;和/或当所有核心都是电源门控时,每个核心集群可以独立地进行电源门控。一个或更多个CPU 606还可以实现用于管理功率状态的增强算法,其中指定允许的功率状态和预期的唤醒时间,并且硬件/微代码确定针对核心,集群和CCPLEX输入的最佳功率状态。处理核心可以在软件中支持简化的功率状态输入序列,其中工作被卸载到微代码。
一个或更多个GPU 608可以包括集成GPU(在本文中可选地称为“iGPU”)。一个或更多个GPU 608可以是可编程的,并且可以对并行工作负载有效。在一些示例中,一个或更多个GPU 608可以使用增强张量指令集。一个或更多个GPU 608可以包括一个或更多个流式微处理器,其中每个流式微处理器可以包括L1高速缓存(例如,具有至少96KB存储容量的L1高速缓存),并且两个或更多个流式微处理器可以共享L2高速缓存(例如,具有512KB存储容量的L2缓存)。在一些实施例中,一个或更多个GPU 608可以包括至少八个流式微处理器。一个或更多个GPU 608可以使用一个或更多个计算应用程序编程接口(API)。另外,一个或更多个GPU608可以使用一个或更多个并行计算平台和/或编程模型(例如,NVIDIA的CUDA)。
可以针对汽车和嵌入式使用情况中的最佳性能对一个或更多个GPU 608进行功率优化。例如,一个或更多个GPU 608可以在鳍片(Fin)场效应晶体管(FinFET)上制造。然而,这不是限制性的,并且可以使用其他半导体制造工艺来制造一个或更多个GPU 608。每个流式微处理器可以包括分成多个块的多个混合精度处理核心。例如但不限于,可以将64个PF32核心和32个PF64核心划分为四个处理块。在这样的示例中,每个处理块可以被分配16个FP32核心,8个FP64核心,16个INT32核心,用于深度学习矩阵算术的两个混合精度NVIDIATENSOR CORE,L0指令高速缓存,线程束(warp)调度器,分派单元,以及/或64KB的寄存器文件。此外,流式微处理器可以包括独立的并行整数和浮点数据路径,以通过混合计算和寻址计算来提供工作负载的有效执行。流式微处理器可以包括独立的线程调度能力,以实现并行线程之间的更细粒度的同步和协作。流式微处理器可以包括组合的L1数据高速缓存和共享存储器单元,以便在简化编程的同时提高性能。
一个或更多个GPU 608可以包括高带宽存储器(HBM)和/或16GB HBM2存储器子系统,以在一些示例中提供大约900GB/秒的峰值存储器带宽。在一些示例中,除了HBM存储器之外或作为其替代,可以使用同步图形随机存取存储器(SGRAM),例如图形双倍数据速率类型五同步随机存取存储器(GDDR5)。
一个或更多个GPU 608可以包括统一存储器技术,其包括访问计数器,以允许更准确地将存储器页面迁移到最频繁访问它们的处理器,从而提高处理器之间共享的存储器范围的效率。在一些示例中,地址转换服务(ATS)支持可以用于允许一个或更多个GPU 608直接访问一个或更多个CPU 606页表。在这样的示例中,当一个或更多个GPU 608存储器管理单元(MMU)经历未命中时,可以将地址转换请求发送到一个或更多个CPU 606。作为响应,一个或更多个CPU 606可以在其页面中查找用于地址的虚拟到物理映射的表并将转换发送回一个或更多个GPU608。因此,统一存储器技术可以允许单个统一的虚拟地址空间用于一个或更多个CPU 606和一个或更多个CPU 608二者的存储器,从而简化了一个或更多个GPU608编程以及将应用移植至一个或更多个GPU 608。
另外,一个或更多个GPU 608可以包括访问计数器,其可以跟踪一个或更多个GPU608对其他处理器的存储器的访问频率。访问计数器可以帮助确保将存储器页面移动到最频繁访问页面的处理器的物理存储器。
一个或更多个SoC 604可包括任何数量的高速缓存612,包括本文描述的那些高速缓存。例如,一个或更多个高速缓存612可以包括可用于一个或更多个CPU 606和一个或更多个GPU 608二者的L3高速缓存(例如,连接一个或更多个CPU 606和一个或更多个GPU608两者)。一个或更多个高速缓存612可以包括回写高速缓存,其可以跟踪行的状态,例如通过使用高速缓存一致性协议(例如,MEI,MESI,MSI等)。取决于实施例,L3高速缓存可以包括4MB或更多,尽管可以使用更小的高速缓存大小。
一个或更多个SoC 604可包括一个或更多个加速器614(例如,硬件加速器,软件加速器或其组合)。例如,一个或更多个SoC 604可以包括硬件加速集群,其可以包括经优化的硬件加速器和/或大的片上存储器。大的片上存储器(例如,4MB的SRAM)可以使硬件加速集群能够加速神经网络和其他计算。硬件加速集群可用于补充一个或更多个GPU 608并卸载一个或更多个GPU 608的一些任务(例如,以释放一个或更多个GPU 608的更多周期以执行其他任务)。作为示例,一个或更多个加速器614可以用于目标工作负载(例如,感知卷积神经网络(CNN)等),其足够稳定以适于加速。本文使用的术语“CNN”可以包括所有类型的CNN,包括基于区域的或区域的卷积神经网络(RCNN)和快速RCNN(例如,用于物体检测)。
一个或更多个加速器614(例如,硬件加速群集)可以包括一个或更多个深度学习加速器(DLA)。一个或更多个DLA可以包括一个或更多个张量(Tensor)处理单元(TPU),其可以被配置为每秒为深度学习应用和推理提供额外的10万亿次操作。TPU可以是被配置为并且被优化用于执行图像处理功能的加速器(例如,用于CNN,RCNN等)。一个或更多个DLA还可以针对特定的一组神经网络类型和浮点运算以及推理进行优化。一个或更多个DLA的设计可以提供比通用GPU更高的每毫米性能,并且远远超过CPU的性能。一个或更多个TPU可以执行若干功能,包括单实例卷积功能,例如支持用于特征和权重的INT8,INT16和FP16数据类型,以及后处理器功能。
对于各种功能中的任何一种,一个或更多个DLA可以快速且有效地对处理或未处理的数据执行神经网络(尤其是CNN),其包括例如但不限于:用于使用来自相机传感器的数据的物体标识和检测的CNN;用于使用来自相机传感器的数据进行距离估计的CNN;用于使用来自麦克风的数据进行紧急车辆检测和标识和检测的CNN;用于使用来自相机传感器的数据进行面部识别和车主识别的CNN;和/或用于安全和/或安全相关事件的CNN。
一个或更多个DLA可以执行一个或更多个GPU 608的任何功能,并且通过使用推断加速器,例如,设计者可以针对任何功能将一个或更多个DLA或一个或更多个GPU 608定为目标。例如,设计者可以将对CNN的处理和浮点运算集中在一个或更多个DLA上,并且将其他功能留给一个或更多个GPU 608和/或一个或更多个其他加速器614。
一个或更多个加速器614(例如,硬件加速群集)可以包括一个或更多个可编程视觉加速器(PVA),其可以替代地在本文中称为计算机视觉加速器。一个或更多个PVA可以被设计和配置为加速用于高级驾驶员辅助系统(ADAS),自动驾驶和/或增强现实(AR)和/或虚拟现实(VR)应用的计算机视觉算法。一个或更多个PVA可以在性能和灵活性之间提供平衡。例如,一个或更多个PVA中的每个PVA可以包括例如但不限于,任意数量的精简指令集计算机(RISC)核心,直接存储器访问(DMA)和/或任何数量的矢量处理器。
RISC核心可以与图像传感器(例如,本文描述的任何相机的图像传感器),一个或更多个图像信号处理器等交互。每个RISC核心可以包括任何数量的存储器。根据实施例,RISC核心可以使用许多协议中的任何协议。在一些示例中,RISC核心可以执行实时操作系统(RTOS)。可以使用一个或更多个集成电路设备,专用集成电路(ASIC)和/或存储器设备来实现RISC核心。例如,RISC核心可以包括指令高速缓存和/或紧密耦合的RAM。
DMA可以使一个或更多个PVA的组件独立于一个或更多个CPU606访问系统存储器。DMA可以支持用于向PVA提供优化的任何数量的特征,包括但不限于,支持多维寻址和/或循环寻址。在一些示例中,DMA可以支持多达六个或更多维的寻址,其可以包括块宽度,块高度,块深度,水平块步进,垂直块步进和/或深度步进。
矢量处理器可以是可编程处理器,其可以被设计为有效且灵活地执行用于计算机视觉算法的编程并提供信号处理能力。在一些示例中,PVA可以包括PVA核心和两个矢量处理子系统分区。PVA核心可以包括处理器子系统,一个或更多个DMA引擎(例如,两个DMA引擎)和/或其他外围设备。矢量处理子系统可以作为PVA的主处理引擎操作,并且可以包括矢量处理单元(VPU),指令高速缓存和/或矢量存储器(例如,VMEM)。VPU核心可以包括数字信号处理器,例如单指令,多数据(SIMD),超长指令字(VLIW)数字信号处理器。SIMD和VLIW的组合可以提高吞吐量和速度。
每个矢量处理器可以包括指令高速缓存,并且可以耦合到专用存储器。结果,在一些示例中,每个矢量处理器可以被配置为独立于其他矢量处理器执行。在其他示例中,包括在特定PVA中的矢量处理器可以被配置为采用数据并行性。例如,在一些实施例中,包括在单个PVA中的多个矢量处理器可以执行相同的计算机视觉算法,但是在图像的不同区域上。在其他示例中,包括在特定PVA中的矢量处理器可以在同一图像上同时执行不同的计算机视觉算法,或者甚至在顺序图像或图像的部分上执行不同的算法。其中,任何数量的PVA可以包括在硬件加速集群中,并且任何数量的矢量处理器可以包括在每个PVA中。此外,一个或更多个PVA可以包括附加的纠错码(ECC)存储器,以增强整体系统安全性。
一个或更多个加速器614(例如,硬件加速群集)可以包括片上计算机视觉网络和SRAM,用于为一个或更多个加速器614提供高带宽、低延迟的SRAM。在一些示例中。片上存储器可以包括至少4MB的SRAM,其包括例如但不限于八个现场可配置的存储器块,PVA和DLA二者都可以访问这些存储器块。每对存储器块可以包括高级外围总线(APB)接口,配置电路,控制器和多路复用器。可以使用任何类型的存储器。PVA和DLA可以通过骨干网访问存储器,该骨干网为PVA和DLA提供对存储器的高速访问。骨干可以包括片上计算机视觉网络,其将PVA和DLA互连到存储器(例如,使用APB)。
片上计算机视觉网络可以包括接口,该接口在传输任何控制信号/地址/数据之前确定PVA和DLA二者都提供就绪和有效信号。这种接口可以提供单独的相位和用于发送控制信号/地址/数据的单独信道,以及用于连续数据传输的突发类型通信。尽管可以使用其他标准和协议,但是这种类型的接口可以符合ISO 26262或IEC 61508标准。
在一些示例中,一个或更多个SoC 604可以包括实时光线跟踪硬件加速器,诸如在2018年8月10日提交的美国专利申请No.16/101,232中描述的。实时光线跟踪硬件加速器可用于快速有效地确定物体的位置和范围(例如,在世界模型内),生成实时可视化模拟,其用于RADAR信号解释,用于声音传播合成和/或分析,用于模拟SONAR系统,用于一般波传播模拟,用于与LIDAR数据进行比较,以用于定位和/或其他功能,和/或用于其他用途。
一个或更多个加速器614(例如,硬件加速器集群)具有用于自动驾驶的广泛用途。PVA可以是可编程视觉加速器,其可以用于ADAS和自动车辆中的关键处理阶段。PVA的能力非常适合需要以低功耗和低延迟进行的可预测处理的算法域。换句话说,PVA在半密集或密集的常规计算上表现良好,即使在小数据集上也是如此,这些数据集需要具有低延迟和低功率的可预测运行时间。因此,在用于自动驾驶车辆的平台的背景下,PVA被设计为运行经典的计算机视觉算法,因为它们在物体检测和对整数数学运算方面是有效的。
例如,根据本技术的一个实施例,PVA用于执行计算机立体视觉。在一些示例中可以使用基于半全局匹配的算法,但是这不是限制性的。用于水平3-5的自动驾驶的许多应用需要动态估计/立体匹配(例如,来自运动,行人识别,车道检测等的结构)。PVA可以对来自两个单眼相机的输入执行计算机立体视觉功能。
在一些实例中,PVA可用于执行致密光流。根据处理原始RADAR数据(例如,使用4D快速傅里叶变换)来提供经处理的RADAR。在其他示例中,例如,通过处理原始飞行时间数据以提供经处理的飞行时间数据,PVA用于飞行时间深度处理。
DLA可以用于运行任何类型的网络以增强控制和驾驶安全性,包括例如输出每个物体检测的置信度度量的神经网络。这样的置信度值可以被解释为概率,或者与其他检测相比提供每个检测的相对“权重”。该置信度值使系统能够做出关于哪些检测应被视为真正的正确检测而不是误报检测的进一步决定。例如,系统可以设置置信度的阈值,并且仅考虑超过阈值的检测作为真正的正确检测。在自动紧急制动(AEB)系统中,误报检测将导致车辆自动执行紧急制动,这显然是不希望的。因此,只有最置信的检测应被视为AEB的触发因素。DLA可以运行神经网络来回归置信值。神经网络可以将至少一些参数子集作为其输入,例如边界框尺寸,获得的地平面估计(例如,来自另一子系统),与车辆104的方位、距离相关的惯性测量单元(IMU)传感器666输出,从神经网络和/或其他传感器(例如,一个或更多个LIDAR传感器664或一个或更多个RADAR传感器660)获得的物体的3D位置估计等。
一个或更多个SoC 604可以包括一个或更多个数据存储616(例如,存储器)。一个或更多个数据存储器616可以是一个或更多个SoC 604的片上存储器,其可以存储要在GPU和/或DLA上执行的神经网络。在一些示例中,一个或更多个数据存储616可以足够大以存储神经网络的多个实例以用于冗余和安全。一个或更多个数据存储612可以包括一个或更多个L2或L3高速缓存612。对一个或更多个数据存储616的引用可以包括对与PVA,DLA和/或其他加速器614相关联的存储器的引用,如本文所述的。
一个或更多个SoC 604可包括一个或更多个处理器610(例如,嵌入式处理器)。一个或更多个处理器610可以包括引导和电源管理处理器,其可以是专用处理器和子系统,以处理引导电源和管理功能以及相关的安全实施。引导和电源管理处理器可以是一个或更多个SoC 604引导序列的一部分,并且可以提供运行时电源管理服务。引导功率和管理处理器可以提供时钟和电压编程,协助系统低功率状态转换,一个或更多个SoC 604热量和温度传感器的管理,和/或一个或更多个SoC 604功率状态的管理。每个温度传感器可以实现为其输出频率与温度成比例的环形振荡器,并且一个或更多个SoC 604可以使用环形振荡器来检测一个或更多个CPU 606、一个或更多个GPU 608和/或一个或更多个加速器614的温度。如果确定温度超过阈值,则启动和电源管理处理器可以进入温度故障例程并将一个或更多个SoC 604置于较低功率状态和/或将车辆104置于司机到安全停止模式(例如,使车辆104安全停止)。
一个或更多个处理器610还可以包括可以用作音频处理引擎的一组嵌入式处理器。音频处理引擎可以是音频子系统,其通过多个接口实现对多声道音频的全硬件支持,以及广泛且灵活的音频I/O接口范围。在一些示例中,音频处理引擎是专用处理器核心,其具有带有专用RAM的数字信号处理器。
一个或更多个处理器610还可以包括始终在线处理器引擎,其可以提供必要的硬件特征以支持低功率传感器管理和唤醒用例。始终在线处理器引擎可以包括处理器核心,紧密耦合的RAM,支持外围设备(例如,定时器和中断控制器),各种I/O控制器外围设备和路由逻辑。
一个或更多个处理器610还可以包括安全集群引擎,其包括专用处理器子系统以处理汽车应用的安全管理。安全集群引擎可以包括两个或更多个处理器核心,紧密耦合的RAM,支持外围设备(例如,定时器,中断控制器等)和/或路由逻辑。在安全模式中,两个或更多个核心可以以锁步模式操作,并且用作具有比较逻辑的单个核心,以检测它们的操作之间的任何差异。
一个或更多个处理器610还可以包括实时相机引擎,其可以包括用于处理实时相机管理的专用处理器子系统。
一个或更多个处理器610还可以包括高动态范围信号处理器,其可以包括图像信号处理器,该图像信号处理器是作为相机处理管线的一部分的硬件引擎。
一个或更多个处理器610可以包括视频图像合成器,其可以是处理块(例如,在微处理器上实现),其实现视频回放应用程序所需的视频后处理功能,以产生播放器窗口的最终图像。视频图像合成器可以在一个或更多个宽视图相机670,一个或更多个环绕相机674和/或车内监视相机传感器上执行镜头失真校正。舱内监控相机传感器优选地由在高级SoC的另一个实例上运行的神经网络监控,被配置为在舱事件中标识并相应地响应。舱内系统可执行唇读以激活蜂窝服务并拨打电话,指示电子邮件,改变车辆的目的地,激活或改变车辆的信息娱乐系统和设置,或提供语音激活的网上冲浪。仅当车辆在自主模式下操作时,某些功能才可用于驾驶员,否则将被禁用。
视频图像合成器可以包括用于空间噪声降低和时间噪声降低二者的增强的时间噪声降低。例如,在视频中发生运动的情况下,降噪适当地对空间信息进行加权,从而减小由相邻帧提供的信息的权重。在图像或图像的一部分不包括运动的情况下,由视频图像合成器执行的时间噪声降低可以使用来自先前图像的信息来减少当前图像中的噪声。
视频图像合成器还可以被配置为在输入立体镜头帧上执行立体校正。当操作系统桌面正在使用时,视频图像合成器还可以用于用户界面合成,并且一个或更多个GPU 608不需要连续地渲染新表面。即使当一个或更多个GPU 608通电并且活动进行3D渲染时,视频图像合成器也可用于卸载GPU 608以改善性能和响应性。
一个或更多个SoC 604还可包括用于接收来自相机的视频和输入的移动工业处理器接口(MIPI)相机串行接口,高速接口和/或可用于相机的视频输入块和相关的像素输入功能。一个或更多个SoC 604还可以包括一个或更多个输入/输出控制器,其可以由软件控制并且可以用于接收未提交给特定角色的I/O信号。
一个或更多个SoC 604还可以包括宽范围的外围接口,以实现与外围设备,音频编解码器,电源管理和/或其他设备的通信。一个或更多个SoC 604可用于处理来自相机(例如,通过千兆位多媒体串行链路和以太网连接),传感器(例如,一个或更多个LIDAR传感器664,一个或更多个RADAR传感器660等)的数据,其可以是通过以太网连接),来自总线602的数据(例如,车辆104的速度,方向盘位置等),来自一个或更多个GNSS传感器658的数据(例如,通过以太网或CAN总线连接)。一个或更多个SoC 604还可以包括专用高性能大容量存储控制器,其可以包括它们自己的DMA引擎,并且可以用于使CPU 606从常规数据管理任务中解放出来。
一个或更多个SoC 604可以是具有跨越自动化水平3-5的灵活架构的端到端平台,从而提供全面的功能安全架构,其针对多样性和冗余利用并有效利用计算机视觉和ADAS技术,针对灵活可靠的驾驶软件堆栈提供平台以及深度学习工具。一个或更多个SoC 604可以比传统系统更快,更可靠,甚至更节能和节省空间。例如,一个或更多个加速器614当与一个或更多个CPU 606,一个或更多个GPU 608和一个或更多个数据存储616组合时,可以为水平3-5自主车辆提供快速,有效的平台。
因此,该技术提供了传统系统无法实现的能力和功能。例如,计算机视觉算法可以在CPU上执行,其可以使用诸如C编程语言的高级编程语言来配置,以跨多种视觉数据执行各种处理算法。然而,CPU通常不能满足许多计算机视觉应用的性能要求,例如与执行时间和功耗相关的应用。特别是,许多CPU无法实时执行复杂的物体检测算法,这是车载ADAS应用的要求,也是实际水平3-5自动驾驶汽车的要求。
与传统系统相比,通过提供CPU复合体,GPU复合体和硬件加速集群,本文描述的技术允许同时和/或顺序地执行多个神经网络,并且将结果组合在一起启用水平3-5自动驾驶功能。例如,在DLA或dGPU上执行的CNN(例如,一个或更多个GPU 620)可以包括文本和单词识别,允许超级计算机读取和理解交通标志,其包括神经网络尚未被具体训练的标志。DLA还可以包括神经网络,其能够标识、解释和提供对符号的语义理解,并且将该语义理解传递给在CPU复合体上运行的路径规划模块。
作为另一个示例,可以同时运行多个神经网络,如水平3,水平4或水平5驾驶所需。例如,由“警告:闪烁的灯指示结冰状况”以及电灯组成的警告标志可以由若干神经网络独立地或共同地解释。标志本身可以通过第一部署的神经网络(例如,已经训练的神经网络)被识别为交通标志,文本“闪烁灯指示结冰状况”可以由第二部署的神经网络解释,其通知车辆的路径规划软件(优选地,在CPU复合体上执行),当检测到闪烁的灯光时,存在结冰的情况。可以通过在多个帧上操作第三部署的神经网络来标识闪光,从而向车辆的路径规划软件通知闪光灯的存在(或不存在)。所有三个神经网络可以同时运行,例如在DLA内和/或一个或更多个GPU 608上。
在一些示例中,用于面部识别和车主识别的CNN可以使用来自相机传感器的数据来标识车辆104的授权驾驶员和/或所有者的存在。始终在线传感器处理引擎可以用于当车主接近驾驶员车门时解锁车辆并打开车灯,并且在安全模式下,当车主离开车辆时禁用车辆。以这种方式,一个或更多个SoC 604提供防盗和/或劫车的安全性。
在另一个示例中,用于紧急车辆检测和标识的CNN可以使用来自麦克风696的数据来检测和识别紧急车辆警报器。与使用通用分类器来检测警报器并手动提取特征的传统系统相比,一个或更多个SoC 604使用CNN来对环境和城市声音进行分类,以及对视觉数据进行分类。在优选实施例中,训练在DLA上运行的CNN以标识紧急车辆的相对靠近速度(例如,通过使用多普勒效应)。CNN还可以被训练以识别特定于车辆正在操作的局部区域的紧急车辆,如一个或更多个GNSS传感器658所标识的。因此,例如,当在欧洲操作时,CNN将寻求检测欧洲警报器,而在美国,CNN将寻求仅标识北美警报器。一旦检测到紧急车辆,就可以使用控制程序来执行紧急车辆安全例程,使车辆减速,拉到路边,停放车辆和/或在超声波传感器662辅助下使车辆空转,直到紧急车辆通过为止。
车辆可以包括一个或更多个CPU618(例如,一个或更多个离散的CPU或一个或更多个dCPU),其可以经由高速互连(例如,PCIe)耦合到一个或更多个SoC604。例如,一个或更多个CPU618可以包括X86处理器。一个或更多个CPU618可以用于执行各种功能中的任何功能,例如包括仲裁ADAS传感器和一个或更多个SoC604之间可能不一致的结果,和/或监控一个或更多个控制器636和/或信息娱乐SoC 630的状态和健康状况。
车辆104可以包括一个或更多个GPU 620(例如,一个或更多个离散的GPU或一个或更多个dGPU),其可以经由高速互连(例如,NVIDIA的NVLINK)耦合到一个或更多个SoC 604。一个或更多个GPU 620可以提供额外的人工智能功能,例如通过执行冗余和/或不同的神经网络,并且可以用于基于来自车辆104的传感器的输入(例如,传感器数据)来训练和/或更新神经网络。
车辆104还可以包括网络接口624,其可以包括一个或更多个无线天线626(例如,用于不同通信协议的一个或更多个无线天线,例如蜂窝天线,蓝牙天线等)。网络接口624可用于通过因特网与云(例如,与一个或更多个服务器678和/或其他网络设备)、与其他车辆和/或与计算设备(例如,乘客的客户端设备)实现无线连接。为了与其他车辆通信,可以在两个车辆之间建立直接链路和/或可以建立间接链路(例如,跨网络和通过因特网)。可以使用车辆到车辆通信链路来提供直接链接。车辆间通信链路可以向车辆104提供关于车辆104附近的车辆的信息(例如,车辆104前方,车辆侧面和/或车辆后方)。该功能可以是车辆104的协作自适应巡航控制功能的一部分。
网络接口624可以包括SoC,其提供调制和解调功能并且使一个或更多个控制器636能够通过无线网络进行通信。网络接口624可以包括射频前端,用于从基带到射频的上转换,以及从射频到基带的下转换。频率转换可以通过众所周知的过程来执行,和/或可以使用超外差过程来执行。在一些示例中,射频前端功能可以由单独的芯片提供。网络接口可以包括用于通过LTE,WCDMA,UMTS,GSM,CDMA2000,蓝牙,蓝牙LE,Wi-Fi,Z-Wave,ZigBee,LoRaWAN和/或其他无线协议进行通信的无线功能。
车辆104还可以包括一个或更多个数据存储628,其可以包括片外(例如,一个或更多个SoC 604外)存储。一个或更多个数据存储628可以包括一个或更多个存储元件,包括RAM,SRAM,DRAM,VRAM,闪存,硬盘和/或可以存储至少一位数据的其他组件和/或设备。
车辆104还可以包括一个或更多个GNSS传感器658。一个或更多个GNSS传感器658(例如,GPS和/或辅助GPS传感器),以帮助映射,感知,占用网格生成和/或路径规划功能。可以使用任何数量的一个或更多个GNSS传感器658,包括,例如但不限于,使用具有以太网到串行(RS-232)桥的USB连接器的GPS。
车辆104还可以包括一个或更多个RADAR传感器660。即使在黑暗和/或恶劣天气条件下,车辆104也可以使用一个或更多个RADAR传感器660进行远程车辆检测。RADAR功能安全水平可以是ASIL B。一个或更多个RADAR传感器660可以使用CAN和/或总线602(例如,传输由一个或更多个RADAR传感器660生成的数据)来控制和访问对象跟踪数据,在某些示例中,可以访问以太网来访问原始数据。可以使用各种RADAR传感器类型。例如但不限于,一个或更多个RADAR传感器660可适用于前面、后部和侧面RADAR使用。在一些示例中,使用一个或更多个脉冲多普勒RADAR传感器。
一个或更多个RADAR传感器660可以包括不同的配置,例如具有窄视野的长距离,具有宽视野的短距离,短距离侧覆盖等。在一些示例中,远程RADAR可用于自适应巡航控制功能。远程RADAR系统可以提供通过两个或更多个独立扫描实现的宽视野,例如在250米范围内。一个或更多个RADAR传感器660可以帮助区分静止和移动物体,并且可以由ADAS系统用于紧急制动辅助和前向碰撞警告。远程RADAR传感器可以包括具有多个(例如,六个或更多个)固定RADAR天线和高速CAN和FlexRay接口的单模多模RADAR。在具有六个天线的示例中,中央四个天线可以创建聚焦波束图案,其被设计为以更高的速度记录车辆104的周围环境,并且相邻车道中的交通具有最小的干扰。另外两个天线可以扩展视野,使得可以快速检测进入或离开车辆104车道的车辆。
作为示例,中程RADAR系统可以包括高达660米(前方)或80米(后方)的范围,以及高达42度(前方)或650度(后方)的视野。短程RADAR系统可以包括但不限于设计成安装在后保险杠两端的RADAR传感器。当安装在后保险杠的两端时,这种RADAR传感器系统可以产生两个波束,其持续监控车辆后部和车辆旁边的盲点。
短程RADAR系统可以在ADAS系统中用于盲点检测和/或车道变换辅助。
车辆104还可以包括一个或更多个超声波传感器662。可以将一个或更多个超声波传感器662定位在车辆104的前部、后部和/或侧面,可以用于停车辅助和/或创建和更新占用网格。可以使用各种各样的一个或更多个超声波传感器662,并且不同的一个或更多个超声波传感器662可以用于不同的检测范围(例如,2.5米,4米)。一个或更多个超声波传感器662可以在ASIL B的功能安全水平下操作。
车辆104可包括一个或更多个LIDAR传感器664。一个或更多个LIDAR传感器664可用于物体和行人检测,紧急制动,碰撞避免和/或其他功能。一个或更多个LIDAR传感器664可以是功能安全水平ASIL B。在一些示例中,车辆104可以包括可以使用以太网(例如,用于提供数据到千兆以太网交换机)的多个LIDAR传感器664(例如,两个,四个,六个等)。
在一些示例中,一个或更多个LIDAR传感器664可以能够提供物体列表及其360度视野的距离。一个或更多个商用LIDAR传感器664可具有大约104米的广告范围,精度为2厘米-3厘米,并且例如支持104Mbps以太网连接。在一些示例中,可以使用一个或更多个非突出的LIDAR传感器664。在这样的示例中,一个或更多个LIDAR传感器664可以被实现为可以嵌入到车辆104的前部,后部,侧面和/或角落中的小型设备。在这样的示例中,一个或更多个LIDAR传感器664可提供高达620度的水平视野和35度垂直视野,即使对于低反射率物体,也可提供200米的范围。一个或更多个前置LIDAR传感器664可以被配置用于45度和135度之间的水平视野。
在一些示例中,还可以使用LIDAR技术,例如3D闪光LIDAR。3D闪光灯LIDAR使用激光闪光灯作为发射源,照亮车辆周围约200米。闪光LIDAR单元包括接收器,其记录每个像素上的激光脉冲传播时间和反射光,其反过来对应于从车辆到物体的范围。闪光LIDAR可以允许每次激光闪光产生高度精确和无失真的周围环境图像。在一些示例中,可以部署四个闪光LIDAR传感器,在车辆104的每一侧一个。可用的3D闪光LIDAR系统包括固态3D凝视阵列LIDAR相机,除了风扇之外没有移动部件(例如,非扫描LIDAR设备)。闪光LIDAR装置可以使用每帧5纳秒级别I(人眼安全)激光脉冲,并且可以以3D范围点云和共同登记的强度数据的形式捕获反射的激光。通过使用闪光LIDAR,并且因为闪光LIDAR是没有移动部件的固态设备,所以一个或更多个LIDAR传感器664可能不太容易受到运动模糊,振动和/或震动的影响。
车辆还可以包括一个或更多个IMU传感器666。在一些示例中,一个或更多个IMU传感器666可以位于车辆104的后轴的中心。一个或更多个IMU传感器666可以包括,例如但不限于,一个或更多个加速度计,一个或更多个磁力计,一个或更多个陀螺仪,一个或更多个磁罗盘和/或其他传感器类型。在一些示例中,例如在六轴应用中,一个或更多个IMU传感器666可以包括加速度计和陀螺仪,而在九轴应用中,一个或更多个IMU传感器666可以包括加速度计,陀螺仪和磁力计。
在一些实施例中,一个或更多个IMU传感器666可以实现为微型高性能GPS辅助惯性导航系统(GPS/INS),其结合了微机电系统(MEMS)惯性传感器,高敏感度GPS接收器和先进的卡尔曼滤波算法,以提供对位置、速度和姿态的估计。这样,在一些示例中,一个或更多个IMU传感器666可以通过直接观察和关联从GPS到一个或更多个IMU传感器666的速度变化来使车辆104能够估计航向,而不需要来自磁传感器的输入。在一些示例中,一个或更多个IMU传感器666和一个或更多个GNSS传感器658可以组合在单个集成单元中。
车辆可以包括放置在车辆104中和/或周围的一个或更多个麦克风696。一个或更多个麦克风696可以用于紧急车辆检测和标识等。
车辆还可包括任何数量的相机类型,包括一个或更多个立体相机668,一个或更多个宽视野相机670,一个或更多个红外相机672,一个或更多个环绕相机674,一个或更多个远程和/或中程相机698,和/或其他相机类型。相机可用于捕获车辆104的整个周边周围的图像数据。所使用的相机类型取决于车辆104的实施例和要求,并且相机类型的任何组合可用于提供围绕该车辆104的必要覆盖。另外,根据实施例,相机的数量可以不同。例如,车辆可包括六个相机,七个相机,十个相机,十二个相机和/或另一数量的相机。作为示例而非限制,相机可以支持千兆位多媒体串行链路(GMSL)和/或千兆位以太网。在此关于图6A和图6B,更详细地描述了每个相机。
车辆104还可以包括一个或更多个振动传感器642。一个或更多个振动传感器642可以测量车辆的组件(例如一个或更多个轴)的振动。例如,振动的变化可以指示路面的变化。在另一示例中,当使用两个或更多个振动传感器642时,振动之间的差异可用于确定路面的摩擦或滑动(例如,当振动的差异在动力驱动轴和自由旋转轴之间时)。
车辆104可以包括ADAS系统638。在一些示例中,ADAS系统638可以包括SoC。ADAS系统638可包括自主/自适应/自动巡航控制(ACC),协同自适应巡航控制(CACC),前方碰撞警告(FCW),自动紧急制动(AEB),离开车道警告(LDW),车道保持辅助(LKA),盲点警告(BSW),后部交叉警告(RCTW),碰撞警告系统(CWS),车道居中(LC)和/或其他特征和功能。
ACC系统可以使用一个或更多个RADAR传感器660,一个或更多个LIDAR传感器664和/或一个或更多个相机。ACC系统可包括纵向ACC和/或横向ACC。纵向ACC监测并控制紧邻车辆104前方的车辆距离,并自动调节车速以保持与前方车辆的安全距离。横向ACC执行距离保持,并且建议车辆104在必要时改变车道。横向ACC与其他ADAS应用相关,例如LCA和CWS。
CACC使用来自其他车辆的信息,其可以经由网络接口624和/或一个或更多个无线天线626经由无线链路从其他车辆接收,或者间接地通过网络连接(例如,通过因特网)接收。直接链路可以由车辆到车辆(V2V)通信链路提供,而间接链路可以是基础设施到车辆(I2V)通信链路。通常,V2V通信概念提供关于紧接在前的车辆的信息(例如,紧接在车辆104之前和在与车辆104相同的车道中的车辆),而I2V通信概念提供关于更远的前方的交通的信息。CACC系统可以包括I2V和V2V信息源中的任一个或两者。给定车辆104前方车辆的信息,CACC可能更可靠并且它具有改善交通流畅通性和减少道路拥堵的潜力。
FCW系统被设计成警告驾驶员危险,从而驾驶员可以采取纠正动作。FCW系统使用前向相机和/或一个或更多个RADAR传感器660,其耦合至专用处理器,DSP,FPGA和/或ASIC,其电耦合到驾驶员反馈,诸如,显示器,扬声器和/或振动组件。FCW系统可以提供警告,诸如以声音,视觉警告,振动和/或快速制动脉冲的形式。
AEB系统检测即将发生的与另一车辆或其他物体的前向碰撞,并且如果驾驶员未在指定时间或距离参数内采取校正动作,则AEB系统可自动应用制动。AEB系统可以使用一个或更多个前向相机和/或一个或更多个RADAR传感器660,其耦合到专用处理器,DSP,FPGA和/或ASIC。当AEB系统检测到危险时,它通常首先警告驾驶员采取纠正动作以避免碰撞,并且如果驾驶员没有采取纠正动作,则AEB系统可以自动应用制动器以努力防止,或至少缓解,所预测的碰撞的影响。AEB系统可包括诸如动态制动器支撑和/或即将发生撞击的制动等技术。
LDW系统提供视觉,听觉和/或触觉警告,诸如方向盘或座椅振动,以在车辆104越过车道标记时警告驾驶员。当驾驶员通过激活转向信号指示故意离开车道时,LDW系统不会激活。LDW系统可以使用前侧面向相机,其耦合到专用处理器,DSP,FPGA和/或ASIC,其电耦合到驱动器反馈,诸如显示器,扬声器和/或振动组件。
LKA系统是LDW系统的变体。如果车辆104开始离开车道,则LKA系统提供转向输入或制动以校正车辆104。
BSW系统检测并警告驾驶员汽车盲点中的车辆。BSW系统可以提供视觉,听觉和/或触觉警报以指示合并或改变车道是不安全的。当驾驶员使用转向信号时,系统可以提供附加警告。BSW系统可以使用一个或更多个后侧相机和/或一个或更多个RADAR传感器660,其耦合到专用处理器,DSP,FPGA和/或ASIC,其电耦合到驾驶员反馈,诸如显示器,扬声器和/或振动组件。
当车辆104正在倒车时,当在后向相机范围之外检测到物体时,RCTW系统可以提供视觉,听觉和/或触觉通知。一些RCTW系统包括AEB,以确保应用车辆制动器以避免碰撞。RCTW系统可以使用一个或更多个后向RADAR传感器660,其耦合到专用处理器,DSP,FPGA和/或ASIC,其电耦合到驾驶员反馈,诸如显示器,扬声器和/或振动元件。
传统的ADAS系统可能容易出现误报结果,这可能令驾驶员烦恼并分散注意力,但通常不是灾难性的,因为ADAS系统警告驾驶员并允许驾驶员确定安全条件是否真正存在并且相应地行动。然而,在自主车辆104中,在结果冲突的情况下,车辆104本身必须决定是否注意来自主计算机或辅助计算机(例如,第一控制器636或第二控制器636)的结果。例如,在一些实施例中,ADAS系统638可以是备份和/或辅助计算机,用于向备份计算机合理性模块提供感知信息。备份计算机合理性监视器可以在硬件组件上运行冗余的各种软件,以检测感知和动态驱动任务中的故障。可以将来自ADAS系统638的输出提供给监控MCU。如果主计算机和辅助计算机的输出发生冲突,则监控MCU必须确定如何协调冲突以确保安全操作。
在一些示例中,主计算机可以被配置为向监控MCU提供置信度分数,指示主计算机对所选结果的置信度。如果置信度得分超过阈值,则监控MCU可以遵循主计算机的指示,而不管辅助计算机是否提供冲突或不一致的结果。在置信度分数不满足阈值并且主要和辅助计算机指示不同结果(例如,冲突)的情况下,监控MCU可以在计算机之间进行仲裁以确定适当的结果。
监控MCU可以被配置为运行一个或更多个神经网络,该神经网络被训练和配置成基于来自主计算机和辅助计算机的输出来确定辅助计算机提供错误警报的条件。因此,监控MCU中的一个或更多个神经网络可以了解辅助计算机的输出何时可信任,何时不可信。例如,当辅助计算机是基于RADAR的FCW系统时,监控MCU中的一个或更多个神经网络可以了解FCW系统何时识别实际上不存在危险的金属物体,诸如引发警报的排水栅或井盖。类似地,当辅助计算机是基于相机的LDW系统时,监控MCU中的神经网络可以学习在存在骑自行车者或行人时超越LDW并且离开车道实际上是最安全的操纵。在包括在监控MCU上运行的一个或更多个神经网络的实施例中,监控MCU可以包括适合于运行具有相关联的存储器的一个或更多个神经网络的DLA或GPU中的至少一个。在优选实施例中,监控MCU可以包括和/或被包括作为一个或更多个SoC 604的组件。
在其他示例中,ADAS系统638可以包括使用传统的计算机视觉规则来执行ADAS功能的辅助计算机。这样,辅助计算机可以使用经典计算机视觉规则(如果-则(if-then)),并且监控MCU中一个或更多个神经网络的存在可以提高可靠性,安全性和性能。例如,多样化的实现和有意的非同一性使整个系统更具容错性,尤其是由软件(或软件-硬件接口)功能引起的故障。例如,如果主计算机上运行的软件中存在软件错误或错误,并且在辅助计算机上运行的非同一性的软件代码提供相同的总体结果,则监控MCU可能更有信心整体结果是正确,并且主计算机上的软件或硬件中的错误不会导致重大错误。
在一些示例中,ADAS系统638的输出可以被馈送到主计算机的感知块和/或主计算机的动态驾驶任务块。例如,如果ADAS系统638由于紧接在前面的对象而指示前向碰撞警告,则感知块可在标识对象时使用该信息。在其他示例中,如本文所述,辅助计算机可以具有其自己的训练的神经网络,从而降低误报的风险。
车辆104还可以包括信息娱乐系统SoC 630(例如,车载信息娱乐系统(IVI))。尽管图示和描述为SoC,但信息娱乐系统可以不是SoC,并且可以包括两个或更多个分立组件。信息娱乐系统SoC 630可以包括硬件和软件的组合,其可以用于向车辆104提供音频(例如,音乐,个人数字助理,导航指令,新闻,广播等),视频(例如,电视,电影,流媒体,等),电话(例如,免提呼叫),网络连接(例如,LTE,Wi-Fi等)和/或信息服务(例如,导航系统,后停车辅助,无线电数据系统,车辆相关信息,例如燃料水平,所覆盖的总距离,制动燃料水平,油位,门打开/关闭,空气过滤器信息等)。例如,信息娱乐系统SoC 630可以是无线电,盘播放器,导航系统,视频播放器,USB和蓝牙连接,车载,车载娱乐,Wi-Fi,方向盘音频控制,免提语音控制,抬头显示器(HUD),HMI显示器634,远程信息处理设备,控制面板(例如,用于控制和/或与各种组件,特征和/或系统交互),和/或其他组件。信息娱乐系统SoC 630还可用于向车辆的一个或更多个用户提供信息(例如,视觉和/或听觉),例如来自ADAS系统638的信息,诸如计划的车辆操纵的自动驾驶信息,轨迹,周围环境信息(例如,交叉口信息,车辆信息,道路信息等)和/或其他信息。
信息娱乐系统SoC 630可以包括GPU功能。信息娱乐系统SoC 630可以通过总线602(例如,CAN总线,以太网等)与车辆104的其他设备,系统和/或组件通信。在一些示例中,信息娱乐系统SoC 630可以耦合到监控MCU,使得信息娱乐系统的GPU可以在一个或更多个主控制器636(例如,车辆104的主要和/或备用计算机)发生故障的情况下执行一些自驱动功能。在这样的示例中,信息娱乐系统SoC 630可以将车辆104置于司机安全停止模式,如本文所述。
车辆104还可包括仪表组632(例如,数字仪表板,电子仪表组,数字仪表板等)。仪表组632可包括控制器和/或超级计算机(例如,离散控制器或超级计算机)。仪表组632可包括一组仪表,例如速度表,燃油油位,油压,转速计,里程表,转向指示器,换档位置指示器,一个或更多个安全带警告灯,一个或更多个停车制动警告灯,一个或更多个引擎故障灯,安全气囊(SRS)系统信息,照明控制,安全系统控制,导航信息等。在一些示例中,可以在信息娱乐系统SoC 630和仪表组632之间显示和/或共享信息。换句话说,仪表组632可以被包括作为信息娱乐系统SoC 630的一部分,反之亦然。
图6D是根据本公开的一些实施例的、用于一个或更多个基于云的服务器和图6A的示例自主车辆104之间的通信的系统图。系统676可以包括一个或更多个服务器678,一个或更多个网络690和车辆,其包括车辆104。一个或更多个服务器678可以包括多个GPU 684(A)-684(H)(本文统GPU 684),PCIe开关682(A)-682(H)(本文统称为PCIe开关682)和/或CPU 680(A)-680(B)(本文统称为CPU 680)。GPU 684,CPU 680和PCIe交换机可以与高速互连互连,例如但不限于由NVIDIA开发的NVLink接口688和/或PCIe连接686。在一些示例中,GPU 684是通过NVLink和/或NVSwitch SoC连接,并且GPU 684和PCIe开关682通过PCIe互连连接。尽管示出了八个GPU 684,两个CPU 680和两个PCIe开关,但是这不是限制性的。根据实施例,一个或更多额服务器678的每一个可以包括任何数量的GPU 684,CPU 680和/或PCIe交换机。例如,一个或更多个服务器678中的每个可以包括八个,十六个,三十二个和/或更多个GPU 684。
一个或更多个服务器678可以通过一个或更多个网络690和从车辆接收图像数据,其表示意外或改变的道路状况,诸如最近开始的道路工作。一个或更多个服务器678可以通过一个或更多个网络690向车辆发送神经网络692,更新的神经网络692和/或地图信息694,包括关于交通和道路状况的信息。对地图信息694的更新可以包括HD地图622的更新,例如关于建筑工地,坑洼,弯路,洪水和/或其他障碍物的信息。在一些示例中,神经网络692,更新的神经网络692和/或地图信息694可以由在从环境中的任何数量的车辆接收的数据中表示的新训练和/或体验产生,和/或基于在数据中心执行的训练(例如,使用一个或更多个服务器678和/或其他服务器)。
一个或更多个服务器678可用于基于训练数据来训练机器学习模型(例如,神经网络)。训练数据可以由车辆生成,和/或可以在模拟中生成(例如,使用游戏引擎)。在一些示例中,训练数据被标记(例如,神经网络受益于监督学习)和/或经历其他预处理,而在其他示例中,训练数据未被标记和/或预处理(例如,神经网络不需要监督学习)。一旦机器学习模型被训练,机器学习模型可以由车辆使用(例如,通过一个或更多个网络690传输到车辆,和/或机器学习模型可以由一个或更多个服务器678使用以远程监控车辆。
在一些示例中,一个或更多个服务器678可以从车辆接收数据并将数据应用于最新的实时神经网络以用于实时智能推理。一个或更多个服务器678可以包括由一个或更多个GPU 684驱动的深度学习超级计算机和/或专用AI计算机,例如由NVIDIA开发的DGX和DGX站机器。然而,在一些示例中,一个或更多个服务器678可以包括仅使用CPU供电的数据中心的深度学习基础设施。
一个或更多个服务器678的深度学习基础设施可以能够进行快速,实时的推理,并且可以使用该能力来评估和验证车辆104中处理器,软件和/或相关硬件的健康状况。例如,深度学习基础设施可以从车辆104接收周期性更新,例如车辆104已经在该图像序列中定位的一系列图像和/或物体(例如,通过计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可以运行其自己的神经网络来标识对象并将其与车辆104标识的对象进行比较,并且如果结果不匹配并且基础设施断定车辆104中的AI发生故障,则一个或更多个服务器678可以向车辆104发送信号,指示车辆104的故障安全计算机进行控制,通知乘客,并完成安全停车操纵。
对于推理,一个或更多个服务器678可以包括一个或更多个GPU684和一个或更多个可编程推理加速器(例如,NVIDIA的TensorRT3)。GPU驱动的服务器和推理加速的组合可以使实时响应成为可能。在其他示例中,例如在性能不太重要的情况下,由CPU,FPGA和其他处理器供电的服务器可以用于推理。
广义计算设备
图7是适用于实现本公开的一些实施例的计算设备700的示例的框图。计算设备700可以包括直接或间接耦合以下设备的总线702:存储器704,一个或更多个中央处理单元(CPU)706,一个或更多个图形处理单元(GPU)708,通信接口710,输入/输出(I/O)端口712,输入/输出组件714,电源716和一个或更多个呈现组件718(例如,一个或更多个显示器)。除了CPU 706和GPU 708之外,计算设备700还可以包括图1中未示出的附加逻辑设备。如图7所示,例如但不限于图像信号处理器(ISP),数字信号处理器(DSP),ASIC,FPGA等。
尽管图7示出了其中各种块通过总线702与线路连接,这不是限制性的并且仅为了清楚起见。例如,在一些实施例中,诸如显示设备的呈现组件718可以被认为是I/O组件714(例如,如果显示器是触摸屏)。作为另一示例,CPU 706和/或GPU 708可以包括存储器(例如,存储器704可以代表除了GPU 708,CPU 706和/或其他组件的存储器之外的存储设备)。换句话说,图7的计算设备仅仅是说明性的。“工作站”,“服务器”,“笔记本电脑”,“桌面”,“平板电脑”,“客户端设备”,“移动设备”,“手持设备”,“游戏机”“电子控制单元(ECU)”“虚拟现实系统”和/或其他设备或系统类型(在图7的计算设备的范围内所有所构想的那样)之间没有区别。
总线702可以表示一个或更多个总线,例如地址总线,数据总线,控制总线或其组合。总线702可以包括一种或多种总线类型,例如工业标准架构(ISA)总线,扩展工业标准架构(EISA)总线,视频电子标准协会(VESA)总线,外围组件互连(PCI)总线,外围组件互连快速(PCIe)总线和/或其他类型的总线。
存储器704可以包括各种计算机可读介质中的任何一种。计算机可读介质可以是可由计算设备700访问的任何可用介质。计算机可读介质可包括易失性和非易失性介质,以及可移除和不可移除介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质可以包括以用于存储信息(诸如计算机可读指令,数据结构,程序模块和/其他数据类型)的任何方法或技术实现的易失性和非易失性介质和/或可移除和不可移除介质。例如,存储器704可以存储计算机可读指令(例如,表示一个或更多个程序和/或一个或更多个程序元素,例如操作系统。计算机存储介质可以包括但不限于,RAM,ROM,EEPROM,闪存或其他存储技术,CD-ROM,数字通用光盘(DVD)或其他光盘存储器,磁带盒,磁带,磁盘存储器或其他磁存储设备,或任何其他介质,可用于存储所需信息并且可由计算设备700访问。如本文所用,计算机存储介质本身不包括信号。
通信介质可以在诸如载波或其他传输机制之类的已调制数据信号中体现计算机可读指令,数据结构,程序模块和/或其他数据类型,并且包括任何信息传递介质。术语“已调制数据信号”可以指的是以对信号中的信息进行编码的方式设置或改变其一个或更多个特征的信号。作为示例而非限制,通信介质可以包括有线介质,诸如有线网络或直接有线连接,以及无线介质,诸如声学,RF,红外和其他无线介质。上述任何组合也应包括在计算机可读介质的范围内。
一个或更多个CPU 706可以被配置为执行计算机可读指令以控制计算设备700的一个或更多个组件以执行本文描述的方法和/或过程中的一个或更多个。每个CPU 706可以包括能够同时处理多个软件线程的一个或更多个核心(例如,一个,两个,四个,八个,二十八个,七十二个等)。一个或更多个CPU 706可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于所实现的计算设备700的类型(例如,用于移动设备的具有较少核心的处理器和具有用于服务器的更多核心的处理器)。例如,取决于计算设备700的类型,处理器可以是使用精简指令集计算(RISC)实现的ARM处理器或使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或辅助协处理器(例如数学协处理器)之外,计算设备700还可以包括一个或更多个CPU 706。
一个或更多个计算设备700可以使用GPU 708来渲染图形(例如,3D图形)。一个或更多个GPU 708可以包括数百或数千个核心,其能够同时处理数百或数千个软件线程。一个或更多个GPU 708可以响应于渲染命令(例如,经由主机接口从一个或更多个CPU 706渲染的渲染命令)生成输出图像的像素数据。一个或更多个GPU708可以包括用于存储像素数据的图形存储器,例如显示存储器。显示存储器可以被包括作为存储器704的一部分。一个或更多个GPU708可以包括并行操作的两个或更多个GPU(例如,经由链路)。当组合在一起时,每个GPU 708可以生成输出图像的不同部分或不同输出图像的像素数据(例如,第一图像的第一GPU和第二图像的第二GPU)。每个GPU可以包含自己的内存,或者可以与其他GPU共享内存。
在计算设备700不包括一个或更多个GPU 708的示例中,一个或更多个CPU 706可用于渲染图形。
通信接口710可以包括一个或更多个接收器,发射器和/或收发器,其使得计算设备700能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口710可以包括用于实现通过多个不同网络中的任何网络进行通信的组件和功能,例如无线网络(例如,Wi-Fi,Z-Wave,蓝牙,蓝牙LE,ZigBee等),有线网络(例如,通过以太网通信),低功率广域网(例如,LoRaWAN,SigFox等)和/或因特网。
I/O端口712可以使计算设备700能够逻辑地耦合到包括I/O组件714,一个或更多个呈现组件718和/或其他组件的其他设备,其中一些组件可以被构建(例如,集成在)计算设备700中。说明性I/O组件714包括麦克风,鼠标,键盘,操纵杆,游戏手柄,游戏控制器,卫星天线,扫描仪,打印机,无线设备等。I/O组件714可以提供处理由用户生成的空中手势、语音或其他生理输入的自然用户界面(NUI)。在某些情况下,可以将输入发送到适当的网络元件以进行进一步处理。NUI可以实现语音识别,手写笔识别,面部识别,生物识别,屏幕上和屏幕附近的手势识别,空中手势,头部和眼睛跟踪以及与计算设备700的显示相关联的触摸识别(如下面更详细描述的)的任何组合。计算设备700可以包括深度相机,例如立体相机系统,红外相机系统,RGB相机系统,触摸屏技术,以及它们的组合,用于手势检测和识别。另外,计算设备700可以包括能够检测运动的加速度计或陀螺仪(例如,作为惯性测量单元(IMU)的一部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备700使用以呈现沉浸式增强现实或虚拟现实。
电源716可以包括硬连线电源,电池电源或其组合。电源716可以向计算设备700提供电力以使计算设备700的组件能够操作。
一个或更多个呈现组件718可以包括显示器(例如,监视器,触摸屏,电视屏幕,抬头显示器(HUD),其他显示器类型或其组合),扬声器,和/或其他演示组件。一个或更多个呈现组件718可以从其他组件(例如,一个或更多个GPU 708,一个或更多个CPU 706等)接收数据,并输出数据(例如,作为图像,视频,声音等)。
可以在计算机代码或机器可用指令的一般上下文中描述本公开,包括由诸如程序模块之类的计算机或其他机器(诸如个人数据助理或其他手持设备)执行的计算机可执行指令。通常,包括例程,程序,对象,组件,数据结构等的程序模块指代执行特定任务或实现特定抽象数据类型的代码。本公开可以在各种系统配置中实践,包括手持设备,消费电子产品,通用计算机,更多专业计算设备等。本公开还可以在分布式计算环境中实施,其中任务由远程处理通过通信网络链接的设备。
如本文所用,关于两个或更多个元素的“和/或”的叙述应该被解释为仅意味着一个元素或元素的组合。例如,“元素A,元素B和/或元素C”可以仅包括元素A,仅包括元素B,仅包括元素C,元素A和元素B,元素A和元素C,元素B和元素C,或元素A、B和C。此外,“元素A或元素B中的至少一个”可以包括元素A中的至少一种,元素B中的至少一种,或元素A中的至少一种和元素B中的至少一种。
本文中具体描述了本公开的主题以满足法定要求。然而,描述本身并不旨在限制本公开的范围。相反,发明人已经构想所要求保护的主题还可以以其他方式体现,以包括与本文档中描述的步骤类似的不同步骤或步骤组合,结合其他现有或未来技术。此外,尽管本文可以使用术语“步骤”和/或“框”来表示所采用的方法的不同元素,但是这些术语不应被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非和当订单时明确描述了各个步骤。

Claims (21)

1.一种方法,包括:
接收表示源图像的高动态范围(HDR)源图像数据;
基于所述源图像数据的源像素值确定色调控制点;
基于所述色调控制点的第一色调点和至少一个其他色调控制点确定增益值;
基于所述色调控制点和所述增益值确定色调映射函数;以及
生成表示至少一个目标图像的目标图像数据,其中所述目标图像数据包括由所述色调映射函数定义的目标像素值。
2.如权利要求1所述的方法,还包括:在接收所述源图像数据之后,接收表示附加源图像的附加HDR源图像数据,其中所述生成所述目标图像数据包括将所述色调映射函数应用于所述附加源图像数据的像素值。
3.如权利要求1所述的方法,其中所述色调映射函数:
将第二色调点的第一标量值映射到第二标量值;
将所述第一色调点的第三标量值映射到第四标量值;并且
将所述第三色调点的第五标量值映射到第六标量值,
其中所述第一色调点具有对应的像素值,所述对应的像素值在对应于所述第二色调点和所述第三色调点的各个像素值之间基本上等距。
4.如权利要求1所述的方法,其中在所述第一色调点的第一标量值处评估的所述色调映射函数的变化率基本上等于所述增益值。
5.如权利要求1所述的方法,还包括:
确定所述源图像的感兴趣区域(ROI);并且
基于与所述源图像的所述ROI相对应的所述源图像数据的一部分来确定所述色调控制点。
6.如权利要求1所述的方法,其中所述确定所述色调控制点包括:
基于所述源像素值生成对数变换图像数据值;
确定所述对数变换图像数据值的平均值;并且
基于所述对数变换图像数据值的所述平均值的取幂确定所述第一色调点。
7.如权利要求1所述的方法,其中所述确定色调控制点包括:
通过将第一色调滤波器和第二色调滤波器中的每一个应用于所述源图像数据来生成经滤波的源图像数据;并且
基于所述经滤波的源图像数据确定所述第一色调点。
8.如权利要求1所述的方法,其中所述确定色调控制点包括:
确定所述源像素值的第一子集,其中包括在所述第一子集中的每个像素的值大于从所述第一子集中排除的所述源像素值的每个像素的值;
确定所述源像素值的第二子集,其中包括在所述第二子集中的每个像素的值小于从所述第二子集中排除的所述源像素值的每个像素的值;
基于所述源像素值的所述第一子集确定第三色调点,所述第三色调点具有比所述第一色调点更高的对应像素值;并且
基于所述源像素值的所述第二子集确定第二色调点,所述第二色调点具有比所述第一色调点更低的对应像素值。
9.如权利要求1所述的方法,其中所述确定色调控制点包括:
基于所述目标像素值的最小值确定第二色调点,所述第二色调点具有比所述第一色调点更低的对应像素值;
基于所述目标像素值的中间色调值确定所述第一色调点;并且
基于所述目标像素值的最大值确定所述第三色调点,所述第三色调点具有比所述第一色调点更大的对应像素值。
10.如权利要求1所述的方法,其中所述源图像数据由安装在车辆上的至少一个相机设备捕获。
11.如权利要求1所述的方法,还包括:
采用捕获所述源图像数据的相机设备的通用处理器来确定所述色调映射函数;并且
采用所述相机设备的图像处理器(ISP)的管线来生成所述目标图像数据。
12.如权利要求1所述的方法,其中所述源图像数据由安装在机器人上的至少一个相机设备捕获。
13.如权利要求1所述的方法,还包括:
生成所述源像素值的多个统计度量;并且
基于所述多个统计度量来确定所述色调控制点的至少一部分。
14.如权利要求1所述的方法:
通过对所述目标图像数据应用伽马压缩函数来生成颜色压缩的目标数据;并且
基于所述颜色压缩的目标数据生成低动态范围(SDR)图像数据。
15.如权利要求1所述的方法,还包括:
剪切小于由第二色调点指示的闪耀抑制阈值的所述源像素值的每个像素值,所述第二色调点具有比所述第一色调点更低的对应像素值;并且
剪切大于由第三色调点指示的高光压缩阈值的所述源像素值中的每个像素值,所述第三色调点具有比所述第一色调点更大的对应像素值。
16.一种系统,包括:
处理器设备;以及
计算机可读存储介质,与所述处理器设备耦合并且具有存储在其上的指令,当由所述处理器设备执行所述指令时,导致动作的执行,所述动作包括:
接收表示第一源图像的第一源图像数据;
基于所述第一源图像的第一源像素值确定色调控制点;
基于所述色调控制点确定色调映射函数;
接收表示第二源图像的第二源图像数据;并且
通过将所述色调映射函数应用于所述第二源图像的第二源像素值来生成目标图像数据。
17.如权利要求16所述的方法,其中所述系统结合在自主车辆中,所述自主车辆包括图像传感器,所述图像传感器生成所述第一图像数据或所述第二图像数据中的至少一个,其中所述第一图像数据或所述第二图像数据中的所述至少一个被用作一个或更多个深度神经网络的输入,产生用于控制所述自主车辆的输出。
18.如权利要求16所述的系统,所述动作还包括:
采用相机设备的通用处理器来确定所述色调控制点的至少一部分;并且
采用所述相机设备的图像处理器来生成所述目标图像数据。
19.一种方法,包括:
接收表示高动态范围(HDR)图像的HDR图像数据;
基于所述HDR图像的像素值确定色调控制点;
基于所述色调控制点的至少一部分确定增益值;
基于所述色调控制点和所述增益值确定色调映射函数;以及
基于所述色调映射函数和所述HDR图像的所述像素值的至少一部分,生成代表比所述HDR图像更低动态范围图像的更低动态范围图像数据。
20.如权利要求19所述的方法,其中所述确定所述色调映射函数,使得在所述色调控制点的第一控制点处评估的所述色调映射函数的变化率基本上等于由所述色调控制点的所述第一控制点和第二控制点定义的另一变化率。
21.如权利要求19所述的方法,其中所述色调映射函数是分段函数,其包括基于所述色调控制点的多个参数函数。
CN202010172234.XA 2019-07-30 2020-03-12 增强的高动态范围成像和色调映射 Pending CN112312031A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/526,902 US11182884B2 (en) 2019-07-30 2019-07-30 Enhanced high-dynamic-range imaging and tone mapping
US16/526,902 2019-07-30

Publications (1)

Publication Number Publication Date
CN112312031A true CN112312031A (zh) 2021-02-02

Family

ID=74165590

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010172234.XA Pending CN112312031A (zh) 2019-07-30 2020-03-12 增强的高动态范围成像和色调映射

Country Status (3)

Country Link
US (2) US11182884B2 (zh)
CN (1) CN112312031A (zh)
DE (1) DE102020115479A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113570515A (zh) * 2021-07-09 2021-10-29 天津大学 基于并行处理框架的图像增强算法加速方法
CN113808030A (zh) * 2021-05-31 2021-12-17 荣耀终端有限公司 一种噪声的监测方法、电子设备及芯片系统
CN117456313A (zh) * 2023-12-22 2024-01-26 中国科学院宁波材料技术与工程研究所 色调曲线估计网络的训练方法、估计、映射方法及系统

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110475072B (zh) * 2017-11-13 2021-03-09 Oppo广东移动通信有限公司 拍摄图像的方法、装置、终端和存储介质
US11182884B2 (en) * 2019-07-30 2021-11-23 Nvidia Corporation Enhanced high-dynamic-range imaging and tone mapping
CN113452925B (zh) * 2019-11-13 2023-09-19 深圳市道通智能航空技术股份有限公司 高动态范围图像自动曝光方法及无人飞行器
US11373060B2 (en) * 2020-05-25 2022-06-28 Novatek Microelectronics Corp. Training method for video stabilization and image processing device using the same
US20220101024A1 (en) * 2020-09-30 2022-03-31 Magna Electronics Inc. Vehicular vision system with object classification
US11810274B2 (en) 2021-03-04 2023-11-07 Nvidia Corporation Tone management using tone gain functions for high dynamic range imaging applications
US11961206B2 (en) 2021-09-09 2024-04-16 Samsung Electronics Co., Ltd. Image generation using non-linear scaling and tone-mapping based on cubic spline curves
CN113852759B (zh) * 2021-09-24 2023-04-18 豪威科技(武汉)有限公司 图像增强方法及拍摄装置
CN114071108B (zh) * 2021-11-04 2024-02-23 Oppo广东移动通信有限公司 图像处理方法、装置、电子设备和计算机可读存储介质
KR102564447B1 (ko) * 2021-11-30 2023-08-08 엘지전자 주식회사 디스플레이 장치
WO2023129079A1 (en) * 2021-12-29 2023-07-06 Orta Dogu Teknik Universitesi A high-performance object detection system using hdr images obtained from ldr cameras in autonomous vehicles
KR20230105042A (ko) * 2022-01-03 2023-07-11 엘지전자 주식회사 디스플레이 장치

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8238687B1 (en) * 2008-01-09 2012-08-07 Helwett-Packard Development Company, L.P. Local contrast enhancement of images
CN105009580A (zh) * 2013-02-21 2015-10-28 杜比实验室特许公司 高动态范围视频的显示管理
WO2016192937A1 (en) * 2015-05-29 2016-12-08 Thomson Licensing Methods, apparatus, and systems for hdr tone mapping operator
WO2017112360A1 (en) * 2015-12-26 2017-06-29 Intel Corporation Video tone mapping for converting high dynamic range (hdr) content to standard dynamic range (sdr) content
US9699482B2 (en) * 2013-02-21 2017-07-04 Koninklijke Philips N.V. HDR image encoding and decoding methods and devices
CN107203974A (zh) * 2016-03-16 2017-09-26 汤姆逊许可公司 扩展的高动态范围hdr到hdr色调映射的方法、装置和系统
WO2018005705A1 (en) * 2016-06-29 2018-01-04 Dolby Laboratories Licensing Corporation Efficient histogram-based luma look matching
WO2018009828A1 (en) * 2016-07-08 2018-01-11 Vid Scale, Inc. Systems and methods for region-of-interest tone remapping
WO2018031153A1 (en) * 2016-08-11 2018-02-15 Intel Corporation Brightness control for spatially adaptive tone mapping of high dynamic range (hdr) images
US20190156467A1 (en) * 2015-02-06 2019-05-23 Thomson Licensing Method and apparatus for processing high dynamic range images

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10885698B2 (en) 2018-08-10 2021-01-05 Nvidia Corporation Method for programmable timeouts of tree traversal mechanisms in hardware
US11544823B2 (en) * 2019-06-12 2023-01-03 Intel Corporation Systems and methods for tone mapping of high dynamic range images for high-quality deep learning based processing
US11182884B2 (en) * 2019-07-30 2021-11-23 Nvidia Corporation Enhanced high-dynamic-range imaging and tone mapping

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8238687B1 (en) * 2008-01-09 2012-08-07 Helwett-Packard Development Company, L.P. Local contrast enhancement of images
CN105009580A (zh) * 2013-02-21 2015-10-28 杜比实验室特许公司 高动态范围视频的显示管理
US9699482B2 (en) * 2013-02-21 2017-07-04 Koninklijke Philips N.V. HDR image encoding and decoding methods and devices
US20190156467A1 (en) * 2015-02-06 2019-05-23 Thomson Licensing Method and apparatus for processing high dynamic range images
WO2016192937A1 (en) * 2015-05-29 2016-12-08 Thomson Licensing Methods, apparatus, and systems for hdr tone mapping operator
WO2017112360A1 (en) * 2015-12-26 2017-06-29 Intel Corporation Video tone mapping for converting high dynamic range (hdr) content to standard dynamic range (sdr) content
CN107203974A (zh) * 2016-03-16 2017-09-26 汤姆逊许可公司 扩展的高动态范围hdr到hdr色调映射的方法、装置和系统
WO2018005705A1 (en) * 2016-06-29 2018-01-04 Dolby Laboratories Licensing Corporation Efficient histogram-based luma look matching
WO2018009828A1 (en) * 2016-07-08 2018-01-11 Vid Scale, Inc. Systems and methods for region-of-interest tone remapping
WO2018031153A1 (en) * 2016-08-11 2018-02-15 Intel Corporation Brightness control for spatially adaptive tone mapping of high dynamic range (hdr) images

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113808030A (zh) * 2021-05-31 2021-12-17 荣耀终端有限公司 一种噪声的监测方法、电子设备及芯片系统
CN113808030B (zh) * 2021-05-31 2022-09-30 荣耀终端有限公司 一种噪声的监测方法、电子设备及芯片系统
CN113570515A (zh) * 2021-07-09 2021-10-29 天津大学 基于并行处理框架的图像增强算法加速方法
CN113570515B (zh) * 2021-07-09 2023-08-29 天津大学 基于并行处理框架的图像增强算法加速方法
CN117456313A (zh) * 2023-12-22 2024-01-26 中国科学院宁波材料技术与工程研究所 色调曲线估计网络的训练方法、估计、映射方法及系统
CN117456313B (zh) * 2023-12-22 2024-03-22 中国科学院宁波材料技术与工程研究所 色调曲线估计网络的训练方法、估计、映射方法及系统

Also Published As

Publication number Publication date
JP2021022354A (ja) 2021-02-18
US20210035273A1 (en) 2021-02-04
US11704781B2 (en) 2023-07-18
DE102020115479A1 (de) 2021-02-04
US11182884B2 (en) 2021-11-23
US20220036524A1 (en) 2022-02-03

Similar Documents

Publication Publication Date Title
US11704781B2 (en) Enhanced high-dynamic-range imaging and tone mapping
US11508049B2 (en) Deep neural network processing for sensor blindness detection in autonomous machine applications
US11841458B2 (en) Domain restriction of neural networks through synthetic data pre-training
US11927502B2 (en) Simulating realistic test data from transformed real-world sensor data for autonomous machine applications
CN113139642B (zh) 在自主驾驶应用中使用神经网络执行故障检测
CN111695717A (zh) 自主机器应用中的时间信息预测
CN113632095A (zh) 使用适合停车位检测的倾斜多边形进行对象检测
US11908104B2 (en) Weighted normalized automatic white balancing
US11652982B2 (en) Applications for detection capabilities of cameras
CN114270294A (zh) 使用眩光作为输入的注视确定
US11917307B2 (en) Image signal processing pipelines for high dynamic range sensors
CN116263944A (zh) 针对自主系统和应用程序使用图像对比度分析的眩光减轻
WO2022061289A1 (en) Simulating viewpoint transformations for sensor independent scene understanding in autonomous systems
JP7481790B2 (ja) 強化された高ダイナミック・レンジ画像化及びトーン・マッピング
EP3850539A2 (en) Deep neural network processing for sensor blindness detection in autonomous machine applications
US20240112472A1 (en) Image stitching with color harmonization for surround view systems and applications
US20240112376A1 (en) Image stitching with color harmonization of de-processed images for surround view systems and applications
US20240022601A1 (en) Detecting identity spoofing attacks in multi-sensor systems and applications
US20240155091A1 (en) Deferred color correction in image processing pipelines for autonomous systems and applications
CN118055333A (zh) 用于自主系统和应用的图像处理管线中的延迟颜色校正
CN117082360A (zh) 用于自主系统和应用的rgb-ir数据处理
CN114841336A (zh) 修补用于自主机器应用的部署的深度神经网络

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