CN117795566A - 传感器数据中三维对象的感知 - Google Patents
传感器数据中三维对象的感知 Download PDFInfo
- Publication number
- CN117795566A CN117795566A CN202280053133.8A CN202280053133A CN117795566A CN 117795566 A CN117795566 A CN 117795566A CN 202280053133 A CN202280053133 A CN 202280053133A CN 117795566 A CN117795566 A CN 117795566A
- Authority
- CN
- China
- Prior art keywords
- shape
- pose
- model
- cost function
- sensor data
- 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
- 230000008447 perception Effects 0.000 title description 30
- 238000000034 method Methods 0.000 claims description 73
- 230000033001 locomotion Effects 0.000 claims description 71
- 238000012549 training Methods 0.000 claims description 14
- 230000007613 environmental effect Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 48
- 238000001514 detection method Methods 0.000 description 47
- 238000005259 measurement Methods 0.000 description 46
- 238000005457 optimization Methods 0.000 description 21
- 238000009826 distribution Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 239000003795 chemical substances by application Substances 0.000 description 10
- 230000002776 aggregation Effects 0.000 description 9
- 238000004220 aggregation Methods 0.000 description 9
- 238000012360 testing method Methods 0.000 description 9
- 239000013598 vector Substances 0.000 description 9
- 230000001133 acceleration Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000004088 simulation Methods 0.000 description 7
- 230000006399 behavior Effects 0.000 description 6
- 238000000513 principal component analysis Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 235000004522 Pentaglottis sempervirens Nutrition 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 230000001953 sensory effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000002592 echocardiography Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000011478 gradient descent method Methods 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 238000007670 refining Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- BWSIKGOGLDNQBZ-LURJTMIESA-N (2s)-2-(methoxymethyl)pyrrolidin-1-amine Chemical compound COC[C@@H]1CCCN1N BWSIKGOGLDNQBZ-LURJTMIESA-N 0.000 description 1
- YTAHJIFKAKIKAV-XNMGPUDCSA-N [(1R)-3-morpholin-4-yl-1-phenylpropyl] N-[(3S)-2-oxo-5-phenyl-1,3-dihydro-1,4-benzodiazepin-3-yl]carbamate Chemical compound O=C1[C@H](N=C(C2=C(N1)C=CC=C2)C1=CC=CC=C1)NC(O[C@H](CCN1CCOCC1)C1=CC=CC=C1)=O YTAHJIFKAKIKAV-XNMGPUDCSA-N 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- 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/58—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
- G06V20/647—Three-dimensional objects by matching two-dimensional images to three-dimensional objects
Abstract
为了对在多个传感器模态的传感器数据的多个时间序列中捕获的3D对象进行定位和建模,优化应用于传感器数据的多个时间序列的代价函数。代价函数随时间和多个传感器模态聚合,并且被根据一组变量定义,该组变量包括3D对象模型的一个或更多个形状参数以及3D对象模型的姿态的时间序列。代价函数惩罚传感器数据的多个时间序列与该组变量之间的不一致。该对象属于已知对象类,并且3D对象模型或代价函数对与已知对象类相关联的预期3D形状信息进行编码,从而以优化代价函数为目的,通过调整每个姿态和形状参数来对3D对象进行在多个时刻的定位和对所述3D对象进行建模。
Description
技术领域
本公开涉及在例如图像、激光雷达/雷达点云等传感器数据中捕获的三维(3D)对象的感知。
背景技术
在传感器数据中感知3D对象的技术有许多不同的应用。计算机视觉泛指计算机对图像的解释。本文中的术语“感知”包括更广泛范围的传感器模态,并包括用于从单个模态或多个模态(诸如图像、立体深度、单声道深度、激光雷达和/或雷达)的传感器数据中提取对象信息的技术。可以从2D或3D传感器数据中提取3D对象信息。例如,运动结构(structurefrom motion,SfM)是一种允许从多个2D图像重建3D对象的成像技术。
感知系统是自动驾驶车辆(autonomous vehicle,AV)的重要部件。自动驾驶车辆(AV)是一种配备有传感器和控制系统的车辆,传感器和控制系统使其能够在无人控制其行为的情况下运行。自动驾驶车辆配备有使其能够感知其物理环境的传感器,这样的传感器包括例如摄像头、雷达和激光雷达。自动驾驶车辆配备有适当编程的计算机,该适当编程的计算机能够处理从传感器接收的数据,并基于传感器感知的背景做出安全和可预测的决策。自动驾驶车辆可以是全自动驾驶的(至少在某些情况下,它被设计为在无人监督或干预的情况下运行)或半自动驾驶的。半自动驾驶系统需要不同程度的人工监管和干预,此类系统包括高级驾驶员辅助系统和三级自动驾驶系统。
此类车辆不仅必须在人员和其他车辆之间执行复杂的操纵,而且通常它们必须这样做的同时保证严格限制例如与环境中的其他代理碰撞的不良事件发生的概率。为了使自动驾驶车辆能够安全地进行规划,它能够准确可靠地观察其环境是至关重要的。这包括需要对车辆附近的道路结构进行准确可靠的检测。
支持实时规划的要求限制了自动驾驶车辆上可能使用的感知技术类别。给定的感知技术可能由于它是非因果的(需要对未来的了解)或非实时的(鉴于自动驾驶车辆的车载计算机系统的限制,无法在自动驾驶车辆车载实时实现)而不适用于此目的。
发明内容
“离线”感知技术与“在线”感知相比可以提供更好的结果。后者是指有利于实时应用的感知技术的子集,例如自动驾驶车辆车载的实时运动规划。某些感知技术可能不适用于此目的,但仍有许多其他有用的应用。例如,用于测试和开发复杂机器人系统(如自动驾驶车辆)的某些工具需要某种形式的“地面实况(ground truth)”。给定真实世界的“运行”,即配备传感器的车辆(或机器)遇到某些驾驶(或其他)场景,最严格意义上的地面实况意味着场景的“完美”表示,没有感知错误。然而,这种地面实况在现实中不可能存在,离线感知技术可以用于为给定的应用提供质量足够的“伪地面实况”。从运行的传感器数据中提取的伪地面实况可以用作模拟的基础,例如在模拟器中重建场景或场景的某些变体以在模拟中测试自动驾驶车辆规划器;评估真实世界中的驾驶性能,例如使用离线处理来提取代理轨迹(空间和运动状态),并根据预定义的驾驶规则来评估代理轨迹;或者作为评估在线感知结果的基准,例如通过将车载检测与伪地面实况进行比较作为估计感知误差的手段。另一个应用是训练,例如,其中,将经由离线处理提取的伪地面实况用作训练数据,以训练/重新训练在线感知部件。在任何上述应用中,离线感知可以用作繁重的手动注释的替代方案,或者以减少人工注释工作量的方式补充手动注释。值得注意的是,除非另有说明,否则本文中使用的术语“地面实况”不是最严格的意义上的,而是包括通过离线感知、手动注释或其组合获得的伪地面实况。
本文提供了各种感知技术。虽然通常设想本技术将更适合离线应用,但不排除在线应用的可能性。在线应用的可行性可能会随着未来技术的进步而提高。
本文的第一方面提供了一种对在多个传感器模态的传感器数据的多个时间序列中捕获的3D对象进行定位和建模的计算机实现方法。该方法包括优化应用于传感器数据的多个时间序列的代价函数。代价函数随时间和多个传感器模态聚合,并根据一组变量定义。该组变量包括:3D对象模型的一个或更多个形状参数,以及3D对象模型的姿态的时间序列。每个姿态包括3D对象位置和3D对象定向。代价函数惩罚传感器数据的多个时间序列与该组变量之间的不一致。对象属于已知对象类,并且3D对象模型或代价函数对与已知对象类相关联的预期3D形状信息进行编码,从而以优化代价函数为目的,通过调整每个姿态和形状参数来对3D对象进行在多个时刻的定位和对3D对象进行建模。
在实施例中,代价函数的变量可以包括针对于3D对象的运动模型的一个或更多个运动参数,并且代价函数还可以惩罚姿态的时间序列和运动模型之间的不一致,从而以优化代价函数为目的,通过调整每个姿态、形状参数和运动参数来对该对象进行定位和建模,以及对该对象的运动进行建模。
传感器数据的多个时间序列中的至少一个包括在时间上不与姿态的时间序列中的任何姿态对准的传感器数据段。运动模型可用于根据姿态的时间序列计算在时间上与传感器数据段相符的插值姿态,其中,代价函数惩罚传感器数据段与插值姿态之间的不一致。
传感器数据的至少一个时间序列可以包括图像的时间序列,并且传感器数据段可以是图像。
传感器数据的至少一个时间序列可以包括激光雷达数据的时间序列或雷达数据的时间序列,传感器数据段是单独的激光雷达回波或雷达回波,并且插值姿态与激光雷达回波或者雷达回波的回波时间相符。
变量还可以包括用于缩放3D对象模型的一个或更多个对象维度,形状参数独立于对象维度。替代地,3D对象模型的形状参数可以对3D对象形状和对象维度二者进行编码。
代价函数可以在姿态违反环境限制时附加地惩罚每个姿态。
环境限制可以相对于已知3D道路表面来定义。
每个姿态可以用于相对于道路表面定位3D对象模型,并且环境限制可以在3D对象模型不位于已知3D道路表面上时惩罚每个姿态。
多个传感器模态可以包括图像模态、激光雷达模态和雷达模态中的两个或更多个。
传感器模态中的至少一个传感器模态可以使得姿态和形状参数不能单独从该传感器模态中唯一地导出。
传感器数据的多个时间序列中的一个可以是对测量的多普勒速度进行编码的雷达数据的时间序列,其中,姿态的时间序列和3D对象模型用于计算预期多普勒速度,并且代价函数惩罚所测量的多普勒速度和预期多普勒速度之间的差异。
传感器数据的多个时间序列中的一个可以是图像的时间序列,并且代价函数可以惩罚(i)图像与(ii)姿态的时间序列和3D对象模型之间的聚合重投影误差。
可以将语义关键点检测器应用于每个图像,并且可以在对象的语义关键点上定义重投影误差。
传感器数据的多个时间序列中的一个可以是激光雷达数据的时间序列,其中,代价函数基于激光雷达点和由3D对象模型的参数定义的3D表面之间的点到表面的距离,其中,点到表面的距离遍及激光雷达数据的所有点聚合。
3D对象模型可以被编码为距离场。
在3D对象模型中,可以对预期3D形状信息进行编码,该3D对象模型是从包括已知对象类的示例对象的训练数据集中学习的。
在代价函数的正则化项中,可以对预期3D形状信息进行编码,代价函数的正则化项惩罚3D对象模型与已知对象类的3D形状先验之间的差异。
该方法可以包括使用对象分类器从多个可用对象类中确定对象的已知类,多个对象类与相应的预期3D形状信息相关联。
可以将相同的形状参数应用于用于建模刚性对象的姿态的时间序列中的每个姿态。
3D对象模型可以是可变形模型,其中,形状参数中的至少一个遍及帧而变化。
此处,3D感知被公式化为一个代价函数优化问题,其目的是以最小化代价函数中定义的某些误差的总体测量的方式来调整3D对象模型的形状和姿态的时间序列。以结合对象类的附加知识和通常与已知对象类相关联的形状特征的方式,通过聚合遍及时间和多个传感器模态二者的总体误差来实现高水平的感知精度。
本文的其他方面提供了一种计算机系统,包括被配置为实现上述方面或实施例中任一方面的方法的一个或更多个计算机,以及被配置为对计算机系统进行编程以实现上述方法的计算机程序代码。
附图说明
现在将参考以下附图,仅以示例的方式描述实施例,其中:
图1示出了自动驾驶车辆运行时堆栈的高度示意性框图。
图2示出了自动驾驶车辆车载感知系统的框图。
图3示出了应用于摄像头图像的2D图像裁剪和语义关键点检测的框图。
图4示出了世界参考系和对象参考系中的对象姿态和一组关键点位置。
图5示出了如何通过代价函数评估一组估计的对象姿态和形状参数。
图6示出了将估计的关键点位置重新投影到2D图像平面中,以与2D语义关键点检测进行比较。
图7示出了在驾驶运行期间如何手动标记数据。
图8示出了地面实况管线中数据处理的框图。
图9示出了基于传感器数据以及形状模型和运动模型对对象建模的框图。
图10示出了一组误差项,这些误差项对用于对对象建模的总体代价函数有贡献。
图11A是示出在传感器数据集中捕获的对象的对象类标识的框图。
图11B示出了如何使用已识别的对象类从一组可能的形状模型中选择形状模型。
图11C示出了如何使用已识别的对象类从一组可能的形状先验中选择形状先验。
图12示出了如何根据当前对对象形状和姿态的估计来确定对象的预期径向速度。
具体实施方式
现在将描述基于由一个或更多个传感器捕获的一组帧对对象的形状和姿态进行建模的各种技术。这些技术在自动驾驶的背景下特别有用,例如用于执行3D注释。在自动驾驶背景下的一个用例中,这些技术可以应用于细化管线(refinement pipeline)中,该细化管线用于生成给定驾驶场景的“地面实况”,在此基础上可以测试感知堆栈(实际上,以自动地或半自动地执行用于车辆测试的3D注释)。从驾驶场景中提取的该“地面实况”也可以用于根据驾驶规则测试自动驾驶车辆堆栈性能,或生成场景描述,在此基础上模拟类似的驾驶场景。
离线感知技术可大致分为离线检测技术和检测细化技术。离线检测器可以被实现为机器学习模型,该机器学习模型被训练为将来自一个或更多个传感器模态的传感器数据作为输入,并输出例如识别在该传感器数据中捕获的对象的2D或3D边界框。由于有更多的可用资源,离线检测器可以提供比车辆的在线检测器更准确的注释,以及对非实时数据的访问,这意味着来自“未来”时间步的传感器数据可以用于通知当前时间步的注释。检测细化技术可以(可选地结合来自一个或更多个传感器模态的传感器数据)应用于现有的检测,例如来自车辆的在线检测器。通过基于关于被检测对象的附加数据或知识“细化”现有检测,可以处理该数据以生成更准确的一组检测。例如,离线检测细化算法可以应用于来自场景的车载识别代理的边界框,可以基于这些代理的预期运动应用运动模型。该运动模型可以特定于要检测的对象的类型。例如,车辆被限制移动,使得突然转弯或跳跃是极不可能的,并且专门用于车辆的运动模型可以对这些类型的限制进行编码。使用这种细化技术获得地面实况车辆感知输出可以称为在“感知细化管线”中。
可能越来越多地需要例如自动驾驶车辆的复杂机器人系统,来实现多种感知模态,从而准确解释多种形式的感知输入。例如,自动驾驶车辆可以配备有一个或更多个立体光学传感器(摄像头)对,从一个或更多个立体光学传感器(摄像头)中提取相关联的深度图。在这种情况下,自动驾驶车辆的数据处理系统可以被配置为将一个或更多个形式的2D结构感知应用于图像本身(例如2D边界框检测和/或其他形式的2D定位、实例分割等)加上对相关深度图的数据的一个或更多个形式的3D结构感知(诸如3D边界框检测和/或其他形式的3D定位)。这种深度图也可以来自激光雷达、雷达等,或者通过合并多个传感器模态来获得。为了训练用于期望感知模态的感知部件,感知部件被构造为使得其能够接收期望形式的感知输入并作为响应提供期望形式的感知输出。此外,为了训练基于监督学习的适当架构的感知部件,需要提供符合期望感知模态的注释。例如,为了训练2D边界框检测器,需要2D边界框注释;同样,为了训练分割部件执行图像分割(单个图像像素的逐像素分类),注释需要编码合适的分割掩码,模型可以从合适的分割掩码中学习;3D边界框检测器需要能够接收3D结构数据以及注释的3D边界框等。
如上所述,离线检测器可以使用关于要检测的对象类型的先验知识,以便对对象的姿态和位置进行更准确的预测。例如,被训练来检测车辆的位置和姿态的检测器可以结合汽车的典型形状、对称性和尺寸的一些知识,以便告知被观察汽车的预测定向。关于对象运动的知识也可以被编码在离线感知部件中,以便在场景中为代理生成更准确的轨迹。来自多个传感器模态的数据可以提供额外的知识,例如,细化技术可以使用摄像头图像和雷达点来确定场景的给定快照的细化注释。如稍后将更详细描述的,雷达测量对象相对于发射设备的径向速度。例如,通过基于测量的径向速度和汽车的预期运动识别到雷达测量以与挡风玻璃一致的特定角度撞击汽车,这可以用于通知例如汽车的给定对象的估计形状和位置。
本文描述了一种对场景中的对象进行离线感知的方法,该方法结合了关于对象的形状和运动的先验知识以及来自至少两个传感器模态的数据,以便在一段时间内为对象生成改进的注释。
本背景中的“帧”是指任何捕获的2D或3D结构表示,即包括定义2D或3D空间中的结构的捕获点(3D结构点),并且其提供在该帧中捕获的3D结构的静态“快照”(即静态3D场景),以及捕获的2D摄像头图像的2D帧。这样的表示包括图像、体素网格、点云、表面网格等,或其任何组合。对于图像或体素表示,点是均匀2D/3D网格中的像素/体素,而在点云中,点通常是无序的,并且可以位于2D/3D空间中的任何位置。可以说,该帧对应于单个时刻,但并不一定意味着该帧或从中导出的底层传感器数据需要即时捕获—例如,激光雷达测量值可以由移动对象在短时间间隔(例如约100ms)内以激光雷达扫掠的方式捕获,并且“解扭”,以考虑移动对象的任何运动以形成单点云。在这种情况下,就提供有意义的静态快照来说,单点云仍然可以被认为对应于单个时刻,这是由于该解扭,而不管底层传感器数据的捕获方式如何。在帧的时间序列的背景中,每个帧对应的时刻是该帧在时间序列内的时间索引(时间戳)(并且该时间序列中的每个帧对应于不同的时刻)。
术语“对象”和“结构部件”在注释工具的背景中被同义使用,指的是被建模为对象的3D帧的静态3D场景中的可识别结构段。注意,在该定义下,注释工具的背景中的对象实际上可以仅对应于真实世界对象的一部分,或者对应于多个真实世界对象等。也就是说,对象一词广泛适用于在3D场景中捕获的任何可识别结构段。
关于本文采用的其他术语,除非另有说明,否则术语“定向”和“角位置”被同义使用,指的是对象在2D或3D空间(如适用)中的旋转配置。从前面的描述中可以明显看出,术语“位置”在广义上用于涵盖位置和/或定向。因此,关于对象确定、计算、假设等的位置可以仅具有位置分量(一个或更多个位置坐标)、仅具有定向分量(一个或更多个定向坐标)或既具有位置分量又具有定向分量。因此,通常,位置可以包括位置坐标和定向坐标中的至少一个。除非另有说明,否则术语“姿态”是指对象的位置和定向的组合,例如完全定义对象在3D空间中的位置和定向的全六维(6D)姿态向量(术语6D姿态也可以用作表示3D空间中全姿态的简写)。
术语“2D感知”和“3D感知”可以用作简写,分别指应用于2D和3D空间的结构感知。为免生疑问,该术语并不一定意味着与所产生的结构感知输出的维度有关的任何内容—例如,完整的3D边界框检测算法的输出可以是一个或更多个九维向量的形式,每个向量将3D边界框(长方体)定义为3D位置、3D定向和尺寸(高度、宽度、长度—边界框尺寸);作为另一示例,可以在3D空间中估计对象的深度,但在这种情况下,单维输出可能足以捕获估计的深度(作为单个深度维度)。此外,3D感知也可以应用于2D图像,例如单目深度感知。如前所述,还可以从诸如RGB图像的2D传感器数据中提取3D对象/结构信息。
示例自动驾驶车辆堆栈:
为了向所描述的实施例提供相关背景,现在将描述自动驾驶车辆堆栈的示例形式的进一步细节。
图1示出了自动驾驶车辆运行时堆栈100的高度示意性框图。运行时堆栈100被示为包括感知(子)系统102、预测(子)系统104、规划(子)系统(规划器)106和控制(子)系统(控制器)108。如前所述,术语(子)堆栈也可用于描述上述部件102-108。
在真实世界的背景中,感知系统102从自动驾驶车辆的车载传感器系统110接收传感器输出,并使用这些传感器输出来检测外部代理并测量其物理状态,诸如其位置、速度、加速度等。车载传感器系统110可以采取不同的形式,但通常包括各种传感器,例如图像捕获设备(摄像头/光学传感器)、激光雷达和/或雷达单元、卫星定位传感器(全球定位系统(Global Positioning System,GPS)等)、运动/惯性传感器(加速度计、陀螺仪等)等。车载传感器系统110因此提供丰富的传感器数据,可以从传感器数据中提取关于周围环境的详细信息,以及自动驾驶车辆和该环境内的任何外部参与者(车辆、行人、骑行者等)的状态。传感器输出通常包括多个传感器模态的传感器数据,例如来自一个或更多个立体光学传感器、激光雷达、雷达等的立体图像。可以使用滤波器、融合部件等来组成多个传感器模态的传感器数据。
感知系统102通常包括多个感知部件,多个感知部件协作以解释传感器输出,从而向预测系统104提供感知输出。
在模拟背景中,根据测试的性质(特别是根据为测试目的而对堆栈100“切片”的位置(见下文)),可能有必要也可能没有必要对车载传感器系统100进行建模。对于更高级别的切片,不需要模拟传感器数据,因此不需要复杂的传感器建模。
由预测系统104使用来自感知系统102的感知输出来预测外部参与者(代理,例如自动驾驶车辆附近的其他车辆)的未来行为。
由预测系统104计算的预测被提供给规划器106,规划器106使用预测来做出将由自动驾驶车辆在给定驾驶场景中执行的自动驾驶决策。由规划器106接收的输入通常将指示可驾驶区域,并且还将捕获可驾驶区域内任何外部代理(从自动驾驶车辆的角度来看为障碍物)的预测移动。可驾驶区域可以使用来自感知系统102的感知输出并结合例如高清(high definition,HD)地图的地图信息来确定。
规划器106的核心功能是在考虑预测的代理运动的情况下规划自动驾驶车辆的轨迹(自主轨迹)。这可以称为轨迹规划。规划轨迹是为了在场景中实现期望目标。例如,目标可以是进入环形交叉路口,并在期望出口处离开环形交叉路口;超过前方车辆;或者以目标速度停留在当前车道上(车道跟随)。例如,该目标可以由自动路线规划器(未示出)来确定。
控制器108通过向自动驾驶车辆的车载参与者系统112提供合适的控制信号来执行规划器106所做的决策。特别地,规划器106规划自动驾驶车辆的轨迹,并且控制器108生成控制信号以实现所规划的轨迹。通常,规划器106将规划未来,使得在规划器106规划新的轨迹之前,所规划的轨迹可以仅在控制级别上部分地实现。参与者系统112包括“主要”车辆系统,例如制动、加速和转向系统,以及次要系统(例如信号、雨刷、前灯等)。
图2示出了自动驾驶车辆200的高度示意性框图,其显示为包括经过训练的感知部件102的实例,感知部件102具有连接到车辆200的至少一个传感器202的输入和连接到自动驾驶车辆控制器204的输出。
在使用中,自动驾驶车辆200的感知部件102(的实例)根据其训练实时解释由至少一个传感器202捕获的感知输入内的结构,并且自动驾驶车辆控制器204基于结果控制车辆的速度和方向,而无需来自任何人类驾驶员的输入或来自任何人类驾驶员的有限输入。
尽管图2中只示出了一个传感器202,但自动驾驶车辆102可以配备有多个传感器。例如,可以布置一对图像捕获设备(光学传感器)以提供立体视图,并且道路结构检测方法可以应用于从每个图像捕获设备捕获的图像。替代地或附加地,可以在自动驾驶车辆102上提供诸如激光雷达、雷达等的其他传感器模态。
应理解,这是对某些自动驾驶车辆功能的高度简化的描述。自动驾驶车辆的一般原理是已知的,因此不作进一步详细描述。
此外,本文所述的技术可以在非车载的情况下实现,即在例如模拟器的计算机系统中实现,该模拟器用于执行路径规划以进行建模或实验。在这种情况下,可以从作为模拟堆栈的一部分运行的计算机程序中获取感官数据。在任一背景中,感知部件102可以对传感器数据进行操作以识别对象。在模拟背景中,模拟的代理可以使用感知部件102来导航模拟的环境,并且代理行为可以被记录并用于例如标记安全问题,或者作为重新设计或重新训练已经被模拟的部件的基础。
地面实况管线
在测试自动驾驶车辆堆栈的真实世界性能时,一个问题是自动驾驶车辆会生成大量数据。该数据随后可用于分析或评估自动驾驶车辆在真实世界中的性能。然而,一个潜在的挑战是在此片段中寻找相关数据,并确定驾驶路程中发生了哪些感兴趣的事件。一种选择是手动解析数据,并通过人工注释来识别感兴趣的事件。然而,这可能成本高昂。
图7示出了在驾驶时手动标记真实世界驾驶数据的示例。自动驾驶车辆配备有例如包括摄像头的传感器。如示例图像1202所示,摄像头沿着驾驶路程收集片段。人类驾驶员在高速公路上的驾驶路程的示例中,如果驾驶员注意到任何感兴趣的内容,驾驶员可以向自动驾驶车辆提供标志,并在传感器收集的数据中标记该帧。该图像在地图1200上示出了驾驶路程的可视化,其中,气泡框(bubble)示出了驾驶员沿驾驶路程标记的点。在该示例中,每个标记点对应于摄像头图像的帧,并且这用于过滤在驾驶之后分析的数据,使得之后仅检查已经标记的帧。
如图1200所示,在标记的帧之间的驾驶路径中存在大的间隙,在这些间隙中收集的数据都没有被标记,因此这些数据未被使用。通过使用自主车辆驾驶员的手动注释来过滤数据,随后对驾驶数据的分析仅限于人类驾驶员或测试工程师发现足够重要或有足够时间标记的事件。然而,根据剩余数据可能会对车辆在其他时间的性能有有用的见解,并且确定一种更完整地处理和评估驾驶性能的自动方法将是有用的。此外,对于相同数量的数据,识别比手动标记更多的问题提供了对收集数据量相同的自动驾驶车辆系统进行更多改进的机会。
一个可能的解决方案是创建统一的分析管线,该分析管线使用相同的度量来评估场景模拟和真实世界驾驶。第一步是从实际收集的数据中提取驾驶轨迹。例如,可以基于车载检测来估计自主车辆的近似位置和其他代理的近似位置。然而,由于有限的计算资源,以及车载检测实时工作(这意味着通知给定检测的唯一数据是传感器在该时间点之前观察到的数据)的事实,车载检测是不完美的。这意味着检测可能有噪声且不准确。
图8示出了如何在数据摄取管线中处理和细化数据,以确定给定真实世界数据集的伪地面实况144。注意,“真实”的地面实况不能从真实世界数据中提取出来,并且本文所述的地面实况管线提供了足以进行评估的地面实况估计。这种伪地面实况在本文中也可以简称为“地面实况”。
数据摄取管线(或“摄取”工具)从给定堆栈以及可选的任何其他数据源1300(如手动注释)中获取感知数据140,并对数据进行细化,以提取数据中捕获的真实世界驾驶场景的伪地面实况144。如图所示,传感器数据和来自车辆的检测被摄取,可选地以例如离线检测或手动注释的额外输入摄取。这些被处理以将离线检测器1302应用于原始传感器数据,和/或细化从车辆的车载感知堆栈接收的检测1304。然后将细化的检测输出为该场景的伪地面实况144。然后,这可以用作各种用例的基础,用例包括根据驾驶规则评估地面实况,通过将车辆检测与伪地面实况进行比较来确定感知误差,以及提取用于模拟的场景。可以针对输入数据计算包括感知“硬度”得分1306的其他度量,感知“硬度”得分1306可以应用于例如检测或整个摄像头图像,其指示给定数据对于感知堆栈正确处理有多困难。
组合细化管线
各种类型的离线检测器和检测细化方法可以在如上所述的“地面实况”管线内使用,以生成场景中对象的注释,或者训练改进的感知部件,或者与用于测试的一组检测进行比较,如上所述。可以应用这些离线检测器和检测细化技术以基于来自不同传感器模态(例如摄像头图像、雷达、激光雷达等)的传感器数据生成注释。现在将描述一种组合的检测细化技术,该技术利用关于待检测对象形状的知识、对象运动的知识以及来自多个传感器模态的数据,以在遍及多帧捕获数据的场景中获得对象的形状、位置和定向的更准确估计。
给定对象的形状和姿态(即位置和定向)是通过提供形状和姿态的一些初始近似(初始化)以及优化定义对象的形状和姿态的参数以最小化对关于对象的先验知识以及可用传感器数据进行编码的一些代价函数以便生成改进的估计来细化的。初始的形状和姿态可能来自车载探测器,在这种情况下,本技术属于检测“细化”的范畴。或者,可以使用一些其他离线过程来初始化形状和姿态,在这种情况下,这些技术属于离线检测的保护伞。
为了生成3D边界框注释,例如,应该定义边界框的尺寸参数θB=(H,W,D),以及包括由三个位置参数定义的3D空间中的位置和由三个定向参数定义的3D定向的六维姿态pn。为了在边界框内对对象的形状进行建模,使用了由形状参数θS定义的三维形状模型。可以定义不同的形状模型,并且下面将进一步详细地讨论形状模型的示例。通过最小化代价函数500来优化形状参数、姿态参数和尺寸参数。图9示出了相对于对象模型定义的代价函数的框图,对象模型本身由一组形状参数θS和边界框尺寸参数θB以及姿态参数(p0,…,pn)定义。在这个示例中,对象模型假设对象的尺寸和形状在时间上是恒定的,因此为捕获对象的传感器数据的时间序列确定了单组形状参数θS和尺寸参数θB,其中,对象的姿态在时间上变化,从而为与至少一个传感器模态的捕获帧相对应的时间序列的每个时间步i确定姿态向量pi。可以基于可用的传感器数据以及形状和运动模型来调整形状、尺寸和姿态参数的值,以最小化包括多个项的总误差函数500。可以使用梯度下降方法来执行优化,其中,基于总误差500相对于模型参数的梯度来更新参数。
在一些实施例中,对象的形状和尺寸可以完全由单组形状参数θS编码。在这种情况下,对象由形状θS和姿态p定义。示例形状模型将形状和尺寸信息二者编码在定义对象表面的符号距离场(signed distance field,SDF)的一组参数中。这将在后面描述。
姿态参数900(p0,…,pn)的一组值最初可以由一个或更多个车辆检测器提供,这些检测器对应于传感器数据可用的时间步的子集,并且这些姿态可以在优化中迭代细化,如图9所示。例如,车辆检测器可以提供与检测器所使用的摄像头图像帧的时间序列内的对象的位置和定向相对应的一组姿态。或者,可以基于来自一个或更多个模态的传感器数据离线生成一组初始姿态。如上所述,细化管线的离线检测和检测细化技术可以从多个传感器模态接收数据,包括例如激光雷达回波和雷达回波以及摄像头图像。然而,这些传感器测量值可能在时间上与来自检测器的初始姿态不直接对应。在这种情况下,由一个或更多个运动模型参数θM定义的运动模型902可以用于对与原始检测相对应的估计姿态进行插值,以便获得与姿态估计之间的传感器测量值相对应的中间姿态。插值仅在姿态未与传感器测量值及时对准的情况下使用。例如,姿态900可以在时间上与图像帧的时间序列对准,但是不与这些姿态对准的雷达和激光雷达点的时间序列也是可用的。在这种情况下,插值用于确定仅与激光雷达和雷达测量值对准的估计姿态。在不同传感器模态的相应误差模型内的细化过程中使用中间姿态。下面将对此进行更详细的描述。运动模型可以基于关于被检测对象的运动的假设;例如,车辆运动模型的一种可能选择是恒定曲率和加速度模型。
对象形状参数θS和尺寸参数θB的初始估计可以根据在线或离线检测生成,或者可以基于对象的数据集提供平均形状和尺寸,平均形状和尺寸可以用作初始形状和尺寸。这需要对象类的知识,该知识是根据在线或离线应用的对象分类器确定的。
在图9所示的示例模型中,可用的传感器数据包括2D图像帧Ii∈{I0,…,II}、激光雷达测量值Lj∈{L0,…,LJ}和雷达测量值Rk∈{R0,…,RK}。如上所述,姿态参数900不一定与所有传感器测量值的时间相符。然而,插值过程904为姿态参数900的当前值提供一组估计的中间姿态,给出每个相应传感器测量值的估计的中间姿态。
一组最佳的姿态和形状参数应该与直接从传感器数据获得的对象的形状或姿态的知识一致。因此,为每个可用的传感器模态提供对误差函数500的贡献。注意,一些传感器模态不能单独用于导出姿态或形状参数的估计。例如,雷达数据本身过于稀疏,无法提供对象姿态或形状的估计,并且不能用于确定3D形状,因为雷达系统只给出二维的精确空间位置,通常是X-Y平面(即鸟瞰图)中的径向距离,而没有高度信息。
图像误差项Eimg由图像处理部件908计算,并且促进摄像头图像的时间序列Ii与形状和姿态参数θS、θB、p之间的一致性。接收与图像的时间序列相对应的一组姿态,以及一组当前的形状模型参数θS和一组框维度θB。尽管图9中未示出,但图像处理部件908也可以接收摄像头数据,从而能够识别摄像头的姿态和图像平面。这些参数一起提供了对象的当前3D模型。对象的3D模型被投影到图像平面中,这需要了解摄像头姿态和焦距。将投影模型与2D图像Ii的特征进行比较,并计算重投影误差916,该重投影误差916对时间序列的所有摄像头图像Ii上进行聚合,以生成包括聚合重投影误差的“图像”误差项Eimg 506。
通过将重投影的模型与从图像中提取的特征进行比较来计算重投影误差。在本文中称为语义关键点细化的一个示例基于图像的方法中,定义了与要建模的对象类的特征(例如车辆的前灯或车轮)相对应的一组语义关键点,并且形状模型906定义了3D边界框内的每个关键点的相对位置,框维度910定义了边界框的尺寸,并且边界框姿态900提供边界框的位置和定向。这与摄像头姿态的知识相结合定义了3D语义关键点的一组3D位置。另外,2D语义关键点检测器可以应用于2D图像帧,以确定语义关键点在图像平面中的2D位置。然后将重投影误差916计算为对重投影的3D语义关键点和检测到的关键点进行聚合的距离测量。稍后将对该方法进行更详细的描述。其他基于图像的方法可以使用图像的不同特征来计算重投影误差916。
语义关键点是计算机视觉中的一个重要连接点。语义关键点是对象上有语义意义的点,这样的一组关键点提供了对象的简明视觉抽象。可以在此背景中使用的语义关键点检测算法的细节可以在https://medium.com/@laanlabs/real-time-3d-car-pose-estimation-trained-on-syntheti c-data-5fa4a2c16634,“Real time 3d car poseestimation trained on synthetic data(根据合成数据训练的实时3D汽车姿态估计)”(Laan Labs),通过引用合并于本文。训练卷积神经网络(convolutional neural network,CNN)检测器来检测14种车辆语义关键点类型:左上挡风玻璃、右上挡风玻璃、左上后窗、右上后窗、左后灯、右后灯、左门把手、右门把手、左前灯、右前灯、左前轮、右前轮、左后轮、右后轮。每个语义关键点的(x,y)位置在图像平面内被估计(概率地,作为可能的关键点位置上的分布),其继而可以被映射到3D对象模型内相同类型的对应3D语义关键点。
在聚合912中在图像帧的时间序列上聚合重投影误差916,该聚合912作为图像误差项Eimg提供给总代价函数500。
当激光雷达数据可用时,激光雷达处理部件(误差模型)922也可以用于形状和姿态优化。在这种情况下,为在时间步j处接收到的一组激光雷达信号返回收集激光雷达测量值Lj的时间序列。如上所述,这些不一定对应于发生其他传感器测量值的时间戳或者对应于姿态900可用的时间,尽管在插值之后,生成与激光雷达测量值相对应的一组中间姿态{pi}。如上所述,激光雷达测量值可以通过在短时间间隔上执行扫描并将在该扫描中生成的所有激光雷达测量值作为对应于相同时间间隔的测量值来进行,以获得更密集的点云,在该点云中捕获3D结构。然而,在这种情况下,每个时间步i对应有单个激光雷达测量值发生的时刻,并且在整个时间序列上聚合之前,为每个测量值计算激光雷达误差。如上所述,对于摄像头图像数据,3D形状模型906、边界框维度910和姿态900可以用于确定3D空间中的对象的估计模型。例如,形状模型可以提供定义3D表面的参数,该3D表面可以由符号距离场(SDF)表示。在这种情况下,激光雷达误差924可以基于根据激光雷达测量值的点到表面的距离和对象的当前3D模型,激光雷达测量值是3D中的点。激光雷达误差924在激光雷达测量的时间序列上聚合为总和918,以获得在进行每个相应测量的时间点处所有捕获的激光雷达测量值到模型的估计表面的总点到表面的距离。将该聚合总和作为激光雷达误差项Elid512提供给优化520。
还可以使用雷达处理部件(误差模型)926。雷达允许使用多普勒效应测量对象与雷达发射器的径向距离以及所述对象沿着传输线的径向速度。这种速度测量在本文中可以称为“多普勒速度”。根据形状、尺寸和姿态参数,被建模的对象的形状和姿态估计与运动模型902相结合,提供对象状态的估计,即其在对应于原始姿态的每个时间步处的速度和加速度,而插值904提供对应于所有中间时间步的速度和加速。如上所述,可以根据当前姿态、形状和尺寸参数来估计对象在3D空间中的3D模型。
雷达误差920基于3D模型和雷达测量值Rk的时间序列之间的不一致,雷达测量值Rk包括雷达信号返回雷达传感器时的径向距离测量值和多普勒速度。将径向距离与从上到下观看的3D模型到2D平面的投影进行比较。径向距离测量允许在自上而下的2D视图内测量点的位置,并且可以针对在时间上与雷达测量值相符的姿态来计算该点到3D对象模型的投影表面的距离的测量。如上所述,这些可以根据一组原始姿态900进行插值。雷达误差924还包括测量基于当前模型参数的对象上的点的估计径向速度与测量的多普勒速度vk的一致性的项。这取决于对象的姿态,即,如果当前对象模型表明雷达测量击中了车辆侧面,但实际上雷达信号击中了后窗,则观测到的多普勒速度将与预期不同。下文将参考图12对预期多普勒速度的确定进行更详细的描述。雷达误差920可以计算径向距离和径向速度两者的误差的聚合,并且这可以通过聚合操作928在雷达测量值可用的所有时间步k上进行聚合。这种聚合为优化提供了雷达误差项Erad 510。
任何其他可用的传感器数据都可以通过应用传感器测量值和对象模型之间的一致性测量而被合并到优化中。例如,立体摄像头对可以用于获得3D立体深度信息,该信息可以以与上面针对雷达和激光雷达描述的方式类似的方式与3D空间中的对象模型进行比较。
除了与测量数据的一致性之外,要建模的对象的行为的知识还可以用于随着时间的推移细化估计的形状和姿态。例如,对于车辆,可以对车辆在时间上的位置和运动做出许多假设。
第一“环境可行性”模型930可以提供误差,该误差惩罚对象与其环境的预期相互作用的偏差。该误差可能会聚合多个惩罚,多个惩罚编码关于对象在其环境中的行为的不同规则。简单的示例是,汽车总是沿着道路表面行驶,因此车辆模型不应将车辆放置在明显高于或低于道路表面高度的位置。例如,可以通过应用道路表面检测器来生成3D中的道路表面的估计。环境可行性误差930然后可以应用当前建模的汽车车轮将停靠在其上的表面与从道路表面检测器估计的道路表面之间的距离的测量。车轮接触道路表面的点是基于对对象形状和姿态的当前估计来近似的。这可以在聚合934中在姿态被优化的所有时间步上进行聚合,并且聚合的环境可行性误差可以作为环境误差Eenv提供给优化520。
“运动学可行性”模型932可以加强建模对象的形状和姿态与被建模对象的已知运动原理的一致性。例如,在普通驾驶条件下,汽车沿着相对平滑的曲线路径行驶,如果汽车在当前轨迹上向前加速,那么汽车突然侧向跳跃,甚至急剧侧向移动,在运动学上是不可行的。不同的运动模型可以对关于车辆的可行运动的知识进行编码,例如恒定曲率和加速度模型。可以定义运动学可行性误差932,其采用所估计的对象模型的每一对连续姿态,并且根据已经定义的任何运动规则来检查车辆在这两个姿态之间的运动是否真实。该误差可以基于全运动模型(例如上述的恒定曲率和加速度模型),或者它可以基于规则(例如当从一个点到达另一个点所需的平均加速度高于某个阈值时,可以定义惩罚的误差)。运动学可行性模型932可以与用于对估计姿态进行插值的运动模型902相同。
形状正则化术语可用于加强形状模型与对象形状的一些先验知识的一致性。例如,在上述语义关键点细化中,定义对象的边界框内的3D语义关键点的位置,即,左前大灯应该始终近似在边界框的左下角和前方的事实可以通过惩罚对象的形状模型的当前估计(在这种情况下,对象边界框内的一组关键点的位置)与根据该模型的对象的预期形状之间的不一致的误差项来合并。对于语义关键点,每个关键点的预期位置可以由3D高斯分布来表示,并且形状正则化项940可以基于在各个概率分布下建模的对象关键点的概率,其中,不太可能的位置将比接近高斯中心的位置受到更重的惩罚。一般来说,形状正则化项940可以用于强制与尚未在形状模型的定义中编码的关于对象的形状的任何假设保持一致。对于某些对象,将假设对象的形状不会随时间变化,因此只需要学习单组形状参数。然而,可以定义可变形对象模型,其中,对象的形状可以随时间变化,并且在这种情况下,可以针对每个时间步将单独的形状正则化应用于建模的形状,并且这可以在姿态900的整个时间序列上聚合。
形状正则化项确定形状误差Eshape508,该形状误差Eshape508可以被包括在要最小化的总误差500中。一些模型可以将关于对象类的形状的任何先验知识完全编码在形状模型906本身的参数中,因此不需要形状正则化项940。示例模型使用深度SDF(DeepSDF)或主成分分析(Principal Component Analysis,PCA)基于包括要建模的对象类的示例对象的数据来学习定义对象的3D表面的小参数空间。在这种情况下,形状参数本身对对象形状的统计特性进行编码。
总误差500可以通过上述不同模态的误差项的聚合518来获得。对于刚体建模,假设形状和尺寸参数不变,因此学习单组形状θS和尺寸θB,同时为一组时间步中的每个时间步学习不同的姿态p。对于可变形模型,形状参数可以随时间变化,并且可以学习不同时间的一组形状参数。半刚体可以建模为刚性对象的组合,基于物理上合理的运动对其相对运动和姿态进行限制。
聚合518可以被加权以给予一些建模限制或假设更大的重要性。应注意,没有单独的误差项对形状和姿态参数施加硬限制,并且在总误差500的完全优化中,每个误差项都鼓励最终的形状和姿态满足与关于形状和运动的先验知识的一致性以及与观察到的传感器数据的一致性的“软”限制。定义对象模型的参数,即形状θS、尺寸θB、运动θM和姿态p参数,可以作为优化过程520的一部分被迭代更新,以便将该总误差最小化。该更新可以基于梯度下降,其中,相对于要更新的每个参数θμ获得误差函数500的梯度,并且参数θμ更新如下:
其中,η是定义每个优化步骤的更新大小的学习率。在更新参数之后,可以重新计算误差和梯度,并且可以继续优化,直到收敛到一组最优参数。
图10示出了代价项的简化框图,该代价项可以包括在要优化的代价函数(本文中也称为误差函数E)中,以确定对象的3D模型,对于该对象,已经捕获了2D图像数据、深度数据(例如来自立体成像,或来自将深度提取技术应用于2D单目图像)、激光雷达点云和雷达测量值。注意,这是可以获得数据的一组可能的传感器模态的说明性示例。本文描述的技术可以与来自两个或更多个传感器模态的任意组的数据一起使用。除了所描述的传感器数据之外,可以使用关于要注释的对象类的先验知识,例如,关于该对象类型的形状的现有知识、关于该对象如何预期移动的知识以及关于这样的对象在其环境中可能位于何处的知识。
这些知识源和传感器模态中的每一个可以被合并到单个误差函数中,基于该误差函数可以执行形状和姿态模型参数的优化。图10示出了如何根据与不同传感器模态和不同先验知识来源相对应的单个误差项来构建单个误差函数500。该误差函数是在特定的时间段内、遍及传感器数据中的多个帧定义的,并且定义对象的形状和姿态的参数被优化,以最小化给定时间段的总误差。
环境代价项502,表示为Eenv,其被定义为惩罚偏离给定对象类型与其环境之间的预期关系的边界框。例如,该项可以编码以下事实,汽车沿着地面平面移动,因此不应该看起来高于道路表面,其中,道路表面可以由相应的检测器确定。
运动误差项504,表示为Emotion,对给定类别的对象的预期运动的模型进行编码。在车辆的示例情况下,可以定义运动模型,该运动模型对以下事实进行编码:车辆通常沿着相对平滑的轨迹移动,并且不会以不连续的方式突然从一个横向位置跳到另一个。为了惩罚从一个帧到另一个帧的不现实的移动,可以在连续帧上成对地计算运动代价项。
定义表示为Eimage的图像误差项506,以惩罚在摄像头图像数据中捕获的内容与估计的对象注释之间的偏差。例如,可以将估计的3D边界框投影到图像平面中,并与在相应的时间步捕获的2D摄像头图像进行比较。为了以有意义的方式将2D图像与3D边界框的投影进行比较,2D图像中的对象的一些知识必须是可用的,例如由边界框检测器获得的2D边界框。在这种情况下,可以定义Eimage以惩罚3D边界框到图像平面的投影与检测到的2D边界框之间的偏差。在另一个示例中,如上所述,3D形状模型906可以由一组“语义关键点”定义,并且图像误差项506可以被定义为估计边界框内的估计关键点到2D图像平面的投影与通过应用2D语义关键点检测器从2D图像确定的一组2D语义关键点之间的偏差。稍后将描述语义关键点细化技术的更多细节。
定义表示为Eshape的形状误差项508,以惩罚由注释参数定义的形状与待注释对象的预期形状之间的偏差。有多种可能的方式将形状信息编码到形状模型中。如上所述,形状误差项508不需要作为要优化的总体误差500的一部分,但是本技术的实施方式应当包括关于误差函数500中的对象形状的先验知识,或者包括在要被适配以定义对象的形状和姿态的参数的定义中。
在给定场景的雷达数据可用的情况下,可以包括雷达误差项510,表示为Eradar,其惩罚基于捕获的雷达测量的对象的一部分的观测径向速度与基于估计的对象形状、姿态和线速度计算的对象的同一点的预期径向速度之间的偏差。在驾驶背景中,例如通过里程计,自主车辆上雷达传感器的姿态和线速度是已知的。雷达误差项可用于细化对象的形状和姿态,因为观测到的径向速度与基于对象的估计形状、姿态和线速度的预期值非常不同,是雷达信号以与由估计状态定义的角度不同的角度撞击对象并且估计的姿态或需要被调整的指示。类似地,如果雷达路径与根据当前形状模型估计的车辆前牌照相交,但实际上它撞到了前轮,则预期径向速度将与观察到的速度显著偏离。可以调整对象模型的参数以校正形状和姿态,直到预期径向速度和测量的速度大致一致,服从于要优化的其他误差项。
在给定场景的激光雷达点云数据可用的情况下,可以定义激光雷达误差项512,表示为Elidar。该误差项应被定义为惩罚由当前估计的形状和姿态定义的对象表面与捕获的激光雷达数据中对应于对象的激光雷达点的测量之间的偏差。基于激光信号反射回接收器所花费的时间,激光雷达给出了相对于激光雷达传感器的一组3D点,表示3D结构。因此,在已知发射器和接收器位置的情况下,可以直接确定每个激光雷达点的位置,从而形成3D中的点云。因此,激光雷达误差可以计算根据对象的形状和姿态的当前估计的对象的估计表面与该组激光雷达点之间的聚合距离测量,该聚合距离测量是在激光雷达测量值和时间序列帧中的每个激光雷达帧的3D对象表面上聚合的。
可以定义表示为Edepth的“深度”误差项514,其中,其他3D数据可用于给定图像,例如从立体图像对获得的立体深度图,或者从一个或更多个立体深度图导出的“立体”点云,或者替代地,通过将深度提取模型应用于2D单目图像而获得的“单声道”深度图或点云。如上所述,对于激光雷达点云,深度误差项可以惩罚来自给定传感器模态的3D深度信息与基于对象形状和姿态的当前估计的对象的预期深度之间的偏差。
误差函数E可以被公式化为在对象要被建模的给定场景的所有帧上的上述所有误差代价函数的总和。
如上所述,根据定义形状和姿态的对象模型的选择,以及不同传感器模态的可用数据,可以通过基于图5所示的代价函数的子集优化定义对象形状和姿态的对象模型参数来执行离线细化。本文描述的细化技术使用至少两个传感器模态,并在多个时间步的周期内优化对象的姿态。注意,对所有传感器模态的每个测量帧初始化估计的形状和姿态。初始形状和姿态估计可以基于单个传感器模态的车辆检测器的输出,并且在这仅在与该传感器模态的测量值相对应的时间步可用的情况下,可以通过在检测之间插值来获得中间时间步的初始形状和姿态数据。
形状模型906和/或上面的形状正则化项可以包含要建模的对象的类别的知识。例如,可以定义多个可能的形状模型906,每个模型对应于一组可能的对象类中的不同对象类。类似地,可以定义多个形状先验938,每个形状先验对应于一组可能的对象类中的不同的一个。对象分类器可以应用于来自一个或更多个传感器模态的传感器数据,以确定要建模的对象的类别,并且这可以用于适当地选择形状先验和/或形状模型。
如图11A-图11C所示。图11A示出了对象分类器1100,该对象分类器1100将要建模的对象捕获的传感器数据1104作为输入。这可以包括例如图像帧Ii的时间序列。对象分类器1100从一组N个可能类别中输出对象类1102。对象分类器可以在车辆检测器内在线实现,并且该类别中的对象类1102被接收为上面提到的用于初始化姿态900的车辆检测的一部分。替代地,对象分类器可以作为细化管线的一部分离线应用,以根据包含对象的可用传感器数据来确定对象类1102。
图11B示出了如何使用所确定的对象类来选择上述代价函数中使用的形状模型906。定义了一组N个可能的形状模型,每个模型对应于一个可能的对象类。对于语义关键点示例,对于“汽车”类,对应的形状模型可以定义与汽车特征(如前大灯、前翼镜等)相对应的一组关键点位置。第二“行人”类可以具有与身体部位(如“头部”、“右脚”等)相对应的一组关键点位置参数作为对应的形状模型。类似地,对于上述SDF示例,针对一组可能类别中的每个类别,学习不同的潜在空间,使得“行人”类别具有定义人类预期3D表面的一组参数的形状模型,而“汽车”类别具有对应的形状模型,该形状模型具有定义汽车预期3D表面的一组参数。对于所确定的对象类l,使用对应的形状模型l作为用于上述优化的形状模型906。
图11C示出了如何使用所确定的对象类来选择用于上述形状正则化940的形状先验938。对于上述语义关键点示例,给定类的形状先验是基于该类的观测数据中的关键点的统计的分布。对于“汽车”类,基于汽车数据集中关键点的相对3D位置来学习对应的形状先验。对于行人类别,可以通过分析一组3D行人表示中“行人”关键点的3D位置来学习行人形状先验。一旦为要建模的对象确定了类别l,则如上所述,选择与该类别相对应的形状先验作为形状正则化项内的形状先验938。
语义关键点
第一种可能的技术是基于“语义关键点”的概念,该技术使用关于对象形状的先验知识来改进姿态和形状估计。根据该技术可以训练2D关键点检测器来预测2D图像内可能的关键点位置上的一组语义关键点位置或概率分布,并且3D边界框检测器可以被优化以基于2D图像的预测的关键点和关于给定对象类的对象的关键点分布的先验假设来预测对象的姿态和形状。
以下描述同时涉及“世界”参考系和对象参考系。对象在“世界”参考系中的姿态只是指相对于某个参考点的位置,该参考点相对于环境是静止的。移动车辆的位置以及车辆任何单个特征的位置在世界参考系中不断变化。相比之下,对象参考系指的是给定特征或点在对象本身静止的框架内的位置。在这个框架中,任何以与车辆相同速度移动的对象在对象参考系中都是静止的。只有当对象框架相对于世界框架的状态已知时,才能在世界参考系中确定在对象参考系内定义的点。
现在将描述用于自动驾驶车辆堆栈的离线检测器的语义关键点检测方法,该方法预测车辆在驾驶场景中的3D形状和姿态。这可以作为细化管线的一部分来实现,如上所述。可以训练2D语义关键点检测器,其预测2D图像上的一组2D关键点位置或可能的关键点位置上的分布。然后,通过将3D关键点在图像平面中的投影拟合到原始2D检测到的关键点并且将3D估计的关键点拟合到语义关键点模型来拟合包含一组估计的3D语义关键点的3D边界框,该语义关键点模型编码关于边界框内所选一组关键点的相对布局的知识。这用于优化世界参考系中3D边界框的尺寸和姿态,以及框内语义关键点的位置。首先为对象类定义语义关键点模型,在本例中为汽车。例如,可以定义多个关键点模型,并且可以基于2D检测器输出的对象类来选择相关模型。
图3是示出如何使用语义关键点检测器302来预测2D摄像头图像中汽车的一组语义关键点的位置的示意框图。首先,2D对象检测器300可以用于将图像310裁剪到包含应当应用关键点检测的对象的感兴趣区域312。可以通过对检测应用填充来获得裁剪区域,以增加对象在裁剪区域内被完全捕获的可能性。2D语义关键点检测器然后可以应用于来自帧的时间序列的每个裁剪帧312。每个2D帧可以由2D摄像头202捕获。通常,一个或更多个摄像头安装在自主车辆上,以在真实世界的驾驶过程中收集这些图像。注意,在语义关键点检测器是在完整图像上训练的情况下,对象检测器是不必要的,并且该过程假设语义关键点探测器被配置为应用于裁剪的图像。
语义关键点检测器可以实现为卷积神经网络,并且可以在包括用定义的语义关键点的位置注释的2D图像帧的真实或合成数据上进行训练。卷积神经网络可以被配置为输出每个语义关键点的热图,该热图显示给定语义关键点在图像的空间维度上的分类概率。语义关键点检测器充当分类器,其中,对于每个像素,网络预测表示该像素包含给定类的语义关键点的可能性的数值。可以将高斯分布拟合到每个热图,以获得用于各个关键点的2D空间中的一组连续分布。因此,语义关键点检测器302的输出是覆盖有一组分布308的2D图像,每个分布表示图像的2D平面内的关键点的位置。
然而,在将语义关键点检测单独应用于一组2D图像之后,检测到的关键点在3D中的位置是未知的。如上所述,目标是确定在时间上定义对象的位置和姿态的一组3D边界框。可以通过分析包含要建模的对象类的多个示例的数据集来确定所选语义关键点的相对布局的统计模型。然后,可以基于每个语义关键点出现在3D对象数据内的位置来为该关键点确定3D中的高斯分布。为了获得3D中检测到的关键点的相对位置的初始估计,可以选择平均语义关键点位置。在本文所述的优化中,使用对每个帧的2D图像平面的重投影误差和惩罚偏离所有帧上的语义关键点的预期相对布局的误差两者来拟合3D语义关键点,允许在多个帧上建立对象的3D重建。这在本文中可以被称为来自运动的结构(SfM)。
注意,其他形状先验可以用于语义关键点。例如,可以从数据中学习在3D中定义对象表面的潜在空间。这可以用作语义关键点的形状先验,因为语义关键点位置相对于表面先验是已知的。在这种情况下,代替使用正则化项,语义关键点位置相对于表面模型被完全限制,并且表面模型的参数被改变,以最小化如上所述的检测到的关键点的重投影误差。
图4示出了一组估计的3D语义关键点如何在对象参考系内、定义对象尺寸的边界框内以3D方式表示,以及如何在世界参考系内基于运动结构进行重建。通常,SfM将应用于从移动摄像头202捕获的在世界参考系中是静态的结构的图像。该结构将与3D摄像头路径同时在3D中重建。这里的区别在于,在世界参考系中定义的具有六个自由度(3D位置+3D定向)的摄像头姿态qn对于每个帧n(例如经由里程计)是已知的,但是对象本身在世界中移动。然而,由结构从运动中三角化的一组点仅提供点相对于对象本身的参考系的位置,而不提供世界系中的位置。由于摄像头姿态是已知的,并且在应用SfM之后点相对于摄像头的估计位置也是已知的,因此可以将点的估计位置映射回世界帧。可以应用里程测量技术来确定在捕获每一帧时的摄像头位置和姿态。
初始长方体404可以用一组初始语义关键点sk来定义。定义长方体的维度和姿态以及长方体内语义关键点的位置的参数被优化以确定对象在一组帧上的形状和姿态。长方体的初始位置和姿态可以基于该帧的对象的3D检测来确定,例如根据感知堆栈使用的3D检测器来确定,该3D检测器基于激光雷达点云信息结合2D摄像头图像来预测3D边界框。可以例如基于在其上选择关键点的数据中的各个关键点的平均位置来选择一组初始语义关键点sk。
这些长方体404在如图4中自上而下的视图所示,摄像头202在每个帧处具有定义其在世界帧中的位置和定向的已知姿态qn,并且在每个帧n处对象的估计边界框404显示为具有六个自由度的估计姿态pn=(rn,θn)(三个位置坐标和三个定向坐标,尺寸维度W×L×H)和在具有3D位置的长方体内定义的语义关键点。这些变量是联合优化的。
注意,由于假设被检测的对象是刚体,并且其形状不随时间变化,所以长方体404的尺寸和长方体404内语义关键点sk的位置在所有帧上是恒定的。仅允许框404的姿态在时间上变化。执行优化以便基于2D检测器302输出的2D语义关键点检测来联合地拟合3D边界框和语义关键点,并且基于真实世界的统计来拟合定义语义关键点的一组预期位置的语义关键点模型。可以定义上述变量的代价函数,其包括基于由3D检测器输出的摄像头帧中的语义关键点sk和2D检测到的关键点之间的重投影误差的项。由于2D检测到的关键点由高斯分布表示,因此该误差可以定义为3D中语义关键点到2D图像平面的投影P(sk)之间的距离。代价函数的第二“正则化”项基于给定类别的对象在3D框内的3D关键点的3D位置上的学习分布来惩罚3D关键点中的偏差。
语义关键点模型提供关于对象特征相对于对象的参考系的位置的先验知识。例如,其中,一个语义关键点是汽车的左前大灯,语义关键点模型指定该关键点的相对位置应位于汽车的左前方,相对于汽车自身的参考系。该模型可以指定参考系内的精确位置,其中,每个语义关键点被预期。然而,这可能对对象的形状限制太大,并且该类别的对象的更通用的模型是定义参考系内每个关键点的空间分布。该分布可以基于观察到的真实世界统计数据,例如,可以聚合多个已知的汽车模型以识别一组预定义语义关键点中的每一个的统计分布。
为了简单起见,在对象参考系内仅示出了三个语义关键点s1、s2、s3,然而可以定义任何合适的一组语义关键点。一个示例模型为车辆的左侧和右侧各指定了一组7个关键点,包括前轮、前灯、门把手、上挡风玻璃、尾灯、后轮和上后窗。然而,这只是一个示例,并且可以定义与对象类的视觉特征相对应的任何合理的一组关键点。
对于像汽车这样的类,可以利用对象的已知左右对称性来将要确定的语义关键点位置的数量减少一半。在这种情况下,语义关键点检测器被训练为检测对象两侧的关键点,并且这些关键点根据上述代价函数被优化。然而,在优化关键点位置时,仅确定一半的位置参数,其余的点是所确定的关于对象对称平面的点的反射。请注意,优化会惩罚2D中所有检测到的关键点之间的偏差,但3D估计的关键点仅由一半数量的参数完全定义,以便在其上强制对称。
图5示出了基于根据图像平面中检测到的语义关键点的2D重投影误差(Eimage)和鼓励语义关键点根据学习的先前分布占据边界框内其近似预期位置的正则化项(Eshape)来联合优化边界框的姿态和尺寸以及语义关键点位置的过程。对误差函数的第三个贡献是运动误差Emotion,它惩罚对象不现实的移动,例如车辆从一个帧突然跳到另一个帧。这可以针对每个连续的帧对来计算。整个误差函数在所有帧上都得到了优化,因此获得了一组最佳尺寸参数,包括一组边界框维度和形状参数,定义了语义关键点在其中的位置的位置,以及所有帧上的一组最佳姿态,这些姿态通过运动模型在连续帧上“平滑”。
图6示出了如何将边界框404内估计的3D语义关键点重投影到2D中的图像平面中,其中,关键点可以与2D语义关键点检测器预测的2D检测到的关键点“对准”。图6示出了投影到图像平面中的边界框404,以及用“x”表示的估计关键点600。原始2D检测602用“+”表示。代价函数鼓励移动框的姿态,直到“x”和“+”总体上紧密对准,而3D边界框内语义关键点的位置也可以针对所有帧进行移动(因为这被假设为刚性的,因此不会随时间变化),以便在所有帧上对准“x”与“+”。
符号距离场
“符号距离场”(SDF)是将表面表示为符号距离的标量场的模型。在每个点上,场所取的值是从该点到对象表面的最短距离,如果该点位于表面外部,则为负值,如果该点将位于表面内部,则为正值。
例如,给定一个半径为r的2维球(2-sphere),由方程描述
x2+y2+z2=r2
表示为F的相应SDF的值如下给出。
F(x,y,z)=r-√(x2+y2+z2)
当一点位于表面外部时,该点处的场F的值为负值,当该点位于表面内部时,该点处的场F的值为正值。表面可以被重建为场的0集,即它为零的点集。
可以通过确定潜在形状空间来学习对象的形状模型906,该潜在形状空间使得学习类中的对象的SDF表面能够由少量参数表示,例如可以使用少至5个参数来拟合车辆SDF。这是有利的,因为它提供了更快的优化,因为要优化的参数更少,并且潜在地提供了更平滑的优化表面。
可以通过多种方式来学习潜在形状空间。一种可能的方法是基于“DeepSDF”,其中,通过训练实现为前馈神经网络的解码器模型来学习给定维度的潜在空间。解码器模型将给定对象i的3D位置xj和该对象的“潜在代码”向量zi作为输入,并输出表示该对象在3D空间中该点的表面的SDF的值。可以为每个对象i输入多个点xj,并且单个潜在向量zi与每个对象相关联。潜在向量旨在对低维潜在空间内的对象的形状进行编码。可以通过在具有要建模的对象类的示例的数据集上进行训练来学习潜在空间,例如可以使用3D汽车模型的合成数据集来学习汽车的形状空间。选择潜在空间的维度是为了指定应该定义对象的表面模型的参数的数量。潜在空间的学习是通过在来自汽车模型数据集的一组训练示例上训练解码器来完成的,每个训练示例包括3D点位置和相应的符号距离值的输入,其中,这对于3D对象模型的训练集是已知的。训练示例中的每个形状与多个3D点和SDF值相关联,并且潜在代码与每个形状相关联。在训练中,通过网络的反向传播来学习网络的参数和每个形状的潜在代码。例如,在Zakharov等人的“Autolabeling 3D Objects with DifferentiableRendering of SDF Shape Priors(用SDF形状先验的不同渲染自动标记3D对象)”中描述了DeepSDF,该文献通过引用整体合并于此。
形状模型的参数也可以使用主成分分析(PCA)来确定。在这种情况下,可以通过分析一组符号距离场来从已知对象形状的数据集学习形状空间,如上所述,该组符号距离场可以表示为例如体素网格中的点处的SDF的一组值,并且识别定义SDF的空间的维度,该维度在形状的数据集中具有最大的方差,并因此对最多的形状信息进行编码。然后,这些维度形成了定义3D中对象形状的基础。例如,Engelmann等人的“Joint Object PoseEstimation and Shape Reconstruction in Urban Street Scenes Using 3D ShapePriors(使用3D形状先验的城市街道场景中的联合对象姿态估计和形状重建)”和Engelmann等人的“SAMP:Shape and Motion Priors for 4D Vehicle Reconstruction(形状和运动先验:4D车辆重建的形状和运动先验)”中描述了使用基于PCA的潜在空间的建模,这两篇文章都以引用的方式整体并入。
一旦基于与感兴趣的对象类(例如车辆)相关的真实或合成3D数据学习了潜在空间,则可以通过拟合在学习的潜在空间内表达的最适合传感器数据的形状模型(诸如激光雷达点云或立体深度图),使用SDF来生成场景中对象的细化形状和姿态估计。
现在将描述一种方法,其中,通过少量潜在空间参数预先参数化的SDF形状用于基于从一个或更多个传感器(诸如激光雷达、雷达等)获得的3D点云来细化一组3D车辆检测。可以通过应用3D检测器来获得具有所定义的对象姿态的初始3D边界框,例如自主车辆上的运行时间检测器。形状表面的初始3D SDF表示可以在给定的位置和定向放置在此边界框内。例如,这可以是基于学习潜在空间的数据定义平均形状的平均潜在向量z0。
然后可以通过优化如上所述的代价函数500来执行形状和姿态的优化,其中,在这种情况下,代价函数至少包括:
a.基于每个帧的当前形状和姿态,每个帧中所有点的点到表面的距离(此误差可能是Elidar、Eradar和Edepth中的任何一个,取决于可用的3D传感器模式)。此代价是逐帧计算的,并在相应的帧时间序列上聚合。
b.一种运动模型,用于惩罚与给定对象类的预期运动限制的偏差,例如惩罚车辆的跳跃式横向运动(Emotion)
c.惩罚环境中偏离预期行为的环境模型Eenv,例如,这将惩罚将车辆放置在地平面以上的车辆模型,因为汽车应该沿着道路表面移动。
可以在该优化期间同时调整边界框的姿态和定义对象形状的参数,以生成对象的改进的形状和姿态,例如使用梯度下降方法来确定模型的每个参数的更新。
请注意,尽管图9示出了一组边界框尺寸参数,但这些参数也可以在潜在形状空间中编码,使得形状模型参数θS完全定义对象的尺寸和形状。
或者,可以在不同的时间优化不同的参数。例如,可以首先优化边界框的姿态,以便在保持对象的形状固定的同时最小化总代价函数,然后可以调整形状参数,以便最小化包含该形状的边界框的恒定姿态的代价函数。应该注意的是,在对车辆建模时,假设形状是刚性的,因此在一组帧上只学习单个形状,其中,假设姿态从一帧变到另一帧。然而,所描述的方法也可以通过优化可以随帧变化的形状参数而应用于非刚性对象。
对于每个帧,基于该帧的当前形状和姿态,对该帧中的每个点的点到表面的距离求和,并调整姿态以最小化点到表面的距离的总和。然后,对于组合的所有帧,假设为刚性对象,可以调整形状参数以最小化总体误差,其中,假设由于对象是刚性的,所以所有帧的形状都是相同的,如上所述用于语义关键点实现。
可以基于所估计的边界框姿态来聚合不同帧上的点云。如上所述,在更新姿态的多次迭代中,聚合的点云变得更加精确,形状变得越来越像“真实”的车辆形状。
注意,如果在不同尺寸的类内的一组对象上进行训练,则潜在空间模型可以对对象类的尺寸以及形状进行编码。在这种情况下,要优化的3D对象模型完全由形状参数θS定义,对象姿态p也得到了优化。或者,可以基于一组归一化的形状来学习潜在空间,并且被拟合的3D表面的尺寸参数也可以包括在优化中,如参考图9所述,其中,形状θS和尺寸θB参数(边界框维度)都被优化。
初始框可能来自车辆上的运行时检测。这些被归一化,以便强制限制对象的尺寸在所有帧中保持不变。
雷达速度代价项
现在将更详细地描述作为雷达误差项510的一部分的要与雷达测量值进行比较的预期多普勒速度的生成。
图12示出了至少部分基于一组雷达测量值Rk来优化的估计对象形状1000,每个测量包括空间位置Rk和多普勒速度vk,形状由形状参数θS和可选的尺寸参数θB定义。图12示出了鸟瞰2D视图,因为这是雷达测量值捕获的空间信息。将对象形状的当前3D估计投影到2D中以获得2D形状1000。如上所述,3D形状模型可以是定义3D表面的符号距离场,并且在这种情况下,2D投影将定义2D鸟瞰图中的表面的极限。形状1000被示出为具有在时间Tn的一些位置、定向以及尺寸(由当前估计的姿态p的2D投影和尺寸维度θB定义。在时间tk=Tn,从雷达传感器位置rsensor捕获了点rk,其中,rk定义了鸟瞰图中雷达测量值的空间坐标,即2D空间位置。点rk相对于雷达轴502具有方位角αk。例如在雷达传感器安装在移动车辆上的情况下,传感器位置rsensor和雷达轴502的定向也可以是与时间相关的。
由雷达测量的车辆上对应于rk的点可以通过首先确定对象中心的速度来估计。这是在给定上述运动模型参数θM的情况下计算的。基于形状的宽度及其当前估计的定向,以及将方位角αk映射到雷达根据对象的当前估计模型应该观察的形状表面的一侧或部分的函数,推导出雷达系统可见的形状表面部分。雷达测量的对象上的预期位置是来自方位角αk方向上的雷达传感器位置rsensor的射线1002与估计对象表面的观测部分的交点。计算从形状中心(即运动中心)到目标表面的向量rdisp=rcom-rsurface。然后使用向量rdisp来确定形状的入射表面处的预测速度为vsurface=u+ω×rdisp。这里,u是形状1000的质心在时间Tn时的线速度,ω是时间Tn时的角速度。如前所述,这些是运动模型的参数θM。最后,将速度vsurface投影到射线1002,以确定给定雷达点的预期多普勒速度。
然后,多普勒速度对雷达误差项510的贡献基于预期多普勒速度和对应于雷达回波rk的多普勒速度vk之间的距离的测量来确定。
计算机系统可以包括被配置为执行本文公开的方法/算法步骤的执行硬件。术语执行硬件包括被配置为执行相关方法/算法步骤的硬件的任何形式/组合。执行硬件可以采取一个或更多个处理器的形式,其可以是可编程的或不可编程的,或者可以使用可编程和不可编程硬件的组合。合适的可编程处理器的示例包括基于指令集架构的通用处理器,例如中央处理器(CPU)、图形处理器(GPU)/加速器处理器等。这样的通用处理器通常执行保持在耦接到处理器的存储器中的计算机可读指令,并根据这些指令执行相关步骤。其他形式的可编程处理器包括具有通过电路描述代码可编程的电路配置的现场可编程门阵列(field programmable gate array,FPGA)。不可编程处理器的示例包括专用集成电路(application specific integrated circuit,ASIC)。代码、指令等可以适当地存储在暂时性或非暂时性介质上(后者的示例包括固态、磁性和光学存储设备等)。
Claims (23)
1.一种对在多个传感器模态的传感器数据的多个时间序列中捕获的3D对象进行定位和建模的计算机实现方法,所述方法包括:
优化应用于所述传感器数据的多个时间序列的代价函数,其中,所述代价函数随时间和所述多个传感器模态聚合,并且根据一组变量定义所述代价函数,所述一组变量包括:
3D对象模型的一个或更多个形状参数,以及
所述3D对象模型的姿态的时间序列,每个姿态包括3D对象位置和3D对象定向;
其中,所述代价函数惩罚所述传感器数据的多个时间序列与所述一组变量之间的不一致,其中,所述对象属于已知对象类,并且所述3D对象模型或所述代价函数对与所述已知对象类相关联的预期3D形状信息进行编码,从而以优化所述代价函数为目的,通过调整每个姿态和所述形状参数来对所述3D对象进行在多个时刻的定位和对所述3D对象进行建模。
2.根据权利要求1所述的方法,其中,所述代价函数的变量包括针对于3D对象的运动模型的一个或更多个运动参数,其中,所述代价函数还惩罚所述姿态的时间序列与所述运动模型之间的不一致,从而以优化所述代价函数为目的,通过调整每个姿态、所述形状参数和所述运动参数来对所述对象进行定位和建模,以及对所述对象的运动进行建模。
3.根据权利要求2所述的方法,其中,所述传感器数据的多个时间序列中的至少一个包括在时间上不与所述姿态的时间序列中的任何姿态对准的传感器数据段,所述方法包括:
使用所述运动模型来根据所述姿态的时间序列计算在时间上与所述传感器数据段相符的插值姿态,其中,所述代价函数惩罚所述传感器数据段与所述插值姿态之间的不一致。
4.根据权利要求2或3所述的方法,其中,所述传感器数据的至少一个时间序列包括图像的时间序列,并且所述传感器数据段是图像。
5.根据权利要求2或3所述的方法,其中,所述传感器数据的至少一个时间序列包括激光雷达数据的时间序列或雷达数据的时间序列,所述传感器数据段是单独的激光雷达回波或者雷达回波,并且所述插值姿态与所述激光雷达回波或者所述雷达回波的回波时间相符。
6.根据前述权利要求中任一项所述的方法,其中:
所述变量另外包括用于缩放所述3D对象模型的一个或更多个对象维度,所述形状参数独立于所述对象维度;或者
所述3D对象模型的形状参数对3D对象形状和对象维度二者进行编码。
7.根据前述权利要求中任一项所述的方法,其中,所述代价函数在所述姿态违反环境限制时附加地惩罚每个姿态。
8.根据权利要求7所述的方法,其中,所述环境限制相对于已知3D道路表面来定义。
9.根据权利要求8所述的方法,其中,每个姿态用于相对于所述道路表面定位所述3D对象模型,并且所述环境限制在所述3D对象模型不位于所述已知3D道路表面上时惩罚每个姿态。
10.根据前述权利要求中任一项所述的方法,其中,所述多个传感器模态包括图像模态、激光雷达模态和雷达模态中的两个或更多个。
11.根据前述权利要求中任一项所述的方法,其中,所述传感器模态中的至少一个传感器模态使得所述姿态和所述形状参数不能够单独从该传感器模态中唯一地导出。
12.根据前述权利要求中任一项所述的方法,其中,所述传感器数据的多个时间序列中的一个是对测量的多普勒速度进行编码的雷达数据的时间序列,其中,所述姿态的时间序列和所述3D对象模型用于计算预期多普勒速度,并且所述代价函数惩罚所测量的多普勒速度和所述预期多普勒速度之间的差异。
13.根据前述权利要求中任一项所述的方法,其中,所述传感器数据的多个时间序列中的一个是图像的时间序列,并且所述代价函数惩罚(i)所述图像和(ii)所述姿态的时间序列与所述3D对象模型之间的聚合重投影误差。
14.根据权利要求13所述的方法,其中,将语义关键点检测器应用于每个图像,并且在所述对象的语义关键点上定义所述重投影误差。
15.根据前述权利要求中任一项所述的方法,其中,所述传感器数据的多个时间序列中的一个是激光雷达数据的时间序列,其中,所述代价函数基于激光雷达点和由所述3D对象模型的参数定义的3D表面之间的点到表面的距离,其中,所述点到表面的距离遍及所述激光雷达数据中的所有点聚合。
16.根据权利要求15所述的方法,其中,所述3D对象模型被编码为距离场。
17.根据前述权利要求中任一项所述的方法,其中,在所述3D对象模型中对所述预期3D形状信息进行编码,所述3D对象模型是从包括所述已知对象类的示例对象的训练数据集学习的。
18.根据权利要求1至16中任一项所述的方法,其中,在所述代价函数的正则化项中对所述预期3D形状信息进行编码,所述代价函数的正则化项惩罚所述3D对象模型与所述已知对象类的3D形状先验之间的差异。
19.根据前述权利要求中任一项所述的方法,包括:
使用对象分类器从多个可用对象类中确定所述对象的已知类,所述多个对象类与相应的预期3D形状信息相关联。
20.根据前述权利要求中任一项所述的方法,其中,将相同的所述形状参数应用于用于建模刚性对象的姿态的时间序列中的每个姿态。
21.根据权利要求1至19中任一项所述的方法,其中,所述3D对象模型是可变形模型,其中所述形状参数中的至少一个遍及帧而变化。
22.一种计算机系统,包括被配置为实现前述权利要求中任一项的方法的一个或更多个计算机。
23.计算机程序代码,被配置为对计算机系统进行编程以实现权利要求1至21中任一项的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2110950.9 | 2021-07-29 | ||
GBGB2110950.9A GB202110950D0 (en) | 2021-07-29 | 2021-07-29 | Perception of 3d objects in sensor data |
PCT/EP2022/071117 WO2023006835A1 (en) | 2021-07-29 | 2022-07-27 | Perception of 3d objects in sensor data |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117795566A true CN117795566A (zh) | 2024-03-29 |
Family
ID=77651203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280053133.8A Pending CN117795566A (zh) | 2021-07-29 | 2022-07-27 | 传感器数据中三维对象的感知 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN117795566A (zh) |
GB (1) | GB202110950D0 (zh) |
WO (1) | WO2023006835A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021508393A (ja) * | 2018-09-07 | 2021-03-04 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | 同時に位置特定およびマッピングを実行するためのデバイスおよび方法 |
US11061406B2 (en) * | 2018-10-22 | 2021-07-13 | Waymo Llc | Object action classification for autonomous vehicles |
US10853670B2 (en) * | 2018-11-21 | 2020-12-01 | Ford Global Technologies, Llc | Road surface characterization using pose observations of adjacent vehicles |
-
2021
- 2021-07-29 GB GBGB2110950.9A patent/GB202110950D0/en not_active Ceased
-
2022
- 2022-07-27 WO PCT/EP2022/071117 patent/WO2023006835A1/en active Application Filing
- 2022-07-27 CN CN202280053133.8A patent/CN117795566A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
GB202110950D0 (en) | 2021-09-15 |
WO2023006835A1 (en) | 2023-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112292711B (zh) | 关联lidar数据和图像数据 | |
EP4145393B1 (en) | Vehicle localization | |
US8564657B2 (en) | Object motion detection system based on combining 3D warping techniques and a proper object motion detection | |
Laugier et al. | Probabilistic analysis of dynamic scenes and collision risks assessment to improve driving safety | |
CN113366486B (zh) | 使用区域外上下文的对象分类 | |
US20180349746A1 (en) | Top-View Lidar-Based Object Detection | |
WO2020094033A1 (en) | Method and system for converting point cloud data for use with 2d convolutional neural networks | |
JP5023186B2 (ja) | 3dワーピング手法と固有対象物運動(pom)の検出の組み合わせに基づく対象物の動き検出システム | |
CN112740268B (zh) | 目标检测方法和装置 | |
CN111771207A (zh) | 增强的车辆跟踪 | |
US20210303922A1 (en) | Systems and Methods for Training Object Detection Models Using Adversarial Examples | |
US20210389133A1 (en) | Systems and methods for deriving path-prior data using collected trajectories | |
CN114365201A (zh) | 结构注释 | |
US20230213643A1 (en) | Camera-radar sensor fusion using local attention mechanism | |
US11961304B2 (en) | Systems and methods for deriving an agent trajectory based on multiple image sources | |
CN116051779A (zh) | 用于自主系统和应用的使用深度神经网络利用点云致密化的3d表面重建 | |
US20230311932A1 (en) | Merging object and background radar data for autonomous driving simulations | |
López et al. | Computer vision in vehicle technology: Land, sea, and air | |
Agafonov et al. | 3D objects detection in an autonomous car driving problem | |
CN116048060A (zh) | 用于自主系统和应用的使用神经网络基于真实世界数据的3d表面结构估计 | |
CN116051780A (zh) | 用于自主系统和应用的使用人工智能利用点云致密化的3d表面重建 | |
US20230237210A1 (en) | 3d multi-object simulation | |
US11810365B1 (en) | Perception error modeling | |
US11961241B2 (en) | Systems and methods for deriving an agent trajectory based on tracking points within images | |
CN112800822A (zh) | 利用结构约束和物理约束进行3d自动标记 |
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 |