CN115439401A - 用于深度神经网络的图像标注 - Google Patents
用于深度神经网络的图像标注 Download PDFInfo
- Publication number
- CN115439401A CN115439401A CN202210629299.1A CN202210629299A CN115439401A CN 115439401 A CN115439401 A CN 115439401A CN 202210629299 A CN202210629299 A CN 202210629299A CN 115439401 A CN115439401 A CN 115439401A
- Authority
- CN
- China
- Prior art keywords
- image
- bounding box
- vehicle
- cropped
- motion 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 43
- 230000033001 locomotion Effects 0.000 claims abstract description 93
- 238000000034 method Methods 0.000 claims description 105
- 238000012545 processing Methods 0.000 claims description 19
- 238000005259 measurement Methods 0.000 claims description 9
- 230000001131 transforming effect Effects 0.000 claims description 9
- 230000002441 reversible effect Effects 0.000 claims description 2
- 238000012549 training Methods 0.000 description 70
- 230000008569 process Effects 0.000 description 57
- 239000002131 composite material Substances 0.000 description 17
- 238000013519 translation Methods 0.000 description 16
- 230000014616 translation Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 230000015654 memory Effects 0.000 description 12
- 238000001514 detection method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000002708 enhancing effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 238000002485 combustion reaction Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000003042 antagnostic effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000012636 effector Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000004091 panning Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0011—Planning or execution of driving tasks involving control alternatives for a single driving scenario, e.g. planning several paths to avoid obstacles
-
- 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
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0015—Planning or execution of driving tasks specially adapted for safety
- B60W60/0017—Planning or execution of driving tasks specially adapted for safety of other traffic participants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4053—Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/73—Deblurring; Sharpening
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- 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/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- 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
-
- 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/20084—Artificial neural networks [ANN]
-
- 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/20112—Image segmentation details
- G06T2207/20132—Image cropping
-
- 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/20172—Image enhancement details
- G06T2207/20201—Motion blur correction
-
- 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/30—Subject of image; Context of image processing
- G06T2207/30248—Vehicle exterior or interior
- G06T2207/30252—Vehicle exterior; Vicinity of vehicle
- G06T2207/30261—Obstacle
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/12—Bounding box
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/08—Detecting or categorising vehicles
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Automation & Control Theory (AREA)
- Mechanical Engineering (AREA)
- Transportation (AREA)
- Human Computer Interaction (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
本公开提供了“用于深度神经网络的图像标注”。可以从包括在车辆中的第一传感器获取第一图像并将所述第一图像输入到深度神经网络以确定第一对象的第一边界框。可以从第一传感器获取第二图像。从包括在车辆中的第二传感器输入横向运动数据和纵向运动数据,所述横向运动数据和所述纵向运动数据对应于输入第一图像与输入第二图像之间的时间。可以通过基于横向运动数据和纵向运动数据平移第一边界框来确定第二边界框。可以基于第二边界框裁剪第二图像。可以将裁剪的第二图像输入到深度神经网络以检测第二对象。可以输出第一图像、第一边界框、第二图像和第二边界框。
Description
技术领域
本公开涉及车辆中的深度神经网络。
背景技术
可以训练深度神经网络以执行各种计算任务。例如,可以训练神经网络以从图像中提取数据。计算装置可以使用通过深度神经网络从图像中提取的数据来操作***,所述***包括车辆、机器人、安全、产品制造和产品跟踪。图像可以由包括在***中的传感器获取并使用深度神经网络进行处理以确定关于***周围环境中的对象的数据。***的操作可以依赖于获取关于***环境中的对象的准确且及时的数据。
发明内容
可以使用用于包括车辆引导、机器人操作、安全、制造和产品跟踪的***的训练数据集来训练深度神经网络(DNN)以确定由传感器获取的图像数据中的对象。车辆引导可以包括以自主或半自主模式操作车辆。机器人引导可以包括引导机器人末端执行器(例如夹持器)以拾取零件并对零件进行取向以便组装。安全***包括其中计算机从观察安全区域的相机获取视频数据以向授权用户提供访问并检测未授权进入的特征。例如,安全***还可以向授权用户提供对计算装置或蜂窝电话的访问。在制造***中,计算机中的DNN可以通过例如确定人的手在特定时间相对于机器操作循环的位置来检测制造操作中的非期望机器操作。例如,在产品跟踪***中,深度神经网络可以检测到有人从架子上取下物品并将其放入购物车中,并自动向人收取对象的费用。例如,其他产品跟踪***包括包裹分选以便运送。
通过处理训练数据集中的大量(可能超过1000个并且有时达到1,000,000个或更多)图像来训练DNN。训练DNN以检测图像中的对象可能需要针对训练数据集中的每个图像进行对应的标注或标记,在本文中也被称为地面实况。在该上下文中,检测图像中的对象包括确定对象的标签和边界框。标签是识别诸如“车辆”或“行人”等对象的文本串。边界框是最小封闭矩形,即,与包含被认为表示对象的所有像素所需要的矩形一样大但不会更大的矩形,其中边平行于包括对象的图像的边或边界。训练DNN可能需要包括训练数据集中包括对象的每个图像的标签和边界框的标注。
本文中将车辆引导描述为使用具有异常数据检测的DNN的非限制性示例。例如,车辆中的计算装置可以被编程为获取关于车辆的外部环境的图像数据并使用DNN来检测图像数据中的对象。所述数据可以包括从静态相机或摄像机获取的图像数据、从激光雷达传感器获取的范围数据或从雷达传感器获取的雷达数据。可以训练DNN以标记和定位图像数据、测距数据或雷达数据中的对象。计算装置可以使用检测到的对象的身份和位置来确定以自主或半自主模式操作车辆的车辆路径。车辆可以基于车辆路径通过确定命令来指示车辆的动力传动***、制动和转向部件操作车辆以沿着所述路径行驶,而在道路上操作。确定异常数据可以确定何时忽略来自DNN的预测输出,由此避免基于非预期结果来操作车辆。
可以使用视频数据来获得训练DNN以检测用于车辆引导的对象所需的大量图像。获得与包括DNN在推理时(即,在真实世界中使用DNN时)将遇到的对象类型的图像类型类似的训练数据集图像可以改进DNN的训练。可以通过将摄像机安装在车辆上并在获取用于训练DNN以用于车辆引导的视频数据的同时驾驶车辆通过车辆在正常操作期间可能遇到的环境类型来获得视频数据。通过这种方式获得训练数据集可以提供训练数据,所述训练数据将包括与车辆在真实世界情况中遇到的交通场景和对象类似的交通场景和对象,由此提供大量高质量的训练图像。
使用不可靠标注的训练图像训练DNN可能会在推理时产生DNN的不可靠的性能。本文讨论的技术可以通过使用DNN标注由包括在车辆中的摄像机获取的图像来改进对训练数据集的获取,并且当DNN未能检测到图像中的对象时,基于车辆运动数据和先前检测到的对象来裁剪图像,并且使用所裁剪的图像来确定图像标注。本文讨论的技术可以通过使用超分辨率、模糊、缩放和分层金字塔裁剪修改裁剪图像以改进训练数据集来进一步改进图像。
本文公开了一种方法,所述方法包括:从包括在车辆中的第一传感器获取第一图像并将所述第一图像输入到深度神经网络以确定第一对象的第一边界框;从所述第一传感器输入第二图像;以及从包括在所述车辆中的第二传感器输入横向运动数据和纵向运动数据,所述横向运动数据和所述纵向运动数据对应于输入所述第一图像与输入所述第二图像之间的时间。所述方法包括:通过基于所述横向运动数据和所述纵向运动数据平移所述第一边界框来确定第二边界框;基于所述第二边界框裁剪所述第二图像;将所述裁剪的第二图像输入到所述深度神经网络以检测第二对象;以及输出所述第一图像、所述第一边界框、所述第二图像和所述第二边界框。在尝试使用深度神经网络确定第二边界框但未能成功确定时,可以通过基于横向运动数据和纵向运动数据平移第一边界框来确定第二边界框。第一图像、第一边界框、第二图像和第二边界框可以被上传到第二计算机以训练深度神经网络。
可以通过沿由横向运动数据和纵向运动数据指示的方向递增地平移第一边界框来确定第二边界框。第二传感器可以包括获取方向盘方向和车辆前进/后退运动中的一者或多者的传感器。第二传感器可以包括惯性测量单元。可以通过超分辨率将裁剪的第二图像变换为更高空间分辨率。可以将裁剪的第二图像变换为包括运动模糊。可以通过缩放裁剪的第二图像来变换裁剪的第二图像。可以将裁剪的第二图像变换为包括分层金字塔处理,以便以多个空间分辨率获得包括第二对象的图像数据。第一边界框和第二边界框中的一者或多者可以用于操作车辆。可以基于第一边界框和第二边界框中的一者或多者来确定车辆路径。可以通过控制车辆动力传动***、车辆制动器和车辆转向中的一者或多者来在车辆路径上操作车辆。可以将训练过的深度神经网络下载到车辆中的计算装置。
还公开了一种计算机可读介质,所述计算机可读介质存储用于执行上述方法步骤中的一些或全部的程序指令。还公开了一种被编程用于执行上述一些或所有方法步骤的计算机,所述计算机包括计算机设备,所述计算机设备被编程为:从包括在车辆中的第一传感器获取第一图像并将所述第一图像输入到深度神经网络以确定第一对象的第一边界框;从所述第一传感器输入第二图像;以及从包括在所述车辆中的第二传感器输入横向运动数据和纵向运动数据,所述横向运动数据和所述纵向运动数据对应于输入所述第一图像与输入所述第二图像之间的时间。所述计算机还可以被编程为:通过基于所述横向运动数据和所述纵向运动数据平移所述第一边界框来确定第二边界框;基于所述第二边界框裁剪所述第二图像;将所述裁剪的第二图像输入到所述深度神经网络以检测第二对象;以及输出所述第一图像、所述第一边界框、所述第二图像和所述第二边界框。在尝试使用深度神经网络确定第二边界框但未能成功确定时,可以通过基于横向运动数据和纵向运动数据平移第一边界框来确定第二边界框。第一图像、第一边界框、第二图像和第二边界框可以被上传到第二计算机以训练深度神经网络。
所述计算机还可以被编程为通过沿由横向运动数据和纵向运动数据指示的方向递增地平移第一边界框来确定第二边界框。第二传感器可以包括获取方向盘方向和车辆前进/后退运动中的一者或多者的传感器。第二传感器可以包括惯性测量单元。可以通过超分辨率将裁剪的第二图像变换为更高空间分辨率。可以将裁剪的第二图像变换为包括运动模糊。可以通过缩放裁剪的第二图像来变换裁剪的第二图像。可以将裁剪的第二图像变换为包括分层金字塔处理,以便以多个空间分辨率获得包括第二对象的图像数据。第一边界框和第二边界框中的一者或多者可以用于操作车辆。可以基于第一边界框和第二边界框中的一者或多者来确定车辆路径。可以通过控制车辆动力传动***、车辆制动器和车辆转向中的一者或多者来在车辆路径上操作车辆。可以将训练过的深度神经网络下载到车辆中的计算装置。
附图说明
图1是示例性深度神经网络***的框图。
图2是示例性深度神经网络的图示。
图3是示例性生成式对抗网络的图示。
图4是包括边界框的示例性图像的图示。
图5是包括边界框的另一个示例性图像的图示。
图6是示例性裁剪图像的图示。
图7是用于确定标注图像的示例性过程的流程图。
图8是用于训练深度神经网络的示例性过程的流程图。
图9是使用深度神经网络操作车辆的示例性过程的流程图。
具体实施方式
图1是对象检测***100的图示,所述对象检测***可以包括在可以自主(“自主”本身在本公开中意指“完全自主”)模式、半自主模式和乘员驾驶(也称为非自主)模式操作的车辆110中。一个或多个车辆110的计算装置115可从传感器116接收关于车辆110的操作的数据。计算装置115可以自主模式、半自主模式或非自主模式操作车辆110。
计算装置115包括诸如已知的处理器和存储器。另外,存储器包括一种或多种形式的计算机可读介质,并且存储指令,所述指令可由处理器执行来执行包括如本文所公开的各种操作。例如,计算装置115可包括编程以操作车辆制动、推进(例如,通过控制内燃发动机、电动马达、混合动力发动机等中的一者或多者来控制车辆110的加速度)、转向、气候控制、内部灯和/或外部灯等中的一者或多者,并且确定计算装置115(而不是人类操作员)是否以及何时控制此类操作。
计算装置115可以包括多于一个计算装置(例如,包括在车辆110中以用于监测和/或控制各种车辆部件的控制器等等(例如,动力传动***控制器112、制动控制器113、转向控制器114等)),或例如经由如下文进一步所描述的车辆通信总线通信地耦合到所述多于一个计算装置。计算装置115通常被布置用于通过车辆通信网络(例如,包括车辆110中的总线,诸如控制器局域网(CAN)等)通信;另外地或可选地,车辆110网络可以包括诸如已知的有线或无线通信机制,例如以太网或其他通信协议。
计算装置115可经由车辆网络向车辆中的各种装置(例如,控制器、致动器、传感器(包括传感器116)等)传输消息和/或从所述各种装置接收消息。替代地或另外,在计算装置115实际上包括多个装置的情况下,可使用车辆通信网络来用于在本公开中表示为计算装置115的装置之间的通信。另外,如下文所提及,各种控制器或感测元件(诸如传感器116)可经由车辆通信网络向计算装置115提供数据。
此外,如下文所描述,计算装置115可被配置用于通过车辆对基础设施(V对I)接口111经由网络130与远程服务器计算机120(诸如云服务器)通信,所述接口包括硬件、固件和软件,所述硬件、固件和软件准许计算装置115经由诸如无线互联网或蜂窝网络的网络130与远程服务器计算机120通信。因此,V对I接口111可包括被配置为利用各种有线和/或无线联网技术(例如,蜂窝、以及有线和/或无线分组网络)的处理器、存储器、收发器等。计算装置115可被配置用于使用例如在邻近车辆110之间在移动自组网的基础上形成或通过基于基础设施的网络形成的车辆对车辆(V对V)网络(例如根据专用短程通信(DSRC)和/或类似的通信)通过V对I接口111与其他车辆110通信。计算装置115还包括诸如已知的非易失性存储器。计算装置115可通过将数据存储在非易失性存储器中来记录数据,以供稍后检索并且经由车辆通信网络和车辆对基础设施(V对I)接口111传输到服务器计算机120或用户移动装置160。
如已经提及的,通常包括在存储在存储器中并可由计算装置115的处理器执行的指令中的是用于在没有人类操作员干预的情况下操作一个或多个车辆110部件(例如,制动、转向、推进等)的编程。使用在计算装置115中接收的数据(例如,来自传感器116的传感器数据、服务器计算机120等的数据),计算装置115可在没有驾驶员的情况下进行各种确定和/或控制各种车辆110部件和/或操作以操作车辆110。例如,计算装置115可以包括编程以调节车辆110操作行为(即,车辆110操作的物理表现),诸如速度、加速度、减速度、转向等,以及策略性行为(即,通常以预期实现路线的安全而有效的穿越的方式进行的操作行为控制),诸如车辆之间的距离和/或车辆之间的时间量、车道改变、车辆之间的最小间隙、左转跨过路径最小值、到特定位置处的到达时间以及从到达到通过十字路口的十字路口(无信号灯)最短时间。
如本文所使用的术语控制器包括通常被编程来监测和/或控制特定车辆子***的计算装置。示例包括动力传动***控制器112、制动控制器113和转向控制器114。控制器可为诸如已知的电子控制单元(ECU),可能包括如本文所描述的附加的编程。控制器可通信地连接到计算装置115并且从所述计算装置接收指令以根据指令来致动子***。例如,制动控制器113可从计算装置115接收指令以操作车辆110的制动器。
用于车辆110的一个或多个控制器112、113、114可包括已知的电子控制单元(ECU)等,作为非限制性示例,包括一个或多个动力传动***控制器112、一个或多个制动控制器113和一个或多个转向控制器114。控制器112、113、114中的每一者可以包括相应的处理器和存储器以及一个或多个致动器。控制器112、113、114可以被编程并且连接到车辆110通信总线,诸如控制器局域网(CAN)总线或局域互连网(LIN)总线,以从计算装置115接收指令并且基于指令而控制致动器。
传感器116可以包括已知可经由车辆通信总线提供数据的各种装置。例如,固定到车辆110的前保险杠(未示出)的雷达可提供从车辆110到车辆110前方的下一车辆的距离,或者设置在车辆110中的全球定位***(GPS)传感器可提供车辆110的地理坐标。例如,由雷达和/或其他传感器116提供的一个或多个距离和/或由GPS传感器提供的地理坐标可由计算装置115用来自主或半自主地操作车辆110。
车辆110通常是能够自主和/或半自主操作并且具有三个或更多个车轮的陆基车辆110(例如,客车、轻型卡车等)。车辆110包括一个或多个传感器116、V对I接口111、计算装置115以及一个或多个控制器112、113、114。传感器116可以收集与车辆110和车辆110操作所处的环境相关的数据。作为举例而非限制,传感器116可包括例如测高仪、相机、激光雷达、雷达、超声波传感器、红外传感器、压力传感器、加速度计、陀螺仪、温度传感器、压力传感器、霍尔传感器、光学传感器、电压传感器、电流传感器、机械传感器(诸如开关)等。传感器116可用来感测车辆110操作所处的环境,例如,传感器116可检测诸如天气状况(降雨、外部环境温度等)的现象、道路坡度、道路位置(例如,使用道路边缘、车道标记等)或目标对象(诸如邻近车辆110)的位置。传感器116还可以用于收集数据,包括与车辆110的操作相关的动态车辆110数据,诸如速度、横摆率、转向角度、发动机转速、制动压力、油压、施加到车辆110中的控制器112、113、114的功率电平、在部件之间的连接性以及车辆110的部件的准确且及时的性能。
车辆可被配备成以自主模式和乘员驾驶模式两者操作。半自主模式或完全自主模式意指车辆可由作为具有传感器和控制器的***的一部分的计算装置部分地或完全地驾驶的操作模式。车辆可能被占用或未被占用,但是在任一种情况下,都可在没有乘员协助的情况下部分地或完全地驾驶车辆。出于本公开的目的,自主模式被定义为车辆推进(例如,经由包括内燃发动机和/或电动马达的动力传动***)、制动和转向中的每一个由一个或多个车辆计算机控制的模式;在半自主模式中,车辆计算机控制车辆推进、制动和转向中的一个或多个。在非自主模式下,这些都不由计算机控制。
图2是DNN 200的图式。DNN 200可以是在包括于对象检测***100中的计算装置115或服务器计算机120上执行的软件程序。在该示例中,DNN 200被示为卷积神经网络(CNN)。本文描述的技术也可以应用于未被实施为CNN的DNN。被实施为CNN的DNN 200通常输入图像(IN)202作为输入数据。输入图像202由卷积层204处理以形成潜在变量206(即,在DNN 200中的神经元之间传递的变量)。卷积层204包括多个层,所述多个层各自将输入图像202与卷积内核进行卷积,所述卷积内核对输入图像202进行变换并使用诸如最大池化等算法来处理变换后的输入图像202以在由卷积层204处理时降低变换后的输入图像202的分辨率。由卷积层204输出的潜在变量206被传递到全连接层208。全连接层208包括处理节点。全连接层208使用线性和非线性函数来处理潜在变量206以确定输出预测(OUT)210。在本文讨论的示例中,输出预测210包括对象标签和边界框。
DNN 200可以输入由包括在对象检测***100中的传感器116获取的图像202。对象检测***100可以包括在诸如车辆110等机器中或与所述机器一起包括在内;传感器116可以包括摄像机。图像202可以是包括车辆110周围的环境的视频数据帧,并且对象可以是例如车辆或行人。DNN 200可以处理图像202以确定对包括标签和边界框的预测210,所述边界框包括图像202中的对象。车辆110中的计算装置115可以接收输出预测210并基于输出预测210来执行操作。在其中对象检测***100包括在车辆110中的示例中,输出预测210可以包括对象标签和对象边界框。例如,计算装置115可以基于包括在输出预测210中的对象标签和边界框来确定在其上操作车辆110的车辆路径。
可以使用包括图像和对应的地面实况的训练数据集来训练DNN 200。DNN 200的训练数据集可以包括数千或数百万个图像和对应的标注或地面实况。DNN 200可以多次处理训练数据集的每个图像。将响应于输入图像202而从DNN 200输出的预测210与和图像202相对应的地面实况进行比较以确定损失函数。损失函数是确定从DNN 200输出的预测210与和输入图像202相对应的地面实况的匹配程度的数学函数。由损失函数确定的值被输入到DNN200的卷积层204和全连接层208,其中所述值被反向传播以确定与最小损失函数相对应的层的权重。反向传播是一种用于训练其中将损失函数输入到距输入最远的卷积层204和全连接层208并从后向前传送的DNN 200并且通过选择使损失函数最小化的权重确定每个层204、208的权重的技术。
图3是生成对抗网络(GAN)300的图示。GAN 300是可以被训练以执行风格变换的深度神经网络。在本文描述的示例中,可以训练GAN 300以输入模拟图像(SIM)302并输出合成图像(SYN)310。模拟图像302是由真实感渲染软件(例如购自Epic Games,Cary NC,27518的Unreal Engine)生成的图像。真实感渲染软件是用于生成可能看起来好像是由真实世界相机获取的图像的软件。真实感渲染软件可以输入场景描述文件,所述场景描述文件包括描述要渲染的场景的数据,所述数据包括对诸如车辆、行人和建筑物等对象的几何形状和纹理、诸如道路和叶子等背景的描述以及描述照明和天气状况的数据。场景描述文件还可以包括关于将用于渲染场景的虚拟相机的数据,包括位置、取向和虚拟镜头放大率。真实感渲染软件可以在来自虚拟光源的虚拟光线从对象和背景反射并由虚拟相机镜头聚焦到虚拟相机传感器上以生成模拟图像302时跟踪所述虚拟光线。
模拟图像302中所包括的真实感程度是场景描述文件中所包括的细节和专用于渲染模拟图像302的计算资源量的函数。生成具有足够真实感以用于训练DNN 200的模拟图像可能需要大量的试错迭代,这需要大量时间和计算资源。用于增加模拟图像302的真实感的典型更有效的技术是使用GAN 300将真实感特征添加到模拟图像302,所述模拟图像产生包括足够真实感以用于训练DNN 200的合成图像310。真实感特征是图像的使图像看起来更像是使用查看真实世界场景的真实世界相机获取的图像的部分。例如,真实感特征包括关于对象和背景的逼真细节。模拟图像302可以以有限的真实感生成并用GAN 300处理,以与试图生成包括真实感特征的模拟图像302相比在少得多的时间内和使用更少的计算资源来生成具有更大量的真实感特征的合成图像310。
GAN 300包括生成器316,所述生成器包括编码器(ENCODE)304和解码器(DECODE)308。编码器304包括卷积层,所述卷积层将输入的模拟图像302减少到与模拟图像302的压缩版本相对应的潜在变量306。潜在变量306被输入到包括在解码器308中的卷积层,所述卷积层将潜在变量306扩展为全分辨率合成图像310,所述全分辨率合成图像包括使合成图像310看起来好像是使用查看真实世界场景的真实世界相机获取的真实感特征。增加合成图像310中所包括的逼真性可以允许合成图像310用于训练DNN 200以可靠地检测真实世界图像中的对象。
可以通过训练鉴别器(DISC)312以区分“真实”图像和“伪造”图像来训练GAN 300以生成高度逼真的合成图像310,其中“真实”图像是在用户看来它们就像是使用查看真实世界场景的真实世界相机获取的图像,而“伪造”图像是看起来不像是使用查看真实世界场景的真实世界相机获取的图像。在训练期间,鉴别器312中所包括的卷积层输出0至1之间的值,其中0对应于“伪造”图像,而“1”对应于“真实”图像。将输出值返回到损失函数(LOSS)314,所述输出值确定基于鉴别器输出和与输入图像的身份(即,GAN 300的输入是真实图像还是模拟图像302)相对应的地面实况数据的损失函数,即,从所述损失函数输出。损失函数314被反馈到鉴别器312、编码器304和解码器308,以确定鉴别器312、编码器304和解码器308的将损失函数最小化并由此训练GAN 300的权重。然后,训练过的GAN 300将输入模拟图像302并输出包括逼真特征的合成图像310。合成图像310中所包括的逼真特征可以包括对象和背景的真实感细节以及诸如雨或雪等天气状况。
图4是包括基于对象404(在该示例中为车辆)确定的边界框402的示例性图像400的图示。可以通过从包括在车辆110中的视频传感器获取图像400并将图像400输入到在包括于车辆110中的计算装置115上执行的DNN 200来确定边界框402。可以训练DNN 200以通过基于可以包括少于1000个标注图像的有限训练数据集确定对象标签(在该示例中为“车辆”)和对象404的边界框402来检测对象。边界框402可以由左上角406和右下角408限定。在其中可以使用有限的训练数据集来训练DNN 200的示例中,DNN 200可以确定有限数量的配置中的对象的对象标签和边界框402。用有限的训练数据集训练的DNN 200可能能够在相对于图像帧从有限数量的视角以有限数量的大小观察时检测对象。例如,用有限的训练数据集训练的DNN 200可能仅能够检测从后视图以单一大小观察的车辆。本文讨论的技术可以通过使用由DNN 200基于有限训练生成的边界框来为DNN 200由于有限训练而无法处理的图像生成标注图像来改进训练数据集的生成。
车辆110中的计算装置115可以将与从包括在车辆110中的视频传感器获取的第一视频数据帧相对应的图像400输入到对计算装置115执行的DNN 200。DNN 200可以确定与对象404相对应的边界框402和标签。计算装置115可以将与来自视频传感器的第二视频数据帧相对应的第二图像输入到DNN 200。在该示例中,DNN 200可能无法确定第二图像中所包括的对象的边界框和标签,因为第二图像中的对象的外观已经由于车辆110在获取第一视频数据帧的时间与获取视频数据的时间第二帧之间移动而改变。对象的外观可能由于对象的取向差异而改变。例如,第一视频数据帧可以包括从来自后方的对象的视图,而第二帧可以包括对象的包括对象的更多侧面的视图。由于车辆110移动得更近或更远离对象,因此对象可以在第二视频数据帧中以不同的大小出现。由于车辆在获取第一视频数据帧的时间与获取第二视频数据帧的时间之间的运动,因此对象也可能被部分遮挡。所有这些外观变化都可能导致用有限的训练数据集训练的DNN 200无法检测到对象。
本文描述的技术可以通过使用通过第一训练数据集训练的DNN200生成要包括在更大的训练数据集中的标注图像来改进DNN 200的操作,然后可以使用所述标注图像来训练DNN 200以在检测更多种类的姿态和大小的对象,包括检测图像中的对象,其中对象可能被部分遮挡。本文描述的技术(开始于其中DNN 200已经检测到对象的图像)使用由包括在车辆110中的传感器116确定的车辆运动来重新定位边界框并调整其大小以将对象包括在由包括在车辆110中的视频传感器获取的第二图像中。还可以基于重新定位和调整大小的边界框402来裁剪图像,并将图像传递回到DNN 200以使DNN 200再次尝试检测具有通过裁剪消除的所有外来背景的对象。在该上下文中,裁剪图像是使用边界框删除边界框402之外的图像部分来进行。第二图像以及来自前一图像的包括重新定位和调整大小的边界框的标注数据可以存储在计算装置115中。
本文讨论的技术可以生成包括数百万个标注图像的训练数据集。本文讨论的技术使用手动生成数百万个标注图像所需的一小部分计算资源来生成标注图像。另外,本文讨论的技术通过消除用户在确定标注时的判断差异来生成更可靠的标注数据。
图5是包括基于来自前一图像400的边界框402确定的边界框504的图像500的图示。图像500可以对应于由包括在车辆110中的视频传感器获取的第二视频数据帧。边界框504包括在图像500中的边界框402的位置处,所述边界框是通过将与由视频传感器获取的第一视频数据帧相对应的前一图像400输入到DNN 200而生成的。对象502在图像500中的位置由于车辆110在获取与图像400相对应的第一视频数据帧与获取与图像500相对应的第二视频数据帧之间的时间运动而从对应对象404在图像400中的位置发生改变。
可以基于包括在车辆110中的传感器116和计算装置115的输入来确定车辆110在获取第一视频数据帧与获取第二视频数据帧之间的时间间隔期间的运动。车辆的横向运动可以由包括在车辆110的转向部件中的传感器116来确定,所述传感器测量方向盘(通常是车辆110的前轮)的方向盘方向或角度。方向盘方向或角度可以与里程表传感器组合,所述里程表传感器测量与车辆110的驱动轮的旋转相对应的车辆110的纵向移动,所述驱动轮可以是前轮、后轮或两者。方向盘方向或角度和里程表数据可以被输入到车辆的自行车模型。自行车模式通过假设单个后驱动轮和单个前方向盘来简化基于横向数据和纵向数据进行的运动计算。可以将在视频帧之间的时间段内获取的转向角和里程表数据的样本输入到自行车模型以确定车辆的位置和取向的相对变化。车辆的位置和取向的相对变化可以与关于摄像机的取向和位置的数据以及关于包括在摄像机中的镜头的放大率的数据组合,以确定可以应用于边界框504的平移506以将边界框504平移到由虚线示出的边界框508的新位置。平移是一种用于通过使图形特征的每个像素的x、y像素地址递增或递减来移动图像中所包括的图形特征(诸如边界框508)的技术。平移改变边界框508的像素地址或位置,而不使边界框508相对于图像旋转。新边界框508的位置将包括对象502,其中对象502在图像500中的位置的变化是由于车辆110的横向运动和纵向运动引起的。
车辆的横向运动和纵向运动也可以由惯性测量单元(IMU)确定。IMU获取六轴加速度数据。六个轴对应于相对于三个正交方向轴(x、y和z)的运动和围绕三个方向轴(侧倾、俯仰和横摆)的三个旋转运动。可以将六个加速度输入到计算装置115以进行一次积分以提供速度,并且两次积分以提供沿六个轴的位移。来自IMU的位移数据可以被投影到与道路表面平行的平面上,以确定在视频数据帧之间的时间间隔期间车辆110相对于道路的运动。例如,除了由于车轮滑移引起的可能误差或由不同采样率引起的数值误差之外,从IMU输出的运动数据将等于由自行车模型确定的运动数据。可以将从自行车模型输出的运动数据与由IMU输出的运动数据进行比较以验证两个***的准确性。
图6是包括对象502的裁剪图像600。例如,可以通过从图5的图像500(包括边界框508和对象502)开始裁剪图像600。删除边界框508之外的所有图像数据,从而仅留下包括对象502的图像600。可以将裁剪图像600输入到DNN 200以检测包括在裁剪图像中的对象502。例如,DNN 200可能无法检测到来自图5的图像500中的对象502。在裁剪之后,可以将裁剪图像600输入到DNN 200以检测对象502。DNN 200可以检测裁剪图像600中的对象502,因为来自图像500的可能干扰对象检测的外来图像数据不再包括在裁剪图像600中。
简要地返回到图5,基于车辆110的运动数据对边界框504进行平移506可能不会将平移的边界框508精确地定位在对象502上。如果DNN 200未能基于平移的边界框508检测到裁剪图像600中的对象502,则边界框504可以向左或向右和向上或向下递增地移动,这从第一边界框504的位置开始并沿由车辆110的传感器116指示的横向运动数据和纵向运动数据的方向移动。例如,如果车辆传感器116指示车辆110正在向左移动,则图像500中的对象502将看起来向右移动。如果车辆传感器116指示车辆110正在向右移动,则图像500中的对象502将看起来向左移动。同样地,如果车辆传感器116指示车辆110正在向前移动,则图像中的对象502将看起来在图像500中向下移动。如果车辆传感器116指示车辆110正在向后移动,则对象502将看起来在图像500中向上移动。如果DNN 200未能在裁剪图像600中检测到对象,则可以将边界框504移动到多个位置并进行裁剪。每个裁剪图像600可以被输入到DNN200以确定哪个裁剪图像600包括对象502,并且因此确定包括对象502的边界框508在图像500中的位置。包括对象502的边界框508的位置可以与图像500一起输出以包括在用于训练DNN 200的训练数据集中。
在一些示例中,尽管边界框508的多次平移和多个裁剪图像600在图像500的不同位置处,但是DNN 200可能无法检测到对象502。由于对象502的部分模糊引起的对象502的外观,DNN 200可能无法检测到对象502。例如,另一个对象可以暂时出现在车辆110与对象502之间。可以使用图像处理软件来处理裁剪图像600以增强对象502的外观,以允许DNN200更容易地检测对象502。例如,裁剪图像600可以进行超分辨率处理。超分辨率处理是一种用于通过将图像输入到被训练为通过在输入图像的像素之间对图像细节进行插值来增加图像分辨率的深度神经网络来将图像的分辨率增加到更高的空间分辨率的技术。
用于增强裁剪图像600的其他技术包括模糊,所述模糊是用于模拟由于对象502与获取数据的相机之间的相对运动而引起的运动模糊的图像处理技术。运动模糊可以使裁剪图像600中的对象502看起来更逼真,因此更可能被DNN 200检测到。可以使用购自加利福尼亚州圣何塞市的加利福尼亚州95110的图像处理程序(诸如Photoshop)将运动模糊应用于裁剪的图像6oo。用于增强裁剪图像600的另一种技术包括缩放,其中使裁剪图像600中的对象502的分辨率和表观大小更大或更小。缩放通常通过插值图像像素来实现,而不像上述超分辨率那样添加细节。还可以使用Photoshop等将缩放应用于裁剪图像600。用于增强裁剪图像600的另一种技术是分层金字塔处理,其中将裁剪图像600转换为各自处于不同分辨率的多个图像并作为序列进行处理以确定一个或多个分辨率是否允许检测对象502。可以通过在多个分辨率下使用一系列卷积内核对裁剪图像600执行分层金字塔处理。用于处理裁剪图像600的卷积内核也可在诸如Photoshop等图像处理程序中获得。可以在图像500中的多个位置处尝试用于图像增强的这些技术中的一种或多种,以检测裁剪图像600中的对象502。
图7是关于图1至图5所描述的用于生成训练DNN 200的标注图像的过程700的图示。过程700可以由计算装置的处理器实施,例如,将来自传感器的信息作为输入,并且执行命令,并且输出对象信息。过程700包括可以所示顺序执行的多个框。替代地或另外,过程700可以包括更少的框,或者可以包括以不同次序执行的框。例如,过程700可以在包括在车辆110中的计算装置115上实施。
过程700开始于框702,其中从在摄像机中输出的视频序列获取图像作为视频数据帧。车辆110可以包括摄像机,所述摄像机被布置为例如在车辆110在道路上行驶时获取车辆前方的环境的视频数据。
在框704处,过程700检查视频序列是否已经结束。如果视频序列尚未结束并且图像可用,则过程700转到框706。如果视频序列已经结束并且没有更多图像可供处理,则过程700结束。
在框706处,将所获取的图像输入到DNN 200。DNN 200已经被训练为检测图像数据中的对象404、502,如上面关于图2至图6所讨论的。DNN 200可以输出对象标签和边界框402、504,或者无法检测到图像中的对象404、502。在框706处对DNN 200的输入可以是包括要检测的对象的图像400、500或裁剪图像600。在其中DNN 200检测到裁剪图像600中的对象502的示例中,框706输出原始的未裁剪图像500、来自在框714处确定的前一帧的边界框504的图像坐标和描述如何确定裁剪图像600相对于来自前一图像500的边界框504的图像坐标的平移506数据。
在框708处,过程700检查以查看DNN 200是否已经在输入图像中检测到对象404、502。如果检测到对象404、502并且标签和边界框402、504可用,则过程700转到框710。如果对象502包括在裁剪图像600中,则将根据其确定裁剪图像600的原始图像500、基于前一图像400的边界框504以及用于指示确定裁剪图像600相对于边界框504的像素地址的位置的平移506数据传递到框710上。如果DNN 200未能检测到对象,则过程700转到框714。
在框710处,过程700存储图像400和边界框402或基于先前检测到的边界框504的图像500和边界框508以及基于DNN 200在裁剪图像600中检测到对象502的平移506数据。如上面关于图3所讨论的,边界框可以由左上角和右下角确定。
在框712处,过程700将图像400和边界框402或基于先前检测到的边界框504的图像500和边界框508以及基于DNN 200在裁剪图像600中检测到对象502的平移506数据输出到包括在计算装置115中的训练数据集。在框712之后,过程700转到框702以输入与从包括在车辆110中的视频传感器输入的下一帧视频数据相对应的图像。
在框714处,DNN 200未能检测到图像中的对象。过程700假设已经针对在框702处获取的前一图像400检测到至少一个对象404。在框714处,过程700输入在框710处导致存储边界框402的对象404的成功检测与其中DNN 200未能检测到对象的图像500的获取之间的时间段内的横向运动数据和纵向运动数据。横向数据和纵向数据可以被输入到自行车模型或被处理为如上面关于图3所讨论的六轴IMU数据以确定平移506数据。
在框716处,使用平移506数据来平移从计算装置115中所包括的存储器调用的边界框504以确定当前图像500中的新边界框508,如上面关于图5所讨论的。注意,平移506数据可以指示相对于前一边界框504的x方向(向左或向右)和y方向(向上或向下)。边界框508的像素坐标可以在由平移506数据指示的方向上递增达用户确定的增量。通过将边界框504的位置平移达用户确定的增量来移动边界框504可以具有将边界框508在图像500上逐步滑动的效果。在每个步骤处,确定裁剪图像600并将其传递回DNN 200以尝试在框706处检测对象502。边界框504的位置可以在每个步骤处在x方向、y方向上递增,直到DNN 200在裁剪图像600中检测到对象502为止。在其中DNN 200未能检测到对象502并且框716已经用尽边界框508的可能位置的示例中,可以丢弃图像500并且可以在框702处获取新图像500。在其中DNN 200尚未检测到对象502的一些示例中,图像500可以由计算装置115存储,并且当在后续图像500中检测到对象502时,可以在前一图像400与后续图像500之间对边界框508在存储的图像500中的位置进行插值。
在框718处,如上面关于图6所讨论的,使用平移的边界框508来基于当前图像500确定裁剪图像600。
在框720处,可以使用超分辨率、模糊、缩放或分层金字塔处理来修改裁剪图像600。除非尽管将裁剪图像600平移到图像500中的所有可用位置DNN 220未能检测到裁剪图像600中的对象502(即,当裁剪图像600的位置位于图像500的边缘或边界处并且不能进一步平移时),否则裁剪图像600不进行修改。在其中尽管将裁剪图像600平移到图像500中的多个位置但DNN 200未能检测到裁剪图像600中的对象502的示例中,可以将裁剪图像600的位置返回到起始平移并且可以对裁剪图像600执行图像修改,并且修改的裁剪图像可以以x和y平移506增量步进并在框706处发回以供DNN 200处理。图像修改可以依次应用于裁剪图像600,首先执行超分辨率,并且如果未检测到对象502,则裁剪图像600可以通过平移步进,并且可以将模糊应用于裁剪图像600,然后用DNN 200进行处理。如果在模糊的裁剪图像600中未检测到对象,则裁剪图像600可以通过平移步进,并且可以将缩放应用于裁剪图像600,然后用DNN 200进行处理。最后,如果在缩放的裁剪图像600中未检测到对象502,则裁剪图像可以通过平移步进,并且将分层金字塔处理应用于裁剪图像600,然后用DNN 200进行处理。如果在经平移、修改、裁剪图像600中未找到对象502,则可以丢弃所述图像并在框702处获取新图像。
上面关于图7描述的技术可以通过生成包括大量(在一些示例中大于一百万)标注图像500的训练数据集来改进DNN 200的训练以检测对象。可以通过使用来自包括在车辆中的传感器的横向运动数据和纵向运动数据来平移边界框504的位置以标注其中DNN 200未能检测到对象502的图像500来生成标注图像500。本文描述的技术可以使用包括超分辨率、模糊、缩放和分层金字塔处理的图像处理技术来生成对象502的多个视图,以增加DNN 200将在裁剪图像600中检测到对象的概率。可以将标注图像500输出到可以上传到服务器计算机120的训练数据集。
图8是关于图1至图7所描述的用于基于主动学习来训练DNN200的过程的流程图的图示。主动学习是用于确定DNN 200何时无法处理输入图像并基于失效图像提供多个图像以训练DNN 200的过程。过程800可以由计算装置的处理器实施,例如,将来自传感器的信息作为输入,并且执行命令,并且输出对象信息。过程800包括可以以所示顺序执行的多个框。替代地或另外,过程800可以包括更少的框,或者可以包括以不同次序执行的框。
过程800开始于框802,其中获取训练数据集。例如,可以对服务器计算机120执行过程800。训练数据集可以由车辆110中的计算装置115执行如图7所述的过程700来获取。在获取用边界框402、504标注的图像之后,可以将标注图像上传到服务器计算机120。
在框804处,过程800从训练数据集中选择其中DNN 200最初未能找到对象404、502的图像,如上面关于图7所讨论的。
在框806处,过程800基于失效图像生成合成图像302。可以如上面关于图3所讨论的那样生成包括对象404、502的合成图像302。合成图像302通过被配置为生成式对抗网络(GAN)的深度神经网络以生成看起来比如上文关于图3讨论的合成图像302更逼真的合成图像310。合成图像310可以被添加到训练数据集以提供用于训练DNN200的附加图像。
在框808处,修改来自训练数据集的失效图像以生成用于训练数据集的附加图像。失效图像是其中DNN 200在第一次通过时未检测到对象502的图像。如上面关于图6所讨论的,使用超分辨率、模糊、缩放和分层金字塔裁剪来处理失效图像。超分辨率是用于增加输入图像的分辨率的过程。可以通过将失效图像输入到适当训练过的深度神经网络中来执行超分辨率。失效图像也可以变得模糊以模拟车辆运动对输入图像的影响。还可以放大和缩小失效图像以生成包括要添加到训练数据集的附加分辨率的图像。还可以处理失效图像以生成分层金字塔裁剪,其中处理每个失效图像以在多个空间分辨率下生成失效图像的层次结构。生成失效图像的超分辨率版本、失效图像的模糊版本、失效图像的缩放版本和失效图像的分层金字塔为训练数据库提供了附加类型的标注图像以改进DNN 200的训练。
在框810处,使用训练图像数据集中的图像来训练DNN 200。与训练数据集中的图像相对应的地面实况是由DNN 200在上面关于图7描述的过程700中确定的对象标签和边界框。可以将训练数据集随机地划分为三个部分:训练部分、验证部分和测试部分。训练部分用于训练DNN 200,如上面关于图2所讨论的。将图像输入到DNN 200,并将所得输出与地面实况进行比较以确定损失函数。多次处理图像以确定损失函数的最小值,所述最小值用于为DNN 200的层选择一组权重。在训练之后,训练数据集的验证部分由DNN 200处理以确定训练是否产生有效结果。可以使用数据集的验证部分来微调使用数据集的训练部分选择的权重以改进结果。训练数据集的测试部分可以用于确定DNN 200的性能。例如,由DNN 200成功处理的测试部分图像的百分比可以是与DNN 200的性能相对应的最终测试分数。在DNN200被释放以在车辆110中使用之前,可以要求DNN 200的性能超过用户选择的值,例如90%。在训练、验证和测试之后,可以将DNN 200下载到车辆110中的计算装置115以用于操作车辆110。在框812之后,过程800结束。
基于如上文关于图8所描述的主动学习来训练DNN 200可以通过提供包括大量标注图像500的训练数据集来改进DNN 200的训练,所述标注图像包括先前已经使DNN 200未能检测到对象502的图像500。还通过确定哪些图像500已经导致DNN 200失效并生成包括DNN 200未能检测到的对象502的类型的模拟图像302来改进DNN 200的训练。模拟图像是并将模拟图像输入到生成包括模拟对象的合成图像的GAN,同时改进图像的逼真性。通过将图像处理技术应用于图像以使用超分辨率、模糊、缩放和分层金字塔处理来修改图像中所包括的对象的外观以针对训练数据集中的每个图像生成多个图像来进一步改进训练DNN200,所述每个图像包括通过以多个空间分辨率渲染对象在外观和大小方面改变的对象。
图9是关于图1至图7所描述的用于使用如上面关于图7所讨论的过程700训练的DNN 200来操作车辆110的过程的流程图的图示。例如,过程900可以由计算装置的处理器将来自传感器的信息作为输入并执行命令并输出对象信息来实施。过程900包括可以所示次序执行的多个框。替代地或另外,过程900可以包括更少的框,或者可以包括以不同次序执行的框。
过程900开始于框902,其中由包括在车辆110中的传感器116获取图像,所述传感器可以是视频传感器。
在框904处,将图像输入到对包括在车辆110中的计算装置115执行的DNN 200。DNN200已经被训练为使用上面的过程700来检测对象。
在框906处,DNN 200确定包括在输入图像中的对象的对象标签和边界框,并将对象标签和边界框输出到计算装置115。
在框908处,计算装置115基于在框906处确定的对象标签和边界框来确定供车辆110操作的车辆路径。确定车辆路径可以包括确定避免车辆110与检测到的对象之间的接触同时维持对横向加速度和纵向加速度的最小和最大限制的多项式函数。
在框910处,计算装置115通过将命令传送到控制器112、113、114以控制车辆动力传动***、车辆制动器和车辆转向以使车辆110沿着确定的车辆路径行驶来操作车辆110。在框910之后,过程900结束。
诸如本文讨论的那些的计算装置通常各自包括命令,所述命令可由诸如上文所识别的那些的一个或多个计算装置执行并且用于实施上文描述的过程的框或步骤。例如,上文论述的过程框可体现为计算机可执行命令。
计算机可执行命令可以由使用各种编程语言和/或技术创建的计算机程序来编译或解译,所述编程语言和/或技术单独地或组合地包括但不限于:JavaTM、C、C++、Python、Julia、SCALA、Visual Basic、Java Script、Perl、HTML等。一般来讲,处理器(例如,微处理器)接收例如来自存储器、计算机可读介质等的命令,并且执行这些命令,从而执行一个或多个过程,包括本文所述的过程中的一者或多者。此类命令和其他数据可存储在文件中并且使用多种计算机可读介质来传输。计算装置中的文件通常是存储在诸如存储介质、随机存取存储器等计算机可读介质上的数据的集合。
计算机可读介质包括参与提供可由计算机读取的数据(例如,命令)的任何介质。此种介质可采用许多形式,包括但不限于非易失性介质、易失性介质等。非易失性介质包括例如光盘或磁盘以及其他持久性存储器。易失性介质包括通常构成主存储器的动态随机存取存储器(DRAM)。计算机可读介质的常见形式包括例如软磁盘、软盘、硬盘、磁带、任何其他磁性介质、CD-ROM、DVD、任何其他光学介质、穿孔卡片、纸带、具有孔图案的任何其他物理介质、RAM、PROM、EPROM、快闪EEPROM、任何其他存储器芯片或盒式磁带、或者计算机可从中读取的任何其他介质。
除非本文作出相反的明确指示,否则权利要求中使用的所有术语意在给出如本领域技术人员所理解的普通和通常的含义。具体地,除非权利要求叙述相反的明确限制,否则使用诸如“一个/种”、“该”、“所述”等单数冠词应被解读为叙述所指示的要素中的一者或多者。
术语“示例性”在本文中以表示示例的意义使用,例如,对“示例性小部件”的引用应被解读为仅指代小部件的示例。
修饰值或结果的副词“大约”意味着形状、结构、测量、值、确定、计算等可因为材料、加工、制造、传感器测量、计算、处理时间、通信时间等的缺陷而与确切描述的几何结构、距离、测量、值、确定、计算等有偏差。
在附图中,相同的附图标记指示相同的要素。另外,可改变这些要素中的一些或全部。相对于本文描述的介质、过程、***、方法等,应理解,尽管此类过程等的步骤或框已被描述为根据特定的有序顺序发生,但是此类过程可通过以本文描述的次序以外的次序执行所描述的步骤来实践。还应理解,可同时执行某些步骤,可添加其他步骤,或者可省略本文描述的某些步骤。换句话说,本文对过程的描述是出于说明某些实施例的目的而提供的,并且决不应解释为限制所要求保护的发明。
根据本发明,提供了一种计算机,其具有:处理器;以及存储器,所述存储器包括可由所述处理器执行以进行以下操作的指令:从包括在车辆中的第一传感器获取第一图像并将所述第一图像输入到深度神经网络以确定第一对象的第一边界框;从所述第一传感器输入第二图像;从包括在所述车辆中的第二传感器输入横向运动数据和纵向运动数据,所述横向运动数据和所述纵向运动数据对应于输入所述第一图像与输入所述第二图像之间的时间;通过基于所述横向运动数据和所述纵向运动数据平移所述第一边界框来确定第二边界框;基于所述第二边界框裁剪所述第二图像;将所述裁剪的第二图像输入到所述深度神经网络以检测第二对象;以及输出所述第一图像、所述第一边界框、所述第二图像和所述第二边界框。
根据一个实施例,所述指令包括用于进行以下操作的其他指令:在尝试使用所述深度神经网络确定所述第二边界框但未能成功确定时,通过基于所述横向运动数据和所述纵向运动数据平移所述第一边界框来确定所述第二边界框。
根据一个实施例,所述指令包括用于进行以下操作的其他指令:将所述第一图像、所述第一边界框、所述第二图像和所述第二边界框上传到第二计算机以训练所述深度神经网络。
根据一个实施例,所述指令包括用于进行以下操作的其他指令:通过沿由所述横向运动数据和所述纵向运动数据指示的方向递增地平移所述第一边界框来确定所述第二边界框。
根据一个实施例,所述第二传感器包括获取方向盘方向和车辆前进/后退运动中的一者或多者的传感器。
根据一个实施例,所述第二传感器包括惯性测量单元。
根据一个实施例,所述指令包括用于进行以下操作的其他指令:通过超分辨率将所述裁剪的第二图像变换为更高空间分辨率。
根据一个实施例,所述指令包括用于进行以下操作的其他指令:将所述裁剪的第二图像变换为包括运动模糊。
根据一个实施例,所述指令包括用于进行以下操作的其他指令:通过缩放所述裁剪的第二图像来变换所述裁剪的第二图像。
根据一个实施例,所述指令包括用于进行以下操作的其他指令:将所述裁剪的第二图像变换为包括分层金字塔处理,以便以多个空间分辨率获得包括所述第二对象的图像数据。
根据一个实施例,所述第一边界框和所述第二边界框中的一者或多者用于操作所述车辆。
根据一个实施例,所述指令包括用于进行以下操作的其他指令:基于所述第一边界框和所述第二边界框中的一者或多者来确定车辆路径。
根据一个实施例,所述指令包括用于进行以下操作的其他指令:通过控制车辆动力传动***、车辆制动器和车辆转向中的一者或多者来在所述车辆路径上操作所述车辆。
根据本发明,一种方法包括:从包括在车辆中的第一传感器获取第一图像并将所述第一图像输入到深度神经网络以确定第一对象的第一边界框;从所述第一传感器输入第二图像;从包括在所述车辆中的第二传感器输入横向运动数据和纵向运动数据,所述横向运动数据和所述纵向运动数据对应于输入所述第一图像与输入所述第二图像之间的时间;通过基于所述横向运动数据和所述纵向运动数据平移所述第一边界框来确定第二边界框;基于所述第二边界框裁剪所述第二图像;将所述裁剪的第二图像输入到所述深度神经网络以检测第二对象;以及输出所述第一图像、所述第一边界框、所述第二图像和所述第二边界框。
在本发明的一个方面,所述方法包括:在尝试使用所述深度神经网络确定所述第二边界框但未能成功确定时,通过基于所述横向运动数据和所述纵向运动数据平移所述第一边界框来确定所述第二边界框。
在本发明的一个方面,所述方法包括:将所述第一图像、所述第一边界框、所述第二图像和所述第二边界框上传到第二计算机以训练所述深度神经网络。
在本发明的一个方面,所述方法包括:通过沿由所述横向运动数据和所述纵向运动数据指示的方向递增地平移所述第一边界框来确定所述第二边界框。
在本发明的一个方面,所述第二传感器包括获取方向盘方向和车辆前进/后退运动中的一者或多者的传感器。
在本发明的一个方面,所述第二传感器包括惯性测量单元。
在本发明的一个方面,所述方法包括通过超分辨率将所述裁剪的第二图像变换为更高空间分辨率。
Claims (15)
1.一种方法,其包括:
从包括在车辆中的第一传感器获取第一图像并将所述第一图像输入到深度神经网络以确定第一对象的第一边界框;
从所述第一传感器输入第二图像;
从包括在所述车辆中的第二传感器输入横向运动数据和纵向运动数据,所述横向运动数据和所述纵向运动数据对应于输入所述第一图像与输入所述第二图像之间的时间;
通过基于所述横向运动数据和所述纵向运动数据平移所述第一边界框来确定第二边界框;
基于所述第二边界框裁剪所述第二图像;
将所述裁剪的第二图像输入到所述深度神经网络以检测第二对象;以及
输出所述第一图像、所述第一边界框、所述第二图像和所述第二边界框。
2.如权利要求1所述的方法,其还包括:在尝试使用所述深度神经网络确定所述第二边界框但未能成功确定时,通过基于所述横向运动数据和所述纵向运动数据平移所述第一边界框来确定所述第二边界框。
3.如权利要求1所述的方法,其还包括:将所述第一图像、所述第一边界框、所述第二图像和所述第二边界框上传到第二计算机以训练所述深度神经网络。
4.如权利要求1所述的方法,其还包括:通过沿由所述横向运动数据和所述纵向运动数据指示的方向递增地平移所述第一边界框来确定所述第二边界框。
5.如权利要求1所述的方法,其中所述第二传感器包括获取方向盘方向和车辆前进/后退运动中的一者或多者的传感器。
6.如权利要求1所述的方法,其中所述第二传感器包括惯性测量单元。
7.如权利要求1所述的方法,其还包括:通过超分辨率将所述裁剪的第二图像变换为更高空间分辨率。
8.如权利要求1所述的方法,其还包括:将所述裁剪的第二图像变换为包括运动模糊。
9.如权利要求1所述的方法,其还包括:通过缩放所述裁剪的第二图像来变换所述裁剪的第二图像。
10.如权利要求1所述的方法,其还包括:将所述裁剪的第二图像变换为包括分层金字塔处理,以便以多个空间分辨率获得包括所述第二对象的图像数据。
11.如权利要求1所述的方法,其中所述第一边界框和所述第二边界框中的一者或多者用于操作所述车辆。
12.如权利要求11所述的方法,其还包括:基于所述第一边界框和所述第二边界框中的一者或多者来确定车辆路径。
13.如权利要求12所述的方法,其还包括:通过控制车辆动力传动***、车辆制动器和车辆转向来在所述车辆路径上操作所述车辆。
14.如权利要求3所述的方法,其中将所述训练过的深度神经网络下载到车辆。
15.一种***,其包括被编程为执行如权利要求1至14中任一项所述的方法的计算机。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/337,789 | 2021-06-03 | ||
US17/337,789 US11975738B2 (en) | 2021-06-03 | 2021-06-03 | Image annotation for deep neural networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115439401A true CN115439401A (zh) | 2022-12-06 |
Family
ID=84102084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210629299.1A Pending CN115439401A (zh) | 2021-06-03 | 2022-06-01 | 用于深度神经网络的图像标注 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11975738B2 (zh) |
CN (1) | CN115439401A (zh) |
DE (1) | DE102022114047A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220413507A1 (en) * | 2021-06-29 | 2022-12-29 | Honda Motor Co., Ltd. | Object identification |
US11893084B2 (en) * | 2021-09-07 | 2024-02-06 | Johnson Controls Tyco IP Holdings LLP | Object detection systems and methods including an object detection model using a tailored training dataset |
US20230334814A1 (en) * | 2022-04-19 | 2023-10-19 | Verizon Patent And Licensing Inc. | Systems and methods for utilizing neural network models to label images |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8065313B2 (en) | 2006-07-24 | 2011-11-22 | Google Inc. | Method and apparatus for automatically annotating images |
US8620026B2 (en) | 2011-04-13 | 2013-12-31 | International Business Machines Corporation | Video-based detection of multiple object types under varying poses |
WO2018068321A1 (en) * | 2016-10-14 | 2018-04-19 | SZ DJI Technology Co., Ltd. | System and method for moment capturing |
US20180204076A1 (en) * | 2017-01-13 | 2018-07-19 | The Regents Of The University Of California | Moving object detection and classification image analysis methods and systems |
US10725472B2 (en) * | 2017-08-10 | 2020-07-28 | Beijing Airlango Technology Co., Ltd. | Object tracking using depth information |
US10872531B2 (en) | 2017-09-29 | 2020-12-22 | Uber Technologies, Inc. | Image processing for vehicle collision avoidance system |
US10614310B2 (en) * | 2018-03-22 | 2020-04-07 | Viisights Solutions Ltd. | Behavior recognition |
US10593049B2 (en) | 2018-05-30 | 2020-03-17 | Chiral Software, Inc. | System and method for real-time detection of objects in motion |
US20200020117A1 (en) * | 2018-07-16 | 2020-01-16 | Ford Global Technologies, Llc | Pose estimation |
US11042157B2 (en) * | 2018-07-23 | 2021-06-22 | Baidu Usa Llc | Lane/object detection and tracking perception system for autonomous vehicles |
US11195418B1 (en) * | 2018-10-04 | 2021-12-07 | Zoox, Inc. | Trajectory prediction on top-down scenes and associated model |
US10853670B2 (en) * | 2018-11-21 | 2020-12-01 | Ford Global Technologies, Llc | Road surface characterization using pose observations of adjacent vehicles |
US10891518B1 (en) * | 2018-12-14 | 2021-01-12 | Waymo Llc | Auto labeler |
US20200217667A1 (en) * | 2019-01-08 | 2020-07-09 | Qualcomm Incorporated | Robust association of traffic signs with a map |
US11288521B2 (en) * | 2019-01-31 | 2022-03-29 | Uatc, Llc | Automated road edge boundary detection |
US11126180B1 (en) * | 2019-04-30 | 2021-09-21 | Zoox, Inc. | Predicting an occupancy associated with occluded region |
US10949684B2 (en) * | 2019-05-08 | 2021-03-16 | Ford Global Technologies, Llc | Vehicle image verification |
US11250296B2 (en) | 2019-07-24 | 2022-02-15 | Nvidia Corporation | Automatic generation of ground truth data for training or retraining machine learning models |
US11380108B1 (en) * | 2019-09-27 | 2022-07-05 | Zoox, Inc. | Supplementing top-down predictions with image features |
US11409304B1 (en) * | 2019-09-27 | 2022-08-09 | Zoox, Inc. | Supplementing top-down predictions with image features |
US11138452B2 (en) * | 2019-10-08 | 2021-10-05 | Ford Global Technologies, Llc | Vehicle neural network training |
KR102236788B1 (ko) * | 2019-10-21 | 2021-04-06 | 주식회사 픽스트리 | 이미지 복원 방법 및 장치 |
US11694356B2 (en) * | 2019-11-15 | 2023-07-04 | Argo AI, LLC | Methods and systems for joint pose and shape estimation of objects from sensor data |
KR102143782B1 (ko) * | 2019-12-13 | 2020-08-12 | 셀렉트스타 주식회사 | 작업 난이도에 따라 레이블링 작업을 분배하는 방법 및 그를 이용한 장치 |
US11112875B1 (en) * | 2020-03-20 | 2021-09-07 | Huawei Technologies Co., Ltd. | Methods and systems for controlling a device using hand gestures in multi-user environment |
EP3913524B1 (en) * | 2020-05-22 | 2023-10-25 | Kapsch TrafficCom AG | Side view camera detecting wheels |
US11715277B2 (en) * | 2020-06-23 | 2023-08-01 | Tusimple, Inc. | Perception system for autonomous vehicles |
US11922320B2 (en) * | 2021-06-09 | 2024-03-05 | Ford Global Technologies, Llc | Neural network for object detection and tracking |
-
2021
- 2021-06-03 US US17/337,789 patent/US11975738B2/en active Active
-
2022
- 2022-06-01 CN CN202210629299.1A patent/CN115439401A/zh active Pending
- 2022-06-02 DE DE102022114047.4A patent/DE102022114047A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220388535A1 (en) | 2022-12-08 |
US11975738B2 (en) | 2024-05-07 |
DE102022114047A1 (de) | 2022-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10853670B2 (en) | Road surface characterization using pose observations of adjacent vehicles | |
US10949684B2 (en) | Vehicle image verification | |
US11036965B2 (en) | Shape estimating apparatus | |
US10733510B2 (en) | Vehicle adaptive learning | |
US11975738B2 (en) | Image annotation for deep neural networks | |
JP2021504796A (ja) | センサーデータセグメンテーション | |
US20200020117A1 (en) | Pose estimation | |
US11042758B2 (en) | Vehicle image generation | |
US11443151B2 (en) | Driving assistant system, electronic device, and operation method thereof | |
CN111986128A (zh) | 偏心图像融合 | |
US11138452B2 (en) | Vehicle neural network training | |
US11299169B2 (en) | Vehicle neural network training | |
US11922320B2 (en) | Neural network for object detection and tracking | |
CN116703966A (zh) | 多对象跟踪 | |
US11710254B2 (en) | Neural network object detection | |
CN116311216A (zh) | 三维对象检测 | |
CN115731531A (zh) | 对象轨迹预测 | |
US20230038578A1 (en) | Systems and Methods for Image Based Perception | |
US11356617B2 (en) | Vehicle sensor operation | |
US20230267640A1 (en) | Pose estimation | |
US11823465B2 (en) | Neural network object identification | |
US11966452B2 (en) | Systems and methods for image based perception | |
EP4131175A1 (en) | Systems and methods for image based perception | |
Rahman | Implementation of ADAS and Autonomy on UNLV Campus | |
CN115640832A (zh) | 对象姿态估计 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |