CN118055333A - 用于自主***和应用的图像处理管线中的延迟颜色校正 - Google Patents
用于自主***和应用的图像处理管线中的延迟颜色校正 Download PDFInfo
- Publication number
- CN118055333A CN118055333A CN202211399755.4A CN202211399755A CN118055333A CN 118055333 A CN118055333 A CN 118055333A CN 202211399755 A CN202211399755 A CN 202211399755A CN 118055333 A CN118055333 A CN 118055333A
- Authority
- CN
- China
- Prior art keywords
- ccm
- image data
- matrix
- vehicle
- image processing
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 282
- 238000012937 correction Methods 0.000 title claims abstract description 58
- 230000003111 delayed effect Effects 0.000 title abstract description 29
- 238000000034 method Methods 0.000 claims abstract description 133
- 239000011159 matrix material Substances 0.000 claims abstract description 101
- 238000006243 chemical reaction Methods 0.000 claims abstract description 22
- 238000013507 mapping Methods 0.000 claims description 19
- 238000013135 deep learning Methods 0.000 claims description 14
- 238000004088 simulation Methods 0.000 claims description 12
- 230000008447 perception Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000003190 augmentative effect Effects 0.000 claims description 6
- 230000003287 optical effect Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 58
- 230000015654 memory Effects 0.000 description 54
- 238000013528 artificial neural network Methods 0.000 description 42
- 230000008569 process Effects 0.000 description 41
- 238000001514 detection method Methods 0.000 description 26
- 238000004891 communication Methods 0.000 description 25
- 238000003860 storage Methods 0.000 description 22
- 238000013527 convolutional neural network Methods 0.000 description 21
- 238000012544 monitoring process Methods 0.000 description 19
- 238000012549 training Methods 0.000 description 16
- 238000007726 management method Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 14
- 239000003086 colorant Substances 0.000 description 14
- 238000010801 machine learning Methods 0.000 description 14
- 230000001133 acceleration Effects 0.000 description 11
- 230000000670 limiting effect Effects 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 9
- 230000000007 visual effect Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000001934 delay Effects 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 230000002829 reductive effect Effects 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000446 fuel Substances 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000010705 motor oil Substances 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 125000000914 phenoxymethylpenicillanyl group Chemical group CC1(S[C@H]2N([C@H]1C(=O)*)C([C@H]2NC(COC2=CC=CC=C2)=O)=O)C 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 229920002451 polyvinyl alcohol Polymers 0.000 description 2
- 235000019422 polyvinyl alcohol Nutrition 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 238000010146 3D printing Methods 0.000 description 1
- 241000251468 Actinopterygii Species 0.000 description 1
- 101100248200 Arabidopsis thaliana RGGB gene Proteins 0.000 description 1
- 238000006424 Flood reaction Methods 0.000 description 1
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 1
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 206010034960 Photophobia Diseases 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000023077 detection of light stimulus Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 208000013469 light sensitivity Diseases 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 229920002803 thermoplastic polyurethane Polymers 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/64—Circuits for processing colour signals
- H04N9/646—Circuits for processing colour signals for image enhancement, e.g. vertical detail restoration, cross-colour elimination, contour correction, chrominance trapping filters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/80—Camera processing pipelines; Components thereof
- H04N23/82—Camera processing pipelines; Components thereof for controlling camera response irrespective of the scene brightness, e.g. gamma correction
- H04N23/83—Camera processing pipelines; Components thereof for controlling camera response irrespective of the scene brightness, e.g. gamma correction specially adapted for colour signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/80—Camera processing pipelines; Components thereof
- H04N23/84—Camera processing pipelines; Components thereof for processing colour signals
- H04N23/85—Camera processing pipelines; Components thereof for processing colour signals for matrixing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/64—Circuits for processing colour signals
- H04N9/68—Circuits for processing colour signals for controlling the amplitude of colour signals, e.g. automatic chroma control circuits
- H04N9/69—Circuits for processing colour signals for controlling the amplitude of colour signals, e.g. automatic chroma control circuits for modifying the colour signals by gamma correction
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
Abstract
公开了用于自主***和应用的图像处理管线中的延迟颜色校正。在各个示例中,呈现了用于减少自主或半自主***和应用的图像中的伪影的图像处理技术。公开了用于将与图像处理管线的颜色校正矩阵(CCM)相关联的强度的至少一部分延迟到与该图像处理管线相关联的一个或更多个其他阶段的***和方法。例如,CCM用于确定第一CCM和第二延迟的CCM。第一CCM可以与图像处理管线的较前阶段相关联,而延迟的CCM可以与图像处理管线的较后阶段相关联。在一些示例中,延迟的CCM与另一矩阵(诸如颜色空间转换矩阵)组合。通过延迟CCM的部分,图像处理管线可以减少伪影的数量和/或消除在处理图像数据时发生的伪影。
Description
背景技术
自主或半自主车辆或机器的图像处理***使用图像处理管线来处理使用图像传感器生成的原始图像数据。图像处理管线可使用多个处理阶段来处理原始传感器数据,诸如模数转换器阶段、去马赛克阶段、颜色校正阶段(例如,采用颜色校正矩阵(CCM))、伽马校正阶段、颜色空间转换阶段、色度子采样阶段和/或编码阶段。在现有的图像处理管线中,包括CCM的颜色校正阶段在图像处理管线中较早地执行,其中,CCM将使用图像传感器捕获的场景的表示转换到线性颜色空间。
然而,在一些情况下,在图像处理管线的早期阶段使用CCM处理图像数据可能导致输出图像中的退化或噪声。例如,且对于高动态场景,传统颜色空间常常受限且可能不表示由图像传感器捕获的所有颜色。照此,来自明亮的灯(诸如交通灯和汽车信号灯)的颜色在经由高动态范围传感器捕获时可包括在传统颜色空间外部的颜色。由于此,使用CCM处理图像数据可能导致在处理期间不能维持颜色准确度的范围外值(例如,来自CCM的负值)。这些范围外值可能导致CCM输出的图像中的伪色(false color),并且可能导致这些错误传播到图像处理管线的后续阶段——从而导致使用图像处理管线输出的图像中的伪影(例如,黑点)。
在某些应用中,使用一个或更多个***进一步处理从图像处理管线输出的图像数据。例如,并且对于自主和/或半自主车辆或机器应用,可以使用对象识别和/或对象跟踪***来处理使用图像处理管线输出的图像数据。如果由图像数据表示的图像包括伪影,那么当依赖于有噪声的图像数据时,这些***可能较不准确或不精确地执行。例如,对象识别和/或对象跟踪***可能较不能够检测与大量伪影相关联的对象。
发明内容
本公开的实施例涉及用于自主或半自主机器***和应用的采用延迟颜色校正矩阵的图像处理管线。公开了使用延迟使用一个或更多个CCM的图像处理管线来处理使用一个或更多个图像传感器(诸如车辆或机器的一个或更多个图像传感器)生成的原始图像数据的***和方法,因此提高了所得到的图像数据的质量。更具体来说,图像处理管线可将颜色校正矩阵(CCM)的应用在至少两个不同处理阶段之间进行拆分(split)。例如,在一些示例中,CCM可以使用两个矩阵来拆分,其中,较前的(earlier)处理阶段使用与CCM的强度的第一部分相关联的第一矩阵,并且较后的(later)处理阶段使用与CCM的强度的延迟的(deferred)第二部分相关联的第二矩阵。在一些示例中,管线的一个或更多个其他处理技术或阶段——诸如色调映射和/或伽马校正——可以发生在与CCM相关联的两个颜色校正处理阶段之间的一个或更多个处理阶段中。通过在图像处理管线内拆分CCM,图像处理管线可以减少和/或消除在处理期间发生的范围外值,然后可以经由调整(tuning)过程减少和/或消除输出图像中的伪影,同时避免额外的校准过程。
与仅在较前阶段使用CCM的全强度的常规图像处理管线相比,本文所描述的***和方法将CCM拆分成图像处理管线的两个不同的、分开的阶段。这种分开考虑了常规解决方案的缺点,因为在这些现有解决方案中使用的传统颜色空间经常是受限的并且因此可能不表示由图像传感器所捕获的所有颜色。因此,使用CCM的全强度处理图像数据可能导致在处理期间发生范围外值,这可能导致颜色不准确和/或伪色。因为这些伪影或噪声在管线中较早显现,所以这些错误在处理操作的剩余部分中被向前运送,从而导致有噪声的图像数据。通过跨处理管线的两个或更多个阶段分开CCM(如关于本公开的***和方法所描述的),颜色校正操作更准确和精确,并且不会导致被运送至后续处理阶段的伪影和噪声。
附图说明
下面参考附图详细描述用于自主或半自主***和应用的采用延迟的颜色校正的图像处理管线的本***和方法,其中:
图1示出了根据本公开的一些实施例的用于使用将颜色校正矩阵拆分成至少两个阶段的图像处理管线来处理图像数据的过程的数据流图的示例;
图2示出了根据本公开的一些示例的示例颜色模型,所述示例颜色模型示出了可以与图像处理管线的不同阶段相关联的颜色空间;
图3A-图3B示出了根据本公开的一些示例的示出了使用常规图像处理管线处理图像数据与使用包括延迟的颜色校正矩阵的图像处理管线处理图像数据之间的差异的示例;
图4是示出了根据本公开的一些实施例的用于使用包括延迟的颜色校正矩阵的图像处理管线来处理图像数据的方法的流程图;
图5是示出根据本发明的一些实施例的用于在图像处理管线的不同处理阶段之间拆分颜色校正矩阵的方法的流程图;
图6A是根据本公开的一些实施例的示例自主车辆的图示;
图6B是根据本公开的一些实施例的图6A的示例自主车辆的相机位置和视野的示例;
图6C是根据本公开的一些实施例的图6A的示例自主车辆的示例***架构的框图;
图6D是根据本公开的一些实施例的一个或更多个基于云的服务器与图6A的示例自主车辆之间的通信的***图;
图7是适合用于实现本公开的一些实施例的示例计算设备的框图;以及
图8是适合用于实现本公开的一些实施例的示例数据中心的框图。
具体实施方式
公开了涉及自主和半自主***和应用中的采用延迟的颜色校正的图像处理管线的***和方法。尽管本公开可关于示例自主或半自主车辆600(可替代地,在本文中称为“车辆600”或“本机(ego-machine)600”,其示例参考图6A-图6D进行描述)进行描述,但这并不旨在进行限制。例如,本文所述的***和方法可由但不限于非自主车辆或机器、半自主车辆或机器(例如,在一个或更多个自适应驾驶员辅助***(ADAS)中)、自主车辆或机器、有驾驶员和无驾驶员的机器人或机器人平台、仓库车辆、越野车辆、耦合到一个或更多个拖车的车辆、飞船、船、穿梭车、紧急响应车辆、摩托车、电动或机动自行车、飞机、工程车辆、水下飞行器、无人机和/或其他车辆类型使用。此外,尽管本公开可以关于自主或半自主机器应用中的图像处理管线来描述,但是这不旨在是限制性的,并且本文描述的***和方法可以用于增强现实、虚拟现实、混合现实、机器人、安全和监视、自主或半自主机器应用和/或可以使用图像处理的任何其他技术空间。此外,虽然通常关于相机图像进行描述,但是这并非旨在进行限制,并且本文所描述的***和方法可与从任何类型的传感器生成的图像或其他传感器数据表示一起使用,例如,但不限于参考图6A-图6D的本机600在本文中描述的那些。
例如,一个或更多个***可以接收使用一个或更多个图像传感器生成的图像数据,诸如与车辆或机器(例如,自主和/或半自主车辆或机器)相关联的一个或更多个图像传感器。如本文中所描述的,在一些示例中,使用一个或更多个图像传感器生成的图像数据可表示与第一颜色空间相关联的颜色。然后一个或更多个***可使用包括一个或更多个颜色校正矩阵(CCM)的图像处理管线来处理图像数据。如本文所描述的,一个或更多个CCM可以被配置为将使用一个或更多个图像传感器所捕获的在相机颜色空间(例如,第一颜色空间)中的场景转换成适合于显示的彩色图像,诸如在第二颜色空间中。在一些示例中,第二颜色空间可被限制且包括少于整个第一颜色空间。照此,为了在处理期间减少和/或消除与CCM相关联的范围外值(例如,负值),图像处理管线可以在至少两个处理阶段之间拆分一个或更多个CCM。
例如,一个或更多个CCM可以使用与CCM的强度的第一部分(例如,总颜色校正的第一部分)相关联的第一矩阵以及与CCM的强度的第二部分(例如,总颜色校正的第二部分)相关联的延迟的第二矩阵来进行拆分。在一些示例中,与第二矩阵相比,第一矩阵可以包括CCM的强度的更大部分。在一些示例中,与第二矩阵相比,第一矩阵可以包括CCM的强度的较小部分。此外,在一些示例中,与第二矩阵相比,第一矩阵可以包括CCM的强度的相同部分。在这些示例中的任一个中,并且如本文详细描述的,可以使用包括在矩阵内的一个或更多个值设置与CCM相关联的矩阵的强度。
在一些示例中,第一矩阵和第二矩阵可以与图像处理管线的不同处理阶段相关联。在一些示例中,一个或更多个附加处理阶段可发生在与第一矩阵和第二矩阵相关联的处理阶段之间。例如,图像处理管线可包括与第一矩阵相关联的较前处理阶段,接着是与一个或更多个其他图像处理技术相关联的一个或更多个其他处理阶段,接着是与第二矩阵相关联的较后处理阶段。在此示例中,一个或更多个其他处理阶段可与使用色调映射、伽马校正等处理图像数据相关联。另外,在一些示例中,较前矩阵和/或较后矩阵可应用于与另一类型的图像处理技术相关联的另一矩阵。例如,较后矩阵可与由图像处理管线的另一处理阶段执行的与颜色空间转换相关联的另一矩阵(例如,具有相同大小)组合。
因此,一个或更多个***可以使用将由一个或更多个CCM的处理的至少一部分延迟(例如,相对于常规图像处理管线)至一个或更多个较后的处理阶段的图像处理管线。如本文所述,通过将CCM的至少一部分延迟到较后的处理阶段,图像处理管线输出的图像可以包括与在单个前面处理阶段中执行CCM的整个处理的图像处理管线相比更好的质量。例如,一个或更多个当前***的图像处理管线可以减少和/或消除在处理期间发生的范围外值,这可以减少和/或消除图像中存在的伪影或其他噪声。
本文描述的***和方法可以被以下各项使用,但不限于:非自主车辆、半自主车辆(例如,在一个或更多个自适应驾驶员辅助***(ADAS)中)、有驾驶员的和无驾驶员的机器人或机器人平台、仓库车辆、越野车辆、耦合到一个或更多个拖车的车辆、飞船、船、穿梭车、紧急响应车辆、摩托车、电动或机动自行车、飞机、工程车辆、水下飞行器、无人机、和/或其他车辆类型。进一步,本文描述的***和方法可用于各种目的,作为示例而非限制,用于机器控制、机械运动、机器驾驶、合成数据生成、模型训练、感知、增强现实、虚拟现实、混合现实、机器人、安全和监视、图像处理、自主或半自主机器应用、深度学习、环境模拟、数据中心处理、对话AI、光传输模拟(例如,光线跟踪、路径跟踪等)、用于3D资产的协作内容创建、云计算和/或任何其他合适的应用。
所公开的实施例可以包括在各种不同***中,诸如汽车***(例如,用于自主或半自主机器的控制***、用于自主或半自主机器的感知***),使用机器人实现的***、空中***、医疗***、划船***、智能区域监视***、用于执行深度学习操作的***、用于执行模拟操作的***、用于执行图像处理的***、使用边缘设备实现的***、包含一个或更多个虚拟机(VM)的***、用于执行合成数据生成操作的***、至少部分地在数据中心中实现的***、用于执行对话AI操作的***、用于执行光传输模拟的***、用于执行3D资产的协作内容创建的***、至少部分地使用云计算资源实现的***、和/或其他类型的***。
图1示出了根据本公开的一些实施例的使用将颜色校正矩阵(CCM)拆分成至少两个处理阶段的图像处理管线来处理图像数据的过程100的数据流图的示例。应当理解,本文描述的这种和其他布置仅作为示例进行阐述。除了或代替所示的布置和元件,还可使用其他布置和元件(例如,机器、接口、功能、顺序、功能分组等),并且可完全省略一些元件。进一步,本文描述的许多元件是可以被实现为分立或分布式组件或与其他组件结合、和以任何合适的组合和位置实现的功能实体。本文描述为由实体执行的各个功能可由硬件、固件和/或软件执行。例如,各个功能可以通过处理器执行存储在存储器中的指令来实施。在一些实施例中,本文描述的***、方法和过程可使用与图6A-6D的示例自主车辆600、图7的示例计算设备700和/或图8的示例数据中心800类似的组件、特征和/或功能来执行。
过程100可以包括生成图像数据104(也称为“原始图像数据104”)的一个或更多个图像传感器102。在一些示例中,一个或更多个图像传感器102可以被包括为一个或更多个相机的一部分,所述相机诸如一个或更多个广角相机、一个或更多个环绕相机、一个或更多个中程相机、一个或更多个远程相机和/或任何其他类型的相机。一个或更多个相机可位于机器上,诸如自主和/或半自主车辆600。在一些示例中,并且如关于图2更详细讨论的,图像数据104可以表示与一个或更多个图像传感器102相关联的颜色空间(也称为“第一颜色空间”)内的颜色。
过程100可以包括使用图像处理管线106处理图像数据104。如图所示,图像处理管线106可包括用于处理图像数据104的多个处理阶段108、112、114和116。虽然图1的示例将图像处理管线106示出为包括五个处理阶段,但是在其他示例中,图像处理管线106可包括附加的和/或替代的处理阶段。例如,图像处理管线106可包括但不限于两个处理阶段、五个处理阶段、十个处理阶段和/或任何其他数目的处理阶段。此外,虽然图1的示例示出了单个处理阶段112位于与CCM 118相关联的处理阶段110和114之间(本文更详细地描述),但是在其他示例中,附加的处理阶段可以位于处理阶段110和114之间。
如图所示,过程100可以包括图像处理管线106使用一个或更多个第一图像处理技术108处理图像数据104。一个或更多个第一图像处理技术108可包括可对图像数据104执行的任何类型的图像处理。例如,在一些示例中,一个或更多个第一图像处理技术108可以包括被配置为将图像数据从模拟数据转换成数字数据的一个或更多个模数转换器(ADC)。一个或更多个ADC可包括任何类型的ADC,诸如但不限于,一个或更多个delta-sigma ADC、一个或更多个flash(闪速)ADC、一个或更多个逐次逼近ADC、一个或更多个电压-频率ADC、一个或更多个双/多斜率ADC等。
另外或替代地,在一些示例中,一个或更多个第一图像处理技术108可以包括去马赛克滤波器,该去马赛克滤波器被配置为将图像数据转换成红-绿-蓝(RGB)图像数据。例如,在一些示例中,可使用一种基本颜色的值表示图像数据的像素中的一个或更多个(例如,每个像素)。这样,去马赛克滤波器可对各个像素的相应值进行插值以得到与RGB图像相关联的其他颜色。
另外或替代地,在一些示例中,一个或更多个第一图像处理技术108可以包括色调映射,其被配置为映射一组颜色以便近似具有更受限的动态范围的介质中的高动态范围图像的外观。例如,色调映射可以解决从场景辐射到可显示颜色范围的强对比度降低的问题,同时仍然保留原始场景内容的图像细节和颜色外观。该组颜色可包括与一个或更多个图像传感器102相关联的第一颜色空间,而受限动态范围可包括第二颜色空间。如本文所描述的,第二颜色空间可仅包括第一颜色空间的一部分。
在一些示例中,色调映射可以包括局部色调映射和/或全局色调映射。对于局部色调映射,根据从周围参数提取的特征,算子包括每个像素中的非线性函数变化的参数。照此,每个像素的改变的效果根据图像的局部特征。对于全局色调映射,算子包括基于图像中的其他全局变量的亮度的非线性函数。一旦已针对图像估计了优化函数,则图像中的每个像素随后以相同的方式被映射,这独立于图像中的周围像素的值。
另外或替代地,在一些示例中,一个或更多个第一图像处理技术108可以包括伽马转换,其被配置为编码和/或解码与图像数据相关联的亮度或三刺激(tristimulus)值。在一些示例中,伽马编码用于在编码图像数据时优化位的使用,例如通过利用人类感知光和颜色的非线性方式。
另外或替代地,在一些示例中,一个或更多个第一图像处理技术108可以包括色度子采样,其被配置为通过对色度信息实现比对亮度信息更低的分辨率来编码图像数据。例如,色度子采样可以利用人类***对于色差比对于亮度更低的敏锐度。
另外或替代地,在一些示例中,一个或更多个第一图像处理技术108可以包括其他类型的图像处理,诸如解压扩(decompanding)、降噪、去马赛克、白平衡、直方图计算和/或任何其他类型的图像处理。在以上示例中的任一者中,来自图像处理管线106的第一图像处理阶段108的输出120可包括经处理的图像数据(其也被称为“第二图像数据”)。
过程100可以包括图像处理管线106使用CCM 118处理来自第一图像处理阶段108的输出120(其可以包括第二图像数据)。在一些示例中,并且如本文所描述的,代替在第二处理阶段110处使用CCM 118的整个强度来处理第二图像数据,CCM 118的强度的至少一部分可以延迟到图像处理管线106的一个或更多个较后阶段。如本文所描述的,相比于CCM118的全部强度在图像处理管线106的CCM 110处应用的情况,延迟CCM 118的强度的至少一部分到图像处理管线106的一个或更多个较后阶段可以减少由CCM 118确定的范围外值的数量和/或消除范围外值。
例如,并且如本文所描述的,CCM 118可以被配置为将第二图像数据所表示的颜色从与一个或更多个图像传感器102相关联的第一颜色空间转换到第二颜色空间。第二颜色空间可以包括但不限于ProPhoto RGB、Adobe RGB、sRGB(Rec.709)和/或任何其他颜色空间。在一些示例中,第二颜色空间可仅包括与一个或更多个图像传感器102相关联的第一颜色空间的一部分。这样,在某些场景中,诸如包括来自交通灯、汽车信号灯和/或其他灯或源的亮色的高动态场景,CCM 118可以在以全强度执行转换时确定范围外值。
例如,图2示出了根据本公开的一些示例的示例颜色模型202,其示出了可以与图像处理管线106的不同阶段相关联的颜色空间。如图所示,颜色模型202指示由马蹄形状表示的可见颜色204、由大三角形表示的颜色空间206(1)、由中等三角形表示的颜色空间206(2)和由小三角形表示的颜色空间206(3)。在一些示例中,颜色空间206(1)可以与ProPhotoRGB相关联,颜色空间206(2)可以与Adobe RGB相关联,并且颜色空间206(3)可以与sRGB相关联。然而,在其他示例中,颜色空间206(1)-(3)可以与任何其他类型的颜色空间相关联。
在一些示例中,与一个或更多个图像传感器102相关联的第一颜色空间可以包括可见颜色204,而与CCM 118相关联的第二颜色空间可以包括颜色空间206(1)-(3)之一。这样,当从第一颜色空间转换到第二颜色空间时,CCM 118可以尝试转换第二颜色空间之外的颜色。当以CCM 118的全强度执行转换时,这可能导致范围外值,这可能导致诸如输出图像中的伪影之类的问题。
返回参考图1的示例,为了将CCM 118的至少一部分延迟到图像处理管线106的一个或更多个较后处理阶段,第一CCM 110可以与CCM 118的总强度的第一部分相关联,而延迟的第二CCM 122与CCM 118的总强度的第二部分相关联。在一些示例中,与第一CCM 110相关联的CCM 118的总强度的第一部分可以小于与第二CCM 122相关联的CCM 118的总强度的第二部分。在一些示例中,与第一CCM 110相关联的CCM 118的总强度的第一部分可以大于与第二CCM 122相关联的CCM 118的总强度的第二部分。此外,在一些示例中,与第一CCM110相关联的CCM 118的总强度的第一部分可以等于与第二CCM 122相关联的CCM 118的总强度的第二部分。
例如,CCM 118可以包括3x3矩阵,从而通过以下等式执行转换:
在等式(1)中,a11、a22和a33的值越高,sR、sG和sB的颜色的饱和度越大(颜色被保留)。例如,如果a11、a22和a33的值均包括1,则RGB=sRGB(例如,其在单位矩阵中相等)。然而,随着a11、a22和a33的值增加,颜色转换的强度也增加。在一些示例中,颜色转换的此增加可导致转换的负值(例如,范围外值),这会产生与图像处理管线106相关联的伪影。照此,颜色转换的强度中的一些强度在图像处理管线106的一个或更多个较后处理阶段中可被延迟。
在一些示例中,图像处理管线106可以将CCM 118的整个强度延迟到一个或更多个较后的处理阶段(例如,完全延迟)。在这样的示例中,第一CCM 110的a11、a22和a33的值均可以包括1。然后,可以通过以下等式确定第二CCM 122:
YUV=MAT(CCM0@RGB) (2)
YUV=(MAT@CCM0)@(I@RGB)=Mcsc@(I@RGB) (3)
其中Mcsc=MAT@CCM0 (4)
在等式(2)-(4)中,CCM0、RGB、Mcsc、I和MAT均包括相同大小的矩阵,诸如3x3矩阵。此外,I是单位矩阵,CCM0可以包括CCM 118(例如,CCM 118的整个强度),MAT可以包括与CCM118的延迟部分相乘的矩阵(例如,转换矩阵124),并且Mcsc可以包括较后阶段中的矩阵,该矩阵是使用CCM0和MAT(例如,更新的矩阵114)来确定的。
在一些示例中,图像处理管线106可以仅将CCM 118的强度的一部分延迟到一个或更多个较后的处理阶段(例如,部分延迟)。在这样的示例中,第一CCM 110的a11、a22和a33的一个或更多个值可以大于1,但是小于全强度下的原始CCM 118。然后,可以通过以下等式确定第二CCM 122:
如果YUV=MAT@(CCMx@CCM1@RGB) (5)
YUV=(MAT@CCMx)@(CCM1@RGB) (6)
其中CCMx=CCM0@inv(CCM1) (7)
在等式(5)-(7)中,CCM1、CCM0、RGB、CCMx和MAT均包括相同大小的矩阵。例如,矩阵可包括但不限于3x3矩阵、4x4矩阵、5x5矩阵和/或任何其他大小的矩阵。此外,CCM0可以再次包括CCM 118(例如,CCM 118的整个强度),CCM1可以包括第一CCM 110,CCMx可以包括第二CCM 122,并且MAT可以再次包括与CCM 118的延迟部分相乘的矩阵(例如,转换矩阵124)。
在一些示例中,与延迟相关联的拆分可以由以下等式确定:
CCM1=s*CCM0+(1-s)*I (8)
在等式(8)中,s可以包括指示CCM 118的强度的拆分的参数,其中,CCM 118再次由CCM0表示。在一些示例中,s可以包括0和1之间的值,其中值0延迟CCM 118强度的全部,值1不延迟CCM 118强度,并且0和1之间的值部分地延迟CCM 118强度。
在部分延迟CCM 118的强度或者完全延迟CCM 118的强度的情况下,与在第一处理阶段110应用CCM 118的全部强度相比,第一CCM 110可以减少和/或消除在处理期间发生的范围外值。在一些示例中,来自第一CCM 110的输出126可以包括经处理的图像数据(例如,其可以称为“第三图像数据”)。
过程100可以包括处理来自第一CCM 110的输出126的一个或更多个第二图像处理技术112,其中输出126可以再次包括第三图像数据。在一些示例中,第二图像处理技术112可包括上文关于一个或更多个第一图像处理技术108所描述的图像处理技术中的一个或更多个。例如,一个或更多个第二图像处理技术112可以包括色调映射(例如,局部色调映射、全局色调映射等)、伽马校正等。在一些示例中,因为CCM 118的强度的至少一部分被延迟,使得第三图像数据表示数量减少的范围外值和/或没有范围外值,所以由一个或更多个第二图像处理技术112执行的处理可以包括更少的伪影或噪声。来自一个或更多个第二图像处理技术112的输出128因此可包括经处理的图像数据(例如,其可被称为“第四图像数据”)。
过程100可以包括更新的矩阵114处理来自一个或更多个第二图像处理技术112的输出128,其中输出128可以再次包括第四图像数据。在一些示例中,更新的矩阵114可以使用第二CCM 122(例如,来自以上等式的CCMx)来生成。在一些示例中,更新的矩阵114可以使用第二CCM 122和另一矩阵(例如转换矩阵124(例如,来自以上等式的MAT))来生成。例如,更新的矩阵114可以通过将第二CCM 122与转换矩阵124相乘来生成。在一些实例中,转换矩阵124可与另一图像处理技术(例如颜色空间转换矩阵)相关联。来自更新的矩阵114的输出130可以包括其他经处理的图像数据(例如,也称为“第五图像数据”)。
过程100可以包括一个或更多个第三图像处理技术116,其处理来自更新的矩阵114的输出130,其中,输出130可以再次包括第五图像数据。在一些实例中,一个或更多个第三图像处理技术116可包括上文关于一个或更多个第一图像处理技术108所描述的图像处理技术中的一个或更多个。在一些示例中,一个或更多个第三图像处理技术116可以包括一个或更多个附加的和/或替代的处理技术。例如,一个或更多个第三图像处理技术116可包括被配置成编码第五图像数据以供图像处理管线106输出的一个或更多个编码器。
过程100可以包括图像处理管线106(例如,一个或更多个第三图像处理技术116)输出经处理的图像数据132。在一些示例中,经处理的图像数据132可以被输出至进一步处理经处理的图像数据132的一个或更多个***,诸如车辆的一个或更多个***。例如,车辆的一个或更多个***可以包括感知***,其被配置成处理经处理的图像数据132以便检测和/或跟踪对象。在一些示例中,经处理的图像数据132可输出到诸如显示器之类的设备,该设备被配置为处理经处理的图像数据132以便呈现由经处理的图像数据132表示的一个或更多个图像。
如本文描述的,通过使用图1的图像处理管线106,经处理的图像数据132可以包括减少数量的伪影和/或不包括伪影。例如,图3A-3B示出根据本公开的一些示例的示出使用不包括延迟CCM的常规图像处理管线处理图像数据和使用包括延迟CCM 118的图像处理管线106处理图像数据之间的差异的示例。如图3A的示例所示,可处理由图像数据(例如,图像数据104)表示的图像302,其中该图像至少描绘了来自车辆306的灯304和来自交通灯310的灯308。图3A的示例还包括顶部图示312和底部图示314,该顶部图示312示出了图像302的一部分在使用不采用延迟CCM的常规图像处理管线处理之后看起来如何,该底部图示314示出了图像302的该部分在使用采用延迟CCM 118的图像处理管线106处理之后看起来如何。
如图所示,顶部图示312包括基于该处理存在的多个伪影316(但是出于清楚的原因仅标记了一个伪影,并且它们可以具有不同的颜色外观、大小和严重性)。如本文所描述的,伪影316可发生在图像302的特定部分中,例如图像302的描绘灯304的部分。这可能是由于常规图像处理管线的CCM确定导致常规图像处理管线的较后处理阶段的问题的范围外值。然而,底部图示314可以不包括伪影,因为CCM 118的强度的至少一部分被延迟到图像处理管线106的较后处理阶段。
在图3B的示例中,左侧图示318示出了图像302的一部分在使用不采用延迟CCM的常规图像处理管线处理之后看起来如何,并且右侧图示320示出了图像302的该部分在使用采用延迟CCM 118的图像处理管线106处理之后看起来如何。如图所示,左侧图示318包括基于该处理存在的多个伪影322(但是为了清楚起见仅标记一个)。如本文所描述的,伪影322可发生在图像302的特定部分中,例如图像302的描绘灯308的部分。这可能是由于常规图像处理管线的CCM确定导致常规图像处理管线的较后处理阶段的问题的范围外值。然而,右侧图示320可以不包括伪影,因为CCM 118的强度的至少一部分被延迟到图像处理管线106的较后处理阶段。
现在参见图4-图5,本文所描述的方法400和方法500的每个框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各个功能可以通过处理器执行存储在存储器中的指令来实现。方法400和方法500还可以体现为存储在计算机存储介质上的计算机可用指令。方法400和方法500可由独立应用、服务或托管服务(独立地或与另一托管服务组合)或另一产品的插件提供,仅举几例。此外,通过示例的方式,关于图1描述了方法400和方法500。然而,这些方法400和方法500可以另外或替代地由任何一个***或***的任何组合来执行,这些***包括但不限于本文描述的那些***。
图4是示出了根据本发明的一些实施例的用于使用包括延迟CCM的图像处理管线处理图像数据的方法400的流程图。在框B402处,方法400可以包括接收使用一个或更多个图像传感器生成的第一图像数据。例如,图像处理管线106可接收使用一个或更多个图像传感器102生成的第一图像数据104。在一些示例中,一个或更多个图像传感器102可以包括在一个或更多个相机中,诸如车辆的一个或更多个相机。在一些示例中,第一图像数据104可表示与第一颜色空间相关联的颜色,例如与一个或更多个图像传感器102相关联的第一颜色空间。
在框B404处,方法400可包括使用与颜色校正矩阵相关联的第一矩阵来处理第一图像数据,以生成第二图像数据。例如,图像处理管线106可以使用第一CCM 110处理第一图像数据104。如这里所描述的,第一CCM 110可以被配置为将第一图像数据104的颜色从第一颜色空间转换到第二颜色空间以便生成第二图像数据(例如,其可以由120表示)。在一些示例中,第二颜色空间仅包括第一颜色空间的一部分。如本文所描述的,图像处理管线106可以将CCM 118的强度的至少一部分延迟到一个或更多个较后的处理阶段。照此,第一CCM110的一个或更多个值(例如,来自以上等式的a11、a22和a33中的一个或更多个)可以小于CCM118的一个或更多个值。
在框B406处,方法400可包括:使用一个或更多个图像处理技术来处理第二图像数据,以生成第三图像数据。例如,图像处理管线106可使用一个或更多个第二图像处理技术112来处理第二图像数据以生成第三图像数据(其可由128表示)。在一些示例中,一个或更多个第二图像处理技术112可以包括色调映射、伽马转换等。在一些示例中,由于图像处理管线106延迟了CCM 118的至少一部分,因此一个或更多个第二图像处理技术112可以在处理第二图像数据时处理减少数量的范围外值和/或没有范围外值。
在框B408处,方法400可包括:使用与颜色校正矩阵相关联的第二矩阵来处理第三图像数据,以生成第四图像数据。例如,图像处理管线106可使用更新的矩阵114处理第三图像数据以生成第四图像数据(其可由128表示)。如本文所描述的,该更新的矩阵114可以至少基于延迟的第二CCM 122和/或附加矩阵(例如颜色空间转换矩阵)来确定。因此,与该更新的矩阵114相关联的第一CCM 110和第二CCM 122可以一起包括原始CCM 118的全强度。
在框B410处,方法400可包括输出第四图像数据。例如,图像处理管线106可输出第四图像数据。在一些示例中,第四图像数据然后由一个或更多个其他***(诸如车辆或机器的一个或更多个感知***)处理。在一些示例中,第四图像数据用于显示内容,例如由第四图像数据表示的一个或更多个图像。
现在参考图5,图5是示出了根据本公开的一些实施例的用于延迟图像处理管线中的CCM的至少一部分的方法500的流程图。在框B502处,方法500可包括:接收与图像处理管线的颜色校正矩阵相关联的拆分强度的指示。例如,一个或更多个***可以接收图像处理管线106的CCM 118的拆分强度的指示,例如上面的等式(8)中的s。在一些示例中,一个或更多个***从与用户相关联的用户设备接收指示。例如,用户可能够选择要延迟到图像处理管线106的一个或更多个较后阶段的总CCM的量,其中拆分强度与延迟的量相关联。
在框B504处,方法500可包括:至少基于拆分强度来确定颜色校正矩阵。例如,一个或更多个***可以使用拆分强度确定第一CCM 110。在一些示例中,一个或更多个***通过减少与总CCM 118相关联的一个或更多个值确定第一CCM 110。在一些示例中,第一CCM 110可以与图像处理管线106的一个或更多个初始处理阶段相关联。
在框B506处,方法500可包括:至少基于拆分强度和颜色校正矩阵来确定延迟的颜色校正矩阵。例如,一个或更多个***还可以使用拆分强度和总CCM 118来确定延迟的第二CCM 122。如本文所描述的,在一些示例中,一个或更多个***可以基于第一CCM 110和第二CCM 122(其一起等于总CCM 118)来确定第二CCM 122。
在框B508处,方法500可以包括:至少基于延迟的颜色校正矩阵来确定用于图像处理管线的更新的矩阵。例如,一个或更多个***可以至少使用第二CCM 122来确定更新的矩阵114。在一些示例中,一个或更多个***进一步使用与一个或更多个图像处理技术相关联的一个或更多个附加矩阵(诸如与颜色空间转换相关联的矩阵)来确定该更新的矩阵114。在一些示例中,该更新的矩阵114可与图像处理管线106的一个或更多个较后处理阶段相关联。
示例自主车辆
图6A是根据本发明的一些实施例的示例自主车辆600的图示。自主车辆600(或者在本文中称为“车辆600”)可以包括但不限于乘用车,例如汽车、卡车、公共汽车、第一响应车辆、穿梭车、电动或机动自行车、摩托车、消防车、警车、救护车、船、工程车辆、水下航行器、机器人车辆、无人机、飞机、与拖车耦合的车辆(例如,用于拖运货物的半牵引挂车卡车)、和/或其他类型的交通工具(例如,无人驾驶和/或容纳一名或更多名乘客的交通工具)。自主车辆通常按照自动化水平进行描述,由美国交通部下属的国家公路交通安全管理局(NHTSA)定义,以及美国汽车工程师学会(SAE)“道路机动车辆驾驶自动化***相关术语的分类和定义”(标准编号:J3016-201806,于2018年6月15日发布,标准编号:J3016-201609,于2016年9月30日发布,以及本标准的先前和未来版本)。车辆600可以根据自主驾驶级别的3级至5级中的一个或更多个实现功能。车辆600可以根据自主驾驶级别的3级至5级中的一个或更多个实现功能。例如,根据实施例,车辆600可以具有驾驶员辅助(1级)、部分自动化(2级)、条件自动化(3级)、高自动化(4级)和/或全自动化(5级)。如本文使用的,术语“自主”可包括车辆600或其他机器的任何和/或所有类型的自主性,诸如完全自主、高度自主、条件自主、部分自主、提供辅助自主性、半自主、主要自主或其他名称。
车辆600可包括底盘、车身、车轮(例如,2、4、6、8、18等)、轮胎、车轴和车辆的其他部件。车辆600可包括推进***650,例如内燃机、混合动力发电厂、全电动发动机和/或其他推进***类型。推进***650可连接至车辆600的传动系,该传动系可包括变速器,以实现车辆600的推进。推进***650可响应于接收来自节流阀/加速器652的信号进行控制。
当推进***650运行时(例如,当车辆运动时),可使用包括方向盘的转向***654来引导车辆600(例如,沿着所需路径或路线)。转向***654可以接收来自转向致动器656的信号。对于全自动(5级)功能而言,方向盘可以是可选的。
制动传感器***646可用来响应于从制动致动器648和/或制动传感器接收到的信号而操作车辆制动器。
一个或更多个控制器636可包括一个或更多个片上***(SoC)604(图6C)和/或一个或更多个GPU,可向车辆600的一个或更多个部件和/或***提供信号(例如,代表命令)。例如,一个或更多个控制器可通过一个或更多个制动致动器648发送信号以操作车辆制动器,通过一个或更多个转向致动器656操作转向***654,通过一个或更多个油门/加速器652操作推进***650。一个或更多个控制器636可包括一个或更多个车载(例如,集成)计算设备(例如,超级计算机),其处理传感器信号,并输出操作命令(例如,表示命令的信号),以启用自主和/或协助人类驾驶员驾驶车辆600。一个或更多个控制器636可包括用于自主功能的第一控制器636、用于功能安全功能的第二控制器636、用于人工智能功能的第三控制器636(例如,计算机视觉),用于信息娱乐功能的第四控制器636,用于紧急情况下冗余的第五控制器636,和/或其他控制器。在一些示例中,单个控制器636可处理上述功能中的两个或更多个,两个或更多个控制器636可处理单个功能和/或其任何组合。
一个或更多个控制器636可提供用于控制车辆600的一个或更多个部件和/或***的信号,以响应从一个或更多个传感器接收的传感器数据(例如,传感器输入)。传感器数据可从例如但不限于一个或更多个全球导航卫星***(“GNSS”)传感器658(例如,一个或更多个全球定位***传感器)、一个或更多个雷达传感器660、一个或更多个超声波传感器662、一个或更多个激光雷达传感器664、一个或更多个惯性测量单元(IMU)传感器666(例如,一个或更多个加速计、一个或更多个陀螺仪、一个或更多个磁罗盘、一个或更多个磁力计等)、一个或更多个麦克风696、一个或更多个立体相机668、一个或更多个广角相机670(如鱼眼相机)、一个或更多个红外相机672、一个或更多个环绕相机674(如360度相机)、一个或更多个远程和/或中频相机698、一个或更多个速度传感器644(如用于测量车辆600的速度)、一个或更多个振动传感器642、一个或更多个转向传感器640、一个或更多个制动传感器(例如,作为制动传感器***646的一部分)和/或其他传感器类型。
控制器636中的一个或更多个可以从车辆600的仪表组632接收输入(例如,由输入数据表示),并通过人机接口(HMI)显示器634、音频信号器、扬声器等和/或通过车辆600的其他部件提供输出(例如,由输出数据表示、显示数据等)。输出可包括诸如车辆速度、速率、时间、地图数据(例如,图6C的高清(“HD”)地图622)、位置数据(例如,车辆600的位置,例如地图上的位置)、方向、其他车辆的位置(例如,占用网格)等信息,一个或更多个控制器636感知到的关于对象和对象状态的信息等。例如,HMI显示器634可以显示关于一个或更多个对象存在的信息(例如,街道标志、警告标志、交通灯改变等),和/或关于车辆已进行、正在进行、或将进行的驾驶操作的信息(例如,现在换车道,两英里后从34B出口驶出等)。
车辆600还包括网络接口624,其可使用一个或更多个无线天线626和/或调制解调器通过一个或更多个网络进行通信。例如,网络接口624可以能够通过长期演进(“LTE”)、宽带码分多址(“WCDMA”)、通用移动电信***(“UMTS”)、全球移动通信***(“GSM”)、IMT-CDMA多载波(“CDMA2000”)等进行通信。一个或更多个无线天线626还可以使用一个或更多个局域网(例如蓝牙、蓝牙低能量(LE)、Z波、ZigBee等和/或低功耗广域网(LPWAN),如LoRaWAN、SigFox等)在环境中的对象(例如,车辆、移动设备等)之间实现通信。
图6B是根据本发明的一些实施例的图6A的示例性自主车辆600的相机位置和视野示例。相机和各自的视野是一个示例实施例,并不旨在限制。例如,可包括附加和/或替代相机和/或相机可位于车辆600上的不同位置。
相机的相机类型可包括但不限于数字相机,该相机可适用于车辆600的部件和/或***。一个或更多个相机可在汽车安全完整性等级(ASIL)B和/或其他ASIL下运行。根据实施例,相机类型可以具有任何图像捕获速率,例如每秒60帧(fps)、120帧、240帧等。相机可以使用卷帘式快门、全局快门、另一种类型的快门或其组合。在一些示例中,滤色器阵列可包括红色透明(RCCC)滤色器阵列、红色透明蓝色(RCCB)滤色器阵列、红蓝绿色透明(RBGC)滤色器阵列、Foveon X3滤色器阵列、拜耳传感器(RGGB)滤色器阵列、单色传感器滤色器阵列、和/或其他类型的滤色器阵列。在一些实施例中,可以使用清晰像素相机,例如具有RCCC、RCCB和/或RBGC滤色器阵列的相机,以努力提高光灵敏度。
在一些示例中,一个或更多个摄像头可用于执行高级驾驶员辅助***(ADAS)功能(例如,作为冗余或故障安全设计的一部分)。例如,可安装多功能单摄像头,以提供车道偏离警告、交通标志辅助和智能前照灯控制等功能。一个或更多个相机(例如,所有相机)可以同时记录和提供图像数据(例如,视频)。
一个或更多个摄像头可安装在安装组件中,如定制设计(三维(“3D”)打印)组件,以切断可能干扰摄像头图像数据捕获能力的杂散光和车内反射(例如,挡风玻璃后视镜反射的仪表板反射)。关于翼镜安装组件,翼镜组件可定制3D打印,以便摄像头安装板与翼镜形状匹配。在一些示例中,一个或更多个相机可以集成到机翼后视镜中。对于侧视图相机,一个或更多个相机也可以集成在驾驶室每个拐角的四根立柱内。
具有包括车辆600前方环境部分的视野的相机(例如,前置相机)可用于环绕视图,以帮助识别前向路径和障碍物,以及在一个或更多个控制器636和/或控制SOC的帮助下,辅助提供对生成占用网格和/或确定首选车辆路径至关重要的信息。前置相机可用于执行许多与激光雷达相同的ADAS功能,包括紧急制动、行人检测和防撞。前向摄像头也可用于ADAS功能和***,包括车道偏离警告(“LDW”)、自动巡航控制(“ACC”)和/或其他功能,如交通标志识别。
各种相机可用于前置配置,包括例如包括互补金属氧化物半导体(“CMOS”)彩色成像仪的单目相机平台。另一个示例可以是可用于感知从***进入视野的对象(例如,行人、交叉交通或自行车)的广角相机670。尽管图6B中仅示出了一个广角相机,但车辆600上可能有任意数量(包括零)的广角相机670。此外,任意数量的远程相机698(例如,长角立体相机对)可用于基于深度的对象检测,特别是对于尚未训练神经网络的对象。一个或更多个远程相机698还可用于对象检测和分类以及基本目标跟踪。
任意数量的立体相机668也可包括在前置配置中。在至少一个实施例中,一个或更多个立体相机668可以包括集成控制单元,该集成控制单元包括可扩展处理单元,该可扩展处理单元可以在单个芯片上提供可编程逻辑(“FPGA”)和具有集成控制器区域网络(“CAN”)或以太网接口的多核微处理器。该单元可用于生成车辆环境的3D地图,包括图像中所有点的距离估计。一个或更多个可替代的立体相机668可包括紧凑型立体视觉传感器,该传感器可包括两个相机镜头(左右各一个)和图像处理芯片,该图像处理芯片可测量从车辆到目标对象的距离并使用生成的信息(例如,元数据)以激活自动紧急制动和车道偏离警告功能。除了本文所述的立体相机之外,或者可选地,可以使用其他类型的立体相机668。
具有包括车辆600侧面环境部分的视野的相机(例如,侧视相机)可用于环绕视图,提供用于创建和更新占用网格以及生成侧面碰撞警告的信息。例如,一个或更多个环绕相机674(例如,如图6B所示的四个环绕相机674)可定位在车辆600上。一个或更多个环绕相机674可包括一个或更多个广角相机670、一个或更多个鱼眼相机、一个或更多个360度相机等。例如,四个鱼眼相机可位于车辆的前部、后部和侧面。在替代布置中,车辆可使用三个环绕摄像头674(例如,左、右和后),并可利用一个或更多个其他摄像头(例如,前置相机)作为第四个环绕视图相机。
具有包括车辆600后部环境部分的视野的相机(例如,后视相机)可用于泊车辅助、环绕视野、追尾警告以及创建和更新占用网格。可以使用多种相机,包括但不限于也适合作为前置相机的相机(例如,一个或更多个远程和/或中程相机698、一个或更多个立体相机668、一个或更多个红外相机672等),如本文所述。
图6C是根据本发明的一些实施例的图6A的示例性自主车辆600的示例性***架构的框图。应理解,本文所述的此布置和其它布置仅作为示例阐述。除了所示的布置和元件之外,还可以使用其他布置和元件(例如,机器、接口、功能、顺序、功能分组等),或者可以使用其他布置和元件代替所示布置和元件,并且可以完全省略一些元件。此外,本文所描述的许多元件是功能实体,其可以作为离散或分布式组件实现,或者与其他组件结合实现,并且可以以任何合适的组合和位置实现。在此描述为由实体执行的各种功能可以通过硬件、固件和/或软件来执行。例如,各种功能可以由执行存储在存储器中的指令的处理器执行。
图6C中车辆600的每个部件、特征和***均通过总线602连接。总线602可包括控制器局域网(CAN)数据接口(在本文中也可称为“CAN总线”)。CAN可以是车辆600内的网络,用于帮助控制车辆600的各种特征和功能,例如制动器、加速、制动、转向、挡风玻璃雨刮器等的驱动。CAN总线可以配置为具有数十个甚至数百个节点,每个节点具有其自己的唯一标识符(例如,CAN ID)。可以读取CAN总线以查找方向盘角度、地速(ground speed,)、每分钟发动机转速(RPM)、按钮位置和/或其他车辆状态指示灯。CAN总线可以符合ASIL B标准。
尽管总线602在本文中被描述为CAN总线,但这并非旨在限制。例如,除了CAN总线之外,或者从CAN总线,还可以使用FlexRay和/或以太网。此外,尽管使用单线表示总线602,但这并旨在限制性的。例如,可以存在任意数量的总线602,其可以包括一个或更多个CAN总线、一个或更多个FlexRay总线、一个或更多个以太网总线和/或使用不同协议的一个或更多个其他类型的总线。在一些示例中,两个或更多个总线602可用于执行不同的功能,和/或可用于冗余。例如,第一总线602可用于碰撞避免功能,第二总线602可用于驱动控制。在任何示例中,每条总线602可与车辆600的任何部件通信,且两条或更多条总线602可与相同部件通信。在一些示例中,车辆内的每个SoC 604、每个控制器636和/或每个计算机可以访问相同的输入数据(例如,来自车辆600的传感器的输入),并且可以连接到公共总线,例如CAN总线。
车辆600可包括一个或更多个控制器636,如本文关于图6A所述的控制器。控制器636可用于各种功能。一个或更多个控制器636可以耦合到车辆600的各种其他组件和***中的任何一个,并且可以用于控制车辆600、车辆600的人工智能、车辆600的信息娱乐等。
车辆600可包括一个或更多个片上***(SoC)604。SoC 604可包括一个或更多个CPU 606、一个或更多个GPU 608、一个或更多个处理器610、一个或更多个高速缓存612、一个或更多个加速器614、一个或更多个数据存储616和/或未示出的其他组件和特征。一个或更多个SoC 604可用于控制各种平台和***中的车辆600。例如,一个或更多个SoC 604可以与HD地图622组合在***(例如,车辆600的***)中,HD地图622可以经由网络接口624从一个或更多个服务器(例如,图6D的服务器678)获得地图刷新和/或更新。
一个或更多个CPU 606可以包括CPU集群或CPU复合体(或者在本文中称为“CCPLEX”)。一个或更多个CPU 606可以包括多个核心和/或二级高速缓存。例如,在一些实施例中,一个或更多个CPU 606可以包括相干多处理器配置中的八个核。在一些实施例中,一个或更多个CPU 606可包括四个双核集群,其中每个集群具有专用二级缓存(例如,2MB二级高速缓存)。一个或更多个CPU 606(例如,CCPLEX)可被配置为支持同时集群操作,使得CPU 606的集群的任何组合在任何给定时间处于活动状态。
一个或更多个CPU 606可实现包括以下一个或更多个特征的功率管理能力:单个硬件块可在空闲时自动时钟选通以节省动态功率;当内核由于执行WFI/WFE指令而未主动地执行指令时,可以对每个内核时钟进行选通;每个核心可以独立地进行功率选通;当所有核心都被时钟选通或电源选通时,每个核心集群可以独立地进行时钟选通;和/或当所有核心都是功率选通时,每个核心集群可以独立地功率选通。一个或更多个CPU 606可以进一步实现用于管理功率状态的增强算法,其中指定了允许的功率状态和预期唤醒时间,并且硬件/微码确定为核心、集群和CCPLEX进入的最佳电源状态。处理核心可支持软件中简化的电源状态输入序列,并将工作卸载到微码。
一个或更多个GPU 608可以包括集成的GPU(或者在本文中称为“iGPU”)。GPU 608可以是可编程的,并且可以对并行工作负载是高效的。在一些示例中,一个或更多个GPU608可以使用增强的张量指令集。一个或更多个GPU 608可以包括一个或更多个流微处理器,其中每个流微处理器可以包括一级高速缓存(例如,具有至少96KB存储容量的一级高速缓存),并且两个或更多个流微处理器可以共享二级高速缓存(例如,具有512KB存储容量的二级高速缓存)。在一些实施例中,一个或更多个GPU 608可包括至少八个流式微处理器。一个或更多个GPU 608可以使用一个或更多个计算应用程序编程接口(API)。此外,一个或更多个GPU 608可以使用一个或更多个并行计算平台和/或编程模型(例如,NVIDIA的CUDA)。
一个或更多个GPU 608可进行功率优化,以在汽车和嵌入式用例中获得最佳性能。例如,一个或更多个GPU 608可在鳍型场效应晶体管(FinFET)上制造。然而,这并非旨在限制,并且可以使用其他半导体制造工艺来制造一个或更多个GPU 608。每个流式微处理器可合并多个分割成多个块的混合精度处理核心。例如,但不限于,64个PF32核和32个PF64核可被划分为四个处理块。在这样的示例中,可以为每个处理块分配16个FP32核、8个FP64核、16个INT32核、两个用于深度学习矩阵算法的混合精度NVIDIA张量核、L0指令高速缓存、线程束调度器、分派单元和/或64KB寄存器文件。此外,流式微处理器可包括独立的并行整数和浮点数据路径,以通过混合计算和寻址计算来提供工作负载的有效执行。流式微处理器可以包括独立的线程调度能力,以实现并行线程之间更细粒度的同步和协作。流式微处理器可以包括组合的一级数据高速缓存和共享存储器单元,以便在简化编程的同时提高性能。
一个或更多个GPU 608可包括高带宽存储器(HBM)和/或16GB HBM2存储器子***,以在一些示例中提供约900GB/秒峰值存储器带宽。在一些示例中,除了HBM存储器之外,或者可选地从HBM存储器使用同步图形随机存取存储器(SGRAM),例如第五代图形双数据速率同步随机存取存储器(GDDR5)。
第五代GPU 608可包括统一内存技术,其包括访问计数器,以允许更准确地将内存页迁移到最频繁访问它们的处理器,从而提高处理器之间共享内存范围的效率。在一些示例中,地址转换服务(ATS)支持可用于允许一个或更多个GPU 608直接访问一个或更多个CPU 606页表。在这样的示例中,当一个或更多个GPU 608存储器管理单元(MMU)经历未命中时,地址转换请求可被发送到一个或更多个CPU 606。作为响应,一个或更多个CPU 606可在其页表中查找地址的虚拟到物理映射,并将转换发送回一个或更多个GPU 608。因此,统一存储器技术可允许一个或更多个CPU 606和一个或更多个GPU 608两者的存储器的单个统一虚拟地址空间,从而简化一个或更多个GPU 608编程和将应用程序移植到一个或更多个GPU 608。
此外,一个或更多个GPU 608可包括访问计数器,其可跟踪一个或更多个GPU 608对其他处理器的存储器的访问频率。访问计数器可帮助确保将内存页移动到访问页面最频繁的处理器的物理内存中。
一个或更多个SoC 604可包括任意数量的高速缓存612,包括本文所述的高速缓存612。例如,一个或更多个高速缓存612可以包括对一个或更多个CPU 606和一个或更多个GPU 608(例如,连接一个或更多个CPU 606和一个或更多个GPU 608两者)都可用的L3高速缓存。高速缓存612可包括可跟踪线的状态的回写高速缓存,例如通过使用高速缓存一致性协议(例如,MEI、MESI、MSI等)。尽管可以使用较小的缓存大小,但根据实施例,L3缓存可以包括4MB或更多。
一个或更多个SoC 604可包括一个或更多个算术逻辑单元(ALU),该算术逻辑单元可用于执行与车辆600的各种任务或操作相关的处理,例如处理DNN。此外,一个或更多个SoC 604可包括用于在***内执行数学运算的一个或更多个浮点单元(FPU)或其他数学协处理器或数字协处理器类型。例如,一个或更多个SoC 104可以包括集成为CPU 606和/或GPU 608内的执行单元的一个或更多个FPU。
一个或更多个SoC 604可包括一个或更多个加速器614(例如,硬件加速器、软件加速器或其组合)。例如,一个或更多个SoC 604可以包括硬件加速集群,该硬件加速集群可以包括优化的硬件加速器和/或大型片上存储器。大型片上存储器(例如4MB的SRAM)可以使硬件加速集群加速神经网络和其他计算。硬件加速集群可用于补充一个或更多个GPU 608并卸载一个或更多个GPU 608的一些任务(例如,释放一个或更多个GPU 608的更多周期以执行其他任务)。例如,一个或更多个加速器614可用于足够稳定以适于加速的目标工作负载(例如,感知、卷积神经网络(CNN)等)。本文使用的术语“CNN”可包括所有类型的CNN,包括基于区域或区域卷积神经网络(RCNN)和快速RCNN(例如,用于目标检测)。
一个或更多个加速器614(例如,硬件加速集群)可包括一个或更多个深度学习加速器(DLA)。一个或更多个DLA可包括一个或更多个张量处理单元(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可包括例如但不限于任何数量的精简指令集计算机(RISC)内核、直接存储器访问(DMA)和/或任何数量的向量处理器。
RISC内核可与图像传感器(例如,本文所述的任何相机的图像传感器)、一个或更多个图像信号处理器等交互。每个RISC核可以包括任意数量的存储器。RISC核心可以使用多种协议中的任何一种,具体取决于实施例。在一些示例中,RISC内核可以执行实时操作***(RTOS)。RISC核心可以使用一个或更多个集成电路设备、专用集成电路(asic)和/或存储器设备来实现。例如,RISC内核可以包括指令高速缓存和/或紧密耦合的RAM。
DMA可使PVA组件独立于一个或更多个CPU 606访问***内存。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均提供就绪且有效的信号。这种接口可以提供用于传输控制信号/地址/数据的独立相位和独立信道,以及用于连续数据传输的突发式通信。此类接口可符合ISO26262或IEC 61508标准,但也可使用其他标准和协议。
在一些示例中,一个或更多个SoC 604可包括实时光线跟踪硬件加速器,如2018年8月10日提交的第16/101232号美国专利申请中所述。实时光线跟踪硬件加速器可用于快速有效地确定对象的位置和范围(例如,在世界模型内),生成实时可视化模拟,用于雷达信号解释、声音传播合成和/或分析、声纳***模拟、一般波传播模拟、与激光雷达数据进行比较,以用于定位和/或其他功能和/或其他用途。在一些实施例中,一个或更多个树遍历单元(ttu)可用于执行一个或更多个射线跟踪相关操作。
一个或更多个加速器614(例如,硬件加速器集群)在自主方面有着广泛的用途。PVA可能是一种可编程视觉加速器,可用于ADA和自主车辆的关键加工阶段。PVA的能力非常适合需要以功耗低且延迟低进行可预测处理的算法域。换句话说,PVA在半密集或常规密集计算上表现良好,即使在小数据集上也是如此,这些数据集需要低延迟和低功耗的可预测运行时间。因此,在自主车辆平台的背景下,PVA被设计为运行经典的计算机视觉算法,因为它们在目标检测和整数数学运算方面非常有效。
例如,根据本技术的一个实施例,PVA用于执行计算机立体视觉。在一些示例中,可以使用基于半全局匹配的算法,尽管这不是为了限制。3-5级自主驾驶的许多应用需要即时运动估计/立体匹配(例如,运动结构、行人识别、车道检测等)。PVA可对来自两个单目相机的输入执行计算机立体视觉功能。
在一些示例中,PVA可用于执行密集光流。根据处理原始雷达数据(例如,使用4D快速傅里叶变换)提供处理后的雷达。在其他示例中,PVA用于飞行时间深度处理,例如,通过处理原始飞行时间数据来提供处理后的飞行时间数据。
DLA可用于运行任何类型的网络,以增强控制和驾驶安全性,例如,包括为每个目标检测输出置信度测量值的神经网络。这样的置信值可以解释为概率,或者提供每个检测相对于其他检测的相对“权重”。该置信值使***能够进一步决定哪些检测应被视为真阳性检测而不是假阳性检测。例如,***可以设置置信度的阈值,并且仅考虑超过阈值的检测作为真阳性检测。在自动紧急制动(AEB)***中,假阳性检测将导致车辆自动执行紧急制动,这显然是不希望的。因此,只有最可靠的检测才应被视为AEB的触发因素。DLA可以运行神经网络来回归置信值。神经网络可将至少一些参数子集作为其输入,例如边界框尺寸、获得的地平面估计(例如,从另一子***)、与车辆600方位、距离相关的惯性测量单元(IMU)传感器666输出,从神经网络和/或其他传感器(例如,激光雷达传感器664或雷达传感器660)等获得的对象的三维位置估计。
一个或更多个SoC 604可包括一个或更多个数据存储616(例如存储器)。数据存储616可以是SoC 604的片上存储器,其可以存储要在GPU和/或DLA上执行的神经网络。在一些示例中,数据存储616的容量可以足够大,以存储用于冗余和安全的多个神经网络实例。数据存储612可包括二级或三级高速缓存612。如本文所述,对一个或更多个数据存储616的引用可包括对与PVA、DLA和/或一个或更多个其他加速器614相关联的存储器的引用。
一个或更多个SoC 604可包括一个或更多个处理器610(例如嵌入式处理器)。处理器610可以包括引导和电源管理处理器,该处理器可以是专用处理器和子***,用于处理引导电源和管理功能以及相关安全实施。引导和电源管理处理器可以是一个或更多个SoC604引导序列的一部分,并且可以提供运行时电源管理服务。引导电源和管理处理器可提供时钟和电压编程、***低电源状态转换协助、SoC 604热传感器和温度传感器的管理和/或SoC 604电源状态的管理。每个温度传感器可实现为输出频率与温度成比例的环形振荡器,并且一个或更多个SoC 604可使用环形振荡器检测一个或更多个CPU 606、一个或更多个GPU 608和/或一个或更多个加速器614的温度。如果确定温度超过阈值,引导和电源管理处理器可进入温度故障例行程序,并将一个或更多个SoC 604置于低功率状态和/或将车辆600置于司机安全停车模式(例如,使车辆600安全停车)。
一个或更多个处理器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可用于处理来自相机(例如,通过千兆多媒体串行链路和以太网连接)、传感器(例如,可通过以太网连接的一个或更多个激光雷达传感器664、一个或更多个雷达传感器660等)、来自总线602的数据(例如,车辆600的速度、方向盘位置等)、来自一个或更多个GNSS传感器658的数据(例如,通过以太网或CAN总线连接)。一个或更多个SoC 604还可以包括专用的高性能大容量存储控制器,该控制器可以包括其自己的DMA引擎,并且可以用于将一个或更多个CPU 606从常规数据管理任务中解放出来。
一个或更多个SoC 604可以是一个端到端平台,具有灵活的体系架构,跨越自动化水平3-5,从而提供一个全面的功能安全体系架构,该体系架构利用并有效利用计算机视觉和ADAS技术实现多样性和冗余,为灵活可靠的驱动软件堆栈以及深度学***台。与传统***相比,一个或更多个SoC604可以更快、更可靠、甚至更节能和节省空间。例如,当一个或更多个加速器614与一个或更多个CPU 606、一个或更多个GPU 608和一个或更多个数据存储616组合时,可为3-5级自主车辆提供快速、高效的平台。
因此,该技术提供了传统***无法实现的能力和功能。例如,计算机视觉算法可以在CPU上执行,CPU可以使用高级编程语言(例如C编程语言)来配置,以在各种各样的视觉数据上执行各种各样的处理算法。然而,CPU通常无法满足许多计算机视觉应用程序的性能要求,例如与执行时间和功耗相关的应用程序。特别是,许多CPU无法实时执行复杂的目标检测算法,这是车载ADAS应用的要求,也是实际3-5级自主车辆的要求。
与传统***相比,通过提供CPU复合体、GPU复合体和硬件加速集群,本文描述的技术允许同时和/或顺序执行多个神经网络,并允许将结果组合在一起以实现3-5级自主驾驶功能。例如,在DLA或dGPU(例如,一个或更多个GPU 620)上执行的CNN可以包括文本和字识别,从而允许超级计算机读取和理解交通标志,包括神经网络尚未针对其专门训练的标志。DLA还可以包括能够识别、解释和提供符号的语义理解的神经网络,并将该语义理解传递给CPU复合体上运行的路径规划模块。
另一个例子是,可以同时运行多个神经网络,如3级、4级或5级驾驶所需。例如,由“警告:闪烁的灯光指示结冰情况”和电灯组成的警告标志可以由多个神经网络独立或共同解释。标志本身可通过第一个部署的神经网络(例如,经过训练的神经网络)识别为交通标志,文本“闪光灯指示结冰条件”可由第二个部署的神经网络解释,当检测到闪光灯时,通知车辆路径规划软件(优选地在CPU复合体上执行)存在结冰情况。可通过在多个帧上操作第三个部署的神经网络来识别闪光灯,通知车辆路径规划软件是否存在闪光灯。所有三个神经网络可同时运行,例如在DLA内和/或在一个或更多个GPU 608上。
在一些示例中,用于面部识别和车主识别的CNN可使用相机传感器的数据来识别经授权的驾驶员和/或车辆600的所有者的存在。当所有者靠近驾驶员车门并打开车灯时,可使用常开传感器处理引擎解锁车辆,以及,在安全模式下,当所有者离开车辆时禁用车辆。通过这种方式,一个或更多个SoC 604提供了防盗和/或劫车保护。
在另一个示例中,用于紧急车辆检测和识别的CNN可使用来自麦克风696的数据来检测和识别紧急车辆警报器。与使用通用分类器检测警报器和手动提取特征的传统***不同,一个或更多个SoC(s)604使用CNN对环境和城市声音进行分类,以及对视觉数据进行分类。在优选实施例中,对DLA上运行的CNN进行训练以识别紧急车辆的相对关闭速度(例如,通过使用多普勒效应)。CNN还可接受训练,以识别特定于车辆运行区域的应急车辆,如一个或更多个GNSS传感器658所识别。因此,例如,当在欧洲运行时,CNN将寻求检测欧洲警报,当在美国时,CNN将寻求仅识别北美警报。一旦检测到紧急车辆,可使用控制程序在超声波传感器662的帮助下执行紧急车辆安全例行程序,使车辆减速、靠边停车、停车和/或使车辆怠速,直到一个或更多个紧急车辆通过。
车辆可包括一个或更多个CPU 618(例如,一个或更多个离散CPU或一个或更多个dCPU),其可通过高速互连(例如PCIE)耦合至一个或更多个SoC 604。例如,一个或更多个CPU 618可以包括X86处理器。CPU 618可用于执行各种功能中的任何一种,包括仲裁ADAS传感器和SoC 604之间可能不一致的结果,和/或监测一个或更多个控制器636和/或信息娱乐SoC 630的状态和健康状况。
车辆600可包括一个或更多个GPU 620(例如,一个或更多个离散GPU或一个或更多个dGPU),其可通过高速互连(例如,NVIDIA的NVLINK)耦合至SoC 604。一个或更多个GPU620可以提供额外的人工智能功能,例如通过执行冗余和/或不同的神经网络,并且可以用于基于来自车辆600的传感器的输入(例如,传感器数据)训练和/或更新神经网络。
车辆600还可以包括网络接口624,网络接口624可以包括一个或更多个无线天线626(例如,用于不同通信协议的一个或更多个无线天线,例如蜂窝天线、蓝牙天线等)。网络接口624可用于通过互联网实现与云(例如,与一个或更多个服务器678和/或其他网络设备)、与其他车辆和/或与计算设备(例如,乘客的客户端设备)的无线连接。为了与其他车辆通信,可在两辆车辆之间建立直接链路和/或建立间接链路(例如,通过网络和互联网)。可使用车对车通信链路提供直接链路。车辆到车辆通信链路可向车辆600提供关于车辆600附近车辆的信息(例如,车辆600前面、侧面和/或后面的车辆)。该功能可能是车辆600的协作自适应巡航控制功能的一部分。
网络接口624可包括提供调制和解调功能并使一个或更多个控制器636能够通过无线网络通信的SoC。网络接口624可以包括用于从基带到射频的上转换和从射频到基带的下转换的射频前端。频率转换可以通过众所周知的过程来执行,和/或可以使用超外差过程来执行。在一些示例中,射频前端功能可以由单独的芯片提供。网络接口可以包括用于通过LTE、WCDMA、UMTS、GSM、CDMA2000、蓝牙、蓝牙LE、Wi-Fi、Z-Wave、ZigBee、LoRaWAN和/或其他无线协议进行通信的无线功能。
车辆600可还包括一个或更多个数据存储628,其可包括片外(例如,SoC外)。数据存储628可包括一个或更多个存储元件,包括RAM、SRAM、DRAM、VRAM、闪存、硬盘和/或可存储至少一位数据的其他组件和/或设备。
车辆600还可包括一个或更多个GNSS传感器658。一个或更多个GNSS传感器658(例如,GPS、辅助GPS传感器、差分GPS(DGPS)传感器等)用于协助测绘、感知、占用网格生成和/或路径规划功能。可以使用任意数量的GNSS传感器658,包括例如但不限于使用具有以太网到串行(RS-232)网桥的USB连接器的GPS。
车辆600还可包括一个或更多个雷达传感器660。即使在黑暗和/或恶劣天气条件下,车辆600也可使用一个或更多个雷达传感器660进行远程车辆检测。雷达功能安全等级可以为ASIL B。一个或更多个雷达传感器660可以使用CAN和/或总线602(例如,传输由一个或更多个雷达传感器660生成的数据)进行控制和访问目标跟踪数据,在一些示例中,通过访问以太网访问原始数据。可使用多种雷达传感器类型。例如,但不限于,一个或更多个雷达传感器660可适用于前、后和侧面雷达使用。在一些示例中,使用脉冲多普勒雷达传感器。
一个或更多个雷达传感器660可包括不同的配置,例如窄视场的远程、宽视场的短程、短距离侧面覆盖等。在一些示例中,远程雷达可用于自适应巡航控制功能。远程雷达***可提供通过两次或两次以上独立扫描实现的广阔视野,例如在250米范围内。一个或更多个雷达传感器660可帮助区分静态和移动对象,并可由ADAS***用于紧急制动辅助和前向碰撞警告。远程雷达传感器可能包括具有多个(例如,六个或更多)固定雷达天线和高速CAN和FlexRay接口的单基地多模雷达。在具有六个天线的示例中,中央四个天线可创建聚焦波束图案,设计用于以较高速度记录车辆周围的600个环境,且相邻车道的交通干扰最小。另外两个天线可以扩大视野,使其能够快速检测进入或离开车辆600车道的车辆。
例如,中程雷达***可包括高达660米(前)或80米(后)的范围,以及高达42度(前)或650度(后)的视野。短程雷达***可能包括但不限于设计安装在后保险杠两端的雷达传感器。当安装在后保险杠两端时,此类雷达传感器***可能会产生两束光束,持续监测车辆后部和旁边的盲点。
ADAS***中可使用近程雷达***进行盲点检测和/或车道变换辅助。
车辆600还可包括一个或更多个超声波传感器662。一个或更多个超声波传感器662可位于车辆600的前部、后部和/或侧面,可用于泊车辅助和/或创建和更新占用网格。可使用多种超声波传感器662,不同的超声波传感器662可用于不同的检测范围(例如,2.5m、4m)。一个或更多个超声波传感器662可在ASIL B的功能安全水平下工作。
车辆600可包括一个或更多个激光雷达传感器664。一个或更多个激光雷达传感器664可用于对象和行人检测、紧急制动、防撞和/或其他功能。一个或更多个激光雷达传感器664的功能安全等级可以为ASIL B。在一些示例中,车辆600可包括可使用以太网(例如,向千兆以太网交换机提供数据)的多个激光雷达传感器664(例如,两个、四个、六个等)。
在一些示例中,一个或更多个激光雷达传感器664可以能够提供360度视野中的对象及其距离列表。一个或更多个商用激光雷达传感器664的广告范围约为600m,准确度为2cm-3cm,并支持例如600Mbps以太网连接。在一些示例中,可以使用一个或更多个非突出的激光雷达传感器664。在此类示例中,一个或更多个激光雷达传感器664可作为小型设备实施,该小型设备可嵌入车辆600的前部、后部、侧面和/或角落。在此类示例中,一个或更多个激光雷达传感器664可提供高达120度的水平和35度的垂直视野,即使对于低反射率对象,其范围也为200m。前安装的一个或更多个激光雷达传感器664可配置为45度到135度之间的水平视野。
在一些示例中,也可以使用激光雷达技术,如3D闪光激光雷达。3D闪光激光雷达使用激光闪光作为传输源,照亮车辆周围约200米。闪光激光雷达装置包括一个接收器,该接收器记录激光脉冲传输时间和每个像素上的反射光,而每个像素又对应于从车辆到对象的范围。闪光激光雷达可以利用每一次激光闪光生成高准确度、无失真的环境图像。在一些示例中,可部署四个闪光激光雷达传感器,一个位于车辆600的每侧。可用的3D闪光激光雷达***包括固态3D凝视阵列激光雷达相机,除风扇(例如,非扫描激光雷达设备)外,无任何运动部件。闪光激光雷达设备每帧可使用5纳秒I类(眼睛安全)激光脉冲,并可捕获3D距离点云和共同寄存的强度数据形式的反射激光。通过使用闪光激光雷达,并且因为闪光激光雷达是没有运动部件的固态设备,所以一个或更多个激光雷达传感器664可以不易受到运动模糊、振动和/或冲击的影响。
车辆可能还包括一个或更多个IMU传感器666。在一些示例中,一个或更多个IMU传感器666可位于车辆600后轴的中心。一个或更多个IMU传感器666可以包括例如但不限于一个或更多个加速计、一个或更多个磁强计、一个或更多个陀螺仪、一个或更多个磁罗盘和/或其他传感器类型。在一些示例中,例如在六轴应用中,一个或更多个IMU传感器666可包括加速计和陀螺仪,而在九轴应用中,一个或更多个IMU传感器666可包括加速计、陀螺仪和磁强计。
在一些实施例中,一个或更多个IMU传感器666可实现为微型、高性能GPS辅助惯性导航***(GPS/INS),该***结合了微电子机械***(MEMS)惯性传感器、高灵敏度GPS接收机和先进的卡尔曼滤波算法,以提供位置、速度、姿态的估计。因此,在一些示例中,一个或更多个IMU传感器666可通过直接观察和关联从GPS到一个或更多个IMU传感器666的速度变化,使车辆600能够估计航向,而无需来自磁性传感器的输入。在一些示例中,一个或更多个IMU传感器666和一个或更多个GNSS传感器658可组合在单个集成单元中。
车辆可能包括放置在车辆600内和/或周围的一个或更多个麦克风696。一个或更多个麦克风696可用于紧急车辆检测和识别等。
车辆还可包括任意数量的相机类型,包括一个或更多个立体相机668、一个或更多个广角相机670、一个或更多个红外相机672、一个或更多个环绕相机674、一个或更多个远程和/或中程相机698和/或其他相机类型。相机可用于捕获车辆600整个***的图像数据。使用的相机类型取决于车辆600的实施例和要求,相机类型的任何组合可用于提供车辆600周围的必要覆盖范围。此外,根据实施例,相机的数量可以不同。例如,车辆可包括六个相机、七个相机、十个相机、十二个相机和/或其他数量的相机。作为示例,相机可支持但不限于千兆多媒体串行链路(GMSL)和/或千兆以太网。本文将参照图6A和图6B更详细地描述每个照相机。
车辆600还可包括一个或更多个振动传感器642。一个或更多个振动传感器642可测量车辆部件(如车轴)的振动。例如,振动的变化可能表明路面的变化。在另一个示例中,当使用两个或多个振动传感器642时,振动之间的差异可用于确定路面的摩擦或滑动(例如,当振动差异在动力驱动轴和自由旋转轴之间时)。
车辆600可包括ADAS***638。在一些示例中,ADAS***638可包括SoC。ADAS***638可包括自动/自适应/自动巡航控制(ACC)、协同自适应巡航控制(CACC)、前向碰撞警告(FCW)、自动紧急制动(AEB)、车道偏离警告(LDW)、车道保持辅助(LKA)、盲点警告(BSW)、后交叉交通警告(RCTW)、碰撞警告***(CWS),车道对中(LC)和/或其他特征和功能。
ACC***可使用一个或更多个雷达传感器660、一个或更多个激光雷达传感器664和/或一个或更多个相机。ACC***可包括纵向ACC和/或横向ACC。纵向ACC监测和控制与车辆600正前方车辆的距离,并自动调整车速,以保持与前方车辆的安全距离。横向ACC执行距离保持,并建议车辆600在必要时改变车道。侧向ACC与其他ADAS应用相关,如LCA和CWS。
CACC使用来自其他车辆的信息,这些信息可通过网络接口624和/或一个或更多个无线天线626,通过无线链路,或通过网络连接(例如,通过互联网)间接从其他车辆接收。直接链路可以由车辆到车辆(V2V)通信链路提供,而间接链路可以是基础设施到车辆(I2V)通信链路。一般来说,V2V通信概念提供了关于前面车辆的信息(例如,车辆600正前方和同一车道上的车辆),而I2V通信概念提供了关于前方交通的信息。CACC***可包括I2V和V2V信息源之一或两者。考虑到车辆600前方的车辆信息,CACC可能更可靠,并且有可能改善交通流的平稳性并减少道路上的拥堵。
FCW***被设计为提醒驾驶员注意危险,以便驾驶员采取纠正措施。FCW***使用耦合到专用处理器、DSP、FPGA和/或ASIC的前向摄像头和/或一个或更多个雷达传感器660,该专用处理器、DSP、FPGA和/或ASIC电耦合到驱动器反馈,例如显示器、扬声器和/或振动组件。FCW***可提供警告,例如声音、视觉警告、振动和/或快速制动脉冲。
AEB***检测到与其他车辆或其他对象即将发生的前向碰撞,如果驾驶员未在规定的时间或距离参数内采取纠正措施,AEB***可能会自动应用制动器。AEB***可使用耦合到专用处理器、DSP、FPGA和/或ASIC的一个或更多个前置相机和/或一个或更多个雷达传感器660。当AEB***检测到危险时,通常首先提醒驾驶员采取纠正措施以避免碰撞,如果驾驶员未采取纠正措施,AEB***可自动应用制动器以防止或至少减轻预计碰撞的影响。AEB***可包括动态制动支撑和/或碰撞迫近制动等技术。
LDW***提供视觉、听觉和/或触觉警告,如方向盘或座椅振动,以在车辆600穿过车道标记时提醒驾驶员。当驾驶员通过激活转向信号指示有意偏离车道时,LDW***不会激活。LDW***可使用耦合到专用处理器、DSP、FPGA和/或ASIC的前侧朝向相机,该专用处理器、DSP、FPGA和/或ASIC电耦合到驱动器反馈,例如显示器、扬声器和/或振动组件。
LKA***是LDW***的一种变体。如果车辆600开始驶出车道,LKA***提供转向输入或制动以纠正车辆600。
BSW***检测并警告汽车盲点内的车辆驾驶员。BSW***可提供视觉、听觉和/或触觉警报,以指示合流或变道不安全。当驾驶员使用转向信号时,***可能会提供附加警告。BSW***可使用耦合到专用处理器、DSP、FPGA和/或ASIC的后侧朝向相机和/或雷达传感器660,该专用处理器、DSP、FPGA和/或ASIC电耦合到驱动器反馈,例如显示器、扬声器和/或振动组件。
当车辆600倒车时检测到后摄像头范围外的对象时,RCTW***可提供视觉、听觉和/或触觉通知。一些RCTW***包括AEB,以确保应用车辆制动器以避免碰撞。RCTW***可以使用一个或更多个一个或更多个后向雷达传感器660,该传感器耦合到专用处理器、DSP、FPGA和/或ASIC,该专用处理器、DSP、FPGA和/或ASIC电耦合到驱动器反馈,例如显示器、扬声器和/或振动组件。
传统的ADAS***可能容易出现假阳性结果,这可能会使驾驶员感到恼火和分心,但通常不会造成灾难性后果,因为ADAS***会提醒驾驶员,并允许驾驶员决定是否确实存在安全状况,并采取相应的行动。然而,在自主式车辆600中,在结果冲突的情况下,车辆600自身必须决定是听取来自主计算机还是辅助计算机(例如,第一控制器636或第二控制器636)的结果。例如,在一些实施例中,ADAS***638可以是用于向备份计算机模块提供感知信息的备份和/或辅助计算机。备用计算机合理性监视器可以在硬件组件上运行冗余的不同软件,以检测感知和动态驾驶任务中的故障。来自ADAS***638的输出可以提供给监控MCU。如果主计算机和辅助计算机的输出冲突,监控MCU必须确定如何协调冲突,以确保安全运行。
在一些示例中,主计算机可配置为向监控MCU提供置信分数,指示主计算机对所选结果的置信度。如果置信度得分超过阈值,则监控MCU可遵循主计算机的方向,而不管辅助计算机是否提供冲突或不一致的结果。如果置信度得分不符合阈值,并且主计算机和辅助计算机指示不同的结果(例如,冲突),则监控MCU可以在计算机之间进行仲裁,以确定适当的结果。
监控MCU可配置为运行经过训练和配置的一个或更多个神经网络,以根据主计算机和辅助计算机的输出确定辅助计算机提供假警报的条件。因此,监控MCU中的一个或更多个神经网络可以学习辅助计算机的输出何时可信,何时不可信。例如,当辅助计算机是基于雷达的FCW***时,监控MCU中的一个或更多个神经网络可以学习FCW***何时识别事实上不是危险的金属对象,例如触发警报的排水格栅或人孔盖。类似地,当辅助计算机是基于相机的LDW***时,监控MCU中的神经网络可以学习在自行车或行人在场且车道偏离实际上是最安全的操纵时覆盖LDW。在包括在监控MCU上运行的一个或更多个神经网络的实施例中,监控MCU可包括适于运行具有相关联的存储器的一个或更多个神经网络的DLA或GPU中的至少一个。在优选实施例中,监控MCU可包括和/或包括为SoC 604的组件。
在其他示例中,ADAS***638可包括使用传统计算机视觉规则执行ADAS功能的辅助计算机。因此,辅助计算机可以使用经典的计算机视觉规则(if-then),并且在监控MCU中存在一个或更多个神经网络可以提高可靠性、安全性和性能。例如,多样化的实现和有意的非标识使整个***更具容错性,特别是对由软件(或软硬件接口)功能引起的故障。例如,如果在主计算机上运行的软件中存在软件缺陷或错误,并且在辅助计算机上运行的不相同的软件代码提供相同的总体结果,则监控MCU可对总体结果的正确性有更大的信心,主计算机上的软件或硬件缺陷并没有导致重大错误。
在一些示例中,ADAS***638的输出可馈入主计算机的感知块和/或主计算机的动态驱动任务块。例如,如果ADAS***638指示由于正前方对象引起的前向碰撞警告,则感知块可在识别对象时使用该信息。在其他示例中,如本文所述,二级计算机可以具有其自己的经过训练的神经网络,从而降低假阳性的风险。
车辆600还可包括信息娱乐SoC 630(例如,车内信息娱乐***(IVI))。尽管示出并描述为SoC,但信息娱乐***可以不是SoC,并且可以包括两个或多个分立组件。信息娱乐SoC 630可包括可用于提供音频(例如,音乐、个人数字助理、导航指令、新闻、无线电等)、视频(例如,电视、电影、流媒体等)、电话(例如,免提通话)、网络连接(例如,LTE、Wi-Fi等)的硬件和软件的组合,和/或向车辆600提供信息服务(例如,导航***、后驻车辅助、无线电数据***、车辆相关信息,如燃油油位、行驶总距离、制动燃油油位、机油油位、车门打开/关闭、空气滤清器信息等)。例如,信息娱乐SoC 630可以是收音机、磁盘播放器,导航***、视频播放器、USB和蓝牙连接、车载电脑、车内娱乐、Wi-Fi、方向盘音频控制、免提语音控制、抬头显示器(HUD)、HMI显示器634、远程通信设备、控制面板(例如,用于控制和/或与各种组件、特征和/或***交互),和/或其他组件。信息娱乐SoC 630还可用于向车辆用户提供信息(例如,视觉和/或听觉),例如来自ADAS***638的信息、自主驾驶信息,例如计划车辆机动、轨迹、周围环境信息(例如,交叉口信息、车辆信息,道路信息等)和/或其他信息。
信息娱乐SoC 630可包括GPU功能。信息娱乐SoC 630可通过总线602(例如,CAN总线、以太网等)与车辆600的其他设备、***和/或部件进行通信。在一些示例中,信息娱乐SoC 630可以耦合到监控MCU,使得信息娱乐***的GPU可以在一个或更多个主控制器636(例如,车辆600的主计算机和/或备用计算机)发生故障的情况下执行一些自驱动功能。在这样的示例中,信息娱乐SoC 630可将车辆600置于司机至安全停车模式,如本文所述。
车辆600还可包括仪表组632(例如,数字仪表板、电子仪表组、数字仪表板等)。仪表组632可包括控制器和/或超级计算机(例如,离散控制器或超级计算机)。仪表组632可包括一组仪表,如车速表、燃油油位、机油压力、转速表、里程表、转向指示灯、换档位置指示灯、一个或更多个安全带警告灯、一个或更多个驻车制动警告灯、一个或更多个发动机故障灯、安全气囊(SRS)***信息、照明控制、安全***控制、,导航信息等。在一些示例中,信息可在信息娱乐SoC 630和仪表组632之间显示和/或共享。换句话说,仪表组632可作为信息娱乐SoC 630的一部分包括在内,反之亦然。
图6D是根据本公开的一些实施例的一个或更多个基于云的服务器与图6A的示例性自主车辆600之间通信的***图。***676可包括一个或更多个服务器678、一个或更多个网络690和车辆,包括车辆600。一个或更多个服务器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和/或NV交换机SoC连接,GPU 684和PCIe交换机682通过PCIe互连连接。尽管图示了八个GPU684、两个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的深度学习基础设施可以快速实时推理,并可以使用该能力评估和查证车辆600中处理器、软件和/或相关联的硬件的健康状况。例如,深度学习基础设施可以从车辆600接收定期更新,例如,车辆600在该图像序列中定位的图像和/或对象序列(例如,通过计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可运行其自身的神经网络来识别对象,并将其与车辆600识别的对象进行比较,如果结果不匹配且基础设施得出结论,车辆600中的AI出现故障,一个或更多个服务器678可向车辆600发送信号,指示车辆600的故障安全计算机承担控制、通知乘客并完成安全停车操作。
对于推理,一个或更多个服务器678可包括一个或更多个GPU 684和一个或更多个可编程推理加速器(例如NVIDIA的TensorRT)。GPU供电的服务器和推理加速的结合可能使实时响应成为可能。在其他示例中,例如性能不太关键的地方,可以使用由CPU、FPGA和其他处理器供电的服务器进行推断。
示例计算设备
图7是适用于实施本公开的一些实施例的示例计算设备700的框图。计算设备700可包括直接或间接耦合以下设备的互连***702:存储器704、一个或更多个中央处理单元(CPU)706、一个或更多个图形处理单元(GPU)708、通信接口710、输入/输出(I/O)端口712、输入/输出组件714、电源716、一个或更多个呈现组件718(例如,显示器)和一个或更多个逻辑单元720。在至少一个实施例中,一个或更多个计算设备700可包括一个或更多个虚拟机(VM),和/或其任何组件可包括虚拟组件(例如,虚拟硬件组件)。对于非限制性示例,一个或更多个GPU 708可以包括一个或更多个vGPU,一个或更多个CPU706可以包括一个或更多个vCPU,和/或一个或更多个逻辑单元720可以包括一个或更多个虚拟逻辑单元。因此,一个或更多个计算设备700可包括离散组件(例如,专用于计算设备700的完整GPU)、虚拟组件(例如,专用于计算设备700的GPU的一部分)或其组合。
尽管图7中的各个模块显示为通过互连***702与线路连接,但这并非旨在限制,仅为清楚起见。例如,在一些实施例中,诸如显示设备的呈现组件718可以被视为I/O组件714(例如,如果显示器是触摸屏)。作为另一示例,CPU 706和/或GPU 708可以包括存储器(例如,除了GPU 708、CPU706和/或其他组件的存储器之外,存储器704还可以代表存储设备)。换句话说,图7的计算设备仅仅是说明性的。不区分“工作站”、“服务器”、“笔记本电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实***”和/或其他设备或***类型,正如在图7的计算设备的范围内所设想的那样。
互连***702可以表示一个或更多个链路或总线,例如地址总线、数据总线、控制总线或其组合。互连***702可包括一个或更多个总线或链路类型,例如工业标准体系结构(ISA)总线、扩展工业标准体系结构(EISA)总线、视频电子标准协会(VESA)总线、***组件互连(PCI)总线、***组件互连直通(PCIE)总线,和/或其他类型的总线或链路。在一些实施例中,组件之间存在直接连接。例如,CPU 706可以直接连接到存储器704。此外,CPU 706可以直接连接到GPU 708。在组件之间存在直接连接或点对点连接的情况下,互连***702可以包括用于执行连接的PCIe链路。在这些示例中,计算设备700中不需要包括PCI总线。
存储器704可包括各种计算机可读介质中的任何一种。计算机可读介质可以是可由计算设备700访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质以及可移除和不可移除介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质可以包括易失性和非易失性介质和/或以任何方法或技术实现的可移除和不可移除介质,用于存储信息,例如计算机可读指令、数据结构、程序模块和/或其他数据类型。例如,存储器704可以存储计算机可读指令(例如,表示一个或更多个程序和/或一个或更多个程序元素的指令),例如操作***。计算机存储介质可包括但不限于RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字多功能磁盘(DVD)或其他光盘存储、盒式磁带、磁带、磁盘存储或其他磁存储设备,或可用于存储所需信息且可由计算设备700访问的任何其他介质。如本文所使用的,计算机存储介质本身不包括信号。
计算机存储介质可将计算机可读指令、数据结构、程序模块和/或包含在调制数据信号(例如载波或其他传输机制)中的其他数据类型,并包括任何信息传递介质。术语“调制数据信号”可指以编码信号中的信息的方式设置或改变其一个或更多个特性的信号。作为示例而非限制,计算机存储介质可以包括有线介质,例如有线网络或直接有线连接,以及无线介质,例如声学、RF、红外和其他无线介质。上述任何组合也应包括在计算机可读介质的范围内。
一个或更多个CPU 706可被配置为执行至少一些计算机可读指令,以控制计算设备700的一个或更多个组件,以执行本文所述的一个或更多个方法和/或过程。一个或更多个CPU 706可各自包括一个或更多个能够同时处理多个软件线程的核心(例如,一个、两个、四个、八个、二十八个、七十二个等)。一个或更多个CPU 706可以包括任何类型的处理器,并且可以根据所实现的计算设备700的类型包括不同类型的处理器(例如,对于移动设备具有较少内核的处理器和对于服务器具有较多内核的处理器)。例如,根据计算设备700的类型,处理器可以是使用精简指令集计算(RISC)实现的高级RISC机器(ARM)处理器或使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或补充协处理器(例如数学协处理器)之外,计算设备700还可以包括一个或更多个cpu 706。
除了一个或更多个CPU 706之外,或者从一个或更多个CPU 706选择,一个或更多个GPU 708可以被配置为执行至少一些计算机可读指令,以控制计算设备700的一个或更多个组件来执行本文所述的一个或更多个方法和/或过程。一个或更多个GPU 708可以是集成GPU(例如,具有一个或更多个CPU 706和/或一个或更多个GPU 708可以是离散GPU)。在实施例中,一个或更多个GPU 708可以是一个或更多个CPU 706的协处理器。计算设备700可以使用一个或更多个GPU 708来渲染图形(例如,3D图形)或执行通用计算。例如,一个或更多个GPU 708可用于GPU(GPGPU)上的通用计算。一个或更多个GPU 708可以包括数百个或数千个内核,这些内核能够同时处理数百个或数千个软件线程。一个或更多个GPU 708可响应于渲染命令(例如,经由主机接口接收的来自一个或更多个CPU 706的渲染命令)生成用于输出图像的像素数据。一个或更多个GPU 708可以包括图形存储器,例如显示器存储器,用于存储像素数据或任何其他合适的数据,例如GPGPU数据。显示器存储器可以包括作为存储器704的一部分。一个或更多个GPU 708可以包括两个或更多个并行操作的GPU(例如,通过链路)。链路可直接连接GPU(例如,使用NVLINK)或通过交换机(例如,使用NVSwitch)连接GPU。当组合在一起时,每个GPU 708可为输出的不同部分或不同输出(例如,第一GPU用于第一图像,第二GPU用于第二图像)生成像素数据或GPGPU数据。每个GPU可以包括自己的内存,也可以与其他GPU共享内存。
除了一个或更多个CPU 706和/或一个或更多个GPU 708之外,或者从一个或更多个CPU 706和/或一个或更多个GPU 708选择,一个或更多个逻辑单元720可以被配置为执行至少一些计算机可读指令,以控制计算设备700的一个或更多个组件执行本文所述的一个或更多个方法和/或过程。在实施例中,一个或更多个CPU 706、一个或更多个GPU 708和/或一个或更多个逻辑单元720可以离散地或联合地执行方法、过程和/或其部分的任意组合。逻辑单元720中的一个或更多个可以是CPU 706和/或GPU 708中的一个或更多个的一部分和/或集成在其中,和/或逻辑单元720中的一个或更多个可以是分立组件,或以其他方式位于一个或更多个CPU 706和/或一个或更多个GPU 708外部,一个或更多个逻辑单元720可以是一个或更多个CPU 706和/或一个或更多个GPU 708的协处理器。
一个或更多个逻辑单元720的示例包括一个或更多个处理核心和/或其组件,例如数据处理单元(DPU)、张量核心(TC)、张量处理单元(TPU)、像素视觉核心(PVC)、视觉处理单元(VPU)、图形处理集群(GPC)、纹理处理集群(TPC)、流式多处理器(SM),树遍历单元(TTU)、人工智能加速器(AIA)、深度学习加速器(DLA)、算术逻辑单元(ALU)、专用集成电路(ASIC)、浮点单元(FPU)、输入/输出(I/O)元件、***组件互连(PCI)或***组件互连直通(PCIe)元件,和/或诸如此类。
通信接口710可以包括一个或更多个接收器、发射器和/或收发器,这些接收器、发射器和/或收发器使计算设备700能够通过包括有线和/或无线通信的电子通信网络与其他计算设备通信。通信接口710可以包括组件和功能,以支持通过多个不同网络中的任何一个进行通信,例如无线网络(例如,Wi-Fi、Z-Wave、蓝牙、蓝牙LE、ZigBee等)、有线网络(例如,通过以太网或InfiniBand进行通信)、低功耗广域网(例如,LoRaWAN、SigFox,等)和/或互联网。在一个或更多个实施例中,一个或更多个逻辑单元720和/或通信接口710可包括一个或更多个数据处理单元(DPU),用于将通过网络和/或通过互连***702接收的数据直接传送到一个或更多个GPU 708(例如,其存储器)。
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、DPU等)接收数据,并输出数据(例如,作为图像、视频、声音等)。
示例数据中心
图8示出了可在本公开的至少一个实施例中使用的示例数据中心800。数据中心800可以包括数据中心基础设施层810、框架层820、软件层830和/或应用层840。
如图8所示,数据中心基础设施层810可包括资源协调器812、分组计算资源814和节点计算资源(“节点C.R.”)816(1)-816(N),其中“N”表示任何整数。在至少一个实施例中,节点C.R.816(1)-816(N)可包括但不限于任何数量的中央处理单元(CPU)或其他处理器(包括DPU、加速器、现场可编程门阵列(FPGA)、图形处理器或图形处理单元(GPU)等)、存储设备(例如,动态只读存储器),在一些实施例中,贮存设备(例如固态或磁盘驱动器)、网络输入/输出(NW I/O)设备、网络交换机、虚拟机(VM)、电源模块和/或冷却模块等,节点C.R.816(1)-816(N)中的一个或更多个节点C.R.可对应于具有一个或更多个上述计算资源的服务器。此外,在一些实施例中,节点C.R.816(1)-8161(N)可以包括一个或更多个虚拟组件,例如vGPU、vCPU和/或类似组件,和/或节点C.R.816(1)-816(N)中的一个或更多个可以对应于虚拟机(VM)。
在至少一个实施例中,分组计算资源814可包括位于一个或更多个机架(未示出)内的节点C.R.816的单独分组,或位于不同地理位置(也未示出)的数据中心内的多个机架。分组计算资源814内的节点C.R.816的单独分组可包括分组计算、网络、内存或存储资源,其可被配置或分配以支持一个或更多个工作负载。在至少一个实施例中,包括CPU、GPU、DPU和/或其他处理器的多个节点C.R.816可分组在一个或更多个机架内,以提供计算资源以支持一个或更多个工作负载。一个或更多个机架还可以包括任意组合的任意数量的电源模块、冷却模块和/或网络交换机。
资源协调器812可配置或以其他方式控制一个或更多个节点C.R.816(1)-816(N)和/或分组计算资源814。在至少一个实施例中,资源协调器812可包括用于数据中心800的软件设计基础设施(“SDI”)管理实体。资源协调器812可包括硬件、软件或其一些组合。
在至少一个实施例中,如图8所示,框架层820可包括作业调度器833、配置管理器834、资源管理器836,和/或分布式文件***838。框架层820可包括支持软件层830的软件832和/或应用层840的一个或更多个应用842的框架。软件832或一个或更多个应用842可分别包括基于网页的服务软件或应用,例如亚马逊网络服务、谷歌云和微软Azure提供的服务。框架层820可以是,但不限于,一种自由的开源软件网页应用框架,例如Apache SparkTM(以下简称“Spark”),它可以利用分布式文件***838进行大规模数据处理(例如,“大数据”)。在至少一个实施例中,作业调度器833可以包括Spark驱动器,以促进数据中心800的各个层所支持的工作负载的调度。配置管理器834可以配置不同的层,例如软件层830和框架层820,包括Spark和分布式文件***838,以支持大规模数据处理。资源管理器836可以能够管理映射到或分配用于支持分布式文件***838和作业调度器833的集群或分组计算资源。在至少一个实施例中,集群或分组计算资源可包括数据中心基础设施层810处的分组计算资源814。资源管理器836可与资源协调器812协调以管理这些映射或分配的计算资源。
在至少一个实施例中,包括在软件层830中的软件832可包括由节点C.R.816(1)-816(N)、分组计算资源814和/或框架层820的分布式文件***838的至少部分使用的软件。一种或多种软件可包括但不限于互联网网页搜索软件,电子邮件病毒扫描软件、数据库软件和流式视频内容软件。
在至少一个实施例中,包括在应用层840中的应用842可以包括由节点C.R.816(1)-816(N)、分组计算资源814和/或框架层820的分布式文件***838的至少部分使用的一种或多种类型的应用,但不限于任何数量的基因组学应用、感知计算和机器学习应用,包括训练或推断软件、机器学习框架软件(例如,PyTorch、TensorFlow、Caffe等)和/或结合一个或更多个实施例使用的其他机器学习应用。
在至少一个实施例中,配置管理器834、资源管理器836和资源协调器812中的任何一个都可以基于以任何技术上可行的方式获取的任何数量和类型的数据来实施任何数量和类型的自修改动作。自修改动作可使数据中心800的数据中心操作员免于做出可能错误的配置决策,并可能避免数据中心未充分利用和/或性能不佳的部分。
根据本文所述的一个或更多个实施例,数据中心800可包括用于训练一个或更多个机器学习模型或使用一个或更多个机器学习模型预测或推理信息的工具、服务、软件或其他资源。例如,一个或更多个机器学习模型可通过使用上述关于数据中心800的软件和/或计算资源,根据神经网络架构计算权重参数来训练。在至少一个实施例中,与一个或更多个神经网络相对应的经过训练或部署的机器学习模型可用于通过使用通过一个或更多个训练技术(例如但不限于本文所述的训练技术)计算的权重参数,使用上述关于数据中心800的资源来推理或预测信息。
在至少一个实施例中,数据中心800可以使用CPU、专用集成电路(ASIC)、GPU、FPGA和/或其他硬件(或相应的虚拟计算资源)来使用上述资源执行训练和/或推断。此外,上述一个或更多个软件和/或硬件资源可配置为服务,以允许用户训练或执行信息推理,例如图像识别、语音识别或其他人工智能服务。
示例网络环境
适用于实施本发明实施例的网络环境可包括一个或更多个客户端设备、服务器、网络附接存储(NAS)、其他后端设备和/或其他设备类型。客户端设备、服务器和/或其他设备类型(例如,每个设备)可以在图7的一个或更多个计算设备700的一个或更多个实例上实现——例如,每个设备可以包括计算设备700的类似组件、特征和/或功能。另外,后端设备(服务器,NAS等)可被包括为数据中心800的一部分,其示例在本文中参照图8更详细地描述。
网络环境的组件可通过有线、无线或两者兼有的一个或更多个网络相互通信。该网络可以包括多个网络,或者网络的网络。举例来说,该网络可包括一个或更多个广域网(WAN)、一个或更多个局域网(LAN)、一个或更多个公共网络(例如互联网和/或公共交换电话网(PSTN))和/或一个或更多个专用网络。在网络包括无线电信网络的情况下,诸如基站、通信塔或甚至接入点的组件(以及其他组件)可以提供无线连接。
兼容的网络环境可能包括一个或更多个对等网络环境——在这种情况下,服务器可能不包括在网络环境中——以及一个或更多个客户机-服务器网络环境——在这种情况下,一个或更多个服务器可能包括在网络环境中。在对等网络环境中,本文描述的关于服务器的功能可以在任意数量的客户端设备上实现。
在至少一个实施例中,网络环境可包括一个或更多个基于云的网络环境、分布式计算环境及其组合等。基于云的网络环境可包括框架层、作业调度器、资源管理器,以及在一个或更多个服务器上实现的分布式文件***,其可以包括一个或更多个核心网络服务器和/或边缘服务器。框架层可以包括支持软件层的软件和/或应用层的一个或更多个应用的框架。软件或一个或更多个应用程序可分别包括基于网页的服务软件或应用程序。在实施例中,一个或更多个客户端设备可以使用基于网页的服务软件或应用(例如,通过经由一个或更多个应用编程接口(API)访问服务软件和/或应用)。框架层可以是,但不限于,一种免费的开源软件网页应用框架,例如,可以使用分布式文件***进行大规模数据处理(例如,“大数据”)。
基于云的网络环境可提供执行本文所述计算和/或数据存储功能(或其中一个或更多个部分)的任何组合的云计算和/或云存储。这些各种功能中的任何一种都可以从中央或核心服务器(例如,一个或更多个数据中心的服务器)分布到多个位置,这些数据中心可以分布在一个州、一个地区、一个国家、全球等地。如果与用户(例如,客户端设备)的连接相对靠近一个或更多个边缘服务器,则一个或更多个核心服务器可将功能的至少一部分指定给一个或更多个边缘服务器。基于云的网络环境可以是私有的(例如,限于单个组织),可以是公共的(例如,对许多组织可用),和/或其组合(例如,混合云环境)。
一个或更多个客户端设备可包括本文关于图7所述的一个或更多个示例计算设备700的至少一些组件、特征和功能。作为示例而非限制,客户端设备可体现为个人计算机(PC)、膝上型计算机、移动设备、智能手机、平板计算机、,智能手表、可穿戴计算机、个人数字助理(PDA)、MP3播放器、虚拟现实耳机、全球定位***(GPS)或设备、视频播放器、相机、监控设备或***、车辆、船只、飞行器、虚拟机、无人机、机器人、手持通信设备、医院设备、游戏设备或***、娱乐***、车辆计算机***、嵌入式***控制器、遥控器、设备、消费电子设备、工作站、边缘设备、这些描绘的设备的任何组合或任何其他合适的设备。
本公开可在计算机代码或机器可用指令的一般上下文中描述,包括由计算机或其他机器(如个人数据助理或其他手持设备)执行的计算机可执行指令,如程序模块。通常,程序模块包括例程、程序、对象、组件、数据结构等,是指执行特定任务或实现特定抽象数据类型的代码。本公开可以在多种***配置中实施,包括手持设备、消费电子产品、通用计算机、更多专业计算设备,等。本发明还可在分布式计算环境中实施,其中任务由通过通信网络链接的远程处理设备执行。
如本文所用,关于两个或多个元素的“和/或”的叙述应解释为仅指一个元素或元素的组合。例如,“元素A、元素B和/或元素C”可仅包括元素A、元素B、元素C、元素A和元素B、元素A和元素C、元素B和元素C,或元素A、元素B和元素C。此外,“元素A或元素B中的至少一个”可包括元素A中的至少一个、元素B中的至少一个或元素A中的至少一个和元素B中的至少一个。此外,“元素A和元素B中的至少一个”可包括元素A中的至少一个、元素B中的至少一个或元素A中的至少一个和元素B中的至少一个。
为了满足法定要求,本文对本公开的主题内容进行了详细描述。然而,描述本身并不打算限制本公开的范围。相反,发明人已经设想,所要求保护的主题内容也可以以其他方式体现,包括与本文件中描述的步骤类似的不同步骤或步骤组合,以及其他现有或未来技术。此外,尽管术语“步骤”和/或“块”可在本文中用于暗示所采用的方法的不同元素,但除非明确描述了各个步骤的顺序,否则不应将术语解释为暗示本文所公开的各个步骤之间的任何特定顺序。
Claims (20)
1.一种方法,包括:
使用与颜色校正矩阵CCM相关联的第一矩阵来处理第一图像数据,以生成第二图像数据;
使用色调映射或伽马校正中的至少一个来处理所述第二图像数据,以生成第三图像数据;
使用与所述CCM相关联的第二矩阵来处理所述第三图像数据,以生成第四图像数据;以及
使用所述第四图像数据来执行一个或更多个操作。
2.根据权利要求1所述的方法,其中:
所述CCM与总颜色校正相关联;
至少基于所述总颜色校正的第一部分来确定所述第一矩阵;以及
至少基于所述总颜色校正的第二部分来确定所述第二矩阵。
3.根据权利要求2所述的方法,其中以下各项中的一个:
所述总颜色校正的所述第一部分大于所述总颜色校正的所述第二部分;
所述总颜色校正的所述第二部分大于所述总颜色校正的所述第一部分;或
所述总颜色校正的所述第一部分等于所述总颜色校正的所述第二部分。
4.根据权利要求1所述的方法,还包括:
接收输入数据,所述输入数据指示与所述CCM相关联的要应用于所述第一矩阵的总颜色校正的第一部分;
至少基于所述总颜色校正的所述第一部分来确定所述第一矩阵;
至少基于所述总颜色校正的所述第一部分来确定要应用于所述第二矩阵的所述总颜色校正的第二部分;以及
至少基于所述总颜色校正的所述第二部分来确定所述第二矩阵。
5.根据权利要求1所述的方法,其中所述第二矩阵进一步与颜色空间转换矩阵相关联。
6.根据权利要求1所述的方法,其中:
使用所述图像传感器生成的所述第一图像数据与第一颜色空间相关联;
所述第二图像数据与第二颜色空间相关联,所述第二颜色空间包括所述第一颜色空间的一部分;以及
与使用所述CCM处理所述第一图像数据相比,使用所述第一矩阵处理所述第一图像数据减少了范围外值的数量。
7.一种***,包括:
一个或更多个处理单元,用于:
至少基于使用与图像处理管线相关联的第一颜色校正矩阵CCM处理第一图像数据,来生成第二图像数据;
至少基于使用与所述图像处理管线相关联的第二CCM处理所述第二图像数据,来生成第三图像数据;以及
使用所述第三图像数据来执行一个或更多个操作。
8.根据权利要求7所述的***,其中所述一个或更多个处理单元进一步用于:
至少基于关于所述第二图像数据执行一个或更多个图像处理技术,来生成第四图像数据,
其中所述第三图像数据进一步至少基于使用所述第二CCM处理所述第四图像数据而被生成。
9.根据权利要求8所述的***,其中所述一个或更多个图像处理技术包括以下各项中的至少一个:
一个或更多个全局色调映射技术;
一个或更多个局部色调映射技术;或
一个或更多个伽马校正技术。
10.根据权利要求7所述的***,其中:
所述第一CCM至少基于与第三CCM相关联的强度的第一部分而被确定;以及
所述第二CCM至少基于与所述第三CCM相关联的强度的第二部分而被确定。
11.根据权利要求10所述的***,其中以下各项中的一个:
所述第三CCM的强度的所述第一部分大于所述第三CCM的强度的所述第二部分;
所述第三CCM的强度的所述第二部分大于所述第三CCM的强度的所述第一部分;或者
所述第三CCM的强度的所述第一部分等于所述第三CCM的强度的所述第二部分。
12.根据权利要求7所述的***,其中所述一个或更多个处理单元进一步用于:
接收输入数据,所述输入数据指示与第三CCM相关联的要应用于所述第一CCM的强度的第一部分;
至少基于所述强度的所述第一部分确定所述第一CCM;
至少基于所述强度的所述第一部分确定与所述第三CCM相关联的要应用于所述第二CCM的所述强度的第二部分;以及
至少基于所述强度的所述第二部分确定所述第二CCM。
13.根据权利要求7所述的***,其中所述一个或更多个处理单元进一步用于:
至少基于所述第二CCM和颜色空间转换矩阵,来确定更新的矩阵,
其中所述第三图像数据进一步至少基于使用所述更新的矩阵处理所述第二图像数据而被生成。
14.根据权利要求13所述的***,其中所述更新的矩阵至少基于将所述颜色空间转换矩阵与所述第二CCM相乘而被确定。
15.根据权利要求7所述的***,其中所述***被包括在以下各项中的至少一个中:
用于自主或半自主机器的控制***;
用于自主或半自主机器的感知***;
用于执行模拟操作的***;
用于执行数字孪生操作的***;
用于执行光传输模拟的***;
用于为3D资产执行协作内容创建的***;
用于执行深度学习操作的***;
使用边缘设备实现的***;
用于生成或呈现增强现实内容、虚拟现实内容或混合现实内容中的一个或更多个的***;
使用机器人实现的***;
用于执行对话AI操作的***;
用于生成合成数据的***;
包含一个或更多个虚拟机VM的***;
至少部分地在数据中心中实现的***;或
至少部分地使用云计算资源实现的***。
16.一种方法,包括:
一个或更多个处理单元,用于至少基于经处理的图像数据来执行一个或更多个操作,所述经处理的图像数据使用包括第一颜色校正矩阵CCM和第二CCM的图像处理管线来生成,所述第一CCM通过所述图像处理管线的一个或更多个中间阶段与所述第二CCM分开。
17.根据权利要求16所述的处理器,其中:
总CCM与总颜色校正相关联;
所述第一CCM至少基于所述总颜色校正的第一部分而被确定;以及
所述第二CCM至少基于所述总颜色校正的第二部分而被确定。
18.根据权利要求16所述的处理器,其中:
所述图像处理管线的较前阶段包括所述第一CCM;
所述图像处理管线的较后阶段包括所述第二CCM;以及
所述图像处理管线的所述一个或更多个中间阶段中的中间阶段包括色调映射或伽马校正中的一个或更多个。
19.根据权利要求16所述的处理器,其中所述第二CCM至少基于颜色空间转换矩阵而被确定。
20.根据权利要求16所述的处理器,其中所述处理器被包括在以下各项中的至少一项中:
用于自主或半自主机器的控制***;
用于自主或半自主机器的感知***;
用于执行模拟操作的***;
用于执行数字孪生操作的***;
用于执行光传输模拟的***;
用于为3D资产执行协作内容创建的***;
用于执行深度学习操作的***;
使用边缘设备实现的***;
用于生成或呈现增强现实内容、虚拟现实内容或混合现实内容中的一个或更多个的***;
使用机器人实现的***;
用于执行对话AI操作的***;
用于生成合成数据的***;
包含一个或更多个虚拟机VM的***;
至少部分地在数据中心中实现的***;或
至少部分地使用云计算资源实现的***。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211399755.4A CN118055333A (zh) | 2022-11-09 | 2022-11-09 | 用于自主***和应用的图像处理管线中的延迟颜色校正 |
US18/059,060 US20240155091A1 (en) | 2022-11-09 | 2022-11-28 | Deferred color correction in image processing pipelines for autonomous systems and applications |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211399755.4A CN118055333A (zh) | 2022-11-09 | 2022-11-09 | 用于自主***和应用的图像处理管线中的延迟颜色校正 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118055333A true CN118055333A (zh) | 2024-05-17 |
Family
ID=90928370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211399755.4A Pending CN118055333A (zh) | 2022-11-09 | 2022-11-09 | 用于自主***和应用的图像处理管线中的延迟颜色校正 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240155091A1 (zh) |
CN (1) | CN118055333A (zh) |
-
2022
- 2022-11-09 CN CN202211399755.4A patent/CN118055333A/zh active Pending
- 2022-11-28 US US18/059,060 patent/US20240155091A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240155091A1 (en) | 2024-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11758120B2 (en) | Evaluating detection capabilities of cameras | |
CN114155272A (zh) | 自主机器应用中的自适应目标跟踪算法 | |
US20240059295A1 (en) | Multi-view geometry-based hazard detection for autonomous systems and applications | |
US11693470B2 (en) | Voltage monitoring over multiple frequency ranges for autonomous machine applications | |
CN116106934A (zh) | 用于自主机器应用的基于粒子的危险检测 | |
US11954914B2 (en) | Belief propagation for range image mapping in autonomous machine applications | |
US20240096102A1 (en) | Freespace detection using machine learning for autonomous systems and applications | |
US20240017743A1 (en) | Task-relevant failure detection for trajectory prediction in machines | |
WO2024015632A1 (en) | Surround scene perception using multiple sensors for autonomous systems and applications | |
US20230360231A1 (en) | Joint 2d and 3d object tracking for autonomous systems and applications | |
US20240071064A1 (en) | Object detection using deep learning for real-time streaming applications | |
US20230360232A1 (en) | Object tracking and time-to-collision estimation for autonomous systems and applications | |
US20230298268A1 (en) | Environment reconstruction and path planning for autonomous systems and applications | |
US20230294727A1 (en) | Hazard detection using occupancy grids for autonomous systems and applications | |
US12026955B2 (en) | Assigning obstacles to lanes using neural networks for autonomous machine applications | |
US20230260136A1 (en) | Dynamic object detection using lidar data for autonomous machine systems and applications | |
US20230236314A1 (en) | Sampling radar signals for automotive radar perception | |
US20230186593A1 (en) | Glare mitigation using image contrast analysis for autonomous systems and applications | |
US20230186640A1 (en) | Single and across sensor object tracking using feature descriptor mapping in autonomous systems and applications | |
US20220092317A1 (en) | Simulating viewpoint transformations for sensor independent scene understanding in autonomous systems | |
CN114841336A (zh) | 修补用于自主机器应用的部署的深度神经网络 | |
US20240155091A1 (en) | Deferred color correction in image processing pipelines for autonomous systems and applications | |
US20240022601A1 (en) | Detecting identity spoofing attacks in multi-sensor systems and applications | |
US20240176017A1 (en) | Sensor fusion using ultrasonic sensors for autonomous systems and applications | |
US20230368455A1 (en) | Processing pipelines for three-dimensional data in autonomous systems and applications |
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 |