CN115362481A - 运动模糊鲁棒图像特征描述符 - Google Patents
运动模糊鲁棒图像特征描述符 Download PDFInfo
- Publication number
- CN115362481A CN115362481A CN202180020889.8A CN202180020889A CN115362481A CN 115362481 A CN115362481 A CN 115362481A CN 202180020889 A CN202180020889 A CN 202180020889A CN 115362481 A CN115362481 A CN 115362481A
- Authority
- CN
- China
- Prior art keywords
- motion
- image
- keypoint
- descriptors
- computer system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- 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/13—Edge detection
-
- 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
-
- 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/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/30—Subject of image; Context of image processing
- G06T2207/30241—Trajectory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Biodiversity & Conservation Biology (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- General Engineering & Computer Science (AREA)
- Image Analysis (AREA)
Abstract
公开了图像处理方法、计算机系统、以及计算机存储介质。在一个示例中,在图像中选择关键点,并将不同的运动模糊应用于图像以生成多个模糊图像。基于多个模糊图像中的每个模糊图像中的关键点的邻域,以多个不同尺度中的每个尺度训练人工神经网络,以生成关键点描述符。
Description
背景技术
增强现实(augmented reality,AR)将虚拟内容叠加在真实世界环境的用户视图上。随着AR软件开发工具包(software development kit,SDK)的发展,移动行业将智能手机AR引入主流。AR SDK通常提供六自由度(six degrees-of-freedom,6DoF)追踪能力。用户可以使用智能手机的摄像头扫描环境,智能手机实时执行视觉惯性里程计(visualinertial odometry,VIO)。在连续追踪摄像头姿势后,即可将虚拟物体放置到AR场景中,以创造一种真实物体和虚拟物体融合在一起的错觉。
关键点(或“兴趣点”)是图像中的点,该点与图像中其他点不同,具有明确定义的空间位置或以其他方式定位于图像内,并且在局部变化和全局变化(例如,尺度变化、光照变化等)下是稳定的。关键点描述符可以定义为多元素向量,该向量描述图像中关键点的邻域(通常在尺度空间中)。关键点描述符框架的示例包括尺度不变特征变换(Scale-Invariant Feature Transform,SIFT)、加速鲁棒特征(Speeded-Up Robust Features,SURF)和二进制鲁棒不变可缩放关键点(Binary Robust Invariant Scalable Keypoints,BRISK)。图像特征可以定义为关键点和相应的关键点描述符。
在不同图像(例如,视频序列的不同帧)之间匹配特征是许多图像处理应用的重要部分。在图像传感器移动时采集的图像可能具有明显的运动模糊。由于大多数广泛使用的图像特征表征对运动模糊非常敏感,因此,当从具有不同运动模糊的图像中提取特征时,特征匹配难以成功。因此,本领域需要改进的执行特征匹配的方法。
发明内容
本发明一般涉及与图像处理有关的方法和系统。更具体地,本发明实施例提供了用于在增强现实应用中执行特征匹配的方法和系统。本发明实施例可用于增强现实和基于计算机的显示系统中的各种应用。
根据一般配置,生成对运动模糊具有鲁棒性的关键点描述符的方法包括:选择图像中的多个关键点;对于互不相同的多个运动模糊中的每个运动模糊,将多个运动模糊中的每个运动模糊应用于图像,以生成多个模糊图像;基于多个模糊图像中的每个模糊图像中的关键点的邻域,以多个不同尺度中的每个尺度训练人工神经网络(artificial neuralnetwork,ANN),以生成关键点描述符。在该方法中,训练的标准是最小化生成的关键点描述符的实例之间的距离测量,其中,上述实例对应于多个模糊图像中的不同图像中的同一关键点。
根据另一种一般配置,计算机系统包括一个或多个处理器以及一个或多个存储器,存储器用于存储计算机可读指令,当由一个或多个处理器时,上述指令将计算机系统配置为:选择图像中的多个关键点;对于互不相同的多个运动模糊中的每个运动模糊,将多个运动模糊中的每个运动模糊应用于图像,以生成多个模糊图像;基于多个模糊图像中的每个模糊图像中的关键点的邻域,以多个不同尺度中的每个尺度训练人工神经网络(ANN),以生成关键点描述符。在该系统中,训练的标准是最小化生成的关键点描述符的实例之间的距离测量,其中,上述实例对应于多个模糊图像中的不同图像中的同一关键点。
根据另一种一般配置,一个或多个非暂时性计算机存储介质存储有指令,当由计算机系统执行时,该指令使计算机系统执行以下操作:选择图像中的多个关键点;对于互不相同的多个运动模糊中的每个运动模糊,将多个运动模糊中的每个运动模糊应用于图像,以生成多个模糊图像;基于多个模糊图像中的每个模糊图像中的关键点的邻域,以多个不同尺度中的每个尺度训练人工神经网络(ANN),以生成关键点描述符。训练的标准是最小化生成的关键点描述符的实例之间的距离测量,其中,上述实例对应于多个模糊图像中的不同图像中的同一关键点。
本发明实现了相对于传统技术的许多优点。例如,本公开实施例涉及的方法和系统使用深度学习网络来生成对运动模糊具有鲁棒性的关键点描述符,从而应对当摄像帧中存在不同的运动模糊时对图像特征匹配的挑战。例如,本发明实施例可以用于改进AR/VR应用中的定位和建图的性能。此外,在从采集的具有不同图像运动的摄像帧中提取特征时,本发明的实施例可以增加特征匹配的准确性。因此,由于可以有效地使用一个或多个先前浪费的模糊摄像帧进行定位和建图估计,因此在设备进行快速运动时的SLAM计算可以更准确、更稳定。因此,本发明的实施例避免了现有方法中例如当运动很轻微或图像被相似运动模糊时具有较低匹配精度的缺点。本发明的这些和其他实施例及其许多优点和特征将结合下面的文字和附图进行更详细的描述。
附图说明
图1示出了根据本发明实施例的图像处理方法的简化流程图。
图2A示出了根据本发明实施例的图像的示例。
图2B示出了根据本发明实施例的图2A所示图像中的关键点的示例。
图3示出了六自由度(six degrees of freedom,6DOF)的示例图。
图4示出了根据本发明实施例的用于生成训练数据的方法的简化流程图,该训练数据用于训练网络。
图5示出了根据本发明实施例的训练人工神经网络(artificial neuralnetwork,ANN)以生成关键点描述符的任务示例的简化流程图。
图6示出了根据本发明实施例的基于ANN的关键点描述符比较模块的操作的简化流程图。
图7示出了根据本发明实施例的训练关键点描述符比较模块的ANN的方法的简化流程图。
图8A和图8B示出了根据本发明实施例的训练标准的示例。
图9示出了根据本发明实施例的装置的简化框图。
图10示出了根据本发明实施例的关键点描述符转换器的简化示意图。
图11示出了根据本发明实施例的图像处理方法的简化流程图。
图12示出了根据本发明实施例的执行图像处理的方法的简化流程图。
图13示出了根据本发明实施例的训练ANN的方法的简化流程图。
图14示出了根据本发明实施例的装置的简化框图。
图15示出了根据本发明实施例的计算机系统的框图。
具体实施方式
在以下描述中,将描述各种实施例。出于解释的目的,阐述了具体配置和细节以便提供对实施例的透彻理解。然而,对于本领域技术人员来说显而易见的是,实施例也可以在没有这些具体细节的情况下实施。此外,为了不使所描述的实施例模糊,可以省略或简化众所周知的特征。
许多应用非常依赖图像特征匹配的性能。这些应用可以包括图像对齐(例如图像拼接、图像配准、全景马赛克)、三维(three-dimensional,3D)重构(例如立体视觉)、索引和内容检索、运动追踪、物体识别等。
许多增强现实或虚拟现实(augmented reality/virtual reality,AR/VR)应用的基本要求是确定设备在3D空间中的位置和方向。这些应用可以使用同时定位与建图(simultaneous localization and mapping,SLAM)算法确定设备的实时位置和方向,并推导设备操作的环境(或场景)的结构。在SLAM应用的一个示例中,来自设备摄像头的视频帧序列被输入执行SLAM算法的模块。从帧中提取特征,并在不同的帧之间匹配特征,SLAM算法搜索与拍摄场景中的同一点对应的匹配特征。通过在不同帧之间追踪特征的位置,SLAM模块可以确定场景内的图像传感器的运动,并推导出场景的主要结构。
在传统特征匹配中,对多个图像中的每个图像(例如,对视频序列的每个帧)执行关键点检测,并且针对每个检测到的关键点从其邻域(通常在尺度空间中)计算相应的关键点描述符。通常,针对每个图像检测到的关键点的数量至少为几十个,可能高达五百个或更多,并且用来计算关键点描述符的邻域通常具有围绕关键点大约十五个像素的半径。来自第一图像I0(例如,视频序列的一帧)的关键点描述符f0和来自第二图像I1(例如,视频序列的另一帧,例如序列中连续的帧)的关键点描述符f1用于计算匹配分数。分数度量通常是描述符空间中的关键点描述符f0和f1之间的距离d(f0,f1),例如根据以下任何示例距离度量的距离。对两个图像中的不同关键点描述符对,重复上述分数计算,并且可以对得到的分数进行阈值化,以识别匹配特征,例如,以确定两个图像中的特定关键点描述符对(因此,两个图像中的对应特征)是否匹配。在典型的SLAM应用中,一对匹配的特征对应于物理环境中的单个点,这种对应关系会产生数学约束。SLAM计算的后期可以推导出摄像头运动和环境模型,作为满足多个约束(包括由匹配特征对产生的约束)的最佳解决方案。
可以用于匹配分数计算的距离度量的示例包括欧几里得距离、城市街区(city-block)距离、卡方(chi-squared)距离、余弦距离和闵可夫斯基(Minkowski)距离。假设f0和f1是n维向量,f0=x0,1,x0,2,x0,3,...,x0,n,f1=x1,1,x1,2,x1,3,...,x1,n,根据这些距离度量,可以如下描述f0和f1之间的距离d(f0,f1):
可以根据诸如以下的过程来对得到的分数进行阈值化,以确定相应的特征是否匹配:
其中,T表示阈值。
在典型的特征匹配应用中,在视频序列的连续帧对上(例如,在每一个连续帧对上),针对多个不同的关键点描述符对(f0,f1)重复上述特征点描述符匹配过程。在一个示例中,对于第一图像中检测到的多个关键点中的每个关键点(每个关键点在第一图像中具有对应位置),对每一个关键点描述符对重复关键点描述符匹配过程,其中,每个关键点描述符对包括第一图像中的该关键点的描述符和第二图像中在相同位置的阈值距离(例如,20个像素)内的关键点的描述符。
关键点描述符匹配不限于任何特定大小或格式的源图像(即第一图像I0和第二图像I1),这里提供典型特征匹配应用中的示例。大多数当前的AR/VR设备用于采集VGA格式的视频(即,帧尺寸为640×480像素),每个像素都有红、绿、蓝分量。此类设备中常见的最大帧格式为1280×720像素,因此在典型应用中,第一图像和第二图像中的每个图像的最大尺寸约为1000×2000像素。在典型应用中,因为较小的图像尺寸可能不足以支持诸如SLAM之类的算法,故第一图像和第二图像的最小尺寸约为VGA的四分之一(即320×240像素)。
关键点描述符的计算通常使用现有的关键点描述符框架来实现,例如尺度不变特征变换(Scale-Invariant Feature Transform,SIFT)、加速鲁棒特征(Speeded-Up RobustFeatures,SURF)、二进制鲁棒不变可缩放关键点(Binary Robust Invariant ScalableKeypoints,BRISK)等。这样的任务可以包括计算关键点的方向,这可以包括确定围绕关键点的像素邻域(也称为“图像块(patch)”)如何定向或在什么方向上定向。计算关键点的方向可以包括检测patch中梯度角度的最主要方向,这通常在尺度空间的不同尺度下对patch执行。例如,SIFT框架基于关键点的16个局部邻域中像素的梯度方向,为每个关键点分配128维的特征向量。一些关键点描述符框架(例如,SIFT和SURF)包括关键点检测和关键点描述符计算。其他关键点描述符框架(例如,二进制鲁棒独立基本特征(Binary RobustIndependent Elementary Features,BRIEF))包括关键点描述符计算,但不包括关键点检测。
AR/VR设备的示例包括手机和头戴式设备(例如,AR或“智能”眼镜)。鉴于AR/VR设备的性质,会在图像传感器(例如,视频摄像头)移动时采集许多视频帧。因此,采集到的帧可能具有明显的运动模糊。如果图像传感器在采集图像I0期间的运动与图像传感器在采集图像I1期间的运动相同,并且描述符f0和f1中的每一个对应于两个图像中的相同关键点,那么描述符f0和f1的值趋于相似,则f0和f1之间的计算距离很小。然而,在AR/VR的实际应用中,图像传感器在采集每张图像时一般会经历不同的运动,因此描述符f0和f1可能会因不同的运动模糊而失真。几乎所有广泛使用的图像特征(例如,SIFT、SURF、BRISK)都对运动模糊非常敏感,从而任何明显的运动模糊(例如,五个像素或更多的模糊)都可能导致关键点描述符失真。结果,即使描述符f0和f1对应同一关键点,描述符的值也可能差异很大。当从具有不同运动模糊的图像中提取这些特征并使用如上所述的评分度量时,特征匹配可能会失败。
对于图像传感器可能处于运动状态的许多应用(例如,AR/VR应用),可以量化每个采集间隔期间的图像运动。例如,可以根据设备的一个或多个运动传感器的输入来估计运动方向和幅度,和/或可以根据视频序列中时间相邻的两个帧计算运动方向和幅度。运动传感器(可以包括一个或多个陀螺仪、加速度计和/或磁力计)可以指示设备的位移和/或方向的变化,并且可以在惯性测量单元(inertial measurement unit,IMU)内实现。
处理运动模糊的技术的示例可以包括:
1)不匹配:由于在模糊图像中,图像特征的匹配变得很不可靠,一种可能的方案是完全放弃图像特征匹配,至少在具有显著且不同的运动模糊的图像对之间不进行匹配。
2)首先去模糊图像:在将图像用于特征提取之前,先进行去模糊操作,去除图像中的运动模糊。
3)在计算关键点描述符时补偿运动模糊:在计算关键点描述符时,使用图像运动的估计来补偿运动模糊的影响。该方法与“首先去模糊图像”的不同之处在于,运动模糊的去除或补偿是在关键点的邻域而不是整个图像上执行的。
4)提取模糊不变(Blur-Invariant)特征:当从关键点的邻域计算关键点描述符时,只使用模糊不变的分量,而忽略那些对运动模糊敏感的分量。因此,即使图像具有运动模糊,关键点描述符也将大致保持不变。
5)运动模糊鲁棒图像特征匹配:在许多特征匹配应用中(例如,在大多数SLAM应用中),运动模糊可以被量化。因此,可以设计基于深度学习的运动模糊转换器来模拟由运动模糊引起的描述符失真。在进行特征匹配之前,对要匹配的描述符中的至少一个进行转换,从而确保输入的描述符包含相同的运动模糊影响。在另一示例中,可以设计基于深度学习的运动模糊感知(motion-blur-aware)描述符比较模块来确定在给定已知的图像运动下输入特征是否匹配。
以上方案的缺点可能包括:
1)不匹配:为了防止模糊图像中特征的错误匹配降低SLAM中的估计的质量,当检测到显著的图像运动时,可以选择完全不进行特征匹配。例如,可以选择在这些时刻仅使用运动传感器输出来执行SLAM。然而,这种方法会导致这些时刻的图像传感器输出完全被浪费,进而SLAM计算可能变得不太准确和不太稳定。
2)首先去模糊图像:图像去模糊通常涉及大量计算。由于SLAM计算通常在移动平台上进行,因此去模糊处理所需的额外计算可能并不总是可用的或负担得起的。此外,去模糊操作往往会向原始图像引入新的伪影,这反过来可能会对图像特征匹配的精度产生不利影响。
3)在计算关键点描述符时补偿运动模糊:因为只涉及关键点的邻域,在计算关键点描述符时补偿运动模糊通常比对整个图像去模糊需要更少的额外计算。然而,仍然存在将新的伪影引入图像的缺点。
4)提取模糊不变特征:由于该方法忽略了对运动模糊敏感的分量,因此可用于执行特征匹配的信息变少。换句话说,这种方法提高了相机运动程度较大的情况下的匹配精度和稳定性,但代价是可能会降低其他情况(例如,运动不明显的情况)下的匹配性能。
5)运动模糊鲁棒图像特征匹配:这些提出的解决方案在关键点描述符匹配阶段进行了改进。然而,由于传统的关键点描述符在设计时没有考虑摄像头正在进行的运动,因此这些描述符很容易由于运动模糊而失真。因此,匹配性能仍然有限。这种方法在匹配评分阶段考虑了图像运动,以解决上面讨论的匹配失败。然而,为了充分发挥改进评分方案的潜力,可能需要设计一种对运动模糊的敏感性低于传统描述符的新描述符。
可能需要增加关键点描述对运动模糊的鲁棒性。因此,如本文所公开的,本文描述的使用适当的系统、方法、装置、设备等实现的实施例可以支持在易于出现运动模糊的应用中提高特征匹配操作的准确性。本文所述的实施例可以在使用特征匹配的多种应用中的任一种实施,包括图像对齐(例如,图像拼接、图像配准、全景马赛克)、3D重建(例如,立体视觉)、索引和内容检索、内窥镜成像、运动跟踪、物体跟踪、物体识别、自动导航、SLAM等。
根据本发明实施例,训练深度学习网络并用其生成对运动模糊具有鲁棒性的关键点描述符,以应对摄像帧中存在不同的运动模糊对图像特征匹配的挑战。例如,本发明实施例可以用于改进AR/VR应用中的定位和建图的性能。此外,在从采集的具有不同图像运动的摄像帧中提取特征时,本发明的实施例可以增加特征匹配的准确性。因此,由于可以有效地使用一个或多个先前浪费的模糊摄像帧进行定位和建图估计,故在设备进行快速运动时的SLAM计算可以更准确、更稳定。因此,本发明的实施例避免了现有方法中例如当运动很轻微或图像被相似运动模糊时具有较低匹配精度的缺点。
图1示出了根据本发明实施例的生成对运动模糊具有鲁棒性的关键点描述符的方法的简化流程图。图1所示的生成对运动模糊具有鲁棒性的关键点描述符的方法100包括任务110、120和130。任务110选择图像中对应的多个关键点。对于互不相同的多个运动模糊中的每一个,任务120将多个运动模糊中的每个运动模糊应用于图像以生成多个模糊图像。任务130基于多个模糊图像中的每一个中的关键点的邻域,以多个不同尺度中的每一个尺度训练人工神经网络(artificial neural network,ANN)以生成关键点描述符,其中,训练的标准是最小化生成的关键点描述符的实例之间的距离测量,这些实例对应于多个模糊图像中的不同图像中的同一特征。
应当理解,图1中所示的具体步骤提供了根据本发明实施例的生成对运动模糊具有鲁棒性的关键点描述符的特定方法。如上所述,根据替代实施例,也可以执行其他步骤序列。例如,本发明的替代实施例可以以不同的顺序执行上述步骤。此外,图1中所示的各个步骤可以包括多个子步骤,这些子步骤可以根据各个步骤以各种顺序执行。此外,可以根据特定应用添加或删除额外的步骤。本领域的普通技术人员将认识到许多变化、修改和替代。
关键点是图像中的点,其与图像中其他点不同,具有明确定义的空间位置或以其他方式定位于图像内,并且在局部变化和全局变化(例如,尺度变化、亮度变化等)下是稳定的。
图2A示出了根据本发明实施例的图像(例如,视频序列的帧)的示例。图2B示出了根据本发明实施例的图2A所示图像中的关键点的示例。参考图2B,图2B中所示的圆圈指示图像中若干关键点示例210-220的位置。在典型的特征匹配应用中,在每个图像中检测到的关键点的数量至少为十二个、二十五个或五十个,并且可能高达一百、两百、五百个或更多。
参考图1,任务110选择图像中对应的多个关键点。可用于实现任务110的关键点检测器的示例包括角点检测器(corner detector)(例如,Harris角点检测器、来自加速分段测试的特征(Features from Accelerated Segment Test,FAST))和斑点检测器(blobdetector)(例如,高斯拉普拉斯算子(Laplacian of Gaussian,LoG)、高斯差(Differenceof Gaussians,DoG)、黑森行列式(Determinant of Hessian,DoH))。这样的关键点检测器可以用于以不同的模糊宽度和不同的分辨率对图像进行模糊(例如,高斯模糊)和重采样以创建尺度空间,并在不同尺度下检测角点和/或斑点。例如,任务100可以包括对原始图像进行下采样以创建不同分辨率的版本。例如,对于图像的原始分辨率为640×480像素的情况,可能需要下采样以获得320×240像素和160×120像素等分辨率的相同图像。对于相同大小的邻域窗口,较低的分辨率允许覆盖更大的场景区域。
再次参考图1,对于互不相同的多个运动模糊中的每一个,任务120将多个运动模糊中的每个运动模糊应用于图像以生成多个模糊图像。可能希望训练数据足以让训练后的ANN封装复杂的逻辑和计算。图像运动模糊可以通过图像处理操作(如方向滤波等)来模拟,并且可以使用一种或多种这样的操作来产生大量的合成训练数据。
多个运动模糊中的每一个可以被实现为运动描述符,运动描述符描述一个、两个或三个空间维度的坐标空间中的轨迹或路径。在一个示例中,这样的轨迹可以描述为二维图像平面中的一系列位置,并且每个位置可以表示为相对于先前采样位置的运动矢量(例如,将关键点的位置设为起始位置)。在另一示例中,这样的轨迹可以被描述为采集图像的图像传感器的一个或多个位置的序列,这些位置在相应的采集周期内以均匀的间隔采样,并且每个采样位置可以表示为相对于先前采样位置的运动矢量(例如,将图像传感器在采集周期开始时的位置作为坐标空间的原点)。
可能希望基于在实际图像采集期间收集的数据来计算运动模糊,上述数据例如是在可以应用由方法100生成的描述符的特征匹配应用的实际实例期间收集的数据。例如,可以从运动传感器(例如,IMU)的输出和/或从视频序列中的相邻帧(例如,紧接在正在计算的帧之前和之后采集的帧)计算运动模糊。视频序列中每一帧的采集周期通常是帧率的倒数,但采集周期可以更短。典型视频序列(例如,由Android手机采集)的帧率为每秒30帧(frames per second,fps)。iPhone或头戴式设备的帧率可高达120fps。
每个运动描述符可以进一步实现为描述六自由度(6DOF)的运动。除了三个空间维度之外,6DOF的运动可以包括围绕这些维度的一个或多个轴中的每一个轴的旋转。如图3所示,其示出了6DOF的图示,这些旋转可以标记为倾斜(tilt)、俯仰(pitch)和偏航(yaw)。例如,对于图像传感器的每个采样位置,运动描述符可以包括图像传感器的参考方向(例如,注视方向)相对于先前采样位置方向的方向(例如,令参考方向为采集周期开始时的方向)。
再次参考图1,任务130训练人工神经网络(ANN)以生成关键点描述符。在任务130中执行的训练基于多个模糊图像的每一个中的关键点的邻域并且以多个不同尺度的每一个尺度进行。对于任务110包括以不同的模糊宽度和不同的分辨率对图像进行模糊和重采样以创建尺度空间的情况,可以从创建的同一尺度空间获得关键点的邻域。替代地(或在需要不同尺度空间的情况下),任务130可包括以不同模糊宽度和不同分辨率对图像进行模糊(例如,高斯模糊)和重采样以创建尺度空间。
在一个示例中,ANN的输入是不同分辨率下关键点的邻域窗口的像素值。每个分辨率下的实际窗口大小的选择可以考虑匹配和计算性能。较大的窗口通常覆盖较大的邻域区域,但也会使描述符生成网络更大。因此,可能需要更多的计算来生成相应的描述符。
ANN的输出是多元素向量,该多元素向量即生成的描述符。描述符的实际长度可以根据匹配和计算性能的考虑,以及在保存和检索大量描述符时的内存使用和内存访问开销来确定。虽然较长的描述符通常封装更多的邻域信息,但也会使关键点描述符比较模块600(如下所述)中的比较网络更大。因此,在匹配描述符时可能会消耗更多的计算。此外,可能需要更多内存和/或更多数据带宽来保存和检索更长的描述符。当描述符的数量很大时,内存和/或带宽开销可能显著增加。
图4示出了根据本发明实施例为任务130生成训练数据的方法的简化流程图。对于多个训练图像420中的每一个,检测422训练图像中的多个关键点(例如,如本文参考任务110所描述的)。多个运动模糊M1到Mn也被应用424-1至424-n到训练图像420以产生对应的多个模糊图像B1到Bn。从多个模糊图像B1至Bn的每一个中,针对检测到的关键点中的每一个,以多个不同尺度中的每一个尺度提取邻域以得到对应的一组邻域S1至Sn。邻域的数量可能因组而异:例如,如果相应的运动模糊使得关键点的邻域包括超出图像边界的区域,则可以从该组中省略该邻域。
在任务130中执行的训练的标准是最小化生成的关键点描述符的实例之间的距离测量,其中,生成的关键点描述符的实例对应于多个模糊图像的不同图像中的相同关键点。可以在任务130中使用的距离度量的示例包括欧几里得距离、卡方距离等。
应当理解,图4中所示的具体步骤提供了根据本发明实施例的生成训练数据的特定方法。如上所述,根据替代实施例,也可以执行其他步骤序列。例如,本发明的替代实施例可以以不同的顺序执行上述步骤。此外,图4中所示的各个步骤可以包括多个子步骤,这些子步骤可以根据各个步骤以各种顺序执行。此外,可以根据特定应用添加或删除额外的步骤。本领域的普通技术人员将认识到许多变化、修改和替代。
图5示出了根据本发明实施例的训练人工神经网络(ANN)500以生成关键点描述符的任务130的示例的简化流程图。首先,被训练的ANN 500从训练数据中接收来自模糊图像Bj(即,来自集合Sj)的关键点i的邻域为输入,并生成描述符Dij作为输出。接着,被训练的ANN 500从训练数据中接收来自另一模糊图像Bk(即,来自集合Sk)的关键点i的邻域为输入,并生成描述符Dik作为输出。
损失函数选择器510比较与两个生成的描述符Dij和Dik对应的运动模糊Mj和Mk。如果选择器510确定运动模糊相似(例如,运动模糊之间的距离不超过阈值),则选择第一损失函数512。在一个示例中,第一损失函数412用于最小化生成的描述符之间的距离(例如,欧几里得距离、卡方距离等)。
如果选择器510确定运动模糊不同(例如,运动模糊之间的距离超过阈值),则选择第二损失函数514。在一个示例中,第二损失函数514用于最大化匹配概率,如基于ANN的关键点描述符比较模块600所指示的匹配概率。虽然可以省略第一损失函数512而仅使用第二损失函数514,但对于关键点描述符f0和f1来自具有相似运动模糊的图像的情况(例如,在缓慢的摄像头运动时),使用基于距离的损失函数512可以预期减少计算需求。相比于计算两个关键点描述符之间的距离,通过深度学习网络进行推导通常涉及更大量的计算。
应当理解,图5中所示的具体步骤提供了根据本发明实施例的训练ANN以生成关键点描述符的特定方法。如上所述,根据替代实施例,也可以执行其他步骤序列。例如,本发明的替代实施例可以以不同的顺序执行上述步骤。此外,图5中所示的各个步骤可以包括多个子步骤,这些子步骤可以根据各个步骤以各种顺序执行。此外,可以根据特定应用添加或删除额外的步骤。本领域的普通技术人员将认识到许多变化、修改和替代。
图6示出了根据本发明实施例的基于ANN的关键点描述符比较模块600的操作的简化流程图。如图6所示,关键点描述符比较模块600用于确定两个关键点描述符是否匹配,即使这些特征属于具有不同图像运动的两个图像。如图6所示,关键点描述符比较模块600接收四个输入,包括被比较的两个关键点描述符(记为f0和f1)和对应的运动模糊(记为M0和M1)。在输入ANN之前,可能需要对运动模糊的值进行归一化,使其具有与生成的关键点描述符的值相同的范围。输出是二元决策610(即,关键点描述符f0和f1是否匹配)以及表示输出的二元决策的置信度的值P(例如,概率值)620。
以类似于上述原因的方式,训练深度学习网络以产生关键点描述符比较模块600的匹配指示和置信度值输出。在这种情况下,该网络可以实现为深度学习领域已知的分类器网络。给定足够的训练数据,分类器通常会产生良好的输出。可以使用如上所述(例如,参考图4)获得的训练数据来执行这种网络(例如,CNN)的训练。可能需要使用从相对少量的具有真实运动模糊并由人工手动标注的图像计算的描述符来增强合成训练数据。
应当理解,图6中所示的具体步骤提供了根据本发明实施例的基于ANN的关键点描述符比较模块的特定操作。如上所述,根据替代实施例,也可以执行其他步骤序列。例如,本发明的替代实施例可以以不同的顺序执行上述步骤。此外,图6中所示的各个步骤可以包括多个子步骤,这些子步骤可以根据各个步骤以各种顺序执行。此外,可以根据特定应用添加或删除额外的步骤。本领域的普通技术人员将认识到许多变化、修改和替代。
图7示出了根据本发明实施例的训练关键点描述符比较模块600的ANN 700的方法的简化流程图。ANN 700可以实现为二元分类器,使得ANN的输出指示关键点描述符输入表示对应图像中的相同特征的概率。例如,ANN的输出层可以配置为应用sigmoid或softmax函数,并且损失函数可以实现为二元交叉熵函数,并指示训练输入是否表示在ANN训练期间为损失函数提供真实值(ground truth)的相同特征。在一个示例中,实现ANN使得输入层和输出层都是大小为32×32的阵列。由于ANN 500和ANN 700都是基于深度学习的,因此两个网络中的参数可以交叉优化。例如,可以组合两个网络的训练。在一个这样的示例中,使用一个或多个传统关键点描述符框架(例如,SIFT、SURF、BRISK)开始训练过程。
除了上述基于匹配准确度的训练标准(用于生成对应于相同关键点并具有不同运动模糊的匹配描述符(即,参考损失函数512和514)),可能还需要训练ANN 700为不同的关键点生成不同的描述符。例如,对于生成的描述符对应于不同的关键点的情况,可能希望实现任务130以包括相应的损失函数,以近似根据相应(未模糊)训练图像中的关键点计算的描述符之间的参考距离。例如,参考距离可以使用现有的关键点描述符框架来计算,例如SIFT、SURF或BRISK。
应当理解,图7中所示的具体步骤提供了根据本发明实施例的训练关键点描述符比较模块的ANN的特定方法。如上所述,根据替代实施例,也可以执行其他步骤序列。例如,本发明的替代实施例可以以不同的顺序执行上述步骤。此外,图7中所示的各个步骤可以包括多个子步骤,这些子步骤可以根据各个步骤以各种顺序执行。此外,可以根据特定应用添加或删除额外的步骤。本领域的普通技术人员将认识到许多变化、修改和替代。
图8A示出了三个不同的训练标准的示例,这些训练标准被应用于匹配邻域,一方面,这些邻域被相似或不同的运动模糊所模糊,另一方面,这些邻域是相同关键点或不同关键点的邻域。如图8B所示,可能需要进一步修改任务130,仅在来自具有显著运动模糊的图像的训练数据上训练ANN 700。从这种训练标准得到的生成描述符可用于与计算的描述符框架(例如,SIFT、SURF或BRISK)相结合的特征匹配,例如,使得存在显著运动模糊时使用生成的描述符,否则使用计算的描述符。
经训练的ANN 500可用于生成关键点描述符(例如,代替传统的计算描述符框架,例如SIFT、SURF、BRISK等),以进行如本文所述的特征匹配。在典型的生产环境中,例如在制造和/或预配置期间,经训练的ANN 500的副本被存储到具有相同型号的视频摄像头(并且可能具有相同型号的IMU)的一系列设备中的每一个。
图9示出了根据本发明实施例的装置的简化框图。作为示例,图9中所示的装置900可用于在根据一般配置的移动设备(例如,诸如智能电话的蜂窝电话或头戴式设备)或其他计算设备或系统上生成关键点描述符,上述一般配置包括关键点选择器910、运动模糊应用器920和ANN训练器930。
关键点选择器910用于选择图像中对应的多个关键点(例如,如本文参考任务110所述)。运动模糊应用器920用于将互不相同的多个运动模糊中的每一个应用于图像,以生成多个模糊图像(例如,如本文参考任务120所述)。ANN训练器930用于基于多个模糊图像中的每一个中的关键点的邻域,以多个不同尺度中的每一个尺度训练ANN(例如,如本文参考任务130所述),其中训练的标准是最小化生成的关键点描述符的实例之间的距离测量,上述实例与多个模糊图像中的不同模糊图像中的相同特征对应。
在一个示例中,装置900在诸如移动电话之类的设备内实现,该设备通常具有用于产生包括第一图像和第二图像的帧序列的视频摄像头。该设备还可以包括一个或多个运动传感器,其可以用于确定该设备在空间中的6DOF运动。在另一示例中,装置900在头戴式设备中实现,例如AR眼镜,其还可以具有运动传感器和一个或多个摄像头。附加地或替代地,这样的设备可以用于获得训练图像(以及可能的运动模糊数据)和/或将生成的描述符应用于特征匹配。
根据本发明的其他实施例,深度学习网络可用作关键点描述符运动模糊转换器或关键点描述符比较模块,以应对在摄像帧中存在不同运动模糊时对图像特征匹配的挑战。例如,根据本文所述的方法生成的描述符可以与美国临时专利申请No.62/978,462(代理所案号No.105184-1166208-002300US)中描述的描述符转换和/或比较方法一起实施,以在特征来自采集的具有不同图像运动的摄像帧时进一步提高特征匹配精度。当摄像头运动很轻微或没有运动时,与具有显著相机运动的情况相比,所提出的解决方案允许使用明显简化的匹配评分过程获得高匹配精度,从而大大减少了计算量。
图10示出了根据本发明实施例的关键点描述符转换器1000的简化示意图。如图10所示,对由训练后的ANN 500从图像I0中的关键点的邻域生成的关键点描述符f0执行转换。描述符转换器接收三个输入:关键点描述符f0、采集图像I0时的图像运动的运动描述符M0、采集图像I1时的图像运动的运动描述符M1。转换器的输出是转换后的关键点描述符f1'。设计目标是,如果描述符f0和f1对应于同一关键点,则转换后的关键点描述符f1'类似于由训练后的ANN 500从图像I1中的关键点邻域生成的关键点描述符f1,而如果描述符f0和f1对应于不同的关键点,则转换后的描述符f1'和描述符f1将差异很大。如上所述,第一运动描述符和第二运动描述符分别描述了在采集第一图像和第二图像期间图像传感器的运动,并且可以从运动传感器(例如,IMU)输出和/或从视频序列中的相邻帧(例如,紧接在正在计算的帧之前和之后采集的帧)计算第一运动描述符和第二运动描述符。
图11示出了根据本发明实施例的图像处理方法的简化流程图。图11所示的图像处理方法1100包括任务1110、1120、1130和1140。任务1110使用训练后的ANN 500来生成第一图像中的关键点的描述符,第一图像在第一时间段内由图像传感器采集,其中,第一运动描述符描述图像传感器在第一时间段内的运动。任务1120使用训练后的ANN 500来生成第二图像中的关键点的描述符,第二图像在与第一时间段不同的第二时间段内由图像传感器采集,其中,第二运动描述符描述图像传感器在第二时间段内的运动。任务1130基于第一运动描述符和第二运动描述符,使用训练后的ANN将第一图像中的关键点的生成的描述符转换为转换的描述符。任务1140将转换的描述符与针对第二图像中的关键点生成的描述符进行比较。例如,任务1140可以包括计算在描述符空间中转换的描述符和生成的描述符之间的距离(例如,欧几里得距离、卡方距离等),并将计算的距离与阈值进行比较。
应当理解,图11中所示的具体步骤提供了根据本发明实施例的执行图像处理的特定方法。如上所述,根据替代实施例,也可以执行其他步骤序列。例如,本发明的替代实施例可以以不同的顺序执行上述步骤。此外,图11中所示的各个步骤可以包括多个子步骤,这些子步骤可以根据各个步骤以各种顺序执行。此外,可以根据特定应用添加或删除额外的步骤。本领域的普通技术人员将认识到许多变化、修改和替代。
图12示出了根据本发明另一实施例的执行图像处理的方法的简化流程图。如图12所示,图12中所示的方法1200使用了方法1100中使用的元素,以及如下所述的附加元素。因此,在适当时,与图11有关的描述也适用于图12。本领域的普通技术人员将认识到许多变化、修改和替代。
如图12所示,任务1210选择第一图像中的关键点,任务1220选择第二图像中的关键点。可用于实现任务1210和1220的关键点检测器的示例包括角点检测器(例如,Harris角点检测器、FAST)和斑点检测器(例如,LoG、DoG,DoH)。这种关键点检测器通常被配置为以不同的模糊宽度和采样率对图像进行模糊和重采样以创建尺度空间,并在不同尺度下检测角点和/或斑点。
再次参考图12,任务1130基于第一运动描述符和第二运动描述符,使用训练后的ANN将生成的第一图像中的关键点的描述符转换为转换的描述符。可以被训练以在多元素向量之间执行这种复杂转换的ANN示例包括卷积神经网络(convolutional neuralnetwork,CNN)和自编码器(auto-encoder)。可能希望将ANN实现得相当小和快速,例如,包括少于一万个参数,或少于五千个参数,和/或训练后的ANN占用少于五兆字节的存储空间。在一个示例中,ANN被实现为使得输入层和输出层都是大小为32×32的阵列。在典型的生产环境中,例如在制造和/或预配置期间,训练后的ANN 500的副本被存储到具有相同型号的视频摄像头(并且可能具有相同型号的IMU)的一系列设备中的每一个。在输入训练后的ANN之前,可能需要对运动描述符的值进行归一化,使其具有与生成的关键点描述符的值相同的范围。
应当理解,图12中所示的具体步骤提供了根据本发明实施例的执行图像处理的特定方法。如上所述,根据替代实施例,也可以执行其他步骤序列。例如,本发明的替代实施例可以以不同的顺序执行上述步骤。此外,图12中所示的各个步骤可以包括多个子步骤,这些子步骤可以根据各个步骤以各种顺序执行。此外,可以根据特定应用添加或删除额外的步骤。本领域的普通技术人员将认识到许多变化、修改和替代。
图13示出了根据本发明实施例的训练用于关键点转换的ANN的方法的简化流程图。如参考图4所描述的,用于训练ANN的关键点描述符可以由训练后的ANN 500从训练数据(图像、运动模糊和关键点邻域)生成。如图13所示,相应生成的关键点描述符在ANN训练期间为损失函数提供了真实值。可能需要使用从相对少量的具有真实运动模糊并由人工手动标注的图像计算的描述符来增强合成训练数据。
相比于计算两个关键点描述符之间的距离,通过深度学习网络进行推导通常涉及更多的计算。因此,为了节省计算,可能希望实现方法1100或1200以将第一运动描述符的值与第二运动描述符的值进行比较,并避免在第一运动描述符和第二运动描述符具有相似值的情况下使用训练后的网络(例如,替代地使用传统的评分度量。例如,方法1100或1200可以实现为包括计算第一运动描述符和第二运动描述符之间的距离并将该距离与阈值进行比较的任务。方法1100或1200的这种实施方式可以被配置为响应于运动描述符比较任务对于第一图像的运动模糊与第二图像的运动模糊相似的指示,使用分数度量(例如,如上所述的距离)而不是训练后的网络来确定来自第一图像的关键点描述符是否与来自第二图像的关键点描述符相匹配。
图14示出了根据本发明实施例的装置的简化框图。作为示例,图14中所示的装置1400可用于在根据一般配置的移动设备(例如,诸如智能电话的蜂窝电话或头戴式设备)或其他计算设备或系统上进行图像处理,上述一般配置包括关键点描述符生成器1410、关键点描述符转换器1420、关键点描述符比较器1430。
关键点描述符生成器1410包括训练后的ANN 500的实例,并且用于生成第一图像中的关键点的描述符和第二图像中的关键点的描述符,第一图像在第一时间段内由图像传感器采集,第二图像在与第一时间段不同的第二时间段内由图像传感器采集(例如,如本文分别参考任务1110和1120所描述的)。关键点描述符转换器1420用于基于第一运动描述符和第二运动描述符,使用训练后的ANN来将第一图像中的关键点的生成的描述符转换为转换的描述符,其中,第一运动描述符描述图像传感器在第一时间段内的运动,第二运动描述符描述图像传感器在第二时间段内的运动(例如,如本文参考任务1130所述)。关键点描述符比较器1430用于将转换后的描述符与第二图像中关键点的生成的描述符进行比较(例如,如本文参考任务1140所述)。
在一个示例中,装置1400在诸如移动电话之类的设备内实现,该设备通常具有用于产生包括第一图像和第二图像的帧序列的视频摄像头。该设备还可以包括一个或多个运动传感器,其可以用于确定该设备在空间中的6DOF运动。在另一示例中,装置1400在头戴式设备中实现,例如AR眼镜,其还可以具有运动传感器和一个或多个摄像头。
在本发明的另一实施例中,使用训练后的关键点描述符比较模块600代替关键点描述符转换器1420来执行特征匹配。如上所述,关键点描述符比较模块600用于确定两个关键点描述符是否匹配,即使特征属于具有不同图像运动的两个图像。使用关键点描述符比较模块600是解决由运动模糊引起的特征匹配失败的更全面的方式。如图6所示,关键点描述符比较模块600接收四个输入,包括两个关键点描述符f0和f1以及与f0和f1的源图像的运动模糊对应的运动描述符M0和M1。输出是二元决策610(即,f0和f1是否匹配)以及表示输出的二元决策的置信度的值P 620。
与关键点描述符转换器1420相比,关键点描述符比较模块600封装了分数度量,并且往往具有更高的匹配准确度。另一方面,比较模块600采用比转换器1420更多的输入并且通常包括更大的网络。因此,该方案往往占用更大的内存并消耗更多的计算资源。如上所述,可能希望在关键点描述符f0和f1来自具有相似图像运动的图像时使用传统的评分度量,以节省计算。
本文讨论的实施例可以在包括特征匹配的各种领域中实现,例如图像对齐(例如全景马赛克)、3D重建(例如立体视觉)、索引和内容检索等。训练图像不限于由可见光摄像头产生的图像(例如,在RGB或其他颜色空间中),还可以是由对非可见光(例如,红外(IR)、紫外(UV))敏感的摄像头产生的图像、由结构光摄像头产生的图像、和/或由除摄像头以外的图像传感器产生的图像(例如,使用雷达、激光雷达、声纳等进行成像)。此外,本文描述的实施例还可以扩展到运动模糊之外,以覆盖可能使关键点描述符失真的其他因素,例如亮度变化等。
图15示出了根据本文描述的方法(例如方法100、方法1100、和/或方法1200)的实施方式的计算机系统1500的组件的示例。尽管这些组件被示为属于同一计算机系统1500,但是计算机系统1500也可以实现为使得组件是分布式的(例如,分布在不同的服务器、分布在智能手机和一个或多个网络实体中等)。
计算机系统1500至少包括处理器1502、存储器1504、存储设备1506、输入/输出(input/output,I/O)外围设备1508、通信外围设备1510和接口总线1512。接口总线1512用于在计算机系统1500的各种组件之间通信、发送和传输数据、控制和命令。存储器1504和存储设备1506包括计算机可读存储介质,例如RAM、ROM、电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、硬盘驱动器、CD-ROM、光存储设备、磁存储设备、电子非易失性计算机存储设备(例如闪存)、以及其他有形存储介质。任何这样的计算机可读存储介质都可以用于存储实施本公开各方面的指令或程序代码。存储器1504和存储设备1506还包括计算机可读信号介质。计算机可读信号介质包括传播的数据信号,其中包含计算机可读程序代码。这种传播的信号采用多种形式中的任何一种,包括但不限于电磁、光学或其任何组合。计算机可读信号介质包括不是计算机可读存储介质并且可以通信、传播或传输用于与计算机系统1500结合使用的程序的任何计算机可读介质。
此外,存储器1504包括操作系统、程序和应用程序。处理器1502用于执行存储的指令,并且包括例如逻辑处理单元、微处理器、数字信号处理器和其他处理器。存储器1504和/或处理器1502可以被虚拟化并且可以托管在例如云网络或数据中心的另一计算机系统中。I/O外围设备1508包括用户界面,例如键盘、屏幕(例如,触摸屏)、麦克风、扬声器、其他输入/输出设备,以及计算组件,例如图形处理单元、串行端口、并行端口、通用串行总线和其他输入/输出外围设备。I/O外围设备1508通过耦合到接口总线1512的任何端口连接到处理器1502。通信外围设备1510用于促进计算机系统1500和其他计算机系统之间通过通信网络的通信,并且包括例如网络接口控制器、调制解调器、无线和有线接口卡、天线和其他通信外围设备。
尽管本主题已针对其特定实施例进行了详细描述,但应当理解,本领域技术人员在获得对前述内容的理解后,可以容易地产生对这些实施例的改变、变化和等价物。因此,应当理解,本公开是为了示例而不是限制的目的而呈现的,并且不排除包含对于普通技术人员来说显而易见的对本主题的修改、变化和/或添加。本领域的技能。实际上,本文描述的方法和系统可以以多种其他形式体现。此外,在不背离本公开的精神的情况下,可以对本文描述的方法和系统的形式进行各种省略、替换和改变。所附权利要求及其等价物旨在覆盖落入本公开的范围和精神内的此类形式或修改。
除非另有明确说明,否则应理解,本说明书的讨论中使用诸如“处理”、“计算”、“确定”和“识别”等术语是指计算机系统(例如一台或多台计算机或类似的电子计算机系统或设备)的动作或过程,该计算机系统操纵或转换在计算平台的存储器、寄存器或其他信息存储设备、传输设备或显示设备中表示为物理电子或磁量的数据。
这里讨论的一个或多个系统不限于任何特定的硬件架构或配置。计算机系统可以包括提供以一个或多个输入为条件的结果的任何合适的组件布置。合适的计算机系统包括基于微处理器的多用途计算机系统,多用途计算机系统访问存储的软件,存储的软件对计算机系统进行编程或配置,将该计算机系统从通用计算装置编程或配置为实现本主题的一个或多个实施例的专用计算装置。任何合适的编程、脚本或其他类型的语言或语言的组合可用于在用于编程或配置计算设备的软件中实施本文中包含的教导。
本文公开的方法的实施例可以在这样的计算机系统的操作中执行。以上示例中呈现的块的顺序可以改变,例如,框可以被重新排序、组合和/或分解成子框。某些框或过程可以并行执行。
术语“包括”、“具有”等是同义词,并且以开放式的方式包容性地使用,并且不排除其他元素、特征、动作、操作等。此外,术语“或”以其包容性(而不是排他性)使用,例如,当用于连接元素列表时,术语“或”表示其中的一个、一些或全部列表中的元素。此处使用的“用于”或“配置为”是指开放和包容性的语言,不排除用于或配置为执行附加任务或步骤的设备。此处包括的标题、列表和编号仅是为了便于解释,并不意味着限制。
上述各种特征和过程可以彼此独立地使用,或者可以以各种方式组合使用。所有可能的组合和子组合旨在落入本公开的范围内。此外,在一些实现中可以省略某些方法或过程块。这里描述的方法和过程也不限于任何特定的顺序,并且与其相关的块或状态可以以其他适当的顺序来执行。例如,所描述的块或状态可以以不同于具体公开的顺序执行,或者多个块或状态可以组合在单个块或状态中。示例块或状态可以串行、并行或以某种其他方式执行。可以将块或状态添加到所公开的示例中或从所公开的示例中删除。类似地,本文描述的示例系统和组件可以被配置为与所描述的不同。例如,与所公开的示例相比,可以添加、移除或重新排列元素。
本文所公开的装置或系统(例如,装置900或1400、系统1500)的实施方式的各种元素可以实施在硬件与软件和/或与被认为适用于预期应用的固件的任何组合中。例如,这些元件可以被制造为电子和/或光学设备,例如驻留在同一芯片上或在芯片组中的两个或更多个芯片之间。这种设备的一个示例是逻辑元件的固定或可编程阵列,例如晶体管或逻辑门,并且这些元件中的任何一个都可以实现为一个或多个这样的阵列。这些元素中的任何两个或更多个,甚至所有这些元素都可以在相同的一个或多个阵列中实现。这样的一个或多个阵列可以在一个或多个芯片内实现(例如,在包括两个或多个芯片的芯片组内)。这种装置还可以被实现为包括用于存储训练图像和/或邻域集合的存储器。
如本文所公开的用于处理的处理器或其他装置可以被制造为一个或多个电子和/或光学设备,例如驻留在同一芯片上或芯片组中的两个或多个芯片之间。这种设备的一个示例是逻辑元件的固定或可编程阵列,例如晶体管或逻辑门,并且这些元件中的任何一个都可以实现为一个或多个这样的阵列。这样的一个或多个阵列可以在一个或多个芯片内实现(例如,在包括两个或多个芯片的芯片组内)。此类阵列的示例包括逻辑元件的固定或可编程阵列,例如微处理器、嵌入式处理器、IP核、数字信号处理器(digital signalprocessor,DSP)、现场可编程门阵列(field-programmable gate array,FPGA)、特定应用标准产品(application-specific standard product,ASSP)和专用集成电路(application-specific integrated circuit,ASIC)。如本文所公开的用于处理的处理器或其他装置也可以实施为一个或多个计算机(例如,包括一个或多个阵列的机器,该阵列被编程为执行一组或多组指令或指令序列)或其他处理器。如本文所述的处理器可以用于执行任务或执行与方法100、1100或1200(或参考本文描述的装置或系统的操作公开的另一方法)的实施过程不直接相关的其他指令集,例如与嵌入处理器的设备或系统(例如,语音通信设备,如智能手机或智能扬声器)的另一操作有关的任务。如本文所公开的方法的一部分也可以在一个或多个其他处理器的控制下执行。
本文公开的方法(例如,方法100、1100、1200)的每个任务可以直接实施在硬件中、由处理器执行的软件模块中、或以上的组合中。在如本文所公开的方法的实施方式的典型应用中,逻辑元件(例如,逻辑门)阵列用于执行该方法的一个、一个以上、或甚至所有的各种任务。一个或多个(可能所有)任务也可以实现为代码(例如,一组或多组指令),实施在计算机程序产品(例如,一个或多个数据存储介质,例如磁盘、闪存或其他非易失性存储卡、半导体存储芯片等)中,其可由包括逻辑元件阵列(例如处理器、微处理器、微控制器或其他有限状态机)的机器(例如计算机)读取和/或执行。如本文所公开的方法的实施方式的任务也可以由多于一个这样的阵列或机器来执行。在这些或其他实施方式中,可以在诸如蜂窝电话或具有这种通信能力的其他设备之类的用于无线通信的设备内执行任务。这样的设备可以用于与电路交换网络和/或分组交换网络通信(例如,使用诸如VoIP的一种或多种协议)。例如,这样的设备可以包括用于接收和/或发送编码帧的RF电路。
在一个或多个示例性实施例中,本文描述的操作可以在硬件、软件、固件或其任何组合中实现。如果以软件实现,则此类操作可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质传输。术语“计算机可读介质”包括计算机可读存储介质和通信(例如,传输)介质。作为示例而非限制,计算机可读存储介质可以包括存储元件阵列,例如半导体存储器(其可以包括但不限于动态或静态RAM、ROM、EEPROM和/或闪存RAM)或铁电体、磁阻、椭圆、聚合或相变存储器;CD-ROM或其他光盘存储;和/或磁盘存储或其他磁性存储设备。这种存储介质可以存储计算机可以访问的指令或数据结构形式的信息。通信介质可以包括任何可以用于以指令或数据结构的形式携带期望的程序代码并且可以被计算机访问的介质,包括促进计算机程序从一个地方到另一个地方的传输的任何介质。此外,任何连接都被恰当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(digital subscriber line,DSL)或无线技术(如红外线、无线电和/或微波)从网站、服务器或其他远程源传输软件,那么同轴电缆、光纤电缆、双绞线、DSL或诸如红外线、无线电和/或微波之类的无线技术都包含在介质的定义中。如本文所用,盘(Disk/disc)包括压缩盘(compact disc,CD)、激光盘、光盘、数字多功能盘(digital versatile disc,DVD)、软盘和Blu-ray DiscTM(Blu-Ray Disc Association,Universal City,Calif.),其中磁盘通常以磁性方式再现数据,而磁盘则使用激光以光学方式再现数据。上述的组合也应包括在计算机可读介质的范围内。
在一个示例中,一种非暂时性计算机可读存储介质包括代码,当由至少一个处理器执行时,该代码使该至少一个处理器执行生成对运动模糊具有鲁棒性的关键点描述符的方法,如本文描述的方法100或1100或1200。这种存储介质的其他示例包括进一步包括代码的介质,当由至少一个处理器执行时,该代码使至少一个处理器执行如本文所述的生成对运动模糊具有鲁棒性的关键点描述符的方法。
除非受到其上下文的明确限制,否则术语“信号”在本文中用于指示其任何普通含义,包括在线路、总线或其他传输介质上表达的存储位置(或一组存储位置)的状态。除非受到其上下文的明确限制,否则术语“生成”在本文中用于指示其任何普通含义,例如计算或以其他方式产生。除非受到其上下文的明确限制,否则术语“计算”在本文中用于指示其任何普通含义,例如计算、评估、估计和/或从多个值中选择。除非受到其上下文的明确限制,否则术语“获取”用于表示其任何普通含义,例如计算、导出、接收(例如,从外部设备)和/或检索(例如,从存储阵列元素)。除非受到其上下文的明确限制,否则术语“选择”用于指示其任何普通含义,例如识别、指示、应用和/或使用两个或更多个的集合中的至少一个,而并非全部。除非受到其上下文的明确限制,否则术语“确定”用于表示其任何普通含义,例如决定、建立、总结、计算、选择和/或评估。在本说明书和权利要求书中使用术语“包括”时,不排除其他元件或操作。术语“基于”(如“A基于B”)用于表示其任何普通含义,包括以下情况:(i)“源自”(例如,“B是A的前体”),(ii)“至少基于”(例如,“A至少基于B”),并且,如果在特定上下文中适当,(iii)“等于”(例如,“A等于B”)。同样,“响应”一词用于表示其任何普通含义,包括“响应于至少”。除非另有说明,否则术语“A、B和C中的至少一个”、“A、B和C中的一个或多个”、“A、B和C中的至少一个”和“一个或多个A、B、C之间”表示“A和/或B和/或C”。除非另有说明,术语“A、B和C中的每个”和“A、B和C中的每个”表示“A和B和C”。
除非另有说明,对具有特定特征的设备操作的任何公开也明确旨在公开具有类似特征的方法(反之亦然),并且对根据特定配置的设备操作的任何公开也是明确旨在公开根据类似配置的方法(反之亦然)。术语“配置”可以参考由其特定上下文指示的方法、装置和/或系统来使用。除非特定上下文另有说明,否则术语“方法”、“过程”、“程序”和“技术”可通用且可互换使用。具有多个子任务的“任务”也是一种方法。除非特定上下文另有说明,否则术语“装置”和“设备”也可通用且可互换使用。术语“元素”和“模块”通常用于表示更大配置的一部分。除非受到其上下文的明确限制,否则术语“系统”在本文中用于表示其任何普通含义,包括“一组相互作用以服务于共同目的的元素”。
除非最初由定冠词引入,否则用于修饰权利要求要素的序数术语(例如,“第一”、“第二”、“第三”等)本身并不表示权利要求要素的相对于另一元素的任何优先级或顺序,而只是将权利要求元素与具有相同名称的另一个权利要求元素区分开来(但使用序数术语)。除非受到其上下文的明确限制,否则术语“多个”和“集合”中的每一个在本文中用于表示大于一的整数数量。
提供前面的描述是为了使本领域技术人员能够做出或使用所公开的实施方式。对这些实施方式的各种修改对于本领域技术人员来说将是显而易见的,并且在不脱离本公开的范围的情况下,本文定义的原理可以应用于其他实施方式。因此,本公开不旨在限于本文中所示的实施方式,而是要被赋予与如所附权利要求所限定的原理和新颖特征一致的尽可能宽的范围。
Claims (20)
1.一种生成对运动模糊具有鲁棒性的关键点描述符的方法,所述方法包括:
选择图像中的多个关键点;
对于互不相同的多个运动模糊中的每个运动模糊,将所述多个运动模糊中的每个运动模糊应用于所述图像,以生成多个模糊图像;以及
基于所述多个模糊图像中的每个模糊图像中的关键点的邻域,以多个不同尺度中的每个尺度训练人工神经网络(ANN),以生成关键点描述符,
其中,所述训练的标准是使生成的所述关键点描述符的实例之间的距离测量最小化,所述实例对应于所述多个模糊图像中的不同模糊图像中的同一关键点。
2.根据权利要求1所述的方法,其中,所述多个运动模糊中的每个运动模糊描述了具有至少两个空间维度的对应轨迹。
3.根据权利要求1所述的方法,其中,所述多个运动模糊中的每个运动模糊描述了六自由度运动。
4.根据权利要求1所述的方法,还包括从所述多个模糊图像中的每个模糊图像中,以所述多个不同尺度中的每个尺度提取所述关键点的所述邻域。
5.根据权利要求4所述的方法,其中,提取包括对所述多个模糊图像中的每个模糊图像应用至少一个高斯模糊。
6.根据权利要求4所述的方法,还包括对所述多个模糊图像中的每个模糊图像进行下采样。
7.根据权利要求1所述的方法,还包括确定所述多个运动模糊中的两个运动模糊之间的距离不小于阈值,其中,基于上述确定,使用训练后的第二人工神经网络计算所述训练的损失函数。
8.一种计算机系统,包括:
一个或多个处理器;以及
一个或多个存储器,用于存储计算机可读指令,当由所述一个或多个处理器执行时,所述计算机可读指令将所述计算机系统配置为:
选择图像中的多个关键点;
对于互不相同的多个运动模糊中的每个运动模糊,将所述多个运动模糊中的每个运动模糊应用于所述图像,以生成多个模糊图像;以及
基于所述多个模糊图像中的每个模糊图像中的关键点的邻域,以多个不同尺度中的每个尺度训练人工神经网络(ANN),以生成关键点描述符,
其中,所述训练的标准是使生成的所述关键点描述符的实例之间的距离测量最小化,所述实例对应于所述多个模糊图像中的不同模糊图像中的同一关键点。
9.根据权利要求8所述的计算机系统,其中,所述多个运动模糊中的每个运动模糊描述了具有至少两个空间维度的对应轨迹。
10.根据权利要求8所述的计算机系统,其中,所述多个运动模糊中的每个运动模糊描述了六自由度的运动。
11.根据权利要求8所述的计算机系统,其中,所述计算机可读指令还可操作以将所述计算机系统配置为:
从所述多个模糊图像中的每个模糊图像中,以所述多个不同尺度中的每个尺度提取所述关键点的所述邻域。
12.根据权利要求11所述的计算机系统,其中,提取包括对所述多个模糊图像中的每个模糊图像应用至少一个高斯模糊。
13.根据权利要求8所述的计算机系统,其中,所述计算机可读指令还可操作以将所述计算机系统配置为:
对所述多个模糊图像中的每个模糊图像进行下采样。
14.根据权利要求8所述的计算机系统,其中,所述计算机可读指令还可操作以将所述计算机系统配置为:
确定所述多个运动模糊中的两个运动模糊之间的距离不小于阈值;以及
响应于上述确定,使用训练后的第二人工神经网络计算所述训练的损失函数。
15.一个或多个非暂时性计算机存储介质,存储有指令,当在计算机系统上执行时,所述指令使所述计算机系统执行:
选择图像中的多个关键点;
对于互不相同的多个运动模糊中的每个运动模糊,将所述多个运动模糊中的每个运动模糊应用于所述图像,以生成多个模糊图像;以及
基于所述多个模糊图像中的每个模糊图像中的关键点的邻域,以多个不同尺度中的每个尺度训练人工神经网络(ANN),以生成关键点描述符,
其中,所述训练的标准是使生成的所述关键点描述符的实例之间的距离测量最小化,所述实例对应于所述多个模糊图像中的不同模糊图像中的同一关键点。
16.根据权利要求15所述的一个或多个非暂时性计算机存储介质,其中,所述多个运动模糊中的每个运动模糊描述了具有至少两个空间维度的对应轨迹。
17.根据权利要求15所述的一个或多个非暂时性计算机存储介质,其中,所述多个运动模糊中的每个运动模糊描述了六自由度的运动。
18.根据权利要求15所述的一个或多个非暂时性计算机存储介质,其中,所述指令还使所述计算机系统执行:
从所述多个模糊图像中的每个模糊图像中,以所述多个不同尺度中的每个尺度提取所述关键点的所述邻域。
19.根据权利要求18所述的一个或多个非暂时性计算机存储介质,其中,提取包括对所述多个模糊图像中的每个模糊图像应用至少一个高斯模糊。
20.根据权利要求18所述的一个或多个非暂时性计算机存储介质,其中,所述指令还使所述计算机系统执行:
确定所述多个运动模糊中的两个运动模糊之间的距离不小于阈值,其中,基于上述确定,使用训练后的第二人工神经网络计算所述训练的损失函数。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062989343P | 2020-03-13 | 2020-03-13 | |
US62/989,343 | 2020-03-13 | ||
PCT/CN2021/077477 WO2021179905A1 (en) | 2020-03-13 | 2021-02-23 | Motion blur robust image feature descriptor |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115362481A true CN115362481A (zh) | 2022-11-18 |
Family
ID=77671212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180020889.8A Pending CN115362481A (zh) | 2020-03-13 | 2021-02-23 | 运动模糊鲁棒图像特征描述符 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115362481A (zh) |
WO (1) | WO2021179905A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8873837B2 (en) * | 2011-08-04 | 2014-10-28 | University Of Southern California | Image-based crack detection |
CN107767358B (zh) * | 2016-08-23 | 2021-08-13 | 斑马智行网络(香港)有限公司 | 一种图像中物体模糊度确定方法和装置 |
CN108537787B (zh) * | 2018-03-30 | 2020-12-15 | 中国科学院半导体研究所 | 一种人脸图像的质量判定方法 |
CN108921117A (zh) * | 2018-07-11 | 2018-11-30 | 北京市商汤科技开发有限公司 | 图像处理方法及装置、电子设备和存储介质 |
CN109583408A (zh) * | 2018-12-07 | 2019-04-05 | 高新兴科技集团股份有限公司 | 一种基于深度学习的车辆关键点对齐方法 |
-
2021
- 2021-02-23 CN CN202180020889.8A patent/CN115362481A/zh active Pending
- 2021-02-23 WO PCT/CN2021/077477 patent/WO2021179905A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2021179905A1 (en) | 2021-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020192483A1 (zh) | 图像显示方法和设备 | |
US10636152B2 (en) | System and method of hybrid tracking for match moving | |
US10573018B2 (en) | Three dimensional scene reconstruction based on contextual analysis | |
US9710698B2 (en) | Method, apparatus and computer program product for human-face features extraction | |
KR20230013243A (ko) | 프레임에서 타겟 오브젝트를 위한 고정된 크기 유지 | |
US20210004962A1 (en) | Generating effects on images using disparity guided salient object detection | |
JP6799593B2 (ja) | 画像における動きの検出 | |
WO2016034059A1 (zh) | 基于颜色-结构特征的目标对象跟踪方法 | |
JP6309549B2 (ja) | 変形可能な表現検出器 | |
US9639943B1 (en) | Scanning of a handheld object for 3-dimensional reconstruction | |
US20110311100A1 (en) | Method, Apparatus and Computer Program Product for Providing Object Tracking Using Template Switching and Feature Adaptation | |
US9794588B2 (en) | Image processing system with optical flow recovery mechanism and method of operation thereof | |
CN111091590A (zh) | 图像处理方法、装置、存储介质及电子设备 | |
CN111709980A (zh) | 基于深度学习的多尺度图像配准方法和装置 | |
EP4244811A1 (en) | Consistency measure for image segmentation processes | |
US20210097290A1 (en) | Video retrieval in feature descriptor domain in an artificial intelligence semiconductor solution | |
CN114511041A (zh) | 模型训练方法、图像处理方法、装置、设备和存储介质 | |
US20240007760A1 (en) | Low-power fusion for negative shutter lag capture | |
US11620759B2 (en) | Systems and methods for machine learning enhanced image registration | |
CN113436251A (zh) | 一种基于改进的yolo6d算法的位姿估计系统及方法 | |
WO2021164615A1 (en) | Motion blur robust image feature matching | |
US11238309B2 (en) | Selecting keypoints in images using descriptor scores | |
US20230016350A1 (en) | Configurable keypoint descriptor generation | |
CN115362481A (zh) | 运动模糊鲁棒图像特征描述符 | |
Karpur et al. | Lfm-3d: Learnable feature matching across wide baselines using 3d signals |
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 |