CN109154973A - 执行卷积图像变换估算的方法和系统 - Google Patents
执行卷积图像变换估算的方法和系统 Download PDFInfo
- Publication number
- CN109154973A CN109154973A CN201780030961.9A CN201780030961A CN109154973A CN 109154973 A CN109154973 A CN 109154973A CN 201780030961 A CN201780030961 A CN 201780030961A CN 109154973 A CN109154973 A CN 109154973A
- Authority
- CN
- China
- Prior art keywords
- image
- angle point
- subset
- disturbance
- group
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 230000009466 transformation Effects 0.000 title description 14
- 238000013528 artificial neural network Methods 0.000 claims abstract description 63
- 238000012549 training Methods 0.000 claims description 33
- 238000006073 displacement reaction Methods 0.000 claims description 13
- 239000013598 vector Substances 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000000306 recurrent effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 210000005036 nerve Anatomy 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 210000004218 nerve net Anatomy 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000017105 transposition Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 229910000831 Steel Inorganic materials 0.000 description 1
- RTAQQCXQSZGOHL-UHFFFAOYSA-N Titanium Chemical compound [Ti] RTAQQCXQSZGOHL-UHFFFAOYSA-N 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 210000000162 simple eye Anatomy 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4046—Scaling of whole images or parts thereof, e.g. expanding or contracting using neural 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/14—Transformations for image registration, e.g. adjusting or mapping for alignment of images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/403—Edge-driven scaling; Edge-based scaling
-
- 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/12—Edge-based segmentation
-
- 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/174—Segmentation; Edge detection involving the use of two or more images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20164—Salient point detection; Corner detection
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Algebra (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
- Apparatus For Radiation Diagnosis (AREA)
Abstract
一种用于基于图像生成神经网络的输入的方法包括:接收图像;在图像内识别一位置;以及在该位置处识别图像的子集。该图像的子集由第一组角点限定。此方法还包括扰动第一组角点中的至少一个以形成第二组角点。第二组角点限定图像的修改后的子集。此方法进一步包括:基于图像的子集与图像的修改后的子集之间的比较确定单应性;通过将单应性应用于图像来生成变换后的图像;以及在该位置处识别变换后的图像的子集。
Description
相关申请的交叉引用
本申请要求2016年5月20日提交的名称为“Deep Image Homography Estimation(深度图像单应性估算)”的美国临时专利申请No.62/339,799的优先权,该申请的公开内容出于所有目的通过引用并入本文中。
背景技术
从一对图像估算二维(2D)单应性(或投影变换)是计算机视觉中的基本任务。在包括仅旋转运动、平面场景和/或其中对象距离观看者很远的场景的情况下,单应性是单眼同时定位与地图构建(SLAM)系统的基本部分。众所周知,涉及围绕相机中心旋转的两个图像的变换是单应性,单应性对于创建全景图是必不可少的,这并不奇怪。为了处理平面和多半为平面的场景,流行的SLAM算法ORB-SLAM使用单应性估算和基本矩阵估算的组合。单应性的其它应用包括增强现实和相机校准。
传统的单应性估算方法包括两个阶段:角点(corner)估算和鲁棒单应性估算。鲁棒性通过返回大的、过于完整的点集而被引入到角点检测阶段中,而单应性估算步骤中的鲁棒性表现为RANSAC的大量使用或平方损失函数的鲁棒化。由于角点不像人造线性结构那样可靠,因此,研究界已经投入相当大的努力在特征检测步骤中添加线特征和更复杂的几何形状。本领域需要一种在给定一对图像的情况下,返回与该对图像相关的单应性的单一鲁棒算法。
发明内容
根据本发明的一个实施例,提供了一种用于基于图像生成神经网络的输入的方法。所述方法包括:接收所述图像;在所述图像内识别一位置;在所述位置处识别所述图像的子集。所述图像的所述子集由第一组角点限定。所述方法还包括扰动所述第一组角点中的至少一个以形成第二组角点。所述第二组角点限定所述图像的修改后的子集。所述方法进一步包括基于所述图像的所述子集与所述图像的所述修改后的子集之间的比较确定单应性。所述方法还包括通过将所述单应性应用于所述图像来生成变换后的图像;以及在所述位置处识别所述变换后的图像的子集。
根据本发明的另一实施例,提供了一种用于训练神经网络的方法。所述方法包括接收多个图像。对于所述多个图像中的每个单独图像,所述方法包括:生成训练三元组(triplet),所述训练三元组包括所述单独图像的子集、变换后的图像的子集、以及基于所述单独图像的所述子集和所述变换后的图像的所述子集的单应性;通过所述神经网络,基于所述单独图像的所述子集和所述变换后的图像的所述子集生成估算的单应性。所述方法还包括:比较所述估算的单应性与所述单应性;以及基于所述比较修改所述神经网络。
根据本发明的特定实施例,提供了一种用于基于两个图像生成估算的单应性的方法。所述方法包括接收基于第一相机姿势的第一图像;以及接收基于第二相机姿势的第二图像。所述方法还包括将所述第一图像和所述第二图像输入到神经网络中;以及通过所述神经网络,基于所述第一图像和所述第二图像生成估算的单应性。所述神经网络先前通过接收多个图像而已经受到训练。对于所述多个图像中的每个单独图像,所述方法包括:在所述单独图像内识别一位置;以及在所述位置处识别所述单独图像的子集。所述单独图像的所述子集由第一组角点限定。所述方法还包括扰动所述第一组角点中的至少一个以形成第二组角点,所述第二组角点限定所述单独图像的修改后的子集;以及基于所述图像的所述子集与所述图像的所述修改后的子集之间的比较确定单应性。所述方法进一步包括:通过将所述单应性应用于所述单独图像来生成变换后的图像;在所述位置处识别所述变换后的图像的子集;基于所述单独图像的所述子集和所述变换后的图像的所述子集生成特定估算的单应性;比较所述特定估算的单应性与所述单应性;以及基于所述比较修改所述神经网络。
通过本发明实现了优于传统技术的许多益处。例如,本发明的实施例提供了当在输入图像之一中未检测到角点时估算图像之间的变换的能力。此外,本发明的实施例提供了当检测到的角点集中于输入图像之一的小子集中时估算图像之间的变换的能力。在其它实施方式中,实施例提供了当图像之一模糊或在弱光场景下拍摄时估算图像之间的变换的能力。此外,一些实施例提供了针对宽范围的图像模态(包括但不限于灰度图像、彩色(RGB)图像、深度(RGB-D)图像、红外图像,以及高光谱图像)使用单一算法估算图像之间的变换的能力。结合下文和附图更详细地描述了本发明的这些和其它实施例及其许多优点和特征。
附图说明
为提供对本发明的进一步理解而包括的附图被并入并构成本说明书的一部分,示例出本发明的实施例,并且与具体实施方式一起用于解释本发明的原理。没有试图更详细地示出本发明的结构细节,而是仅示出基本理解本发明及其各种实践方式所必需的结构。
图1示出了根据本发明实施例的两个图像之间的单应性的不同参数化。
图2示出了根据本发明实施例的用于训练神经网络的系统。
图3示出了根据本发明实施例的用于基于图像生成神经网络的输入的方法。
图4示出了根据本发明实施例的用于训练神经网络的方法。
图5A至5F示出了用于生成神经网络的输入的各种操作。
图6示出了根据本发明实施例的用于基于两个图像生成估算的单应性的方法。
图7示出了根据本发明实施例的对应于不同角点的潜在2D位移的评分的四个图。
图8示出了根据本发明实施例示出本发明实施例和传统技术的均值平均角点误差的图。
图9A至9D示出了使用传统技术和本发明实施例的单应性估算结果。
图10A至10D示出了使用传统技术和本发明实施例的单应性估算结果。
图11A至11D示出了使用传统技术和本发明实施例的单应性估算结果。
图12示出了根据本发明实施例的简化计算机系统。
在附图中,相似的组件和/或特征可以具有相同的数字参考标号。此外,相同类型的各种组件可以通过在参考标号后面加上字母,或者通过在参考标号后面加上破折号,在破折号后再加上区分相似组件和/或特征的第二数字参考标号来区分。如果在说明书中仅使用第一数字参考标号,则该描述可适用于具有相同的第一数字参考标号的相似组件和/或特征中的任何一者,而与后缀无关。
具体实施方式
本发明的实施例涉及用于对一对图像执行单应性估算的深度卷积神经网络。实施例包括使用适合于单应性估算任务的视觉几何组样式(VGG样式)网络。在一种实施方式中,采用4点参数化来改善估算性能。由于深度网络利用大量数据从头开始训练,因此,可能从诸如MS-COCO数据集的现有真实图像数据集创建训练三元组的准无限数据集。如本文所述,训练三元组可以通过将随机投影变换应用于大的真实图像数据集来生成。本发明的实施例还包括作为分类的单应性估算问题的附加公式,其产生单应性上的分布并且可用于确定估算的单应性的置信度。
图1示出了根据本发明实施例的两个图像之间的单应性的不同参数化。在一些情况下,从第一相机姿势106a捕获的对象104的第一图像102a和从第二相机姿势106b捕获的对象104的第二图像102b可以通过单应性H而关联。例如,在一些实施例中,可以将单应性H应用于第一图像102a以生成和/或重建第二图像102b,并且可以将逆单应性H-1应用于第二图像102b以生成和/或重建第一图像102a。在一些实施例中,对象104可以是平面表面,使得可以使用单应性H完美地创建第二图像102b。在一些实施例中,对象104可以是非平面的,但是可以与第一相机姿势106a和第二相机姿势106b相距足够距离以使得第一图像102a和第二图像102b可以通过单应性H近似地关联。
参数化单应性H的最简单方法可以是使用3×3矩阵和固定缩放。单应性将左图像([u,v])中的像素映射到右图像([u',v'])中的像素,并通过以下等式按比例定义:
该3×3矩阵单应性可包括旋转项和平移项。例如,子矩阵[H11H12;H21H22]表示单应性中的旋转项,而矢量[H13H23]是平移偏移。将旋转项和平移项作为优化问题的一部分进行平衡可能是困难的。因此,在一些实施例中,基于单一种类的位置变量(即,角点位置)的替代参数化可能更适合于深度单应性估算。
可以通过让Δu1=u′1–u1作为第一个角点的u偏移量,让Δu2=u′2–u2作为第二角点的u偏移量,让Δu3=u′3–u3作为第三角点的u偏移量,让Δu4=u′4–u4作为第四角点的u偏移量,来实现4点参数化。因此,4点参数化如下表示单应性:
其中Δvi=v′i–vi是第i个角点的v偏移量。等同于单应性的矩阵公式,4点参数化使用8个数字。一旦知道了四个角点的位移,便可将H4point转换为Hmatrix。可以使用各种技术来完成此转换,例如,使用规范化的直接线性变换(DLT)算法或OpenCV中的函数getPerspectiveTransform()。
图2示出了根据本发明实施例的用于训练神经网络201的系统200。系统200可以包括图像数据库205,其可以用于向训练三元组生成器207提供多个图像。在一些情况下,训练三元组生成器207可以从图像数据库205接收输入图像IA并且可以生成图像IA的子集变换后的图像IB的子集以及将图像IA与变换后的图像IB进行关联的单应性HAB(在此被称为训练三元组)。参考图4以及5A至5F更详细地描述由训练三元组生成器207执行的各种操作。在一些实施方式中,单应性HAB可以被称为真值(ground truth)单应性,因为它精确地将子集映射到子集
在本发明的一些应用中,神经网络201利用具有Batch-Norm和ReLU的3×3卷积块,其可以类似于Oxford VGG Net。神经网络201可以将128×128×2大小的双通道灰度图像作为输入。例如,通过单应性HAB相关联的两个输入图像可以按通道被堆叠,并且被馈送到神经网络201中。在一些实例中,在每两个卷积之后将8个卷积层与最大池化层(2×2,步幅2)一起使用。该8个卷积层中的每层可以具有以下数量的滤波器:64、64、64、64、128、128、128、128。卷积层之后可以是两个全连接层。第一全连接层可以具有1024个单元。在最终的卷积层和第一全连接层之后可以应用概率为0.5的丢弃(dropout)。
在一些实施例中,可以在神经网络201中实现两个不同的网络,即,回归网络和/或分类网络。这些网络可以共享相同的架构,直到最后一层,其中一个网络产生实值输出而另一网络产生离散量。回归网络可以直接产生8个实值数,并在训练期间使用欧几里德(L2)损失(Euclidean(L2)loss)作为最终层。分类网络可以使用量化方案,可以在最后一层具有softmax,并且可以在训练期间使用交叉熵损失函数。虽然量化可以指示存在一些固有的量化误差,但是分类网络能够针对使用分类网络产生的每个角点产生置信度。在一些实例中,针对8个输出维度中的每一个使用21个量化区间(bin),这导致最终层具有168个输出神经元。
在一些实例中,使用迭代算法或迭代优化算法(其可以被称为随机梯度下降算法)来训练神经网络201。这些迭代优化算法以神经网络权重的随机设定开始,并使用“梯度”迭代地在一方向上移动权重,该“梯度”是神经网络相对于网络权重的误差信号的导数。在一些实施方式中,使用微积分的链式法则来执行梯度计算。可以使用一个训练三元组来确定梯度,在这种情况下,该批尺寸是一个的批尺寸。或者,可以使用一组训练三元组(例如64个三元组)来确定梯度。在该实施方式中,使用64的小批执行训练。
如图2所示,子集和被输入到神经网络201中,神经网络201基于子集和生成估算的单应性由误差信号生成器211在估算的单应性与单应性HAB之间进行比较,由误差信号生成器211生成误差信号209,基于误差信号209修改神经网络201。在一些实例中,基于误差信号209对神经网络201进行的修改使得误差信号209在神经网络201使用相同的输入图像的后续运行之后被朝向零驱动(例如,被减小)。例如,在误差信号209等于的情况下,神经网络201可以被修改(或自修改)而使得在后续运行之后,估算的单应性被驱动得更接近单应性HAB。这可以通过修改神经网络201内的卷积层来实现。
图3示出了根据本发明实施例的用于基于图像(诸如图像IA)生成神经网络(诸如神经网络201)的输入的方法300。方法300的操作可以以任何顺序执行,并且并非所有操作都需要在方法300的执行期间被执行。方法300的各种操作结合图5A至5F示出。
在框302处,接收图像IA(例如,图5A所示的图像510)。图像IA可以是基于矢量或像素(例如,光栅)的二维(2D)图像。例如,图像IA的每个像素可以使用灰度值(每像素包括1个数值)或RGB颜色模型(每像素包括3个数值)来表示。在一些实施例中,图像IA可以是深度图,并且图像IA的每个像素可以是深度值。图像IA可以是正方形、矩形或某种其它形状。接收图像IA可以包括从系统200内部或外部的一些源接收、检索和/或获得图像IA。例如,如图2所示,在使用先前图像生成训练三元组之后(例如,紧接在使用先前图像生成训练三元组之后),训练三元组生成器207可以从图像数据库205检索图像IA。
在框304处,在图像IA内识别位置p。位置p可以包括图像IA内的单个位置(例如,像素位置),或者可以包括图像IA内的多个位置(例如,多个像素位置),诸如图像IA的子集的四个角点的位置,或者图像IA的子集内的所有像素。在一些实施例中,位置p对应于随后识别的图像IA的子集的中心像素位置,中心像素位置是图像IA的平均垂直像素位置与图像IA的平均水平像素位置的交点。在一些实施例中,如下面更全面描述的,识别位置p可以包括随机选择图像IA内的像素位置,使得随后识别的图像IA的子集不延伸到图像IA外部。在一些实施例中,识别位置p可以包括随机选择图像IA内的像素位置,使得随后识别的扰动区域不延伸到图像IA外部。
在框306处,在位置p处识别图像IA的子集在一些实施例中,子集可以与参考图5A所示的子集520类似或不同。例如,子集可以是由第一角点525a、第二角点525b、第三角点525c和第四角点525d限定的正方形。尽管子集在图5A中被示出为正方形,但是在其它实施例中,子集可以是矩形、三角形、圆形、椭圆形或某种其它多边形。因此,本发明的实施例不限于正方形图像。此外,子集不必是单个连续的像素分组,而可以是多个不连接的像素分组的组合。可选地,子集(以及类似地,位置p)可以基于所需类型的训练图像来识别,例如仅包括诸如风景、城市景观、人、动物、墙壁、天花板、地板等的特征的训练图像。
在框308处,限定子集的角点中的至少一个被扰动,从而形成一个或多个扰动角点。在一些实施例中,扰动限定子集的角点中的至少一个可以与参考图5B和5C所示的类似或不同。例如,参考图5B,可以围绕子集520的每个角点525形成四个扰动区域535。具体而言,围绕第一角点525a形成第一扰动区域535a,围绕第二角点525b形成第二扰动区域535b,围绕第三角点525c形成第三扰动区域535c,以及围绕第四角点525d形成第四扰动区域535d。每个扰动区域表示扰动角点540的可能位置,并且可以与新角点位置的一些概率分布相关联。例如,在一些实施例中,采用均匀分布,使得特定扰动区域内的任何像素位置与该特定扰动区域内的任何其它像素位置一样可能是新角点位置。在其它实施例中,采用正态分布,使得更大可能选择更靠近角点525的像素位置作为新角点位置。
在一些实施例中,针对角点525中的每一者生成位移矢量530,用于将角点525与扰动角点540进行关联。具体而言,第一位移矢量530a可以基于对由第一扰动区域535a限定的概率分布进行采样来生成,并且可以与第一角点525a组合(例如,被添加到该角点)以形成第一扰动角点540a。类似地,第二位移矢量530b可以基于对由第二扰动区域535b限定的概率分布进行采样来生成,并且可以与第二角点525b组合(例如,被添加到该角点)以形成第二扰动角点540b。可以对第三位移矢量530c和第四位移矢量530d执行类似的操作。
在一些实例中,每个扰动区域535具有宽度和高度2ρ。换句话说,限定子集的角点525中的每一者可以在垂直和水平方向上都被范围[-ρ,ρ]内的值扰动。在本公开的一些实施方式中,可以选择位置p和扰动范围ρ,使得扰动区域535不延伸到图像IA外部。例如,在位置p对应于子集的中心像素位置且子集具有长度和高度l的情况下,当选择位置p,使得其与图像IA的所有边缘至少相距ρ+l/2的距离时,扰动区域535不延伸到图像IA外部。在一些实例中,使用由与图像IA的所有边缘至少相距ρ+l/2的距离的区域限定的均匀概率分布来随机选择位置p作为图像IA内的像素位置。
扰动角点540限定图像IA的修改后的子集545。当角点525中的至少一个角点被扰动时,修改后的子集545不同于子集使得修改后的子集545比子集多至少一个像素,少至少一个像素,或包括至少一个与子集不同的像素。修改后的子集545本身可以是子集的子集,或者子集本身可以是修改后的子集545的子集。尽管图5B和5C示出了被扰动的子集520的所有四个角点,但是在一些实施例中,可以扰动一个、两个或三个角点。在一些实例中,位移矢量530是相同的,使得修改后的子集545的大小可以与子集相同,但是在预定方向上移位。
在框310处,基于子集与修改后的子集545之间的比较来确定单应性HAB。在一些实例中,基于子集与修改后的子集545之间的比较确定单应性HAB可以包括角点525与扰动角点540之间的比较。例如,使用H4point等式(等式2),u偏移量和v偏移量可以被设定为等于位移矢量530,即,角点525与扰动角点540之间的矢量。在被确定之后,可以将单应性HAB从一个参数化转换为另一参数化。例如,在被确定之后,单应性HAB可以从H4point转换为Hmatirx,或者从Hmatirx转换为H4point。
在框312处,通过将单应性HAB应用于图像IA来生成变换后的图像IB。由于各种方式被预期用于确定单应性,因此将单应性HAB应用于图像IA可以包括直接将单应性HAB应用于图像IA,或者将单应性HAB的逆量(inverse)(例如,(HAB)-1)应用于图像IA。在一些实施例中,变换后的图像IB可以与参考图5D所示的变换后的图像550相似或不同。将单应性HAB应用于图像IA可以包括执行单应性HAB与图像IA之间的各种运算中的一种或多种,包括但不限于乘、除、加、减、卷积等。在一些实施例中,通过将单应性HAB的逆量与图像IA相乘来生成图像IB,使得IB=IA×(HB)-1。
如本文所述,单应性变换HAB被限定在齐次坐标中表示为3维量的2维点之间(请参见等式1)。因此,等式x′i=HABxi在数学上是精确的。然而,当将单应性应用于高度为H、宽度为W以及维数为D的图像时,可以使用类似的简写等式:I′~HAB×I。对于该等式,通过以下方式经由单应性实现D维图像的变换:即,从I'取整数值像素位置(被称为(u',v')),应用逆变换以获得原始图像中的实值坐标(u,v),然后使用双线性内插法插入来自原始图像的D维像素值。换句话说,当将单应性应用于点时,利用数学精度,但是当将单应性应用于图像时,利用内插方法来推断每个像素的D维值的值。由于对于具有任意维数D的图像以类似的方式实现内插,因此可以针对灰度图像、彩色图像、RGB-D图像,以及具有任意大维数D的图像应用同一等式,即,I′~HAB×I。应当理解,在将单应性应用于点和内插像素值方面,本领域技术人员将理解在此将单应性应用于图像的讨论。因此,对于图像单应性具有相等性的等式在此方面应当被理解为基于内插的近似。
在框314处,在位置p处识别图像IB的子集在一些实施例中,子集可以与参考图5D所示的子集555类似或不同。例如,子集可以是具有与子集相同的像素位置但不同的像素值的正方形。例如,子集的大小(例如,宽度和高度)可以与子集相同。尽管子集在图5D中被示出为正方形,但是在其它实施例中,子集可以是矩形、三角形、圆形、椭圆形或某种其它多边形。此外,子集不必是单个连续的像素分组,而可以是多个不连接的像素分组的组合。
在框316处,确定子集是否包括边界伪像(例如,未知像素)。例如,由于扰动区域535包括位于图像IA外部的像素位置,子集可以包括延伸到图像IB外部的像素位置。因为这样的边界伪像可能导致神经网络201的错误训练,所以当检测到具有边界伪像的子集时,可以有利地重新开始方法300(例如,在框304处或框308处)。如参考图5E所示,当子集包括各种角点时,仅需要对角点检查边界伪像以做出确定。当确定子集不包括边界伪像时,方法300可以进行到框318。
在框318处,通过组合子集子集和单应性HAB(如图5F所示)来生成训练三元组框318可以通过将训练三元组 输出、发送、路由和/或提供到神经网络201和/或误差信号生成器211而被执行。
应当理解,图3所示的具体步骤提供了根据本发明实施例的基于图像生成神经网络的输入的特定方法。根据备选实施例,还可以执行其它步骤序列。例如,本发明的备选实施例可以以不同的顺序执行上面概述的步骤。此外,图3所示的各个步骤可以包括多个子步骤,这些子步骤可以以适合于各个步骤的各种序列执行。另外,取决于特定应用,可以添加或移除附加步骤。本领域普通技术人员将认识到许多变化、修改和替代。
图4示出了根据本发明实施例的用于训练神经网络201的方法400。方法400的操作可以以任何顺序执行,并且不是所有操作都需要在方法400的执行期间被执行。方法400的各种操作结合图2以及5A至5F示出。在框402处,接收多个图像。对于多个图像中的每一个,可以执行框404到412。
在框404处,例如可以通过执行关于参考图3所示的基于图像生成神经网络的输入的方法描述的一个或多个操作,来生成训练三元组 在框406处,例如通过将训练三元组输出和/或发送到神经网络201或与神经网络201耦接的一个或多个组件(例如,误差信号生成器211),来将训练三元组提供给神经网络201。
在框408处,通过神经网络201,基于子集和生成估算的单应性在框410处,比较估算的单应性与单应性HAB。该比较可以包括基于估算的单应性和单应性HAB执行一个或多个数学运算。框410可以由神经网络201、误差信号生成器211或被耦接到神经网络201的某个其它组件来执行。在一些实施例中,框410包括通过误差信号生成器211计算等于的误差信号209。在框412处,神经网络201基于在框410处做出的比较而被修改。例如,神经网络201可以被修改(或自修改),使得在后续运行之后,估算的单应性被驱动得更接近单应性HAB。此外,对神经网络201做出的修改程度可以与误差信号209成比例。
在框414处,确定是否存在另外的图像。如果存在另外的图像,则方法400返回到框404,并且可以针对下一图像IA生成训练三元组 如果没有另外的图像,则方法400结束。在一些实施例中,当确定没有另外的图像时,方法400可以返回到框404,并且可以针对先前使用的图像生成不同的训练三元组例如,训练三元组 可以使用不同的扰动区域生成,或者可以使用以不同于方法400的先前迭代期间的方式随机采样的类似的扰动区域生成。
在一些实施例中,可以选择用于训练神经网络201的训练图像的类型,以便可以构建专用的单应性估算引擎。例如,可以仅利用从室内工厂的机器人图像传感器捕获的图像来训练经由单应性估算、使用平面SLAM导航室内工厂的机器人。
应当理解,图4所示的具体步骤提供了根据本发明实施例的训练神经网络的特定方法。根据备选实施例,还可以执行其它步骤序列。例如,本发明的备选实施例可以以不同的顺序执行上面概述的步骤。图4所示的各个步骤可以包括多个子步骤,这些子步骤可以以适合于各个步骤的各种序列执行。另外,取决于特定应用,可以添加或移除附加步骤。本领域普通技术人员将认识到许多变化、修改和替代。
在本发明的一种实施方式中,使用动量为0.9的随机梯度下降(SGD)在单个TitanX GPU上训练神经网络201约8小时。可以使用0.005的基础学习速率,并且在每30,000次迭代之后学习速率可以下降10倍。可以使用64的批尺寸来训练神经网络201进行90,000次总迭代。在一些实施方式中,可以使用诸如Caffe之类的流行的开源深度学习包。为了创建训练数据,可以使用MS-COCO训练集。所有图像可以被调整为320×240的大小并被转换为灰度。在一些实施例中,可以生成通过单应性关联的大小为128×128的500,000对图像块。每个扰动区域的ρ值可以被设定为32,这意味着128×128灰度图像的每个角点可以被总图像边缘尺寸的最大四分之一扰动。如上所述,可以避免较大的扰动区域以避免极端的图像变换。在一些实例中,神经网络201的权重被初始化为随机值并且从头开始被训练(即,没有预训练)。可以使用MS-COCO验证集来监视过拟合。
图6示出了根据本发明实施例的用于基于两个图像生成估算的单应性的方法600。方法600的操作可以以任何顺序执行,并且不是所有操作都需要在方法600的执行期间被执行。在步骤602,例如通过执行关于参考图4所示的训练神经网络的方法描述的一个或多个操作,来训练神经网络201。在步骤604,接收基于第一相机姿势的第一图像。第一图像可以是由相机捕获的2D图像。接收第一图像可以包括接收、检索、获得和/或捕获第一图像。在步骤606,接收基于第二相机姿势的第二图像。第二图像可以是由与第一图像相同的相机或者不同的相机捕获的2D图像。在步骤608,将第一图像和第二图像输入到神经网络201中。在步骤610,可以基于第一图像和第二图像生成估算的单应性例如,第一图像和第二图像可以被堆叠并被馈送到神经网络201中,神经网络201可以生成估算的单应性作为输出。除RGB图像之外,本发明的实施例还可应用于各种尺寸和模态的各种图像,包括但不限于灰度图像、彩色图像、RGBD图像、红外图像等。
应当理解,图6所示的具体步骤提供了根据本发明实施例的基于两个图像生成估算的单应性的特定方法。根据备选实施例,还可以执行其它步骤序列。例如,本发明的备选实施例可以以不同的顺序执行上面概述的步骤。并且,图6所示的各个步骤可以包括多个子步骤,这些子步骤可以以适合于各个步骤的各种序列执行。另外,取决于特定应用,可以添加或移除附加步骤。本领域普通技术人员将认识到许多变化、修改和替代。
图7示出了根据本发明实施例的与不同角点的潜在2D位移的评分对应的四个图。在一些实施例中(通常是利用分类网络的实施例),神经网络201针对每个潜在的2D位移生成评分,由此可以获得与特定角点位置相关联的置信度。例如,参考图7,由于与角点4相关联的评分的分布比与角点3相关联的评分的分布窄,因此与角点3的角点位置相比,可以以更大的置信度估算角点4的角点位置。
图8示出了图800,该图示出本发明的实施例和传统技术的均值平均角点误差(以像素表示)。在本公开的一种实施方式中,通过从测试集选择5,000个图像并将每个图像的大小调整为灰度640×480来创建Warped MS-COCO 14测试集。使用方法300和ρ=64,利用相应的真值单应性生成大小为256×256的图像批的对。将神经网络201的分类和回归变体与常规技术进行比较。由于本公开的一些实施例期望固定大小的128×128×2输入,因此来自Warped MS-COCO 14测试集的图像对的大小在通过神经网络201之前从256×256×2被调整为128×128×2。由网络输出的4点参数化单应性输出然后可以乘以因子2来解释这一点。在评估分类网络时,针对四个返回的角点中的每一个选择具有最高置信度的角点位移。
该实施方式的结果在图8中示出。均值平均角点误差对应于四个角点中每个角点的估算的角点与实际角点之间的平均误差。在一些实施例中,为了测量该度量,计算真值角点位置与估算的角点位置之间的L2距离。在图8中,条802对应于使用回归网络的本公开的实施例,条804对应于传统方法(ORB+RANSAC),条806对应于使用分类网络的本公开的实施例,在分类网络中,除了估算的单应性之外,还生成不同角点(例如参考图7所示)的潜在2D位移的评分。虽然回归网络表现最佳,但分类网络可以产生置信度并提供一种有意义的方式来对结果进行可视化调试。
图9A至9D示出了使用传统技术和本发明实施例的单应性估算结果。图9A和9B示出了基于ORB的单应性估算的输出,图9C和9D示出了本发明实施例的输出。参考图9A,限定了图像905的区域910。参考图9B,图像905已经被变换而形成图像915。在图9B中,已经使用在图像905与图像915之间使用的相同变换将区域910变换为区域920。因此,单应性HAB被限定在区域910与区域920之间。该单应性HAB可以被称为真值单应性,因为它将区域910精确地映射到区域920。在图9B中,尝试使用诸如ORB之类的传统特征检测器生成估算的单应性。然而,由于包括大部分均匀天空的图像缺少用于使特征检测器正常工作的足够数量的特征,因此未生成估算的单应性。
与传统方法形成对比,图9C和9D示出了真值单应性和使用本发明实施例生成的估算的单应性。参考图9C,与图9A相同,限定了图像905的区域910。在图9D中,区域920通过单应性HAB(即,真值单应性)与区域910相关联。另外在图9D中,区域940通过使用本发明实施例确定的估算的单应性而与区域910相关联。在该示例中,子集920与子集940之间的差异可以忽略不计,从而导致这些区域有效地重叠。因此,尽管传统方法无法生成任何估算的单应性,但估算的单应性与真值单应性紧密匹配。
图10A至10D示出了使用传统技术和本发明实施例的单应性估算结果。图10A和10B示出了基于ORB的单应性估算的输出,图10C和10D示出了本发明实施例的输出。以类似于图9A/9B和9C/9D的方式,限定了图像1005的区域1010。参考图10B,图像1005已经被变换而形成图像1015。在图10B中,已经使用与在图像1005与图像1015之间使用的相同变换而将区域1010变换为区域1020。因此,(真值)单应性HAB被限定在区域1010与区域1020之间。区域1010与区域1030通过使用基于ORB的单应性估算确定的估算的单应性而关联。参考图10A和10B,通过连接区域1010中的特征与区域1030中的特征的线1025,示出特征检测过程。尽管使用基于ORB的单应性估算检测到足够的特征而生成估算的单应性,但该估算的单应性的均值角误差为91.67。
参考图10C和10D,示出并比较了真值单应性和使用本发明实施例生成的估算的单应性。参考图10C,与图10A相同,限定了图像1005的区域1010。在图10D中,区域1020通过单应性HAB(真值单应性)而与区域1010相关联。另外在图10D中,区域1040通过使用本发明实施例确定的估算的单应性而与区域1010相关联。在该示例中,子集1020与子集1040之间的差异可以忽略不计,从而导致这些区域有效地重叠。通过比较使用本发明实施例实现的4.10的均值角点误差与图10B中的子集1030(均值角点误差为91.67),该结果显示出鲜明的对比。
图11A至11D示出了使用传统技术和本发明实施例的单应性估算结果。图11A和11B示出了基于ORB的单应性估算的输出,图11C和11D示出了本发明实施例的输出。将少量高斯噪声添加到图11A和11B中的每个图像中以模拟可以由相机捕获的实际图像。参考图11A,限定了图像1105的区域1110。参考图11B,图像1105已经被变换而形成图像1115。在图11B中,已经使用与在图像1105与图像1115之间使用的相同变换而将区域1110变换为区域1120。因此,(真值)单应性HAB被限定在区域1110与区域1120之间。区域1110与区域1130通过使用基于ORB的单应性估算而确定的估算的单应性进行关联。参考图11A和11B,通过连接区域1110中的特征与区域1130中的特征的线1125,示出特征检测过程。尽管使用基于ORB的单应性估算检测到足够的特征而生成估算的单应性,但该估算的单应性的均值角误差为91.67。
参考图11C和11D,示出并比较了真值单应性和使用本发明实施例生成的估算的单应性。参考图11C,与图11A相同,限定了图像1105的区域1110。在图11D中,区域1120通过单应性HAB(真值单应性)而与区域1110相关联。另外在图11D中,区域1140通过使用本发明实施例确定的估算的单应性而与区域1110相关联。尽管使用基于ORB的单应性估算检测到分布在子集大部分上的大量特征,但是由传统方法产生的均值角点误差再次显著大于使用本发明实施例实现的均值角点误差(51.92对7.40)。因此,本发明的实施例不仅适合在其中不同相机视角导致图像变换的应用中使用,而且还适合在其中图像模糊和/或模糊/变换的应用中使用。
图12示出了根据本发明实施例的简化计算机系统1200。图12所示的计算机系统1200可以被并入诸如便携式电子设备、移动电话或本文所述的其它设备之类的设备中。图12提供了计算机系统1200的一个实施例的示意图,该计算机系统1200可以执行由各种实施例提供的方法的部分或全部步骤。应当注意,图12仅用于提供各种组件的概括说明,可以适当地使用其中的任何或所有组件。因此,图12广泛地示例了如何以相对分离或相对更集成的方式实现各个系统元件。
计算机系统1200被示出为包括可以通过总线1205电耦接,或者可以适当地以其它方式进行通信的硬件元件。这些硬件元件可以包括:一个或多个处理器1210,其包括但不限于一个或多个通用处理器和/或一个或多个专用处理器,例如数字信号处理芯片、图形加速处理器和/或类似物;一个或多个输入设备1215,其可以包括但不限于鼠标、键盘、相机和/或类似物;一个或多个输出设备1220,其可以包括但不限于显示设备、打印机和/或类似物。
计算机系统1200可以进一步包括一个或多个非暂时性存储设备1225,和/或与一个或多个非暂时性存储设备1225通信,该存储设备1225可以包括但不限于本地和/或网络可访问存储器,和/或可以包括但不限于磁盘驱动器、驱动器阵列、光学存储设备、固态存储设备,诸如可编程的、可闪速更新的随机存取存储器(“RAM”)和/或只读存储器(“ROM”),和/或类似物。这样的存储设备可以被配置为实现任何适当的数据存储,包括但不限于各种文件系统、数据库结构和/或类似物。
计算机系统1200可以还包括通信子系统1230,其可以包括但不限于调制解调器、网卡(无线或有线)、红外通信设备、无线通信设备和/或芯片组,例如BluetoothTM设备、802.11设备、WiFi设备、WiMax设备、蜂窝通信设施等等,和/或类似物。通信子系统1230可以包括一个或多个输入和/或输出通信接口,以允许与诸如下面举例描述的网络之类的网络、其它计算机系统、电视和/或本文描述的任何其它设备交换数据。取决于所需的功能和/或其它实施方式问题,便携式电子设备或类似设备可以经由通信子系统1230传送图像和/或其它信息。在其它实施例中,诸如第一电子设备之类的便携式电子设备可以被并入到计算机系统1200中,例如作为输入设备1215的电子设备。在一些实施例中,计算机系统1200还包括工作存储器1235,其可以包括上述RAM或ROM设备。
计算机系统1200还可以包括软件元件,其被示出为当前位于工作存储器1235内,工作存储器1235包括操作系统1240、设备驱动程序、可执行库和/或其它代码,例如一个或多个应用程序1245,如本文所述,这些应用程序1245可以包括由各种实施例提供的计算机程序,和/或可以被设计为实现由其它实施例提供的方法和/或配置系统。仅作为示例,参考诸如关于图12描述的上述方法描述的一个或多个过程可以被实现为可由计算机和/或计算机内的处理器执行的代码和/或指令;然后,在一方面,这样的代码和/或指令可被用于配置和/或调整通用计算机或其它设备以根据所描述的方法执行一个或多个操作。
一组这些指令和/或代码可以被存储在非暂时性计算机可读存储介质上,例如上述存储设备1225上。在一些情况下,存储介质可以被并入计算机系统中,例如计算机系统1200中。在其它实施例中,存储介质可以与计算机系统分离,例如可移除的介质,例如光盘,和/或在安装包中被提供,使得存储介质可被用于编程、配置和/或调整其上存储有指令/代码的通用计算机。这些指令可以采用可由计算机系统1200执行的可执行代码的形式,和/或可以采用源代码和/或可安装代码的形式,当例如使用各种通常可用的编译器、安装程序、压缩/解压缩实用程序等在计算机系统1200上编译和/或安装时,该源代码和/或可安装代码然后采用可执行代码的形式。
对于本领域技术人员显而易见的是,可以根据具体要求进行实质性变化。例如,也可以使用定制硬件,和/或特定元件可以用硬件和/或包括便携式软件(例如小应用程序等)的软件实现。此外,可以采用与诸如网络输入/输出设备之类的其它计算设备的连接。
如上所述,在一方面,一些实施例可以采用诸如计算机系统1200之类的计算机系统来执行根据本技术的各种实施例的方法。根据一组实施例,这些方法的部分或全部过程由计算机系统1200执行,以响应于处理器1210执行一个或多个指令的一个或多个序列,这些指令可以被并入到操作系统1240和/或诸如应用程序1245之类的包含在工作存储器1235中的其它代码中。可以将这样的指令从另一计算机可读介质(例如一个或多个存储设备1225)读入工作存储器1235中。仅作为示例,包含在工作存储器1235中的指令序列的执行可以使处理器1210执行本文描述的方法的一个或多个过程。附加地或替代地,本文描述的方法的一部分可以通过专用硬件来执行。
如本文所使用的,术语“机器可读介质”和“计算机可读介质”是指参与提供使机器以特定方式操作的数据的任何介质。在使用计算机系统1200实现的实施例中,各种计算机可读介质可以涉及向处理器1210提供指令/代码以供执行,和/或可以被用于存储和/或携带这样的指令/代码。在许多实施方式中,计算机可读介质是物理和/或有形的存储介质。这样的介质可以采用非易失性介质或易失性介质的形式。非易失性介质例如包括光盘和/或磁盘,例如存储设备1225。易失性介质包括但不限于动态存储器,例如工作存储器1235。
物理和/或有形的计算机可读介质的常见形式例如包括软盘、柔性盘、硬盘、磁带或任何其它磁介质、CD-ROM、任何其它光介质、穿孔卡、纸带、具有孔图案的任何其它物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其它存储器芯片或盒式磁带,或计算机可以从中读取指令和/或代码的任何其它介质。
各种形式的计算机可读介质可以涉及将一个或多个指令的一个或多个序列传送到处理器1210以供执行。仅作为示例,指令最初可以承载在远程计算机的磁盘和/或光盘上。远程计算机可以将指令加载到其动态存储器中,并将指令作为信号通过传输介质发送,以由计算机系统1200接收和/或执行。
通信子系统1230和/或其组件通常将接收信号,然后总线1205可以将信号和/或信号所携带的数据、指令等传输到工作存储器1235,处理器1210从工作存储器1235检索并执行指令。由工作存储器1235接收的指令可以可选地在由处理器1210执行之前或之后被存储在非暂时性存储设备1225上。
以上讨论的方法、系统和设备是示例。各种配置可以适当地省略、替换或添加各种过程或组件。例如,在备选配置中,可以以不同于所描述的顺序执行方法,和/或可以添加、省略和/或组合各种阶段。而且,针对特定配置描述的特征可以以各种其它配置组合。配置的不同方面和元件可以以类似的方式组合。此外,技术是发展的,因此许多元件是示例,并不限制本公开或权利要求的范围。
在说明书中给出了具体细节以提供对包括实施方式的示例性配置的透彻理解。然而,可以在没有这些具体细节的情况下实践配置。例如,已经示出了众所周知的电路、处理、算法、结构和技术而没有不必要的细节,以避免混淆配置。该描述仅提供示例配置,并且不限制权利要求的范围、适用性或配置。相反,前面对配置的描述将为本领域技术人员提供用于实现所描述的技术的使能说明。在不脱离本公开的精神或范围的情况下,可以对元件的功能和布置进行各种改变。
此外,配置可以被描述为过程,该过程能够被描绘为示意性流程图或框图。尽管每个过程可以将操作描述为顺序过程,但是许多操作可以并行或同时被执行。另外,可以重新排列操作的顺序。一过程可能具有附图中未包括的附加步骤。此外,方法的示例可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来实现。当通过软件、固件、中间件或微代码实现时,用于执行必要任务的程序代码或代码段可以被存储在诸如存储介质之类的非暂时性计算机可读介质中。处理器可以执行所描述的任务。
已经描述了若干示例配置,在不脱离本公开的精神的情况下,可以使用各种修改、替代构造和等同物。例如,上述元件可以是更大系统的组件,其中其它规则可能优先于本技术的应用或以其它方式修改本技术的应用。而且,可以在考虑上述元件之前、期间或之后执行许多步骤。因此,以上描述不限制权利要求的范围。
如本文和所附权利要求中所使用的,单数形式“一”、“一个”和“该”包括复数指代,除非上下文另有明确说明。因此,例如,对“一用户”的提及包括多个这样的用户,并且对“该处理器”的提及包括提及本领域技术人员公知的一个或多个处理器及其等同物等等。
此外,当在本说明书和先的权利要求中使用时,词语“包括”、“包含”、“含有”、“内含”、“具有”、“涵盖”和“带有”旨在指定所声明的特征、整体、组件或步骤的存在,但它们不排除一个或多个其它特征、整体、组件、步骤、动作或其组的存在或添加。
还应理解,本文描述的实例和实施例仅用于说明目的,根据这些实例和实施例进行的各种修改或改变将被暗示给本领域技术人员,并且这些修改或改变将被包括在本申请的精神和范围以及所附权利要求的范围内。
Claims (20)
1.一种用于基于图像生成神经网络的输入的方法,所述方法包括:
接收所述图像;
在所述图像内识别一位置;
在所述位置处识别所述图像的子集,所述图像的所述子集由第一组角点限定;
扰动所述第一组角点中的至少一个以形成第二组角点,所述第二组角点限定所述图像的修改后的子集;
基于所述图像的所述子集与所述图像的所述修改后的子集之间的比较确定单应性;
通过将所述单应性应用于所述图像来生成变换后的图像;以及
在所述位置处识别所述变换后的图像的子集。
2.根据权利要求1所述的方法,进一步包括:
将所述图像的所述子集、所述变换后的图像的所述子集、以及所述单应性发送到所述神经网络。
3.根据权利要求1所述的方法,进一步包括:
确定所述变换后的图像的所述子集不包括边界伪像。
4.根据权利要求1所述的方法,其中扰动所述第一组角点中的所述至少一个以形成所述第二组角点包括:
限定围绕所述第一组角点中的第一角点的第一扰动区域,在其中可以形成所述第二组角点中的第一扰动角点;
限定围绕所述第一组角点中的第二角点的第二扰动区域,在其中可以形成所述第二组角点中的第二扰动角点;
限定围绕所述第一组角点中的第三角点的第三扰动区域,在其中可以形成所述第二组角点中的第三扰动角点;
限定围绕所述第一组角点中的第四角点的第四扰动区域,在其中可以形成所述第二组角点中的第四扰动角点;
在所述第一扰动区域内的第一随机位置中形成所述第一扰动角点;
在所述第二扰动区域内的第二随机位置中形成所述第二扰动角点;
在所述第三扰动区域内的第三随机位置中形成所述第三扰动角点;以及
在所述第四扰动区域内的第四随机位置中形成所述第四扰动角点。
5.根据权利要求4所述的方法,其中在所述图像内识别所述位置包括:
在所述图像内随机选择所述位置,使得所述第一扰动区域、所述第二扰动区域、所述第三扰动区域和所述第四扰动区域不延伸到所述图像外部。
6.根据权利要求1所述的方法,其中基于所述比较确定所述单应性包括:
确定所述第一组角点与所述第二组角点之间的一个或多个位移矢量,其中所述一个或多个位移矢量中的每一个指示第一维中和第二维中的对应角点之间的偏移。
7.根据权利要求1所述的方法,其中通过将所述单应性应用于所述图像来生成所述变换后的图像包括:
将所述单应性的逆量应用于所述图像以生成所述变换后的图像。
8.一种用于训练神经网络的方法,所述方法包括:
接收多个图像;以及
对于所述多个图像中的每个单独图像:
生成训练三元组,所述训练三元组包括所述单独图像的子集、变换后的图像的子集、以及基于所述单独图像的所述子集和所述变换后的图像的所述子集的单应性;
通过所述神经网络,基于所述单独图像的所述子集和所述变换后的图像的所述子集生成估算的单应性;
比较所述估算的单应性与所述单应性;以及
基于所述比较修改所述神经网络。
9.根据权利要求8所述的方法,其中生成所述训练三元组包括:
在所述单独图像内识别一位置;
在所述位置处识别所述单独图像的所述子集,所述单独图像的所述子集由第一组角点限定;
扰动所述第一组角点中的至少一个以形成第二组角点,所述第二组角点限定所述单独图像的修改后的子集;
基于所述图像的所述子集与所述图像的所述修改后的子集之间的比较确定所述单应性;
通过将所述单应性应用于所述单独图像来生成所述变换后的图像;以及
在所述位置处识别所述变换后的图像的所述子集。
10.根据权利要求9所述的方法,进一步包括:
将所述图像的所述子集、所述变换后的图像的所述子集、以及所述单应性发送到所述神经网络。
11.根据权利要求9所述的方法,进一步包括:
确定所述变换后的图像的所述子集不包括边界伪像。
12.根据权利要求9所述的方法,其中扰动所述第一组角点中的所述至少一个以形成所述第二组角点包括:
限定围绕所述第一组角点中的第一角点的第一扰动区域,在其中可以形成所述第二组角点中的第一扰动角点;
限定围绕所述第一组角点中的第二角点的第二扰动区域,在其中可以形成所述第二组角点中的第二扰动角点;
限定围绕所述第一组角点中的第三角点的第三扰动区域,在其中可以形成所述第二组角点中的第三扰动角点;
限定围绕所述第一组角点中的第四角点的第四扰动区域,在其中可以形成所述第二组角点中的第四扰动角点;
在所述第一扰动区域内的第一随机位置中形成所述第一扰动角点;
在所述第二扰动区域内的第二随机位置中形成所述第二扰动角点;
在所述第三扰动区域内的第三随机位置中形成所述第三扰动角点;以及
在所述第四扰动区域内的第四随机位置中形成所述第四扰动角点。
13.根据权利要求12所述的方法,其中在所述图像内识别所述位置包括:
在所述图像内随机选择所述位置,使得所述第一扰动区域、所述第二扰动区域、所述第三扰动区域和所述第四扰动区域不延伸到所述图像外部。
14.根据权利要求9所述的方法,其中通过将所述单应性应用于所述图像来生成所述变换后的图像包括:
将所述单应性的逆量应用于所述图像以生成所述变换后的图像。
15.一种用于基于两个图像生成估算的单应性的方法,所述方法包括:
接收基于第一相机姿势的第一图像;
接收基于第二相机姿势的第二图像;
将所述第一图像和所述第二图像输入到神经网络中;以及
通过所述神经网络,基于所述第一图像和所述第二图像生成估算的单应性,其中所述神经网络先前通过以下方式受到训练:
接收多个图像;并且
对于所述多个图像中的每个单独图像:
在所述单独图像内识别一位置;
在所述位置处识别所述单独图像的子集,所述单独图像的所述子集由第一组角点限定;
扰动所述第一组角点中的至少一个以形成第二组角点,所述第二组角点限定所述单独图像的修改后的子集;
基于所述图像的所述子集与所述图像的所述修改后的子集之间的比较确定单应性;
通过将所述单应性应用于所述单独图像来生成变换后的图像;
在所述位置处识别所述变换后的图像的子集;
基于所述单独图像的所述子集和所述变换后的图像的所述子集生成特定估算的单应性;
比较所述特定估算的单应性与所述单应性;以及
基于所述比较修改所述神经网络。
16.根据权利要求15所述的方法,进一步包括:
将所述图像的所述子集、所述变换后的图像的所述子集、以及所述单应性发送到所述神经网络。
17.根据权利要求15所述的方法,进一步包括:
确定所述变换后的图像的所述子集不包括边界伪像。
18.根据权利要求15所述的方法,其中扰动所述第一组角点中的所述至少一个以形成所述第二组角点包括:
限定围绕所述第一组角点中的第一角点的第一扰动区域,在其中可以形成所述第二组角点中的第一扰动角点;
限定围绕所述第一组角点中的第二角点的第二扰动区域,在其中可以形成所述第二组角点中的第二扰动角点;
限定围绕所述第一组角点中的第三角点的第三扰动区域,在其中可以形成所述第二组角点中的第三扰动角点;
限定围绕所述第一组角点中的第四角点的第四扰动区域,在其中可以形成所述第二组角点中的第四扰动角点;
在所述第一扰动区域内的第一随机位置中形成所述第一扰动角点;
在所述第二扰动区域内的第二随机位置中形成所述第二扰动角点;
在所述第三扰动区域内的第三随机位置中形成所述第三扰动角点;以及
在所述第四扰动区域内的第四随机位置中形成所述第四扰动角点。
19.根据权利要求18所述的方法,其中在所述图像内识别所述位置包括:
在所述图像内随机选择所述位置,使得所述第一扰动区域、所述第二扰动区域、所述第三扰动区域和所述第四扰动区域不延伸到所述图像外部。
20.根据权利要求15所述的方法,其中通过将所述单应性应用于所述图像来生成所述变换后的图像包括:
将所述单应性的逆量应用于所述图像以生成所述变换后的图像。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662339799P | 2016-05-20 | 2016-05-20 | |
US62/339,799 | 2016-05-20 | ||
PCT/US2017/033661 WO2017201487A1 (en) | 2016-05-20 | 2017-05-19 | Method and system for performing convolutional image transformation estimation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109154973A true CN109154973A (zh) | 2019-01-04 |
CN109154973B CN109154973B (zh) | 2021-10-26 |
Family
ID=60326208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780030961.9A Active CN109154973B (zh) | 2016-05-20 | 2017-05-19 | 执行卷积图像变换估算的方法和系统 |
Country Status (9)
Country | Link |
---|---|
US (3) | US10489708B2 (zh) |
EP (1) | EP3459003B1 (zh) |
JP (3) | JP6821707B2 (zh) |
KR (4) | KR102506459B1 (zh) |
CN (1) | CN109154973B (zh) |
AU (2) | AU2017267983B2 (zh) |
CA (1) | CA3021085A1 (zh) |
IL (2) | IL262886B (zh) |
WO (1) | WO2017201487A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111027421A (zh) * | 2019-11-26 | 2020-04-17 | 西安宏规电子科技有限公司 | 一种基于图的直推式半监督行人再识别方法 |
US11593654B2 (en) | 2016-05-20 | 2023-02-28 | Magic Leap, Inc. | System for performing convolutional image transformation estimation |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10304191B1 (en) | 2016-10-11 | 2019-05-28 | Zoox, Inc. | Three dimensional bounding box estimation from two dimensional images |
IL266595B (en) | 2016-11-16 | 2022-08-01 | Magic Leap Inc | Thermal management systems for wearable components |
US11347054B2 (en) | 2017-02-16 | 2022-05-31 | Magic Leap, Inc. | Systems and methods for augmented reality |
US10783393B2 (en) | 2017-06-20 | 2020-09-22 | Nvidia Corporation | Semi-supervised learning for landmark localization |
JP7091209B2 (ja) * | 2018-01-29 | 2022-06-27 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 情報処理方法及び情報処理システム |
US11875251B2 (en) * | 2018-05-03 | 2024-01-16 | Samsung Electronics Co., Ltd. | Neural network method and apparatus |
JP6967150B2 (ja) * | 2018-06-18 | 2021-11-17 | 株式会社ソニー・インタラクティブエンタテインメント | 学習装置、画像生成装置、学習方法、画像生成方法及びプログラム |
CN109670532B (zh) * | 2018-11-23 | 2022-12-09 | 腾讯医疗健康(深圳)有限公司 | 生物体器官组织图像的异常识别方法、装置及系统 |
US11995854B2 (en) * | 2018-12-19 | 2024-05-28 | Nvidia Corporation | Mesh reconstruction using data-driven priors |
CN110827375B (zh) * | 2019-10-31 | 2023-05-30 | 湖北大学 | 一种基于微光图像的红外图像真彩着色方法及系统 |
EP4073690A4 (en) * | 2019-12-12 | 2023-06-07 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | TARGET DETECTION METHOD, TERMINAL, AND MEDIUM |
KR102343363B1 (ko) * | 2020-03-06 | 2021-12-24 | 경북대학교 산학협력단 | 2차원 손뼈 투영 이미지로부터 회전된 2차원 손뼈 투영 이미지 생성 방법, 이를 수행하기 위한 기록 매체 및 장치 |
US11830160B2 (en) * | 2020-05-05 | 2023-11-28 | Nvidia Corporation | Object detection using planar homography and self-supervised scene structure understanding |
CN112016612A (zh) * | 2020-08-26 | 2020-12-01 | 四川阿泰因机器人智能装备有限公司 | 一种基于单目深度估计的多传感器融合slam方法 |
US11899095B2 (en) * | 2020-09-17 | 2024-02-13 | Texas Instruments Incorporated | Doppler processing in frequency-modulated continuous wave radar systems using dither |
CN113361542B (zh) * | 2021-06-02 | 2022-08-30 | 合肥工业大学 | 一种基于深度学习的局部特征提取方法 |
KR20230030996A (ko) | 2021-08-26 | 2023-03-07 | 현대자동차주식회사 | 객체 추적 장치 및 방법 |
US11688169B1 (en) * | 2022-08-29 | 2023-06-27 | Bnsf Railway Company | Drone based automated yard check |
US20240080421A1 (en) * | 2022-09-07 | 2024-03-07 | Texas Instruments Incorporated | System and method for projector geometric correction |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156995A (zh) * | 2011-04-21 | 2011-08-17 | 北京理工大学 | 一种运动相机下的视频运动前景分割方法 |
US20120243741A1 (en) * | 2011-02-16 | 2012-09-27 | Siemens Corporation | Object Recognition For Security Screening and Long Range Video Surveillance |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050089213A1 (en) * | 2003-10-23 | 2005-04-28 | Geng Z. J. | Method and apparatus for three-dimensional modeling via an image mosaic system |
US9064161B1 (en) * | 2007-06-08 | 2015-06-23 | Datalogic ADC, Inc. | System and method for detecting generic items in image sequence |
JP5600954B2 (ja) | 2010-02-10 | 2014-10-08 | セイコーエプソン株式会社 | 検査システム、その方法及びプログラム |
US20120092329A1 (en) | 2010-10-13 | 2012-04-19 | Qualcomm Incorporated | Text-based 3d augmented reality |
US10027952B2 (en) * | 2011-08-04 | 2018-07-17 | Trx Systems, Inc. | Mapping and tracking system with features in three-dimensional space |
US8965057B2 (en) * | 2012-03-02 | 2015-02-24 | Qualcomm Incorporated | Scene structure-based self-pose estimation |
US8818133B2 (en) * | 2012-07-11 | 2014-08-26 | Raytheon Company | Point cloud construction with unposed camera |
EP2951811A4 (en) * | 2013-01-03 | 2016-08-17 | Meta Co | DIGITAL EYES FOR EXTRAMISSIVE SPATIAL IMAGING, PROCESSES AND SYSTEMS FOR VIRTUAL OR ENLARGED VISIBILITY, MANIPULATION, PRODUCTION OR INTERACTION WITH OBJECTS, MATERIALS, OR OTHER UNITS |
KR102028952B1 (ko) * | 2013-02-21 | 2019-10-08 | 삼성전자주식회사 | 휴대 단말에 의해 촬영된 이미지들을 합성하는 방법, 기계로 읽을 수 있는 저장 매체 및 휴대 단말 |
US9558426B2 (en) * | 2014-04-24 | 2017-01-31 | Nant Holdings Ip, Llc | Robust feature identification for image-based object recognition |
JP2016015037A (ja) * | 2014-07-02 | 2016-01-28 | キヤノン株式会社 | 情報処理装置及びその制御方法、並びに、ビデオカメラ |
US9530235B2 (en) * | 2014-11-18 | 2016-12-27 | Google Inc. | Aligning panoramic imagery and aerial imagery |
CN106485192B (zh) * | 2015-09-02 | 2019-12-06 | 富士通株式会社 | 用于图像识别的神经网络的训练方法和装置 |
US20170337682A1 (en) * | 2016-05-18 | 2017-11-23 | Siemens Healthcare Gmbh | Method and System for Image Registration Using an Intelligent Artificial Agent |
KR102506459B1 (ko) | 2016-05-20 | 2023-03-03 | 매직 립, 인코포레이티드 | 콘볼루셔널 이미지 변환 추정을 수행하기 위한 방법 및 시스템 |
WO2017210419A1 (en) * | 2016-06-03 | 2017-12-07 | Magic Leaf, Inc. | Augmented reality identity verification |
US10477178B2 (en) * | 2016-06-30 | 2019-11-12 | Massachusetts Institute Of Technology | High-speed and tunable scene reconstruction systems and methods using stereo imagery |
US10467768B2 (en) * | 2017-04-07 | 2019-11-05 | Intel Corporation | Optical flow estimation using 4-dimensional cost volume processing |
US10783393B2 (en) * | 2017-06-20 | 2020-09-22 | Nvidia Corporation | Semi-supervised learning for landmark localization |
-
2017
- 2017-05-19 KR KR1020227030570A patent/KR102506459B1/ko active IP Right Grant
- 2017-05-19 EP EP17800299.4A patent/EP3459003B1/en active Active
- 2017-05-19 KR KR1020187035437A patent/KR102218603B1/ko active IP Right Grant
- 2017-05-19 IL IL262886A patent/IL262886B/en unknown
- 2017-05-19 KR KR1020217004440A patent/KR102347204B1/ko active IP Right Grant
- 2017-05-19 WO PCT/US2017/033661 patent/WO2017201487A1/en unknown
- 2017-05-19 CN CN201780030961.9A patent/CN109154973B/zh active Active
- 2017-05-19 JP JP2018560637A patent/JP6821707B2/ja active Active
- 2017-05-19 US US15/600,545 patent/US10489708B2/en active Active
- 2017-05-19 CA CA3021085A patent/CA3021085A1/en active Pending
- 2017-05-19 AU AU2017267983A patent/AU2017267983B2/en active Active
- 2017-05-19 KR KR1020217043357A patent/KR102442018B1/ko active IP Right Grant
-
2019
- 2019-09-30 US US16/588,505 patent/US11062209B2/en active Active
-
2020
- 2020-03-12 JP JP2020043362A patent/JP7005669B2/ja active Active
-
2021
- 2021-06-07 US US17/341,079 patent/US11593654B2/en active Active
-
2022
- 2022-01-05 JP JP2022000411A patent/JP7241210B2/ja active Active
- 2022-06-29 AU AU2022204613A patent/AU2022204613A1/en not_active Abandoned
- 2022-08-01 IL IL295245A patent/IL295245B2/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120243741A1 (en) * | 2011-02-16 | 2012-09-27 | Siemens Corporation | Object Recognition For Security Screening and Long Range Video Surveillance |
CN102156995A (zh) * | 2011-04-21 | 2011-08-17 | 北京理工大学 | 一种运动相机下的视频运动前景分割方法 |
Non-Patent Citations (1)
Title |
---|
SIMON BAKER,IAIN MATTHEWS: "Equivalence and efficiency of image alignment algorithms", 《IEEE》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11593654B2 (en) | 2016-05-20 | 2023-02-28 | Magic Leap, Inc. | System for performing convolutional image transformation estimation |
CN111027421A (zh) * | 2019-11-26 | 2020-04-17 | 西安宏规电子科技有限公司 | 一种基于图的直推式半监督行人再识别方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109154973A (zh) | 执行卷积图像变换估算的方法和系统 | |
CN111797753B (zh) | 图像驱动模型的训练、图像生成方法、装置、设备及介质 | |
US10254845B2 (en) | Hand gesture recognition for cursor control | |
US8811674B2 (en) | Incorporating video meta-data in 3D models | |
CN109816769A (zh) | 基于深度相机的场景地图生成方法、装置及设备 | |
CN109242961A (zh) | 一种脸部建模方法、装置、电子设备和计算机可读介质 | |
CN109815843A (zh) | 目标检测方法及相关产品 | |
Zhang et al. | End-to-end learning of self-rectification and self-supervised disparity prediction for stereo vision | |
CN113240802B (zh) | 三维重建的全屋虚拟装维方法、装置、设备及存储介质 | |
Schindler | Geometry and construction of straight lines in log-polar images | |
US20240127573A1 (en) | Device and method with two-dimensional scene reconstruction for dynamic three-dimensional space | |
CN114445676A (zh) | 一种手势图像处理方法、存储介质及设备 | |
CN118015167A (zh) | 基于光流的单视频双手动态三维运动捕捉方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |