CN111695402B - 用于标注3d点云数据中人体姿态的工具和方法 - Google Patents
用于标注3d点云数据中人体姿态的工具和方法 Download PDFInfo
- Publication number
- CN111695402B CN111695402B CN202010171054.XA CN202010171054A CN111695402B CN 111695402 B CN111695402 B CN 111695402B CN 202010171054 A CN202010171054 A CN 202010171054A CN 111695402 B CN111695402 B CN 111695402B
- Authority
- CN
- China
- Prior art keywords
- point cloud
- cloud data
- points
- processors
- annotation
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 128
- 238000002372 labelling Methods 0.000 title claims description 71
- 230000004044 response Effects 0.000 claims abstract description 30
- 238000013528 artificial neural network Methods 0.000 claims description 122
- 238000012549 training Methods 0.000 claims description 20
- 210000003414 extremity Anatomy 0.000 claims description 14
- 230000009471 action Effects 0.000 claims description 12
- 210000003127 knee Anatomy 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 9
- 239000003086 colorant Substances 0.000 claims description 4
- 230000008569 process Effects 0.000 description 35
- 238000012545 processing Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 26
- 238000001514 detection method Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 230000001629 suppression Effects 0.000 description 9
- 238000007781 pre-processing Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000012805 post-processing Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 210000002414 leg Anatomy 0.000 description 4
- 230000007774 longterm Effects 0.000 description 4
- 230000008676 import Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 210000003484 anatomy Anatomy 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 238000002310 reflectometry Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 241000282472 Canis lupus familiaris Species 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/103—Static body considered as a whole, e.g. static pedestrian or occupant recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/02—Systems using the reflection of electromagnetic waves other than radio waves
- G01S17/04—Systems determining the presence of a target
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/86—Combinations of lidar systems with systems other than lidar, radar or sonar, e.g. with direction finders
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/93—Lidar systems specially adapted for specific applications for anti-collision purposes
- G01S17/931—Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S7/00—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
- G01S7/48—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
- G01S7/4802—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00 using analysis of echo signal for target characterisation; Target signature; Target cross-section
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S7/00—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
- G01S7/48—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
- G01S7/4808—Evaluating distance, position or velocity data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- 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
- G06N3/045—Combinations of networks
-
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- 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/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- 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/10028—Range image; Depth image; 3D point clouds
-
- 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/20092—Interactive image processing based on input by user
- G06T2207/20101—Interactive definition of point of interest, landmark or seed
-
- 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/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/004—Annotating, labelling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Artificial Intelligence (AREA)
- Radar, Positioning & Navigation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Electromagnetism (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Graphics (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
Abstract
用于标注点云数据的方法和设备。设备可以被配置为使显示所述点云数据;用多个标注点标记所述点云数据中的点,所述多个标注点对应于人体上的点;响应于用户输入而移动所述标注点中的一个或多个以限定人体姿态并创建标注的点云数据;以及输出所标注的点云数据。
Description
优先权
本申请要求2019年11月22日递交的美国申请No.16/692,901和2019年3月12日递交的美国临时申请No.62/817,400的优先权,它们各自的全部内容通过引用合并与此。
技术领域
本申请涉及基于计算机视觉的图形检测技术中的姿态估计(pose estimation)和姿态标注(pose annotation)。
背景技术
姿态估计是一种从图像或视频数据中检测出人像的计算机视觉技术。除了检测人像的存在之外,计算机视觉技术还可以确定人像的四肢的位置和方向(即姿态)。姿态估计在许多领域都可能是有用的,包括自主驾驶。例如,人的姿态可用于确定人(例如,行人,交警等)的关注和意向。用于汽车的自主驾驶应用程序可以使用依据所估计的姿态预测或推断的人的意向和关注来确定驾驶行为。
发明内容
在下面描述的示例中,本申请描述了用于依据由LiDAR(Light Detection andRanging,光探测和测距,又称激光雷达)传感器或其他类似传感器产生的点云(pointcloud)来估计一个或多个人的姿态的技术和设备。在一些示例中,所估计的一个或多个人的姿态可以用于为自主车辆做出驾驶决策。然而,本公开的技术不限于自主驾驶应用程序,还可用于为姿态估计可能有用的任意数量的应用程序估计人的姿态。通过使用LiDAR传感器的输出,例如,与摄像机传感器相反,姿态估计可以在包括弱光环境的困难环境中快速地执行。
计算系统可以配置为接收来自LiDAR传感器或其他类似传感器的点云数据。计算系统还可以配置为将点云数据转换成结构化数据格式,诸如体素(voxels)的帧(体积像素)。然后,计算系统可以使用深度神经网络来处理体素化的帧。深度神经网络可以配置有确定是否有人存在的模型。深度神经网络还可以执行回归(regression)以估计检测到的一个或多个人中每个人的姿态。在一些示例中,计算系统逐次做出人的确定和姿态估计。即,在一些示例中,首先,计算系统使用深度神经网络检测人,然后计算系统使用深度神经网络来估计人的姿态。在其他示例中,计算系统并行地执行人的确定和姿态估计。即,在一些示例中,计算系统对于每个体素同时确定人的存在和人的对应姿态。如果深度神经网络确定体素中不存在人,则计算系统丢弃所估计的姿态。
深度神经网络可以配置为使用一个或多个三维(3D)卷积层以及随后的一个或多个二维卷积层来处理体素化的帧。3D卷积层通常提供对人和姿态估计更准确的确定,而2D卷积层通常提供对人和姿态估计更快速的确定。通过在深度神经网络中使用3D和2D卷积层的组合,可以以期望的准确度执行人的检测和姿态估计,同时还保持对自主驾驶应用程序有用的速度。
在另一示例中,本公开描述了用于标注点云数据的技术。为了训练深度神经网络以估计点云数据中人的姿态,深度神经网络可以通过处理点云数据的训练集来配置和修改。点云数据的训练集先前用点云内的人的准确位置和姿态来标记(例如,通过手动标记)。点云数据中的姿态的该先前标记可以被称为标注。存在用于标注二维图像中人体姿态(human pose)的技术。然而,标注点云数据有很大不同。首先,点云数据是三维的。此外,点云数据相对于二维图像数据是稀疏的。
本公开描述了用于标注点云数据的方法、设备和软件。用户可以使用本公开的技术来标注点云,以标记在点云数据中发现的一个或多个姿态。经标注的点云数据然后可以用于训练神经网络以更准确地实时识别和标记点云数据中的姿态。
在一个示例中,本公开描述了一种方法,包括:使显示点云数据;用多个标注点标记所述点云数据中的点,所述多个标注点对应于人体上的点;响应于用户输入而移动所述标注点中的一个或多个以限定人体姿态并且创建标注的点云数据;并且输出所标注的点云数据。
在另一示例中,本公开描述了一种设备,所述设备包括被配置成存储点云数据的存储器、以及与所述存储器通信的一个或多个处理器,所述一个或多个处理器被配置成使所述点云数据显示;用多个标注点标记所述点云数据中的点,所述多个标注点对应于人体上的点;响应于用户输入而移动所述标注点中的一个或多个标注点以限定人体姿态并且创建标注的点云数据;并且输出所标注的点云数据。
在另一示例中,本公开描述了一种设备,所述设备包括用于使得点云数据显示的装置;用于用多个标注点标记所述点云数据中的点的装置,所述多个标注点对应于人体上的点;用于响应于用户输入而移动所述标注点中的一个或多个以限定人体姿态并创建标注的点云数据的装置,以及用于输出所标注的点云数据的装置。
在另一示例中,本公开描述了一种存储指令的非暂时性计算机可读存储介质,所述指令在被执行时引起一个或多个处理器使得:显示点云数据;用多个标注点标记所述点云数据中的点,所述多个标注点对应于人体上的点;响应于用户输入而移动所述标注点中的一个或多个标注点以限定人体姿态并且创建标注的点云数据,并且输出所标注的点云数据。
在附图和以下描述中阐述了本发明的一个或多个实施例的细节。根据说明书和附图以及权利要求书,本发明的其它特征、目的和优点将是显而易见的。
附图说明
图1是显示本公开的技术的示例性操作环境的概念图。
图2是显示被配置为执行本公开的技术的示例性设备的框图。
图3是显示本公开一个示例的处理流程的框图。
图4是显示根据本公开一个示例的使用深度神经网络的并行处理流程的概念图。
图5是显示根据本公开一个示例的使用深度神经网络的顺序处理流程的概念图。
图6是示出示例性锚点骨架(anchor skeleton)的概念图。
图7是示出包括具有估计姿态的多个分类骨架的示例性点云的概念图。
图8是显示根据本公开一个示例的被配置为执行姿态估计的设备的示例性操作的流程图。
图9是显示根据本公开的技术的被配置为执行点云标注的示例性设备的框图。
图10是示出用于标注的输入点云的概念性用户界面图。
图11是示出用于标注的裁剪点云(cropped point cloud)的概念性用户界面图。
图12是示出用于标注的示例性骨架的概念图。
图13是示出点云的估计标注的概念性用户界面图。
图14是示出已标注的点云的概念性用户界面图。
图15是示出根据本公开一个示例的标注工具的示例性操作的流程图。
具体实施方式
姿态估计是一种从图像或视频中检测人像的计算机视觉技术。除了检测人像的存在之外,计算机视觉技术还可以确定人像的肢体的位置和方向(即,姿态)。姿态估计在许多领域中是有用的,包括自主驾驶。例如,人的姿态可用于确定人(例如,行人、交警等)的关注和意向或人(例如,抬手拦出租车的行人)的需求。汽车的自主驾驶应用程序可以使用依据估计姿态所预测的人的意向和关注来确定驾驶行为。
在一些示例中,对从摄像机传感器接收的图像数据执行姿态估计。这样的数据具有若干缺点。例如,如果来自摄像机传感器的输出不包括深度信息,则可能难以辨别图像中的人的相对位置。即使来自摄像机传感器的输出确实包括深度信息,在黑暗环境中执行姿态估计可能是困难的或不可能的。
本公开描述了用于使用点云数据执行姿态估计的技术,所述点云数据是诸如由LiDAR传感器产生的点云数据。来自LiDAR传感器的点云输出提供传感器附近的物体的3D映射(3D map)。因此,可获得深度信息。另外,与摄像机传感器相反,LiDAR传感器可以在黑暗环境中生成点云。本公开的技术包括使用深度神经网络处理来自LiDAR传感器的点云,以检测传感器附近的人的存在并且估计该人的姿态以便做出自主驾驶决策。
图1是显示本公开的技术的示例性操作环境的概念图。在本公开的一个示例中,汽车2可包括被配置为执行姿态估计的部件。在该示例中,汽车2可包括LiDAR传感器10、计算系统14以及可选的,摄像机16。
参考汽车应用程序(包括自主驾驶应用程序)来描述本公开的技术。然而,应理解,本公开的用于人检测及姿态估计的技术可用于其它情境。
汽车2可以是任何类型的乘用车。LiDAR传感器10可以使用支架12安装到汽车2。在其它示例中,LiDAR传感器10可以以其它配置安装到汽车2,或者集成在诸如保险杠、侧面、挡风玻璃等的汽车结构中或由诸如保险杠、侧面、挡风玻璃等的汽车结构承载。另外,汽车2可以被配置为使用多个LiDAR传感器。如将在下面更详细地解释的,计算系统14可以被配置为接收来自LiDAR传感器10的点云数据,并且确定LiDAR传感器10的视场中的人的位置和姿态。
LiDAR传感器10包括被配置为发射激光脉冲的激光器。LiDAR传感器10进一步包括接收器以接收从LiDAR传感器10附近的物体反射的激光。LiDAR传感器10通过用脉冲激光照射物体并测量反射的脉冲来测量到物体的距离。反射的脉冲的返回时间和波长的差异用来确定一个或多个物体(例如,人)的3D表示。
LiDAR传感器10还可以包括全球定位传感器(GPS)或类似的传感器,以确定传感器的准确物理位置和从反射的激光感测到的物体。LiDAR传感器10还可以被配置为检测附加信息,如强度。点云中的点的强度可以指示由LiDAR传感器10检测到的物体的反射率。通常,以点云形式存储由LiDAR传感器10捕获的3D表示。点云是表示3D形状或特征的点的集合。每个点具有其自己的x、y和z坐标集,并且在一些情况下具有附加属性(例如,GPS位置和强度)。LiDAR收集方法所得到的点云可以被保存和/或传输到计算系统14。
尽管在本公开中描述了LiDAR传感器,但是本文描述的用于姿态估计的技术可以与在弱光下工作和/或输出点云数据的任何传感器的输出一起使用。可以与本公开的技术一起使用的另外的传感器类型可以包括例如雷达、超声波、摄像机/成像传感器、和/或声纳传感器。
计算系统14可以通过有线或无线通信技术连接到LiDAR传感器。计算系统可以包括被配置为接收来自LiDAR传感器10的点云的一个或多个处理器。如下文将更详细地解释的,计算系统14可被配置为执行姿态估计。例如,计算系统14可以被配置为:接收来自LiDAR传感器10的点云,所述点云包括表示物体相对于LiDAR传感器的位置的多个点;处理所述点云,以产生包括多个体素的体素化的帧;使用深度神经网络处理所述体素化的帧,以确定相对于LiDAR传感器的一个或多个人以及一个或多个人中每个人的姿态;以及输出所确定的一个或多个人的位置和所确定的一个或多个人中每个人的姿态。本公开的技术不限于用于人(例如,行人、骑行者等)的检测和姿态估计,但也可用于动物(例如狗、猫等)的姿态检测。
支架12可以包括一个或多个摄像机16。支架的使用仅仅是一个示例。摄像机16可以定位在汽车2上的任何合适的位置。汽车2可以进一步包括图1中未示出的另外摄像机。计算系统14可以连接到摄像机16以接收图像数据。在本公开的一个示例中,计算系统14可以还被配置为使用基于摄像机的技术来执行姿态估计。在这样的示例中,计算系统14可以被配置为使用基于摄像机的技术和在本公开中描述的基于LiDAR的技术两者来估计一个或多个人的姿态。计算系统14可以被配置为对由基于摄像机的技术和基于LiDAR的技术确定的每个姿态分配权重,并且基于所确定的姿态的加权平均值来确定人的最终姿态。计算系统14可以被配置为基于每种技术的置信度来确定权重。例如,与基于摄像机的技术相比,基于LiDAR的技术在弱光环境中可能具有更高置信度的准确性。
图2是显示被配置为执行本公开的技术的示例性设备的框图。特别地,图2更详细地示出了图1的计算系统14的示例。再次,在一些示例中,计算系统14可以是汽车2的一部分。但是,在其他示例中,计算系统14可以是独立的系统,或者可以被集成到其他设备中以用于可受益于姿态估计的其他应用中。
计算系统14包括与存储器24通信的微处理器22。在一些示例中,计算系统14可以包括多个微处理器。微处理器22可以被实现为固定功能的处理电路、可编程的处理电路、或其组合。固定功能的电路是指提供特定功能并预设在可以执行的操作上的电路。可编程的电路是指可以被编程以执行各种任务并在可以执行的操作中提供灵活功能的电路。例如,可编程的电路可以执行使可编程的电路以软件或固件的指令所定义的方式操作的软件或固件。固定功能的电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能的处理电路执行的操作类型通常是不可变的。在一些示例中,一个或多个单元可以是不同的电路块(固定功能或可编程的),并且在一些示例中,一个或多个单元可以是集成电路。
在图2的示例中,微处理器22可以被配置为根据本公开的技术在基于LiDAR的姿态估计模块40中执行一组或多组指令以执行姿态估计。限定基于LiDAR的姿态估计模块40的指令可以存储在存储器24中。在一些示例中,可以将限定基于LiDAR的姿态估计模块40的指令通过有线或无线网络下载到存储器24。
在一些示例中,存储器24可以是临时存储器,这意味着存储器24的主要目的不是长期存储。存储器24可以被配置为易失性存储器,用于信息的短期存储,并且因此如果断电则不保留所存储的内容。易失性存储器的示例包括随机存取存储器(RAM),动态随机存取存储器(DRAM),静态随机存取存储器(SRAM)、以及本领域已知的其他形式的易失性存储器。
存储器24可以包括一个或多个非暂时性的计算机可读的存储介质。存储器24可以被配置为存储比通常由易失性存储器存储的信息量更多的信息。存储器24可以还被配置为非易失性存储空间,用于长期存储信息,并且在通电/断电周期之后保留信息。非易失性存储器的示例包括磁性硬盘、光盘、闪存或电可编程存储器(EPROM)或电可擦除且可编程存储器(EEPROM)的形式。存储器24可以存储程序指令(例如,基于LiDAR的姿态估计模块40)和/或信息(例如,点云30以及检测到的人32的姿态和位置),该程序指令在被执行时使微处理器22执行本公开的技术。
将参考执行各种软件模块的微处理器22描述本公开的下述技术。然而,应当理解,本文描述的每个软件模块也可以以专用硬件、固件、软件、或硬件、软件和固件的任何组合来实现。
基于LiDAR的姿态估计模块40可以包括预处理单元42、深度神经网络(DNN)44、和后处理单元46。基于LiDAR的姿态估计模块40配置为接收来自LiDAR传感器(例如,图1的LiDAR传感器10)的点云30。预处理单元42被配置为使非结构化的原始输入(即,点云30)成为结构化帧(例如,矩阵数据),从而深度神经网络44可以处理所述输入数据。
预处理单元42可以被配置为将点云30以许多方式处理成结构化帧。在一个示例中,预处理单元42可以被配置为将点云转换为体素(体积像素)。预处理单元42可以被配置为根据用于体素的预定的数据结构来执行这种体素化。例如,每个体素可以由三维(3D)箱的尺寸(例如,用X,Y和Z坐标表示)以及用于3D箱(3D bin)存储的数据类型来定义。例如,每个3D箱(即体素)可以包括指示位于箱中的来自点云30的点的数量、箱中的来自点云30的点的位置、以及这些点的强度的数据。可以存储在体素中的数据的其他示例包括所述体素内或甚至体素附近的点云的高度、宽度、长度(x,y,z坐标)的平均值(mean)和方差(variance);强度/反射率的平均值和方差;以及其他统计信息。在一些示例中,体素可以包括来自点云30的零点、来自点云30的一个点、或来自点云30的多个点。使用预定的箱可以被称为手动体素化。在其他示例中,预处理单元42可以被配置为以自适应方式来体素化点云30,例如通过使用以原始点云30作为输入并输出结构化(体素化)帧的神经网络。
深度神经网络44从预处理单元42接收体素化的帧。深度神经网络是一种机器学习算法。深度神经网络44可以被配置有多层处理层,每个层被配置用于从输入数据(在这种情况下是点云30的体素化的帧)确定和/或提取特征。深度神经网络44的每个连续层可以被配置为使用来自前一层的输出作为输入。
在一些示例中,深度神经网络44可以被配置为卷积深度神经网络。卷积深度神经网络是一种深度、前馈神经网络。卷积深度神经网络的每一层都可以称为卷积层。卷积层将卷积运算应用于输入(例如,体素化的帧的体素),然后将结果传递给下一层。深度神经网络44可以配置有3D和2D卷积层。3D卷积层提供了更准确的特征提取(例如,更准确地识别人和相应的姿态),而与3D卷积层相比,2D卷积层提供了更快速的特征提取。深度神经网络44可以被配置为首先使用一个或多个3D卷积层处理体素化的帧,然后使用一个或多个2D卷积层继续处理体素化的帧。2D卷积层可以被配置为仅在X和Y方向(即,不在Z方向)上处理来自体素化的帧的数据。3D和2D卷积层的数量、以及层之间的分割点决定了姿态估计的速度和准确性之间的权衡。通过在深度神经网络44中使用3D和2D卷积层的组合,可以以期望的准确度执行人的检测和姿态估计,同时还保持对于自主驾驶应用程序有用的速度。
深度神经网络44被配置为分析体素化的帧并为每个体素产生两个输出。一个输出可以称为分类(classification)。分类表示在正在被分析的体素中是否存在人。另一输出可以称为由回归(regression)产生的姿态估计。如果体素中存在此人,则回归确定该人的姿态(或人的关键点)。如将在下面更详细解释的,深度神经网络44可以被配置为以串行或并行方式执行分类和回归技术。
深度神经网络44可以被配置为通过DNN模型48处理每个体素。DNN模型48限定3D和2D卷积层的数量以及为每个层执行的功能。DNN模型48可以用大量的数据标记对(data-label pairs)来训练。在数据标记对中,数据是体素化的点云数据,而标记是可能的3D姿态。通过手动标注(例如,标记)点云数据,然后使用标记的数据训练深度神经网络44来训练DNN模型48。将深度神经网络44的输出与给定标记数据的预期输出进行比较。然后,技术人员可以调整DNN模型48以找到用于深度神经网络44的各层权重的最佳集合,以便在给定了预先标注的点云的情况下,期望的标记在由深度神经网络44处理时被预测。DNN模型38可以是预定的,并且可以定期更新。
深度神经网络44可以被配置为针对每个锚点位置(anchor position)产生分类和回归结果。在一个示例中,深度神经网络可以被配置为将体素的中心视为锚点位置。对于每个锚点位置,深度神经网络44可以被配置为将体素中存储的数据与一个或多个预定的锚点骨架(也称为标准或规范骨架)进行比较。锚点骨架可以由多个关键点限定。在一个示例中,锚点骨架由十四个关节和/或关键点限定:头、颈部、左肩、右肩、左肘、右肘、左手、右手、左腰、右腰、左膝、右膝、左脚和右脚。通常,关键点可以对应于人体解剖结构的特征或结构(例如,人体上的点)。
在深度神经网络44进行处理期间,如果锚点骨架的边界框与任何真实骨架(ground truth skeleton)(即,体素中存在的数据)的边界框之间的重叠区域满足阈值条件,锚点骨架被激活(即,对于人的存在被分类为肯定的)。例如,如果锚点骨架和体素的边界框的重叠区域高于某个阈值(例如0.5),则针对该体素激活锚点骨架,并且检测到人的存在。所述阈值可以是重叠量(例如,交并比(intersection-over-union,简称IOU))的测量值。深度神经网络44可以基于与一个或多个多重不同的锚点骨架的比较来进行分类。深度神经网络44还可以实施为执行对锚点骨架和真实骨架(即,实际体素中的数据)之间的差异进行编码的回归。深度神经网络44可以被配置为对锚点骨架限定的多个关键点中的每个关键点的该差异进行编码。锚点骨架的关键点和体素中的数据之间的差异表示分类期间检测到的人的实际姿态。然后可以配置深度神经网络来向后处理单元46提供分类(例如,确定的一个或多个人的位置)和所确定的一个或多个人中每个人的姿态。当从点云中检测到多个人时,将激活多个锚点骨架,从而实现多人姿态估计。
后处理单元46可以被配置为将深度神经网络44的输出转换为最终输出。例如,后处理单元46可以被配置为在由深度神经网络44产生的分类和估计的姿态上执行非最大值抑制(Non-maximum suppression),并产生检测到的人的最终位置和姿态。非最大值抑制是一种边缘细化技术(edge thinning technique)。在某些情况下,深度神经网络44将对人进行分类,并估计许多实际上仅存在一个人的体素的密集组的姿态。也就是说,在某些情况下,深度神经网络将检测同一个人的重叠重复(overlapping duplicate)。后处理单元46可以使用非最大值抑制技术来去除重复的骨架。后处理单元46输出检测到的人数据32的姿态和位置。检测到的人数据32的姿态和位置可以包括由基于LiDAR的姿态估计模块40检测到的人的位置(例如,用GPS坐标表示)以及限定人的骨架姿态(例如,关键点的位置)。检测到的人数据32的姿态和位置可以存储在存储器24中、发送到自主驾驶应用程序52、其他应用程序54、基于摄像机的姿态估计应用程序56,或者从计算系统14传输到另一个计算系统。
在一个示例中,自主驾驶应用程序52可以被配置为接收检测到的人数据32的姿态和位置,并预测或确定所识别的人的意向和/或关注、或其他行为暗示,以做出自主驾驶决策。
在其他示例中,基于摄像机的姿态估计应用程序56可以接收检测到的人数据32的姿态和位置。基于摄像机的姿态估计应用程序56可以被配置为使用由摄像机16(图1)产生的图像数据来确定一个或多个人的姿态。基于摄像机的姿态估计应用程序56还可以被配置为对由基于摄像机的技术和基于Li-DAR的技术确定的每个姿态分配权重,并基于所确定的姿态的加权平均值来确定人的最终姿态。基于摄像机的姿态估计应用程序56可以被配置为基于每种技术的置信度来确定权重。例如,与基于摄像机的技术相比,基于LiDAR的技术在弱光环境中可能具有更高置信度的准确性。
其他应用程序54代表各种其他情境,其中可以在其他情境中使用检测到的人数据32的姿态和位置。例如,基于LiDAR的姿态估计模块40输出的姿态和位置可以在如下各种应用中:用于肢体语言识别、动作理解(例如,交通、警务人员、紧急服务人员、或其他人员信号/指挥交通)、注意和意向检测(例如,在等待/穿过街道的行人)、电影、动画、游戏、机器人技术、人机交互、机器学习、虚拟现实、替代现实、监视、异常行为检测、和公共安全。
图3是显示本公开一个示例的处理流程的框图。如图3所示,LiDAR传感器10可以被配置为捕获点云30,该点云30是基于LiDAR的姿态估计模块40的原始输入。基于LiDAR的姿态估计模块40利用预处理单元42(体素化)处理点云30以产生体素化的帧。然后,深度神经网络44处理体素化的帧,以产生一个或多个人的分类(例如,一个或多个人的位置)以及针对分类的一个或多个人的一个或多个姿态。一个人的姿态由骨架的多个关键点的位置进行限定。深度神经网络44的输出是初步的3D姿态。后处理单元46利用非最大值抑制算法处理初步的3D姿态以产生输出3D姿态。
图4是显示根据本发明一个示例的使用深度神经网络的并行处理流程的概念图。如图4所示,首先将点云30转换为包括多个体素的体素化的帧。在该示例中,深度神经网络44处理体素化的帧的每个体素70。深度神经网络44使用一个或多个3D卷积层72处理体素70。3D卷积层74表示对3D体素数据进行操作的最后一层。在3D卷积层74之后,深度神经网络44用一个或多个2D卷积层76处理体素70。2D卷积层76仅对二维的体素数据(例如,XY数据)进行操作。2D卷积层78表示输出分类和姿态估计两者的最后的2D卷积层。在图4的示例中,深度神经网络44的层被配置为对每个体素并行地分类和估计姿态。即,深度神经网络44的层可以被配置为同时对多于一个体素进行分类和估计姿态。如果深度神经网络44确定体素不被分类为人,则可以丢弃任何估计的姿态。
图5是显示根据本公开一个示例的使用深度神经网络的顺序处理流程的概念图。在图5的示例中,3D卷积层72和74以及2D卷积层76和78被配置为将输入体素分类为人还是非人。如果2D卷积层78不分类为人,则处理结束。如果2D卷积层78确实分类为人,则深度神经网络44将使用3D卷积层80和82以及2D卷积层84和86处理所述输入体素以估计被分类的人的姿态。即,深度神经网络44可以被配置为对分类和姿态估计使用单独的神经网络。在该示例中,分类和姿态估计处理顺序地执行。
图6是示出示例性骨架的概念图。骨架100可以代表预定的锚点骨架或使用上面描述的公开的技术所估计的真实骨架的姿态。在本公开的一个示例中,骨架100可以由多个关键点和/或关节限定。在图6的示例中,骨架100包括14个关键点。如图6所示,骨架100由头关键点102、颈部关键点104、左肩关键点108、右肩关键点106、左肘112、右肘关键点110、左手关键点116、右手关键点114、左腰关键点120、右腰关键点118、左膝关键点124、右膝关键点122、左脚关键点128、和右脚关键点126限定。为了确定姿态,微处理器22(参见图2)可以被配置为确定骨架100的每个关键点的位置(例如,在3D空间中的位置)。也就是说,骨架100的每个关键点相对于彼此的位置限定了骨架100的姿态,因此限定了从点云中检测到的人的姿态。
对于其他应用,可以使用更多或更少的关键点。用于限定骨架100的关键点越多,可以估计的独特姿态越多。但是,更多的关键点也可能会导致更长的处理时间来估计姿态。
图7是示出具有多个带有已估计姿态的分类骨架的示例性点云30的概念图。如图7所示,点云30被示出具有可视化的三个检测到的骨架140、142和144。所述骨架被示出具有不同姿态,这些姿态可以通过来自图6的14个关键点的不同位置得到。注意,骨架140示出了未被非最大值抑制算法处理的骨架的一个示例。骨架140实际上是多个重叠的骨架,而不是显示单个骨架。在本公开的一些示例中,计算系统14可以还被配置为产生所检测到的骨架的可视化,诸如图7所示的可视化。
图8是显示根据本公开一个示例的被配置为执行姿态估计的设备的示例性操作的流程图。一个或多个处理器可以被配置为执行图8所示的技术,其包括计算系统14的微处理器22。如上所述,在一些示例中,计算系统14可以是汽车2的一部分。在该示例中,汽车2可以配置为使用由计算系统14产生的姿态估计来做出自主驾驶决策。然而,本公开的技术不限于此。任何处理器或处理电路可以被配置为执行图8的技术用于任何数量的应用的姿态估计,包括AR/VR、游戏、HCI、监视和监测等。
在本公开的一个示例中,计算系统14可以包括被配置为接收来自LiDAR传感器10(参见图1)的点云30(参见图2)的存储器24。计算系统14可进一步包括以电路实现的一个或多个处理器(例如,图2的微处理器22),所述一个或多个处理器与存储器通信。微处理器22可以被配置为接收来自LiDAR传感器10的点云(800)。该点云包括表示物体相对于LiDAR传感器10的位置的多个点。微处理器22可以还被配置为处理该点云以产生包括多个体素的体素化的帧(802)。在本公开的一个示例中,体素化的帧的每个体素包括指示在体素中存在或不存在来自点云的点的数据结构。
微处理器22还可被配置为使用深度神经网络的一个或多个3D卷积层来处理体素化的帧(804),以及使用深度神经网络的一个或多个2D卷积层来处理体素化的帧(806)。微处理器22使用3D和2D卷积层处理体素化的帧以确定相对于LiDAR传感器的一个或多个人以及一个或多个人中的每一个人的姿态。然后,微处理器22可以输出所确定的一个或多个人的位置以及所确定的一个或多个人中的每一个人的姿态(808)。
在一个示例中,微处理器22可以被配置为针对体素化的帧的第一体素确定是否存在人,并基于该确定来激活用于第一体素的锚点骨架,其中,第一体素中表示的数据被定义为真实骨架。微处理器22可以被配置为顺序地或并行地确定人的存在以及这样的人的姿态。在一个示例中,微处理器22可以被配置为与确定是否存在人并行地确定真实骨架与锚点骨架之间的差异,基于该差异估计真实骨架的姿态,并在激活锚点骨架的情况下输出所述姿态。在另一个示例中,微处理器22可以被配置成在锚点骨架被激活的情况下确定真实骨架与锚点骨架之间的差异,并且基于该差异估计真实骨架的姿态,并输出所述姿态。
锚点骨架由多个关键点限定。为了确定真实骨架与锚点骨架之间的差异,微处理器22可以被配置为确定真实骨架与锚点骨架的每个关键点之间的差异。
在本公开的另一示例中,微处理器22还可以被配置为使用非最大值抑制技术来处理相对于LiDAR传感器的确定的一个或多个人以及所述一个或多个人中的每个人的姿态,以去除所述一个或多个人的重复。
在本公开的其他示例中,本公开的姿态估计技术可以扩展到一系列帧上,以检测可以构成某个动作(例如,挥手、走路、跑步等)的一系列姿态。这样的动作识别可以使用时间信息(例如,来自多个时间阶段的LiDAR点云数据)来执行动作识别。因此,在一个示例中,DNN 44可以配置为处理多个体素化的帧,以确定相对于LiDAR传感器的至少一个人以及该至少一个人的一系列姿态。然后,DNN 44可以依据所述姿态序列确定针对至少一个人的动作。下面描述实现动作识别的两个示例方式。
在第一示例中,DNN 44可被配置为将针对点云30的每一帧的固定数量的输出堆叠和/或级联为单个数据样本。DNN 44可以将所述单个数据样本馈送到分类器中以对动作类别进行分类。在帧索引t处,DNN44可以被配置为使用w的时间窗大小来产生单个样本,其是从帧t-w+1到t的组合w输出。DNN 44可以配置为包括分类器,该分类器是(多类(multi-class))深度神经网络或任何类型的机器学习模型,例如支持向量机(SVM)。
在另一示例中,DNN 44可以被配置为以顺序的方式使用每帧输出。例如,DNN 44可以被配置为将每帧输出馈送到递归神经网络,并在每个帧处或在一定数量的帧之后确定对动作的预测。
因此,代替每帧姿态估计(例如,骨架输出)或除每帧姿态估计之外(例如,骨架输出),DNN 44可被配置为将输出缝合为批量或顺序地馈送输出以获得更高级别的动作识别。要识别动作的一些可能类别包括站立、步行、跑步、骑自行车、滑板运动、挥手等。
下面描述本公开的技术的其他示例和组合。
方案1.一种用于姿态估计的方法,所述方法包括:接收来自LiDAR传感器的点云,所述点云包括表示物体相对于LiDAR传感器的位置的多个点;处理所述点云以产生包括多个体素的体素化的帧;使用深度神经网络处理所述体素化的帧,以确定相对于LiDAR传感器的一个或多个人以及所述一个或多个人的姿态;以及输出所确定的一个或多个人的位置以及所确定的一个或多个人中每个人的姿态。
方案2.根据方案1所述的方法,其中,所述体素化的帧的每个体素包括指示所述体素中存在或不存在来自所述点云的点的数据结构。
方案3.根据方案1或2所述的方法,其中,使用深度神经网络处理所述体素化的帧包括:使用卷积深度神经网络来处理所述体素化的帧,其中,所述卷积深度神经网络包括一个或多个三维卷积层,其后是一个或多个二维卷积层。
方案4.根据方案1至3的任意组合的方法,其中,使用深度神经网络处理所述体素化的帧包括:对于所述体素化的帧的第一体素,确定是否存在人;以及基于所述确定,激活用于所述第一体素的锚点骨架,其中,将所述第一体素中表示的数据定义为真实骨架(ground truth skeleton)。
方案5.根据方案1至4的任意组合的方法,还包括:与确定是否存在所述人并行地确定所述真实骨架与所述锚点骨架之间的差异;基于所述差异来估计所述真实骨架的姿态;以及在所述锚点骨架被激活的情况下输出所述姿态。
方案6.根据方案1至4的任意组合的方法,还包括:在所述锚点骨架被激活的情况下,确定所述真实骨架与所述锚点骨架之间的差异;基于所述差异估计所述真实骨架的姿态;以及输出所述姿态。
方案7.根据方案1至6的任意组合的方法,其中,所述锚点骨架由多个关键点限定。
方案8.根据方案1至7的任何组合的方法,其中确定所述真实骨架与所述锚点骨架之间的差异包括:确定所述真实骨架与所述锚点骨架的每个关键点之间的差异。
方案9.根据方案1至8的任意组合的方法,还包括:使用非最大值抑制技术来处理所确定的相对于LiDAR传感器的一个或多个人以及所述一个或多个人中的每个人的姿态,以去除所述一个或多个人的重复。
方案10.一种被配置为执行姿态估计的设备,所述设备包括:存储器,其被配置为接收来自LiDAR传感器的点云;以及以电路实现的一个或多个处理器,所述一个或多个处理器与存储器通信,并被配置为:接收来自LiDAR传感器的点云,所述点云包括表示物体相对于LiDAR传感器的位置的多个点;处理所述点云以产生包括多个体素的体素化的帧;使用深度神经网络处理所述体素化的帧,以确定一个或多个相对于LiDAR传感器的人以及所述一个或多个人中每个人的姿态;以及输出所确定的一个或多个人的位置以及所确定的一个或多个人中的每个人的姿态。
方案11.根据方案10所述的设备,其中,所述体素化的帧的每个体素包括指示所述体素中存在或不存在来自点云的点的数据结构。
方案12.根据方案10至11的任意组合的设备,其中,为了使用深度神经网络来处理所述体素化的帧,所述一个或多个处理器还被配置为:使用卷积深度神经网络来处理所述体素化的帧,其中所述卷积深度神经网络包括一个或多个三维卷积层,然后是一个或多个二维卷积层。
方案13.根据方案10至12的任意组合的设备,其中,为了使用深度神经网络来处理所述体素化的帧,所述一个或多个处理器还被配置为:对于所述体素化的帧的第一体素,确定是否存在人;并基于所述确定来激活用于所述第一体素的锚点骨架,其中,所述第一体素中表示的数据被定义为真实骨架。
方案14.根据方案10至13的任意组合的设备,其中,所述一个或多个处理器还被配置为:与确定是否存在所述人并行地确定所述真实骨架与所述锚点骨架之间的差异;基于所述差异估计所述真实骨架的姿态;以及在激活所述锚点骨架的情况下输出所述姿态。
方案15.根据方案10至13的任意组合的设备,其中,所述一个或多个处理器还被配置为:在激活所述锚点骨架的情况下确定所述真实骨架与所述锚点骨架之间的差异;基于所述差异来估计所述真实骨架的姿态;以及输出所述姿态。
方案16.根据方案10-15的任意组合的设备,其中,所述锚点骨架由多个关键点限定。
方案17.根据方案10-11的任意组合的设备,其中,为了确定所述真实骨架和所述锚点骨架之间的差异,所述一个或多个处理器还被配置为:确定所述真实骨架与所述锚点骨架的每个所述关键点之间的差异。
方案18.根据方案10至17的任意组合的设备,其中,所述一个或多个处理器还被配置为:使用非最大值抑制技术来处理所确定的相对于LiDAR传感器的一个或多个人以及所述一个或多个人中每个人的姿态,以去除所述一个或多个人的重复。
方案19.根据方案10至18的任意组合的设备,其中,所述设备包括具有LiDAR传感器的汽车。
方案20.一种配置为执行姿态估计的设备,所述设备包括:用于接收来自LiDAR传感器的点云的装置,所述点云包括表示物体相对于LiDAR传感器的位置的多个点;用于处理所述点云以产生包括多个体素的体素化的帧的装置;用于使用深度神经网络处理所述体素化的帧以确定相对于LiDAR传感器的一个或多个人以及所述一个或多个人中每个人的姿态的装置;以及用于输出所确定的一个或多个人的位置和所确定的一个或多个人中每个人的姿态的装置。
方案21.一种配置为执行姿态估计的设备,所述设备包括用于执行方案1至9的方法中的步骤的任何组合的装置。
方案22.一种非暂时性的计算机可读介质,可以被配置为存储指令,当执行所述指令时,所述指令使得一个或多个处理器接收来自LiDAR传感器的点云,所述点云包括表示物体相对于LiDAR传感器的位置的多个点;处理所述点云以生成包括多个体素的体素化的帧;使用深度神经网络处理所述体素化的帧以确定相对于LiDAR传感器的一个或多个人以及所述一个或多个人中每个人的姿态;以及输出所确定的一个或多个人的位置以及所确定的一个或多个人中每个人的姿态。
在另一示例中,本公开描述了用于标注点云数据的技术。为了训练深度神经网络以估计在点云数据中人的姿态,深度神经网络可以通过处理点云数据的训练集来配置和修改。所述点云数据的训练集用点云内人的确切位置和姿态(例如,通过手动标记(manuallabeling))事先标记。点云数据中姿态的该事先标记可以被称为标注(annotation)。存在用于标注在二维图像中人的姿态的技术。但是,标注点云数据有很大不同。首先,点云数据是三维的。此外,点云数据相对于二维图像数据是稀疏的。
本公开描述了一种用于标注点云数据的方法、设备和软件工具。用户可以使用本公开的技术来标注点云以标记在点云数据中发现的一个或多个姿态。已标注的点云数据然后可以用于训练神经网络,以更准确地实时识别和标记点云数据中的姿态。
图9是显示被配置为执行本公开的点云标注技术的示例性计算系统214的框图。计算系统214可以利用例如台式计算机、笔记本计算机、平板计算机、或任何类型的计算设备来实现。计算系统214包括处理器222、存储器224、和一个或多个输入设备218。在一些示例中,计算系统214可以包括多个处理器222。
处理器222可以实现为固定功能的处理电路、可编程的处理电路、或其组合。固定功能的电路是指提供特定功能并预设在可执行的操作上的电路。可编程的电路是指可以被编程为执行各种任务并在可以执行的操作中提供灵活功能的电路。例如,可编程的电路可以执行使可编程的电路以软件或固件的指令所限定的方式操作的软件或固件。固定功能的电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能的处理电路执行的操作类型通常是不可变的。在一些示例中,一个或多个单元可以是不同的电路块(固定功能或可编程的),并且在一些示例中,一个或多个单元可以是集成电路。
计算系统214可以被配置为生成用于在显示设备216上显示的信息。例如,如下面将更详细描述的,计算系统214可以生成图形用户界面(GUI)250并使GUI 250显示在显示设备216上。用户可以例如通过输入设备218而与GUI 250交互以标注点云数据。在一些示例中,显示设备216是计算系统214的一部分,但在其他示例中,显示设备216可以与计算系统214分离。显示设备216可以用任何电子显示器来实现,例如液晶显示器(LCD)、发光二极管(LED)显示器、或有机发光二极管(OLED)显示器。
输入设备218是被配置为接收用户命令或其他信息的设备。在某些示例中,输入设备218是计算系统214的一部分,但在其他示例中,输入设备218可与计算系统214分离。输入设备218可包括用于输入信息或命令的任何设备,例如键盘、麦克风、光标控制设备、或触摸屏。
根据本公开的技术,处理器222可以被配置为执行标注工具242的一组指令以根据本公开的技术执行点云标注。限定标注工具242的指令可以被存储在存储器224中。在一些示例中,可以通过有线或无线网络将限定标注工具242的指令下载到存储器224。
在一些示例中,存储器224可以是临时存储器,这意味着存储器224的主要目的不是长期存储。存储器224可以被配置为易失性存储器用于信息的短期存储,并且因此如果断电则不保留所存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、以及本领域已知的其他形式的易失性存储器。
存储器224可以包括一个或多个非暂时性的计算机可读的存储介质。存储器224可以被配置为存储比通常由易失性存储器存储的信息量更多的信息。存储器224可以还被配置为非易失性存储器空间用于长期存储信息,并且在通电/断电周期之后仍保留信息。非易失性存储器的示例包括磁性硬盘、光盘、闪存、或电可编程存储器(EPROM)或电可擦除可编程存储器(EEPROM)的形式。存储器224可以存储程序指令(例如,标注工具242)和/或信息(例如,点云训练数据230和标注的点云232),所述程序指令在被执行时使处理器222执行本公开的技术。
将参考执行各种软件模块的处理器222来描述本公开的以下技术。然而,应当理解,本文描述的每个软件模块也可以以专用硬件、固件、软件、或硬件、软件和固件的任何组合来实现。
根据本公开的技术,处理器222可通过执行标注工具242被配置为加载点云训练数据230。点云训练数据230可以包括一帧或多帧点云数据,例如,由LiDAR传感器或任何其他类型的捕获点云数据的传感器捕获的点云数据。标注工具242可以被配置为生成包括一帧或多个帧点云训练数据230的GUI 250,并且使显示设备216显示GUI 250。用户然后可以与GUI 250交互以将人的姿态标注到一帧点云训练数据230上,以限定在点云数据中可能存在的人的姿态。在标注之后,标注工具242可以被配置为输出已标注的点云232。已标注的点云232可以被存储在存储器224中和/或被下载在计算系统214的外部。已标注的点云232然后可以用于训练深度神经网络,深度神经网络被配置为根据点云数据估计人体姿态(例如,图2的深度神经网络44)。图9的深度神经网络244代表在训练过程之前和/或训练过程期间的深度神经网络44的版本。图10-14示出可以由标注工具242生成的GUI 250的各种示例。标注工具242相对于所生成的GUI 250和用户输入的操作将在下面更详细地讨论。
图10是示出用于标注的输入点云的概念性用户界面图。标注工具242可以使显示设备216显示包括点云帧252的GUI 250。例如,标注工具242可以响应于用户输入而生成GUI250,以加载点云训练数据230的点云帧252(参见图9)。标注工具242可以被配置为响应于用户与导入数据控件(import data controls)254的交互来加载和显示点云帧252。如图10所示,点云帧252可以包括点264,点264可以对应于在点云数据中捕获的一个或多个人。
导入数据控件254包括加载匹配按钮(load match button),加载云按钮(loadcloud(s)button)和加载Skel(骨架)按钮。当用户选择所述加载匹配按钮时,标注工具242打开文件浏览器对话框,并从图像和点云的匹配对的相应目录中读取用户选择的文件,该文件包含图像和点云的匹配对。在该示例中,标注工具242能够从既包括图像又包括匹配的点云的目录中加载文件。这样,可以同时查看配对的图像和点云。在其他示例中,标注工具242可以仅加载图像或点云之一。
当用户选择所述加载云按钮时,标注工具242打开文件浏览器对话框,并在用户选择的目录中填充具有可用点云文件的列表。然后,用户可以从填充的下拉列表中选择要查看的点云。
当用户选择所述加载骨架时,标注工具242打开文件浏览器对话框,并从用户选择的文件中加载任意先前标注的骨架。然后,用户可以编辑任意先前标注的骨架。
在一些示例中,标注工具242可以被配置为响应于用户输入,加载点云训练数据230的多个帧。标注工具可以最初显示多个帧中的单个点云帧252。标注工具242可以进一步生成一个或多个视频控件256,其使标注工具242按顺序显示点云数据的多个帧中的每一帧(例如,像视频一样)。在图10的示例中,视频控制按钮256包括播放和停止按钮,但是在其他示例中可以提供更多控制(例如,暂停、倒带、快进等)。
标注工具242还可以在GUI 250中包括编辑数据控件262。用户可以与编辑数据控件262交互以改变在GUI 250中显示的点云帧252的数据量或区域。用户可以通过指定水平方向(x-lims),竖直方向(y-lims)和深度方向(z-lims)的最小(min)和最大(max)尺寸来指定要显示的点云帧252的区域。标注工具242可以被配置为响应于编辑数据控件262中的用户输入来裁剪点云帧252,并显示点云帧252的裁剪区域。编辑数据控件262可以进一步包括旋转(rot)按钮,该按钮改变观察点云帧252的角度。编辑数据控件262中的大小按钮改变点云中每个点的大小。
在以上示例中,用户通过操纵编辑数据控件262,可以使用标注工具242来手动裁剪要显示的点云帧252的区域。裁剪点云帧252,例如在数据中的一个或多个潜在人的周围,可以使标注点云帧252更容易。在其他示例中,不是让用户手动裁剪点云帧252,而是将标注工具242配置为自动识别点云帧252中的感兴趣区域,并自动裁剪点云帧252以仅显示所识别的感兴趣区域。在一个示例中,标注工具242可以被配置为通过检测点云帧252的哪些区域包括指示可以在其上标注姿态的人的数据来识别关注区域。在一个示例中,标注工具242可以将点云帧242提供给深度神经网络244(图9),以便识别感兴趣的区域。深度神经网络244可以是以与上述深度神经网络44(参见图2)相同的方式来从点云数据识别人和估计姿态的深度神经网络。深度神经网络244可以是配置用于姿态估计的完整深度神经网络,也可以是用标注工具242生成的标注的点云232(见图9)进行训练的深度神经网络。深度神经网络244可以向标注工具242提供感兴趣区域的指示,并且标注工具242对感兴趣区域的指示可以裁剪所指示的感兴趣区域或其周围的点云帧252。
图11是示出用于标注的裁剪点云的概念性用户界面图。在图11中,标注工具242通过GUI 250在顶视图窗口266、侧视图窗口268、和前视图窗口270中显示点云帧252的裁剪区域。在顶视图窗口266中,标注工具242从正头顶显示点云帧252的裁剪区域。在侧视图窗口268中,标注工具242从与预定的前角成一角度(例如90度)显示点云帧252的裁剪区域。在前视图窗口270中,标注工具242从预定的前角显示点云帧252的裁剪区域。在其他示例中,标注工具242可以从更大或更小的角度和/或视角(包括等距视角)显示点云帧242的裁剪区域。另外,标注工具242不限于以不同的角度显示点云帧252的裁剪区域。标注工具242还可以以各种角度显示整个裁剪的帧252。
返回到图10,标注工具242可以进一步包括标注控件260(例如,标记为“骨架”的按钮)。当用户选择标注控件262的“骨架”按钮时,标注工具242可以用多个标注点来标记点云帧252中的点。也就是说,标注工具242可以覆盖由多个标注点限定的骨架,其中所述多个标注点对应于人体上的点。
图12是示出用于标注的示例性骨架的概念图。骨架400表示标注工具242可以用来标记点云帧252的点的示例性骨架。在图12的示例中,骨架400由14个标注点限定,每个标注点对应于人的关节或其他人体解剖结构。在其他示例中,骨架400可以包括更多或更少的标注点。如下面将解释的,用户可以操纵和移动骨架400的一个或多个标注点以限定由点云帧242中的点表示的人的姿态。
在图12中,骨架400面向观察者。这样,在图12的左侧示出了“右侧”肢体。骨架400由头部标注点402(1)的顶部、颈部标注点404(2)的中心、左肩标注点408(10)、右肩标注点406(5)、左肘标注点412(11)、右肘标注点410(6)、左手标注点416(12)、右手标注点414(7)、左髋标注点420(4),右髋标注点418(3)、左膝标注点424(13)、右膝标注点422(8)、左脚标注点428(14)和右脚标注点426(9)限定。标注点的参考数字旁边的括号中的数字涉及将在图13和图14中示出的标注工具242的选择按钮。
除了显示骨架400的各标注点之外,标注工具242还可以显示在标注点之间的线以限定骨架400的肢体和/或主要身体部位。例如,标注工具242可以显示在头部标注点402的顶部与颈部标注点404的中心之间的线,以限定头部。标注工具242可以显示从颈部标注点404的中心延伸通过右肩标注点406和右肘标注点410,并且结束于右手标注点414的线,以限定右臂。标注工具242可以显示从颈标注点404的中心延伸通过左肩标注点408和左肘标注点412并且结束于左手标注点416的线,以限定左臂。标注工具242可以显示从颈部标注点404的中心到左髋标注点420、到右髋标注点418、并且返回到颈标注点404的中心的线,以限定身体。标注工具242可以显示从右髋标注点418到右膝标注点422,并且结束于右脚标注点426的线以限定右腿。标注工具242可以显示从左髋标注点420到左膝标注点424并且结束于左脚标注点428的线,以限定右腿。
如图12所示,标注工具242可以针对不同的肢体使用不同的线宽和/或虚线类型。以这种方式,用户可以更容易地将骨架400的肢体彼此区分,以便选择适于操纵的适当标注点。在其他示例中,标注工具242可以使用不同的颜色来区分不同的肢体,而不是使用线宽或虚线类型。例如,限定头的标注点之间的线可以是蓝色的,限定右臂的标注点之间的线可以是绿色的,限定左臂的标注点之间的线可以是红色的,限定躯干的标注点之间的线可以是黄色的,限定右腿的标注点之间的线可以是品红色,并且限定左腿的标注点之间的线可以是青色。当然,可以使用其他颜色。
图13是示出点云的估计标注的概念性用户界面图。在图13中,标注工具242用骨架400的标注点标记点云帧252中的点。标注工具242在GUI 250中的顶视图266、侧视图268、和前视图270的每一个内示出了骨架400。初始地,标注工具242可以以默认位置和默认姿态显示骨架400。从图13中可以看出,骨架400的默认位置与点云帧252的点云数据中所描绘的人的实际姿态不匹配。用户可以操纵和/或移动骨架400的标注点中的一个或多个来匹配点云帧252的数据中存在的一个或多个人的实际姿态,以产生标注的点云。
在图13的示例中,标注工具242显示单个骨架400。在其他示例中,如果在点云帧242中存在多个待标注的姿态,则标注工具242可以生成并显示多个骨架。在一个示例中,标注工具242可以将骨架400定位在默认位置中,例如,在每个视图的中心中。在其他示例中,用户可以将骨架400手动定位(例如,通过一起移动所有标注点)到一个位置中。在其他示例中,标注工具242可以自动确定点云帧252中一个或多个人的位置,并将骨架400定位在自动确定的位置。在一个示例中,标注工具242可以将点云帧242提供给深度神经网络244。深度神经网络244可以是被配置为以与上面描述的深度神经网络44(见图2)相同的方式估计姿态的深度神经网络。深度神经网络244可以是配置用于姿态估计的完整深度神经网络,或者可以是由标注工具242产生的标注的点云232(见图9)进行训练的深度神经网络。深度神经网络244可以确定点云帧252中人的位置并且向标注工具242指示这样的人的位置。标注工具242然后可以在深度神经网络244指示的位置显示默认骨架400。
标注工具242还可以显示具有默认姿态的骨架400。也就是说,标注工具242可以以相对于彼此的默认方向显示骨架的标注点。图13示出骨架400的默认姿态的一个示例。当然,标注工具242可以生成其他默认姿态。在其他示例中,不是使用默认姿态,标注工具242可以估计在点云帧252中的人的位置和姿态。在一个示例中,标注工具242可以将点云帧242提供给深度神经网络244。深度神经网络244可以是被配置为以与上述深度神经网络44(参见图2)相同的方式估计姿态的深度神经网络。深度神经网络244可以是配置用于姿态估计的完整深度神经网络,也可以是由标注工具242生成的标注的点云232(见图9)进行训练的深度神经网络。深度神经网络244可以确定在点云帧252中发现的人的估计的位置和姿态,并向标注工具242指示这些人的位置和姿态。
然后,标注工具242可以在深度神经网络244指示的位置和姿态上显示默认骨架400。这样估计的姿态通常是不完全准确。然而,由深度神经网络244产生的估计的姿态可以比默认姿态更接近在点云数据中发现的实际姿态。因此,标注工具244的用户开始的姿态可以更接近要标注的实际姿态,从而使得用于标注姿态的手动过程更容易和更快速。
标注工具242可以为用户提供几种不同的工具,以将骨架400操纵到表示在点云帧252中发现的人的实际姿态的位置。标注工具242可以生成选择区域按钮272。用户可以激活选择区域按钮272,然后从顶视图266、侧视图268、或前视图270中选择用户将与之交互的那个视图。取决于点云帧252中捕获的人的位置和方向,在不同视图中对骨架400的操纵可能更容易。标注点控件274允许用户选择特定的标注点进行控制。标注点控件274中复选框的数字1-14对应于图12中所示的标注点括号中的数字。用户可以通过选择相应的复选框来选择一个或多个标注点。然后,标注工具242可以响应于用户输入而移动所选择的标注点中的一个或多个,以限定人的姿态并创建标注的点云数据232(参见图9)。
在一个示例中,标注工具242可以响应于用户与鼠标的交互(例如,单击和拖动)来移动所选择的标注点。在其他示例中,标注工具242可以响应于用户与旋转控件280和/或位置控件282的交互来移动一个或多个标注点。在图13的示例中,旋转控件280是使标注工具242围绕头部标注点的顶部旋转骨架400的所有标注点的滑块控件。位置控件282包括用于点云帧252的水平(X),竖直(Y)和深度(Z)尺寸的各个滑块。响应于用户移动所述滑块,标注工具242将所选择的标注点移动到点云帧252内的每个指定尺寸。尽管图13的示例示出了滑块控件,但是可以使用其他控件类型,包括在点云帧252内的特定坐标(例如,(X、Y、Z)坐标)的文本输入。
在本公开的一个示例中,标注工具242可以对骨架中的每个标注点分配唯一标识符。这样,可以跨越多个帧跟踪特定骨架的姿态和标注点。此外,结合以上讨论的动作识别技术,标注工具242还可包括每个帧和每个骨架的动作类别标记(例如,人的姿态)。
在本公开的一个示例中,为了增加定位标注点的精度,标注工具242可以被配置为每次仅允许选择单个标注点。一旦选择了单个标注点,用户可以仅使标注工具242移动单个选择的标注点。例如,一旦复选框标注点控件274之一被选择,标注工具242就可以使其他复选框不可用于选择。为了移动其他标注点,用户可以首先取消选择所选择的标注点。在移动单个选择的标注点时,标注工具242使所有其他标注点保持静止。在其他示例中,标注工具242可以允许选择多个标注点。在该示例中,标注工具242将响应于用户输入而仅移动所选择的标注点(例如,一个或多个所选择的标注点)。未选择的标注点将保持静止。
也就是说,在一个示例中,标注工具242接收对多个标注点中的单个标注点的选择,并且响应于用户输入,仅移动单个所选择的标注点以限定人体姿态的一部分。在其他示例中,标注工具242接收多个标注点中的两个或更多个标注点的选择,并且响应于用户输入,仅移动两个或更多个所选择的标注点以限定人体姿态的一部分。用户可以在标注窗口276中键入关于标注的点云帧252的注释。标注完成后,用户可以激活保存控件278以保存每个标注点的最终位置。接着,可以将标注的点云232(参见图9)保存在存储器中(例如,.json文件中),然后将其用于训练神经网络(例如,神经网络244)。
图14是示出标注的点云的概念性用户界面图。图14示出了在用户操纵后来自图13的骨架400的姿态。从图14可以看出,骨架400的标注点已移动到与点云252中的人捕获的实际姿态更加匹配的位置(即姿态)。
图15是显示根据本公开一个示例的标注工具的示例操作的流程图。图15中的技术可以由运行用于标注工具242(参见图9)的指令的处理器222来执行。图15的技术描绘了用于标注点云数据的单个帧的一个示例性过程。对于点云数据的多个帧可以重复图15的过程。
标注工具242可以加载并显示点云数据(900)。例如,标注工具242可以从点云文件中加载点云数据(例如,图9的点云训练数据230),并且可以使显示设备216显示GUI 250,其中GUI 250包括所加载的点云数据。标注工具242然后可以自动地或者通过用户输入来确定是否裁剪点云(902)。如果是,则标注工具902以一个或多个视角显示裁剪的点云(904)。标注工具904可以用标注点标记所显示的点云(例如,裁剪的点云)中的点(906)。如果未裁剪点云数据(902),则标注工具904还用标注点标记所显示的点云中的点(例如,整个点云)(906)。
标注工具242然后等待,直到选择了标注点(908)。一旦选择了标注点,标注工具242然后将响应于用户输入来移动所选择的标注点(910)。标注工具242随后将检查指示标注完成的用户输入(912)。如果是,则标注工具242输出标注的点云(914)。如果否,则标注工具242将等待另一个标注点被选择(908),然后响应于用户输入而重复该移动过程(910)。
将认识到,根据示例,本文描述的任何技术的某些动作或事件可以以不同的顺序执行,可以被添加、合并、或全部不考虑(例如,并非所有描述的动作或事件是实施该技术所必需的)。此外,在某些示例中,动作或事件可以例如通过多线程处理、中断处理、或多个处理器并发地而不是顺序地执行。
在一个或多个示例中,可以以硬件、软件、固件、或其任何组合来实现所描述的功能。如果以软件实现,则功能可以作为一条或多条指令或代码存储在计算机可读介质上或在计算机可读介质上传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读的存储介质,其对应于诸如数据存储介质的有形介质,或者通信介质,包括例如根据通信协议来促进将计算机程序从一个地方转移到另一个地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的、有形的计算机可读存储介质,或者(2)诸如信号或载波的通信介质。数据存储介质可以是可以由一台或多台计算机或一个或多个处理器访问以检索指令、代码和/或数据结构以实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这样的计算机可读的数据存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储,磁盘存储、或其他磁性存储设备、闪存、或可以用于以指令或数据结构形式存储所需程序代码并且可以由计算机访问的任何其他介质。而且,任何连接都适当地称为计算机可读介质。例如,如果使用同轴缆线、光纤缆线、双绞线、数字用户线(DSL)、或无线技术(例如红外、无线电和微波)从网站、服务器或其他远程源发送指令,则介质的定义包括同轴缆线、光纤缆线、双绞线、DSL或诸如红外、无线电和微波之类的无线技术。然而,应当理解,计算机可读的存储介质和数据存储介质不包括连接、载波、信号或其他瞬时介质,而是针对非瞬时的有形存储介质。上述的组合也应包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂的可编程逻辑设备(CPLD)、或其他等同的集成或离散逻辑电路。因此,本文所使用的术语“处理器”可以指任何前述结构或适合于实施本文所述技术的任何其他结构。还有,该技术可以在一个或多个电路或逻辑元件中完全实现。
本公开的技术可以在包括一块集成电路(IC)或一组IC(例如,芯片组)的多种设备或装置中实现。在本公开中描述了各种组件、模块、或单元以强调被配置为执行所披露技术的设备的功能方面,但不一定需要由不同硬件单元来实现。
本领域普通技术人员已知的对所公开的技术的方法和设备的任何改变和/或修改均在本发明的范围内。已经描述了本发明的各种示例。这些和其他实施例都落入所附权利要求的范围内。
Claims (20)
1.一种用于标注3D点云数据中人体姿态的方法,包括:
通过一个或多个处理器使显示点云数据的多个帧中的至少一帧;
通过所述一个或多个处理器用多个标注点标记所述点云数据的所述至少一帧中的点,所述多个标注点对应于人体上的点;
通过所述一个或多个处理器使视频显示所述点云数据的所述多个帧,其中所述视频显示可被控制以前进、快进、暂停、倒带;
通过所述一个或多个处理器并响应于用户输入而移动所述标注点中的一个或多个以限定人体姿态并创建标注的点云数据;以及
通过所述一个或多个处理器输出所标注的点云数据用于由神经网络进行训练。
2.根据权利要求1所述的方法,其中,通过所述一个或多个处理器用多个标注点标记所述点云数据的所述至少一帧中的点包括:
通过所述一个或多个处理器估计所述点云数据的所述至少一帧中潜在的人体姿态的位置;以及
通过所述一个或多个处理器标记所述标注点以与所述潜在的人体姿态的估计位置相对应。
3.根据权利要求1所述的方法,其中,通过所述一个或多个处理器并响应于用户输入而移动所述标注点中的一个或多个以限定人体姿态并创建标注的点云数据包括:
通过所述一个或多个处理器接收对所述多个标注点中的单个标注点的选择;
通过所述一个或多个处理器并响应于用户输入,仅移动所述单个标注点以限定人体姿态的一部分。
4.根据权利要求1所述的方法,其中,通过所述一个或多个处理器并响应于用户输入而移动所述标注点中的一个或多个以限定人体姿态并创建标注的点云数据包括:
通过所述一个或多个处理器接收对所述多个标注点中的两个或更多标注点的选择;
通过所述一个或多个处理器并响应于用户输入,仅移动所述两个或更多个标注点以限定人体姿态的一部分。
5.根据权利要求1所述的方法,还包括:
在显示所述点云数据的同时显示与所述点云数据的所述至少一帧相对应的图像;
通过所述一个或多个处理器裁剪在所述点云数据中潜在的人体姿态区域周围的所述点云数据和所述图像;以及
通过所述一个或多个处理器使显示裁剪区域。
6.根据权利要求5所述的方法,还包括:
通过所述一个或多个处理器使以多个视角显示裁剪区域。
7.根据权利要求1所述的方法,其中,所述多个标注点包括与头部的顶部、颈部的中心、右髋、左髋、右肩、右肘、右手、右膝、右脚、左肩、左肘、左手、左膝、和左脚相对应的标注点,并且其中,所述标注点的组对应于人的四肢,所述方法还包括:
通过所述一个或多个处理器使显示所述标注点之间的线以限定肢体,包括使用不同的颜色显示不同的肢体。
8.根据权利要求1所述的方法,还包括:
通过所述一个或多个处理器为所述点云数据的所述多个帧中的每帧点云数据和人体姿态添加动作标签。
9.根据权利要求1所述的方法,还包括:
通过所述一个或多个处理器用所标注的点云数据训练所述神经网络,其中,所述神经网络被配置为从LiDAR点云数据估计人的姿态。
10.一种用于标注3D点云数据中人体姿态的设备,包括:
存储器,被配置以存储点云数据;和
一个或多个与所述存储器通信的处理器,所述一个或多个处理器被配置为:
使显示所述点云数据的多个帧中的至少一帧;
用多个标注点标记所述点云数据的所述至少一帧中的点,所述多个标注点对应于人体上的点;
使视频显示所述点云数据的所述多个帧,其中所述视频显示可被控制以前进、快进、暂停、倒带;
响应于用户输入而移动一个或多个所述标注点以限定人体姿态并创建标注的点云数据;和
输出所标注的点云数据用于由神经网络进行训练。
11.根据权利要求10所述的设备,其中,为了用多个标注点标记所述点云数据的所述至少一帧中的点,所述一个或多个处理器还被配置为:
估计所述点云数据的所述至少一帧中潜在的人体姿态的位置;和
标记所述标注点以与所述潜在的人体姿态的估计位置相对应。
12.如权利要求10所述的设备,其中,为了响应于用户输入而移动一个或多个所述标注点以限定人体姿态并创建标注的点云数据,所述一个或多个处理器还被配置为:
接收对所述多个标注点中的单个标注点的选择;
响应于用户输入,仅移动所述单个标注点以限定人体姿态的一部分。
13.根据权利要求10所述的设备,其中,为了响应于用户输入而移动一个或多个所述标注点以限定人体姿态并创建标注的点云数据,所述一个或多个处理器还被配置为:
接收对所述多个标注点中的两个或更多个标注点的选择;
响应于用户输入,仅移动所述两个或更多个标注点以限定人体姿态的一部分。
14.根据权利要求10所述的设备,其中,所述一个或多个处理器还被配置为:
在显示所述点云数据的同时显示与所述点云数据的所述至少一帧相对应的图像;
裁剪在所述点云数据中潜在的人体姿态区域周围的所述点云数据和所述图像;和
使显示裁剪区域。
15.根据权利要求14所述的设备,其中,所述一个或多个处理器还被配置为:
使以多个视角显示裁剪区域。
16.根据权利要求10所述的设备,其中,所述多个标注点包括与头部的顶部、颈部的中心、右髋、左髋、右肩、右肘、右手、右膝、右脚、左肩、左肘、左手、左膝、和左脚相对应的标注点,并且其中,所述标注点的组对应于人的四肢,并且其中,所述一个或多个处理器还被配置为:
使显示所述标注点之间的线以限定肢体,包括使得使用不同的颜色显示不同的肢体。
17.根据权利要求10所述的设备,其中,所述一个或多个处理器还被配置为:
为所述点云数据的所述多个帧中的每帧点云数据和人体姿态添加动作标签。
18.根据权利要求10所述的设备,其中,所述一个或多个处理器还被配置为:
用所标注的点云数据训练所述神经网络,其中所述神经网络被配置为从LiDAR点云数据估计人的姿态。
19.一种用于标注3D点云数据中人体姿态的设备,包括:
用于使点云数据的多个帧中的至少一帧显示的装置;
用多个标注点标记所述点云数据的所述至少一帧中的点的装置,所述多个标注点对应于人体上的点;
使视频显示所述点云数据的所述多个帧的装置,其中所述视频显示可被控制以前进、快进、暂停、倒带;
响应于用户输入而移动所述标注点中的一个或多个以限定人体姿态并创建标注的点云数据的装置;和
用于输出所标注的点云数据用于由神经网络进行训练的装置。
20.一种存储指令的非暂时性的计算机可读存储介质,在执行所述指令时引起一个或多个处理器以:
使显示点云数据的多个帧中的至少一帧;
用多个标注点标记所述点云数据的所述至少一帧中的点,所述多个标注点对应于人体上的点;
使视频显示所述点云数据的所述多个帧,其中所述视频显示可被控制以前进、快进、暂停、倒带;
响应于用户输入而移动所述标注点中的一个或多个以限定人体姿态并创建标注的点云数据;和
输出所标注的点云数据用于由神经网络进行训练。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962817400P | 2019-03-12 | 2019-03-12 | |
US62/817,400 | 2019-03-12 | ||
US16/692,901 | 2019-11-22 | ||
US16/692,901 US11308639B2 (en) | 2019-03-12 | 2019-11-22 | Tool and method for annotating a human pose in 3D point cloud data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111695402A CN111695402A (zh) | 2020-09-22 |
CN111695402B true CN111695402B (zh) | 2023-09-08 |
Family
ID=69804514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010171054.XA Active CN111695402B (zh) | 2019-03-12 | 2020-03-12 | 用于标注3d点云数据中人体姿态的工具和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11308639B2 (zh) |
EP (1) | EP3709134A1 (zh) |
CN (1) | CN111695402B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019222383A1 (en) * | 2018-05-15 | 2019-11-21 | Northeastern University | Multi-person pose estimation using skeleton prediction |
US11495070B2 (en) * | 2019-09-10 | 2022-11-08 | Orion Entrance Control, Inc. | Method and system for providing access control |
TWI733616B (zh) * | 2020-11-04 | 2021-07-11 | 財團法人資訊工業策進會 | 人體姿勢辨識系統、人體姿勢辨識方法以及非暫態電腦可讀取儲存媒體 |
US20210110606A1 (en) * | 2020-12-23 | 2021-04-15 | Intel Corporation | Natural and immersive data-annotation system for space-time artificial intelligence in robotics and smart-spaces |
CN112686979B (zh) * | 2021-03-22 | 2021-06-01 | 中智行科技有限公司 | 仿真行人动画生成方法、装置和电子设备 |
CN113361333B (zh) * | 2021-05-17 | 2022-09-27 | 重庆邮电大学 | 一种非接触式骑行运动状态监测方法及其系统 |
CN113223181B (zh) * | 2021-06-02 | 2022-12-23 | 广东工业大学 | 一种弱纹理物体位姿估计方法 |
CN113341402A (zh) * | 2021-07-15 | 2021-09-03 | 哈尔滨工程大学 | 一种声呐监测机器人用声呐装置 |
CN113705445B (zh) * | 2021-08-27 | 2023-08-04 | 深圳龙岗智能视听研究院 | 一种基于事件相机的人体姿态识别的方法及设备 |
CN114091601B (zh) * | 2021-11-18 | 2023-05-05 | 业成科技(成都)有限公司 | 人员状况侦测的传感器融合方法 |
WO2023203896A1 (ja) * | 2022-04-21 | 2023-10-26 | ソニーセミコンダクタソリューションズ株式会社 | 情報処理装置及びプログラム |
CN115965788B (zh) * | 2023-01-12 | 2023-07-28 | 黑龙江工程学院 | 基于多视角图结构特征注意力卷积的点云语义分割方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106688013A (zh) * | 2014-09-19 | 2017-05-17 | 高通股份有限公司 | 姿态估算的系统和方法 |
CN107871129A (zh) * | 2016-09-27 | 2018-04-03 | 北京百度网讯科技有限公司 | 用于处理点云数据的方法和装置 |
CN108062526A (zh) * | 2017-12-15 | 2018-05-22 | 厦门美图之家科技有限公司 | 一种人体姿态估计方法及移动终端 |
US9984499B1 (en) * | 2015-11-30 | 2018-05-29 | Snap Inc. | Image and point cloud based tracking and in augmented reality systems |
CN108734120A (zh) * | 2018-05-15 | 2018-11-02 | 百度在线网络技术(北京)有限公司 | 标注图像的方法、装置、设备和计算机可读存储介质 |
JP2018189510A (ja) * | 2017-05-08 | 2018-11-29 | 株式会社マイクロ・テクニカ | 3次元物体の位置および姿勢を推定する方法および装置 |
CN109086683A (zh) * | 2018-07-11 | 2018-12-25 | 清华大学 | 一种基于点云语义增强的人手姿态回归方法和系统 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070174769A1 (en) | 2006-01-24 | 2007-07-26 | Sdgi Holdings, Inc. | System and method of mapping images of the spine |
US9571816B2 (en) | 2012-11-16 | 2017-02-14 | Microsoft Technology Licensing, Llc | Associating an object with a subject |
US9485540B2 (en) * | 2014-06-03 | 2016-11-01 | Disney Enterprises, Inc. | System and method for multi-device video image display and modification |
US11120478B2 (en) | 2015-01-12 | 2021-09-14 | Ebay Inc. | Joint-based item recognition |
GB2537681B (en) | 2015-04-24 | 2018-04-25 | Univ Oxford Innovation Ltd | A method of detecting objects within a 3D environment |
US20170046865A1 (en) * | 2015-08-14 | 2017-02-16 | Lucasfilm Entertainment Company Ltd. | Animation motion capture using three-dimensional scanner data |
CN110688891B (zh) | 2015-08-15 | 2024-05-31 | 硕动力公司 | 采用3d批归一化的三维(3d)卷积 |
US9898858B2 (en) | 2016-05-18 | 2018-02-20 | Siemens Healthcare Gmbh | Human body representation with non-rigid parts in an imaging system |
US10451405B2 (en) | 2016-11-22 | 2019-10-22 | Symbol Technologies, Llc | Dimensioning system for, and method of, dimensioning freight in motion along an unconstrained path in a venue |
US10099372B2 (en) | 2017-02-07 | 2018-10-16 | Veo Robotics, Inc. | Detecting and classifying workspace regions for safety monitoring |
US10539676B2 (en) | 2017-03-22 | 2020-01-21 | Here Global B.V. | Method, apparatus and computer program product for mapping and modeling a three dimensional structure |
US10444759B2 (en) | 2017-06-14 | 2019-10-15 | Zoox, Inc. | Voxel based ground plane estimation and object segmentation |
US11475351B2 (en) | 2017-11-15 | 2022-10-18 | Uatc, Llc | Systems and methods for object detection, tracking, and motion prediction |
GB201804082D0 (en) * | 2018-03-14 | 2018-04-25 | Five Ai Ltd | Image annotation |
US10977827B2 (en) | 2018-03-27 | 2021-04-13 | J. William Mauchly | Multiview estimation of 6D pose |
US10839266B2 (en) | 2018-03-30 | 2020-11-17 | Intel Corporation | Distributed object detection processing |
CN108898063B (zh) | 2018-06-04 | 2021-05-04 | 大连大学 | 一种基于全卷积神经网络的人体姿态识别装置及方法 |
US11217006B2 (en) | 2018-10-29 | 2022-01-04 | Verizon Patent And Licensing Inc. | Methods and systems for performing 3D simulation based on a 2D video image |
SG11201811462PA (en) | 2018-11-09 | 2020-06-29 | Beijing Didi Infinity Technology & Development Co Ltd | Vehicle positioning system using lidar |
-
2019
- 2019-11-22 US US16/692,901 patent/US11308639B2/en active Active
-
2020
- 2020-03-10 EP EP20162165.3A patent/EP3709134A1/en active Pending
- 2020-03-12 CN CN202010171054.XA patent/CN111695402B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106688013A (zh) * | 2014-09-19 | 2017-05-17 | 高通股份有限公司 | 姿态估算的系统和方法 |
US9984499B1 (en) * | 2015-11-30 | 2018-05-29 | Snap Inc. | Image and point cloud based tracking and in augmented reality systems |
CN107871129A (zh) * | 2016-09-27 | 2018-04-03 | 北京百度网讯科技有限公司 | 用于处理点云数据的方法和装置 |
JP2018189510A (ja) * | 2017-05-08 | 2018-11-29 | 株式会社マイクロ・テクニカ | 3次元物体の位置および姿勢を推定する方法および装置 |
CN108062526A (zh) * | 2017-12-15 | 2018-05-22 | 厦门美图之家科技有限公司 | 一种人体姿态估计方法及移动终端 |
CN108734120A (zh) * | 2018-05-15 | 2018-11-02 | 百度在线网络技术(北京)有限公司 | 标注图像的方法、装置、设备和计算机可读存储介质 |
CN109086683A (zh) * | 2018-07-11 | 2018-12-25 | 清华大学 | 一种基于点云语义增强的人手姿态回归方法和系统 |
Non-Patent Citations (1)
Title |
---|
三维手姿态建模及其交互系统研究;李昊鑫;中国优秀硕士学位论文全文数据库信息科技辑(第2期);I138-2958 * |
Also Published As
Publication number | Publication date |
---|---|
EP3709134A1 (en) | 2020-09-16 |
US11308639B2 (en) | 2022-04-19 |
US20200294266A1 (en) | 2020-09-17 |
CN111695402A (zh) | 2020-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111695402B (zh) | 用于标注3d点云数据中人体姿态的工具和方法 | |
US11043005B2 (en) | Lidar-based multi-person pose estimation | |
US20230351795A1 (en) | Determining associations between objects and persons using machine learning models | |
Possatti et al. | Traffic light recognition using deep learning and prior maps for autonomous cars | |
CN106980813B (zh) | 机器学习的注视生成 | |
US20210089794A1 (en) | Vehicle system and method for detecting objects and object distance | |
CN106503653A (zh) | 区域标注方法、装置和电子设备 | |
US11755917B2 (en) | Generating depth from camera images and known depth data using neural networks | |
US11748998B1 (en) | Three-dimensional object estimation using two-dimensional annotations | |
WO2019097595A1 (ja) | 車外コミュニケーション装置、車外コミュニケーション方法、情報処理装置、及び車外コミュニケーションプログラム | |
Bhandari et al. | Object detection and recognition: using deep learning to assist the visually impaired | |
CN114830177A (zh) | 电子设备和用于控制该电子设备的方法 | |
Weyers et al. | Action and object interaction recognition for driver activity classification | |
US11080562B1 (en) | Key point recognition with uncertainty measurement | |
CN113095351A (zh) | 借助于初始标记的改善生成经标记的数据的方法 | |
CN115440001B (zh) | 儿童跟随看护方法、装置、跟随机器人及存储介质 | |
JP2020149086A (ja) | 学習用データ生成装置、学習用データ生成方法、および学習用データ生成プログラム | |
US20220164350A1 (en) | Searching an autonomous vehicle sensor data repository based on context embedding | |
CN110736465A (zh) | 导航方法、装置、机器人及计算机可读存储介质 | |
Aswini et al. | Drone Object Detection Using Deep Learning Algorithms | |
Alfahdawi et al. | Object Recognition System for Autonomous Vehicles Based on PCA and 1D-CNN | |
EP4123582A1 (en) | Generating optical flow labels from point clouds | |
US20230267749A1 (en) | System and method of segmenting free space based on electromagnetic waves | |
WO2021220398A1 (ja) | オブジェクト領域特定装置、オブジェクト領域特定方法、及びオブジェクト領域特定プログラム | |
Ganesan | Deep Q-Learning for Lane Localization: Exploring Reinforcement Learning for Accurate Lane Detection |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |