CN117082360A - 用于自主***和应用的rgb-ir数据处理 - Google Patents
用于自主***和应用的rgb-ir数据处理 Download PDFInfo
- Publication number
- CN117082360A CN117082360A CN202211160098.8A CN202211160098A CN117082360A CN 117082360 A CN117082360 A CN 117082360A CN 202211160098 A CN202211160098 A CN 202211160098A CN 117082360 A CN117082360 A CN 117082360A
- Authority
- CN
- China
- Prior art keywords
- value
- infrared
- image data
- visible light
- processor
- 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 129
- 238000004566 IR spectroscopy Methods 0.000 title abstract 2
- 238000001514 detection method Methods 0.000 claims abstract description 119
- 238000000034 method Methods 0.000 claims abstract description 106
- 238000012937 correction Methods 0.000 claims abstract description 86
- 238000010801 machine learning Methods 0.000 claims description 36
- 238000012544 monitoring process Methods 0.000 claims description 28
- 238000013135 deep learning Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 12
- 238000004088 simulation Methods 0.000 claims description 10
- 230000008447 perception Effects 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 41
- 230000015654 memory Effects 0.000 description 110
- 238000012549 training Methods 0.000 description 80
- 238000013528 artificial neural network Methods 0.000 description 77
- 230000006870 function Effects 0.000 description 56
- 238000003860 storage Methods 0.000 description 53
- 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 30
- 229920002451 polyvinyl alcohol Polymers 0.000 description 30
- 235000019422 polyvinyl alcohol Nutrition 0.000 description 30
- 238000013527 convolutional neural network Methods 0.000 description 24
- 102100034112 Alkyldihydroxyacetonephosphate synthase, peroxisomal Human genes 0.000 description 23
- 101000799143 Homo sapiens Alkyldihydroxyacetonephosphate synthase, peroxisomal Proteins 0.000 description 23
- 238000000848 angular dependent Auger electron spectroscopy Methods 0.000 description 23
- 238000004422 calculation algorithm Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 19
- 238000007726 management method Methods 0.000 description 17
- 230000002093 peripheral effect Effects 0.000 description 17
- 230000000875 corresponding effect Effects 0.000 description 16
- 238000005286 illumination Methods 0.000 description 14
- 238000013500 data storage Methods 0.000 description 13
- 230000005855 radiation Effects 0.000 description 12
- 230000009471 action Effects 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 11
- 230000004913 activation Effects 0.000 description 10
- 238000001994 activation Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 238000007667 floating Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 9
- 230000003068 static effect Effects 0.000 description 9
- 230000007704 transition Effects 0.000 description 9
- 230000000007 visual effect Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000000670 limiting effect Effects 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 7
- 230000003595 spectral effect Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000007423 decrease Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 210000002569 neuron Anatomy 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000001276 controlling effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 239000000446 fuel Substances 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 230000006403 short-term memory Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 229920002803 thermoplastic polyurethane Polymers 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 210000004027 cell Anatomy 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000012360 testing method Methods 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
- 101100248200 Arabidopsis thaliana RGGB gene Proteins 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
- 206010034960 Photophobia Diseases 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000012884 algebraic function Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 230000001149 cognitive effect Effects 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
- 238000007796 conventional method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000011143 downstream manufacturing Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 208000013469 light sensitivity Diseases 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007620 mathematical function 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
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000010396 two-hybrid screening Methods 0.000 description 1
- 238000012800 visualization 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/77—Circuits 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/803—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of input or preprocessed data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/588—Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10048—Infrared image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Artificial Intelligence (AREA)
- Signal Processing (AREA)
- Color Television Image Signal Generators (AREA)
- Image Processing (AREA)
- Closed-Circuit Television Systems (AREA)
- Studio Devices (AREA)
- Image Analysis (AREA)
Abstract
本公开涉及用于自主***和应用的RGB‑IR数据处理。诸如用于汽车的***被配置为处理包括红外值和可见光值的图像数据(例如,由红、绿、蓝、红外(RGB‑IR)传感器生成的数据)。该***确定如何将IR数据和可见光数据混合在一起,以根据当前的光照水平生成最佳图像。在实施例中,***基于红外值和可见光值之间的比较来计算图像数据的场景检测值。该***然后可以确定红外校正量、颜色校正因子、颜色饱和度因子等以应用于图像数据。然后,***基于红外校正量、颜色校正因子、颜色饱和度因子等对图像数据进行变换。在实施例中,经变换的图像数据包括比传统可用的更多低光场景信息,从而产生更高质量的图像。
Description
技术领域
本公开的实施例总体上涉及图像处理,并且更具体地,涉及基于来自RGB-IR传感器的红外(IR)数据和可见光数据(例如,红色、绿色和蓝色(RGB)数据)的图像生成的动态控制。
背景技术
RGB-IR传感器用于成像***中,例如用于驾驶员和乘员监控***(例如,在汽车中)的那些。对于RGB-IR传感器,随着场景中可见光量的减少,颜色信号变得不那么有用。使用RGB-IR传感器的***通常具有可见光阈值,高于该阈值则使用来自RGB传感器的数据,而低于该阈值则使用来自IR传感器的数据。RGB-IR***的IR传感器像素数量通常是RGB传感器像素的1/4。因此,来自IR传感器像素的信号具有来自RGB传感器像素的信号分辨率的1/4的分辨率。IR传感器像素的这种降低的分辨率会降低在低光环境下(例如夜间)生成的图像的质量和实用性。
附图说明
从下面给出的详细描述和从本公开的各种实施例的附图中,将更充分地理解本公开。然而,附图不应被视为将本公开限制于特定实施例,而仅用于解释和理解。
图1示出了根据本公开的一些实施例的示例计算环境,其包括用于动态调整包括红外值和可见光值的图像数据的技术。
图2是根据本公开的一些实施例的概念IR减法因子曲线。
图3是根据本公开的一些实施例的用于基于场景检测值确定用于调整图像的一个或更多个量的查找表。
图4是根据本公开的一些实施例的用于调整包括红外值和可见光值的图像数据以生成更新图像的方法的流程图。
图5是根据本公开的一些实施例的用于使用经训练的机器学习模型来处理经变换的图像(例如,其已经根据图4的方法变换)的方法的流程图。
图6是根据本公开的一些实施例的用于显示经变换的图像(例如,其已经根据图4的方法变换)的方法的流程图。
图7示出了根据本公开的一些实施例的包括用于修改图像的场景分析器的示例计算设备。
图8A示出了根据至少一个实施例的自主车辆的示例。
图8B示出了根据至少一个实施例的用于图8A的自主车辆的相机位置和视野的示例。
图8C是示出了根据至少一个实施例的用于图8A的自主车辆的示例***架构的框图。
图8D是示出了根据至少一个实施例的用于在基于云的服务器和图8A的自主车辆之间进行通信的***的图。
图9A示出了根据至少一个实施例的推理和/或训练逻辑。
图9B示出了根据至少一个实施例的推理和/或训练逻辑。
图10示出了根据至少一个实施例的示例数据中心***。
图11示出了根据至少一个实施例的计算机***。
图12示出了根据至少一个实施例的计算机***。
图13示出了根据一个或更多个实施例的图形处理器的至少部分。
图14示出了根据一个或更多个实施例的图形处理器的至少部分。
具体实施方式
乘员监控***通常使用单色红外(IR)相机,并且最近已经开始使用彩色IR相机(即,红色、绿色、蓝色、红外(RGB-IR)相机)。使用IR能够使相机能通过使用IR照明照亮目标区域(例如,驾驶舱内的驾驶员)来在夜间运行。RGB-IR相机的图像传感器通常配置为使大部分像素传感器检测可见光,而使小部分检测IR(例如,1/4的像素传感器检测IR)。当场景变暗时(例如,在晚上),用于可见光的像素传感器效率较低,并且传统***转而仅使用IR像素传感器。这种从彩色IR到单色IR的切换可能很突然,并导致图像的质量和分辨率大幅降低(例如,降低到1/4分辨率)。对于使用特定图像质量和分辨率进行训练的计算机视觉应用程序来说,分辨率的突然切换和变化可能尤其成问题,这可能无法很好地处理更亮场景和更暗场景之间的变化。
本公开的实施例包括用于更好地处理明亮场景和黑暗场景之间的过渡的图像信号处理(ISP)管线的技术。该技术能够使用来自可见光像素传感器的信息来保持黑暗场景的图像分辨率高于传统方法能实现的,并且比以前的解决方案更擅长在明暗场景之间过渡。例如,由非IR像素测量的IR信号可以在某些照明条件下使用,并且要使用的IR信号的量可以根据照明条件而变化。该技术能够根据环境光和发射的近红外光混合的变化,适度地调整图像捕捉和渲染组合的近红外和可见光信号。
该技术分析来自RGB-IR相机的图像并确定场景检测值(例如,它可以指示场景的亮度)。在一个示例中,场景检测值可以基于IR的平均强度(例如,由与RGB-IR相机相关联的IR发射器发射的)与可见光的平均强度的比率。通常,IR强度与可见光强度的比率在白天会较低,因为IR照明的强度低于可见光的强度(例如,1:100的比率)。相反,该比率通常会在夜间高得多,因为IR照明的强度更接近可见光的强度(例如,比率1:1)。配置为检测可见光的像素通常也检测IR。因此,由于在夜间或其他低光设置(例如,在隧道中)通常很少或没有背景环境光(例如,来自太阳),因此IR像素和可见光像素(例如,G像素)可以检测到与RGB-IR相机***输出的IR相同的IR,导致IR与可见光的比率约为1:1。
RGB-IR相机可以包括RGB-IR滤色器阵列(CFA)。RGB-IR CFA是标准拜耳(Bayer)CFA的变体,它用IR滤光片来替代滤色器阵列中的通常通过红、绿或蓝光的一些位置,该IR滤光片通过IR波长(例如,近IR波长)并阻挡可见光。例如,这可以通过采用拜耳传感器的4x4区域并用IR滤光片替换两个红色滤光片和两个蓝色滤光片来实现,从而在传感器上创建重复图案。在典型设计中,相机将具有一个窄带通的IR截止滤光片,该滤光片与RGB-IR相机的IR发射器(例如,940nm)的发射尖峰相匹配。
R、G和B滤色器通常对IR发射是透明的。结果,IR光均匀地泄漏到传感器的所有通道中。通常,为了获得用于人类可视化和/或与在图像***上运行的机器学习***一起使用的高质量图像,从R、G和B像素中减去在IR像素上测量的IR信号。由于场景中的可见光与IR光(例如,来自IR发射器)相比减少了,因此产生的颜色信号可能会减弱,变得更加嘈杂,并最终变黑。来自仅IR像素的信号通常在图像信号处理器中分离,以提供可用于机器视觉和/或向用户显示的1/4分辨率图像。该图像在明亮和黑暗条件下均可用,但与单色IR传感器(例如,其中所有像素都是IR传感器像素)相比,较低的分辨率会降低潜在的机器视觉性能。
使用RGB-IR相机的***(例如,汽车的乘客监控***(OMS)和/或驾驶员监控***(DMS))面临的问题是,当场景中的可见光量减少时,颜色信号变得不那么有用。因此,使用RGB-IR相机的传统***应用可见光阈值,并且当可用可见光的量低于阈值时,此类***转变为使用RGB-IR相机的IR像素传感器。然而,来自典型RGB-IR传感器中仅IR像素的信号相当于1/4分辨率图像,从而导致图像质量较低,进而降低单色IR信息的有用性。与使用RGB-IR相机的传统***相比,本文实施例中描述的使用RGB-IR相机的***可以保持全分辨率,而不管照明条件如何。保持全分辨率而不是在全分辨率和四分之一分辨率之间交替增加了在生成的图像中处理的数据量,提高了图像的质量,并提高了训练这些***的效率,节省了时间并提高了***的潜在效率。
通常,可归因于IR的可见光像素的所有强度都被过滤掉。然而,在实施例中,处理逻辑基于确定的场景检测值动态地确定要过滤掉多少可见光像素的强度。通过使用可见光像素来检测IR信号,增加了在弱光条件下使用的像素的数量,从而也提高了在弱光条件下生成的图像的分辨率。随着场景变得更暗,使用越来越多的可归因于IR的可见光像素信号。如果使用为RGB-IR相机预先确定的静态白平衡校正、颜色校正、颜色饱和度等值,这可能会导致不正确的白平衡、不正确的颜色、不正确的颜色饱和度等。因此,除了使用场景检测值来确定红外校正量(例如,从可见光像素的测量中减去多少IR信号)以外,还可以使用场景检测值和/或红外校正量来动态地确定白平衡校正因子、颜色校正因子、颜色饱和度因子等。这些因子中的每一个都将根据从可见光像素值中过滤掉多少IR信号而发生变化。
因此,一旦确定了场景检测值,就可以将其用作输入以确定由图像处理管线的不同部分或组件使用的量。例如,场景检测值可用于调整红外校正量、白平衡校正量、颜色校正量和饱和度。随着场景从亮到暗的过渡,该比率将增加(例如,从1:100到1:1),并且IR减法的百分比将平稳降低,而去饱和度将平稳增加。IR强度与可见光强度的比率可以输入到函数中或用作查找表的索引值,并且每个特定的场景检测值(例如比率)可以对应于特定的IR减法值,特定的去饱和度百分比等。
使用RGB-IR相机的传统***在任何给定时间使用来自RGB像素的信号或来自IR相机的信号。此类***根据某个阈值从在场景较亮时(例如,在白天)使用来自RGB像素的信号切换到在场景较暗时(例如,在夜间)使用来自IR像素的信号。这种从使用来自RGB像素的信号到使用来自IR像素的信号的切换是在高分辨率彩色图像与低分辨率单色IR图像之间的突然切换。例如,在现有技术***从输出RGB图像切换到输出单色IR图像时,可能存在一些预先确定的静态阈值。实施例通过使用场景检测值作为输入来避免这种突然切换,以从更多基于较亮场景(其中可见光占主导)中的RGB信息的输出图像平滑过渡到更多基于较暗的场景(IR照明占主导)中的IR信息的输出图像。对于任何给定的场景检测值,可以使用归于IR的用于RGB像素传感器的信号的某些部分,而不是完全去除归于IR的信号部分。在实施例中,该技术继续在较暗的条件下使用RGB信息以保持分辨率一致,并且不会丢弃RGB信息并在场景变暗时仅使用IR像素传感器,这将导致输出图像具有1/4的信息/分辨率。因此,在实施例中,在弱光情况下生成的单色IR图像可以具有与在强光情况下生成的彩色图像相同的分辨率。在实施例中,使用标准RGB-IR相机的***能够为机器视觉和人类视觉任务提供具有高可用性的全分辨率图像,其中响应于环境可见光的减少,图像质量可能会最小且适度地退化。
在下文中通过示例而不是通过限制的方式详细描述了上述技术的各个方面。下面提供的示例讨论了结合到一个或更多个图像信号处理器的管线中的技术,并且可以在从图像传感器接收到图像之后并且在它被永久存储之前应用。在其他示例中,该技术可用于在永久存储图像数据之后更新图像。
一些实施例参考汽车车厢中的相机进行讨论。然而,应当理解,实施例还涵盖由RGB-IR相机生成的图像在其他应用中的使用,例如在其他类型汽车的车厢中(例如,飞机的驾驶舱、卡车的车舱、火车的车舱等)、安全相机中、汽车的外向相机(例如,对汽车外部的周围区域进行成像)中等等。因此,本文讨论的关于调整用于车内相机***的图像的示例仅仅是示例,并且参考这些示例描述的相同技术也适用于使用RGB-IR相机的任何其他设置。
参考IR和IR传感器讨论了一些实施例。应当理解,如本文所用,术语红外(IR)可以包括传统的IR辐射(例如,波长在780nm和1mm之间的辐射)以及近IR辐射(例如,波长在750nm和1300nm之间的辐射)。
本文所述的***和方法可以由但不限于非自主车辆、半自主车辆(例如,在一个或更多个自适应驾驶员辅助***(ADAS)中)、有人驾驶和无人驾驶的机器人或机器人使用平台、仓库车辆、越野车辆、耦合到一个或更多个拖车的车辆、飞行器、船只、穿梭车、应急响应车辆、摩托车、电动或机动自行车、飞机、工程车辆、水下航行器、无人机和/或其他车辆类型使用。此外,本文描述的***和方法可用于多种目的,例如但不限于,用于机器控制、机器运动、机器驾驶、合成数据生成、模型训练、感知、增强现实、虚拟现实、混合现实、机器人技术、安全和监控、自主或半自主机器应用、深度学习、环境模拟、对象或参与者模拟和/或数字孪生、数据中心处理、对话式人工智能(AI)、光传输模拟(例如,光线追踪、路径跟踪等)、3D资产的协作内容创建、云计算和/或任何其他合适的应用。
公开的实施例可以被包括在各种不同的***中,例如汽车***(例如,用于自主或半自主机器的控制***、用于自主或半自主机器的感知***)、使用机器人实现的***、航空***、医疗***、划船***、智能区域监控***、用于执行深度学习操作的***、用于执行模拟操作的***、用于执行数字孪生操作的***、使用边缘设备实现的***、包含一个或更多个虚拟机的***(VM)、用于执行合成数据生成操作的***、至少部分在数据中心中实现的***、用于执行对话式AI操作的***、用于执行光传输模拟的***、用于为3D资产执行协作内容创建的***、至少部分地使用云计算资源实现的***和/或其他类型的***。
图1示出了根据本公开的一些实施例的示例计算环境100,其包括用于基于计算的场景检测值来执行一个或更多个图像的动态变换的技术。计算环境100A可以包括一个或更多个处理单元104(例如,图像信号处理器(ISP)和/或ISP管线101的其他处理器),其对进入的图像数据102(例如,RGB-IR图像)进行操作以生成经变换的图像数据130(例如,经变换的彩色或单色图像)。
处理单元104可以被配置为接收图像数据102并且对图像数据执行一个或更多个操作以生成可以在下游过程中使用的图像(例如,通过图像分析算法、机器学习模型、输出到显示器等),如下所述。处理单元104可以是或包括能够处理一个或更多个图像的数据的一个或更多个设备。处理单元104可以被称为图像处理器并且可以是或包括一个或更多个图像信号处理器(ISP)、数字信号处理器(DSP)、图形处理单元(GPU)、中央处理单元(CPU)、数据处理单元(DPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、其他集成电路或其组合。
处理单元104可以从另一设备(例如,RGB-IR相机)接收作为模拟信号、数字信号或其组合的图像数据102(例如,一个或更多个图像)。图像可以是图像序列,并且序列中的每个图像可以是视频帧。处理单元104可以接收作为编码图像、原始图像或其组合的图像数据。
图像数据102可以对应于来自可见光传感器像素和IR传感器像素的一组值,并且该组可以具有大小(例如,组大小)并且每个值可以具有大小(例如,像素大小)。组大小可以称为分辨率并且可以以像素的数量来测量并且可以是720x480(例如,标准清晰度(SD))、1920x1800(高清(HD))、3840x2160(超高清(4K UHD)))、7680x 4320(8K UHD)或其他大小或比例。值大小可以称为像素大小并且可以具有基于比特数的范围(例如,像素值范围)。例如,值大小可以是8比特(例如,范围0-255)、10比特(例如,范围0-1023)、12比特(例如,范围0-4K)、其他比特数或它们的组合。值大小(例如,像素大小)可与相应图像的动态范围有关。
图像数据102可以包括来自RGB-IR相机的许多传感器像素的强度值,包括来自红色(R)传感器像素、绿色(G)传感器像素、蓝色(B)传感器像素和红外(IR)传感器像素的强度值。图像数据102可以包括颜色信息(例如,来自R、G、B传感器像素)和/或单色信息(例如,来自IR传感器像素),并且可以对应于静止图像(例如,照片)、图像序列(例如,视频的帧)中的图像或其组合。在实施例中,图像数据102包括图像的直方图。硬件组件(未示出)可以为生成的图像生成红色、绿色、蓝色和IR通道的直方图。直方图中的条目可以具有离散值(例如,在一个实施例中离散为256个不同的值)。在一个实施例中,与较高信号相比,较低信号存在更多可能值(例如,直方图的更高分辨率)。
图像数据102可以被输入到场景分析器106和/或处理管线101中。场景分析器106对图像数据(例如,图像直方图)进行分析以生成图像数据102的场景检测值108。场景检测值108是IR发射对可见光的相对功率的度量,并且可以基于IR的强度(即功率)值和(例如,R,G和/或B信号的)可见光的强度(即功率)值来确定。在实施例中,场景检测值108基于IR强度值与一个或更多个可见光强度值之间的关系来计算。该关系例如可以是IR强度值与一个或更多个可见光强度值之间的比率。在一个实施例中,计算一个或更多个IR强度值与一个或更多个G强度值之间的比率。
在一个实施例中,场景分析器106基于来自一个或更多个IR像素传感器的信号计算平均IR强度,并基于来自一个或更多个G像素传感器的信号计算平均可见光强度。在一个实施例中,场景分析器106然后计算平均IR强度与平均G强度的比率。该比率可以用作场景检测值108。或者,可以直接根据该比率确定场景检测值108。
替代地或附加地,场景分析器106可以计算G、R和/或B像素的平均值,并且可以使用来自G、R和/或B像素的平均值连同来自IR像素的平均值来确定场景检测值108。例如,场景分析器106可以确定R、G和B像素的平均值,并将该总平均值与IR像素的平均值进行比较以确定场景检测值108。另外或替代地,其他统计值可以基于R、G、B和/或IR像素来确定,例如中值、最大值、最小值、四分位数的平均值等,并且这些值可以用于确定场景检测值108。例如,G、B和/或R像素的中值、最大值、最小值、四分位数的平均值等与IR像素的中值、最大值、最小值、四分位数的平均值等的比率可以被计算并用于场景检测值108。
在一些实施例中,来自整个图像的数据用于确定场景检测值108。例如,可以基于来自所有G像素的数据和来自所有IR像素的数据来确定平均值或其他统计值。替代地,来自少于整个图像的数据可以用于确定场景检测值108。例如,场景的一些区域可能对于以后的处理和/或决策比场景的其他区域更重要。一个示例是描绘乘员和/或驾驶员的图像区域。因此,在一些实施例中,场景分析器106可以仅使用来自图像的一区域的数据来确定场景检测值108(例如,驾驶员通常位于的固定区域或已经使用经训练的机器学***均值),其中一些区域/像素可能比其他区域/像素的计算权重更大。
场景检测值108可用于确定要在图像中使用的IR量和/或确定如何修改图像以考虑要使用的IR量。一旦计算了场景检测值108,就可以基于场景检测值108确定一个或更多个量110。这种量110的示例包括:量110A,其是IR减法因子;量110B,其是白平衡校正因子;量110C,其是颜色校正因子;以及量110D,其是颜色饱和度因子。量110中的每一个可以在处理管线101的不同阶段用于处理图像数据102。这些量110补偿了由没有从颜色通道中去除的IR信号量引起的副作用。
可见光传感器像素通常检测IR辐射以及它们被配置为检测的特定波长的可见光的辐射。传统上,通过确定IR传感器像素的强度值,然后从周围可见光传感器像素(例如,R、G和B传感器像素)的强度值中完全减去这些强度值,对RGB-IR图像数据执行红外校正。然而,实施例利用可见光传感器像素检测IR辐射这一事实,以通过选择在某些条件下不减去对可见光传感器像素的强度值的所有IR贡献来提高中等和低光条件下的图像分辨率。
在实施例中,IR减法因子(例如,量110A)基于场景检测值108来确定。IR减法因子控制要执行的红外校正112的量。因此,IR减法因子控制要从给定图像的可见光传感器像素值中减去的IR贡献量。基于IR减法因子(量110A),对可见光传感器像素值的IR贡献的一小部分可以被减去用于红外校正112。在一个实施例中,IR减法值是具有介于0和1之间的值的因子。
在一些实施例中,一旦确定了IR减法因子(量110A),IR减法因子可用于根据以下等式执行红外校正112:
Pout(x,y)=Pin(x,y)-IL*IRSubtractionFactor
其中Pin是具有坐标(x,y)的像素的输入像素值,其中Pout是在坐标(x,y)处的像素的输出像素值,其中IRSubtractionFactor是确定的IR减法因子,并且其中IL是具有坐标(x,y)的像素处的局部IR平均值。
在一个实施例中,场景检测值可以是介于0和1之间的任何值。例如,1:100的IR强度值与可见光强度值的比率(其对应于光线充足或明亮的场景)可能会导致场景检测值接近0(例如,0.01),而1:1的IR强度值与可见光强度值的比率(其对应于光线不足或黑暗的场景)可能会导致场景检测值为1。在一个示例中,如果场景检测值接近于零,表明场景光线充足或阳光充足,则IR减法因子可以为1,并且可以从可见光像素传感器值中减去整个IR贡献。另一方面,如果场景检测值接近1,表明场景光线不足或处于黑暗中,则IR减法值可能为0,并且不能或者可以从可见光像素传感器值中减去IR贡献。对于中间场景检测值(例如,约0.2至约0.8,或约0.3至约0.7,或约0.4至约0.6),IR减法因子可具有范围从例如约0.1至约0.9的值。场景检测值和IR减法因子之间可能存在反比关系。因此,随着场景检测值的增加,IR减法因子可能会降低。场景检测值与IR减法因子之间的反比关系可以是线性关系,也可以是非线性关系。
图2是示出根据本公开的一些实施例的概念IR减法因子曲线230的图200。图的x轴对应于场景检测值205,图的y轴对应于IR减法因子210。IR减法因子曲线230分为三个概念区,包括自然光主导区215、过渡区220和IR主导区225。在自然光主导区215中,通常存在大量的背景光,这导致可见光传感器像素的强度值相对较高,从而产生具有比其他区域更高的色彩保真度的高质量图像数据。因此,对于自然光主导区,对可见光传感器像素的强度值的IR贡献是无用的,并且IR减法因子为1(即,从可见光传感器像素的强度值中去除100%的IR贡献)。在一个示例中,自然光主导区包括0到大约0.4的场景检测值。
在过渡区220中,场景中的自然光比在自然光主导区215中的少。结果,过渡区220的可见光传感器像素的强度值低于自然光主导区215的强度值。通过利用对可见光传感器像素的强度值的一些IR贡献(例如,不减去所有IR贡献),可以增加整体强度值,这可以提高SNR。因此,对于过渡区220中的场景检测值,IR减法因子210可以随着场景检测值205的增加而稳步减小。
RGB-IR相机输出它们自己的IR光来照亮场景。随着场景中自然光或背景光的减少(例如,在夜间),RGB-IR相机输出的IR光变得占主导。在IR主导区225中,对由可见光传感器像素测量的强度值的大部分或全部贡献来自IR。传统上,当背景光很少时(例如,在IR主导区225中),RGB-IR相机切换到仅使用IR传感器像素信息。但是,这会将生成的图像的分辨率降低到在自然光照条件下实现的分辨率的1/4。
在实施例中,即使在弱光情况下也使用来自可见光传感器像素的数据。在实施例中,在IR主导区225中,IR减法值等于或接近0。结果,从可见光传感器像素的强度值中几乎没有或没有IR贡献被去除。因此,即使在光线较暗的情况下,RGB-IR相机的大部分或所有传感器像素的数据仍然可用。这导致在这种低光设置中生成的图像的分辨率成为在具有更好光照的设置期间可实现的标准分辨率。
在IR主导设置中,所测量的大部分或全部辐射是IR辐射。由于所有传感器像素都在测量相同波长的辐射(即IR辐射),因此可能会丢失颜色信息。因此,生成的图像可以是单色图像。然而,这些单色图像的分辨率比传统上在低光设置下使用RGB-IR相机所能达到的分辨率要高得多。
返回图1,对红外校正112的调整可能导致白平衡、颜色校正、颜色饱和度等的改变。通过在所有条件下不去除对可见光传感器像素值的所有IR贡献,RGB-IR相机无法先验地计算单个白平衡校正、单个颜色校正、单个颜色饱和度校正等。相反,应该根据所执行的红外校正量对白平衡校正114、颜色校正118和颜色饱和124进行不同的调整。因此,由场景分析器106确定的量110可以包括白平衡校正因子(量110B)、颜色校正因子(量110C)、颜色饱和度因子(量110D)等。
在一些实施例中,使用将场景检测值与量110中的一个或更多个相关的一个或更多个函数来确定量110中的一些或全部。因此,计算的场景检测值可以输入到函数中,该函数可以返回一个或更多个量110的值。在一些实施例中,使用一个或更多个查找表来确定量110中的一些或全部。场景检测值108可以用作查找表的索引,并且量110中的一个或更多个的量化值可以被包括在查找表的条目中。
在一个示例中,如果场景被检测为夜间场景(例如,场景检测值108高),则IR占主导,并且IR与G的平均像素值比率可能接近1:1。对于如此高的场景检测值108,在红外校正112处可能几乎没有或没有IR减法,颜色饱和124可以对彩色图像应用去饱和度(颜色饱和度因子可能低),并且白平衡校正因子和颜色校正因子在颜色校正118和颜色饱和124处可以为零(导致AWB增益为1并且在低光照条件下使用不变的CCM单位矩阵)。这种情况下的输出可以是单色图像。
在另一示例中,如果场景被检测为白天场景(例如,场景检测值108低),则可见光占主导,并且可能存在低的IR与可见光像素值的比率(例如,1:50、1:100等)。对于这样的低场景检测值108,在红外校正112处可能存在完全的IR减法,颜色饱和124和颜色校正118可以保持原样(例如,不被校正因子修改)以保存色度信息,等等。这种情况下的输出可以是彩色图像。在实施例中,取决于场景中的环境可见光,IR减法的百分比和去饱和度的量可以共享反比关系。
实施例能够基于照明条件调整IR去除量,这是在中等到低光场景中的图像的更好的SNR和颜色保真度之间的折衷。
图3是根据本公开的一些实施例的可用于确定用于基于场景检测值305调整图像的一个或更多个量308(例如,对应于图1的量110)的示例查找表300。一旦计算了场景检测值305,它就可以用作索引以在查找表300中找到条目(例如,一行)。该条目可以包括IR减法因子310的第一值、白平衡校正因子315的第二值、颜色校正因子320的第三值、颜色饱和度因子325的第四值,等等。应当注意,示例查找表300中包括的示例值仅用于说明目的,并且可以使用其他值。
返回图1,在红外校正112之后,可以执行自动化白平衡校正(AWB)114。白平衡(WB)是去除不切实际的色偏的过程,因此本身看起来白色的对象在图像中呈现白色。白平衡是通过确定应用于每个颜色通道的增益量来执行的,其中每个颜色通道可以接收不同的增益量。AWB的目标是使场景中的所有灰色对象都具有相同数量的红色、绿色和蓝色强度。适当的白平衡会考虑光源的“色温”,即白光的相对暖度或冷度。人眼非常擅长在不同的光源下判断什么是白色,但数码相机在自动白平衡(AWB)方面经常遇到很大困难——并且会产生难看的蓝色、橙色甚至绿色色偏。
当IR信号没有从可见光传感器像素值中去除时,执行正确的白平衡校正114变得更具挑战性。IR信号充当偏移。因此,当对保留有IR信号的图像执行AWB时,可能会将不同的增益量应用于每个颜色通道中的IR偏移,这可能导致紫色偏色。因此,在实施例中应用白平衡校正因子,其中白平衡校正因子基于没有从可见光传感器像素值中去除的IR信号的量。特别地,通过保留一部分IR信号,将偏移引入到每个颜色通道中。这种偏移可以表现为紫色。在一个实施例中,随着更多的IR光被保留,***从应用全白平衡增益转向向每个颜色通道应用相等增益。例如,对于纯IR信号(例如,在夜间),没有增益可以应用于任何颜色通道,因为没有要校正的颜色信号。在光谱的另一端,对于纯色信号(例如,已从可见光传感器像素值中去除所有IR信号),将使用标准的正确白平衡量(例如,如基于***的校准所确定的)。在纯色信号和纯IR信号之间,可以确定一些中间白平衡因子(例如,在0和1之间)。
可以基于确定的白平衡校正因子对红外校正112后的图像数据执行白平衡校正114。在一些实施例中,白平衡校正因子(量110B)可用于根据以下等式执行白平衡校正114:
其中是输入红色、绿色和蓝色像素值的向量,AWBfactor是白平衡校正因子,WBR、WBG和WBB是来自RGB-IR相机的图像的初始红色、绿色和蓝色白平衡校正值(例如,在校准期间确定),并且/>是红色、绿色和蓝色输出像素值的向量。
在白平衡校正114之后,可以执行标准去马赛克116。去马赛克是一种数字图像处理,用于从覆盖有滤色器阵列的图像传感器输出的不完整颜色样本构建全彩色图像。RGB-IR相机可以包括多个传感器像素,每个传感器像素与特定波长的辐射相关联(例如,包括R、G、B和IR传感器像素的经修改的拜耳模式)。在去马赛克过程中,来自与和所讨论的传感器像素不同的一个或更多个波长相关联的周围像素的数据可用于估计(例如,通过插值)所讨论的传感器像素的一个或更多个波长的值(即功率或强度值)。例如,在去马赛克过程中,仅IR传感器像素(照片站点)的内容可能会被替换为基于来自周围颜色传感器像素的相同颜色数据的插值而应该存在的颜色信息。
在去马赛克116之后,可以使用确定的颜色校正因子来执行颜色校正118。由于相机***中使用的光学镜头和滤光片的光谱特性、场景的照明以及图像传感器的滤色器的光谱特性,相机的RGB数据可能无法提供忠实的色彩再现。具体而言,图像传感器的光谱特性可能与人眼的光谱响应不同。这种不忠实的色彩再现主要是由成像器滤色器阵列的光谱特性与人眼的光谱响应之间的差异以及场景的照明产生的。由场景照明引起的颜色误差可以通过自动白平衡来控制。但是自动白平衡并不能充分减少由成像器滤色器阵列的光谱特性产生的颜色误差。主要使用两种颜色校正来补偿这种颜色误差。一种是使用Cr和Cb的控制的色调和饱和度控制方法。另一种是3x3颜色矩阵法。
对于纯IR信号(例如,在夜间),没有颜色数据,因此不需要颜色校正。因此,单位矩阵可用于纯IR信号的颜色校正。另一方面,对于纯色信号,颜色矩阵的对角线有强项,非对角线值有负项。可能存在已基于校准确定的正确的已知准确颜色校正值,但该正确的校正值可能仅适用于从可见光像素传感器值中完全去除IR信号时。可以计算一些因子(例如,具有介于0和1之间的值)并将其应用于基于留在信号中的量或IR的正确校正值。
在一些实施例中,颜色校正因子(量110C)可用于根据以下等式执行颜色校正118:
其中是像素的输入红色、绿色和蓝色值的向量,CCMfactor是颜色校正因子,m11-m33是用于颜色校正的3x3颜色矩阵的值,以及/>是像素的红色、绿色和蓝色输出值的向量。在一个实施例中,3x3矩阵系数(m11-m33)通过相机RGB输出信号和目标MacbethColor Checker(麦克白颜色检查器)的CIE XYZ三色值之间的最小二乘多项式建模而导出。也可以使用其他技术导出3x3矩阵系数。
在执行颜色校正118之后,可以执行全局色调映射120。在全局色调映射120之后,可以执行局部色调映射122。
在全局色调映射120和局部色调映射122之后,可以使用确定的颜色饱和度因子(量110D)来执行颜色饱和124(即,去饱和度)。在一个实施例中,颜色饱和度因子具有介于0和1之间的值。调整颜色饱和度124可以直接控制图像的色调、饱和度和/或亮度。某些图像可能颜色饱和,并且对此类图像执行去饱和度可以提高图像质量。相反,一些图像可以受益于增加颜色饱和度。
在一些实施例中,颜色饱和度因子(量110D)可用于根据以下等式在YUV颜色空间中执行颜色饱和度校正124:
a.Yout(x,y)=Yin(x,y)
b.Uout(x,y)=Uin(x,y)*SATfactor
c.Vout(x,y)=Vin(x,y)*SATfactor
其中,Yin、Uin和Vin是坐标(x,y)处的像素的相应输入YUV值,SATfactor是颜色饱和度校正因子,而Yout、Uout和Vout是坐标(x,y)处的像素的相应输出YUV值。
处理管线101并非旨在表示完整的处理管线,并且除了在此提及的那些之外,还可以在处理管线101中执行一个或更多个附加操作。这样的附加操作是对ISP管线的标准操作,并且对于当前的讨论并不重要,因此为了清楚和简洁起见被省略。然而,应当理解,处理管线101可以包括这样的附加操作,其可以在所列举的操作之前、之间和/或之后执行。
处理管线101输出经变换的图像数据130,其可以包括经变换的图像,该经变换的图像包括仅来自可见光像素传感器或来自可见光像素传感器和IR像素传感器的数据,视情况而定。取决于照明条件和/或其他因素,经变换的图像数据可以包括彩色图像或单色图像,并且可以与输入图像数据102处于相同的颜色空间中或与输入图像数据102处于不同的颜色空间中。例如,输入图像数据102可以在RGB颜色空间中,而经变换的图像数据130可以在亮度-色度(YUV)颜色空间中。
处理管线101输出的图像可以是全分辨率图像,而与成像场景中的可见光量无关。全分辨率图像输出在自然光充足的场景中可能是彩色的,而在自然光不足的场景中平滑过渡到全分辨率单色图像。
图4描绘了根据本公开的实施例的用于处理由RGB-IR相机输出的图像数据并基于该处理输出经变换图像的方法400的一个说明性示例的流程图。为了解释的简单,本公开的方法被描绘和描述为一系列动作。然而,根据本公开的动作可以以各种顺序和/或并发地发生,并且与本文未呈现和描述的其他动作一起发生。此外,实施根据所公开主题的方法可能并非需要所有图示的动作。此外,本领域技术人员将理解和明白,这些方法可以替代地通过状态图或事件表示为一系列相互关联的状态。此外,应当理解,本说明书中公开的方法能够存储在制品上,以促进将这些方法运输和转移到计算设备。如本文所用,术语“制品”旨在涵盖可从任何计算机可读设备或存储介质访问的计算机程序。在一种实施方式中,方法400可以使用如图1所示的处理单元104来执行。
方法400可以由处理设备(例如,处理单元104)的处理逻辑执行并且可以在操作410开始。在操作410,处理逻辑可以接收包括红外值和可见光值的图像数据。在实施例中,图像数据可以已经由RGB-IR相机输出。图像可以对应于静止图像(例如照片)、图像序列中的图像(例如视频帧)或其组合。在实施例中,图像数据包括像素值的直方图。
在操作420,处理逻辑可以处理图像数据以计算场景检测值。在实施例中,处理逻辑执行来自图像数据的一个或更多个IR值与来自图像数据的一个或更多个可见光值(例如,G值)之间的比较,并基于该比较确定场景检测值。场景检测值可以基于IR值和可见光值之间的关系。
在一个实施例中,在框422,处理逻辑计算表示红外值的强度的第一值。可以基于计算图像的红外值(例如,来自图像直方图)的平均值、中值、均值、最大值、每四分位数的平均值或其他统计值来计算第一值。
在一个实施例中,在框424,处理逻辑计算表示可见光值的强度的第二值。可以基于计算图像的可见光值(例如,来自图像直方图)的平均值、中值、均值、最大值、每四分位数的平均值或其他统计值来计算第二值。在一个实施例中,第二值基于来自图像直方图的G值确定。
在一个实施例中,在框426,处理逻辑确定第一值和第二值之间的关系。在一个实施例中,该关系是第一值与第二值的比率。低比率(和对应的低场景检测值)可以表示环境光充足的场景,而高比率(和对应的高场景检测值)可以表示黑暗中的场景。
在操作430,处理逻辑可以基于场景检测值确定一个或更多个量。确定的量可以包括例如IR减法因子、白平衡校正因子、颜色校正因子和/或颜色饱和度因子。在实施例中,IR减法因子的大小与场景检测值的大小成反比。在实施例中,颜色饱和度因子的大小直接随场景检测值的大小而变化。
在一个实施例中,在框432,处理逻辑使用场景检测值作为查找表的索引。查找表中的条目可以对应于计算的场景检测值,并且可以包括一个或更多个枚举量,例如用于场景检测值的指定IR减法因子、白平衡校正因子、颜色校正因子和/或颜色饱和度因子。每个场景检测值可以与一组量相关联。
在一个实施例中,在框434,处理逻辑使用场景检测值作为一个或更多个函数的输入,该函数可以输出量(例如,IR减法因子、白平衡校正因子、颜色校正因子、颜色饱和度因子等)。
在框440,处理逻辑基于一个或更多个量来变换图像数据。这可包括从R、G和B像素值中减去一定量的IR贡献,使用确定的白平衡校正因子执行白平衡校正,使用确定的颜色校正因子执行颜色校正,使用确定的色彩饱和度因子执行去饱和或饱和等等。经变换的图像数据可以产生全分辨率图像,该全分辨率图像可以是彩色图像或单色图像,其确定成像场景的照明(例如,在强光下的颜色和在弱光下的单色)。在一些实施例中,输出图像在YUV颜色空间中。
图5是根据本公开的一些实施例的用于使用经训练的机器学习模型来处理经变换的图像(例如,已经根据图4的方法变换的图像)的方法的流程图。在方法500的框510,处理逻辑接收经变换的图像数据(例如,其已根据方法400被处理)。经变换的图像数据可以包括确定照明条件的全分辨率图像,该图像可以是彩色图像或单色图像。
在框520,处理逻辑处理经变换的图像数据以生成输出。在一个实施例中,在框522,经变换的图像数据被输入到经训练的机器学习模型中。经训练的机器学习模型处理图像数据并生成输出,该输出在框524被接收。
经训练的机器学习模型可以是例如人工神经网络、支持向量机、随机森林算法、决策树、隐马尔可夫模型(HMM)、高斯混合模型(GMM)、回归模型或其他类型的机器学习模型。由于输入图像数据用于具有最高可能SNR的全分辨率图像,因此与将1/4分辨率单色图像输入机器学习模型相比,可以提高机器学习模型的输出准确度。可以训练机器学习模型以生成作为预测、分类、估计等的输出。输出可以包括置信度评级,并且机器学习模型的置信度评级(和准确度)可以由于以下原因而最大化:在输入到经训练的机器学习模型之前使用方法400对图像进行变换。
在DMS的示例中,机器学***确定(例如,指示驾驶员的眼睛是否在看路),等等。在OMS的示例中,机器学习模型可以输出检测到一个或更多个乘员的指示。这可用于提醒驾驶员后座上有婴儿,例如,当驾驶员关闭汽车时。
可以使用的一种类型的机器学习模型是人工神经网络,例如深度神经网络。人工神经网络通常包括具有分类器或回归层的特征表示组件,分类器或回归层将特征映射到所需的输出空间。例如,卷积神经网络(CNN)包含多层卷积滤波器。执行池化,并且可以在较低层解决非线性问题,在其上通常附加一个多层感知器,将卷积层提取的顶层特征映射到决策(例如分类输出)。深度学习是一类机器学习算法,它使用级联的多层非线性处理单元进行特征提取和转换。每个连续的层都使用前一层的输出作为输入。深度神经网络可以以有监督(例如,分类)和/或无监督(例如,模式分析)的方式学习。深度神经网络包括层次结构,其中不同的层学习对应于不同抽象级别的不同级别的表示。在深度学习中,每个级别都学习将其输入数据转换为稍微抽象和复合的表示。例如,在图像识别应用中,原始输入可以是像素矩阵;第一表示层可以抽象像素并编码边缘;第二层可以组合和编码边缘的排列;第三层可以编码更高级别的形状;以及例如,第四层可以输出分类或预测。值得注意的是,深度学习过程可以自行学习哪些特征以最佳方式放置在哪个级别。“深度学习”中的“深度”是指数据转换所经过的层数。更准确地说,深度学习***具有相当大的信用分配路径(CAP)深度。CAP是从输入到输出的转换链。CAP描述了输入和输出之间潜在的因果关系。对于前馈神经网络,CAP的深度可以是网络的深度,也可以是隐藏层数加一。对于循环神经网络,其中信号可能不止一次地通过层传播,CAP深度可能是无限的。
在一个实施例中,一个或更多个机器学习模型是递归神经网络(RNN)。RNN是一种神经网络,它包含一个存储器,用于使神经网络能够捕获时间依赖性。RNN能够学习依赖于当前输入和过去输入的输入-输出映射。RNN将处理过去和未来的扫描,并根据此连续扫描信息进行预测。RNN可以使用训练数据集进行训练以生成固定数量的输出(例如,以将诸如视频数据的时变数据分类为属于固定数量的类)。可以使用的一种类型的RNN是长短期记忆(LSTM)神经网络。
用于此类任务的常见架构是LSTM(Long Short Term Memory,长短期记忆)。不幸的是,LSTM不太适合图像,因为它不能像卷积网络那样捕获空间信息。为此,可以使用ConvLSTM——LSTM的一种变体,在LSTM单元内包含卷积运算。ConvLSTM是LSTM(长短期记忆)的变体,在LSTM单元内包含卷积运算。ConvLSTM在LSTM单元中的每个门处用卷积运算代替矩阵乘法。通过这样做,它通过多维数据中的卷积运算来捕获潜在的空间特征。ConvLSTM和LSTM之间的主要区别在于输入维度的数量。由于LSTM输入数据是一维的,因此不适用于诸如视频、卫星、雷达图像数据集等空间序列数据。ConvLSTM被设计用于3-D数据作为其输入。在一个实施例中,使用了CNN-LSTM机器学习模型。CNN-LSTM是CNN(卷积层)与LSTM的集成。首先,模型的CNN部分处理数据,一维结果馈送给LSTM模型。
在框530处,处理逻辑基于在框520处生成的输出执行一个或更多个动作。该动作可以是例如,如果驾驶员的注意力不在道路上,则生成警报,当驾驶员下车时生成警报告知车后座有小孩,以此类推。
图6是根据本公开的一些实施例的用于显示经变换图像(例如,其已经根据图4的方法被变换)的方法的流程图。在框610,处理逻辑接收经变换的图像数据(例如,其根据方法400被变换)。在框620,处理逻辑将经变换的图像数据输出到显示器。例如,RGB-IR相机可以是生成汽车乘客的图像的车内相机。车厢可以包括监视器,并且经变换的图像可以被输出到监视器。例如,可以将图像输出到汽车仪表板中的显示器,显示汽车内部的图像。无论光照如何,图像都可以是全分辨率图像,并且当有环境可见光(例如,在白天)时可以是彩色图像,而当没有或很少环境可见光(例如,在晚上)时可以是单色图像。
图7示出了计算机***700的示例机器,在计算机***700内可以执行一组指令,用于使机器执行本文讨论的任何一个或更多个方法。在一些实施例中,计算机***700可以是包括具有高速缓存控制器、存储器控制器或其组合的处理器的计算设备。在替代实施例中,机器可以连接(例如,联网)到LAN、内联网、外联网和/或互联网中的其他机器。该机器可以在客户端-服务器网络环境中以服务器或客户端机器的身份运行,作为对等(或分布式)网络环境中的对等机器,或作为云计算基础设施或环境中的服务器或客户端机器。
该机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网页设备、服务器、网络路由器、交换机或桥,或任何能够执行一组指令(顺序或其他)的机器,这些指令指定该机器要采取的动作。此外,虽然说明了单个机器,但术语“机器”也应理解为包括机器的任何集合,其单独或联合执行一组(或多组)指令以执行本文讨论的任何一个或更多个方法。
示例计算机***700包括处理设备702(例如,处理器200)、主存储器704(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器706(例如,闪存、静态随机存取存储器(SRAM)等)和数据存储***718,它们通过总线730相互通信。
处理设备702代表一个或更多个通用处理设备,例如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实现其他指令集的处理器,或实现指令集的组合的处理器。处理设备702也可以是一个或更多个专用处理设备,例如数据处理单元(DPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理设备702被配置为执行指令726以执行本文讨论的操作和步骤。计算机***700可以进一步包括通过网络720进行通信的网络接口设备708。
数据存储***718可以包括机器可读存储介质724(也称为非暂时性计算机可读介质),其上存储有一组或更多组指令726或体现此处描述的方法或功能的任何一种或更多种的软件。指令726还可以在由计算机***700执行期间完全或至少部分地驻留在主存储器704内和/或处理设备702内,主存储器704和处理设备702也构成机器可读存储介质。
在一个实施例中,指令726包括用于实现对应于图1的场景分析器106的功能的指令。指令可以附加地或替代地包括用于实现对应于红外校正的功能和/或处理管线101的任何其他功能的指令。虽然机器可读存储介质724在示例实施例中被示为单个介质,但术语“非暂时性机器可读存储介质”应理解为包括存储一组或更多组指令的单个介质或多个介质。术语“机器可读存储介质”还应理解为包括能够存储或编码一组指令以供机器执行并且使机器执行本公开的任何一种或更多种方法的任何介质。因此,术语“机器可读存储介质”应理解为包括但不限于固态存储器、光介质和磁介质。
在实施例中,本文描述的技术应用于汽车的驾驶员监控***(DMS)和/或乘员监控***(OMS)。汽车可以是自主车辆、半自主车辆或手动驾驶车辆。DMS和OMS***可以在可见光和近IR光下运行。将本文描述的技术应用到DMS和OMS***能够使电话会议和/或乘客监控应用受益于颜色以及使用单个相机的机器视觉监控应用以降低成本。
图8A图示了根据至少一个实施例的自主车辆800的示例。在至少一个实施例中,自主车辆800(或者在本文中称为“车辆800”)可以是但不限于客车,例如轿车、卡车、公共汽车和/或容纳一名或更多名乘客的另一种类型的车辆。在至少一个实施例中,车辆800可以是用于拖运货物的半牵引拖车卡车。在至少一个实施例中,车辆800可以是飞机、机器人车辆或其他类型的车辆。
自主车辆可以根据由美国交通部下属的国家公路交通安全管理局(“NHTSA”)和汽车工程师协会(“SAE”)“道路机动车辆驾驶自动化***相关术语的分类和定义”(例如,2018年6月15日发布的标准编号J3016-201806、2016年9月30日发布的标准编号J3016-201609,以及之前和未来版本的本标准)来描述。在至少一个实施例中,车辆800可以能够根据自动驾驶级别的1级至5级中的一个或更多个来发挥功能。例如,在至少一个实施例中,根据实施例,车辆800可以具有条件自动化(3级)、高度自动化(4级)和/或完全自动化(5级)的能力。
在至少一个实施例中,车辆800可包括但不限于诸如底盘、车身、车轮(例如,2、4、6、8、18等)、轮胎、车轴和车辆的其他组件的组件。在至少一个实施例中,车辆800可以包括但不限于推进***850,例如内燃机、混合动力发电厂、全电动发动机和/或另一种推进***类型。在至少一个实施例中,推进***850可以连接到车辆800的传动系,该传动系可以包括但不限于变速器,以实现车辆800的推进。在至少一个实施例中,推进***850可以响应于接收来自油门/加速器852的信号而被控制。
在至少一个实施例中,可以包括但不限于方向盘的转向***854用于在推进***850运行时(例如,当车辆800运动时)引导车辆800。在至少一个实施例中,转向***854可以接收来自转向致动器856的信号。在至少一个实施例中,方向盘可对于全自动化(5级)功能来说是可选的。在至少一个实施例中,制动传感器***846可用于响应于从制动致动器848和/或制动传感器接收信号来操作车辆制动器。
在至少一个实施例中,可以包括但不限于一个或更多个片上***(“SoC”)(图8A中未示出)和/或图形处理单元(“GPU”)的控制器836,向车辆800的一个或更多个组件和/或***提供信号(例如,代表命令)。例如,在至少一个实施例中,控制器836可以发送信号以通过制动致动器848操作车辆制动,以通过转向致动器856操作转向***854,以通过油门/加速器852操作推进***850。在至少一个实施例中,控制器836可以包括一个或更多个车载(例如,集成)计算设备,其处理传感器信号并输出操作命令(例如,表示命令的信号)以实现自主驾驶和/或辅助人类驾驶员驾驶车辆800。在至少一个实施例中,控制器836可以包括用于自主驾驶功能的第一控制器、用于功能安全功能的第二控制器、用于人工智能功能(例如计算机视觉)的第三控制器、用于信息娱乐功能的第四控制器、用于紧急情况下的冗余的第五控制器和/或其他控制器。在至少一个实施例中,单个控制器可以处理两个或更多个上述功能,两个或更多个控制器可以处理单个功能,和/或它们的任何组合。
在至少一个实施例中,控制器836响应于从一个或更多个传感器(例如,传感器输入)接收的传感器数据而提供用于控制车辆800的一个或更多个组件和/或***的信号。在至少一个实施例中,可以从例如但不限于全球导航卫星***(“GNSS”)传感器858(例如,全球定位***传感器)、雷达(RADAR)传感器860、超声波传感器862、激光雷达(LIDAR)传感器864、惯性测量单元(“IMU”)传感器866(例如,加速度计、陀螺仪、一个或更多个磁罗盘、磁力计等)、麦克风896、立体相机868、广角相机870(例如鱼眼相机)、红外相机872、环绕相机874(例如,360度相机)、车厢相机875、远程相机(图8A中未显示)、中程相机(图8A中未显示)、速度传感器844(例如,用于测量车辆的速度800)、振动传感器842、转向传感器840、制动传感器(例如,作为制动传感器***846的一部分)和/或其他传感器类型接收传感器数据。
在一个实施例中,车厢相机875是RGB-IR照相机,并且生成具有可见光分量和IR分量的图像数据。控制器836可以使用上述技术处理图像数据以生成经变换的图像数据(例如,通过执行方法400)。与传统上由RGB-IR相机生成的图像相比,经变换的图像数据可以具有改进的SNR和/或图像质量和/或分辨率。生成的图像(即,经变换的图像数据)可以由控制器836输入到一个或更多个经训练的机器学习模型中和/或可以通过HMI显示器834输出以供驾驶员或乘员查看。
在至少一个实施例中,一个或更多个控制器836可以从车辆800的仪表组832接收输入(例如,由输入数据表示)并通过人机界面(“HMI”)显示器834、声音信号器、扬声器和/或通过车辆800的其他组件提供输出(例如,由输出数据、显示数据等表示)。在至少一个实施例中,输出可以包括诸如车辆速率、速度、时间、地图数据(例如,高清地图(图8A中未示出))、位置数据(例如,车辆800的位置,例如在地图上)、方向、其他车辆的位置(例如,占用网格)、关于对象的信息和由控制器836感知的对象的状态等的信息。例如,在至少一个实施例中,HMI显示器834可以显示关于一个或更多个对象(例如,街道标志、警告标志、红绿灯变化等)的存在的信息和/或关于车辆已进行、正在进行或将要进行的驾驶操作的信息(例如,现在改变车道、在两英里内从34B出口驶出,等等)。
在至少一个实施例中,车辆800还包括网络接口824,其可以使用无线天线826和/或调制解调器来通过一个或更多个网络进行通信。例如,在至少一个实施例中,网络接口824可以能够通过长期演进(“LTE”)、宽带码分多址(“WCDMA”)、通用移动电信***(“UMTS”)、用于移动通信的全球***(“GSM”)、IMT-CDMA多载波(“CDMA2000”)网络等进行通信。在至少一个实施例中,无线天线826还可以实现环境中的对象(例如,车辆、移动设备等)之间的通信,其使用局域网,例如蓝牙、低功耗蓝牙(“LE”)、Z-Wave、ZigBee等,和/或低功率广域网(“LPWAN”),例如LoRaWAN、SigFox等协议。
在一些实施例中,如下所述的推理和/或训练逻辑915用于使用如上所述生成的经变换的图像数据来执行推理和/或训练操作。关于推理和/或训练逻辑915的细节在本文中结合图9A和/或图9B提供。在至少一个实施例中,推理和/或训练逻辑915可用于至少地部分基于使用神经网络训练操作、神经网络功能和/或架构或此处描述的神经网络用例计算的权重参数来进行推理或预测操作。
图8B图示了根据至少一个实施例的用于图8A的自主车辆800的相机位置和视野的示例。在至少一个实施例中,相机和相应的视野是一个示例实施例并且不旨在进行限制。例如,在至少一个实施例中,可以包括附加的和/或替代的相机和/或相机可以位于车辆800上的不同位置。
在至少一个实施例中,用于相机的相机类型可以包括但不限于可适用于车辆800的部件和/或***的数码相机。在至少一个实施例中,相机可以在汽车安全完整性等级(“ASIL”)B和/或另一个ASIL下运行。在至少一个实施例中,取决于实施例,相机类型可以具有任何图像捕获速率,例如每秒60帧(fps)、1220fps、240fps等。在至少一个实施例中,相机可以能够使用卷帘快门、全局快门、另一种类型的快门或它们的组合。在至少一个实施例中,滤色器阵列可以包括红色透明透明透明(“RCCC”)滤色器阵列、红色透明透明蓝色(“RCCB”)滤色器阵列、红蓝绿色透明(“RBGC”)滤色器阵列、Foveon X3滤色器阵列、拜耳传感器(“RGGB”)滤色器阵列、单色传感器滤色器阵列、RGB-IR滤色器阵列和/或其他类型的滤色器阵列。在至少一个实施例中,可以使用透明像素相机,例如具有RCCC、RCCB和/或RBGC滤色器阵列的相机,以努力增加光灵敏度。在一个实施例中,一个或更多个相机是RGB-IR相机,并且由一个或更多个相机生成的图像数据根据上述技术进行处理。
在至少一个实施例中,一个或更多个相机可用于执行高级驾驶员辅助***(“ADAS”)功能(例如,作为冗余或故障安全设计的一部分)。例如,在至少一个实施例中,可以安装多功能单声道相机以提供包括车道偏离警告、交通标志辅助和智能前照灯控制的功能。在至少一个实施例中,一个或更多个相机(例如,所有相机)可以同时记录和提供图像数据(例如,视频)。
在至少一个实施例中,一个或更多个相机可以安装在安装组件中,例如定制设计的(三维(“3D”)印刷)组件,以便切断来自车辆800内的杂散光和反射(例如,来自挡风玻璃后视镜中的仪表板反射),其可能会干扰相机图像数据捕获能力。关于翼镜安装组件,在至少一个实施例中,翼镜组件可以是定制的3D打印的,使得相机安装板与翼镜的形状相匹配。在至少一个实施例中,相机可以集成到翼镜中。在至少一个实施例中,对于侧视相机,相机也可以集成在车厢每个角落的四个支柱内。
在至少一个实施例中,具有包括车辆800前方环境部分的视野的相机(例如,前置相机)可用于环视,以帮助识别前向路径和障碍物,以及在一个或更多个控制器836和/或控制SoC的帮助下帮助提供对生成占用网格和/或确定优选车辆路径至关重要的信息。在至少一个实施例中,前置相机可用于执行许多与LIDAR类似的ADAS功能,包括但不限于紧急制动、行人检测和避免碰撞。在至少一个实施例中,前置相机还可用于ADAS功能和***,包括但不限于车道偏离警告(“LDW”)、自主巡航控制(“ACC”)和/或其他功能,例如交通标志识别。
在至少一个实施例中,多种相机可用于前置配置,包括例如包括CMOS(“互补金属氧化物半导体”)彩色成像器的单目相机平台。在至少一个实施例中,广角相机870可用于感知从***进入视野的对象(例如,行人、过马路或自行车)。尽管在图8B中仅示出了一个广角相机870,但在其他实施例中,车辆800上可以有任意数量(包括零个)广角相机。在至少一个实施例中,任意数量的远程相机898(例如,远景立体相机对)可用于基于深度的对象检测,特别是对于尚未训练神经网络的对象。在至少一个实施例中,远程相机898也可以用于对象检测和分类,以及基本对象跟踪。
在至少一个实施例中,任何数量的立体相机868也可以被包括在前置配置中。在至少一个实施例中,立体相机868中的一个或更多个可以包括集成控制单元,该集成控制单元包括可扩展处理单元,其可以提供可编程逻辑(“FPGA”)和具有集成的控制器局域网(“CAN”)的多核微处理器或单芯片上的以太网接口。在至少一个实施例中,这样的单元可用于生成车辆800的环境的3D地图,包括图像中所有点的距离估计。在至少一个实施例中,立体相机868中的一个或更多个可以包括但不限于紧凑型立体视觉传感器,该传感器可以包括但不限于两个相机镜头(左右各一个)和图像处理芯片,其可以测量从车辆800到目标对象的距离,并使用生成的信息(例如,元数据)来激活自主紧急制动和车道偏离警告功能。在至少一个实施例中,除了这里描述的那些之外,或者替代地,可以使用其他类型的立体相机868。
在至少一个实施例中,具有包括车辆800侧面的环境部分的视野的相机(例如,侧视相机)可用于环视,提供用于创建和更新占用网格的信息,以及生成侧面碰撞警告。例如,在至少一个实施例中,环绕相机874(例如,如图8B所示的四个环绕相机)可以定位在车辆800上。在至少一个实施例中,环绕相机874可以包括但不限于,任何数量的广角相机、鱼眼相机、360度相机和/或类似相机和其组合。例如,在至少一个实施例中,四个鱼眼相机可以定位在车辆800的前面、后面和侧面。在至少一个实施例中,车辆800可以使用三个环绕相机874(例如,左、右和后),并且可以利用一个或更多个其他相机(例如,前置相机)作为第四个环视相机。
在至少一个实施例中,车厢相机875具有覆盖车辆车厢的驾驶员和/或乘客区域的视野。
在至少一个实施例中,具有包括车辆800后面的环境部分的视野的相机(例如,后视相机)可用于停车辅助、环视、后方碰撞警告以及创建和更新占用网格。在至少一个实施例中,可以使用多种相机,包括但不限于也适合作为前置相机的相机(例如,远程相机898和/或中程相机876、立体相机868、红外相机872等),如本文所述。
在一些实施例中,推理和/或训练逻辑915用于使用如上所述处理的图像数据来执行推理和/或训练操作。关于推理和/或训练逻辑915的细节在本文中结合图9A和/或图9B提供。
图8C是示出了根据至少一个实施例的用于图8A的自主车辆800的示例***架构的框图。在至少一个实施例中,图8C中的车辆800的部件、特征和***中的每一个都被示为经由总线802连接。在至少一个实施例中,总线802可以包括但不限于CAN数据接口(或者在本文中称为“CAN总线”)。在至少一个实施例中,CAN可以是车辆800内部的网络,用于帮助控制车辆800的各种特征和功能,例如制动器的致动、加速、制动、转向、挡风玻璃刮水器等。在至少一个在实施例中,总线802可以被配置成具有数十个甚至数百个节点,每个节点具有其自己的唯一标识符(例如,CAN ID)。在至少一个实施例中,可以读取总线802以找到方向盘角度、地面速度、引擎每分钟转数(“RPM”)、按钮位置和/或其他车辆状态指示符。在至少一个实施例中,总线802可以是符合ASIL B的CAN总线。
在至少一个实施例中,除了CAN之外或替代CAN,可以使用FlexRay和/或以太网协议。在至少一个实施例中,可以有任意数量的总线形成总线802,其可以包括但不限于零个或更多个CAN总线、零个或更多个FlexRay总线、零个或更多个以太网总线和/或零个或更多个其他类型的使用不同协议的总线。在至少一个实施例中,两条或更多条总线可用于执行不同的功能,和/或可用于冗余。例如,第一总线可用于碰撞避免功能,而第二总线可用于致动控制。在至少一个实施例中,总线802的每条总线可以与车辆800的任何部件通信,并且总线802的两条或更多条总线可以与对应部件通信。在至少一个实施例中,任何数量的片上***(“SoC(s)”)804(例如SoC 804(A)和SoC 804(B))中的每一个、控制器836中的每一个和/或车辆内的每个计算机可以访问相同的输入数据(例如,来自车辆800的传感器的输入),并且可以连接到公共总线,例如CAN总线。
在至少一个实施例中,车辆800可以包括一个或更多个控制器836,例如本文关于图8A描述的那些。在至少一个实施例中,控制器836可用于多种功能。在至少一个实施例中,控制器836可以耦合到车辆800的各种其他部件和***中的任何一个,并且可以用于车辆800的控制、车辆800的人工智能、车辆800的信息娱乐和/或其他功能。
在至少一个实施例中,车辆800可以包括任意数量的SoC 804。在至少一个实施例中,每个SoC 804可以包括但不限于中央处理单元(“CPU”)806、图形处理单元(“GPU”)808、处理器810、高速缓存812、加速器814、数据存储816和/或未示出的其他组件和特征。在至少一个实施例中,SoC 804可用于在各种平台和***中控制车辆800。例如,在至少一个实施例中,SoC 804可以组合在具有高清(“HD”)地图822的***(例如,车辆800的***)中,其可以通过网络接口824从一个或更多个服务器(图8C中未示出)获得地图刷新和/或更新。
在至少一个实施例中,CPU 806可以包括CPU集群或CPU复合体(或者在本文中称为“CCPLEX”)。在至少一个实施例中,CPU 806可以包括多个核心和/或二级(“L2”)高速缓存。例如,在至少一个实施例中,CPU806可以在一致的多处理器配置中包括八个核心。在至少一个实施例中,CPU 806可以包括四个双核集群,其中每个集群具有专用的L2高速缓存(例如,2兆字节(MB)的L2高速缓存)。在至少一个实施例中,CPU 806(例如,CCPLEX)可以被配置为支持同时的集群操作,使得CPU 806的集群的任何组合能够在任何给定时间处于活动状态。
在至少一个实施例中,一个或更多个CPU 806可以实现电源管理能力,其包括但不限于以下特征中的一个或更多个:可以在空闲时自动对各个硬件块进行时钟门控以保存动态功率;当此类核心由于执行等待中断(Wait for Interrupt,“WFI”)/等待事件(Wait forEvent,“WFE”)指令而未主动执行指令时,每个核心时钟可以被门控;每个核心都可以独立地进行功率门控;当所有核心都被时钟门控或功率门控时,每个核心集群可以独立地被时钟门控;和/或当所有核心都被功率门控时,每个核心集群可以独立地被功率门控。在至少一个实施例中,CPU 806可以进一步实现一种用于管理功率状态的增强算法,其中指定了允许的功率状态和预期的唤醒时间,并且硬件/微代码确定核心、集群和CCPLEX进入哪一个最佳功率状态。在至少一个实施例中,处理核心可以支持软件中简化的功率状态进入序列,其中工作被卸载到微代码。
在至少一个实施例中,GPU 808可以包括集成的GPU(或者在本文中称为“iGPU”)。在至少一个实施例中,GPU 808可以是可编程的并且对于并行工作负载可能是有效的。在至少一个实施例中,GPU 808可以使用增强的张量指令集。在至少一个实施例中,GPU 808可以包括一个或更多个流式微处理器,其中每个流式微处理器可以包括一级(“L1”)高速缓存(例如,具有至少96KB存储容量的L1高速缓存),并且两个或更多个流式微处理器可以共享一个L2高速缓存(例如,一个具有512KB存储容量的L2高速缓存)。在至少一个实施例中,GPU808可以包括至少八个流式微处理器。在至少一个实施例中,GPU 808可以使用计算应用编程接口(API)。在至少一个实施例中,GPU 808可以使用一个或更多个并行计算平台和/或编程模型(例如,NVIDIA的CUDA模型)。
在至少一个实施例中,在汽车和嵌入式用例中,GPU 808中的一个或更多个可以被功率优化以获得最佳性能。例如,在至少一个实施例中,GPU808可以制造在Fin场效应晶体管(“FinFET”)电路上。在至少一个实施例中,每个流式微处理器可以并入被划分为多个块的多个混合精度处理核心。例如,但不限于,64个PF32核心和32个PF64核心可以划分为四个处理块。在至少一个实施例中,可以为每个处理块分配16个FP32核心、8个FP64核心、16个INT32核心、两个用于深度学习矩阵算术的混合精度NVIDIA张量核心、零级(“L0”)指令高速缓存、线程束(warp)调度器、分派单元和/或64KB寄存器文件。在至少一个实施例中,流式微处理器可以包括独立的并行整数和浮点数据路径,以通过计算和寻址计算的混合来提供工作负载的有效执行。在至少一个实施例中,流式微处理器可以包括独立的线程调度能力,用于实现并行线程之间的更细粒度的同步和协作。在至少一个实施例中,流式微处理器可以包括组合的L1数据高速缓存和共享存储器单元,以便在简化编程的同时提高性能。
在至少一个实施例中,一个或更多个GPU 808可以包括高带宽存储器(“HBM”)和/或16GB高带宽存储器第二代(“HBM2”)存储器子***,以在某些示例中提供约为900GB/秒的峰值存储器带宽。在至少一个实施例中,除HBM存储器之外或替代HBM存储器,还可以使用同步图形随机存取存储器(“SGRAM”),例如图形双倍数据速率类型五同步随机存取存储器(“GDDR5”)。
在至少一个实施例中,GPU 808可以包括统一存储器技术。在至少一个实施例中,地址转换服务(“ATS”)支持可用于允许GPU 808直接访问CPU 806页表。在至少一个实施例中,当GPU 808存储器管理单元(“MMU”)的GPU经历未命中时,地址转换请求可以被发送到CPU 806。作为响应,在至少一个实施例中,CPU 806中的2个CPU可以在其页表中查找地址的虚拟到物理映射并且将转换传输回GPU 808。在至少一个实施例中,统一存储器技术可以允许用于CPU 806和GPU 808两者的存储器的单个统一虚拟地址空间,从而简化GPU 808编程和将应用移植到GPU 808。
在至少一个实施例中,GPU 808可以包括任意数量的访问计数器,这些访问计数器可以跟踪GPU 808对其他处理器的存储器的访问频率。在至少一个实施例中,访问计数器可以帮助确保将存储器页面移动到最频繁地访问页面的处理器的物理存储器,从而提高处理器之间共享的存储器范围的效率。
在至少一个实施例中,SoC 804中的一个或更多个可以包括任意数量的高速缓存812,包括这里描述的那些。例如,在至少一个实施例中,高速缓存812可以包括对CPU 806和GPU 808都可用的三级(“L3”)高速缓存(例如,其连接到CPU 806和GPU 808)。在至少一个实施例中,高速缓存812可以包括回写高速缓存,其可以例如通过使用高速缓存一致性协议(例如,MEI、MESI、MSI等)来跟踪线路的状态。在至少一个实施例中,L3高速缓存可以包括4MB或更多的存储器,这取决于实施例,尽管可以使用更小的高速缓存大小。
在至少一个实施例中,SoC 804中的一个或更多个可以包括一个或更多个加速器814(例如,硬件加速器、软件加速器或其组合)。在至少一个实施例中,SoC 804可以包括硬件加速集群,该集群可以包括优化的硬件加速器和/或大的片上存储器。在至少一个实施例中,大的片上存储器(例如,4MB的SRAM)可以使硬件加速集群能够加速神经网络和其他计算。在至少一个实施例中,硬件加速集群可用于补充GPU 808并卸载GPU 808的一些任务(例如,以释放GPU 808的更多周期用于执行其他任务)。在至少一个实施例中,加速器814可以用于足够稳定以经受加速的目标工作负载(例如,感知、卷积神经网络(“CNN”)、循环神经网络(“RNN”)等)。在至少一个实施例中,CNN可以包括基于区域的或区域卷积神经网络(“RCNN”)和快速RCNN(例如,如用于对象检测)或其他类型的CNN。
在至少一个实施例中,加速器814(例如,硬件加速集群)可以包括一个或更多个深度学习加速器(“DLA”)。在至少一个实施例中,DLA可以包括但不限于一个或更多个张量处理单元(“TPU”),其可以被配置为为深度学习应用和推理提供每秒额外的十万亿次运算。在至少一个实施例中,TPU可以是被配置为执行图像处理功能(例如,用于CNN、RCNN等)并针对执行图像处理功能而优化的加速器。在至少一个实施例中,DLA可以进一步针对特定的一组神经网络类型和浮点运算以及推理进行优化。在至少一个实施例中,DLA的设计可以提供比典型的通用GPU更高的每毫米性能,并且通常大大超过CPU的性能。在至少一个实施例中,TPU可以执行多种功能,包括单实例卷积功能(例如支持特征和权重的INT8、INT16和FP16数据类型),以及后处理器功能。在至少一个实施例中,DLA可以在针对多种功能中的任何一种的处理或未处理的数据上快速有效地执行神经网络,尤其是CNN,例如包括但不限于:用于使用来自相机传感器的数据进行对象识别和检测的CNN;用于使用来自相机传感器的数据进行距离估计的CNN;用于使用来自麦克风的数据进行紧急车辆检测和识别和检测的CNN;用于使用来自相机传感器的数据进行面部识别和车主识别的CNN;和/或用于安全和/或安全相关事件的CNN。
在至少一个实施例中,DLA可以执行GPU 808的任何功能,并且通过使用推理加速器,例如,设计者可以针对任何功能将DLA或GPU 808作为目标。例如,在至少一个实施例中,设计者可以将CNN的处理和浮点运算集中在DLA上,而将其他功能留给GPU 808和/或加速器814。
在至少一个实施例中,加速器814可包括可编程视觉加速器(“PVA”),其可替代地在本文中被称为计算机视觉加速器。在至少一个实施例中,PVA可被设计和配置为加速用于高级驾驶员辅助***(“ADAS”)838、自动驾驶、增强现实(“AR”)应用和/或虚拟现实(“VR”)应用的计算机视觉算法。在至少一个实施例中,PVA可以提供性能和灵活性之间的平衡。例如,在至少一个实施例中,每个PVA可以包括,例如但不限于,任何数量的精简指令集计算机(“RISC”)核心、直接存储器访问(“DMA”)和/或任何数量的向量处理器。
在至少一个实施例中,RISC核心可以与图像传感器(例如,本文所述的任何相机的图像传感器)、图像信号处理器等交互。在至少一个实施例中,每个RISC核心可以包括任何数量的存储器。在至少一个实施例中,RISC核心可以使用多种协议中的任何一种,这取决于实施例。在至少一个实施例中,RISC核心可以执行实时操作***(“RTOS”)。在至少一个实施例中,RISC核心可以使用一个或更多个集成电路器件、专用集成电路(“ASIC”)和/或存储器器件来实现。例如,在至少一个实施例中,RISC核心可以包括指令高速缓存和/或紧密耦合的RAM。
在至少一个实施例中,DMA可以使PVA的组件能够独立于CPU 806访问***存储器。在至少一个实施例中,DMA可以支持用于向PVA提供优化的任何数量的特征,包括但不限于,支持多维寻址和/或循环寻址。在至少一个实施例中,DMA可以支持多达六个或更多个寻址维度,其可以包括但不限于块宽度、块高度、块深度、水平块步进、垂直块步进和/或深度步进。
在至少一个实施例中,向量处理器可以是可编程处理器,其可以被设计为有效且灵活地执行计算机视觉算法的编程并提供信号处理能力。在至少一个实施例中,PVA可以包括PVA核心和两个向量处理子***分区。在至少一个实施例中,PVA核心可以包括处理器子***、DMA引擎(例如,两个DMA引擎)和/或其他***设备。在至少一个实施例中,向量处理子***可以作为PVA的主要处理引擎工作,并且可以包括向量处理单元(“VPU”)、指令高速缓存和/或向量存储器(例如,“VMEM”)。在至少一个实施例中,VPU核心可以包括数字信号处理器,例如单指令、多数据(“SIMD”)、超长指令字(“VLIW”)数字信号处理器。在至少一个实施例中,SIMD和VLIW的组合可以提高吞吐量和速度。
在至少一个实施例中,每个向量处理器可以包括指令高速缓存并且可以耦合到专用存储器。结果,在至少一个实施例中,每个向量处理器可以被配置为独立于其他向量处理器执行。在至少一个实施例中,在特定PVA中包括的向量处理器可以被配置为采用数据并行性。例如,在至少一个实施例中,在单个PVA中包括的多个向量处理器可以执行通用计算机视觉算法,但是在图像的不同区域上。在至少一个实施例中,在特定PVA中包括的向量处理器可以同时对一个图像执行不同的计算机视觉算法,或者甚至对连续图像或图像的部分执行不同的算法。在至少一个实施例中,除其他外,任何数量的PVA可以被包括在硬件加速集群中并且任何数量的向量处理器可以被包括在每个PVA中。在至少一个实施例中,PVA可以包括附加的纠错码(“ECC”)存储器,以增强整个***的安全性。
在至少一个实施例中,加速器814可以包括片上计算机视觉网络和静态随机存取存储器(“SRAM”),用于为加速器814提供高带宽、低延迟的SRAM。在至少一个实施例中,片上存储器可以包括至少4MB的SRAM,包括例如但不限于8个可以由PVA和DLA两者访问的可现场配置的存储器块。在至少一个实施例中,每对存储器块可以包括高级***总线(“APB”)接口、配置电路、控制器和多路复用器。在至少一个实施例中,可以使用任何类型的存储器。在至少一个实施例中,PVA和DLA可以经由向PVA和DLA提供对存储器的高速访问的主干来访问存储器。在至少一个实施例中,主干可以包括将PVA和DLA互连到存储器(例如,使用APB)的片上计算机视觉网络。
在至少一个实施例中,片上计算机视觉网络可以包括接口,该接口在传输任何控制信号/地址/数据之前确定PVA和DLA都提供就绪和有效信号。在至少一个实施例中,接口可以提供用于传输控制信号/地址/数据的分离的阶段和分离的通道,以及用于连续数据传输的突发型通信。在至少一个实施例中,接口可以符合国际标准化组织(“ISO”)26262或国际电工委员会(“IEC”)61508标准,尽管可以使用其他标准和协议。
在至少一个实施例中,SoC 804中的一个或更多个可以包括实时光线追踪硬件加速器。在至少一个实施例中,实时光线追踪硬件加速器可用于快速有效地确定对象的位置和范围(例如,在世界模型内),以生成实时可视化模拟,用于雷达信号解释,用于声音传播合成和/或分析,用于声呐***的模拟,用于一般波传播模拟,用于与LIDAR数据进行比较以用于定位和/或其他功能,和/或用于其他用途。
在至少一个实施例中,加速器814可以具有用于自主驾驶的广泛用途。在至少一个实施例中,PVA可用于ADAS和自主车辆中的关键处理阶段。在至少一个实施例中,PVA的能力非常适合需要可预测处理、低功耗和低延迟的算法域。换句话说,PVA在半密集或密集的常规计算上表现良好,即使在可能需要低延迟和低功耗的可预测运行时间的小型数据集上也是如此。在至少一个实施例中,例如在车辆800中,PVA可能被设计为运行经典的计算机视觉算法,因为它们在对象检测和整数数学运算方面可以是有效的。
例如,根据技术的至少一个实施例,PVA用于执行计算机立体视觉。在至少一个实施例中,在一些示例中可以使用基于半全局匹配的算法,尽管这不旨在进行限制。在至少一个实施例中,用于3-5级自动驾驶的应用程序使用动态运动估计/立体匹配(例如,来自运动的结构、行人识别、车道检测等)。在至少一个实施例中,PVA可以对来自两个单目相机的输入执行计算机立体视觉功能。
在至少一个实施例中,PVA可用于执行密集光流。例如,在至少一个实施例中,PVA可以处理原始RADAR数据(例如,使用4D快速傅里叶变换)以提供处理后的RADAR数据。在至少一个实施例中,PVA用于飞行时间(time of flight)深度处理,例如通过处理原始飞行时间数据以提供经处理的飞行时间数据。
在至少一个实施例中,DLA可用于运行任何类型的网络以增强控制和驾驶安全性,包括例如但不限于输出每个对象检测的置信度度量的神经网络。在至少一个实施例中,置信度可以被表示或解释为概率,或提供每个检测与其他检测相比的相对“权重”。在至少一个实施例中,置信度度量使***能够做出关于哪些检测应该被视为真肯定检测而不是假肯定检测的进一步决定。在至少一个实施例中,***可以为置信度设置阈值并且仅将超过阈值的检测视为真肯定检测。在使用自动紧急制动(“AEB”)***的实施例中,假肯定检测将导致车辆自动执行紧急制动,这显然是不希望的。在至少一个实施例中,高置信度的检测可以被认为是AEB的触发因素。在至少一个实施例中,DLA可以运行用于回归置信值的神经网络。在至少一个实施例中,神经网络可以将至少一些参数子集作为其输入,例如边界框尺寸、获得的地平面估计(例如,从另一个子***)、来自IMU传感器866的与车辆800方位、距离、从神经网络和/或其他传感器(例如,激光雷达传感器864或雷达传感器860)获得的对象的3D位置估计相关的输出,等等。
在至少一个实施例中,SoC 804中的一个或更多个可以包括一个或更多个数据存储816(例如,存储器)。在至少一个实施例中,数据存储816可以是SoC 804的片上存储器,其可以存储要在GPU 808和/或DLA上执行的神经网络。在至少一个实施例中,数据存储816的容量可以足够大以存储神经网络的多个实例以实现冗余和安全。在至少一个实施例中,数据存储816可以包括L2或L3高速缓存。
在至少一个实施例中,SoC 804中的一个或更多个可以包括任意数量的处理器810(例如,嵌入式处理器)。在至少一个实施例中,处理器810可以包括启动和电源管理处理器,该处理器可以是专用处理器和子***以处理启动电源和管理功能以及相关的安全实施。在至少一个实施例中,启动和电源管理处理器可以是SoC 804的启动序列的一部分并且可以提供运行时电源管理服务。在至少一个实施例中,启动电源和管理处理器可以提供时时钟和电压编程、***低功率状态转换的辅助、SoC 804热和温度传感器的管理和/或SoC 804功率状态的管理。在至少一个实施例中,每个温度传感器可以实现为环形振荡器,其输出频率与温度成比例,并且SoC 804可以使用环形振荡器来检测CPU 806、GPU 808和/或加速器814的温度。在至少一个实施例中,如果确定温度超过阈值,则启动和电源管理处理器可以进入温度故障例程并且将SoC 804置于较低功率状态和/或将车辆800置于司机安全停止模式(例如,使车辆800进入安全停止)。
在至少一个实施例中,处理器810可以进一步包括一组嵌入式处理器,其可以用作音频处理引擎,其可以是能够通过多个接口以及广泛而灵活的音频I/O接口实现对多声道音频的完全硬件支持的音频子***。在至少一个实施例中,音频处理引擎是具有带专用RAM的数字信号处理器的专用处理器核心。
在至少一个实施例中,处理器810可以进一步包括始终开启的处理器引擎,其可以提供必要的硬件特征来支持低功率传感器管理和唤醒用例。在至少一个实施例中,始终开启的处理器引擎可以包括但不限于处理器核心、紧密耦合的RAM、支持***设备(例如,定时器和中断控制器)、各种I/O控制器***设备和路由逻辑。
在至少一个实施例中,处理器810可以进一步包括安全集群引擎,该安全集群引擎包括但不限于用于处理汽车应用的安全管理的专用处理器子***。在至少一个实施例中,安全集群引擎可以包括但不限于两个或更多个处理器核心、紧密耦合的RAM、支持***设备(例如,定时器、中断控制器等)和/或路由逻辑。在安全模式中,在至少一个实施例中,两个或更多个核心可以在锁步模式下操作并且用作具有比较逻辑的单个核心以检测它们的操作之间的任何差异。在至少一个实施例中,处理器810还可以包括实时相机引擎,其可以包括但不限于用于处理实时相机管理的专用处理器子***。在至少一个实施例中,处理器810可以进一步包括高动态范围信号处理器,其可以包括但不限于图像信号处理器,该图像信号处理器是作为相机处理管线的一部分的硬件引擎。
在至少一个实施例中,处理器810可以包括视频图像合成器,该视频图像合成器可以是处理块(例如,在微处理器上实现),其实现视频回放应用所需的视频后处理功能以产生播放器窗口的最终图像。在至少一个实施例中,视频图像合成器可以对广角相机870、环绕相机874和/或车厢内监控相机传感器执行镜头失真校正。在至少一个实施例中,车厢内监控相机传感器优选地由在SoC 804的另一个实例上运行的神经网络监控,被配置为识别车厢内事件并相应地响应。在至少一个实施例中,车厢内***可以执行但不限于唇读以激活蜂窝服务和拨打电话、口述电子邮件、改变车辆的目的地、激活或改变车辆的信息娱乐***和设置,或提供语音激活的网上冲浪。在至少一个实施例中,当车辆在自主模式下运行时某些功能对驾驶员可用,否则被禁用。
在至少一个实施例中,视频图像合成器可以包括用于空间和时间降噪两者的增强的时间降噪。例如,在视频中发生运动的至少一个实施例中,降噪适当地对空间信息进行加权,降低由相邻帧提供的信息的权重。在图像或图像的一部分不包括运动的至少一个实施例中,由视频图像合成器执行的时间降噪可以使用来自先前图像的信息来降低当前图像中的噪声。
在至少一个实施例中,视频图像合成器还可以被配置为对输入的立体镜头帧执行立体校正。在至少一个实施例中,当操作***桌面在使用中时,视频图像合成器还可用于用户界面合成,并且不需要GPU 808连续地渲染新表面。在至少一个实施例中,当GPU 808被通电并且活跃地进行3D渲染时,可以使用视频图像合成器来卸载GPU 808以提高性能和响应性。
在至少一个实施例中,SoC 804中的一个或更多个Soc还可以包括用于从相机、高速接口和/或可用于相机和相关像素输入功能的视频输入块接收视频和输入的移动工业处理器接口(“MIPI”)相机串行接口。在至少一个实施例中,SoC 804中的一个或更多个可以进一步包括输入/输出控制器,该控制器可以由软件控制并且可以用于接收未提交给特定角色的I/O信号。
在至少一个实施例中,SoC 804中的一个或更多个还可以包括范围广泛的***接口,以实现与***设备、音频编码器/解码器(“编解码器”)、电源管理和/或其他设备的通信。在至少一个实施例中,SoC 804可用于处理来自相机(例如,通过千兆多媒体串行链路和以太网通道连接)的数据、来自传感器(例如,LIDAR传感器864、RADAR传感器860等,其可以通过以太网信道连接)的数据、来自总线802的数据(例如,车辆800的速度、方向盘位置等)、来自GNSS传感器858(例如,通过以太网总线或CAN总线连接)的数据等。在至少一个实施例中,SoC 804中的一个或更多个SoC还可以包括专用的高性能大容量存储控制器,其可以包括它们自己的DMA引擎,并且可以用于将CPU 806从例行数据管理任务释放出来。
在至少一个实施例中,SoC(s)804可以是具有跨越自动化级别3-5的灵活架构的端到端平台,从而提供了一种全面的功能安全架构,该架构充分利用和有效利用了计算机视觉和ADAS技术以实现多样性和冗余,并为灵活、可靠的驾驶软件堆栈以及深度学***台。在至少一个实施例中,SoC 804可以比传统***更快、更可靠,甚至更节能和更节省空间。例如,在至少一个实施例中,当与CPU 806、GPU 808和数据存储816结合时,加速器814可以为3-5级自主车辆提供快速、高效的平台。
在至少一个实施例中,计算机视觉算法可以在CPU上执行,CPU可以使用诸如C之类的高级编程语言来配置,以跨多种视觉数据执行多种处理算法。然而,在至少一个实施例中,CPU经常不能满足许多计算机视觉应用的性能要求,例如与执行时间和功耗相关的那些。在至少一个实施例中,许多CPU无法实时执行复杂的对象检测算法,这些算法用于车载ADAS应用和实际的3-5级自主车辆。
本文所述的实施例允许同时和/或顺序地执行多个神经网络,并且允许将结果组合在一起以实现3-5级自主驾驶功能。例如,在至少一个实施例中,在DLA或离散GPU(例如,GPU 820)上执行的CNN可以包括文本和字识别,从而允许阅读和理解交通标志,包括神经网络并未针对其具体进行过训练的标志。在至少一个实施例中,DLA还可以包括能够识别、解释和提供对标志的语义理解,并将该语义理解传递给在CPU复合体上运行的路径规划模块的神经网络。
在至少一个实施例中,多个神经网络可以同时运行,如3、4或5级驾驶。例如,在至少一个实施例中,说明“小心:闪光灯指示结冰情况”的警告标志连同电灯一起可以由多个神经网络独立地或共同地解释。在至少一个实施例中,这种警告标志本身可以被第一个部署的神经网络(例如,经训练的神经网络)识别为交通标志,文本“闪光灯指示结冰情况”可以由第二部署的神经网络解释,它通知车辆的路径规划软件(优选在CPU复合体上执行)当检测到闪光灯时,存在结冰情况。在至少一个实施例中,可以通过在多个帧上运行第三部署的神经网络来识别闪光灯,通知车辆的路径规划软件存在(或不存在)闪光灯。在至少一个实施例中,所有三个神经网络可以同时运行,例如在DLA内和/或GPU 808上。
在至少一个实施例中,用于面部识别和车主识别的CNN可以使用来自相机传感器的数据来识别车辆800的授权驾驶员和/或车主的存在。在至少一个实施例中,当车主接近驾驶员车门并打开灯时,始终开启传感器处理引擎可用于解锁车辆,并且在安全模式下,当车主离开此类车辆时,始终开启传感器处理引擎可用于禁用此类车辆。以这种方式,SoC804提供防止盗窃和/或劫车的安全性。
在至少一个实施例中,用于紧急车辆检测和识别的CNN可以使用来自麦克风896的数据来检测和识别紧急车辆警报器。在至少一个实施例中,SoC 804使用CNN来对环境和城市声音进行分类,以及对视觉数据进行分类。在至少一个实施例中,训练在DLA上运行的CNN以识别紧急车辆的相对关闭速度(例如,通过使用多普勒效应)。在至少一个实施例中,CNN还可以被训练以识别特定于车辆正在运行的本地区域的紧急车辆,如GNSS传感器858所识别的。在至少一个实施例中,当在欧洲运行时,CNN将寻求检测欧洲警报器,而在北美时,CNN将寻求仅识别北美警报器。在至少一个实施例中,一旦检测到紧急车辆,在超声波传感器862的帮助下,控制程序可用于执行紧急车辆安全例程,使车辆减速、停到路边、停车和/或空转车辆,直到紧急车辆通过。
在至少一个实施例中,车辆800可以包括CPU 818(例如,离散CPU或dCPU),其可以通过高速互连(例如,PCIe)耦合到SoC 804。例如,在至少一个实施例中,CPU 818可以包括X86处理器。CPU 818可用于执行多种功能中的任一种,例如包括仲裁ADAS传感器和SoC 804之间可能不一致的结果,和/或监控控制器836和/或片上信息娱乐***(“信息娱乐SoC”)830的状态和健康状况。
在至少一个实施例中,车辆800可以包括GPU 820(例如,离散GPU或dGPU),其可以经由高速互连(例如,NVIDIA的NVLINK信道)耦合到SoC 804。在至少一个实施例中,GPU 820可以提供额外的人工智能功能,例如通过执行冗余和/或不同的神经网络,并且可以用于至少部分地基于来自车辆800的传感器的输入(例如,传感器数据)来训练和/或更新神经网络。
在至少一个实施例中,车辆800还可以包括网络接口824,其可以包括但不限于无线天线826(例如,用于不同通信协议的一个或更多个无线天线,例如蜂窝天线、蓝牙天线等)。在至少一个实施例中,网络接口824可用于实现到互联网云服务(例如,与服务器和/或其他网络设备)、与其他车辆和/或与计算设备(例如,乘客的客户端设备)的无线连接。在至少一个实施例中,为了与其他车辆通信,可以在车辆800和另一车辆之间建立直接链路和/或可以建立间接链路(例如,跨网络和通过互联网)。在至少一个实施例中,可以使用车辆到车辆的通信链路来提供直接链路。在至少一个实施例中,车辆到车辆通信链路可以向车辆800提供关于车辆800附近的车辆(例如,车辆800前面、侧面和/或后面的车辆)的信息。在至少一个实施例中,这样的前述功能可以是车辆800的协作自适应巡航控制功能的一部分。
在至少一个实施例中,网络接口824可以包括提供调制和解调功能并使控制器836能够通过无线网络进行通信的SoC。在至少一个实施例中,网络接口824可以包括射频前端,用于从基带上变频到射频,以及从射频下变频到基带。在至少一个实施例中,可以以任何技术上可行的方式来执行频率转换。例如,可以通过众所周知的过程和/或使用超外差过程来执行频率转换。在至少一个实施例中,射频前端功能可以由单独的芯片提供。在至少一个实施例中,网络接口可以包括用于通过LTE、WCDMA、UMTS、GSM、CDMA2000、蓝牙、蓝牙LE、Wi-Fi、Z-Wave、ZigBee、LoRaWAN和/或其他无线协议进行通信的无线功能。
在至少一个实施例中,车辆800可以进一步包括数据存储828,其可以包括但不限于片外(例如,片外SoC 804)存储。在至少一个实施例中,数据存储828可以包括但不限于一个或更多个存储元件,包括RAM、SRAM、动态随机存取存储器(“DRAM”)、视频随机存取存储器(“VRAM”)、闪存、硬盘和/或可以存储至少一位数据的其他组件和/或设备。
在至少一个实施例中,车辆800还可以包括GNSS传感器858(例如,GPS和/或辅助GPS传感器),以辅助地图绘制、感知、占用网格生成和/或路径规划功能。在至少一个实施例中,可以使用任何数量的GNSS传感器858,例如包括但不限于使用具有以太网到串行(例如,RS-232)桥的通用串行总线(“USB”)的GPS。
在至少一个实施例中,车辆800还可以包括RADAR传感器860。在至少一个实施例中,RADAR传感器860可以被车辆800用于远程车辆检测,即使在黑暗和/或恶劣的天气条件下。在至少一个实施例中,RADAR功能安全等级可以是ASIL B。在至少一个实施例中,RADAR传感器860可以使用CAN总线和/或总线802(例如,以传输由RADAR传感器860生成的数据)用于控制和访问对象跟踪数据,在某些示例中可以访问以太网通道以访问原始数据。在至少一个实施例中,可以使用多种RADAR传感器类型。例如但不限于,RADAR传感器860可适用于前、后和侧面RADAR使用。在至少一个实施例中,RADAR传感器860中的一个或更多个传感器是脉冲多普勒RADAR传感器。
在至少一个实施例中,RADAR传感器860可以包括不同的配置,例如具有窄视野的远程、具有宽视野的短程、短程侧面覆盖等。至少在一个实施例中,远程RADAR可用于自适应巡航控制功能。在至少一个实施例中,远程RADAR***可以提供通过两次或更多次独立扫描实现的宽视野,例如在250m(米)范围内。在至少一个实施例中,RADAR传感器860可以帮助区分静态对象和移动对象,并且可以被ADAS***838用于紧急制动辅助和前方碰撞警告。在至少一个实施例中,在远程RADAR***中包括的传感器860可以包括但不限于具有多个(例如,六个或更多个)固定RADAR天线和高速CAN和FlexRay接口的单基地多模式RADAR。在至少一个实施例中,使用六根天线,中央四根天线可以创建聚焦波束图,旨在以更高的速度记录车辆800的周围环境,同时将相邻车道的交通干扰降至最低。在至少一个实施例中,另外两个天线可以扩大视野,使得可以快速检测进入或离开车辆800的车道的车辆。
在至少一个实施例中,中程RADAR***可以包括例如,高达160m(前)或80m(后)的范围,以及高达42度(前)或150度(后)的视野。在至少一个实施例中,短程RADAR***可以包括但不限于设计成安装在后保险杠两端的任意数量的RADAR传感器860。当安装在后保险杠的两端时,在至少一个实施例中,RADAR传感器***可以产生两个光束,它们不断地监测后方和车辆旁边的盲点。在至少一个实施例中,短程RADAR***可以在ADAS***838中用于盲点检测和/或车道变换辅助。
在至少一个实施例中,车辆800还可以包括超声波传感器862。在至少一个实施例中,可以定位在车辆800的前面、后面和/或侧面位置的超声波传感器862,可用于停车辅助和/或创建和更新占用网格。在至少一个实施例中,可以使用多种超声波传感器862,并且不同的超声波传感器862可以用于不同的检测范围(例如,2.5m、4m)。在至少一个实施例中,超声波传感器862可以在ASIL B的功能安全级别下运行。
在至少一个实施例中,车辆800可以包括LIDAR传感器864。在至少一个实施例中,LIDAR传感器864可以用于对象和行人检测、紧急制动、碰撞避免和/或其他功能。在至少一个实施例中,LIDAR传感器864可以在功能安全级别ASIL B下运行。在至少一个实施例中,车辆800可以包括多个LIDAR传感器864(例如,两个、四个、六个等),它们可以使用以太网通道(例如,以向千兆以太网交换机提供数据)。
在至少一个实施例中,LIDAR传感器864可以能够为360度视野提供对象及其距离的列表。在至少一个实施例中,例如,市售的LIDAR传感器864可以具有大约80m的广告范围,具有2cm到3cm的准确度,并且支持80Mbps以太网连接。在至少一个实施例中,可以使用一个或更多个非突出LIDAR传感器。在这样的实施例中,LIDAR传感器864可以包括可以嵌入车辆800的前面、后面、侧面和/或拐角位置的小型设备。在至少一个实施例中,在这样的实施例中,LIDAR传感器864可以提供高达120度水平和35度垂直的视野,即使对于低反射率对象也具有200m的范围。在至少一个实施例中,前置LIDAR传感器864可以被配置用于45度和135度之间的水平视野。
在至少一个实施例中,也可以使用LIDAR技术,例如3D闪光LIDAR。在至少一个实施例中,3D闪光LIDAR使用激光的闪光作为传输源,以照亮车辆800的周围环境直至大约200m。在至少一个实施例中,闪光LIDAR单元包括但不限于接收器,该接收器记录激光脉冲传输时间和每个像素上的反射光,该像素又对应于从车辆800到对象的范围。在至少一个实施例中,闪光LIDAR可以允许通过每次激光闪光生成高度准确且无失真的周围环境图像。在至少一个实施例中,可以部署四个闪光LIDAR传感器,在车辆800的每一侧一个。在至少一个实施例中,3D闪光LIDAR***包括但不限于固态3D凝视阵列LIDAR相机,除了风扇以外没有移动部件(例如,非扫描LIDAR设备)。在至少一个实施例中,闪光LIDAR设备可以使用每帧5纳秒的I类(人眼安全)激光脉冲,并且可以将反射的激光捕获为3D距离点云和共同配准的强度数据。
在至少一个实施例中,车辆800还可以包括IMU传感器866。在至少一个实施例中,IMU传感器866可以位于车辆800的后轴的中心。在一个实施例中,IMU传感器866可以包括例如但不限于加速度计、磁力计、陀螺仪、一个磁罗盘、多个磁罗盘和/或其他传感器类型。在至少一个实施例中,例如在六轴应用中,IMU传感器866可以包括但不限于加速度计和陀螺仪。在至少一个实施例中,例如在九轴应用中,IMU传感器866可以包括但不限于加速度计、陀螺仪和磁力计。
在至少一个实施例中,IMU传感器866可以实现为结合了微机电***(“MEMS”)惯性传感器、高灵敏度GPS接收器和先进的卡尔曼滤波算法来提供位置、速度和姿态的估计的微型、高性能GPS辅助惯性导航***(“GPS/INS”)。在至少一个实施例中,IMU传感器866可以使车辆800能够通过直接观察和关联从GPS到IMU传感器866的速度变化来估计其航向而不需要来自磁传感器的输入。在至少一个在实施例中,IMU传感器866和GNSS传感器858可以组合在单个集成单元中。
在至少一个实施例中,车辆800可以包括放置在车辆800中和/或周围的麦克风896。在至少一个实施例中,麦克风896可以用于紧急车辆检测和识别等。
在至少一个实施例中,车辆800还可以包括任意数量的相机类型,包括立体相机868、广角相机870、红外相机872、环绕相机874、远程照相机898、中程照相机876和/或其他相机类型。在至少一个实施例中,相机可用于捕获车辆800的整个***周围的图像数据。在至少一个实施例中,使用哪些类型的相机取决于车辆800。在至少一个实施例中,相机类型的任何组合可以用于提供车辆800周围的必要覆盖。在至少一个实施例中,部署的相机的数量可以根据实施例而不同。例如,在至少一个实施例中,车辆800可以包括六个相机、七个相机、十个相机、十二个相机或其他数量的相机。在至少一个实施例中,作为示例而非限制,相机可以支持千兆多媒体串行链路(“GMSL”)和/或千兆以太网通信。在至少一个实施例中,每个相机可以如本文先前关于图8A和图8B更详细描述的那样。
在至少一个实施例中,车辆800还可以包括振动传感器842。在至少一个实施例中,振动传感器842可以测量车辆800的部件(例如车轴)的振动。例如,在至少一个实施例中,振动的变化可以指示路面的变化。在至少一个实施例中,当使用两个或更多个振动传感器842时,振动之间的差异可用于确定路面的摩擦或滑动(例如,当振动差异在动力驱动轴和自由旋转轴之间时)。
在至少一个实施例中,车辆800可以包括ADAS***838。在至少一个实施例中,在一些示例中,ADAS***838可以包括但不限于SoC。在至少一个实施例中,ADAS***838可以包括但不限于任意数量的自主/自适应/自动巡航控制(“ACC”)***、协同自适应巡航控制(“CACC”)***、前向碰撞警告(“FCW”)***、自动紧急制动(“AEB”)***、车道偏离警告(“LDW”)***、车道保持辅助(“LKA”)***、盲点警告(“BSW”)***、后方交叉路***通警告(“RCTW”)***、碰撞警告(“CW”)***、车道居中(“LC”)***和/或其他***、特征和/或功能和其组合。
在至少一个实施例中,ACC***可以使用RADAR传感器860、LIDAR传感器864和/或任意数量的相机。在至少一个实施例中,ACC***可以包括纵向ACC***和/或横向ACC***。在至少一个实施例中,纵向ACC***监测和控制与紧邻车辆800前方的另一车辆的距离并自动调整车辆800的速度以保持与前方车辆的安全距离。在至少一个实施例中,横向ACC***执行距离保持,并在必要时建议车辆800改变车道。在至少一个实施例中,横向ACC与其他ADAS应用相关,例如LC和CW。
在至少一个实施例中,CACC***使用来自其他车辆的信息,这些信息可以通过网络接口824和/或无线天线826从其他车辆经由无线链路或间接通过网络连接(例如,通过互联网)接收。在至少一个实施例中,直接链路可以由车辆到车辆(“V2V”)通信链路提供,而间接链路可以由基础设施到车辆(“I2V”)通信链路提供。一般而言,V2V通信提供有关紧邻前方车辆的信息(例如,紧接在车辆800前方且与车辆800处于同一车道的车辆),而I2V通信提供有关更前方交通的信息。在至少一个实施例中,CACC***可以包括I2V和V2V信息源之一或两者。在至少一个实施例中,给定车辆800前方的车辆的信息,CACC***可以更可靠并且它具有改善交通流平顺性和减少道路拥堵的潜力。
在至少一个实施例中,FCW***被设计成警告驾驶员注意危险,从而这样的驾驶员可以采取纠正动作。在至少一个实施例中,FCW***使用前置相机和/或RADAR传感器860,其耦合到专用处理器、数字信号处理器(“DSP”)、FPGA和/或ASIC,其被电耦合以提供驾驶员反馈,例如显示器、扬声器和/或振动组件。在至少一个实施例中,FCW***可以提供警告,例如以声音、视觉警告、振动和/或快速制动脉冲的形式。
在至少一个实施例中,AEB***检测与另一车辆或其他对象即将发生的前向碰撞,并且如果驾驶员在指定的时间或距离参数内没有采取纠正动作,则可以自动应用制动。在至少一个实施例中,AEB***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置相机和/或RADAR传感器860。在至少一个实施例中,当AEB***检测到危险时,它通常会首先提醒驾驶员采取纠正动作以避免碰撞,并且如果驾驶员没有采取纠正动作,则AEB***可以自动施加制动以努力防止或至少减轻预测碰撞的影响。在至少一个实施例中,AEB***可以包括诸如动态制动支持和/或碰撞迫近制动之类的技术。
在至少一个实施例中,LDW***提供视觉、听觉和/或触觉警告,例如方向盘或座椅振动,以在车辆800穿过车道标记时提醒驾驶员。在至少一个实施例中,当驾驶员指示有意偏离车道时,例如通过激活转向信号,LDW***不激活。在至少一个实施例中,LDW***可以使用前置相机,其耦合到专用处理器、DSP、FPGA和/或ASIC,其被电耦合以提供驾驶员反馈,例如显示器、扬声器和/或振动组件。在至少一个实施例中,LKA***是LDW***的变体。在至少一个实施例中,如果车辆800开始离开其车道,LKA***提供转向输入或制动以纠正车辆800。
在至少一个实施例中,BSW***检测并警告驾驶员在汽车的盲区中的车辆。在至少一个实施例中,BSW***可以提供视觉、听觉和/或触觉警报以指示合并或改变车道是不安全的。在至少一个实施例中,BSW***可以在驾驶员使用转向信号时提供附加警告。在至少一个实施例中,BSW***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的背面相机和/或RADAR传感器860,其被电耦合到驾驶员反馈,例如显示器、扬声器和/或振动组件。
在至少一个实施例中,当车辆800正在倒车时,当在后置相机范围之外检测到对象时,RCTW***可以提供视觉、听觉和/或触觉通知。在至少一个实施例中,RCTW***包括AEB***以确保应用车辆制动以避免碰撞。在至少一个实施例中,RCTW***可以使用一个或更多个后向RADAR传感器860,其耦合到专用处理器、DSP、FPGA和/或ASIC,其被电耦合以提供驾驶员反馈,例如显示器、扬声器和/或振动组件。
在至少一个实施例中,传统的ADAS***可能容易出现假肯定结果,这可能会使驾驶员烦恼和分心,但通常不是灾难性的,因为传统的ADAS***会警告驾驶员并允许驾驶员决定安全状况是否真的存在并采取相应动作。在至少一个实施例中,在结果冲突的情况下,车辆800自身决定是否注意来自主计算机或辅助计算机(例如,控制器836中的第一控制器或第二控制器)的结果。例如,在至少一个实施例中,ADAS***838可以是用于向备用计算机合理性模块提供感知信息的备用和/或辅助计算机。在至少一个实施例中,备用计算机合理性监视器可以在硬件组件上运行冗余的不同软件以检测感知和动态驾驶任务中的故障。在至少一个实施例中,来自ADAS***838的输出可以提供给监控MCU。在至少一个实施例中,如果来自主计算机的输出和来自辅助计算机的输出冲突,则监控MCU确定如何协调冲突以确保安全操作。
在至少一个实施例中,主计算机可以被配置为向监控MCU提供置信度分数,指示主计算机对所选结果的置信度。在至少一个实施例中,如果该置信度分数超过阈值,则该监控MCU可以遵循该主计算机的方向,而不管该辅助计算机是否提供冲突或不一致的结果。在至少一个实施例中,在置信度分数不满足阈值并且主计算机和辅助计算机指示不同的结果(例如,冲突)的情况下,监控MCU可以在计算机之间进行仲裁以确定适当的结果。
在至少一个实施例中,监控MCU可以被配置为运行一个或更多个神经网络,该神经网络被训练和配置为至少部分地基于来自主计算机的输出和来自辅助计算机的输出来确定该辅助计算机提供错误警报的条件。在至少一个实施例中,监控MCU中的神经网络可以学习何时可以信任辅助计算机的输出,以及何时不可以。例如,在至少一个实施例中,当该辅助计算机是基于雷达的FCW***时,该监控MCU中的一个或更多个神经网络可以学习FCW***何时识别实际上不是危险的金属对象,例如触发警报的排水格栅或井盖。在至少一个实施例中,当辅助计算机是基于相机的LDW***时,监控MCU中的神经网络可以在骑自行车者或行人存在并且车道偏离实际上是最安全的操作时学习覆盖LDW。在至少一个实施例中,监控MCU可以包括适合于运行具有相关联的存储器的神经网络的DLA或GPU中的至少一个。在至少一个实施例中,监控MCU可以包括和/或被包括作为SoC 804的组件。
在至少一个实施例中,ADAS***838可以包括使用传统计算机视觉规则执行ADAS功能的辅助计算机。在至少一个实施例中,该辅助计算机可以使用经典的计算机视觉规则(if-then),并且监控MCU中神经网络的存在可以提高可靠性、安全性和性能。例如,在至少一个实施例中,多样化的实现和有意的非同一性使得整个***更容错,尤其是对由软件(或软件-硬件接口)功能引起的故障。例如,在至少一个实施例中,如果在主计算机上运行的软件中存在软件缺陷或错误,并且在辅助计算机上运行的不同软件代码提供一致的总体结果,则监控MCU可以更有信心总体结果是正确的,并且该主计算机上的软件或硬件中的缺陷不会导致重大错误。
在至少一个实施例中,ADAS***838的输出可以被馈送到主计算机的感知块和/或主计算机的动态驾驶任务块。例如,在至少一个实施例中,如果ADAS***838指示由于紧邻前方有对象而发出前向碰撞警告,则感知块可以在识别对象时使用该信息。在至少一个实施例中,辅助计算机可以具有其自己的神经网络,该神经网络经过训练并因此降低假肯定的风险,如本文所述。
在至少一个实施例中,车辆800还可包括信息娱乐SoC 830(例如,车载信息娱乐***(IVI))。尽管被图示和描述为SoC,但在至少一个实施例中,信息娱乐***SoC 830可以不是SoC,并且可以包括但不限于两个或更多个分立组件。在至少一个实施例中,信息娱乐SoC830可包括但不限于可用于提供音频(例如,音乐、个人数字助理、导航指令、新闻、广播等)、视频(例如,电视、电影、流媒体等)、电话(例如,免提通话)、网络连接性(例如,LTE、WiFi等)和/或至车辆800的信息服务(例如,导航***、后方停车辅助、无线电数据***、车辆相关信息(例如燃油液位、行驶的总距离、制动燃油液位、油位、车门打开/关闭、空气过滤器信息等))的硬件和软件的组合。例如,信息娱乐SoC 830可以包括收音机、磁盘播放器、导航***、视频播放器、USB和蓝牙连接、计算机、车载娱乐、WiFi、方向盘音频控制、免提语音控制、平视显示器(“HUD”)、HMI显示器834、远程信息处理设备、控制面板(例如,用于控制和/或与各种组件、特征和/或***交互)和/或其他组件。在至少一个实施例中,信息娱乐SoC 830还可用于向车辆800的用户提供信息(例如,视觉和/或听觉),例如来自ADAS***838的信息、自主驾驶信息(例如计划的车辆操纵)、轨迹、周围环境信息(例如,交叉口信息、车辆信息、道路信息等)和/或其他信息。
在至少一个实施例中,信息娱乐SoC 830可以包括任何数量和类型的GPU功能。在至少一个实施例中,信息娱乐SoC 830可以通过总线802与车辆800的其他设备、***和/或组件通信。在至少一个实施例中,信息娱乐SoC 830可以耦合到监控MCU,使得信息娱乐***的GPU可以在主控制器836(例如,车辆800的主和/或备用计算机)发生故障的情况下执行一些自驾驶功能。在至少一个实施例中,信息娱乐SoC 830可以将车辆800置于司机安全停车模式,如本文所述。
在至少一个实施例中,车辆800还可包括仪表组832(例如,数字仪表板、电子仪表组、数字仪表板等)。在至少一个实施例中,仪表组832可以包括但不限于控制器和/或超级计算机(例如,离散控制器或超级计算机)。在至少一个实施例中,仪表组832可以包括但不限于任何数量的一组仪表和其组合,例如速度表、燃油油位、油压、转速表、里程表、转向指示器、换档位置指示器、安全带警告灯、驻车制动警告灯、发动机故障灯、辅助约束***(例如安全气囊)信息、照明控制、安全***控制、导航信息等。在一些示例中,信息可以在信息娱乐SoC 830和仪表组832之间显示和/或共享。在至少一个实施例中,仪表组832可以作为信息娱乐SoC 830的一部分被包括在内,反之亦然。
在一些实施例中,推理和/或训练逻辑915用于使用可以如上所述生成的经变换的图像数据来执行推理和/或训练操作。
图8D是根据至少一个实施例的用于在基于云的服务器和图8A的自主车辆800之间进行通信的***878的示图。在至少一个实施例中,***878可以包括但不限于服务器878、网络890以及任何数量和类型的车辆,包括车辆800。在至少一个实施例中,服务器878可以包括但不限于多个GPU 884(A)-1084(H)(本文统称为GPU 884)、PCIe交换机882(A)-882(D)(本文统称为PCIe交换机882),和/或CPU 880(A)-880(B)(本文统称为CPU880)。在至少一个实施例中,GPU 884、CPU 880和PCIe交换机882可以与高速互连互连,例如但不限于由NVIDIA开发的NVLink接口888和/或PCIe连接886。在至少一个在实施例中,GPU 884通过NVLink和/或NVSwitch SoC连接,并且GPU 884和PCIe交换机882通过PCIe互连连接。尽管图示了八个GPU 884、两个CPU 880和四个PCIe交换机882,但这并不旨在进行限制。在至少一个实施例中,每个服务器878可以包括但不限于任意组合的任意数量的GPU 884、CPU 880和/或PCIe交换机882。例如,在至少一个实施例中,服务器878可以各自包括八个、十六个、三十二个和/或更多个GPU 884。
在至少一个实施例中,服务器878可以通过网络890和从车辆接收表示图像的图像数据,该图像显示意外或改变的道路状况,例如最近开始的道路施工。在至少一个实施例中,服务器878可以通过网络890和向车辆传输(更新的或其他方式的)神经网络892和/或地图信息894,包括但不限于关于交通和道路状况的信息。在至少一个实施例中,对地图信息894的更新可以包括但不限于对HD地图822的更新,例如关于建筑工地、坑洼、绕道、洪水和/或其他障碍物的信息。在至少一个实施例中,神经网络892和/或地图信息894可源自从环境中任何数量的车辆接收的数据中表示的新训练和/或经验,和/或至少部分基于在数据中心处执行的训练(例如,使用服务器878和/或其他服务器)。
在至少一个实施例中,服务器878可以用于至少部分地基于训练数据来训练机器学习模型(例如,神经网络)。在至少一个实施例中,训练数据可以由车辆生成,和/或可以在模拟中生成(例如,使用游戏引擎)。在至少一个实施例中,任何数量的训练数据都被标记(例如,相关联的神经网络受益于监督学习)和/或经历其他预处理。在至少一个实施例中,任何数量的训练数据都没有被标记和/或预处理(例如,在相关联的神经网络不需要监督学习的情况下)。在至少一个实施例中,一旦机器学习模型被训练,机器学习模型就可以被车辆使用(例如,通过网络890传输到车辆),和/或机器学习模型可以被服务器878使用来远程监控车辆。
在至少一个实施例中,服务器878可以从车辆接收数据并将数据应用到最新的实时神经网络以进行实时智能推理。在至少一个实施例中,服务器878可以包括深度学习超级计算机和/或由GPU 884驱动的专用AI计算机,例如由NVIDIA开发的DGX和DGX站机器。然而,在至少一个实施例中,服务器878可以包括使用CPU驱动的数据中心的深度学习基础设施。
在至少一个实施例中,服务器878的深度学习基础设施可以能够进行快速、实时的推理,并且可以使用该能力来评估和验证车辆800中的处理器、软件和/或相关联硬件的健康状况。例如,在至少一个实施例中,深度学习基础设施可以接收来自车辆800的周期性更新,例如车辆800已经在该图像序列中定位的图像和/或对象的序列(例如,通过计算机视觉和/或其他机器学习对象分类技术)。在至少一个实施例中,深度学习基础设施可以运行其自己的神经网络来识别对象并将它们与车辆800识别的对象进行比较,并且如果结果不匹配并且深度学习基础设施得出结论车辆800中的AI出现故障,则服务器878可以向车辆800发送信号,指示车辆800的故障安全计算机承担控制、通知乘客并完成安全停车操作。
在至少一个实施例中,服务器878可以包括GPU 884和一个或更多个可编程推理加速器(例如,NVIDIA的TensorRT 3设备)。在至少一个实施例中,GPU驱动的服务器和推理加速的组合可以使实时响应成为可能。在至少一个实施例中,例如在性能不太关键的情况下,由CPU、FPGA和其他处理器驱动的服务器可以用于推理。
图9A示出了用于执行与一个或更多个实施例相关联的推理和/或训练操作的推理和/或训练逻辑(硬件结构)915(例如,使用如由方法400输出的经变换的图像数据)。下面结合图9A和/或图9B提供关于推理和/或训练逻辑915的细节。
在至少一个实施例中,推理和/或训练逻辑915可以包括但不限于代码和/或数据存储901,用于存储前向和/或输出权重和/或输入/输出数据和/或其他参数,以配置在一个或更多个实施例的方面中被训练和/或用于推理的神经网络的神经元或层。在至少一个实施例中,训练逻辑915可以包括或耦合到代码和/或数据存储901以存储图代码或其他软件以控制时间和/或顺序,其中权重和/或其他参数信息将被加载以配置逻辑,包括整数和/或浮点单元(统称为算术逻辑单元(ALU))。在至少一个实施例中,诸如图形代码之类的代码将权重或其他参数信息加载到基于架构的处理器ALU中。在至少一个实施例中,代码和/或数据存储901存储在使用一个或更多个实施例的方面训练和/或推理期间的输入/输出数据和/或权重参数的前向传播期间结合一个或更多个实施例训练或使用的神经网络的每个层的权重参数和/或输入/输出数据。在至少一个实施例中,代码和/或数据存储901的任何部分都以与其他片上或片外数据存储包括在一起,包括处理器的L1、L2或L3高速缓存或***内存。
在至少一个实施例中,代码和/或数据存储901的任何部分可以在一个或更多个处理器或其他硬件逻辑设备或电路的内部或外部。在至少一个实施例中,代码和/或代码和/或数据存储901可以是高速缓存内存、动态随机可寻址内存(“DRAM”)、静态随机可寻址内存(“SRAM”)、非易失性内存(例如闪存)或其他存储。在至少一个实施例中,对代码和/或代码和/或数据存储901是在处理器的内部还是外部的选择,例如,或者由DRAM、SRAM、闪存或某种其他存储类型组成,可以取决于存储片上或片外的可用存储空间,正在执行训练和/或推理功能的延迟要求,在神经网络的推理和/或训练中使用的数据批量大小或这些因素的某种组合。
在至少一个实施例中,推理和/或训练逻辑915可以包括但不限于代码和/或数据存储905,以存储与在一个或更多个实施例的方面中被训练为和/或用于推理的神经网络的神经元或层相对应的反向和/或输出权重和/或输入/输出数据神经网络。在至少一个实施例中,在使用一个或更多个实施例的方面训练和/或推理期间,代码和/或数据存储905存储在输入/输出数据和/或权重参数的反向传播期间结合一个或更多个实施例训练或使用的神经网络的每个层的权重参数和/或输入/输出数据。在至少一个实施例中,训练逻辑915可以包括或耦合到代码和/或数据存储器905以存储图形代码或其他软件以控制时间和/或顺序,其中权重和/或其他参数信息将被加载以配置逻辑,包括整数和/或浮点单元(统称为算术逻辑单元(ALU))。在至少一个实施例中,代码,例如图形代码,基于架构将权重或其他参数信息加载到处理器ALU中代码对应的神经网络。在至少一个实施例中,代码和/或数据存储905的任何部分都以与其他片上或片外数据存储包括在一起,包括处理器的L1、L2或L3高速缓存或***内存。在至少一个实施例中,代码和/或数据存储905的任何部分可以在一个或更多个处理器或其他硬件逻辑设备或电路上的内部或外部。在至少一个实施例中,代码和/或数据存储905可以是高速缓存内存、DRAM、SRAM、非易失性内存(例如闪存)或其他存储。在至少一个实施例中,代码和/或数据存储905是在处理器的内部还是外部的选择,例如,是由DRAM、SRAM、闪存还是其他某种存储类型组成,取决于可用存储是片上还是片外,正在执行的训练和/或推理功能的延迟要求,在神经网络的推理和/或训练中使用的数据批量大小或这些因素的某种组合。
在至少一个实施例中,代码和/或数据存储901以及代码和/或数据存储905可以是分开的存储结构。在至少一个实施例中,代码和/或数据存储901以及代码和/或数据存储905可以是相同的存储结构。在至少一个实施例中,代码和/或数据存储901以及数据存储905可以是部分相同的存储结构和部分分离的存储结构。在至少一个实施例中,代码和/或数据存储901和代码和/或数据存储905的任何部分都可以与其他片上或片外数据存储包括在一起,包括处理器的L1、L2或L3高速缓存或***内存。
在至少一个实施例中,推理和/或训练逻辑915可以包括但不限于一个或更多个算术逻辑单元(“ALU”)910,包括整点和/或浮点单元,用于至少部分地基于训练和/或推理代码(例如图形代码)或由其指示来执行逻辑和/或数学运算,其结果可能会导致(例如,来自神经网络内部的层或神经元的输出值)存储在激活存储920中的激活,其是存储在代码和/或数据存储901以及代码和/或数据存储905中的输入/输出和/或权重参数数据的函数。在至少一个实施例中,激活响应于执行指令或其他代码,由ALU910执行的线性代数和/或基于矩阵的数学生成在激活存储920中存储的激活,其中存储在代码和/或数据存储905和/或代码和或/数据存储901中的权重值用作具有其他值的操作数,例如偏置值、梯度信息、动量值或其他参数或超参数,可以将任何或所有这些存储在代码和/或数据存储905或代码和/或数据存储901或其他片上或片外存储中。
在至少一个实施例中,一个或更多个处理器或其他硬件逻辑设备或电路中包括一个或更多个ALU 910,而在另一实施例中,一个或更多个ALU910可以在处理器或其他硬件逻辑设备或使用它们(例如协处理器)的电路外。在至少一个实施例中,可以将一个或更多个ALU 910包括在处理器的执行单元之内,或者以其他方式包括在由处理器的执行单元可访问的ALU组中,该处理器的执行单元可以在同一处理器内或者分布在不同类型的不同处理器之间(例如,中央处理单元、图形处理单元、固定功能单元等)。在至少一个实施例中,代码和/或数据存储901、代码和/或数据存储905以及激活存储920可以在同一处理器或其他硬件逻辑设备或电路上,而在另一实施例中,它们可以在不同的处理器或其他硬件逻辑设备或电路或相同和不同处理器或其他硬件逻辑设备或电路的某种组合中。在至少一个实施例中,激活存储920的任何部分可以与其他片上或片外数据存储包括在一起,包括处理器的L1、L2或L3高速缓存或***内存。此外,推理和/或训练代码可以与处理器或其他硬件逻辑或电路可访问的其他代码一起存储,并可以使用处理器的提取、解码、调度、执行、退出和/或其他逻辑电路来提取和/或处理。
在至少一个实施例中,激活存储920可以是高速缓存内存、DRAM、SRAM、非易失性内存(例如,闪存)或其他存储。在至少一个实施例中,激活存储920可以完全地或部分地在一个或更多个处理器或其他逻辑电路内部或外部。在至少一个实施例中,可以取决于片上或片外可用的存储,进行训练和/或推理功能的延迟要求,在推理和/或训练神经网络中使用的数据的批量大小或这些因素的某种组合,选择激活存储920是处理器的内部还是外部,例如,或者包含DRAM、SRAM、闪存或其他存储类型。在至少一个实施例中,图9A中所示的推理和/或训练逻辑915可以与专用集成电路(“ASIC”)结合使用,例如来自Google的处理单元、来自GraphcoreTM的推理处理单元(IPU)或来自Intel Corp的(例如“Lake Crest”)处理器。在至少一个实施例中,图9A所示的推理和/或训练逻辑915可与中央处理单元(“CPU”)硬件,图形处理单元(“GPU”)硬件或其他硬件(例如现场可编程门阵列(“FPGA”))结合使用。
图9B示出了根据至少一个或者更多个各种实施例的推理和/或训练逻辑915。在至少一个实施例中,推理和/或训练逻辑915可以包括但不限于硬件逻辑,其中计算资源被专用或以其他方式唯一地连同对应于神经网络内的一层或更多层神经元的权重值或其他信息一起使用。在至少一个实施例中,图9B中所示的推理和/或训练逻辑915可以与专用集成电路(ASIC)结合使用,例如来自Google的处理单元,来自GraphcoreTM的推理处理单元(IPU)或来自Intel Corp的/>(例如“Lake Crest”)处理器。在至少一个实施例中,图9B中所示的推理和/或训练逻辑915可以与中央处理单元(CPU)硬件、图形处理单元(GPU)硬件或其他硬件(例如现场可编程门阵列(FPGA))结合使用。在至少一个实施例中,推理和/或训练逻辑915包括但不限于代码和/或数据存储901以及代码和/或数据存储905,其可以用于存储代码(例如图形代码),权重值和/或其他信息,包括偏置值、梯度信息、动量值和/或其他参数或超参数信息。在图9B中所示的至少一个实施例中,代码和/或数据存储901以及代码和/或数据存储905中的每一个都分别与专用计算资源(例如计算硬件902和计算硬件906)相关联。在至少一个实施例中,计算硬件902和计算硬件906中的每一个包括一个或更多个ALU,这些ALU仅分别对存储在代码和/或数据存储901和代码和/或数据存储905中的信息执行数学函数(例如线性代数函数),执行函数的结果被存储在激活存储920中。
在至少一个实施例中,代码和/或数据存储901和905以及相应的计算硬件902和906中的每一个分别对应于神经网络的不同层,使得从代码和/或数据存储901和计算硬件902的一个“存储/计算对901/902”得到的激活提供作为代码和/或数据存储905和计算硬件906的“存储/计算对905/906”的输入,以便反映神经网络的概念组织。在至少一个实施例中,每个存储/计算对901/902和905/906可以对应于一个以上的神经网络层。在至少一个实施例中,在推理和/或训练逻辑915中可以包括在存储计算对901/902和905/906之后或与之并行的附加存储/计算对(未示出)。
图10示出了示例数据中心1000,其中可以使用至少一个实施例。在至少一个实施例中,数据中心1000包括数据中心基础设施层1010、框架层1020、软件层1030和应用层1040。
在至少一个实施例中,如图10所示,数据中心基础设施层1010可以包括资源协调器1012、分组的计算资源1014和节点计算资源(“节点C.R.”)1016(1)-1016(N),其中“N”代表任何完整的正整数。在至少一个实施例中,节点C.R.1016(1)-1016(N)可以包括但不限于任何数量的中央处理单元(“CPU”)或其他处理器(包括加速器、现场可编程门阵列(FPGA)、图形处理器等),内存设备(例如动态只读内存),存储设备(例如固态硬盘或磁盘驱动器),网络输入/输出(“NW I/O”)设备,网络交换机,虚拟机(“VM”),电源模块和冷却模块等。在至少一个实施例中,节点C.R.1016(1)-1016(N)中的一个或更多个节点C.R.可以是具有一个或更多个上述计算资源的服务器。
在至少一个实施例中,分组的计算资源1014可以包括容纳在一个或更多个机架内的节点C.R.的单独分组(未示出),或者容纳在各个地理位置的数据中心内的许多机架(也未示出)。分组的计算资源1014内的节点C.R.的单独分组可以包括可以被配置或分配为支持一个或更多个工作负载的分组的计算、网络、内存或存储资源。在至少一个实施例中,可以将包括CPU或处理器的几个节点C.R.分组在一个或更多个机架内,以提供计算资源来支持一个或更多个工作负载。在至少一个实施例中,一个或更多个机架还可以包括任何数量的电源模块、冷却模块和网络交换机,以任意组合。
在至少一个实施例中,资源协调器1012可以配置或以其他方式控制一个或更多个节点C.R.1016(1)-1016(N)和/或分组的计算资源1014。在至少一个实施例中,资源协调器1012可以包括用于数据中心1000的软件设计基础结构(“SDI”)管理实体。在至少一个实施例中,资源协调器可以包括硬件、软件或其某种组合。
在至少一个实施例中,如图10所示,框架层1020包括作业调度器1022、配置管理器1024、资源管理器1026和分布式文件***1028。在至少一个实施例中,框架层1020可以包括支持软件层1030的软件1032和/或应用程序层1040的一个或更多个应用程序1042的框架。在至少一个实施例中,软件1032或应用程序1042可以分别包括基于Web的服务软件或应用程序,例如由Amazon Web Services,Google Cloud和Microsoft Azure提供的服务或应用程序。在至少一个实施例中,框架层1020可以是但不限于一种免费和开放源软件网络应用框架,例如可以利用分布式文件***1028来进行大范围数据处理(例如“大数据”)的ApacheSparkTM(以下称为“Spark”)。在至少一个实施例中,作业调度器1022可以包括Spark驱动器,以促进对数据中心1000的各个层所支持的工作负载进行调度。在至少一个实施例中,配置管理器1024可以能够配置不同的层,例如软件层1030和包括Spark和用于支持大规模数据处理的分布式文件***1028的框架层1020。在至少一个实施例中,资源管理器1026能够管理映射到或分配用于支持分布式文件***1028和作业调度器1022的集群或分组计算资源。在至少一个实施例中,集群或分组计算资源可以包括数据中心基础设施层1010上的分组的计算资源1014。在至少一个实施例中,资源管理器1026可以与资源协调器1012协调以管理这些映射的或分配的计算资源。
在至少一个实施例中,包括在软件层1030中的软件1032可以包括由节点C.R.1016(1)-1016(N)的至少一部分,分组计算资源1014和/或框架层1020的分布式文件***1028使用的软件。一种或更多种类型的软件可以包括但不限于Internet网页搜索软件、电子邮件病毒扫描软件、数据库软件和流视频内容软件。
在至少一个实施例中,应用层1040中包括的一个或更多个应用程序1042可以包括由节点C.R.1016(1)-1016(N)的至少一部分、分组的计算资源1014和/或框架层1020的分布式文件***1028使用的一种或更多种类型的应用程序。一种或更多种类型的应用程序可以包括但不限于任何数量的基因组学应用程序,认知计算和机器学习应用程序,包括训练或推理软件,机器学习框架软件(例如PyTorch、TensorFlow、Caffe等)或其他与一个或更多个实施例结合使用的机器学习应用程序。
在至少一个实施例中,配置管理器1024、资源管理器1026和资源协调器1012中的任何一个可以基于以任何技术上可行的方式获取的任何数量和类型的数据来实现任何数量和类型的自我修改动作。在至少一个实施例中,自我修改动作可以减轻数据中心1000的数据中心操作员做出可能不好的配置决定并且可以避免数据中心的未充分利用和/或执行差的部分。
在至少一个实施例中,数据中心1000可以包括工具、服务、软件或其他资源,以根据本文所述的一个或更多个实施例来训练一个或更多个机器学习模型或者使用一个或更多个机器学习模型来预测或推理信息。例如,在至少一个实施例中,可以通过使用上文关于数据中心1000描述的软件和计算资源,根据神经网络架构通过计算权重参数来训练机器学习模型。在至少一个实施例中,通过使用通过本文所述的一种或更多种训练技术计算出的权重参数,可以使用上面与关于数据中心1000所描述的资源,使用对应于一个或更多个神经网络的经训练的机器学习模型来推理或预测信息。
在至少一个实施例中,数据中心可以使用CPU、专用集成电路(ASIC)、GPU、FPGA或其他硬件来使用上述资源来执行训练和/或推理。此外,上述的一个或更多个软件和/或硬件资源可以配置成一种服务,以允许用户训练或执行信息推理,例如图像识别、语音识别或其他人工智能服务。
在一些实施例中,推理和/或训练逻辑915用于使用如上所述生成的经变换的图像数据来执行推理和/或训练操作。
图11是说明示例性计算机***的框图,该***可以是具有互连设备和组件的***、单片***(SOC)或其一些组合1100,其形成处理器,该处理器可以包括执行单元以执行指令。在至少一个实施例中,计算机***1100可包括但不限于诸如在此处描述的实施例中描述的实施例中的组件,例如处理器1102,以采用包括逻辑在内的执行单元来执行过程数据的算法。在至少一个实施例中,计算机***1100可以包括处理器,例如处理器系列、XeonTM、/>XScaleTM和/或StrongARMTM、/>CoreTM,或者来自加利福尼亚州圣克拉拉英特尔公司的/>NervanaTM微处理器,虽然也可以使用其他***(包括具有其他微处理器的PC、工程工作站、机顶盒等)。在至少一个实施例中,计算机***1100可以执行可从华盛顿州雷德蒙市的微软公司获得的WINDOWS操作***版本,尽管其他操作***(例如UNIX和Linux)、嵌入式软件和/或图形用户界面,也可能被使用。
实施例可用于其他设备,例如手持设备和嵌入式应用。一些手持设备的示例包括蜂窝电话、互联网协议设备、数码相机、个人数字助理(“PDA”)和手持PC。在至少一个实施例中,嵌入式应用可以包括微控制器、数字信号处理器(“DSP”)、单片***、网络计算机(“NetPC”)、机顶盒、网络集线器、广域网(“WAN”)开关,或根据至少一个实施例可以执行一个或更多个指令的任何其他***。
在至少一个实施例中,计算机***1100可以包括但不限于处理器1102,其可以包括但不限于一个或更多个执行单元1108以根据本文描述的技术执行机器学习模型训练和/或推理。在至少一个实施例中,计算机***1100是单处理器桌面或服务器***,但在另一实施例中,计算机***1100可以是多处理器***。在至少一个实施例中,处理器1102可以包括但不限于复杂指令集计算机(“CISC”)微处理器、精简指令集计算(“RISC”)微处理器、超长指令字(“VLIW”)微处理器、实现指令集组合的处理器,或任何其他处理器设备,例如数字信号处理器。在至少一个实施例中,处理器1102可以耦合到处理器总线1110,该总线可以在处理器1102和计算机***1100中的其他组件之间传输数据信号。
在至少一个实施例中,处理器1102可以包括但不限于一级(“L1”)内部高速缓存内存(“高速缓存”)1104。在至少一个实施例中,处理器1102可以具有单个内部高速缓存或多级内部缓存。在至少一个实施例中,高速缓存内存可以驻留在处理器1102的外部。其他实施例还可能包括内部和外部缓存的组合,这取决于特定的实现和需求。在至少一个实施例中,寄存器堆1106可以在各种寄存器中存储不同类型的数据,包括但不限于整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器。
在至少一个实施例中,包括但不限于执行整数和浮点运算的逻辑的执行单元1108也驻留在处理器1102中。在至少一个实施例中,处理器1102还可以包括微码(“ucode”)只读内存(“ROM”),用于存储某些宏指令的微代码。在至少一个实施例中,执行单元1108可以包括处理封装指令集1109的逻辑。在至少一个实施例中,通过将封装指令集1109包括在通用处理器1102的指令集中,连同相关联的电路来执行指令,可以使用通用处理器1102中的封装数据来执行许多多媒体应用程序使用的操作。在一个或更多个实施例中,可以通过使用处理器的数据总线的全宽度来执行操作来加速和更有效地执行许多多媒体应用程序在封装数据上,这可以消除通过处理器的数据总线传输更小的数据单元以一次一个数据元素执行一个或更多个操作的需要。
在至少一个实施例中,执行单元1108还可以用于微控制器、嵌入式处理器、图形设备、数据信号处理和其他类型的逻辑电路。在至少一个实施例中,计算机***1100可以包括但不限于内存1120。在至少一个实施例中,内存1120可以实现为动态随机存取内存(“DRAM”)设备、静态随机存取内存(“SRAM”)设备、闪存设备或其他存储设备。在至少一个实施例中,内存1120可以存储由可以由处理器1102执行的数据信号表示的指令1119和/或数据1121。
在至少一个实施例中,***逻辑芯片可以耦合到处理器总线1110和内存1120。在至少一个实施例中,***逻辑芯片可以包括但不限于内存控制器集线器(“MCH”)1116,以及处理器1102可以经由处理器总线1110与MCH 1116通信。在至少一个实施例中,MCH 1116可以提供到内存1120的高带宽内存路径1118,用于指令和数据存储以及用于图形命令、数据和纹理的存储。在至少一个实施例中,MCH 1116可以在处理器1102、内存1120和计算机***1100中的其他组件之间引导数据信号并且在处理器总线1110、内存1120和***I/O 1122之间桥接数据信号。至少在一个实施例中,***逻辑芯片可以提供用于耦合到图形控制器的图形端口。在至少一个实施例中,MCH 1116可以通过高带宽内存路径1118耦合到内存1120并且图形/视频卡1112可以通过加速图形端口(“AGP”)互连1114耦合到MCH 1116。
在至少一个实施例中,计算机***1100可以使用作为专有集线器接口总线的***I/O 1122来将MCH 1116耦合到I/O控制器集线器(“ICH”)1130。在至少一个实施例中,ICH1130可以通过本地I/O总线提供与某些I/O设备的直接连接。在至少一个实施例中,本地I/O总线可以包括但不限于用于将***设备连接到内存1120、芯片组和处理器1102的高速I/O总线。示例可以包括但不限于音频控制器1129、固件集线器(“闪存BIOS”)1128、无线收发器1126、数据存储1124、包含用户输入和键盘接口1125的传统I/O控制器1123、串行扩展端口1127,例如通用串行总线(“USB”)和网络控制器1134。数据存储1124可以包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备或其他大容量存储设备。
在至少一个实施例中,图11示出了包括互连硬件设备或“芯片”的***,而在其他实施例中,图11可以示出一个示例性片上***(“SoC”)。在至少一个实施例中,设备可以与专有互连、标准化互连(例如,PCIe)或其某种组合互连。在至少一个实施例中,计算机***1100的一个或更多个组件使用计算快速链路(CXL)互连来互连。
在一些实施例中,推理和/或训练逻辑915用于使用如上所述已经生成的经变换的图像数据来执行推理和/或训练操作。下面结合图9A和/或9B提供关于推理和/或训练逻辑915的细节。在至少一个实施例中,推理和/或训练逻辑915可以用在***图11用于至少部分地基于使用神经网络训练操作计算的权重参数、神经网络函数和/或架构或本文所描述的神经网络用来推断或预测操作。
此类组件可用于生成模拟网络训练过程中的故障情况的合成数据,这可有助于提高网络性能,同时限制合成数据的量以避免过拟合。
图12是示出根据至少一个实施例的用于利用处理器1210的电子设备1200的框图。在至少一个实施例中,电子设备1200可以是例如但不限于笔记本、塔式服务器、机架服务器、刀片服务器、笔记本、台式机、平板电脑、移动设备、电话、嵌入式计算机或任何其他合适的电子设备。
在至少一个实施例中,***1200可以包括但不限于处理器1210,该处理器通过通信耦合到任何合适数量或种类的组件、***设备、模块或设备。在至少一个实施例中,处理器1210使用总线或接口耦合,例如1℃总线、***管理总线(“SMBus”)、少针脚型接口(LPC)总线、串行***接口(“SPI”))、高清晰度音频(“HDA”)总线、串行高级技术附件(“SATA”)总线、通用串行总线(“USB”)(版本1、2、3)或通用异步接收器/发送器(“UART”)总线。在至少一个实施例中,图12示出了一个***,其包括互连的硬件设备或“芯片”,而在其他实施例中,图12可以示出示例性片上***(“SoC”)。在至少一个实施例中,图12中所示的设备可以与专有互连、标准化互连(例如,PCIe)或它们的某种组合互连。在至少一个实施例中,图12的一个或更多个组件由一个或更多个组件使用计算快速链路(CXL)互连进行互连。
在至少一个实施例中,图12可以包括显示器1224、触摸屏1225、触摸板1230、近场通信单元(“NFC”)1245、传感器集线器1240、热传感器1246、高速芯片组(“EC”)1235、可信平台模块(“TPM”)1238、BIOS/固件/闪存(“BIOS、FW闪存”)1222、DSP 1260、例如固态磁盘(“SSD”)或硬盘驱动器(“HDD”)的驱动器1220、无线局域网单元(“WLAN”)1250、蓝牙单元1252、无线广域网单元(“WWAN”)1256、全球定位***(GPS)1255、相机(“USB 3.0相机”)1254(例如USB 3.0相机)和/或低功耗双倍数据速率(“LPDDR”)存储单元(“LPDDR3”)1215,例如,LPDDR3标准。这些组件中的每一个都可以以任何合适的方式实现。
在至少一个实施例中,其他组件可以通过上面讨论的组件通信地耦合到处理器1210。在至少一个实施例中,加速度计1241、环境光传感器(“ALS”)1242、罗盘1243和陀螺仪1244可以通信地耦合到传感器集线器1240。在至少一个实施例中,热传感器1239、风扇1237、键盘1246和触摸板1230可以通信地耦合到EC 1235。在至少一个实施例中,扬声器1263、耳机1264和麦克风(“mic”)1265可以通信地耦合到音频单元(“音频编解码器和d类放大器”)1262,其又可通信地耦合到DSP 1260。在至少一个实施例中,音频单元1264可包括,例如但不限于,音频编码器/解码器(“编解码器”)和D类放大器。在至少一个实施例中,SIM卡(“SIM”)1257可以通信地耦合到WWAN单元1256。在至少一个实施例中,诸如WLAN单元1250和蓝牙单元1252以及WWAN单元1256之类的组件可以在下一代规格连接器(“NGFF”)。
推理和/或训练逻辑915用于执行与一个或更多个实施例相关联的推理和/或训练操作。下面结合图9A和/或9B提供关于推理和/或训练逻辑915的细节。在至少一个实施例中,推理和/或训练逻辑915可以用在***图12中,至少部分地基于使用神经网络训练操作、神经网络函数和/或架构或本文所述的神经网络用例计算的权重参数来推断或预测操作。
此类组件可用于生成模拟网络训练过程中的故障情况的合成数据,这可有助于提高网络性能,同时限制合成数据的量以避免过拟合。
图13是根据至少一个实施例的处理***的框图。在至少一个实施例中,***1300包括一个或更多个处理器1302和一个或更多个图形处理器1308,并且可以是单处理器桌面***、多处理器工作站***或具有大量处理器1302或处理器核1307的服务器***。在至少一个实施例中,***1300是集成在片上***(SoC)集成电路中以用于移动、手持或嵌入式设备的处理平台。
在至少一个实施例中,***1300可以包括或并入到基于服务器的游戏平台中,游戏控制台包括游戏和媒体控制台、移动游戏控制台、手持游戏控制台或在线游戏控制台。在至少一个实施例中,***1300是移动电话、智能电话、平板电脑设备或移动互联网设备。在至少一个实施例中,处理***1300还可以包括、耦合或集成在可穿戴设备中,诸如智能手表可穿戴设备、智能眼镜设备、增强现实设备或虚拟现实设备。在至少一个实施例中,处理***1300是具有一个或更多个处理器1302和由一个或更多个图形处理器1308生成的图形界面的电视机或机顶盒设备。
在至少一个实施例中,一个或更多个处理器1302各自包括一个或更多个处理器核1307以处理指令,当被执行时,该指令执行***和用户软件的操作。在至少一个实施例中,一个或更多个处理器核1307中的每一个被配置为处理特定指令集1309。在至少一个实施例中,指令集1309可以促进复杂指令集计算机(CISC)、精简指令集计算机(RISC),或通过超长指令字(VLIW)计算。在至少一个实施例中,处理器核1307可以各自处理不同的指令集1309,其中可包括促进其他指令集仿真的指令。在至少一个实施例中,处理器核1307还可以包括其他处理设备,例如数字信号处理器(DSP)。
在至少一个实施例中,处理器1302包括高速缓冲内存1304。在至少一个实施例中,处理器1302可以具有单个内部高速缓存或多级内部高速缓存。在至少一个实施例中,高速缓冲内存在处理器1302的各个组件之间共享。在至少一个实施例中,处理器1302还使用外部高速缓存(例如,三级(L3)缓存或末级高速缓存(LLC))(未示出),其可以使用已知的高速缓存一致性技术在处理器核1307之间共享。在至少一个实施例中,处理器1302附加地包括寄存器堆1306,处理器1302可以包括用于存储不同类型数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器)。在至少一个实施例中,寄存器文件1506可以包括通用寄存器或其他寄存器。
在至少一个实施例中,一个或更多个处理器1302与一个或更多个接口总线1310耦合,以在处理器1302和***1300中的其他组件之间传输诸如地址、数据或控制信号之类的通信信号。在至少一个实施例中,接口总线1310在一个实施例中可以是处理器总线,例如直接媒体接口(DMI)总线的一种版本。在至少一个实施例中,接口1310不限于DMI总线,并且可以包括一个或更多个***组件互连总线(例如,PCI、PCI Express)、内存总线或其他类型的接口总线。在至少一个实施例中,处理器1302包括整合内存控制器1316和平台控制器集线器1330。在至少一个实施例中,内存控制器1316促进内存设备和***1300的其他组件之间的通信,而平台控制器集线器(PCH)1330通过本地I/O总线提供到I/O设备的连接。
在至少一个实施例中,内存设备1320可以是动态随机存取内存(DRAM)设备、静态随机存取内存(SRAM)设备、闪存设备、相变内存设备或具有适当性能作为进程内存的其他内存设备。在至少一个实施例中,内存设备1320可以作为***1300的***内存操作,以存储数据1322和指令1321,以供在一个或更多个处理器1302执行应用或进程时使用。在至少一个实施例中,整合内存控制器1316还与可选的外部图形处理器1312耦合,该外部图形处理器1312可以与处理器1302中的一个或更多个图形处理器1308通信以执行图形和媒体操作。在至少一个实施例中,显示设备1311可以连接到处理器1302。在至少一个实施例中,显示设备1311可以包括一个或更多个内部显示设备,如在移动电子设备或笔记本电脑设备或通过显示接口(例如,DisplayPort等)连接的外部显示设备。在至少一个实施例中,显示设备1311可以包括头戴式显示器(HMD),诸如用于虚拟现实(VR)应用或增强现实(AR)应用中的立体显示设备。
在至少一个实施例中,平台控制器集线器1330使***设备能够经由高速I/O总线连接到内存设备1320和处理器1302。在至少一个实施例中,I/O***设备包括但不限于音频控制器1346、网络控制器1334、固件接口1328、无线收发器1326、触摸传感器1325、数据存储设备1324(例如,硬盘驱动器、闪存等)。在至少一个实施例中,数据存储设备1324可以经由存储接口(例如,SATA)或经由***总线,例如***组件互连总线(例如,PCI、PCI Express)来连接。在至少一个实施例中,触摸传感器1325可以包括触摸屏传感器、压力传感器或指纹传感器。在至少一个实施例中,无线收发器1326可以是Wi-Fi收发器、蓝牙收发器或诸如3G、4G或长期演进(LTE)收发器的移动网络收发器。在至少一个实施例中,固件接口1328实现与***固件的通信,例如可以是统一可扩展固件接口(UEFI)。在至少一个实施例中,网络控制器1334可以实现到有线网络的网络连接。在至少一个实施例中,高性能网络控制器(未示出)与接口总线1310耦合。在至少一个实施例中,音频控制器1346是多通道高清音频控制器。在至少一个实施例中,***1300包括可选的传统I/O控制器1340,用于将传统(例如,个人***2(PS/2))设备耦合到***。在至少一个实施例中,平台控制器集线器1330还可以连接到一个或更多个通用串行总线(USB)控制器1342连接输入设备,例如键盘和鼠标1343组合、相机1344或其他USB输入设备。
在至少一个实施例中,整合内存控制器1316和平台控制器集线器1330的实例可以集成到离散的外部图形处理器中,例如外部图形处理器1312。在至少一个实施例中,平台控制器集线器1330和/或整合内存控制器1316可以在一个或更多个处理器1302的外部。例如,在至少一个实施例中,***1300可以包括外部整合内存控制器1316和平台控制器集线器1330,其可以被配置为内存控制器集线器和与处理器1302通信的***芯片组内的***控制器集线器。
推理和/或训练逻辑915用于执行与一个或更多个实施例相关联的推理和/或训练操作。下面结合图9A和/或9B提供关于推理和/或训练逻辑515的细节。在至少一个实施例中,推理和/或训练逻辑915的一部分或全部可以被合并到图形处理器1312中。例如,在至少一个实施例中,这里描述的训练和/或推理技术可以使用图形处理器中包含的一个或更多个ALU。此外,在至少一个实施例中,这里描述的推理和/或训练操作可以使用不同于图9A或图9B中所示的逻辑以外的逻辑来完成。在至少一个实施例中,权重参数可以存储在片内或片外内存和/或寄存器(示出或者未示出)中,配置图形处理器的ALU以执行此处描述的一种或多种机器学习算法、神经网络架构、用例或训练技术。
此类组件可用于生成模拟网络训练过程中的故障情况的合成数据,这可有助于提高网络性能,同时限制合成数据的量以避免过拟合。
图14是根据至少一个实施例的具有一个或更多个处理器核1402A-1202N、集成内存控制器1414和集成图形处理器1408的处理器1400的框图。在至少一个实施例中,处理器1400可以包括附加核心,最大包括由虚线框表示的附加核心1402N。在至少一个实施例中,每一个处理器核心1402A-1002N中包括一个或更多个内部高速缓存单元1404A-1404N。在至少一个实施例中,每个处理器核还可以访问一个或更多个共享高速缓存单元1406。
在至少一个实施例中,内部高速缓存单元1404A-1404N和共享高速缓存单元1406代表处理器1400内的高速缓存内存层次结构。在至少一个实施例中,高速缓存内存单元1404A-1404N可以包括至少一级指令和每个处理器内核中的数据高速缓存以及一个或更多个共享的中级高速缓存,例如二级(L2)、三级(L3)、四级(L4)或其他级别的高速缓存,外部内存被归类为LLC之前最高级别的高速缓存。在至少一个实施例中,高速缓存一致性逻辑维持各种高速缓存单元1406和1404A-1404N之间的一致性。
在至少一个实施例中,处理器1400还可以包括一组一个或更多个总线控制器单元1416和一个***代理核心1410。在至少一个实施例中,一个或更多个总线控制器单元1416管理一组***总线,例如一个或更多个PCI或PCI express总线。在至少一个实施例中,***代理核心1410为各种处理器组件提供管理功能。在至少一个实施例中,***代理核心1410包括一个或更多个集成内存控制器1414以管理对各种外部内存设备(未示出)的访问。
在至少一个实施例中,一个或更多个处理器核心1402A-1402N包括对同步多线程的支持。在至少一个实施例中,***代理核心1410包括用于在多线程处理期间协调和操作核心1402A-1402N的组件。在至少一个实施例中,***代理核1410可以附加包括功率控制单元(PCU),其包括用于调节处理器核1402A-1402N和图形处理器1408的一种或多种功率状态的逻辑和组件。
在至少一个实施例中,处理器1400另外包括图形处理器1408以执行图形处理操作。在至少一个实施例中,图形处理器1408与共享高速缓存单元1406和***代理核心1410耦合,包括一个或更多个集成内存控制器1414。在至少一个实施例中,***代理核心1410还包括显示控制器1411以驱动图形处理器输出到一个或更多个耦合的显示器。在至少一个实施例中,显示控制器1411还可以是经由至少一个互连与图形处理器1408耦合的单独模块,或者可以集成在图形处理器1408内。
在至少一个实施例中,基于环的互连单元1412用于耦合处理器1400的内部组件。在至少一个实施例中,可以使用可选互连单元,例如点对点互连、交换互连或其他技术。在至少一个实施例中,图形处理器1408经由I/O链路1413与环形互连1412耦合。
在至少一个实施例中,I/O链路1413代表多种I/O互连中的至少一种,包括促进各种处理器组件和高性能嵌入式内存模块之间通信的封装I/O互连1418,例如eDRAM模块。在至少一个实施例中,每个处理器核心1402A-1402N和图形处理器1408使用嵌入式内存模块1418作为共享的末级高速缓存。
在至少一个实施例中,处理器内核1402A-1402N是执行公共指令集架构的同构内核。在至少一个实施例中,处理器核1402A-1402N在指令集架构(ISA)方面是异构的,其中一个或更多个处理器核1402A-1402N执行公共指令集,而一个或更多个其他处理器核1402A-1402N执行公共指令集或不同指令集的子集。在至少一个实施例中,处理器核1402A-1402N在微架构方面是异构的,其中一个或更多个具有相对较高功耗的核,与一个或更多个具有较低功耗的核耦合。在至少一个实施例中,处理器1400可以在一个或更多个芯片上或者作为SoC集成电路来实现。
在一些实施例中,推理和/或训练逻辑915用于使用经变换的图像数据(例如,其已经由RGB-IR相机生成并随后基于照明条件被处理)执行推理和/或训练操作。下面结合图9A和/或图9B提供关于推理和/或训练逻辑915的细节。在至少一个实施例中,推理和/或训练逻辑915的一部分或全部可以并入处理器1400中。例如,在至少一个实施例中,这里描述的训练和/或推理技术可以使用一个或更多个包含在图形处理器112的ALU、图形核心1402A-1402N或图14中的其他组件。此外,在至少一个实施例中,这里描述的推理和/或训练操作可以使用与图9A和图9B所示的逻辑以外的逻辑来完成。在至少一个实施例中,权重参数可以存储在片内或片外内存和/或寄存器(示出或者未示出)中,配置图形处理器的ALU以执行此处描述的一种或多种机器学习算法、神经网络架构、用例或训练技术。
此类组件可用于生成模拟网络训练过程中的故障情况的合成数据,这可有助于提高网络性能,同时限制合成数据的量以避免过拟合。
其他变型在本公开的精神内。因此,尽管公开的技术易于进行各种修改和替代构造,但是其某些示出的实施例在附图中示出并且已经在上面进行了详细描述。但是,应当理解,无意将公开内容限制为所公开的一种或更多种特定形式,而是相反,其意图是涵盖落入如所附权利要求书所定义的公开内容的精神和范围内的所有修改、替代构造和等同物。
除非另有说明,除非另有说明或显然与上下文明显矛盾,否则在描述所公开的实施例的环境中(特别是在所附权利要求的环境中)对术语“一”,“一个”和“该”以及类似指代的使用应解释为涵盖单数和复数,而不是一个术语的定义。术语“包含”,“具有”,“包括”和“内含”应解释为开放式术语(意思是“包括但不限于”)。术语“连接”在未经修改时指的是物理连接,应理解为部分或全部包含在,连接到或连接在一起的部分或全部,即使有任何介入。除非在此另外指出,否则本文中数值范围的引用仅旨在用作分别指代落入该范围内的每个单独值的速记方法,并且每个单独值都被并入说明书中,就如同其在本文中被单独叙述一样。除非环境另外指出或矛盾,否则术语“组”(例如“一组项目”)或“子集”的使用应解释为包括一个或更多个成员的非空集合。此外,除非环境另外指出或矛盾,否则相应集合的术语“子集”不一定表示相应集合的适当子集,而是子集和相应集合可以相等。
除非以其他方式明确指出或与环境明显矛盾,否则诸如“A、B和C中的至少一个”或“A、B和C的至少一个”形式的词组等联合语言在环境中理解为通常用来表示项目,术语等可以是A或B或C,也可以是A和B和C集合的任何非空子集。例如,在具有三个成员,连接短语“A、B和C中的至少一个”和“A、B和C的至少一个”是指以下任意集合:{A},{B},{C},{A,B},{A,C},{B,C},{A,B,C}。因此,这种联合语言通常不意图暗示某些实施例要求存在A中的至少一个、B中的至少一个和C中的至少一个。另外,除非另有说明或与环境矛盾,否则术语“多个”表示复数的状态(例如,“多个项目”表示多个项目)。复数中项目的数量是至少两个,但是当明确地或通过环境指示时可以是多个。此外,除非另有说明或从环境中清楚得知,否则短语“基于”是指“至少部分基于”而不是“仅基于”。
除非本文另外指出或与环境明显矛盾,否则本文描述的过程的操作可以任何合适的序列执行。在至少一个实施例中,诸如本文所述的那些过程(或其变形和/或其组合)的过程在配置有可执行指令的一个或更多个计算机***的控制下执行,并且被实现为代码(例如,可执行指令、一个或更多个计算机程序或一个或更多个应用程序)通过硬件或其组合在一个或更多个处理器上共同执行。在至少一个实施例中,代码例如以计算机程序的形式存储在计算机可读存储介质上,该计算机程序包括可由一个或更多个处理器执行的多个指令。在至少一个实施例中,计算机可读存储介质是非暂时性计算机可读存储介质,其不包括暂时性信号(例如,传播的瞬态电或电磁传输),但包括暂时性信号的收发器中的非暂时性数据存储电路(例如,缓冲区、高速缓存和队列)。在至少一个实施例中,代码(例如,可执行代码或源代码)被存储在其上存储有可执行指令的一组一个或更多个非暂时性计算机可读存储介质(或用于存储可执行指令的其他内存)上,当由计算机***的一个或更多个处理器执行(即,由于被执行)而导致的计算机***执行本文所述的操作。在至少一个实施例中,一组非暂时性计算机可读存储介质包括多个非暂时性计算机可读存储介质以及缺少所有代码的多个非暂时性计算机可读存储介质的一个或更多个单个非暂时性存储介质,而多个非暂时性计算机可读存储介质共同存储所有代码。在至少一个实施例中,执行可执行指令,使得不同的指令由不同的处理器执行,例如,非暂时性计算机可读存储介质存储指令,并且主中央处理单元(“CPU”)执行一些指令,而图形处理单元(“GPU”)执行其他指令。在至少一个实施例中,计算机***的不同组件具有单独的处理器,并且不同的处理器执行指令的不同子集。
因此,在至少一个实施例中,计算机***被配置为实现单独地或共同地执行本文所描述的过程的操作的一个或更多个服务,并且这样的计算机***配置有能够实现操作的适用的硬件和/或软件。此外,实现本公开的至少一个实施例的计算机***是单个设备,并且在另一实施例中,是一种分布式计算机***,其包括以不同方式操作的多个设备,使得分布式计算机***执行本文所述的操作,并且使得单个设备不执行所有操作。
本文提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅旨在更好地阐明本公开的实施例,并且不对公开的范围构成限制,除非另有声明。说明书中的任何语言都不应被解释为表示对于实施公开必不可少的任何未要求保护的要素。
本文引用的所有参考文献,包括出版物、专利申请和专利,均以引用的方式并入本文,如同每个参考文献被单独且具体地指出以引用的方式并入本文一样。
在描述和权利要求中,可以使用术语“耦合”和“连接”及其派生词。应当理解,这些术语可能不旨在作为彼此的同义词。相反,在特定示例中,“连接”或“耦合”可用于指示两个或更多个元件彼此直接或间接物理或电接触。“耦合”也可能意味着两个或更多个元素彼此不直接接触,但仍彼此协作或交互。
除非另外特别说明,否则可以理解,在整个说明书中,诸如“处理”、“计算”、“运算”、“确定”等,是指计算机或计算***的动作和/或过程。或类似的电子计算设备,将计算***的寄存器和/或内存中表示为物理量(例如电子)的数据处理和/或转换为类似表示为计算***的内存、寄存器或其他此类信息存储、传输或显示设备中的物理量的其他数据。
以类似的方式,术语“处理器”可以指处理来自寄存器和/或内存的电子数据并将该电子数据转换成可以存储在寄存器和/或内存中的其他电子数据的任何设备或设备的一部分。作为非限制性示例,“处理器”可以是CPU、GPU、DPU或硬件加速器。“计算平台”可以包括一个或更多个处理器。如本文所使用的,“软件”过程可以包括例如随时间执行工作的软件和/或硬件实体,诸如任务、线程和智能代理。而且,每个过程可以指代多个过程,以连续地或间歇地序列地或并行地执行指令。因为***可以体现一种或更多种方法并且方法可以被认为是***,术语“***”和“方法”在本文中可互换使用。
在本文件中,可以参考获得、获取、接收或将模拟或数字数据输入子***、计算机***或计算机实现的机器中。可以以多种方式来完成获得、获取、接收或输入模拟和数字数据的过程,例如通过接收作为函数调用或对应用程序接口的调用的参数的数据。在一些实施方式中,获得、获取、接收或输入模拟或数字数据的过程可以通过经由串行或并行接口传输数据来完成。在另一实施方式中,可以通过经由计算机网络将数据从提供实体传输到获取实体来完成获得、获取、接收或输入模拟或数字数据的过程。也可以参考提供、输出、传输、发送或呈现模拟或数字数据。在各种示例中,提供、输出、传输、发送或呈现模拟或数字数据的过程可以通过将数据作为函数调用的输入或输出参数,应用程序编程接口或进程间通信机制的参数进行传输来实现。
尽管上面的讨论阐述了所描述的技术的示例实现,但是其他架构可以用于实现所描述的功能,并且意图在本公开的范围内。此外,尽管出于讨论目的在上面定义了具体的责任分配,但是根据情况,可以以不同的方式分配和划分各种功能和职责。
此外,尽管已经用针对结构特征和/或方法动作的语言描述了主题,但是应该理解,所附权利要求书所要求保护的主题不必限于所描述的特定特征或动作。而是,公开了特定的特征和动作作为实现权利要求的示例性形式。
前面详细描述的一些部分已经根据算法和对计算机存储器内的数据位的操作的符号表示来呈现。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们的工作内容传达给本领域的其他技术人员的方式。算法在这里,并且通常被认为是导致期望结果的自洽操作序列。这些操作是那些需要对物理量进行物理操纵的操作。通常,尽管不是必须的,但这些量采用能够被存储、组合、比较和以其他方式操作的电或磁信号的形式。有时,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、术语、数字等已被证明是方便的。
然而,应该记住,所有这些和类似的术语都与适当的物理量相关联并且仅仅是应用于这些量的方便标签。本公开可以指计算机***或类似电子计算设备的动作和过程,其将被表示为计算机***的寄存器和存储器内的物理(电子)量的数据操纵和转换成类似地被表示为计算机***存储器或寄存器或其他此类信息存储***内的物理量的其他数据。
本公开还涉及一种用于执行本文中的操作的装置。该装置可以为预期目的专门构造,或者它可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这样的计算机程序可以存储在计算机可读存储介质中,例如但不限于任何类型的磁盘,包括软盘、光盘、CD-ROM和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或任何类型的适合存储电子指令的介质,每个都耦合到计算机***总线。
本文提出的算法和显示与任何特定的计算机或其他装置没有内在的关系。各种通用***可以与根据这里的教导的程序一起使用,或者可以证明构造更专业的设备来执行该方法是方便的。各种这些***的结构将如下面的描述中所述。此外,没有参考任何特定的编程语言来描述本公开。应当理解,可以使用多种编程语言来实现如本文所述的本公开的教导。
本公开可以作为计算机程序产品或软件提供,其可以包括其上存储有指令的机器可读介质,该指令可以用于对计算机***(或其他电子设备)进行编程以执行根据本公开的过程。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,非暂时性计算机可读)介质包括机器(例如,计算机)可读存储介质,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存组件等。
在前述说明书中,已经参考本公开的具体示例实施例描述了本公开的实施例。显然,可以对其进行各种修改而不背离所附权利要求中阐述的本公开实施例的更广泛的精神和范围。因此,说明书和附图应被视为说明性意义而非限制性意义。
Claims (21)
1.一种处理器,包括:
一个或更多个处理单元,用于:
接收包括红外值和可见光值的图像数据;
计算所述图像数据的场景检测值,其中所述场景检测值是基于所述红外值与所述可见光值之间的比较;
基于所述场景检测值确定一个或更多个量,其中所述一个或更多个量控制红外校正量以应用于所述图像数据;以及
基于所述一个或更多个量变换所述图像数据。
2.根据权利要求1所述的处理器,其中所述图像数据包括图像传感器的原始图像数据,所述图像传感器包括用于红色、蓝色、绿色和红外RGB-IR的像素传感器,并且其中所述红外值包括红外像素值,并且所述可见光值包括红色像素值、蓝色像素值和绿色像素值。
3.根据权利要求1所述的处理器,其中所述场景检测值是基于所述图像数据中存在的所述红外值和所述可见光值之间的关系,并控制红外校正量以应用于所述图像数据,其中所述红外校正量与所述场景检测值成反比关系。
4.根据权利要求1所述的处理器,其中所述场景检测值包括所述红外值的强度与所述可见光值的强度之间的比率。
5.根据权利要求4所述的处理器,其中所述可见光值的强度至少部分地基于绿色像素值的强度来确定。
6.根据权利要求1所述的处理器,其中所述一个或更多个处理单元通过以下方式计算所述场景检测值:
计算代表所述红外值的强度的第一值,其中所述第一值包括所述图像数据中的多个红外像素值的平均值;
计算代表所述可见光值的强度的第二值,其中所述第二值包括所述图像数据中的多个绿色像素值的平均值;以及
基于所述第一值和所述第二值生成所述场景检测值。
7.根据权利要求1所述的处理器,其中所述一个或更多个处理单元通过基于所述场景检测值计算以下中的至少一项来确定所述一个或更多个量:红外减法量、白平衡量、颜色修改的量或饱和度的量。
8.根据权利要求1所述的处理器,其中所述一个或更多个处理单元通过将所述场景检测值用作用于从一组量中选择所述一个或更多个量的索引来确定所述一个或更多个量。
9.根据权利要求1所述的处理器,其中所述一个或更多个量包括红外减法因子,并且其中所述一个或更多个处理单元基于所述场景检测值通过以下方式来确定所述一个或更多个量:
响应于基于所述红外值与所述可见光值的第一比率计算第一场景检测值,确定第一红外减法因子,所述第一红外减法因子引起从所述可见光值中减去可归因于红外的第一量;以及
响应于基于比所述红外值与所述可见光值的所述第一比率高的所述红外值与所述可见光值的第二比率计算第二场景检测值,确定第二红外减法因子,所述第二红外减法因子引起从所述可见光值中减去可归因于红外的第二量,其中所述第二量小于所述第一量。
10.根据权利要求9所述的处理器,其中所述一个或更多个量进一步包括颜色校正因子、颜色饱和度因子或白平衡因子中的至少一个,并且其中,所述一个或更多个处理单元基于所述场景检测值通过如下方式来确定所述一个或更多个量:
响应于计算所述第一场景检测值,确定考虑所述可见光值的可归因于红外的第一余数的第一颜色校正因子、第一颜色饱和度因子或第一白平衡因子中的至少一个;以及
响应于计算所述第二场景检测值,确定考虑所述可见光值的可归因于红外的第二余数的第二颜色校正因子、第二颜色饱和度因子或第二白平衡因子中的至少一个。
11.根据权利要求1所述的处理器,其中所述一个或更多个量包括红外减法因子,并且其中,所述一个或更多个处理单元基于所述场景检测值通过使用查找表执行查找来确定所述一个或更多个量,所述查找表将场景检测值与红外减法因子相关联。
12.根据权利要求1所述的处理器,其中所述一个或更多个处理单元将所述图像数据从第一颜色模型变换为第二颜色模型,其中所述第一颜色模型包括红色分量、绿色分量和蓝色分量,并且所述第二颜色模型包括亮度分量和色度分量。
13.根据权利要求1所述的处理器,其中所述一个或更多个处理单元进一步用于:
使用机器学习模型来处理经变换的图像数据,所述机器学习模型经过训练以基于输入图像数据来输出预测、估计或分类中的至少一个,其中基于所述经变换的图像数据的输入生成的所述输出高于基于所述图像数据的输入生成的输出的准确度。
14.一种***,包括:
一个或更多个图像传感器,其被配置为生成包括红外值和可见光值的图像数据;以及
一个或更多个处理单元,用于:
接收所述图像数据;
计算所述图像数据的场景检测值,其中所述场景检测值是基于所述红外值与所述可见光值之间的比较;
基于所述场景检测值确定一个或更多个量,其中所述一个或更多个量控制红外校正量以应用于所述图像数据;以及
基于所述一个或更多个量变换所述图像数据。
15.根据权利要求14所述的***,还包括:
显示设备,其用于显示经变换的图像数据。
16.根据权利要求15所述的***,其中所述一个或更多个图像传感器被配置为生成车辆的内部的图像数据,并且其中,所述显示设备设置在所述车辆的仪表板中。
17.根据权利要求14所述的***,其中所述场景检测值是基于所述图像数据中存在的所述红外值和所述可见光值之间的关系,并且控制红外校正量以应用于所述图像数据,其中所述红外校正量与所述场景检测值成反比关系。
18.根据权利要求14所述的***,其中所述场景检测值包括所述红外值的强度与所述可见光值的强度之间的比率。
19.根据权利要求14所述的***,其中所述一个或更多个量包括红外减法因子,并且其中,所述一个或更多个处理单元基于所述场景检测值通过以下方式来确定所述一个或更多个量:
响应于基于所述红外值与所述可见光值的第一比率计算第一场景检测值,确定第一红外减法因子,所述第一红外减法因子引起从所述可见光值中减去可归因于红外的第一量;以及
响应于基于比所述红外值与所述可见光值的所述第一比率高的所述红外值与所述可见光值的第二比率计算第二场景检测值,确定第二红外减法因子,所述第二红外减法因子引起从所述可见光值中减去可归因于红外的第二量,其中所述第二量小于所述第一量。
20.根据权利要求14所述的***,其中所述***包括以下的至少一项:
用于自主或半自主机器的控制***;
用于自主或半自主机器的感知***;
用于自主或半自主机器的驾驶员监控***;
用于自主或半自主机器的乘员监控***;
用于执行模拟操作的***;
用于执行数字孪生操作的***;
用于执行深度学习操作的***;
使用边缘设备实现的***;
使用机器人实现的***;
合并一个或更多个虚拟机VM的***;
至少部分在数据中心中实现的***;
包括针对三维3D内容的协作创建平台的***;或者
至少部分使用云计算资源实现的***。
21.一种方法,包括:
接收包括红外值和可见光值的图像数据;
计算所述图像数据的场景检测值,其中所述场景检测值是基于所述红外值与所述可见光值之间的比较;
基于所述场景检测值确定一个或更多个量,其中所述一个或更多个量控制红外校正量以应用于所述图像数据;以及
基于所述一个或更多个量,变换所述图像数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/736,648 US20230360178A1 (en) | 2022-05-04 | 2022-05-04 | Rgb-ir data processing for autonomous systems and applications |
US17/736,648 | 2022-05-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117082360A true CN117082360A (zh) | 2023-11-17 |
Family
ID=88414348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211160098.8A Pending CN117082360A (zh) | 2022-05-04 | 2022-09-22 | 用于自主***和应用的rgb-ir数据处理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230360178A1 (zh) |
JP (1) | JP2023166308A (zh) |
CN (1) | CN117082360A (zh) |
DE (1) | DE102023111240A1 (zh) |
-
2022
- 2022-05-04 US US17/736,648 patent/US20230360178A1/en active Pending
- 2022-06-02 JP JP2022090067A patent/JP2023166308A/ja active Pending
- 2022-09-22 CN CN202211160098.8A patent/CN117082360A/zh active Pending
-
2023
- 2023-05-02 DE DE102023111240.6A patent/DE102023111240A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2023166308A (ja) | 2023-11-21 |
US20230360178A1 (en) | 2023-11-09 |
DE102023111240A1 (de) | 2023-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11995895B2 (en) | Multi-object tracking using correlation filters in video analytics applications | |
US11676284B2 (en) | Shape fusion for image analysis | |
US11652982B2 (en) | Applications for detection capabilities of cameras | |
US11854401B2 (en) | Temporal information prediction in autonomous machine applications | |
US11917307B2 (en) | Image signal processing pipelines for high dynamic range sensors | |
US20230130478A1 (en) | Hybrid solution for stereo imaging | |
US20240051553A1 (en) | Sensor performance monitoring 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 | |
WO2023158556A1 (en) | Dynamic object detection using lidar data for autonomous machine systems and applications | |
US20230186593A1 (en) | Glare mitigation using image contrast analysis for autonomous systems and applications | |
US12026955B2 (en) | Assigning obstacles to lanes using neural networks for autonomous machine applications | |
US20230236314A1 (en) | Sampling radar signals for automotive radar perception | |
CN114841336A (zh) | 修补用于自主机器应用的部署的深度神经网络 | |
US20230360178A1 (en) | Rgb-ir data processing for autonomous systems and applications | |
US20230177839A1 (en) | Deep learning based operational domain verification using camera-based inputs for autonomous systems and applications | |
US20240085914A1 (en) | Determining perception zones for object detection in autonomous systems and applications | |
US20240176017A1 (en) | Sensor fusion using ultrasonic sensors for autonomous systems and applications | |
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 | |
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 | |
US20240087333A1 (en) | Techniques for identifying occluded objects using a neural network | |
US20240010232A1 (en) | Differentiable and modular prediction and planning for autonomous machines |
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 |