CN113330490B - 三维(3d)辅助个性化家庭对象检测 - Google Patents
三维(3d)辅助个性化家庭对象检测 Download PDFInfo
- Publication number
- CN113330490B CN113330490B CN201980090046.8A CN201980090046A CN113330490B CN 113330490 B CN113330490 B CN 113330490B CN 201980090046 A CN201980090046 A CN 201980090046A CN 113330490 B CN113330490 B CN 113330490B
- Authority
- CN
- China
- Prior art keywords
- trained
- images
- models
- salient
- training 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.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 95
- 238000012549 training Methods 0.000 claims abstract description 192
- 238000013528 artificial neural network Methods 0.000 claims abstract description 59
- 230000011218 segmentation Effects 0.000 claims abstract description 27
- 230000002776 aggregation Effects 0.000 claims abstract description 9
- 238000004220 aggregation Methods 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 85
- 238000012545 processing Methods 0.000 claims description 30
- 230000008569 process Effects 0.000 claims description 28
- 230000006870 function Effects 0.000 claims description 20
- 238000013519 translation Methods 0.000 claims description 19
- 239000013598 vector Substances 0.000 claims description 13
- 230000000007 visual effect Effects 0.000 claims description 12
- 238000007670 refining Methods 0.000 claims description 6
- 101000657326 Homo sapiens Protein TANC2 Proteins 0.000 claims description 5
- 102100034784 Protein TANC2 Human genes 0.000 claims description 5
- 238000013138 pruning Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 claims description 3
- 230000005055 memory storage Effects 0.000 claims 1
- 238000013527 convolutional neural network Methods 0.000 description 36
- 238000004422 calculation algorithm Methods 0.000 description 35
- 238000010801 machine learning Methods 0.000 description 17
- 238000012360 testing method Methods 0.000 description 14
- 238000011176 pooling Methods 0.000 description 13
- 230000014616 translation Effects 0.000 description 13
- 230000007613 environmental effect Effects 0.000 description 7
- 235000013305 food Nutrition 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000005259 measurement Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000005286 illumination Methods 0.000 description 4
- 230000004807 localization Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006735 deficit Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 241000920471 Lucilia caesar Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 241000219000 Populus Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000001444 catalytic combustion detection Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 235000015219 food category Nutrition 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Classifications
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
- G06F18/2148—Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
- G06F18/2193—Validation; Performance evaluation; Active pattern learning techniques based on specific statistical tests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/254—Fusion techniques of classification results, e.g. of results related to same input data
-
- 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
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- 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/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- 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/60—Type of objects
- G06V20/64—Three-dimensional objects
- G06V20/647—Three-dimensional objects by matching two-dimensional images to three-dimensional objects
-
- 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
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Graphics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biodiversity & Conservation Biology (AREA)
- Geometry (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Probability & Statistics with Applications (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- Image Analysis (AREA)
Abstract
用于对象检测的视觉***,该***从多个视图接收包括对象的二维(2D)图像集合的训练数据集。基于重建期间选择的对象的显著点,从2D图像集合重建3D模型集合,以生成对象的显著3D模型,该显著3D模型是3D模型集合中的对象的显著点的聚合。在训练数据集的第一训练数据集中的2D图像集合和使用第一训练数据集生成的对象的显著3D模型之间生成训练的2D‑3D对应数据的集合。使用通过第一训练数据集生成的训练的2D‑3D对应数据的集合来训练深度神经网络,以用于对象检测和分割。
Description
交叉引用
本申请要求于2019年01月31日提交、序列号为No.62/799,230,申请名称为“三维(3D)辅助个性化家庭目标检测”的美国临时专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本公开通常涉及对象检测,并且更具体地,涉及对象分割和姿态估计。
背景技术
计算机视觉中的对象检测允许计算***通过从图像中定位对象来理解图像或图像集合。计算***能够准确地检测和定位图像中的对象,具有广泛的应用前景,例如基于内容的搜索,定向广告、驾驶和医疗诊断。但是,在对象识别方法和***中,教会计算***检测和定位落入同一类或类别中的特定对象或部分对象,这是一个挑战,但是这些对象和部分对象在给定图像中也不具有一致的或可识别的特征。
计算机视觉技术在利用标签图像训练识别***的全监督的对象识别中取得了巨大的成功。但是,全监督的对象识别需要大量标记的训练数据,获取成本高且并不总是可用的,因为大部分标记的训练数据都是通过人工标记图像来创建的。为了避免需要大量的人工参与,已经提出了许多无监督的方法来训练对象检测***。虽然已经取得了重要进展,但这些无监督的方法需要一定的条件,例如,大量占用前景对象,排除不相关的其他对象类型以及干净的背景。这些条件限制了无监督的对象识别的应用。
发明内容
根据本公开的一个方面,提供一种用于对象检测的计算机实现的方法,包括从多个视图接收包括所述对象的二维(2D)图像集合的一个或多个训练数据集,其中,所述2D图像集合针对所述一个或多个训练数据集中的每一个是以不同的设置捕获的;基于重建期间选择的所述对象的显著点,从所述一个或多个训练数据集中的每一个中的所述2D图像集合重建3D模型集合,以生成所述对象的一个或多个显著3D模型,所述显著3D模型是所述3D模型集合中的所述对象的所述显著点的聚合;在所述一个或多个训练数据集的第一训练数据集中的所述对象的所述2D图像集合与使用所述第一训练数据集生成的所述对象的所述显著3D模型之间生成训练的2D-3D对应数据的集合;以及使用通过所述第一训练数据集生成的所述训练的2D-3D对应数据的集合来训练深度神经网络,以用于对象检测和分割。
可选地,在前述任一方面中,所述的计算机实现的方法,还包括计算所述3D模型集合中每个匹配的3D模型集合的匹配的3D点集合;计算六自由度(6DoF)的旋转和平移,以转换所述匹配的3D模型集合。细化所述6DoF的旋转和平移,以将所述3D模型中的每一个对齐到统一的3D世界坐标系中,并且通过对齐所述3D模型集合中的所述3D模型中的每一个生成统一的3D模型;以及使用所述深度神经网络确定所述对象的3D显著部分集合,以生成所述对象的所述显著3D模型。
可选地,在前述任一方面中,所述3D模型是所述对象的3D点云,并且所述3D点云中的每一个点都记录了所述点在3D空间中的3D坐标;以及所述计算机实现的方法还包括从所述3D点云中的每一个点计算特征表示,作为基于相应2D图像中相应像素的视觉外观计算的特征向量。
可选地,在前述任一方面中,所述计算机实现的方法,还包括删减所述训练的2D-3D对应数据的集合,以减少所述2D图像集合中的噪声。
可选地,在前述任一方面中,其中,训练所述深度神经网络包括:接收所述训练的2D-3D对应数据的集合;使用所述深度神经网络处理所述训练的2D-3D对应数据的集合,以生成所述2D-3D对应数据的2D点;使用损失函数计算所述2D点和地面值2D点之间的损失;基于所计算的损失计算梯度;以及基于所计算的损失和所计算的梯度更新网络参数。
可选地,在前述任一方面中,所述的计算机实现的方法,还包括在对象检测网络上接收一个或多个新的2D图像,所述对象检测网络生成对象边界框作为所述训练的深度神经网络的输入。
可选地,在前述任一方面中,所述的计算机实现的方法,还包括:使用所述训练的深度神经网络检测在所述对象边界框中识别的所述对象,而无需执行所述一个或多个新的2D图像的3D重建;以及输出通过所述训练的深度神经网络检测到的所述对象的定位信息和表面坐标。
可选地,在前述任一方面中,其中,所述训练的深度神经网络通过以下方式处理所述对象边界框,将所述一个或多个新的2D图像卷积,以提取特征,提取的特征形成特征图;通过将区域建议方法应用于所述特征图来创建感兴趣区域(Rols);通过对齐所述特征图和对象特征图的边界来提供所述一个或多个2D图像的所述Rols和所述特征图,以细化所述Rols;以及基于所细化的Rols输出所述对象的所述定位信息和分类结果,其中所述定位信息定义了所述对象在所述图像中的位置,并且所述分类结果估计了所述对象的所述表面坐标。
可选地,在前述任一方面中,所述的计算机实现的方法,还包括:在所述一个或多个训练数据集的第二训练数据集中的所述对象的所述2D图像集合与使用所述第二训练数据集生成的所述对象的所述显著3D模型之间生成所述训练的2D-3D对应数据的集合;以及使用通过所述第二训练数据集生成的所述训练的2D-3D对应数据的集合来训练所述深度神经网络,以用于对象检测和分割。
根据本发明的另一方面,有一种用于对象检测的设备,包括指令的非暂时性内存存储器;以及与所述存储器通信的一个或多个处理器,其中,所述一个或多个处理器执行所述指令,以:从多个视图接收包括所述对象的二维(2D)图像集合的一个或多个训练数据集,其中,所述2D图像集合对于所述一个或多个训练数据集中的每一个是以不同的设置捕获的;基于重建期间选择的对象的显著点,从所述一个或多个训练数据集中的每一个中的所述2D图像集合重建3D模型集合,以生成所述对象的一个或多个显著3D模型,所述显著3D模型是所述3D模型集合中的所述对象的所述显著点的聚合;在所述一个或多个训练数据集的第一训练数据集中的所述对象的所述2D图像集合与使用所述第一训练数据集生成的所述对象的所述显著3D模型之间生成训练的2D-3D对应数据的集合;以及使用通过所述第一训练数据集生成的所述训练的2D-3D对应数据的集合来训练深度神经网络,以用于对象检测和分割。
根据本发明的另一方面,有一种非暂时性计算机可读介质,用于存储用于对象检测的计算机指令,当由一个或多个处理器执行时,使得所述一个或多个处理器执行步骤:从多个视图接收包括所述对象的二维(2D)图像集合的一个或多个训练数据集,其中,所述2D图像集合对于所述一个或多个训练数据集中的每一个是以不同的设置捕获的;基于重建期间选择的对象的显著点,从所述一个或多个训练数据集中的每一个中的所述2D图像集合重建3D模型集合,以生成所述对象的一个或多个显著3D模型,所述显著3D模型是所述3D模型集合中的所述对象的所述显著点的聚合;在所述一个或多个训练数据集的第一训练数据集中的所述对象的所述2D图像集合与使用所述第一训练数据集生成的所述对象的所述显著3D模型之间生成训练的2D-3D对应数据的集合;以及使用通过所述第一训练数据集生成的所述一组训练的2D-3D对应数据的集合来训练深度神经网络,使用以用于对象检测和分割。
提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容并非旨在确定所要求保护的主题的关键特征或必要特征,也并非旨在用于帮助确定所要求主题的保护范围。所要求保护的主题不限于解决背景技术中提及的任何或所有缺点的实现方式。
附图说明
通过示例的方式说明本公开的各方面,并且本公开的各方面不受附图的限制,附图中相同的附图标记表示元件。
图1示出了用于训练和识别对象的示例计算***。
图2A示出了根据图1的***检测对象和估计对象姿态的示例流程图。
图2B示出了根据图2A的阶段201的图像重建和3D建模的实施例。
图3A示出了图2A的显著注意学习的具体实施例。
图3B示出了其中可以实现本技术的实施例的示例性深度神经网络(DNN)。
图3C示出了作为无监督的学习算法的示例深度ANN。
图4A示出了图2A的训练姿态生成阶段的具体实施例。
图4B示出了自动编码器的示例实施例。
图5A示出了图2A的3D辅助对象检测网络训练阶段的具体实施例。
图5B示出了图5A中的3D辅助对象检测网络的详细实施例。
图6A示出了根据图2A的测试阶段200B的测试阶段的示例实施例。
图6B示出了示例深度CNN。示例CNN是一个将计算构造为卷积DNN层。
图7A-7C是根据本公开的实施例的对象检测的示例流程图。
图8示出了用于执行3D对象分割(3DOS)的设备的示例框图。
具体实施方式
现在将参考附图描述本公开,这些附图通常涉及使用训练的深度神经网络进行对象检测。
机器学习应用计算机视觉技术来分析和理解图像。此类技术可用于在各种环境中识别对象。在能够检测图像中的对象之前,首先要训练计算机视觉***识别对象。但是,应用当前的训练技术来分析私人环境中拍摄的图像是一项非常重要的任务。特别地,在私人环境中(例如,家),对象检测通常基于质量低于在公共场合(例如,球场或博物馆)中拍摄的图像。例如,在家中拍摄的图像通常源于输出质量较低的机器人或监控摄像头,而在公共场合拍摄的图像通常源于输出质量较高的相机和手机,供以后展示和共享。此外,私人环境中拍摄和检测的对象类别也与公共环境中不同。公共对象检测通常侧重于不同的对象类别,例如行人,汽车,建筑,动物等。私人环境中的对象往往在类别和类别中的多样性方面不太多样化。例如,公共环境中发现的对象(例如,瓶子)可能具有许多不同的特征,因为可以发现不同种类的瓶子。在私人环境中(例如,家),对象(例如,瓶子)的多样性往往要小的多。例如,在任何一个私人环境中都可以找到极少数几种类型的瓶子,甚至可能是个人定制的瓶子。相应地,不必将瓶子作为一个通用类别检测(考虑到公共场合中瓶子的种类繁多),人们可能需要区分通常在特定的私人环境中找到的有限数量的不同类型的瓶子。类似于在公共环境和私人环境中发现的不同种类的对象,环境设置本身也不同。例如,公共环境中瓶子的照明和透视,例如发布在网页上的图像,通常比私人环境中瓶子的照明和透视更不具挑战性(其中,在不同条件下访问对象通常是不可能的)。
另一个在私人环境中拍摄图像的重要任务是2D图像中的密集对象分割和对象姿态估计。对象分割和对象姿态估计是许多应用的关键要求,例如视觉***中的鲁棒对象跟踪,机器人的对象物理处理等等。传统上,人们可以执行对象的3D重建来估计对象姿态,但该过程非常耗时且容易出错。但是,在私人环境中部属的计算机视觉***的一个优点是它可以在部属后的离线训练过程期间检查用户定义的对象。本公开提出利用这种能力来训练密集对象分割与姿态估计***,该***在在线测试时,不需要复杂且容易出错的3D重,而直接在2D图像中进行对象分割和姿态估计。
应理解,本公开的实施例可以以许多不同的形式实现,并且权利要求的范围不应解释为限于本文所述的实施例。相反,提供这些实施例是为了使本公开透彻且完整,并且将本发明实施例构思充分地传达给本领域的技术人员。事实上,本公开旨在涵盖包括在所附权利要求所定义的本公开的范围和精神内的这些实施例的替代方案、修改和等效方案。另外,在下面对本公开的实施例的详细描述中,提出了许多具体细节以提供彻底的理解。然而,对于本领域的普通技术人员,显而易见的是,本发明的实施例可以在没有这些具体细节的情况下实践。
对象检测是计算机视觉、人工智能和生物识别等各种工程和科学学科中的一个重要问题。例如,在当今的许多工业环境中,机器人用于零件组装和制造。这些机器人配备了一个或多个相机,例如CCD或CMOS,这些相机可以提供视觉。机器人必须识别对象以执行各种任务,例如拾取对象以组装产品。但是,在各种光照条件下,对象可以有任意数量的姿态(位置、方向、旋转)。因此,必须训练机器人识别对象,而不管其姿态和环境如何。如本领域中已知的,机器人包括试图从由一个或多个相机拍摄的图像中识别对象的软件。统计学习和分类也可以用于一些对象检测应用。还应理解,虽然机器人可以用作对象识别的一种形式,但该应用不限于这种用途。
在现实环境中,物体的外观会因角度、光照或变形的变化发生显著变化。因此,单个分类器无法有效地检测外观发生许多变化的对象。分类器网络是基于分而治之概念的通用解决方案。分类器网络必须经过序列才能正确分类(检测,识别)感兴趣的特定对象,例如,家庭环境中的椅子或桌子。通常,该过程从一个未经训练的网络开始。将一种训练模式(例如,在各种姿态和光照条件下的对象)呈现给网络。图像信号通过网络产生输出(例如,分类,检测或测量的结果)。评估输出结果并与最佳结果进行比较,任何差异都是误差。例如,该误差可以是分配给对象图像的特征的权重的函数。某些特征在识别对象方面比其他特征更好,并且可以分配更大的权重。通过迭代调整权重来减小误差,从而提高分类网络的可信度。希望以最少的误差、时间和精力自动训练分类网络。
为了识别图像中的对象,***应该首先对该对象的表示进行训练。这种表示涉及对象的建模和描述符(或分类器)的生成,该描述符(或分类器)可以在运行期间应用于任何图像以找到目标对象。用于训练和评估解决方案的图像应代表在真实环境中对象的可能外观——如果分类器可以识别评估图像中的目标对象,那么它应该能够在运行期间在任何图像中成功找到目标对象。但是,拍摄代表性图像以确保***在正常操作中可靠地执行并不容易,并且在许多情况下获取这些图像是不切实际的。因此,通常需要与***和/或用户进行多次交互来解决可能的环境变化,例如噪声、遮挡和光照变化,并创建和调整解决方案。在许多情况下,在***设置或运行过程中,会根据故障情况修改分类器或调整其参数。。此外,***中采用的对象检测算法通常需要大量数据来充分地训练分类器网络。此类数据可能包括对象的真假示例,以辅助训练。对于包含对象的样本,也有必要使用地面真值属性(例如,定位,方向,姿态等)进行标记。这些数据的可视地面真值注释通常由操作员手动输入,操作员在相机拍摄对象图像时观察对象。。
一般来说,数据量越大,算法可以训练的越好,进而带来更好的检测结果。但是,大量的数据需要很长时间收集并且通常无法手动获取。更复杂的是,没有明确定义的边界和特征的对象比具有明确定义的边界和特征的对象更难检测,因此需要更高级的培训。例如,人的脸和身体有明确的边界和特征(例如,鼻子,嘴巴,腿等)而个性化的或定制的对象(例如,咖啡杯,椅子,自行车等)可能会有许多不同的形状和大小,从一个个性化对象到下一个个性化对象没有任何可识别的特征。这些和其他因素都对***准确识别和检测环境中的个性化对象的能力起着重要作用。
虽然术语“个性化”通常表示为特定个人量身定制的某物(即,对象),但在本公开的上下文中,应当理解“个性化”对象不限于这样的定义。个性化可以指视觉类别(或视觉类别中的对象)在结构上可能是多样的或不同的,例如椅子或自行车,其中,在视觉类别(或视觉类别中的对象)的所有实例中,可能很难定义一个或多个一致的(例如,外观是可变的),可命名的或唯一定义的部分或地标。例如,自行车可能是一个属于特定视觉类别的对象,但并非该自行车的所有部分都是一致的(例如,一辆自行车的车把手或座椅在结构上(在不同的地点或位置)可能看起来与另一辆自行车的车把手或座椅有差异)。这与,例如人的身体或脸相反,其中,身体部分(例如鼻子,嘴巴,腿等)始终位于相同的位置并在结构上没有差异。
图1示出了用于训练和识别对象的示例计算***。计算***100包括,例如,包括对象114的训练图像112,训练图像112的多个视点112A-112M(其中在不同环境设置和姿态下拍摄的对象的图像——例如,在白天,以45°度角拍摄等),计算平台104,多个图像118、窗口122和包括对象120的图像124。计算平台104包括但不限于操作***(O/S)103,处理器105,图像检索模块105和对象检测模块108。
操作***103是支持计算设备的功能的***软件,例如调度任务、执行应用程序和控制***设备。任何不同数量的操作***,例如WindowsTM、macOSTM、LinuxTM(包括类似的移动版本,例如Android或iOS)可以作为***软件安装。
处理器105可以包括但不限于CPU-类型的处理单元,GPU-类型的处理单元,现场可编程门阵列(FPGA),数字信号处理器(DSP)、或者在一些实例中由CPU驱动的其他硬件逻辑组件。例如,且不限于,可以使用的硬件逻辑组件的示例性类型包括专用集成电路(ASIC)、专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑器件(CPLD)等。在处理器105处理的数据是数字图像的情况下,处理器105可以对数字图像实施下述的方法和程序,以提取数字图像中的特征并根据提取的特征进一步分析图像。
对象检测模块108可以包括一个或多个模块,图示为模块108A-108F。但是,可以理解的是,对象检测模块108不限于该模块数量,并且模块的数量可以更多或更少。下面针对模块108A-108F中的每一个描述的功能可以单独地执行,或者可以使用任意数量的模块来组合或分割执行该功能。例如,输入模块108A可以表示具有逻辑的输入模块,以对处理器105进行编程以将输入(例如,图像)传回对象检测模块108进行处理。
初始处理模块108B包括,例如,对处理器105进行编程以生成输入的卷积特征图的逻辑。在各种示例中,卷积特征图可以是输入图像的不同版本。例如,卷积特征图可以是CONV5特征图。在一个实施例中,初始处理模块108B可以包括深度卷积神经网络(CNN),如图6B所示并描述如下。深度CNN可以通过但不限于多个卷积层、池化、归一化、非线性和/或完全连接层(其中一些是可选的)来处理输入图像。输入图像可以通过深度CNN的每一层进行迭代处理,并输出为卷积特征图。深度CNN可以是Zeiler和Fergus模型、Simonyan和Zisserman模型或任何已知的CNN模型。
对象预测模块108C包括,例如,对处理105进行编程以预测卷积特征图上的一个或多个候选对象位置(例如,区域预测)的逻辑。预测可以以不同的形式表示,包括但不限于边界框、掩模、边缘检测或识别图像中候选对象位置的任何其他形式。在一个实施例中,对象预测模块108C可以包括区域预测网络(RPN),其可以是神经网络。例如,RPN可以处理卷积特征图并假设候选对象及其对应的位置。基于假设,RPN可以在卷积特征图中的每个候选对象周围以边界框(或其他形状)的形式制定建议。
边界框,掩模或边缘通常可以指图像或图像的一部分的分割,其中,边界框、掩模或边缘通常定义图像中对象的边界或边界的一部分。这可以使用对象的轮廓或通过以一种颜色(例如,白色)显示对象并以另一种颜色(例如,黑色)显示周围背景来以图形方式描绘。不需要以图形方式显示掩模。例如,掩模可以是识别对象的边界或边界的一部分的位置的信息。
对象分类器模块108D包括,例如,对处理器105进行编程以评估由对象预测模块108C提出的候选对象的逻辑。例如,对象分类器108D可以评估每个预测并确定预测中候选对象的分类(例如,类型、类、组、类别等)。在一个实施例中,对象的分类可以基于预定的固定数量的对象类。例如,对象分类器108D可以评估对象并确定该对象是任意数量的预定的对象类之一。在各种示例中,对象分类器模块可以计算置信度得分。在这种示例中,置信度得分可能基于对象属于其被分配到的对象类别的确定程度。例如,对象分类器模块可以确定候选对象是椅子并且为对象的分类分配确定级别(例如,90%确定)。
对象分类还可以包括基于地标特征的训练和提取(未显示)。在一个实施例中,地标点可由计算机平台104的用户或操作员选择或识别。例如,用户可以输入训练图像112A-112M的集合中地标点的位置,或者用户可以选择训练图像112A-112M中地标点的预定的模式、地图或配置。
机器学***台104的位置,并且例如通过因特网等网络进行通信连接。
在一个实施例中,机器学习模块108E可以训练对象检测模块108。例如,机器学习模块108E可以使用随机梯度下降和反向传播对***进行训练。在另一个示例中,机器学习模块108E可以用初始参数初始化初始处理模块108B,对象预测模块108C和对象分类器模块108D。在初始化之后,机器学习模块108E可以使用训练图像112A-112M一起训练初始处理模块108B和对象预测模块108C的参数,以输出具有训练预测的卷积特征图。然后,机器学习模块108E可以用对象预测模块生成的训练预测来训练对象分类器模块108D的参数。
接下来,机器学习模块108E可以使用在上述步骤中生成的训练参数重新初始化初始处理模块和对象预测模块。在各种示例中,用于初始处理模块初始化的训练参数可以包括冻结卷积层(例如,卷积层不改变)。在一些示例中,用于对象检测模块初始化的训练参数可以包括对象预测模块中的冻结卷积层和冻结参数。
在初始处理模块108B重新初始化之后,机器学习模块108E可以进一步将初始处理模块108B和对象预测模块108C的参数连同训练图像112一起训练,以输出具有高度训练的预测的卷积特征图。最后,机器学习模块108E可以用对象预测模块108C生成的高度训练的预测来训练对象分类器模块108D。然后,机器学习模块108E可以在初始处理模块108B、对象预测模块108C和对象分类器模块108D中设置训练的参数。
在各种示例中,机器学***台104的用户或管理员手动指导时,机器学习模块108E可以获得或访问数据来训练计算机***100。
跟踪模块108F可以在处理器105上执行并且实现和执行基于计算机视觉的跟踪、基于模型的跟踪、迭代最近点(ICP)和/或同时定位与地图创建(SLAM)方法。如果仅基于深度数据进行跟踪,则ICP可能是首选的跟踪方法,如果主要基于RGB/灰度数据本身或结合深度数据进行跟踪,则SLAM可能是首选的跟踪方法。例如,SLAM指的是一类技术,其中,在创建环境地图的同时,例如由计算平台104建模的环境地图,跟踪与该地图相关的图像检索姿态。
现参考图1提供的计算机***100的示例实现。训练图像112A-112M由计算平台104检索。训练图像112A-112M中的每一个可以包括属于对象类的对象114,该对象类是对象114的类、类别或模式。在某些情况下,对象114可以属于一个以上的对象类。在一个实施例中,对象114可以是训练图像112A-112M中感兴趣的对象(例如,猫、狗、房子、椅子、天空、瓶子等),并且每个图像112A-112M可以包括一个或多个对象114(例如,椅子或瓶子)。在一个实施例中,对象114可以包括感兴趣的对象和感兴趣的对象的属性,例如,绿色的瓶子和黄色的椅子。
在一个实施例中,计算平台104可以使用图像检索模块106检索训练图像112A-112B。在另一个实施例中,图像检索模块106可以是图像拍摄设备,例如相机。例如,图像拍摄设备通过拍摄一个或多个对象,例如椅子,来生成数字图像。该图像拍摄设备可以由用户控制,例如由机器人或人(未示出)控制。在替代实施例中,图像拍摄设备可以,例如由计算平台104通过处理器105自动控制。然后,可以将对象114的数字图像存储在数据库或存储器中,例如DB111。
在其他实施例中,计算平台104可以基于关键字(例如书籍)使用Internet和/>等搜索引擎来检索训练图像112A-112B。在其他实施例中,计算平台104可以手动提供训练图像112A-112B或预定数量的对象类以用于发现和/或从训练图像102学习,或者简单地从存储器,例如DB11中检索。
在检索训练图像112A-112B之后,计算平台104可以自动地同时定位对象,发现对象类和生成和/或更新训练模型111A。使用训练模型111A,计算平台104可以定位对象并发现多个图像118(例如,图像118A-118M)的对象类,这些图像先前未经计算平台104处理。在一些实施例中,训练模型111A的单个模型可经训练以发现对象类。因此,单个模型对应于一个对象类,并且用于识别属于该对象类的对象。在这些情况下,所学习的单个模型可以用于发现和定位属于多个图像118中的对象类的对象。
因此,在所示示例中,可输入图像118A-118M以使用训练模型111A进行分析,并且可以如窗口指示器122所指示的定位对象120(即,椅子)。在一些情况下,计算机平台104可以在图像118A-1118M中识别发现的对象120。例如,对象120可以识别为椅子和/或指示该发现的对象120和训练图像112的对象114属于同一对象类。
图2A示出了根据图1的***检测对象和估计对象姿态的示例流程图。在实施例中,流程图(包括下面的流程图)可以是,至少部分地由图1-8所示以及如上下文所述的硬件和/或软件组件执行的计算机实现的方法。在一个实施例中,由一个或多个处理器执行的软件组件,例如处理器105(图1)或处理器861(图8),执行至少方法的一部分。
如图所示,该流程图具有两个阶段—训练(或离线或预处理)阶段200A和测试(或在线或后处理)阶段200B。训练阶段200A最初包括对象114的训练图像112A-112M(或训练数据库)的检索,这些图像在202A-202M重建以生成初始三维(3D)模型203A-203M,从而共同形成阶段201。初始3D模型203A-203M在显著注意学习203阶段和训练姿态生成208阶段进行处理以经由3D辅助对象检测网络训练212阶段训练3D辅助对象检测网络214。一旦完成训练,3D辅助对象检测网络214就可以通过测试阶段200B中的前馈推理过程用于2D图像中的对象检测和分割,如下所述。
在训练阶段200A,可以手动或自动获得训练图像112。例如,在一个实施例中,对象114可以放置在固定或指定的位置(例如,放在转台上),使得计算机***100可以观察对象114的多个视点并从多个不同的角度拍摄对象114的训练图像112A-112M。使用诸如背景减法等众所周知的技术从每一个拍摄的训练图像112A-112M分割出对象114(示例中的椅子)。例如,在背景减法的过程中,将观察到的图像与相同场景进行比较,排除场景中的任何对象。同原场景相减会导致两个图像的差异。在另一个实施例中,用户或操作员可以手动向计算机***100提供来自多个视点的对象114的图像以及对象114的分割。
使用训练图像112的多个视点,计算机***100将通过3D重建202A-202M阶段生成初始3D模型。在一个实施例中,多视图立体(MVS)方法用于执行对象114的3D重建。基于MVS的方法利用多个图像(例如,图像112A-112M)中相似图像块的颜色一致性项在3D中寻找对应和三角点。MVS过程的结果是对象114的3D点云,它是初始3D模型203A-203M。参考图2B,下面更详细地讨论图像处理和3D重建。
将初始3D模型203A-203M的集合输入到显著注意学习204阶段,且***生成对象114的显著3D模型206(3D点云)。在3D重建期间,从不同环境设置和姿态生成的对象114的3D点云通过粗配准算法,例如随机样本一致性(RANSAC)成对配准(初始)。在一个实施例中,然后,初始配准可以通过迭代精细配准算法,例如ICP来细化。
为了生成显著3D模型206,初始3D模型203A-203M由多个阶段处理,包括但不限于,成对对应生成204A阶段、产生统一的初始3D模型204C的束调整204B阶段、产生显著部分204E的显著部分发现204D阶段和可选用户注释204F阶段,下面参考图3A进行更详细地描述。
在一个实施例中,显著注意学习204阶段的输出,即显著3D模型206,然后可以用作训练姿态生成208阶段的输入。根据该输入,训练姿态生成208阶段基于来自显著注意学习204阶段的图像112A-112M生成训练的2D-3D对应集合。然后,经由对应删减404阶段删减显著3D模型206以,例如减少噪声。在另一个实施例中,训练姿态生成208阶段接收新的训练图像402A-402M(可以类似于图像112A-112M进行处理)作为输入。通过对应匹配406阶段找到新的训练图像402A-402M和初始训练图像112A-112M之间的对应。作为对应匹配和删除的结果,训练的2D-3D对应的集合作为训练的2D-3D对应210生成。下面参考图4A找到训练姿态生成208阶段的详细描述。
由训练姿态生成208阶段输出的训练的2D-3D对应210输入到3D辅助对象检测网络训练212阶段。训练的2D-3D对应的集合210可由3D辅助对象检测训练212阶段使用以学习深度3D辅助对象检测网络214,其可以在测试阶段200B期间通过前馈推理过程用于2D图像中的对象检测和分割。下面参照图5更详细地描述3D辅助对象检测网络训练阶段。
在测试阶段200B,将新图像601输入到3D辅助对象检测网络214(现已训练的)中进行处理。作为处理的结果,3D辅助对象检测网络214输出2D对象定位信息218(对象在图像中的定位)和3D对象表面坐标220。下面可以参考图6A和6B找到测试阶段200B的详细描述。
图2B示出了根据图2A的阶段201的图像重建和3D建模的实施例。如图所示,并且出于讨论的目的,从多个视点获得训练图像112A-112B。在一个实施例中,相机202用于拍摄对象114,例如椅子的图像112A-112B(来自多个视点的图像112的集合)。例如,椅子可以在转台上旋转,椅子可以由用户或操作员手动旋转,椅子可以由机器人自动旋转,相机202可以围绕椅子旋转,可以在椅子周围使用多个相机202(如图所示)等。在一个实施例中,除了或作为替代,图像112A-112M是从多个视点拍摄的,也可以在不同的环境设置中拍摄图像112A-112M。环境设置可以包括,例如,光(例如一天中的不同时间)、对象姿态(例如颠倒或以不同的角度)等。
使用相机202拍摄的图像112A-112M中的每一个,电能***104可以通过3D重建202A-202M生成对象112(例如,椅子)的初始3D模型203A-203M。如技术人员所理解,可以采用任意数量的算法将图像重置为初始3D模型203A-203M。在一个实施例中,算法是MVS算法,如上文和在由塞茨等人于2006年在IEEE CVPR中的《多个视点立体重建算法的比较与评价》(“A comparison and evaluation of multi-view stereo reconstructionalgorithms,”IEEE CVPR,2006)中所讨论的。虽然此类算法的范围超出了本公开的重点,但这些算法可以包括基本属性,例如但不限于,场景表示,颜色一致性测量,可见性模型,形状先验,重建算法和初始化要求。
将MVS算法应用于图像112A-112M以进行重建,MVS过程的结果是对象114(即,初始3D模型203A-203M)的3D点云,如上所述。可以理解,3D点云通常是空间中的数据点集合,其中,点云中的每个点都记录了该点在3D空间中的3D坐标(例如,笛卡尔坐标、极坐标、球面坐标等)。例如,空间(例如,客厅)可以数字化,以使用从一个或多个相对于空间的角度拍摄的重叠图像来形成3D点云。更具体的,空间中的每个点(例如,客厅)对应于相对于原点的3D坐标。例如,点A可以具有相对于原点的笛卡尔坐标(x1,y1,z1)(例如,在x、y和z方向上距原点N厘米),点B可以具有相对于原点的坐标(x2,y2,z2)。在一些实施例中,每个点在全局坐标系中定义,该坐标系可以根据数据点的收集方式任意定义。在其他实施方式中,可以使用不同的坐标系,所采用的特定坐标系的原点可能位置不同。
在一个实施例中,可以为点云中的每个点计算特征表示。特征表示(或特征点)可以选择性的从多个视点的图像中合并(例如使用图6的CNN),以获得输出类预测205,例如盒子、床、桌子、电话、灯等。更具体地,特征表示可以是基于来自多个视点的对应图像112A-112B中的对应像素的视觉外观而计算的特征向量,例如通过聚类算法发现的某些聚类的均值或质心。例如,在离散数据点的情况下,k-均值聚类可以包括确定聚类中心或质心的初始数目,并将每个离散数据点分配给最近的聚类质心,然后通过平均聚类中所有的点来重新计算每个质心。在三维笛卡尔空间中,平均点来计算质心可以包括沿每个相应轴平均每个点的坐标(即,质心的x坐标可以是对应聚类中每个数据点的x坐标的平均值,质心的y坐标可以是对应聚类中每个数据点的y坐标的平均值等)。在重新计算质心后,可以重新聚类数据点,这个过程可以重复多次,直到质心和聚类稳定或收敛。
基于初始3D模型203A-203M的集合,计算***100通过显著注意学习204阶段生成对象对象114的显著3D模型206,接下来将对此解释。
图3A示出了图2A的显著注意学***移和旋转参数,以完成准配过程。
例如,对于每对初始3D模型203A-203M,匹配的3D点{(xi,yi,zi;xj,yj,zj)}的集合由成对对应生成204A阶段计算,它可以执行算法。出于解释目的,初始3D模型可以定义为初始3D模型Ii和Ij,其中,(xi,yi,zi)是来自Ii的匹配点的3D坐标,(xj,yj,zj)是来自Ij的匹配点的3D坐标。然后,可以使用ICP算法计算匹配的3D点,如上所述,该算法用于最小化两个点云之间的差异,并从不同环境设置中的不同姿态重建2D和3D表面。有关ICP算法的讨论见J·杨等人于2016年在IEEE的《模式分析和机器智能学报》38(11):2241-2254发表的《GoICP:3D ICP点集配准的全球最优解决方案》(“Go-ICP:A Globally Optimal Solution to3D ICP Point-Set Registration,”IEEE Transactions on Pattern Analysis andMachine Intelligence,38(11):2241-2254,2016)。但是,应当理解,也可以采用许多其他众所周知的算法,例如,基于模型的跟踪或同时定位与地图创建(SLAM)方法来代替ICP算法或与ICP算法结合使用。
在计算平移和选择的点云配准之后,基于计算出的3D匹配点集的集合,六自由度(DoF)旋转Rij和平移Tij可以由成对对应生成204A阶段计算。在6DoF旋转和平移期间,在三个相互垂直的轴上至少有6个点的独立平移和旋转组合在一起,以描述3D空间中完全自由的移动。DoF向前/向后、上/下、左/右平移,并且俯仰/滚动/偏航旋转。按照上面的示例,其中,计算3D匹配点,6DoF旋转Rij和平移Tij变换初始3D模型Ii以与初始3D模型Ij对齐(即,在初始3D模型Ii与与初始3D模型Ij之间生成成对对应)。
基于成对3D匹配点和在成对对应生成204A阶段中计算的成对6DoF旋转R’i和平移T’i,束调整204B阶段细化视觉重建3D图像和参数(即,相机姿态和/或校准)估计。在细化3D图像时,束调整204B阶段细化6DoF旋转R’i和平移T’i,以将每个初始3D模型Ii对齐到统一的3D世界坐标系中(束调整后的3D模型,其中中,每个初始3D模式在世界坐标系中都有一个6DoF姿态)。例如,可以将一个3D模型Ii的6DoF姿态设置为世界原点(Ri作为识别矩阵,Ti作为零向量),而其他所有的2D模型Ii将具有在世界坐标系中相对的6DoF姿态Ri和Ti。在一个实施例中,使用束调整算法细化6DoF,其中,观察到的和预测到的图像点之间的重投影误差最小化。例如,可以使用非线性最小二乘算法实现最小化。在卢拉基斯和阿吉罗斯于2009年在期刊ACM Trans.Math.Software发表的《SBA:通用稀疏束调整软件包》(“SBA:A SoftwarePackage for Generic Sparse Bundle Adjustment”,ACM Trans.Math.Software,2009)中讨论了束调整的一个例子,尽管也可以采用本领域众所周知的其他细化技术。
在束调整204B阶段束调整结束时,在初始3D模型202A-202M之间建立成对对应,并且通过初始3D模型202A-202M中的每一个的对齐来生成统一的初始3D模型204C。例如,将(xu,yu,zu)作为统一的初始3D模型204C中的3D点。然后,统一的初始3D模型204C中的3D点可以与来自对应的初始3D模型{Iui}的初始3D点{(xui,yui,zui)}的集合相关联,其中,(xu,yu,zu)和{(xui,yui,zui)}之间的关联意味着(xu,yu,zu)是由{(xui,yui,zui)}通过束调整204B阶段生成的。随后,通过聚合每个统一的初始3D模型204C中{(xui,yui,zui)}的对应特征表示,可以为统一的初始3D模型204C中的每个点{(xui,yui,zui)}计算特征表示。例如,统一的初始3D模型204C中的特征表示的聚合可以使用{(xui,yui,zui)}的特征表示的平均值执行,或可以使用聚类算法找到质心(在上下文中进一步讨论)。可以理解,也可以使用其他机制计算特征表示的聚合,并且本公开不限于特征表示的平均值或使用聚类算法寻找质心。然后,将计算出的特征表示作为输入馈送到显著注意学习204阶段的显著部分发现204D阶段。
根据一个实施例,无监督模式发现算法可用于确定显著部分发现204D阶段中对象114的3D显著部分204E(Sj)的集合。无监督模式发现算法可以以,例如高精度应用于图像中的模式识别问题,例如拍摄的对象114的图像。在这种情况下,直接在图像数据上训练深度神经网络(DNN)以学习复杂的图像模式并基于复杂的图像模式检测对象。例如,这可以通过使用训练数据库(未标记)来完成,并且为其找到训练数据库的结构或聚类以确定适当的分类,如下所述。下文参考图3B讨论深度DNN。
在一个实施例中,DNN是深度自动编码器神经网络(深度ANN),下面参考图3C进行描述。深度ANN可用于寻找对象的3D显著部分204E(Sj)的集合,例如对象114。通常,输入层(编码器)以初始特征表示作为输入,学习每个3D点(xu,yu,zu)的潜在表示。输出层(解码器)使用潜在表示来重建初始特征表示。给定初始3D模型的两个3D点,对应的初始特征表示通过深度ANN馈送以从输出层生成两个最终输出向量(即,从第一个3D点到第二个3D点的向量)。基于两个输出向量,可以测量两个3D点之间的相似性。
根据测量的相似性,可以计算亲和度图(未示出),其中,每个图节点是3D点,节点间的边是基于深度ANN的输出层计算的3D点之间的相似性。然后,无监督聚类算法,例如k-均值或谱聚类,可用于寻找基于亲和度图的3D点的k-聚类,其中k-聚类是对象114的显著部分204E(Sj),可由计算平台104发现。组合每个显著部分204E(Sj)的每个显著3D点提供对象114的显著3D模型206。
在一个实施例中,对象114的3D显著部分204E(Sj)可以在计算平台104的用户注释204F阶段选择性地呈现给用户或操作员,以获取关于3D显著部分204E(Sj)的额外指导。例如,对于每个显著部分204E(Sj),用户选择显著3D点{sj}的集合作为识别的显著部分204E(Sj)的显著地标。将每个显著3D部分204E(Sj)的每个突出3D点{sj}组合在一起提供该对象114的最终显著3D模型206。然后,最终显著3D模型206作为训练姿态生成208阶段的输入。
图3B示出了其中可以实现本技术的实施例的示例性深度神经网络(DNN)。DNN 300包括输入层301、多个隐藏层302和输出层303。在一个实施例中,DNN 300是用于寻找对象的3D显著部分204D集合的深度ANN,如图3A中所示。下面参考图3C更详细地描述示例深度ANN。
如图所示,DNN 300有三个隐藏层302,但应当理解,替代实施例可以有任意数量的两个或更多的隐藏层302。每一层301至303可以有一个或多个节点310。应当理解,替代实施例可以有比图示更少或更多的节点310。在一个实施例中,DNN 300中当前层中的每个节点310都连接到前一层和下一层中的每个节点310。这称为全连接的神经网络。在DNN 300的替代实施例中,其他神经网络结构也是可能的,其中,并非每一层中的每个节点310都连接到前一层和下一层中的每个节点310。
在一个实施例中,输入层301中的每个节点310可以分配到一个值,并且可以将该值输出到下一层(隐藏层302)中的每个节点310。输入层中的节点310(输入节点310)可以表示关于特定环境或设置的特征。例如,用于对对象114是否为矩形进行分类的DNN300可以有表示对象114是否有平边的输入节点310。因此,为节点分配值1可以表示该对象有平边,而为节点分配值0可以表示该对象没有平边。输入层301中可能有其他输入节点310,这些节点可以表示其他特征,例如对象114是否有90度的角。类似地,对于将图像作为输入的DNN300,每个输入节点310都能表示图像的像素,例如,训练图像112的像素,其中,所分配的值可以表示像素的强度。例如,分配值为1可以指示该像素是全黑的,而分配值为0可以指示该像素是全白的。
隐藏层302中的每个节点310(隐藏节点310)可以从前一层(例如,输入层301)中的一个或多个节点310接收输出值,并将前一层中的一个或多个节点310中的每一个与权重相关联。然后,每个隐藏节点310可以将从前一层中的一个或多个节点310接收的值中的每一个与同前一层中的一个或多个节点310相关联的权重相乘,并将乘积之和输出到下一层中的一个或多个节点310中的每一个。
输出层303中的节点310(输出节点310)以与先前关于前一层中的隐藏节点310所描述的类似方式来处理从隐藏节点310接收的输入值。在一个实施例中,每个输出节点310可以将从前一层(隐藏层302)中的每个节点310接收到的每个输入值乘以权重并且将乘积相加以生成输出值。输出节点310的输出值可以以预定义格式提供所需信息,其中,所需信息可以与提供给输出节点310的信息(输入)有某种关系。示例输出可以包括但不限于分类,关系,测量,说明和建议。
例如,对图像是矩形或椭圆进行分类的DNN 300可以有用于指示对象114是(或不是)矩形的第一输出节点310,其中,输出值1代表对象114是矩形,输出值0代表对象114不是矩形。第二个输出节点310可以指示对象114是(或不是)椭圆,其中,第二输出节点310的输出值1表示对象114是椭圆,输出值0表示对象114不是椭圆。尽管上面提供的示例涉及对几何形状的分类,但这仅出于说明目的,DNN 300的输出节点310可用于对各种各样的对象和其他特征中的任何一个进行分类,并以所需的格式输出各种各样的所需信息中的任何一个。
图3C示出了作为无监督学***均值,“b”是偏置。即,ANN 311学习函数的近似值以输出与x相似的x^。如果ANN 311是完全连接的网络,则输入层312中的每个节点可以对应于图像块的相应像素(或体素),其中,每个输入层312拥有与输出层315相同的节点数量(忽略偏置项“b”(即标记为“+1”的节点))。
如上所述,ANN 311的目标是最小化输入和输出向量(例如,来自输入3D点的向量和来自输出3D点的向量)之间的差异。隐藏层314的节点可以作为输入层312节点的偏置“b”和加权和“W”的函数来计算,其中,向输入层312的节点和隐藏层314中的节点之间的每个连接分配分配相应的权重。在ANN 311的训练中学习输入层312和隐藏层314之间的偏置项“b”和权重“W”,例如,使用反向传播算法。可以认为隐藏层314的节点是从输入图像块的像素(由输入层312的节点表示)提取的特征,学习到的权重可以认为是过滤输入图像数据以生成特征表示的过滤器。换句话说,ANN 311以初始特征表示作为输入以学习每个输入的潜在表示,使得输出层316使用潜在表示重建初始特征表示,如上文参考图3A所描述的。
图4A示出了图2A的训练姿态生成阶段的具体实施例。在所描绘的实施例中,训练姿态生成208阶段从输入显著3D模型206生成训练的2D-3D对应的集合。在一个实施例中,用于生产统一的初始3D模型204C的图像112A-112M的原始集合也用于获得训练阶段的训练的2D-3D对应210。由于显著3D模型206的每个显著3D点sj=(xsj,ysj,zsj)在第i个初始3D模型202A-202M中有相关联的3D点(xsji,ysji,zsji),因此可以获得训练的2D-3D对应210。每个显著3D点sj=(xsj,ysj,zsj)还与图像112A-112M的原始集合中的2D点{(psjik,qsjik)}的集合相关联。因此,将与2D点{(psjik,qsjik)}的集合相关联的每个显著3D点(xsji,ysji,zsji)定义为(Isj,xsj,ysj,zsj,{(psjik,qsjik)})),它提供了图像112A-112M的原始集合和显著3D模型206之间的2D-3D对应。回想以上种种,基于亲和度图的3D点的每个K-聚类对应于对象114的显著部分sj。因此,Isj表示显著3D模型206中的每个K-聚类的3D点的部分标签(或聚类索引)。
在一些实施例中,还可以采用训练对应细化过程来微调图像112A-112M中的2D点{(psjik,qsjik)}。微调为训练提供了更准确的地面真值2D-3D对应。在视觉***的背景下,地面真值是测量值的集合,已知该真值比来自已经检测过的***的测量值更准确。因此,通过细化过程,图像112A-112M的原始集合可以通过对应删减404阶段进行删减,以便微调2D点{(psjik,qsjik)},从而提高更准确的地面真值2D-3D对应。特别地,对应删除减少了图像112A-112M中的噪声(即,去噪声),并且为训练提供了更准确的地面真值2D-3D对应。为了减少图像噪声,可以采用多种方法,包括但不限于各种基于深度网络的方法,例如去噪声自动编码器(DA),堆叠去噪声自动编码器和多层感知器(完全连接的层),正如伯格等人在《图像去噪:普通神经网络能与BM3D竞争吗?》CVPR,2012(“Image Denoising:Can Plain NeuralNetworks Compete with BM3D?”CVPR,2012)中所讨论的。下面参考图4B描述使用去噪声自动编码器删减的示例。
在一个实施例中,可以从对象114拍摄新的训练图像402A-402M以获得更多的用于额外训练的2D-3D对应。当提供新的训练图像402A-402M时,计算机平台104根据以上关于图1,2A-2B和3A-3C的描述来处理它们。使用这些新的训练图像402A-402M,计算机平台104通过对应匹配406阶段确定对象分割以及新的训练图像402A-402M和图像112A-112M的原始集合之间的对应。例如,用于构建初始3D模型230A-203M的基于MVS的方法可用于获取此类信息。
作为基于MVS的方法的结果,不同于统一的初始3D模型204C中的初始3D点{(xui,yui,zui)},生成了新的初始3D模型203A-203M的3D点{(xun,yun,zun)}的集合。在一个实施例中,与上述过程类似,每个新的3D点{(xun,yun,zun)}由从新的训练图像402A-402M和对应的图像112A-112M的原始集合生成的特征表示来表示。基于特征表示,每个新的3D点{(xun,yun,zun)}的集合与对象114的统一的初始3D模型中的3D点(xu,yu,zu)进行比较,并且可以计算旋转和平移以将新的3D点{(xun,yun,zun)}的集合以上述方式对齐到具有统一的初始3D模型204C 6DoF的统一的3D坐标中。
在一个实施例中,每个新的3D点{(xun,yun,zun)}的初始特征表示用来生成用于显著部分发现204D阶段的输入,并且通过深度ANN 311等前馈计算来计算输出。在这种情况下,输出可以是特征向量,基于该特征向量,可以计算新的3D点{(xun,yun,zun)和显著3D模型206的地标(显著3D点)之间的相似性,从而找到最接近新的3D点{(xun,yun,zun)的地标集合。如上所述,可以在训练期间计算地标,该过程识别每个训练图像上的地标点。在训练图像中根据这些地标点确定每个图像点的地标特征。
在另一个实施例中,显著3D模型的新的显著3D点可以通过插值最近的地标集合来计算。可以基于最近的地标的部分标记,例如通过多数票决制将标签(或部分标签)分配给插值的显著3D点。插值丰富了3D显著模型的3D点以获得更多的用于学习2D-3D对应的训练数据。例如,当对图像进行分类时,还会为其分配标签或部分标签。标签或部分标签是有意义的标签、类别或ID,它们能提供信息或提供了解图像所需的信息。例如,标签或者部分标签可能是但不限于图像是否包含椅子或桌子,或椅子是否包括但不限于扶手、靠背等。因此,标签或部分标签可以提供对图像或图像部分的内容的描述。标签或部分标签也可以成为聚类索引,因为对象或对象部分的聚类可以使用这样的聚类索引来标记。可以使用各种多数(或集成)投票算法,包括但不限于装袋、助推、AdaBoost、叠加泛化、专家混合等。
插值的显著3D点,它的标签以及来自新的图像集合402A-402M和对应的原始图像集合112A-112M的原始的对应的2D点给出了用于额外训练的新的2D-3D对应210。
图4B示出了自动编码器的示例实施例。所描绘的实施例将去噪声自动编码器示为,例如在对应删减404阶段期间减少图像噪声的机械装置。训练去噪声自动编码器(DAE)以从损坏的版本中重建干净的(修复的)输入。例如,初始输入x(例如,可以是图像112A-112M)被随机损坏(通过qD)到x~。自动编码器将损坏的输入映射到y(通过编码器fθ)并通过解码器gθ’重建x,生成重建z。然后,可以通过损失LH(x,z)来测量重建误差。更具体地,初始输入x通过随机映射x~~qD(x~|x)被破坏为x~,从中重建z=gθ’(y)。然后将破坏的x~映射到隐藏表示y=fθ(x~)=s(Wx~+b),类似于图3C的自动编码器。训练参数θ和θ’以最小化训练集合上的平均重建误差,使得z尽可能接近于未损坏的输入x。关键的区别在于z现在是x~的而非x的确定性函数。参数被随机初始化,然后通过随机梯度下降进行优化,下面参考图5进行描述。
应当理解,尽管所公开的实施例涉及去噪声自动编码器,但可以采用多种不同的去噪声机制。
图5A示出了图2A的3D辅助对象检测网络训练阶段的具体实施例。3D辅助对象检测网络训练212阶段包括但不限于前馈计算212A阶段,损失计算212B阶段,梯度生成212C阶段,网络更新212E阶段,和训练的3D辅助对象检测网络214。
作为输入,3D辅助对象检测网络训练212阶段接收从训练姿态生成208阶段生成的2D-3D对应210。如上所述,3D辅助对象检测训练212阶段用训练的2D-3D对应的集合来学***台104生成输入以基于2D-3D对应210的2D点馈送到深度3D辅助对象检测网络训练212阶段。
在一个实施例中,输入馈送到前馈计算212A阶段,其通过,例如使用上面讨论的深度ANN 311(图3C)来实现。前馈计算212A阶段的前馈计算的结果是2D-3D对应的2D点的输出,包括2D的部分标签(即,每个聚类的2D点),如上所述。可以使用损失计算212B阶段中的损失函数(或成本函数)来计算输出2D点和地面真值2D点之间的损失,以及输出部分标签和地面真值部分标签之间的损失。可以理解,损失函数用于测量预测值(x^)和实际标签(x)之间的不一致,以有效地评估算法对数据集(例如,图像)建模的程度。即,ANN 311基于其当前权重计算的预测值和实际值(标签)之间的差异称为损失——目标是使训练数据集上的平均损失最小化。在机器学习中可以实现任意数量的不同的损失函数,包括但不限于均方误差,可能性损失,交叉熵损失等。
损失函数的梯度212D可以由梯度生成212C阶段计算,例如,使用反向传播。基于计算的梯度和损失计算,计算机平台104可以更新网络参数(例如,权重和偏置)。许多优化方法可以用于更新网络更新阶段212E中的计算***100(图1)的参数,例如梯度下降,随机梯度下降(SGD)和自适应移动估计(Adam)。例如,梯度下降算法将损失函数(成本函数)最小化,如上所述,用于监控机器学习模型的预测误差。因此,最小化损失函数可以有效地获得最低误差值或增加机器学习模型的准确性。在调整参数(例如权重和偏置)的同时,通过迭代训练数据来增加准确性。随机梯度下降类似于梯度下降,但不累积权重更新。相反,在每个训练样本之后更新权重。Adam优化算法是随机梯度下降的扩展。
在3D辅助对象检测网络训练212阶段期间,网络更新212E可以用来生成3D辅助对象检测网络214,如图5B所示。3D辅助对象检测网络214将允许***在测试阶段200B期间从对象114的2D图像中估计对象姿态,而不执行3D重建,这在3D重建期间是复杂且容易出错的。
图5B示出了图5A中的3D辅助对象检测网络的详细实施例。在一个实施例中,3D辅助对象检测网络214包括深度卷积神经网络(CNN)214A,RolAlign层214B和完全连接的卷积网络(FCN)214C。FCN 214C输出2D对象定位信息604和2D对象表面坐标606。
在一个实施例中,3D辅助对象检测网络214的输入是图像112A-112M中对象114的像素,该对象(或对象部分)可以由对象边界框502定义,如下所述。在卷积之前,可以选择性地对图像112A-112B进行预处理以调整图像大小、标准化输入数据值(例如,像素)等。这种预处理有助于确保,例如每个图像的大小不至于相差很大,并且例如在标准化的情况下,每个输入数据值都有相似的数据分布。
为了训练3D辅助对象检测网络214,使用深度CNN来处理输入。可以使用任意数量的不同的深度CNN作为深度CNN来处理输入。例如,在一个实施例中,深度CNN可以是图6B的CNN 214A,如下所述。在另一个实施例中,深度CNN可以是ResNet50,正如K·何等人于2016年在CVPR中的《图像识别的深度剩余学习》(“Deep residual learning for imagerecognition”,CVPR 2016)中所描述的。可以使用许多其他的CNN,包括但不限于LeNet、AlexNet、Overfeat、VGG-16、GoogLeNet等。
CNN 214A(使用如上下文所述的技术)提取输入图像112A-112M的特征,并应用CNN区域候选方法来创建感兴趣的对象的感兴趣区域(Rols)。具体地,区域候选方法将来自深度CNN 214A的输出特征图作为输入,并在特征图上滑动过滤器以使用深度CNN创建区域方案(Rols)。然后将Rols聚合以使它们变形成一个固定的维度,并将深度CNN214A的输出与图像112的特征图一起馈入到感兴趣区域(Rols)对齐(RoIAlign)层214B。RoIAlign层214B负责通过对齐对象的边界和输入特征图来细化Rols池化。R·古勒,N·内韦罗娃和I·科基诺斯于2018年在CVPR中的《密集姿态:野外密集人体姿态估计》(“DensePose:Dense humanpose estimation in the wild,”CVPR 2018)中描述了RoIAlign层214B的一个示例,尽管也可以采用其他技术。
RoIAlign层214B的输出馈入到全卷积网络(FCN)214C用于对象(或背景)分类和2D对象表面坐标606(例如,估计的每个像素的2D对象表面坐标)。对象边界框502中每个像素的分类可以使用,例如如上所述的基于SVM的方法来完成。作为分类的结果,确定K+1概率的集合来指示属于k-对象部分或非对象背景(非对象部分)的像素的概率。即,与每个对象部分或非对象背景相关联的像素根据其概率进行分类,例如分类分数。
基于分类结果生成每个像素的估计的2D对象表面坐标606。在一个实施例中,3D辅助对象检测网络214的FCN 214C有用于显著3D模型206中每个对象部分的回归器。对应于分配的部分标签(例如,每个对象部分可以分配到一个标签或索引)的回归器可用于计算该对象部分内的表面坐标。因此,给定地面真值训练的2D-3D对应,每个回归器都使用具有对应的部分标签的训练的2D-3D对应进行训练。
在一个实施例中,R·古勒,N·内韦罗娃和I·科基诺斯于2018年在CVPR中的《密集姿态:野外密集人体姿态估计》(“DensePose:Dense human pose estimation in thewild,”CVPR 2018)中描述了FCN 214C。
图6A示出了根据图2A的测试阶段200B的测试阶段的示例实施例。在测试阶段200B(训练后),训练的3D辅助对象检测网络214用于从新的数据集(例如,新的或输入图像601)推断对象。在一个实施例中,新的图像601输入到前馈推理处理的3D辅助对象检测网络推理216阶段的对象检测网络602中。对象检测网络602从新的图像601检测对象边界框(对象边界框在下面作进一步解释),并将对象边界框603发送到3D辅助对象检测网络214(现已训练的)以检测和分割新的图像601。作为检测和分割的结果,3D辅助对象检测网络214输出新的图像601的2D对象定位信息218和3D对象表面坐标220。
例如,给定一个或多个新的图像作为输入图像601(例如,新的2D图像),对象检测网络602可以检测对象边界框603。对象边界框603(由对象边界框定义的输入图像中的对象的像素)输入到3D辅助对象检测网络214。正如所理解的,对象边界框603定义图像601的段或一部分,使得可以定义特定图像601中感兴趣对象114的边界或边界的一部分。在一个实施例中,对象预测模块108C(图1)生成对象边界框603。尽管可以使用任意数量的对象检测网络,例如包括YOLO,正如J·雷德蒙和A·法哈迪于2017年CRPR中的《YOLO900:更好,更快,更强》(“YOLO9000:Better,Faster,Stronger”,CVPR 2017)中所描述的,或例如包括FasterR-CNN,正如S·任等人于NIPS中的《Faster R-CNN:基于区域网络的实时对象检测》(“Faster R-CNN:Towards real-time object detection with region proposalnetworks”,NIPS,2015)中所描述的。
一旦对象边界框603作为输入馈送到深度3D辅助对象检测网络,像素就可以由3D辅助对象检测网络214处理,如上文参考图5B所描述的。作为处理的结果,3D辅助对象检测网络214输出2D对象定位信息218和新的图像601的2D对象表面坐标220这些信息可以用于估计来自新的图像601的对象114的姿态(即,位置和方向)。
在一个实施例中,2D对象定位信息218可以使用回归器(例如,线性回归器)来确定,其中,回归器将渲染的图像回归到它们的地面真值姿态参数。在一些实施例中,可以通过最小化回归器和地面真值姿态之间的欧氏损失将图像映射到地面真值姿态来训练回归器。在另一个实施例中,2D对象表面坐标220以上述方式输出,参考图5B。
在一个实施例中,使用2D图像(新的图像601)作为训练的网络(即3D辅助对象检测网络214)的输入来获得输出,而不在训练后(即,测试)过程期间执行任何3D重建。在训练后期间不适用3D重建的的情况下获得此类信息,减少了3D重建过程的复杂性和易出错性。
图6B示出了示例深度CNN。示例CNN是一个将计算构造为卷积的DNN层。CNN214A包括输入层612,卷积层614,池化层616,完全连接层618和输出层620。可以理解,在替代实施例中,CNN 214A可以具有额外的卷积层614和池化层616。在一个实施例中,交替的卷积层和池化层616之后可以跟随着一个以上的完全连接层618。图中的虚线箭头表示图中孤立的节点,以便更清楚地展示它们与前一层中的节点的连接。因此,虚线箭头两端的圆圈代表同一个节点。所以,虚线箭头不代表不同节点之间的连接。
CNN 214是DNN300(图3C)的一种类型,它可以包括局部感受野、参数共享和池化等附加特征。CNN 214A的输入层612和输出层620的功能类似于DNN 300的输入层301和输出层303。CNN 214A和DNN 300的区别在于DNN 300的隐藏层302由一个或多个卷积层614,池化层616和完全连接层618所替换。局部感受野的使用涉及使CNN 214A的卷积层614中的节点630接收来自前一层中的局部区域625的输入。也可以添加其他层,例如非线性层和归一化层,这些层都在上面讨论过。
与图3C中隐藏层302的节点310不同,卷积层614中的节点630不接收前一层中的每个节点630的输出值。相反,卷积层314中的每个节点630仅从前一层中的局部区域625内的节点630接收输出值。在一个实施例中,局部区域625是输入层612中的4×4节点630的集合,如图所示。应当理解,在替代实施例中,局部区域可以更大或具有不同的形状。输入层612中的每个4×4区域625(即,局部区域)对应于卷积层614中的节点630,使得卷积层614中的每个节点映射到输入层612的不同的4×4区域625上。
参数共享的使用是卷积层614的另一个特征。卷积层614中的每个节点630可以为局部区域625中的节点630的每个输出值分配权重。与图3C中的DNN 300不同,其中,隐藏层302中的不同节点310可以将不同的权重的集合分配给从前一层接收的输出值,卷积层614中的节点630将相同的权重的集合分配给与卷积层614上的节点630相对应的局部区域625中的节点630输出的值。
如图所示,卷积层614中的两个节点630已被隔离,如虚线箭头所示,以说明它们与输入层612上的局部区域625内的节点630的连接。如上所述,CNN 214A的卷积层614中的节点都使用与前一层局部区域625上的位置相同的权重的集合。例如,对于由位于3×3正方形中的9个节点630组成的局部区域625,可以为左列和右列上的节点630分配权重0,而中间列中的节点630可以分配权重1。对于接收图像像素的集合(像素强度)作为其输入层的CNN214A,卷积层614上的节点630的权重从输入层612接收输入,这种布置可以指示CNN 214A的卷积层614的节点630可以尝试识别输入层625的局部区域625中的垂直线,或至少当3个高强度节点630可以布置在垂直线中时。这样,卷积层614的节点630可以理解为检测前一层的局部区域625中的特征。
因此,对于诸如CNN 214A的CNN,卷积层614中的每个节点630响应于相同的特征,但是在输入层612的不同的局部区域625中。例如,卷积层614中的每个节点630可以分配权重的集合以应用于节点630连接到的局部区域625内的节点的输出值。卷积层614中的每个节点630将该节点从前一层中的局部区域625的节点630接收的输出值乘以具有介于零和一之间的值的权重。然后,该节点可以向下一层输出一个值,该值是所有乘积的总和。然后,下一层的节点将输出作为输入接收。
池化层616对前一层的输出值执行池化操作。在一个实施例中,卷积层614分成2×2部分635,每个部分635对应于池化层616中的节点630。在一个实施例中,前一层中的2×2部分635中的节点630的输出值的最高值由池化层616的节点630输出。在另一个实施例中,可以使用替代操作,例如,找到前一层中的2×2部分635内的节点的输出值的平均值。该池化操作将节点630的层压缩为具有较少节点630的层,从而降低CNN 214A的复杂性,带来更快的处理速度
完全连接层618的操作类似于图3C中的隐藏层302,因为完全连接层618中的每个节点连接到前一层中的每个节点630,并且从前一层中的每个节点630接收输出值。这些层允许CNN 214A基于在卷积层614和池化层616中识别和池化的特征来执行附加处理。完全连接层618生成到输出层620的输出,用于输入图像的分类,其中,每个输出节点代表基于概率的类。
图7A-7C是根据本公开的对象检测的示例流程图。在实施例中,流程图可以是,至少部分地由各图所示和如本文所述的硬件和/或软件组件所执行的计算机实现的方法。在一个实施例中,由一个或多个处理器执行的软件组件,例如处理器105(图1)或处理器861(图8),执行至少方法的一部分。
从步骤702开始训练深度神经网络,其中,训练数据集包括来自接收的多个视图的对象的二维(2D)图像集合。对于每个训练数据集,可以在不同的设置(例如,不同的角度,不同的光设置,不同的环境等)中拍摄该2D图像集合。在704,基于在重建期间选择的对象的显著点重建每个训练数据集中的2D图像集合的3D模型集合。从重建的3D模型,可以生成作为3D模型集合中的对象的显著点的集合的对象的显著3D模型。在706,在第一训练数据集中的对象的2D图像集合和使用第一训练数据集生成的对象的显著3D模型之间生成训练的2D-3D对应数据的集合。使用通过第一训练数据集生成的训练的2D-3D对应数据的集合,在708,训练深度神经网络以用于对象检测和分割。
在一个实施例中,训练深度神经网络包括在阶段708A接收训练的2D-3D对应数据的集合,使用深度神经网络处理训练的2D-3D对应数据的集合,以在708B生成2D-3D对应数据的2D点,在708C使用损失函数计算2D点和地面真值2D点之间的损失,在708D基于计算的损失计算梯度,以及在708E基于计算的损失和计算的梯度更新网络参数。
在711,作为显著注意学***移以变换匹配的3D模型集合。细化6DoF的旋转和平移以将每一个3D模型对齐到统一的3D世界坐标系,并通过在714对齐3D模型集合中的每一个3D模型以生成统一的3D模型,使得可以使用深度神经网络来确定对象的3D显著部分的集合,以在716生成对象的显著3D模型。
一旦深度神经网络完成训练,就可以进行测试。在718,在对象检测网络接收新的2D图像,并且对象检测网络生成对象边界框作为对训练的深度神经网络的输入。在720,可以使用新的2D图像的训练的深度神经网络(不执行3D重建)来检测在对象边界框中识别的对象,并在722输出由训练的深度神经网络检测到的对象的定位信息和表面坐标。
图8示出了用于执行3D对象分割(3DOS)的设备的示例框图。该***可以是计算设备,其可以包括一个或多个处理器861,3DOS 870和存储器864。该设备还可以包括耦合到一个或多个总线877的多个设备传感器811,或进一步耦合到至少3DOS 870的信号线。在公开的实施例中,3DOS 870与处理器861和/或硬件862分开示出,但可以基于软件865和固件863中的指令在处理器861和/或硬件862中组合和/或实施。控制器860可以用于实现执行对象分割的方法,如下所述。
在一个实施例中,计算设备可以是移动设备,无线设备,移动电话,增强现实(AR)设备、个人数字助理(PDA)、可穿戴(例如,眼镜、手表、头戴或与身体相连的类似设备)设备、移动计算机、平板电脑、个人计算机、膝上型计算机、数据处理设备/***或具有处理能力的任何类型的设备。在一个实施例中,计算设备还包括用于拍摄图像的机构,例如彩色相机814,深度相机815,并且可选择包括收发器840、传感器811,例如加速计、陀螺仪、电子罗盘或其他类似的运动传感元件。计算设备还可以在前置或后置相机(例如,相机814)或计算机视觉***,例如如上所述的计算机***100上拍摄图像。
通常,彩色相机814可以是提供“彩色信息”的彩色或灰度相机,而“深度信息”可以由深度相机(例如,深度相机815)提供。如在本文使用的术语“颜色信息”可以指颜色和/或灰度信息。通常,如本文所使用的,可以将彩色图像或彩色信息视为包括1到N个信道,其中N是取决于用于存储图像的颜色空间的某个整数。例如,红色,蓝色和绿色(RGB)图像包括三个信道,红色、蓝色和绿色信息各有一个信道。
可以使用深度相机(例如,深度相机815)以各种方式拍摄深度信息。术语“深度相机”用来指代可用于从彩色相机814中独立获取深度信息的功能单元。例如,深度相机815可实际安装在与相机814相同的一般位置,但是深度相机815的工作频率或帧速率可能与相机814不同。在一些实施例中,深度相机815和相机传感器814可以拍摄不同的场景,虽然它们在相同或大致相同的时间被触发或初始化。
在另一个示例中,深度相机815可以采用耦合到计算设备的光源的形式。在一个实施例中,光源可以将结构化或纹理化的光图案投射到场景中的对象上,该光源可以由一条或多条窄光带组成。然后,可以通过利用由对象的表面形状引起的投影图案的几何变形来获得深度信息。在一个实施例中,深度信息可以由立体传感器获得,例如红外结构光投影仪和注册到RGB相机的红外相机的组合。在又一个实施例中,立体传感器可以指一对(或倍数)光学(例如,RGB或灰度相机)经过校准,并配备有用于从成对(倍数)RGB/灰度图像计算深度的算法。
在一些实施例中,计算设备可以包括多个相机,例如双前向相机和/或前后向相机,也可以包含各种传感器。在一些实施例中,相机能够拍摄静止图像和视频图像。在一些实施例中,相机可以是具有深度的RGB(RGBD)或能够以每秒30帧(fps)拍摄图像的立体视频相机。在一个实施例中,由相机拍摄的图像可以是原始未压缩的格式,并且可以在处理和/或存储在存储器864中之前被压缩。在一些实施例中,图像压缩可以由处理器861使用无损或有损压缩技术来执行。
存储器864可以包括或存储软件864,该软件包括操作***10,程序模块820A和程序数据820B。程序模块820A可以包括对象检测模块108,图像检索模块106和模型111A,如上文参考图1所描述的。
在一些实施例中,处理器861还可以接受来自传感器811的输入。传感器811可以包括3轴加速度计,3轴陀螺仪和/或磁力计。传感器811可以向处理器861提供速度、方向和/或其他位置相关的信息。在一些实施例中,传感器811可以输出与相机814和深度相机815拍摄的每个图像帧相关联的测量信息。在一些实施例中,传感器811的输出可以部分地由处理器161用于确定相机814和深度相机815和/或计算设备的姿态。
相机815的姿态(上面也描述为相机“视点”)指的是深度相机815相对于参考系的位置或方向。在一些实施例中,可以针对6DOF确定相机姿态,这涉及三个平移分量(可由参考系的X、Y、Z坐标给出)和三个角度分量(例如,相对于同一参考系的滚动、俯仰和偏航),如上所述。
在一些实施例中,相机814和/或计算设备的姿态可以由跟踪模块873和处理器861使用基于由相机814拍摄的图像来确定和跟踪。在一个实施例中,3DOS实现了多种跟踪解决方案中的一种或多种。例如,可以从RGB相机814或深度相机815获得用于姿态跟踪的相机传感器助手。在一些实施例中,当深度相机815是有源传感器时,投影模式用于估计深度,该传感器(815)本身用于跟踪计算设备的姿态。然后,如果815是无源传感器并且由在立体对中配对的两个RGB/灰度相机组成,那么814通常并不单独存在,它可能是这两种相机中的一种。在这些情况下,来自2个相机的RGB和/或源自立体对的深度信息可用于相机跟踪目的。
在一些实施例中,通过跟踪模块873实现的方法可以基于相机814拍摄的颜色或灰度图像数据,并且可以用于生成相机的6DOF姿态测量的估计。在一些实施例中,传感器811的输出可以用于估计,校正和/或以其他方式调整估计的姿态。此外,在一些实施例中,由相机814和815拍摄的图像可以用于重新校准或执行传感器811的偏置调整。
在一些实施例中,3D对象分割870分割出场景或环境内的对象,以便可以对选择的对象,例如对象114执行进一步的处理。例如,从通过用户界面或其他方式(未显示)输出3DOS,用户或进程可以选择与当前任务最相关的对象,并将重点放在该特定对象上,同时忽略或降低场景或环境中其他对象的优先级。例如,场景或环境内的其他对象可以用来跟踪,但不一定是3D地图或模型的重建焦点。
在一些实施例中,3DOS边界形状提供每个有界对象的尺寸。借助对象的尺寸,3DOS(或单独的应用程序或模块)可以接口或查询数据库以筛选与目标对象对象的预期维度匹配或不匹配的对象。例如,在办公室环境中,椅子可能具有预期的尺寸,因此可以适当地排除桌子或其他办公室对象,因为它们更大、更小或与椅子的结构不匹配。
计算设备还包括一个或多个收发器840或网络接口,该网络接口包括以太网电缆等有线链路,和/或接入到节点或一个或多个网络850的无线链路。传感器允许计算设备通过网络850与远程单元通信。例如,该传感器840可以通过一个或多个发射器/发射天线和一个或多个接收器/接收天线提供无线通信。在一个实施例中,计算设备耦合到用于数据处理的局域网或广域网,并与其他处理单元、因特网、远程存储设施等远程设备进行通信。
应当理解,本主题可以以许多不同的形式体现,并且不应解释为限于本文所述的实施例。相反,提供这些实施方式使得本主题将是彻底和完整的,并且将本公开充分地传达给本领域的技术人员。事实上,本主题旨在涵盖包括在所附权利要求所限定的本主题的范围和精神内的这些实施例的各种替代方案、修改和等效方案。此外,在本主题的以下详细描述中,将阐述许多具体细节以透彻理解本主题。然而,对于本领域的普通技术人员,显而易见的是,本主题可以在没有这些具体细节的情况下实践。
在一个有利的实施例中,存在用于家庭服务***中的个性化和子类别食物检测和识别的可扩展的且有效的解决方案。家庭服务***可以区分个性化和子类别食品。与训练简单的端到端深度个性化和子类别食品检测网络将每种类型的个性化和子类别食品视为单个类的传统解决方案相比,所公开的家庭服务***至少具有三个主要优点:更好的可扩展性,相对较小容量的网络可用于食品检测和识别,而朴素的端到端解决方案需要更高容量的网络来区分许多类型的个性化和子类别食品;当向***中引入一种新型的个性化或子类别食品时,减少了计算量,其中,网络微调或重新训练相关食物类别的对应子网络,而朴素的端到端解决方案需要精细调整或重新训练整个网络;减少过度拟合,在这种情况下,可以利用少量的噪声训练数据对较小容量的网络进行良好的训练。
本文参考根据本公开实施例的方法、装置(***)以及计算机程序产品的流程图和/或框图来描述本公开的各方面。应理解,流程图和/或框图中的每个框以及流程图和/或框图中的框的组合可以通过计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得通过计算机或其他可编程指令执行装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的机制。
计算机可读非暂时性介质包括所有类型的计算机可读介质,包括磁存储介质、光存储介质和固态存储介质,并且具体地排除信号。应当理解,该软件可以安装在设备中并随设备一起销售。或者,可以获取该软件并将其加载到设备中,包括通过磁盘介质或从任何形式的网络或分发***获取软件,包括例如从软件创建者拥有的服务器或从软件创建者不拥有但使用的服务器。例如,软件可以存储在服务器上,以便通过因特网进行分发。
计算机可读存储介质排除传播信号本身,可由计算机和/或处理器访问,并且包括易失性和非易失性的可移动和/或不可移动的内部和/或外部介质。对于计算机,各种类型的存储介质都有可以以任何合适的数字格式存储数据。本领域的技术人员应当理解,可以采用其他类型的计算机可读介质,例如压缩驱动器、固态驱动器、磁带、闪存卡、闪存驱动器、盒带等,用于存储以执行所公开体系结构的新方法(动作)的计算机可执行指令。
本文使用的术语仅出于描述特定方面的目的,而非旨在限制本公开。除非上下文另有明确说明,否则本文所使用的单数形式“一(a)”,“一个(an)”和“所述(the)”也旨在包括复数形式。进一步理解,当在本说明书中使用时,术语“包括(comprises)”和/或“包括(comprises)”指定了所述的特征、整体、步骤、操作、元件和/或组件的存在情况,但并不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、部件和/或其组合。
给出对本发明的描述的目的在于说明和描述,而非旨在穷举或将本发明限制为所公开的形式。在不偏离本发明的范围和精神的情况下,许多修改和变型对于本领域的普通技术人员是显而易见的。选择并描述本文公开的这些方面是为了最好地解释本发明的原理和实际应用,并且使本领域的其他普通技术人员能够理解具有适用于特定预期用途的各种变型的公开。
为了本文档的目的,与所公开的技术关联的每个过程可以连续地并且由一个或多个计算设备来执行。过程中的每个步骤可以由与其他步骤中使用的计算设备相同或不同的计算设备来执行,并且每个步骤不一定需要由单个计算设备来执行。
尽管已经用结构特征和/或方法动作特定的语言描述了该主题,但是应理解,所附权利要求中限定的主题不一定限于上述特定特征或动作。相反,上述具体特征和动作作为实现所述权利要求的示例形式。
Claims (27)
1.一种用于对象检测的计算机实现的方法,包括:
从多个视图接收包括所述对象的二维2D图像集合的一个或多个训练数据集,其中,所述2D图像集合针对所述一个或多个训练数据集中的每一个是以不同的设置捕获的;
基于重建期间选择的所述对象的显著点,从所述一个或多个训练数据集中的每一个中的所述2D图像集合重建3D模型集合,以生成所述对象的一个或多个显著3D模型,所述显著3D模型是所述3D模型集合中的所述对象的所述显著点的聚合;
在所述一个或多个训练数据集的第一训练数据集中的所述对象的所述2D图像集合与使用所述第一训练数据集生成的所述对象的所述显著3D模型之间生成训练的2D-3D对应数据的集合;以及
使用通过所述第一训练数据集生成的所述训练的2D-3D对应数据的集合来训练深度神经网络,以用于对象检测和分割。
2.根据权利要求1所述的计算机实现的方法,还包括:
计算所述3D模型集合中每个匹配的3D模型集合的匹配的3D点集合;
计算六自由度6DoF的旋转和平移,以转换所述匹配的3D模型集合;
细化所述6DoF的旋转和平移,以将所述3D模型中的每一个对齐到统一的3D世界坐标系中,并且通过对齐所述3D模型集合中的所述3D模型中的每一个生成统一的3D模型;以及
使用所述深度神经网络确定所述对象的3D显著部分集合,以生成所述对象的所述显著3D模型。
3.根据权利要求1至2中任一项所述的计算机实现的方法,其中,所述3D模型是所述对象的3D点云,并且所述3D点云中的每一个点都记录了所述点在3D空间中的3D坐标;以及
所述计算机实现的方法还包括:从所述3D点云中的每一个点计算特征表示,作为基于相应2D图像中相应像素的视觉外观计算的特征向量。
4.根据权利要求1所述的计算机实现的方法,还包括:删减所述训练的2D-3D对应数据的集合,以减少所述2D图像集合中的噪声。
5.根据权利要求1所述的计算机实现的方法,其中,训练所述深度神经网络包括:
接收所述训练的2D-3D对应数据的集合;
使用所述深度神经网络处理所述训练的2D-3D对应数据的集合,以生成所述2D-3D对应数据的2D点;
使用损失函数计算所述2D点和地面真值2D点之间的损失;
基于所计算的损失计算梯度;以及
基于所计算的损失和所计算的梯度更新网络参数。
6.根据权利要求1所述的计算机实现的方法,还包括:在对象检测网络上接收一个或多个新的2D图像,所述对象检测网络生成对象边界框作为所述训练的深度神经网络的输入。
7.根据权利要求6所述的计算机实现的方法,还包括:
使用所述训练的深度神经网络检测在所述对象边界框中识别的所述对象,而无需执行所述一个或多个新的2D图像的3D重建;以及
输出通过所述训练的深度神经网络检测到的所述对象的定位信息和表面坐标。
8.根据权利要求7所述的计算机实现的方法,其中,所述训练的深度神经网络通过以下方式处理所述对象边界框,
将所述一个或多个新的2D图像卷积,以提取特征,提取的特征形成特征图;
通过将区域建议方法应用于所述特征图来创建感兴趣区域Rols;
通过对齐所述特征图和对象特征图的边界来提供所述一个或多个2D图像的所述Rols和所述特征图,以细化所述Rols;以及
基于所细化的Rols输出所述对象的所述定位信息和分类结果,其中所述定位信息定义了所述对象在所述图像中的位置,并且所述分类结果估计了所述对象的所述表面坐标。
9.根据权利要求1所述的计算机实现的方法,还包括:
在所述一个或多个训练数据集的第二训练数据集中的所述对象的所述2D图像集合与使用所述第二训练数据集生成的所述对象的所述显著3D模型之间生成所述训练的2D-3D对应数据的集合;以及
使用通过所述第二训练数据集生成的所述训练的2D-3D对应数据的集合来训练所述深度神经网络,以用于对象检测和分割。
10.一种用于对象检测的设备,包括:
包括指令的非暂时性内存存储器;以及
与所述存储器通信的一个或多个处理器,其中,所述一个或多个处理器执行所述指令,以:
从多个视图接收包括所述对象的二维2D图像集合的一个或多个训练数据集,其中,所述2D图像集合对于所述一个或多个训练数据集中的每一个是以不同的设置捕获的;
基于重建期间选择的对象的显著点,从所述一个或多个训练数据集中的每一个中的所述2D图像集合重建3D模型集合,以生成所述对象的一个或多个显著3D模型,所述显著3D模型是所述3D模型集合中的所述对象的所述显著点的聚合;
在所述一个或多个训练数据集的第一训练数据集中的所述对象的所述2D图像集合与使用所述第一训练数据集生成的所述对象的所述显著3D模型之间生成训练的2D-3D对应数据的集合;以及
使用通过所述第一训练数据集生成的所述训练的2D-3D对应数据的集合来训练深度神经网络,以用于对象检测和分割。
11.根据权利要求10所述的设备,其中,所述一个或多个处理器还执行所述指令,以:
计算所述3D模型集合中每一个匹配的3D模型集合的匹配的3D点集合;
计算六自由度6DoF的旋转和平移以转换所述匹配的3D模型集合;
细化所述6DoF的旋转和平移,以将所述3D模型中的每一个对齐到统一的3D世界坐标系中,并且通过对齐所述3D模型集合中的所述3D模型中的每一个生成统一的3D模型;以及
使用所述深度神经网络确定所述对象的3D显著部分集合,以生成所述对象的所述显著3D模型。
12.根据权利要求10至11中任一项所述的设备,其中:
所述3D模型是所述对象的3D点云,并且所述3D点云中的每一个点都记录了所述点在3D空间中的3D坐标;以及
所述一个或多个处理器执行所述指令以从所述3D点云中的每一个点计算特征表示,作为基于相应2D图像中相应像素的视觉外观计算的特征向量。
13.根据权利要求10所述的设备,还包括删减所述训练的2D-3D对应数据的集合,以减少所述2D图像集合中的噪声。
14.根据权利要求10所述的设备,其中,训练所述深度神经网络包括:
接收所述训练的2D-3D对应数据的集合;
使用所述深度神经网络处理所述训练的2D-3D对应数据的集合,以生成所述2D-3D对应数据的2D点;
使用损失函数计算所述2D点和地面真值2D点之间的损失;
基于所计算的损失计算梯度;以及
基于所计算的损失和所计算的梯度更新网络参数。
15.根据权利要求10所述的设备,其中,所述一个或多个处理器执行所述指令以在对象检测网络上接收一个或多个新的2D图像,所述对象检测网络生成对象边界框作为所述训练的深度神经网络的输入。
16.根据权利要求15所述的设备,其中,所述一个或多个处理器执行所述指令,以:
使用所述训练的深度神经网络检测在所述对象边界框中识别的所述对象,而无需执行所述一个或多个新的2D图像的3D重建;以及
输出通过所述训练的深度神经网络检测到的所述对象的定位信息和表面坐标。
17.根据权利要求16所述的设备,其中,所述经训练的深度神经网络通过以下方式处理所述对象边界框,
将所述一个或多个新的2D图像卷积,以提取特征,提取的特征形成特征图;
通过将区域建议方法应用于所述特征图来创建感兴趣区域Rols;
通过对齐所述特征图和对象特征图的边界来提供所述一个或多个2D图像的所述Rols和所述特征图,以细化所述Rols;以及
基于所细化的Rols输出所述对象的所述定位信息和分类结果,其中所述定位信息定义了所述对象在所述图像中的位置,并且所述分类结果估计了所述对象的所述表面坐标。
18.根据权利要求10所述的设备,其中,所述一个或多个处理器执行所述指令,以:
在所述一个或多个训练数据集的第二训练数据集中的所述对象的所述2D图像集合与使用所述第二训练数据集生成的所述对象的所述显著3D模型之间生成所述训练的2D-3D对应数据的集合;以及
使用通过所述第二训练数据集生成的所述训练的2D-3D对应数据的集合来训练所述深度神经网络,以用于对象检测和分割。
19.一种非暂时性计算机可读介质,用于存储用于对象检测的计算机指令,当由一个或多个处理器执行时,使得所述一个或多个处理器执行步骤:
从多个视图接收包括所述对象的二维2D图像集合的一个或多个训练数据集,其中,所述2D图像集合对于所述一个或多个训练数据集中的每一个是以不同的设置捕获的;
基于重建期间选择的对象的显著点,从所述一个或多个训练数据集中的每一个中的所述2D图像集合重建3D模型集合,以生成所述对象的一个或多个显著3D模型,所述显著3D模型是所述3D模型集合中的所述对象的所述显著点的聚合;
在所述一个或多个训练数据集的第一训练数据集中的所述对象的所述2D图像集合与使用所述第一训练数据集生成的所述对象的所述显著3D模型之间生成训练的2D-3D对应数据的集合;以及
使用通过所述第一训练数据集生成的所述一组训练的2D-3D对应数据的集合来训练深度神经网络,使用以用于对象检测和分割。
20.根据权利要求19所述的非暂时性计算机可读介质,还使得所述一个或多个处理器执行所述步骤:
计算所述3D模型集合中每一个匹配的3D模型集合的匹配的3D点集合;
计算六自由度6DoF的旋转和平移以转换所述匹配的3D模型集合;
细化所述6DoF的旋转和平移,以将所述3D模型中的每一个对齐到统一的3D世界坐标系中,并且通过对齐所述3D模型集合中的所述3D模型中的每一个生成统一的3D模型;以及
使用所述深度神经网络确定所述对象的3D显著部分集合,以生成所述对象的所述显著3D模型。
21.根据权利要求19-20中任一项所述的非暂时性计算机可读介质,
其中,所述3D模型是所述对象的3D点云,并且所述3D点云中的每一个点都记录了所述点在3D空间中的3D坐标;以及
还使得所述一个或多个处理器执行所述步骤,从所述3D点云中的每一个点计算特征表示,作为基于相应2D图像中相应像素的视觉外观计算的特征向量。
22.根据权利要求19所述的非暂时性计算机可读介质,还使得所述一个或多个处理器执行所述步骤,删减所述训练的2D-3D对应数据的集合,以减少所述2D图像集合中的噪声。
23.根据权利要求19所述的非暂时性计算机可读介质,其中,训练所述深度神经网络包括:
接收所述训练的2D-3D对应数据的集合;
使用所述深度神经网络处理所述训练的2D-3D对应数据的集合,以生成所述2D-3D对应数据的2D点;
使用损失函数计算所述2D点和地面真值2D点之间的损失;
基于所计算的损失计算梯度;以及
基于所计算的损失和所计算的梯度更新网络参数。
24.根据权利要求19所述的非暂时性计算机可读介质,还使得所述一个或多个处理器执行所述步骤,在对象检测网络上接收一个或多个新的2D图像,所述对象检测网络生成对象边界框作为所述训练的深度神经网络的输入。
25.根据权利要求24所述的非暂时性计算机可读介质,还使得所述一个或多个处理器执行以下步骤:
使用所述训练的深度神经网络检测在所述对象边界框中识别的所述对象,而无需执行所述一个或多个新的2D图像的3D重建;以及
输出通过所述训练的深度神经网络检测到的所述对象的定位信息和表面坐标。
26.根据权利要求25所述的非暂时性计算机可读介质,其中,所述训练的深度神经网络通过以下方式处理所述对象边界框,
将所述一个或多个新的2D图像卷积,以提取特征,提取的特征形成特征图;
通过将区域建议方法应用于所述特征图来创建感兴趣区域Rols;
通过对齐所述特征图和对象特征图的边界来提供所述一个或多个2D图像的所述Rols和所述特征图,以细化所述Rols;以及
基于所细化的Rols输出所述对象的所述定位信息和分类结果,其中所述定位信息定义了所述对象在所述图像中的位置,并且所述分类结果估计了所述对象的所述表面坐标。
27.根据权利要求19所述的非暂时性计算机可读介质,还使得所述一个或多个处理器执行以下步骤:
在所述一个或多个训练数据集的第二训练数据集中的所述对象的所述2D图像集合与使用所述第二训练数据集生成的所述对象的所述显著3D模型之间生成所述训练的2D-3D对应数据的集合;以及
使用通过所述第二训练数据集生成的所述训练的2D-3D对应数据的集合来训练所述深度神经网络,以用于对象检测和分割。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962799230P | 2019-01-31 | 2019-01-31 | |
US62/799,230 | 2019-01-31 | ||
PCT/CN2019/091748 WO2020155522A1 (en) | 2019-01-31 | 2019-06-18 | Three-dimension (3d) assisted personalized home object detection |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113330490A CN113330490A (zh) | 2021-08-31 |
CN113330490B true CN113330490B (zh) | 2024-04-23 |
Family
ID=71840793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980090046.8A Active CN113330490B (zh) | 2019-01-31 | 2019-06-18 | 三维(3d)辅助个性化家庭对象检测 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11436437B2 (zh) |
CN (1) | CN113330490B (zh) |
WO (1) | WO2020155522A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102537087B1 (ko) * | 2018-10-02 | 2023-05-26 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 3d 보조 데이터를 사용한 모션 추정 |
EP3671660A1 (en) * | 2018-12-20 | 2020-06-24 | Dassault Systèmes | Designing a 3d modeled object via user-interaction |
WO2020242047A1 (en) * | 2019-05-30 | 2020-12-03 | Samsung Electronics Co., Ltd. | Method and apparatus for acquiring virtual object data in augmented reality |
CN114026599A (zh) * | 2019-06-17 | 2022-02-08 | 阿里尔Ai公司 | 根据二维图像重建三维场景 |
FR3101988B1 (fr) * | 2019-10-10 | 2021-10-22 | Sispia | Procede de reconnaissance d'objets a representativite augmentee |
WO2021083475A1 (en) * | 2019-10-28 | 2021-05-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for generating a three dimensional, 3d, model |
US11967015B2 (en) * | 2020-02-06 | 2024-04-23 | Apple Inc. | Neural rendering |
US20210279967A1 (en) * | 2020-03-06 | 2021-09-09 | Apple Inc. | Object centric scanning |
US11586844B2 (en) * | 2020-03-30 | 2023-02-21 | Wipro Limited | Method and system for detecting and tracking objects in a rotational environment |
CN112525145B (zh) * | 2020-11-30 | 2022-05-17 | 北京航空航天大学 | 一种飞机降落相对姿态动态视觉测量方法及*** |
CN114881913A (zh) * | 2021-02-05 | 2022-08-09 | 富泰华工业(深圳)有限公司 | 图像瑕疵检测方法、装置、电子设备及存储介质 |
US11809524B2 (en) * | 2021-03-16 | 2023-11-07 | Woven Planet North America, Inc. | System and method for training an adapter network to improve transferability to real-world datasets |
CN113284221B (zh) * | 2021-05-17 | 2022-04-19 | 中移(上海)信息通信科技有限公司 | 一种目标物检测方法、装置及电子设备 |
WO2022250468A1 (en) * | 2021-05-26 | 2022-12-01 | Samsung Electronics Co., Ltd. | Method and electronic device for 3d object detection using neural networks |
CN113537173B (zh) * | 2021-09-16 | 2022-03-18 | 中国人民解放军国防科技大学 | 一种基于面部补丁映射的人脸图像真伪识别方法 |
US20230088925A1 (en) * | 2021-09-21 | 2023-03-23 | Microsoft Technology Licensing, Llc | Visual Attribute Expansion via Multiple Machine Learning Models |
US11875555B2 (en) * | 2021-09-30 | 2024-01-16 | Intel Corporation | Applying self-confidence in multi-label classification to model training |
US11928864B2 (en) * | 2021-10-11 | 2024-03-12 | Worlds Enterprises, Inc. | Systems and methods for 2D to 3D conversion |
US20240119697A1 (en) * | 2021-11-16 | 2024-04-11 | Google Llc | Neural Semantic Fields for Generalizable Semantic Segmentation of 3D Scenes |
US20230316715A1 (en) * | 2022-03-07 | 2023-10-05 | Ridecell, Inc. | Identifying Unseen Objects From Shared Attributes Of Labeled Data Using Weak Supervision |
CN115457222B (zh) * | 2022-09-14 | 2023-06-16 | 北京建筑大学 | 一种在地理信息***中地理配准三维模型的方法 |
CN116309597B (zh) * | 2023-05-23 | 2023-08-01 | 成都工业学院 | 一种药盒混装缺陷的视觉在线检测方法及装置 |
CN117828290B (zh) * | 2023-12-14 | 2024-07-23 | 广州番禺职业技术学院 | 一种施工数据可靠性的预测方法、***、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105427385A (zh) * | 2015-12-07 | 2016-03-23 | 华中科技大学 | 一种基于多层形变模型的高保真人脸三维重建方法 |
WO2017029488A2 (en) * | 2015-08-14 | 2017-02-23 | Metail Limited | Methods of generating personalized 3d head models or 3d body models |
CN108053469A (zh) * | 2017-12-26 | 2018-05-18 | 清华大学 | 多视角相机下的复杂动态场景人体三维重建方法及装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11094137B2 (en) * | 2012-02-24 | 2021-08-17 | Matterport, Inc. | Employing three-dimensional (3D) data predicted from two-dimensional (2D) images using neural networks for 3D modeling applications and other applications |
US10235771B2 (en) * | 2016-11-11 | 2019-03-19 | Qualcomm Incorporated | Methods and systems of performing object pose estimation |
WO2019073267A1 (en) * | 2017-10-12 | 2019-04-18 | Happy Finish Limited | AUTOMATED IMAGE HANDLING USING ARTIFICIAL INTELLIGENCE |
CN107680158A (zh) * | 2017-11-01 | 2018-02-09 | 长沙学院 | 一种基于卷积神经网络模型的三维人脸重建方法 |
US10695911B2 (en) * | 2018-01-12 | 2020-06-30 | Futurewei Technologies, Inc. | Robot navigation and object tracking |
CN108537191B (zh) * | 2018-04-17 | 2020-11-20 | 云从科技集团股份有限公司 | 一种基于结构光摄像头的三维人脸识别方法 |
EP3847628A1 (en) * | 2018-09-19 | 2021-07-14 | Arbrea Labs Ag | Marker-less augmented reality system for mammoplasty pre-visualization |
WO2020069049A1 (en) * | 2018-09-25 | 2020-04-02 | Matterport, Inc. | Employing three-dimensional data predicted from two-dimensional images using neural networks for 3d modeling applications |
KR102662620B1 (ko) * | 2018-11-16 | 2024-05-07 | 스냅 인코포레이티드 | 3차원 객체 재구성 |
US10984609B2 (en) * | 2018-11-21 | 2021-04-20 | Electronics And Telecommunications Research Institute | Apparatus and method for generating 3D avatar |
US20200226407A1 (en) * | 2019-01-16 | 2020-07-16 | Rok Mobile International Ltd. | Delivery of digital content customized using images of objects |
-
2019
- 2019-06-18 CN CN201980090046.8A patent/CN113330490B/zh active Active
- 2019-06-18 WO PCT/CN2019/091748 patent/WO2020155522A1/en active Application Filing
-
2020
- 2020-12-18 US US17/126,269 patent/US11436437B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017029488A2 (en) * | 2015-08-14 | 2017-02-23 | Metail Limited | Methods of generating personalized 3d head models or 3d body models |
CN105427385A (zh) * | 2015-12-07 | 2016-03-23 | 华中科技大学 | 一种基于多层形变模型的高保真人脸三维重建方法 |
CN108053469A (zh) * | 2017-12-26 | 2018-05-18 | 清华大学 | 多视角相机下的复杂动态场景人体三维重建方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113330490A (zh) | 2021-08-31 |
US11436437B2 (en) | 2022-09-06 |
WO2020155522A1 (en) | 2020-08-06 |
US20210103776A1 (en) | 2021-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113330490B (zh) | 三维(3d)辅助个性化家庭对象检测 | |
JP7009399B2 (ja) | ビデオデータの中のオブジェクトの検出 | |
CN111328396B (zh) | 用于图像中的对象的姿态估计和模型检索 | |
Guerry et al. | Snapnet-r: Consistent 3d multi-view semantic labeling for robotics | |
Laskar et al. | Camera relocalization by computing pairwise relative poses using convolutional neural network | |
EP3440428B1 (en) | Remote determination of quantity stored in containers in geographical region | |
Kumar et al. | Monocular fisheye camera depth estimation using sparse lidar supervision | |
CN112991413A (zh) | 自监督深度估测方法和*** | |
CN113537208A (zh) | 一种基于语义orb-slam技术的视觉定位方法及*** | |
WO2015143173A2 (en) | Methods and apparatus for autonomous robotic control | |
US20220044072A1 (en) | Systems and methods for aligning vectors to an image | |
US12026892B2 (en) | Figure-ground neural radiance fields for three-dimensional object category modelling | |
GB2612029A (en) | Lifted semantic graph embedding for omnidirectional place recognition | |
Davies et al. | Advanced methods and deep learning in computer vision | |
Huang et al. | Tracking-by-detection of 3d human shapes: from surfaces to volumes | |
Netto et al. | Robust point-cloud registration based on dense point matching and probabilistic modeling | |
Zhang et al. | Three dimensional object segmentation based on spatial adaptive projection for solid waste | |
Velte | Semantic image segmentation combining visible and near-infrared channels with depth information | |
Duong | Hybrid machine learning and geometric approaches for single rgb camera relocalization | |
Zhao | Empowering Computer Vision Models with Deep Learning for Robotic Perception and Drone Geolocation | |
Herrera-Granda et al. | Monocular Visual SLAM, Visual Odometry, and Structure from Motion Methods Applied to 3D Reconstruction: A Comprehensive Survey | |
Nair | A voting algorithm for dynamic object identification and pose estimation | |
Chowdhary et al. | Machine vision | |
Johnston | RealSense2Zivid: Towards Coloured Point Cloud Denoising, Super Resolution, and Completion | |
Kakillioglu | Computer Vision Applications for Autonomous Aerial Vehicles |
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 |