CN113892127A - 使用神经网络和角点检测器进行角点检测的方法和装置 - Google Patents
使用神经网络和角点检测器进行角点检测的方法和装置 Download PDFInfo
- Publication number
- CN113892127A CN113892127A CN202080037833.9A CN202080037833A CN113892127A CN 113892127 A CN113892127 A CN 113892127A CN 202080037833 A CN202080037833 A CN 202080037833A CN 113892127 A CN113892127 A CN 113892127A
- Authority
- CN
- China
- Prior art keywords
- image
- neural network
- interest
- corner
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 244
- 238000001514 detection method Methods 0.000 title claims abstract description 104
- 238000000034 method Methods 0.000 title claims description 147
- 238000012545 processing Methods 0.000 claims abstract description 150
- 230000006978 adaptation Effects 0.000 claims description 25
- 238000013527 convolutional neural network Methods 0.000 claims description 16
- 238000010801 machine learning Methods 0.000 claims description 6
- 238000012549 training Methods 0.000 description 38
- 210000004027 cell Anatomy 0.000 description 28
- 210000001508 eye Anatomy 0.000 description 28
- 210000003128 head Anatomy 0.000 description 23
- 230000015654 memory Effects 0.000 description 23
- 230000008569 process Effects 0.000 description 23
- 230000003287 optical effect Effects 0.000 description 21
- 230000004044 response Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 18
- 239000002131 composite material Substances 0.000 description 18
- 230000006870 function Effects 0.000 description 14
- 230000004807 localization Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 11
- 230000002776 aggregation Effects 0.000 description 8
- 238000004220 aggregation Methods 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 8
- 238000003860 storage Methods 0.000 description 7
- 230000001629 suppression Effects 0.000 description 7
- 230000004931 aggregating effect Effects 0.000 description 6
- 239000000758 substrate Substances 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 5
- 238000011176 pooling Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 238000002156 mixing Methods 0.000 description 4
- 239000003607 modifier Substances 0.000 description 4
- 230000008447 perception Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 239000000872 buffer Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 210000000613 ear canal Anatomy 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000010237 hybrid technique Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000009827 uniform distribution Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 230000004308 accommodation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 210000003423 ankle Anatomy 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 230000003467 diminishing effect Effects 0.000 description 1
- 210000005069 ears Anatomy 0.000 description 1
- 230000004438 eyesight Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000005043 peripheral vision Effects 0.000 description 1
- 230000000379 polymerizing effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000012732 spatial analysis Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 210000000857 visual cortex Anatomy 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/013—Eye tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/18—Image warping, e.g. rearranging pixels individually
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- 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/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- 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
-
- 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/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
- G06V10/7753—Incorporation of unlabelled data, e.g. multiple instance learning [MIL]
-
- 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/20—Scenes; Scene-specific elements in augmented reality scenes
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/0138—Head-up displays characterised by optical features comprising image capture systems, e.g. camera
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/014—Head-up displays characterised by optical features comprising information/image processing systems
-
- 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
-
- 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/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Optics & Photonics (AREA)
- Biodiversity & Conservation Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
Abstract
一种被配置为由用户头戴的装置包括:屏幕,其被配置为向用户呈现图形;相机系统,其被配置为观看用户所在的环境;以及处理单元,其被耦合到相机系统,该处理单元被配置为:针对环境的图像获得特征的位置,其中,特征的位置由神经网络识别;在图像中确定针对特征之一的感兴趣区域,该感兴趣区域的大小小于图像的大小;以及在感兴趣区域中使用角点检测算法来执行角点检测以识别角点。
Description
技术领域
本公开涉及头戴式图像显示设备,以及用于在由头戴式图像显示设备生成的图像中检测角点的方法和装置。
背景技术
现代计算和显示技术已促进了用于所谓“虚拟现实”(VR)或“增强现实”(AR)体验的“混合现实”(MR)系统的开发,其中,数字再现的图像或其部分以看起来真实或可被感知为真实的方式呈现给用户。VR场景通常涉及数字或虚拟图像信息的呈现,而对实际的真实世界视觉输入不透明。AR场景通常涉及将数字或虚拟图像信息呈现为对用户周围的真实世界的可视化的增强(即,对真实世界视觉输入透明)。因此,AR场景涉及对真实世界视觉输入透明的数字或虚拟图像信息的呈现。
MR系统可以生成并显示颜色数据,这增加了MR场景的真实性。这些MR系统中的许多MR系统通过接连不断地以与彩色图像相对应的不同颜色(例如,原色)或“场”(例如,红色、绿色和蓝色)顺序地投影子图像来显示颜色数据。以足够高的速率(例如60Hz、120Hz等)投影彩色子图像可以在用户的脑海中提供平滑的彩色MR场景。
各种光学系统以各种深度生成包括彩色图像的图像,以用于显示MR(VR和AR)场景。MR系统可以采用至少松散地耦合到用户的头部的可穿戴显示设备(例如,头戴式显示器、头盔式显示器、或智能眼镜),并因此在用户的头部移动时移动。如果显示设备检测到用户的头部运动,则正在显示的数据可被更新(例如,“扭曲”)以考虑头部姿态(即,用户的头部的取向和/或位置)的变化。
作为示例,如果佩戴头戴式显示设备的用户观看在显示器的虚拟对象的虚拟表示并在虚拟对象出现的区域周围走动,则可以针对每个视点渲染虚拟对象,向用户给出他正在绕着占据真实空间的对象走动的感知。如果头戴式显示设备被用于呈现多个虚拟对象,则头部姿态的测量可被用于渲染场景以匹配用户的动态变化的头部姿态并提供增强的沉浸感。
启用AR的头戴式显示设备提供真实对象和虚拟对象的同时观看。采用“光学透视”显示器,用户可以透视显示系统中的透明(或半透明)元件以直接观看来自环境中的真实对象的光。透明元件(通常被称为“组合器”)将来自显示器的光叠加在用户对真实世界的视图上,其中来自显示器的光将虚拟内容的图像投影到环境中的真实对象的透视图上。相机可以被安装在头戴式显示设备上以捕获用户正在观看的场景的图像或视频。
当前的光学系统(诸如MR系统中的那些光学系统)光学渲染虚拟内容。内容是“虚拟的”,因为它不对应于位于空间中相应位置的真实物理对象。相反,当受到指向用户眼睛的光束刺激时,虚拟内容仅存在于头戴式显示设备的用户的大脑(例如,光学中心)中。
在一些情况下,头戴式图像显示设备可以相对于真实环境显示虚拟对象,和/或可以允许用户相对于真实环境放置和/或操纵虚拟对象。在这样的情况下,图像显示设备可以被配置为相对于真实环境定位用户,以使得虚拟对象可以相对于真实环境被正确地移动。头戴式图像显示设备可以使用定位图来执行定位。特别地,当执行定位时,图像显示设备可以从图像显示设备的相机系统获得实时输入图像,并将输入图像中的特征与定位图的特征进行匹配。
因此,特征检测是头戴式图像显示设备的重要特征。在此描述用于在图像中检测特征(诸如角点)的方法和装置。所检测的角点可以被用作创建定位图的特征。可替代地,角点可被检测为来自输入图像的特征,以用于与定位图的特征相匹配以用于用户的定位。
发明内容
本公开一般涉及使用神经网络和角点检测器的组合的兴趣点检测。
在本文所描述的一个实施例中,(使用神经网络和特征检测器两者的)混合方法利用用于实时或非实时处理图像以提取特征(例如,角点)候选的(一个或多个)硬件和/或软件块连同神经网络(例如,轻量级神经网络)一起有效地分类和提取存在良好特征(例如,角点)候选的区域。然后,从候选中选择良好特征(例如角点)。该技术优于现有的解决方案,现有的解决方案与较高的图像噪声(例如,在低光下)和难以识别特征(例如,角点)的区域斗争,因为所有的现有的解决方案在本质上都是非常局部的。神经网络的优势在于它使用图像的更大的上下文来识别特征(例如,角点),即使难以单独基于附近的像素来做到这一点。混合方法也优于被训练以提取特征(例如角点)的其它神经网络。特别地,这些神经网络远不如本文所描述的混合方法那么快速和有效,因为它们端到端地提取特征(例如角点),这需要大量的计算资源和存储器,并且不是实时的。
一种被配置为由用户头戴的装置包括:屏幕,其被配置为向用户呈现图形;相机系统,其被配置为观看用户所在的环境;以及处理单元,其被耦合到相机系统,该处理单元被配置为:针对环境的图像获得特征的位置,其中,特征的位置由神经网络识别;在图像中确定针对特征之一的感兴趣区域,该感兴趣区域的大小小于图像的大小;以及在感兴趣区域中使用角点检测算法来执行角点检测以识别角点。
一种被配置为由用户头戴的装置包括:屏幕,其被配置为向用户呈现图形;相机系统,其被配置为观看用户所在的环境;以及处理单元,其被耦合到相机系统,该处理单元被配置为:针对与环境相关联的图像数据获得特征的位置,其中,特征的位置由神经网络识别;在图像中确定针对特征之一的感兴趣区域,该感兴趣区域的大小小于图像的大小;以及在感兴趣区域中使用角点检测算法来执行角点检测以识别角点。
可选地,处理单元被配置为将感兴趣区域确定为具有基于由神经网络识别的位置中的至少一个位置的定位,其中,该定位是相对于图像的。
可选地,图像数据与由相机系统生成并被发送到神经网络的至少一个图像相关联。
可选地,相机系统被配置为生成图像以及向神经网络发送图像。
可选地,神经网络在该装置的模块中。
可选地,神经网络在远离该装置的一个或多个计算设备中实现。
可选地,神经网络具有机器学习能力。
可选地,处理单元被配置为通过获得由神经网络生成的热图来获得特征的位置,热图指示特征的位置。
可选地,感兴趣区域包括N×N块(patch),并且处理单元被配置为对N×N块执行角点检测,其中,N是大于1的整数。
可选地,感兴趣区域包括具有少于或等于144个像素的块,并且处理单元被配置为对该块执行角点检测。
可选地,感兴趣区域包括8×8块,并且处理单元被配置为对8×8块执行角点检测。
可选地,图像数据包括从由相机系统生成的至少一个高分辨率图像降低分辨率的至少一个低分辨率图像。
可选地,图像具有第一分辨率,并且其中,特征的位置由神经网络基于具有小于第一分辨率的第二分辨率的另一个图像来识别。
可选地,处理单元还被配置为将具有第一分辨率的图像转换为具有第二分辨率的另一个图像。
可选地,第一分辨率包括VGA分辨率。
可选地,第二分辨率包括QVGA分辨率。
可选地,该装置进一步包括神经网络。
可选地,已经使用参考数据集对神经网络进行训练。
可选地,神经网络包括卷积神经网络。
可选地,神经网络被配置为计算兴趣点位置和描述符。
可选地,神经网络包括被配置为在空间上对输入图像进行下采样的编码器。
可选地,神经网络还包括:兴趣点解码器,其被配置为对来自编码器的编码器输出进行操作,并针对输入图像中的每个像素产生分数;以及描述符解码器,其被配置为对编码器输出进行操作,将编码器输出上采样到更高分辨率,并针对输入图像中的每个像素产生向量。
可选地,神经网络被配置为使用单应性适应来提高兴趣点检测器的几何一致性。
可选地,神经网络包括被配置为训练兴趣点检测器的卷积神经网络。
可选地,神经网络被配置为在单应性适应中执行图像扭曲以创建一个或多个经扭曲的图像。
可选地,处理单元被配置为至少部分地基于角点在感兴趣区域中的位置来确定角点在图像中的位置。
可选地,该装置进一步包括非暂态介质,该非暂态介质被配置为存储图像中的第一角点的位置。
可选地,处理单元被配置为针对感兴趣区域中的每个像素确定分数。
可选地,神经网络是处理单元的一部分。
可选地,该装置进一步包括神经网络,该神经网络被通信地耦合到处理单元。
一种由头戴式图像显示设备执行的方法包括:在图像中获得特征的位置,其中,特征的位置由神经网络识别;在图像中确定针对特征之一的感兴趣区域,该感兴趣区域的大小小于图像的大小;以及在感兴趣区域中使用角点检测算法来执行角点检测以识别角点。
可选地,其中,感兴趣区域被确定为具有基于由神经网络识别的位置中的至少一个位置的定位,其中,该定位是相对于图像的。
可选地,该方法进一步包括:生成图像;以及向神经网络发送图像。
可选地,神经网络在头戴式图像显示设备的模块中。
可选地,神经网络在远离头戴式图像显示设备的一个或多个计算设备中实现。
可选地,神经网络具有机器学习能力。
可选地,通过从神经网络接收热图来获得特征的位置,其中,热图指示特征的位置。
可选地,感兴趣区域包括N×N块,并且对N×N块执行角点检测,其中,N是大于1的整数。
可选地,感兴趣区域包括具有少于或等于144个像素的块,并且对该块执行角点检测。
可选地,感兴趣区域包括8×8块,并且对8×8块执行角点检测。
可选地,图像具有第一分辨率,并且其中,特征的位置由神经网络基于具有小于第一分辨率的第二分辨率的另一个图像来识别。
可选地,该方法进一步包括:将具有第一分辨率的图像转换为具有第二分辨率的另一个图像。
可选地,第一分辨率包括VGA分辨率。
可选地,第二分辨率包括QVGA分辨率。
可选地,该方法进一步包括神经网络。
可选地,已经使用参考数据集对神经网络进行训练。
可选地,神经网络包括卷积神经网络。
可选地,神经网络被配置为计算兴趣点位置和描述符。
可选地,神经网络包括被配置为在空间上对输入图像进行下采样的编码器。
可选地,神经网络还包括:兴趣点解码器,其被配置为对来自编码器的编码器输出进行操作,并针对输入图像中的每个像素产生分数;以及描述符解码器,其被配置为对编码器输出进行操作,将编码器输出上采样到更高分辨率,并针对输入图像中的每个像素产生向量。
可选地,神经网络被配置为使用单应性适应来提高兴趣点检测器的几何一致性。
可选地,神经网络包括卷积神经网络,并且其中,用卷积神经网络来训练兴趣点检测器。
可选地,神经网络被配置为在单应性适应中执行图像扭曲以创建一个或多个经扭曲的图像。
可选地,该方法进一步包括:至少部分地基于角点在感兴趣区域中的位置来确定角点在图像中的位置。
可选地,该方法进一步包括:将图像中的第一角点的位置存储在非暂态介质中。
可选地,该方法进一步包括:针对感兴趣区域中的每个像素确定分数。
一种训练和使用神经网络以用于图像兴趣点检测的方法包括:生成包括多个参考集的参考数据集,其中,多个参考集中的每个参考集包括:图像;以及与图像相对应的一组参考兴趣点;以及对于多个参考集中的每个参考集:通过将单应性应用于图像来生成经扭曲的图像;通过将单应性应用于一组参考兴趣点来生成经扭曲的一组参考感兴趣点;由神经网络接收图像作为输入,计算一组所计算的兴趣点和所计算的描述符;由神经网络接收经扭曲的图像作为输入,计算一组所计算的扭曲的兴趣点和所计算的扭曲的描述符;基于一组所计算的兴趣点、所计算的描述符、一组所计算的扭曲的感兴趣点、所计算的扭曲的描述符、一组参考兴趣点、经扭曲的一组参考兴趣点和单应性,计算损失;以及基于损失来修改神经网络;其中,该方法进一步包括:在输入图像中获得特征的位置,其中,特征的位置由神经网络识别;在输入图像中确定针对特征之一的感兴趣区域,该感兴趣区域的大小小于输入图像的大小;以及在感兴趣区域中使用角点检测算法来执行角点检测以识别角点。
可选地,神经网络包括兴趣点检测器子网络和描述符子网络,其中:兴趣点检测器子网络被配置为接收图像作为输入,并基于该图像计算一组所计算的兴趣点;描述符子网络被配置为接收图像作为输入,并基于该图像计算所计算的描述符。
可选地,基于损失来修改神经网络包括:基于损失来修改兴趣点检测器子网络和描述符子网络中的一者或两者。
可选地,该方法进一步包括:在生成参考数据集之前,使用包括多个合成图像和多组合成兴趣点的合成数据集来训练兴趣点检测器子网络,其中,生成参考数据集包括使用兴趣点检测器子网络来生成参考数据集。
可选地,生成参考数据集包括:对于多个参考集中的每个参考集:从包括多个未标记图像的未标记数据集中获得图像;通过将多个单应性应用于图像来生成多个经扭曲的图像;由神经网络接收多个经扭曲的图像作为输入,计算多组所计算的扭曲的感兴趣点;通过将多个逆单应性应用于多组所计算的扭曲的兴趣点来生成多组所计算的兴趣点;以及聚合多组所计算的兴趣点以获得一组参考兴趣点。
可选地,多个参考集中的每个参考集进一步包括与图像相对应的参考描述符,并且其中,生成参考数据集包括:对于多个参考集中的每个参考集:从包括多个未标记图像的未标记数据集中获得图像;通过将多个单应性应用于图像来生成多个经扭曲的图像;由神经网络接收多个经扭曲的图像作为输入,计算多个所计算的扭曲的描述符;通过将多个逆单应性应用于多个所计算的扭曲的描述符来生成多个所计算的描述符;以及聚合多个所计算的描述符以获得参考描述符。
可选地,一组参考兴趣点是二维图,该二维图具有与图像的特定像素具有位于该特定像素处的兴趣点的概率相对应的值。
一种方法包括:捕获第一图像;捕获第二图像;由神经网络接收第一图像作为输入,计算第一组所计算的兴趣点和第一所计算的描述符;由神经网络接收第二图像作为输入,计算第二组所计算的兴趣点和第二所计算的描述符;以及基于第一组和第二组所计算的兴趣点以及第一和第二所计算的描述符,确定第一图像与第二图像之间的单应性;其中,神经网络包括:兴趣点检测器子网络,其被配置为计算第一组所计算的兴趣点和第二组所计算的兴趣点;以及描述符子网络,其被配置为计算第一所计算的描述符和第二所计算的描述符;其中,该方法进一步包括:在输入图像中获得特征的位置,其中,特征的位置由神经网络识别;在输入图像中确定针对特征之一的感兴趣区域,该感兴趣区域的大小小于输入图像的大小;以及在感兴趣区域中使用角点检测算法来执行角点检测以识别角点。
可选地,兴趣点检测器子网络被配置为与描述符子网络计算第一所计算的描述符并发地计算第一组所计算的兴趣点;兴趣点检测器子网络被配置为与描述符子网络计算第二所计算的描述符并发地计算第二组所计算的兴趣点。
可选地,该方法进一步包括:通过生成包括多个参考集的参考数据集来训练神经网络,其中,多个参考集中的每个参考集包括图像和与该图像相对应的一组参考兴趣点;以及对于多个参考集中的每个参考集:通过将单应性应用于图像来生成经扭曲的图像;通过将单应性应用于一组参考兴趣点来生成经扭曲的一组参考兴趣点;由神经网络接收图像作为输入,计算一组所计算的兴趣点和所计算的描述符;由神经网络接收经扭曲的图像作为输入,计算一组所计算的扭曲的兴趣点和所计算的扭曲的描述符;基于一组所计算的兴趣点、所计算的描述符、一组所计算的扭曲的兴趣点、所计算的扭曲的描述符、一组参考兴趣点、经扭曲的一组参考兴趣点和单应性,计算损失;以及基于损失来修改神经网络。
可选地,基于损失来修改神经网络包括:基于损失来修改兴趣点检测器子网络和描述符子网络中的一者或两者。
可选地,该方法进一步包括:在生成参考数据集之前,使用包括多个合成图像和多组合成兴趣点的合成数据集来训练兴趣点检测器子网络,其中,生成参考数据集包括使用兴趣点检测器子网络来生成参考数据集。
可选地,生成参考数据集包括:对于多个参考集中的每个参考集:从包括多个未标记图像的未标记数据集中获得图像;通过将多个单应性应用于图像来生成多个经扭曲的图像;由神经网络接收多个经扭曲的图像作为输入,计算多组所计算的扭曲的兴趣点;通过将多个逆单应性应用于多组所计算的扭曲的兴趣点来生成多组所计算的兴趣点;以及聚合多组所计算的兴趣点以获得一组参考兴趣点。
可选地,多个参考集中的每个参考集进一步包括与图像对应的参考描述符,并且其中,生成参考数据集包括:对于多个参考集中的每个参考集:从包括多个未标记图像的未标记数据集中获得图像;通过将多个单应性应用于图像来生成多个经扭曲的图像;由神经网络接收多个经扭曲的图像作为输入,计算多个所计算的扭曲的描述符;通过将多个逆单应性应用于多个所计算的扭曲的描述符来生成多个所计算的描述符;以及聚合多个所计算的描述符以获得参考描述符。
一种光学设备包括:至少一个相机,其被配置为捕获第一图像和第二图像;以及一个或多个处理器,其被耦合到相机并被配置为执行操作,该操作包括:从至少一个相机接收第一图像和第二图像;由神经网络使用第一图像作为输入,计算第一组所计算的兴趣点和第一所计算的描述符;由神经网络使用第二图像作为输入,计算第二组所计算的兴趣点和第二所计算的描述符;以及基于第一组和第二组所计算的兴趣点以及第一和第二所计算的描述符,确定第一图像与第二图像之间的单应性;其中,神经网络包括:兴趣点检测器子网络,其被配置为计算第一组所计算的兴趣点和第二组所计算的感兴趣点;以及描述符子网络,其被配置为计算第一所计算的描述符和第二所计算的描述符;并且其中,一个或多个处理器被配置为:在输入图像中获得特征的位置,其中,特征的位置由神经网络识别;在输入图像中确定针对特征之一的感兴趣区域,该感兴趣区域的大小小于图像的大小;以及在感兴趣区域中使用角点检测算法来执行角点检测以识别角点。
可选地,兴趣点检测器子网络被配置为与描述符子网络计算第一所计算的描述符并发地计算第一组所计算的兴趣点;兴趣点检测器子网络被配置为与描述符子网络计算第二所计算的描述符并发地计算第二组所计算的兴趣点。
可选地,先前通过生成包括多个参考集的参考数据集来训练神经网络,其中,多个参考集中的每个参考集包括图像和与该图像相对应的一组参考兴趣点;并且对于多个参考集中的每个参考集:通过将单应性应用于图像来生成经扭曲的图像;通过将单应性应用于一组参考兴趣点来生成经扭曲的一组参考兴趣点;由神经网络接收图像作为输入,计算一组所计算的兴趣点和所计算的描述符;由神经网络接收经扭曲的图像作为输入,计算一组所计算的扭曲的兴趣点和所计算的扭曲的描述符;基于一组所计算的兴趣点、所计算的描述符、一组所计算的扭曲的兴趣点、所计算的扭曲的描述符、一组参考兴趣点、经扭曲的一组参考兴趣点和单应性,计算损失;以及基于损失来修改神经网络。
可选地,基于损失来修改神经网络包括:基于损失来修改兴趣点检测器子网络和描述符子网络中的一者或两者。
可选地,生成参考数据集包括:对于多个参考集中的每个参考集:从包括多个未标记图像的未标记数据集中获得图像;通过将多个单应性应用于图像来生成多个经扭曲的图像;由神经网络接收多个经扭曲的图像作为输入,计算多组所计算的扭曲的兴趣点;通过将多个逆单应性应用于多组所计算的扭曲的兴趣点来生成多组所计算的兴趣点;以及聚合多组所计算的兴趣点以获得一组参考兴趣点。
可选地,多个参考集中的每个参考集进一步包括与图像相对应的参考描述符,并且其中,生成参考数据集包括:对于多个参考集中的每个参考集:从包括多个未标记图像的未标记数据集中获得图像;通过将多个单应性应用于图像来生成多个经扭曲的图像;由神经网络接收多个经扭曲的图像作为输入,计算多个所计算的扭曲的描述符;通过将多个逆单应性应用于多个所计算的扭曲的描述符来生成多个所计算的描述符;以及聚合多个所计算的描述符以获得参考描述符。
在具体实施方式、附图和权利要求中描述本公开的附加和其它目的、特征和优点。
附图说明
附图示出本公开的各种实施例的设计和效用。应当注意,附图不是按比例绘制的,并且在整个附图中,相似的结构或功能的元件由相似的附图标记表示。为了更好地理解如何获得本公开的各种实施例的上述和其它优点和目的,将参考在附图中示出的本发明的具体实施例对以上简要描述的本公开进行更详细的描述。应理解,这些附图仅描绘了本公开的典型实施例,并因此不被认为是对其范围的限制,将通过使用附图以附加的特定性和细节来描述和解释本公开,在附图中:
图1示出根据一些实施例的使用神经网络来确定一对输入图像的兴趣点之间的点对应关系。
图2示出根据一些实施例的神经网络的一般架构。
图3示出根据一些实施例的第一训练步骤,其中使用包括多个合成图像的合成数据集来训练兴趣点检测器子网络。
图4示出根据一些实施例的第二训练步骤,其中使用单应性适应来编译参考数据集。
图5示出根据一些实施例的第三训练步骤,其中使用参考数据集来训练神经网络。
图6示出根据一些实施例的使用神经网络来计算两个捕获图像之间的单应性。
图7示出根据一些实施例的合成数据集的示例。
图8示出根据一些实施例的未标记数据集的示例。
图9示出根据一些实施例的神经网络的示例架构。
图10示出根据一些实施例的在第二训练步骤期间采用的单应性适应的各种步骤。
图11示出根据一些实施例的随机单应性生成的某些方面。
图12示出可以利用本文所描述的实施例的AR设备的示意图。
图13示出根据一些实施例的训练神经网络并使用神经网络来执行图像兴趣点检测和描述的方法。
图14示出根据一些实施例的训练神经网络以用于图像兴趣点检测和描述的方法。
图15示出根据一些实施例的具有图像显示设备的图像显示系统。
图16示出根据一些实施例的具有图像显示设备的另一个图像显示系统。
图17示出根据一些实施例的具有图像显示设备的另一个图像显示系统。
图18示出根据一些实施例的具有图像显示设备的另一个图像显示系统。
图19示出在多个深度平面中显示帧的图像显示设备。
图20示出用于确定地图以用于允许图像显示设备定位图像显示设备的用户和/或执行其它(一个或多个)功能的方法。
图21示出环境被划分为多个单元格的示例。
图22A示出图像显示设备的处理单元。
图22B示出图22A的处理单元的信号流。
图22C示出图22A的处理单元的变体。
图22D示出参考图22B描述的信号流的示例。
图22E示出哈里斯(Harris)检测结果的示例。
图22F示出与哈里斯检测结果相比较的掩模(mask)的示例。
图22G示出混合角点检测的结果的示例。
图23A-23B示出使用特征值和/或哈里斯分数的图像点分类。
图24示出由图22A的处理单元执行的方法。
图25示出根据一些实施例的专用处理系统。
具体实施方式
以下参考附图描述各种实施例。应当注意,附图不是按比例绘制的,并且在整个附图中,相似的结构或功能的元件由相似的附图标记表示。还应当注意,附图仅仅旨在便于对实施例的描述。它们并不旨在作为本发明的穷尽描述或对本发明范围的限制。此外,所示的实施例不需要具有所示的所有方面或优点。结合特定实施例描述的方面或优点不一定限于该实施例并且可以在任何其它实施例中实践,即使没有如此说明或者没有如此明确地描述。
下面的描述涉及可以实践在此描述的实施例的说明性VR、AR和/或MR系统。然而,应当理解,实施例也适用于在其它类型的显示系统(包括其它类型的VR、AR和/或MR系统)中的应用,因此,实施例不仅限于在此公开的说明性示例。
在几乎所有需要图像作为输入的任务上,卷积神经网络已被证明优于手工设计的表示。特别地,针对各种任务(诸如人体姿态估计、对象检测、和房间布局估计)很好地研究了预测二维(2D)“关键点”或“地标”的全卷积神经网络。这些技术中的一些技术利用被标记有人工注释的2D标注(ground truth)位置的大型数据集。将兴趣点检测类似地制定为大规模监督机器学习问题并训练最新的卷积神经网络架构以检测它们似乎很自然。不幸的是,当与更多语义任务(诸如人体关键点估计,其中网络被训练以检测语义身体部位(诸如嘴角或左脚踝))相比时,兴趣点检测的概念在语义上是不明确的。该困难使得训练具有兴趣点的强监督的卷积神经网络重要。
代替使用人工监督来定义真实图像中的兴趣点,本文所描述的实施例提供使用自训练的自监督解决方案。在本文所描述的实施例的方法中,真实图像中的伪标注兴趣点位置的大型数据集被创建,并由兴趣点检测器本身而不是人类知识来监督。为了生成伪标注兴趣点,首先在来自合成图像数据集的数百万个独特示例上训练全卷积神经网络。由于特征提取是在图像序列中进行图像匹配和跟踪的基本步骤,因此,已公认不同点的检测和准确定位是重要的。这些不同点以角点、边(用于多面体分析的基本元素)和圆形特征(诸如孔、盘或环)的中心为特征。结点(Y,X,T,L)也被认为是检测这种不同点的关键。例如,T形结点一般指示插入,并因此指示深度不连续。
借用这些见解,可以创建用于兴趣点检测器的大规模训练的大型合成形状数据集,其由在兴趣点位置中没有歧义的简单的几何形状组成。如在此描述的兴趣点检测器被证明显著优于在合成形状数据集上的传统兴趣点检测器。当被应用于真实图像时,兴趣点检测器当在合成图像上训练时考虑到域适应是已知问题而表现良好。然而,当与在不同的一组图像纹理和图案上的经典兴趣点检测器相比,兴趣点检测器的性能并不是那么一致。为了缩小兴趣点检测器与经典检测器之间在真实世界图像上的性能差距,本文所描述的一个或多个实施例包括允许多尺度、多变换的特征(其在本文可被称为单应性适应)。
单应性适应能够实现兴趣点检测器的自监督训练。在一些实施例中,它多次扭曲输入图像以帮助兴趣点检测器从许多不同的视点和尺度观看场景。当与兴趣点检测器结合使用以生成伪标注兴趣点并提升检测器的性能时,所产生的检测更可重复。在检测稳健且可重复的兴趣点之后的一个步骤是将固定维度的描述符向量附加到每个点(或所有图像像素),该描述符向量可用于匹配跨图像地匹配兴趣点。因此,在一些实施例中,兴趣点检测器子网络可以与描述符子网络相结合。所得到的网络可用于从一对图像中提取点并建立点对应关系,如图1所示。
根据包括自监督方法的一些实施例,初始兴趣点检测器和单应性适应过程自动地标记来自目标未标记域的图像。所生成的标签进而用于训练全卷积网络,该全卷积网络从图像中联合提取点和描述符。全卷积网络可在广泛的应用中使用,特别是涉及图像到图像几何任务(诸如计算两个图像之间的单应性)的那些应用。单应性针对仅围绕相机中心旋转的相机运动、与对象距离较远的场景和平面场景提供准确或几乎准确的图像到图像变换。由于世界上的大部分地方是相当平坦的,因此,单应性是用于当从不同视点看见相同三维(3D)点时发生的情况的良好模型。由于单应性不需要3D信息,因此,它们可以被随机采样并被轻松应用于仅仅涉及双线性插值的任何2D图像。由于这些原因,在一些实施例中利用了单应性。
图1示出根据一些实施例的使用神经网络100来确定一对输入图像102的兴趣点之间的点对应关系106。具体地,图1示出了神经网络100的两个实例(即,神经网络100-1、100-2),神经网络100是利用点对应关系在单一前向传播中计算类似尺度不变特征变换(SIFT)的2D兴趣点位置和描述符的全卷积神经网络。当接收输入图像102-1、102-2作为输入时,神经网络100-1、100-2分别基于输入图像102-1、102-2来计算一组所计算的兴趣点108-1、108-2和所计算的描述符110-1、110-2。然后,通过所计算的兴趣点108-1、108-2之间的比较来确定点对应关系106,该比较由与每个兴趣点相关联的描述符通知。例如,可以匹配与不同的兴趣点相关联的描述符。根据几种可能的相似性评分过程中的一种,与不同图像对应的具有最相似描述符的兴趣点可被确定为彼此对应。
根据一个示例,通过以下方式可以确定与输入图像102-1相对应的第一兴趣点对应于与输入图像102-2相对应的第二兴趣点:确定在到第一兴趣点的五个最近(根据像素到像素距离)的兴趣点之中,同与五个最近的兴趣点相关联的描述符相比,与第二兴趣点相关联的描述符和与第一兴趣点相关联的描述符最相似(例如,通过使用L2距离来确定)。根据另一个示例,通过以下方式可确定与输入图像102-1相对应的第一兴趣点为对应于与输入图像102-2相对应的第二兴趣点:确定在与输入图像102-2相对应的所有兴趣点之中,同与对应于输入图像102-2的所有兴趣点相关联的描述符相比,与第二兴趣点相关联的描述符和与第一兴趣点相关联的描述符最相似。
图2示出根据一些实施例的神经网络100的一般架构。神经网络100可以包括兴趣点检测器子网络112和描述符子网络114,这两个子网络中的每个子网络具有单个子网络输入120-1、120-2(相应地)和单个子网络输出122-1、122-2(相应地)。尽管这两个子网络被分别示出,但它们可以共享一个或多个卷积层和/或神经元,如参考图9描述的。在一些实施例中,神经网络100可以包括被配置为接收输入图像102作为输入的网络输入116。然后,输入图像102可被馈送到子网络输入120-1、120-2。在子网络输入120-1处接收到输入图像102后,兴趣点检测器子网络112可以计算并在子网络输出122-1处输出所计算的兴趣点108,然后,所计算的兴趣点108被馈送给网络输出118-1。在子网络输入120-2处接收到输入图像102后,描述符子网络114可以计算并在子网络输出122-2处输出所计算的描述符110,然后,所计算的描述符110被馈送到网络输出118-2。因此,子网络112、114可以基于相同的输入来提供不同的输出,并表示神经网络100的不同分支。
神经网络100可以对全尺寸图像进行操作,并可以在单一前向传播中产生伴随有固定长度描述符的兴趣点检测。在一些实施例中,输入图像102可以具有H×W的维度,其中H是以像素为单位的输入图像102的高度,W是以像素为单位的输入图像102的宽度。在相同的实施例中,所计算的兴趣点108可以是兴趣点像素位置的列表(例如,坐标对的列表),或者附加地或可替代地,所计算的兴趣点108可以是具有H×W维度的2D地图,其中每个像素对应于输入(即输入图像102)中的该像素的概率“点”。在相同的实施例中,所计算的描述符110可以是一组固定长度描述符,每个描述符对应于所识别的兴趣点,或者附加地或可替代地,所计算的描述符110可以具有H×W×D的维度,其中,D是在H×W图像的每个像素处计算的描述符的长度。因此,甚至包含兴趣点的概率低的像素也具有长度为D的描述符。
神经网络100的训练可由网络修改器126和/或子网络修改器124-1、124-2来实现,网络修改器126和/或子网络修改器124-1、124-2可在训练阶段期间接收误差信号、损失信号和/或校正信号,导致网络的层和/或神经元要被修改。可修改神经网络100,以使得网络输出(所计算的兴趣点108和所计算的描述符110)与标注数据之间的误差可以在采用相同输入图像102或不同图像的后续运行期间被减小。例如,可以基于指示输出与标注之间差异的误差信号/值、基于指示将被最小化的某个量的损失信号/值、和/或基于指示要对神经网络100进行的特定修改的校正信号来修改神经网络100。修改神经网络100可以包括仅修改兴趣点检测器子网络112、仅修改描述符子网络114、和/或修改子网络112、114两者。
图3示出根据一些实施例的第一训练步骤,其中使用包括多个合成图像的合成数据集128来训练兴趣点检测器子网络112。图3中所示的训练步骤可以仅包括兴趣点检测器子网络112,并可忽略描述符子网络114。由于没有预先存在的大型的兴趣点标记图像的数据库,因此,深度兴趣点检测器受益于经由四边形、三角形、直线和椭圆的合成数据渲染来创建由简化2D几何结构组成的大规模合成数据集。参考图7示出这些形状的示例。在该数据集中,可以通过用简单的Y形结点、L形结点、T形结点以及小椭圆的中心和线段的端点模拟兴趣来消除标签歧义。
一旦合成图像被渲染,单应性扭曲则被应用于每个图像以增加训练示例的数量。数据可以是实时生成的,并且没有示例可被网络看见两次。在单次训练迭代期间,合成图像130被提供给兴趣点检测器子网络112,其计算一组所计算的兴趣点108。将与合成图像130相对应的一组合成兴趣点132与所计算的感兴趣点108进行比较,并基于该比较来计算损失134。然后,基于损失134来修改兴趣点检测器子网络112。执行多次训练迭代,直到满足一个或多个条件,诸如损失134下降到低于预定阈值和/或合成数据集128被用尽。
与其它传统的角点检测方法(诸如FAST、哈里斯角点、以及Shi-Tomasi的“GoodFeatures To Track(对跟踪好的特征)”)相比,兴趣点检测器子网络112在合成数据集128上产生优异的结果。对兴趣点检测器子网络的进一步评估包括使用人类可容易用标注角点位置来标记的简单的合成几何结构。在一项性能评估中,使用了两个不同的兴趣点检测器子网络112的模型。这两个模型共享相同的编码器架构,但每层的神经元数量不同,第一个模型具有每层64-64-64-64-128-128-128-128-128个神经元,第二个模型具有每层9-9-16-16-32-32-32-32-32个神经元。向每个检测器提供具有合成数据集128的评估数据集,以确定它们如何良好地定位简单的角点。评估表明,兴趣点检测器子网络112在所有类别中都优于经典检测器,特别是经典检测器在随机输入方面有困难。
图4示出根据一些实施例的第二训练步骤,其中使用单应性适应来编译参考数据集144。参考数据集144表示伪标注数据集,其包括取自包括例如真实世界图像的未标记数据集136的图像以及参考兴趣点和参考描述符。输入图像102取自未标记数据集136并被提供给神经网络100,神经网络100基于输入图像102计算一组所计算的兴趣点108和所计算的描述符110。数据可以被存储在参考数据集144中作为参考集142,每个参考集142包括输入图像102、与输入图像102相对应的所计算的兴趣点108、以及与输入图像102相对应的所计算的描述符110。
在单次训练迭代期间,可以采用单应性适应以使用在输入图像102的大量单应性扭曲上的平均响应。单应性生成器138可用于在将图像传递经过神经网络100之前将多个随机或伪随机单应性应用于输入图像102。在神经网络100的另一侧,逆单应性生成器140可用于将多个逆单应性应用于所计算的兴趣点108,多个逆单应性是多个单应性的逆,以便解扭曲所计算的兴趣点108。可以针对相同的输入图像102重复该过程以获得多个未扭曲的所计算的兴趣点。多个未扭曲的所计算的兴趣点可被聚合/组合以获得一组参考兴趣点,其与的输入图像102和参考描述符一起作为参考集142的部分被存储在参考数据集144中。
附加地或可替代地,可以采用单应性适应以改进由神经网络100输出的描述符。例如,在单次训练迭代期间,单应性生成器138可用于在将图像传递经过神经网络100之前将多个随机或伪随机单应性应用于输入图像102。在神经网络100的另一侧,逆单应性生成器140可用于将多个逆单应性应用于所计算的描述符110,多个逆单应性是多个单应性的逆,以便解扭曲所计算的描述符110。可以针对相同的输入图像102重复该过程以获得多个未扭曲的所计算的描述符。多个未扭曲的计算描述符可以被聚合/组合以获得参考描述符,其与输入图像102和一组参考兴趣点一起作为参考集142的部分被存储在参考数据集144中。
单应性扭曲的数量Nh是该方法的超参数。在一些实施例中,第一单应性被设置为等于标识,以使得Nh=1(意味着没有适应)。在测试中,改变Nh的范围以尝试并确定优选值,在一些实施例中,Nh从小(Nh=10)到中(Nh=100)和大(Nh=1000)运行。结果表明,当执行超过100次单应性时,存在收益递减(diminishing return)。对于来自MS-COCO的被留出的一组图像,在没有任何单应性适应的情况下满足0.67的可重复性分数,当执行Nh=100次变换时21%的可重复性提升以及当Nh=1000时22%的可重复性提升充分证明了使用多于100次单应性的最小益处。
当组合兴趣点响应图或描述符图时,区分尺度内聚合和跨尺度聚合可以是有益的。真实世界图像通常包含不同尺度的特征,因为在高分辨率图像中会被认为感兴趣的一些点在较粗糙的较低分辨率图像中通常甚至不可见。然而,在单一尺度内,图像的变换(诸如旋转和平移)应当不使兴趣点出现/消失。图像的这一潜在的多尺度性质对尺度内聚合策略和跨尺度聚合策略具有不同的影响。尺度内聚合应当类似于计算集合的交集,跨尺度聚合应当类似于集合的并集。跨尺度的平均响应也可被用作兴趣点置信度的多尺度度量。当兴趣点在所有尺度上可见时,跨尺度的平均响应被最大化,并且这些可能是用于跟踪应用的最稳健的兴趣点。
当跨尺度进行聚合时,所考虑的尺度数量Ns是该方法的超参数。Ns=1的设置对应于没有多尺度聚合(或者仅在大的可能图像尺寸上进行聚合)。在一些实施例中,对于Ns>1,被处理的多尺度图像集被称为“多尺度图像棱锥体”。对该棱锥体的层级进行不同加权的加权方案可以向较高分辨率的图像给予较大的权重。这可能是重要的,因为在较低分辨率下检测到的兴趣点具有差的定位能力,并且最终聚合点也应当被定位。实验结果表明,尺度内聚合对可重复性具有最大影响。在一些实施例中,在训练时应用单应性适应技术以提高子网络112、114和网络100对真实图像的泛化能力。
在以下段落中描述对单应性适应方法的理论支持。在一些实施例中,初始兴趣点函数由fθ(·)表示,I是输入图像,x是结果点,H是随机单应性,以使得:
x=fθ(I)
理想的兴趣点运算符应当关于单应性而协变。如果输出随输入变换,则函数fθ(·)是随H协变的。换句话说,对于所有,协变检测器将满足:
Hx=fθ(H(I))
为了清楚起见,符号Hx表示被应用于所得到的兴趣点的单应性矩阵H,H(I)表示整个图像I被单应性矩阵H扭曲。将单应性相关项移动到右边会产生:
x=H-1 fθ(H(I))
在实践中,兴趣点检测器将不是完美协变的,在前面方程式中的不同的单应性将导致不同的兴趣点x。在一些实施例中,这通过在足够大的随机H样本上执行经验求和来解决。在样本上得到的聚合产生优异的兴趣点检测器F(·),其被定义如下:
在一些实施例中,并非所有矩阵都产生良好的结果,不是因为缺乏技术能力,而是因为并非所有可能的随机单应性都表示似然的相机变换。在一些实施例中,通过使用截尾正态分布在针对平移、缩放、平面内旋转、和对称透视变型的预定范围内进行采样,潜在的单应性被分解为更简单的表达更差的变换类别。这些变换与初始根中心裁剪(centercrop)组合在一起以帮助避免边界伪影。
图5示出根据一些实施例的第三训练步骤,其中使用参考数据集144训练神经网络100。在单次训练迭代期间,取回被包含在参考数据集144中的单个参考集142。每个参考集142可以包括输入图像102、与输入图像102相对应的一组参考兴趣点148和(可选地)与输入图像102相对应的参考描述符150。使用一个或多个单应性生成器138,通过将单应性应用于输入图像102来生成经扭曲的输入图像103,并通过将相同的单应性应用于参考兴趣点148来生成经扭曲的一组参考兴趣点149。顺序地或并发地,神经网络100-1接收输入图像102并基于输入图像102计算一组所计算的兴趣点108和所计算的描述符110,而神经网络100-2接收经扭曲的输入图像103并基于经扭曲的输入图像103计算一组所计算的扭曲的兴趣点109和所计算的扭曲的描述符111。
可以基于所计算的兴趣点108、所计算的描述符110、所计算的扭曲的兴趣点109、所计算的扭曲的描述符111、参考兴趣点148、经扭曲的参考兴趣点149和/或单应性H来计算损失L,如下所描述的。然后,可以基于损失L来修改神经网络100。基于损失L来修改神经网络100可以包括仅修改兴趣点检测器子网络112、仅修改描述符子网络114、和/或修改子网络112、114两者。在一些实施例中,神经网络100被修改,以使得对于使用相同参考集142的后续运行减小损失L。执行多次训练迭代,直到满足一个或多个条件,诸如损失L下降到低于预定阈值和/或参考数据集144被用尽。
在一些实施例中,损失L是两个中间损失的总和:一个是用于兴趣点检测器的Lp,一个是用于描述符的Ld。由于合成经扭曲的图像对的可用性,因此,能够实现同时损失优化,其中,合成经扭曲的图像对具有(a)伪标注兴趣点位置和(b)来自与两个图像相关的随机生成的单应性H的标注对应关系两者。损失L被平衡为关于λ的函数:
L(X,X′,D,D′,Y,Y′,S)=Lp(X,Y)+Lp(X′,Y′)+λLd(D,D′,S)
其中,X是所计算的兴趣点108(或与其相关),X'是所计算的扭曲的兴趣点109(或与其相关),Y是参考兴趣点148(或与其相关),Y'是经扭曲的参考兴趣点149(或与其相关),D是所计算的描述符110(或与其相关),D'是所计算的扭曲的描述符111(或与其相关)。S是相似性分数矩阵,并且可以完全基于随机生成的单应性H来确定。如图5所示,单应性H或相似性分数矩阵S可以被馈送到损失计算器。
兴趣点检测器损失函数Lp是单元格xhw∈X上的全卷积交叉熵损失。对应的标注兴趣点标签Y和个体条目是yhw。因此,损失是:
其中,
描述符损失被应用于来自输入图像102的描述符单元格dhw∈D和来自经扭曲的输入图像103的描述符单元格d'h'w'∈D'的所有对。(h,w)单元格和(h',w')单元格之间的单应性引起的对应关系可以被写成如下所示:
在一些实施例中,加权项λd有助于平衡比否定对应关系更多的正对应关系的存在。描述符损失由下式给出:
其中,
ld(d,d′;s)=λd*s*max(0,mp-dTd′)+(1-s)*max(0,dTd′-mn)
图6示出根据一些实施例的使用神经网络100来计算两个捕获的图像154-1、154-2之间的单应性H。所示的实施例可以对应于利用神经网络100的多个系统或设备,诸如光学设备,例如AR或混合现实(MR)设备、自动驾驶汽车、无人机、有人机、机器人、以及其它可能。
在使用本文所描述的技术进行训练之后,神经网络100可以在运行时模式下操作,在该模式下,从单个相机152或从多个相机接收捕获的图像154-1、154-2。例如,捕获的图像154-1可以从第一相机接收,捕获的图像154-2可以从第二相机接收。捕获的图像154-1、154-2可以由不同的相机同时或由不同的相机在不同的时间或由单个相机捕获。神经网络100可以经由网络输入116接收捕获的图像154-1、154-2,并且可以基于捕获的图像154-1计算一组所计算的兴趣点108-1和所计算的描述符110-1,以及基于捕获的图像154-2计算一组所计算的兴趣点108-2和所计算的描述符110-2。
在一些实施例中,在确定单应性H之前,通过所计算的兴趣点108-1与108-2之间的比较来确定点对应关系106,该比较由与每个兴趣点相关联的描述符通知。例如,可以匹配与不同兴趣点相关联的描述符。根据几种可能的相似性评分过程中的一种,具有最相似的描述符的与不同图像对应的兴趣点可以被确定为彼此对应。可以根据点对应关系106计算单应性H。例如,可以基于点对应关系106计算捕获的图像154-1、154-2之间的相对姿态,并且单应性H可以被计算为表示该相对姿态的相机旋转和平移的矩阵。附加地或可替代地,相对姿态可以等于单应性H。
图7示出根据一些实施例的合成数据集128的示例。在一些实施例中,合成数据集128可包含代表具有相对明确定义的兴趣点的多种形状类型的多个形状,诸如圆形、三角形、四边形(例如正方形、矩形、菱形、平行四边形等)、五边形、六边形、星形、立方体、球体、椭球体、圆柱体、圆锥体、棱柱体、棱锥体、直线等。
图8示出根据一些实施例的未标记数据集136的示例。未标记数据集136可以包含具有可变光照、噪声、相机效果等的真实世界的图像。真实图像比合成图像更加杂乱和嘈杂,并且包含不能在合成世界中容易建模的多种视觉效果。
图9示出根据一些实施例的神经网络100的示例架构。在所示的实施例中,神经网络100包括处理并降低输入图像维度的单个共享编码器。在一些实施例中,一旦被编码器处理,该架构则分成两个解码器“头”,其学习任务特定权重,一个用于兴趣点检测,另一个用于兴趣点描述。
在一些实施例中,神经网络100使用VGG型编码器来降低图像的维度。编码器包括卷积层、经由池化操作的空间下采样和非线性激活函数。在一些实施例中,编码器是三个最大池化层,针对维度为H×W的图像I定义Hc=H/8和Wc=W/8。低维度输出中的像素被称为单元格(cell),其中,编码器中的三个2×2非重叠最大池化操作导致8×8个像素单元格。编码器用较小的空间维度和较大的通道深度(即,Hc<H、Wc<W,F>1)映射输入图像I∈RHc×Wc×F。
在一些情况下,用于密集预测的网络设计可涉及编码器-解码器对,其中,空间分辨率经由池化或跨步卷积(strided convolution)而被降低,然后经由上卷积操作被上采样回到全分辨率。不幸的是,上采样层常常增加大量的计算并可引入不想要的棋盘格伪影,因此,对于本文所公开的一些实施例,兴趣点检测头利用显式解码器来减少模型的计算。在一些实施例中,兴趣点检测器头计算值X∈RHc×Wc×65,并输出大小为X∈RH×W的张量。65个通道对应于局部的非重叠8×8像素网格区域加上额外的“无兴趣点”垃圾箱。在逐通道的softmax函数之后,垃圾箱维度被移除,并执行RHc×Wc×64到RH×W的reshape函数。
描述符头计算D∈RHc×Wc×D,并输出大小为RH×W×D的张量。为了输出L2归一化后的固定长度描述符的密集图,可以使用类似于UCN的模型来首先输出半密集的描述符网格(例如,每8个像素一个描述符)。半密集地而不是密集地学习描述符减少了训练存储器并保持运行时易于控制。然后,解码器执行描述符的双三次插值,然后将激活值L2归一化为单位长度。如图9所示,两个解码器都对输入的共享和空间缩减表示进行操作。为了保持模型快速且易于训练,在一些实施例中,两个解码器都使用非学习的上采样来将表示带回到RH×W。
在一些实施例中,编码器是具有大小为64-64-64-64-128-128-128-128的八个3×3卷积层的类VGG架构。每两层有一个2×2最大池化层。每个解码器头具有256个单元的单个3×3卷积层,然后是分别针对兴趣点检测器和描述符具有65个单元和256个单元的1×1卷积层。在网络中的所有卷积层之后可以是ReLU非线性激活和BatchNorm归一化。
图10示出根据一些实施例的在第二训练步骤(参考图4描述的)期间采用的单应性适应的各个步骤。在步骤1002处,从未标记数据集136中取出未标记图像(例如,输入图像102)。在步骤1004处,在单应性生成器138处对多个随机单应性进行采样。在步骤1006处,将随机单应性应用于未标记图像,生成多个经扭曲的图像。在步骤1008处,经扭曲的图像被传递通过兴趣点检测器子网络112。在步骤1010处,由兴趣点检测器子网络112计算多个点响应(例如,多组所计算的兴趣点108)。在步骤1012处,通过将(由逆单应性生成器140生成的)多个逆单应性应用于点响应(即,热图)来解扭曲点响应,生成多个未扭曲的热图。在步骤1014处,通过例如通过各种可用技术中的一种技术进行平均、求和或组合来聚合未扭曲的热图。
图11示出根据一些实施例的随机单应性生成的某些方面。为了生成随机逼真的单应性变换,单应性可以被分解成多个简单变换,诸如平移、缩放、旋转、和对称透视畸变。为了帮助避免在样本区域包含原始图像之外的像素时发生的边界伪影,随机单应性从中心裁剪开始,如图11所示。简单变换的变换幅度是为随机高斯分布和均匀分布。为了生成最终的单应性变换,连续地应用随机采样的简单变换以获得最终的单应性。
图12示出可以利用本文所描述的实施例的AR设备1200的示意图。AR设备1200可以包括左目镜1202A和右目镜1202B。在一些实施例中,AR设备1200包括一个或多个传感器,其包括但不限于:直接附接到左目镜1202A或靠近左目镜1202A的左面向前世界相机1206A、直接附接到右目镜1202B或靠近右目镜1202B的右面向前世界相机1206B、直接附接到左目镜1202A或靠近左目镜1202A的面向左侧世界相机1206C、直接附接到右目镜1202B或靠近右目镜1202B的面向右侧世界相机1206D、被定位以便观察用户的左眼的左眼跟踪器、被定位以便观察用户的右眼的右眼跟踪器、以及环境光传感器、以及其它可能设备。在一些实施例中,AR设备1200包括一个或多个图像投影设备,诸如光学链接到左目镜1202A的左投影仪1214A和光学链接到右目镜1202B的右投影仪1214B。
AR设备1200的一些或全部组件可以是头戴式的,以使得投影图像可以被用户观看。在一个特定实现方式中,图12中所示的AR设备1200的所有组件可被安装到用户可佩戴的单个设备(例如,单个头戴装置)上。在另一个实现方式中,处理模块1250的一个或多个组件与AR设备1200的其它组件在物理上分离,并通过一个或多个有线和/或无线连接与其通信地耦合。例如,处理模块1250可以包括在AR设备1200的头戴式部分上的本地模块1252、和与本地模块1252在物理上分离并通信链接到本地模块1252的远程模块1256。远程模块1256可以采用各种配置来安装,诸如固定地附接到框架、固定地附接到用户所佩戴的头盔或帽子、被嵌入头戴式耳机中、或以其它方式可移除地附接到用户(例如,采用背包式配置、采用腰带耦合式配置等)。
处理模块1250可以包括处理器和相关联的数字存储器,诸如非易失性存储器(例如,闪存),这两者都可用于辅助数据的处理、缓存和存储。数据可以包括从(可以例如可操作地耦合到AR设备1200或者以其它方式附接到用户的)传感器捕获的数据,传感器诸如是相机1206、环境光传感器、眼睛跟踪器、麦克风、惯性测量单元、加速度计、指南针、GPS单元、无线电设备、和/或陀螺仪。例如,处理模块1250可以从相机1206接收(一个或多个)图像1220。具体地,处理模块1250可以从左面向前世界相机1206A接收(一个或多个)左前方图像1220A,从右面向前世界相机1206B接收(一个或多个)右前方图像1220B,从面向左侧世界相机1206C接收(一个或多个)左侧图像1220C,以及从面向右侧世界相机1206D接收(一个或多个)右侧图像1220D。在一些实施例中,(一个或多个)图像1220可以包括单个图像、一对图像、包括图像流的视频、包括成对图像流的视频等。(一个或多个)图像1220可以在AR设备1200通电时被周期性地生成并发送到处理模块1250,或者可以响应于由处理模块1250发送到一个或多个相机的指令而生成。作为另一个示例,处理模块1250可以从环境光传感器接收环境光信息。作为另一个示例,处理模块1250可以从眼睛跟踪器接收注视信息。作为另一个示例,处理模块1250可以从一个或两个投影仪1214接收图像信息(例如,图像亮度值)。
目镜1202A、1202B可以包括透明或半透明波导,其被配置为分别引导并耦出来自投影仪1214A、1214B的光。具体地,处理模块1250可以使左投影仪1214A将左虚拟图像光1222A输出到左目镜1202A上,并可以使右投影仪1214B将右虚拟图像光1222B输出到右目镜1202B上。在一些实施例中,每个目镜1202中可以包括与不同颜色和/或不同深度平面相对应的多个波导。相机1206A、1206B可以被定位以分别捕获与用户的左眼和右眼的视野基本上重叠的图像。因此,相机1206的放置可以靠近用户的眼睛,但不会太近以致遮蔽用户的视野。可替代地或附加地,相机1206A、1206B可以被定位以分别与虚拟图像光1222A、1222B的耦入位置对准。相机1206C、1206D可以被定位以捕获用户的侧面的图像,例如,在用户的外围视觉中或在用户的外围视觉之外。使用相机1206C、1206D捕获的(一个或多个)图像1220C、1220D不必与使用相机1206A、1206B捕获的(一个或多个)图像1220A、1220B重叠。
图13示出根据一些实施例的训练神经网络100和使用神经网络100执行图像兴趣点检测和描述的方法1300。方法1300的一个或多个步骤可以按不同于所示的实施例中所示的顺序执行,并且方法1300的一个或多个步骤可以在方法1300的执行期间被省略。
在步骤1302处,训练神经网络100。在步骤1302-1处,使用合成数据集128训练神经网络100的兴趣点检测器子网络112。合成数据集128可以包括多个合成图像和与多个合成图像相对应的多组合成兴趣点。参考图3进一步描述步骤1302-1。
在步骤1302-2处,使用兴趣点检测器子网络112和/或描述符子网络114来生成参考数据集144。在一些实施例中,使用单应性适应来生成参考数据集144,其中,通过将多个单应性应用于输入图像102来生成多个经扭曲的图像,并且通过将多个经扭曲的图像传递经过兴趣点检测器子网络112来计算多组所计算的兴趣点108。然后,对多组所计算的兴趣点108进行解扭曲和聚合以获得被存储在参考数据集144中的一组参考兴趣点。附加地或可替代地,通过将多个经扭曲的图像传递经过描述符子网络114来计算多个所计算的描述符110。然后,对多个所计算的描述符110进行解扭曲和聚合以获得被存储在参考数据集144中的参考描述符。参考图4进一步描述步骤1302-2。
在步骤1302-3处,使用参考数据集144并发地训练兴趣点检测器子网络112和描述符子网络114。在单次训练迭代期间,包括输入图像102、参考兴趣点148和(可选地)参考描述符150的参考集142从参考数据集144中取回并被用于计算损失L。可基于所计算的损失L来修改兴趣点检测器子网络112和描述符子网络114中的一者或两者。参考图5进一步描述步骤1302-3。
在步骤1304处,使用神经网络100执行图像兴趣点检测和描述。在一些实施例中,使用相机152或两个不同的相机来捕获第一捕获图像154-1和第二捕获图像154-2。然后,捕获的图像154-1、154-2可以被传递经过神经网络100。所计算的感兴趣点108-1、108-2和所计算的描述符110-1、110-2可以用于计算单应性H。在一些实施例中,AR设备1200可以基于单应性H来调整虚拟图像光1222A、1222B中的一者或两者。例如,当AR设备1200的用户在观看通过用户观看由投影仪1214A、1214B投影到目镜1202A、1202B上的虚拟图像光1222A、1222B而感知的虚拟内容时转动他/她的头部时,将需要基于与新的视角相关联的单应性H来调整虚拟光。参考图6进一步描述步骤1304。
图14示出根据一些实施例的训练神经网络100以用于图像兴趣点检测和描述的方法1400。方法1400的一个或多个步骤可以按不同于所示的实施例中所示的顺序执行,并且方法1400的一个或多个步骤可以在方法1400的执行期间被省略。
在步骤1402处,通过将单应性应用于输入图像102来生成经扭曲的输入图像103。在步骤1404处,通过将单应性应用于参考兴趣点148来生成经扭曲的参考兴趣点149。在步骤1406处,由神经网络100接收输入图像102作为输入来计算所计算的兴趣点108和所计算的描述符110。在步骤1408处,由神经网络100接收经扭曲的输入图像103作为输入来计算所计算的扭曲的兴趣点109和所计算的扭曲的描述符111。
在步骤1410处,基于以下中的一个或多个来计算损失L:所计算的兴趣点108,所计算的描述符110,所计算的扭曲的兴趣点109,所计算的扭曲的描述符111,参考兴趣点148,经扭曲的参考兴趣点149,以及单应性。在一些实施例中,进一步基于单应性来计算损失L。在步骤1412处,基于损失L来修改神经网络100。
应当注意,可以在本文所描述的各种实施例中使用的神经网络不限于参考图1至图14所描述的示例。在一些实施例中,可以使用其它技术来不同地训练神经网络。此外,在一些实施例中,包括用于每个图像的良好且一致的特征(例如角点)的数据库可被用作训练数据。在这样的情况下,训练数据包括图像及其相应的标注检测。例如,训练数据可以包括将图像与在每个图像中所检测到的特征(例如,角点、角点的最初等)相关联存储的数据结构。这种训练数据可用于训练神经网络对区域进行分类(例如,图像中的区域是否具有良好特征候选)。在一些实施例中,可以使用其它机制来提供良好的“标注”检测。例如,在一些实施例中,可以使用任何已知的检测器来在训练数据集上运行,并且可以用它来训练神经网络模型。在一些实施例中,良好特征(例如,角点)的任何其它数据库可被用于训练神经网络模型。
在一些实施例中,本文所描述的神经网络可以被实现为头戴式图像显示设备的一部分,或者可以被实现为与头戴式图像显示设备通信的组件。在一些情况下,为了相对于用户的环境定位头戴式图像显示设备的用户,获取环境的定位图。然后,将来自图像显示设备的相机系统的实时输入图像与定位图进行匹配以定位用户。例如,可以从输入图像中检测输入图像的角点特征,并与定位图的角点特征进行匹配。在一些实施例中,本文所描述的神经网络可以处理输入图像以识别作为潜在角点候选的一组特征,然后,使用角点检测器来基于由神经网络识别的潜在角点候选来识别一个或多个角点。
图15至图18示出各种实施例中的图像显示系统1600的各种组件。图像显示系统1600包括图像显示设备1601和用于向图像显示设备1601提供输入的装置1700。将在下面更详细地描述装置1700。图像显示设备1601可以是VR设备、AR设备、MR设备或任何其它类型的显示设备。图像显示设备1601包括:由最终用户1550佩戴的框架结构1602;由框架结构1602承载的显示子系统1610,以使得显示子系统1610被定位在最终用户1550的眼睛前面;以及由框架结构1602承载的扬声器1606,以使得扬声器106邻近最终用户1550的耳道(可选地,另一个扬声器(未示出)邻近最终用户1550的另一个耳道以提供立体声/可塑形声音控制)。显示子系统1610被设计为向最终用户1550的眼睛呈现光图案,该光图案可被舒适地感知为对物理现实的增强,具有高水平的图像质量和三维感知以及能够呈现二维内容。显示子系统1610以提供单一相干场景的感知的高频率呈现帧序列。
在所示的实施例中,显示子系统1610采用“光学透视”显示器,用户可以通过该显示器经由透明(或半透明)元件直接观看来自真实对象的光。透明元件(通常被称为“组合器”)将来自显示器的光叠加在用户对真实世界的视图上。为此,显示子系统1610包括部分透明的显示器。显示器被定位在最终用户1550的眼睛与周围环境之间的最终用户1550的视野中,以使得来自周围环境的直接光通过显示器被传输到最终用户1550的眼睛。
在所示的实施例中,图像投影组件向部分透明的显示器提供光,从而与来自周围环境的直接光相结合,并从显示器被传输到用户的眼睛1550。投影子系统可以是基于光纤扫描的投影设备,并且显示器可以是基于波导的显示器,来自投影子系统的扫描光被注入其中以产生例如在比无穷远更近的单个光学观看距离(例如,手臂的长度)处的图像、在多个离散光学观看距离或焦平面处的图像、和/或在多个观看距离或焦平面上堆叠以表示立体3D对象的图像层。光场中的这些层可以被足够紧密地堆叠在一起,以在人类视觉子系统看起来是连续的(即,一层在相邻层的混淆锥内)。附加地或可替代地,图像元素可以跨两层或更多层被混合以增加光场中的层之间的过渡的感知连续性,即使这些层被更稀疏地堆叠(即,一层在相邻层的混淆锥以外)。显示子系统1610可以是单目或双目的。
图像显示设备1601还可以包括一个或多个传感器(未示出),其被安装到框架结构1602以用于检测最终用户1550的头部1554的位置和移动和/或最终用户1550的眼睛位置和眼间距离。这种传感器可以包括图像捕获设备(诸如相机)、麦克风、惯性测量单元、加速度计、指南针、GPS单元、无线电设备、和/或陀螺仪、或前述的任何组合。这些传感器中的许多传感器在如下的假设下操作:它们所附接的框架1602进而基本上被固定到用户的头部、眼睛和耳朵。
图像显示设备1601还可以包括用户取向检测模块。用户取向模块检测最终用户1550的头部1554的瞬时位置(例如,经由被耦合到框架1602的传感器),并可基于从传感器接收的位置数据来预测最终用户1550的头部1554的位置。检测最终用户1550的头部1554的瞬时位置便于确定最终用户1550正在看的特定实际对象,从而提供要与该实际对象相关生成的特定虚拟对象的指示,并进一步提供虚拟对象要被显示的位置的指示。用户取向模块还可基于从传感器接收的跟踪数据来跟踪最终用户1550的眼睛。
图像显示设备1601还可以包括可采用多种形式中的任一种形式的控制子系统。控制子系统包括多个控制器,例如一个或多个微控制器、微处理器或中央处理单元(CPU)、数字信号处理器、图形处理单元(GPU)、其它集成电路控制器(诸如专用集成电路(ASIC)、可编程门阵列(PGA)(例如现场PGA(FPGA)))、和/或可编程逻辑控制器(PLU)。
图像显示设备1601的控制子系统可以包括中央处理单元(CPU)、图形处理单元(GPU)、一个或多个帧缓冲器、以及用于存储三维场景数据的三维数据库。CPU可以控制整体操作,而GPU可以从被存储在三维数据库中的三维数据渲染帧(即,将三维场景转换为二维图像)并将这些帧存储在帧缓冲器中。一个或多个附加集成电路可以控制从帧缓冲器中读入和/或读出帧以及控制显示子系统1610的图像投影组件的操作。
图像显示设备101的各种处理组件可以被物理地包含在分布式子系统中。例如,如图15至图18所示,图像显示设备1601可以包括诸如通过引线或无线连接1636被可操作地耦合到显示子系统1610和传感器的本地处理和数据模块1630。本地处理和数据模块1630可以以多种配置被安装,诸如固定地附接到框架结构1602(图15)、固定地附接到头盔或帽子1556(图16)、可移除地附接到最终用户1550的躯干1558(图17)、或以腰带耦合式配置可移除地附接到最终用户1550的臀部1560(图18)。图像显示设备1601还可以包括诸如通过引线或无线连接1638、1640被可操作地耦合到本地处理和数据模块1630的远程处理模块1632和远程数据储存库1634,以使得这些远程模块1632、1634在操作上彼此耦合并可用作本地处理和数据模块1630的资源。
本地处理和数据模块1630可以包括高效的处理器或控制器以及数字存储器(诸如闪存),这两者都可被用于辅助处理、缓存和存储从传感器捕获的数据和/或使用远程处理模块1632和/或远程数据储存库1634获取和/或处理的数据,可用于在这样的处理或取回之后传递到显示子系统1610。远程处理模块1632可以包括被配置为分析和处理数据和/或图像信息的一个或多个相对强大的处理器或控制器。远程数据储存库1634可以包括可通过互联网或“云”资源配置中的其它网络配置可用的相对大规模的数字数据存储设施。在一些实施例中,在本地处理和数据模块1630中存储所有数据并执行所有计算,从而允许来自任何远程模块的完全自主使用。
上述各种组件之间的耦合1636、1638、1640可以包括用于提供有线或光通信的一个或多个有线接口或端口、或用于诸如经由RF、微波和IR提供无线通信的一个或多个无线接口或端口。在一些实现方式中,所有的通信可以是有线的,而在其它实现方式中,所有的通信可以是无线的。在更进一步的实现方式中,有线通信和无线通信的选择可以与图15至图18中所示的不同。因此,不应将有线或无线通信的特定选择视为限制。
在一些实施例中,用户取向模块被包含在本地处理和数据模块1630中,而CPU和GPU被包含在远程处理模块中。在可替代实施例中,CPU、GPU或其部分可被包含在本地处理和数据模块1630中。3D数据库可与远程数据储存库134相关联或被设置在本地。
一些图像显示系统(例如,VR系统、AR系统、MR系统等)使用被嵌入有深度平面信息以生成看起来源自相应的深度平面的图像的多个体相位全息图、表面浮雕全息图、或光导光学元件。换句话说,衍射图案或衍射光学元件(“DOE”)可以被嵌入或压印/压花在光导光学元件(“LOE”;例如,平面波导)上,以使得准直光(具有基本上平面的波前的光束)基本上沿LOE全内反射,它在多个位置处与衍射图案相交并朝向用户的眼睛出射。DOE被配置为使得通过其中从LOE出射的光是接近的,以使得它们看起来源自特定深度平面。可以使用光学聚光透镜(“聚光器”)来生成准直光。
例如,第一LOE可以被配置为将看起来源自光学无限深度平面(0屈光度)的准直光传送到眼睛。另一个LOE可以被配置为传送看起来源自2米(1/2屈光度)距离的准直光。再一个LOE可以被配置为传送看起来源自1米(1屈光度)距离的准直光。通过使用堆叠的LOE组件,可以理解,可以创建多个深度平面,其中每个LOE被配置为显示看起来源自特定深度平面的图像。应当理解,堆叠可以包括任何数量的LOE。然而,需要至少N个堆叠的LOE来生成N个深度平面。进一步地,可以使用N、2N或3N个堆叠的LOE来在N个深度平面处生成RGB彩色图像。
为了向用户呈现3D虚拟内容,图像显示系统1600(例如,VR系统、AR系统、MR系统等)将虚拟内容的图像投影到用户的眼睛中,以使得它们看起来源自Z方向(即,垂直远离用户的眼睛)上的各种深度平面。换句话说,虚拟内容不仅可以在X和Y方向(即,在与用户的眼睛的中心视轴正交的2D平面中)上改变,而且可以看起在Z方向上改变,以使得用户可以感知非常接近或处于无限距离或处于其间任何距离的对象。在一些实施例中,用户可以同时感知在不同深度平面处的多个对象。例如,用户可以看到虚拟龙从无限远处出现并向用户跑来。可替代地,用户可以同时看到距离用户3米远的虚拟鸟和距离用户一臂长(约1米)的虚拟咖啡杯。
多平面聚焦系统通过将图像投影到位于Z方向上距离用户的眼睛的相应固定距离处的多个深度平面中的一些或所有深度平面上来创建可变深度的感知。现在参考图19,应当理解,多平面聚焦系统可以在固定深度平面1650(例如,图19中所示的六个深度平面1650)处显示帧。尽管MR系统可以包括任何数量的深度平面1650,但是,一个示例性多平面聚焦系统在Z方向上具有六个固定深度平面1650。在六个深度平面1650中的一个或多个深度平面处生成虚拟内容时,创建3D感知,以使得用户感知在距离用户的眼睛的不同距离处的一个或多个虚拟对象。假设人眼对于距离较近的对象比看起来远的对象更敏感,则生成更靠近眼睛的更多个深度平面1650,如图19所示。在一些实施例中,深度平面1650可以被放置在彼此相距相等的距离处。
可以屈光度为单位来测量深度平面位置1650,该屈光度是等于以米为单位测量的焦距的倒数的光焦度的单位。例如,在一些实施例中,深度平面1可以是1/3屈光度远,深度平面2可以是0.3屈光度远,深度平面3可以是0.2屈光度远,深度平面4可以是0.15屈光度远,深度平面5可以是0.1屈光度远,深度平面6可以表示无限远(即,0屈光度远)。应当理解,一些实施例可以在其它距离/屈光度处生成深度平面1650。因此,在战略性放置的深度平面1650处生成虚拟内容时,用户能够在三个维度中感知虚拟对象。例如,当在深度平面1中被显示时,用户可感知第一虚拟对象离他很近,而另一个虚拟对象出现在深度平面6的无限远处。可替代地,虚拟对象可以首先被显示在深度平面6处,然后是深度平面5,依此类推,直到虚拟对象看起来非常接近用户。应当理解,为了说明的目的,上述的示例被显著地简化。在一些实施例中,所有六个深度平面可以被集中在远离用户的特定焦距上。例如,如果要被显示的虚拟内容是离用户半米远的咖啡杯,则可以在该咖啡杯的不同横截面处生成所有六个深度平面,从而为用户提供该咖啡杯的高度颗粒化3D视图。
在一些实施例中,图像显示系统100(例如,VR系统、AR系统、MR系统等)可以用作多平面聚焦系统。换句话说,所有六个LOE可被同时照射,以使得随着光源将图像信息快速地传递到LOE 1、然后LOE 2、然后LOE 3等等,快速连续地生成看起来源自六个固定深度平面的图像。例如,可以在时间1注入期望图像的一部分(其包括在光学无限远处的天空的图像),并可以利用保持光的准直的LOE(例如,图19中的深度平面6)。然后,可以在时间2注入更近的树枝的图像,并可以利用被配置为创建看起来源自10米远的深度平面(例如,图19中的深度平面5)的图像的LOE;然后,可以在时间3注入笔的图像,并可以利用被配置为创建看起来源自1米远的深度平面的图像的LOE。可以以快速时间顺序(例如,以360Hz)的方式重复该范式类型,以使得用户的眼睛和大脑(例如,视觉皮层)将输入感知为同一图像的所有部分。
图像显示系统1600可以投影看起来源自沿着Z轴(即,深度平面)的各个位置的图像(即,通过发散或会聚光束),以生成用于3D体验/场景的图像。如在本申请中所使用的,光束包括但不限于从光源辐射的光能(包括可见和不可见光能)的定向投影。生成看起来源自不同深度平面的图像符合用户的眼睛对该图像的聚散度和调节,并最小化或消除辐辏调节冲突(vergence-accommodation conflict)。
定位图
图20示出用于确定地图以允许图像显示设备1601定位图像显示设备1601的用户1550的方法。如图所示,当用户1550正在使用图像显示设备1601时,用户1550可以移动图像显示设备1601以达到不同的观看位置和/或方向。例如,用户1550可以转动他/她的头部、转动他/她的身体、和/或走到不同的位置。在一些实施例中,图像显示设备1601包括面向前相机。在一些实施例中,相机可以是可见光相机(例如,RGB相机)。在一些实施例中,相机可以是红外光相机(例如,IR/深度相机)。在一些实施例中,相机可以是全光谱相机(例如,合为一体的可见光相机和深度相机)。通过移动图像显示设备1601,图像显示设备1601的面向前相机的视野将相应地改变。当用户1550处于不同姿态时,图像显示设备1601的相机生成对应的图像。在所示的示例中,用户1550通过转动他/她的头部来实现三个不同的姿态,并且图像显示设备1601的面向前相机生成与三个姿态对应的三个图像1700a-1700c。图像1700a-1700c中的每个图像捕获环境中的某些对象1702。例如,图像1700b捕获对象1702a-1702d,图像1700c捕获对象1702b-1702e。取决于用户1550的姿态,环境中的某些对象可以在相机的多个图像1700中被捕获,而某些其它对象可以仅在一个图像1700中被捕获。在一些实施例中,图像显示设备1601的处理单元1630被配置为从图像显示设备1601的相机获得图像1700,并执行图像处理以从图像1700中提取特征以创建地图。地图可以被存储在图像显示设备1601的非暂态介质中,并可以由处理单元1630使用以执行用户1550的定位。因此,地图用作定位图。在所示的实施例中,地图是通过用户1550的不同姿态检测到的环境的三维表示。
在一些实施例中,用户1550周围的环境可被划分为多个单元格。在这样的情况下,可以针对环境的不同单元格采用上述的地图创建技术。图21示出环境被划分成多个单元格1800的示例。每个单元格1800是表示环境的一部分的所定义的三维空间。每个单元格1800可以具有预定大小和形状。例如,每个单元格1800可以具有2m×2m的覆盖范围和2m的高度。在其它实施例中,每个单元格1800可以具有其它覆盖尺寸和/或其它高度。此外,在一些实施例中,每个单元格1800可以不具有所示的矩形配置,而可以具有其它形状。在所示的实施例中,单元格1800都具有相同的形状和尺寸。在一些实施例中,至少两个单元格1800可具有不同的相应尺寸和/或形状。
在一些实施例中,图像显示设备1601的用户1550可以去到环境中与不同单元格1800相对应的不同位置,并且可以使用图像显示设备1601的相机扫描对应单元格中的空间以针对环境的各单元格创建不同的地图。这些地图可以被存储在图像显示设备1601的非暂态介质中以允许图像显示设备1601的处理单元1630执行用户1550的定位。
在使用定位图定位用户1550期间,图像显示设备1601的相机捕获在用户1550的当前位置和取向处的环境的图像。这种相机图像用作跟踪图像(跟踪图)以允许图像显示设备1601的处理单元1630跟踪用户1550的位置。特别地,图像显示设备1601的处理单元1630处理来自相机的跟踪图像以确定跟踪图像中的特征是否与定位图中的特征相匹配。如果找到匹配,则处理单元1630可以基于所匹配的特征来确定用户1550的位置和取向。在一些实施例中,定位图可以包含比由图像显示设备1601的相机捕获的跟踪图像更少的信息(例如,特征)。这是有利的,因为它允许处理单元1630有效地将跟踪图像的特征与定位图中的特征相匹配。在一些实施例中,定位图可被称为“规范图”。在执行定位时,处理单元1630执行特征提取以从跟踪图像中提取特征,并将所提取的特征与规范图中的特征进行匹配。在一些实施例中,处理单元1630被配置为查找跟踪图像的(一个或多个)特征与规范图的(一个或多个)特征之间的六自由度变换以定位用户1550。在一些实施例中,处理单元1630被配置为查找跟踪图像本身与规范图本身之间的六自由度变换以定位用户1550。在一些实施例中,一旦用户1550可以使用定位图相对于他/她的环境被成功地定位,处理单元1630则可以允许用户1550使用定位图来相对于环境放置虚拟内容,从先前的会话中取得虚拟内容,与其他(一个或多个)用户共享虚拟内容等。
在使用图像显示设备1601期间,处理单元1630可能需要对由图像显示设备1601的相机系统提供的图像执行特征检测。例如,在一些实施例中,当使用图像创建定位图时,处理单元1630可能需要在这些图像中检测特征,诸如角点。处理单元1630可以利用所检测到的特征作为构建定位图的特征。当使用定位图执行定位时,处理单元1630可能需要将跟踪图像中的特征与定位图的特征进行匹配。因此,处理单元1630可以被配置为检测跟踪图像中的特征。在角点通常从不同的观看方向可检测的意义上,诸如角点的特征通常是更稳定的特征。因此,图像中的角点的可检测性可以不被视点的变化显著影响。因此,角点是在跟踪图像与定位图之间进行匹配的良好特征。角点也是用于在不同时间和不同观看方向上生成的图像之间进行立体匹配的良好特征。在一些实施例中,可以使用除了角点之外的特征。
特征检测
图22A示出处理单元1630,特别示出了用于实现角点检测的组件。如图所示,处理单元1630包括硬件1910和软件1920。处理单元1630还包括伽马校正器1912、图像调整器1914、可选的神经网络1915、角点检测器1916、可选的非极大值抑制器1922、可选的空间分箱(spatial binning)模块1924、以及角点位置确定器1926。在所示的实施例中,伽马校正器1912、图像调整器1914、神经网络1915和角点检测器1916是使用处理单元1630的硬件1910来实现的。此外,在所示的实施例中,非极大值抑制器1922、空间分箱模块1924和角点位置确定器1926是使用处理单元1630的软件1920来实现的。在一些实施例中,伽马校正器1912和图像调整器1914可以使用图像信号处理器1911来实现。在一些实施例中,处理单元1630不包括神经网络1915。相反,处理单元1630可以被配置为与神经网络1915通信。
在一些实施例中,伽马校正器1912、图像调整器1914、神经网络1915、角点检测器1916、或前述的任何组合可以使用处理单元1630的软件1920来实现。此外,在一些实施例中,非极大值抑制器1922、空间分箱模块1924、角点位置确定器1926、或前述的任何组合可以使用处理单元1630的硬件1910来实现。
在一些实施例中,处理单元1630中的组件1912、1914、1915、1916、1922、1924、1926中的任一个可以使用硬件、软件或两者的组合来实现。
伽马校正器1912被配置为调整像素值与亮度之间的非线性关系。例如,在一些实施例中,伽马校正器1912可以被配置为调整像素值与亮度之间的关系,以使得它们的关系是线性的、或者与最初的原始图像中的关系相比更线性。
图像调整器1914被配置为获得图像,并可选地缩减图像的分辨率以提供调整后图像。在一些实施例中,图像调整器1914被配置为获得具有第一分辨率的第一图像,并缩减第一图像以获得具有小于第一分辨率的第二分辨率的第二图像。例如,在一些情况下,第一图像可以具有VGA分辨率,而第二图像可以具有QVGA分辨率。在这样的情况下,第二图像具有的像素数量是第一图像的像素数量的四分之一。在其它示例中,第二图像具有的像素数量可以是第一图像的像素数量的其它分数。
神经网络1915可以是参考图1至图14中任一个描述的任一种神经网络或其组件。神经网络1915被配置为处理来自图像显示设备1601的(一个或多个)输入图像(例如,(一个或多个)相机图像),并在每个输入图像中识别一组特征。在一些实施例中,在每个输入图像中识别的该组特征可以用作可在哪里检测到角点的“提示”。
角点检测器1916被配置为基于一个或多个标准来检测图像中的(一个或多个)角点。在所示的实施例中,角点检测器1916被配置为使用由神经网络1915识别的特征的位置来确定角点的可能位置,并对这些位置执行角点检测以检测角点。在一些实施例中,角点检测器1926被配置为使用哈里斯角点检测技术来检测图像中的角点。哈里斯角点检测是通过计算每个像素的梯度来实现的。如果绝对梯度值在两个方向(例如,正交方向)上都大(例如,高于某个(或某些)阈值),则角点检测器1916可以将该像素确定为角点。在哈里斯角点检测技术的一种实现方式中,采用以下算法来对图像中的每个像素计算分数:
(1)计算图像的x和y导数
其中,Gx和Gy是一阶方向微分。在一些情况下,可以通过在x、y方向上对灰度值和差分算子进行卷积来计算Gx和Gy。
(2)在每个像素处计算导数的乘积
Ix2=Ix.Ix Iy2=Iy.Iy Ixy=Ix.Iy
(3)在每个像素处计算导数的乘积之和
Sx2=Gσ1*Ix2 Sy2=Gσ1*Iy2 Sxy=Gσ1*Ixy
(4)在每个像素(x,y)处定义矩阵
可替代地,矩阵H可以被表示为:
其中,(Ix,Iy)是在(x,y)处的梯度。
(5)针对每个像素计算分数(哈里斯响应)
R=Det(H)-k(Trace(H))^2
其中,Det(H)=λ1λ2,Trace(H)=λ1+λ2,并且λ1和λ2是H的特征值。
在一些实施例中,哈里斯响应R和/或特征值λ1、λ2可以由角点检测器1916用在用于角点检测的一个或多个标准中。图23A示出根据哈里斯评分函数使用响应R和/或特征值对图像点进行分类。图23B示出根据Shi-Tomasi标准使用特征值对图像点进行分类。在一些实施例中,例如,如图23A至图23B所示,如果两个特征值λ1、λ2都小,则像素可以是平坦区的一部分。因此,角点检测器1916可以被配置为至少部分地基于min(λ1,λ2)>阈值的标准来检测角点。在一些实施例中,如图23A至图23B所示,如果较大的特征值λ2比较小的特征值λ1大一个阈值,则该像素可以是具有线性配置(例如,线、边等)的对象的一部分。因此,角点检测器1916可以被配置为至少部分地基于λ2/λ1<阈值的标准来检测角点。在一些实施例中,角点检测器1916可以被配置为基于两个标准来检测角点:
(1)min(λ1,λ2)>阈值T1,
(2)λ2/λ1<阈值T2。
在一些实施例中,阈值T1可以被设置为300。在一些实施例中,阈值T1可以具有不同于300的其它值。在一些实施例中,阈值T2可以被设置为5。在一些实施例中,阈值T2可具有不同于5的其它值。
在一些实施例中,以上两个标准可以按照Det(H)和Trace(H)来表示,如下:
(1)Trace(H)>2T1
(2)Det(H)-T1×Trace(H)+T12>0
在这样的情况下,角点检测器1516可以被配置为使用不同的k(k1,k2)的两个哈里斯响应来计算Det和Trace,如下:
当T2=5时,基于k1的哈里斯响应>0,其中,
在一些实施例中,可以以会简化计算的方式选择k2。例如,上面的等式(5)可以被改写为:
(6)(基于k2的哈里斯响应-基于k1的哈里斯响应)>(4T12×(k1-k2))
在这种情况下,可以选择k2,以使得右边的项((4T1^2)*(k1-k2))变为1,并且可以基于左边的表达式大于1来简化评估。在一些实施例中,可以基于以下公式计算k2:
因此,如果k1被设置为0.139,则基于上述等式,k2等于0.00478125。
应当注意,k1和k2并不限于具有上述值,并且在其它实施例中可以具有其它值。例如,在一些实施例中,k1可以具有从0.1到0.2的任何值。此外,例如在一些实施例中,k2可以具有小于0.001的值。
另外,应当注意,如在本说明书中使用的,术语“角点”不限于两条直线之间的交点,也可以是指沿着连接两条线(例如,直线)的曲线的任何点,其中,曲线可以具有曲率半径(以使得曲率半径越小,“角点”越尖锐)。
在一些实施例中,角点检测器1916可以被配置为基于一个或多个标准来对第一图像应用一次或多次哈里斯角点检测以检测第一图像中的一组角点。角点检测器1916还可以被配置为基于一个或多个标准来对第二图像应用一次或多次哈里斯角点检测以检测第二图像中的一组角点。可以选择一个或多个标准以使得仅具有某些期望特征的角点被检测到。
此外,应当注意,角点检测器1916并不限于基于上述的公式和示例值来检测角点,并且角点检测器1916可以被配置为基于可以是上述公式的派生、变形和/或修改的其它公式来检测角点。此外,在其它实施例中,角点检测器1916可以被配置为基于与哈里斯角点检测技术不同的其它角点检测技术来检测角点。在一些实施例中,可以检测除了角点之外的特征,并且本领域的普通技术人员会理解本文所公开的原理将适用。
返回到图22A,非极大值抑制器1922被配置为对所检测到的角点执行非极大值抑制,以使得防止对相同角点的重复检测。在一些情况下,由于图像的图像分辨率和/或实现角点检测的方式,可能多次检测到相同角点。例如,角点检测器1916可以在彼此靠近的三个位置处三次检测到同一角点,当实际上这三个所检测到的角点都针对图像中的同一角点时。因此,如在本说明书中所使用的,术语“角点”可以是指一个角点、或者是被多次检测到的角点的(一个或多个)实例。在一些实施例中,非极大值抑制器1922可以被配置为执行3×3非极大值抑制。在这样的情况下,如果在3×3像素区域内检测到多个角点,则非极大值抑制器1922将选择该区域中的多个所检测到的角点之一作为所检测到的角点。在一些实施例中,非极大值抑制器1922可以被配置为对于区域内的各个所检测到的角点确定角点分数,并且选择具有最高分数的角点作为该区域的所检测的角点。该分数可以指示所检测的角点在所检测的位置处的概率或者所检测到的角点的位置的准确性。在一些实施例中,可以对所检测到的角点使用除了非极大值抑制之外的方法,以使得防止对相同角点的重复检测,并且本领域的普通技术人员会理解,本文所公开的原理将适用。
空间分箱模块1924被配置为针对给定图像选择所检测到的角点中的某些角点,以使得图像的不同区域将具有所检测到的角点的稍微均匀的分布。特别地,在非极大值抑制器422去除重复的所检测到的角点之后,对于给定图像可能仍然存在很多所检测到的角点,和/或剩余的所检测到的角点在图像的不同区域中可能具有不同的分布。空间分箱模块1924被配置为选择所检测到的角点的子集,以使得图像的不同区域将具有满足某个标准的某一最大数量的所检测到的角点。在一些实施例中,第二图像可以被划分成两个或更多个区域。例如,第二图像可以被划分成四个区域。这四个区域可具有不同的所检测到的角点的相应数量以及相应分数,如下:
区域1:(C1,0.7),(C2,0.8)(C3,0.85)(C4,0.9)
区域2:(C5,0.6),(C6,0.65)
区域3:(C7,0.66),(C8,0.82)
区域4:(C9,0.9),(C10,0.88),(C11,0.63)
在上面的示例中,区域1具有四个所检测到的角点C1-C4,区域2具有两个所检测到的角点C5-C6,区域3具有两个所检测到的角点C7-C8,并且区域4具有三个所检测到的角点C9-C11。如果每个区域的期望最大角点数量被选择为三,并且如果用于选择角点的标准是角点必须具有0.7或更高的分数,则空间分箱模块1924可以针对不同的相应区域1-4选择以下角点:
区域1:C2、C3、C4(注意,角点C1在区域1中具有最低分数,因此,选择区域1中分数最高的三个角点;空间分箱模块1924不能选择所有4个角点C1-C4,因为在示例中规定最大角点数量是3)。
区域2:没有角点被选择(因为角点C5和C6二者的分数都不满足最低分数标准)。
区域3:仅选择角点C8(因为角点C7的分数不满足最低分数标准)。
区域4:仅选择角点C9和C10(因为角点C11的分数不满足最低分数标准)。
角点位置确定器1926被配置为确定各个所检测到的角点的最终位置。因为角点是由角点检测器1916基于分辨率可被降低的图像检测到的,所以,可能期望基于更高分辨率图像来精确这些所检测到的角点的位置。如所讨论的,在一些实施例中,图像调整器1914被配置为将具有第一分辨率的第一图像转换成具有第二分辨率的第二图像。在一些实施例中,用于检测角点的第二图像的第二分辨率是第一图像的第一分辨率的四分之一。按照该示例,对于第二图像中的已被识别为所检测到的角点的位置的每个像素,在第一图像中存在与所检测到的角点相对应的四个对应像素。因此,角点位置确定器1926可以被配置为选择第一图像中的四个像素中的一个像素(其与第二图像中所检测到的角点的像素相对应)作为所检测到的角点。
在一些实施例中,角点位置确定器1926被配置为基于在第一图像中检测到的一个或多个角点来(从第一图像中的四个像素中)选择一个像素。例如,角点检测器1916可以检测在第一图像中存在与第二图像中的角点的坐标(xr,yr)非常接近的两个角点。第一图像中的两个角点的坐标可由角点位置确定器1926确定为(x1,y1)、(x2,y2)。接下来,角点位置确定器1926如下计算第一图像中的角点的相应像素坐标与第二图像中的角点的像素坐标之间的距离:
然后,角点位置确定器1926选择第一图像中具有最低对应距离D(即,min(D1,D2))的像素的坐标作为所检测到的角点的位置。
在一些实施例中,角点位置确定器1926可以使用其它技术来精确(从第二图像中检测到的)所检测到的角点的位置。例如,由空间分箱模块424输出的一组角点(其被非极大值抑制器1922和空间分箱模块1924选择为第二图像中的所检测到的角点的子集)的位置可以被输入到角点检测器1916。然后,角点检测器1916执行角点检测算法以检测第一图像中的在与来自第二图像的一组角点的位置相对应的离散位置的角点。在一些实施例中,角点检测器1916可以执行哈里斯角点检测算法以在第一图像中检测相对于第二图像中的那些所检测到的角点在位置上相对应的一组角点。该技术的优点在于,不需要对整个第一图像执行哈里斯角点检测,而只需要对第一图像的离散部分执行,从而节省时间和计算资源。
在一些实施例中,伽马校正器1912、图像调整器1914和角点检测器1916可以使用被专门设计为执行这些组件的功能的专用硬件来实现。作为非限制性示例,硬件可以包括一个或多个FPGA处理器、一个或多个ASIC处理器、一个或多个信号处理器、一个或多个数学处理器、被专门设计为执行矩阵运算的一个或多个处理器、或上述的任何组合。此外,在一些实施例中,处理单元1630可以被实现为被通信耦合在一起的单独组件。例如,处理单元1630可以具有承载伽马校正器1912和图像调整器1914的第一基板、以及承载角点检测器1916的另一个基板。作为另一个示例,处理单元1630可以具有用于执行软件1920的处理器,其中,处理器可以在支撑角点检测器1916的相同基板上实现,或者在与用于角点检测器1916的基板不同的基板上实现。在一些实施例中,可以存在分别承载伽马校正器1912、图像调整器1914、角点检测器1916、和运行软件1920的处理器的单独基板。在一些实施例中,处理单元1630的任何、一些或所有组件可以在头戴式框架结构1602处实现。在一些实施例中,处理单元1630的任何、一些或所有组件可以在远离头戴式框架结构1602的设备(诸如皮带夹模块、颈戴式模块、蜂窝电话等)处实现。
图22B示出图22A的处理单元1630的各种组件之间的信号流的示例。将参考图22D中所示的图形示例来描述信号流。如图22B所示,处理单元1630从图像显示设备1601的相机系统接收图像。图像可以是实时图像、或者是具有时滞的图像。在一些实施例中,可以从存储图像的非暂态介质接收图像。非暂态介质可以是图像显示设备1601的一部分,或者是外部设备,诸如另一个图像显示设备、服务器、蜂窝电话、媒体设备等。最初,由处理单元1630的伽马校正器1912处理图像。特别地,处理单元1630的伽马校正器1912调整针对图像中的像素的像素值与亮度之间的非线性关系。例如,伽马校正器1912可以调整像素值与亮度之间的关系,以使得它们的关系是线性的、或者与最初的原始图像中的关系相比更线性。在针对伽马校正调整了图像之后,伽马校正器将图像2002传递到图像调整器1914。
图像调整器1914被配置为获得具有第一分辨率的图像(第一图像)2002,并调整图像2002以获得具有低于第一分辨率的第二分辨率的第二图像2003。例如,第一图像2002可以具有VGA分辨率,而第二图像2003可以具有QVGA分辨率。在这样的情况下,第二图像2003具有第一图像2002中的像素数量的四分之一。在一些实施例中,第一图像2002可以具有与VGA分辨率不同的分辨率,并且第二图像2003可以具有与QVGA分辨率不同的分辨率。在获得第二图像2003之后,图像调整器1914将第二图像2003传递到神经网络1915。如图22D的示例所示,第二图像2003包括具有角点的(一个或多个)对象的(一个或多个)图像。
返回图22B,神经网络1915处理第二图像2003以在第二图像2003中检测一组特征和各特征的位置。例如,神经网络1915可以利用参考图1至图14描述的任何技术来在第二图像2003中检测一组特征和它们在第二图像2003中的位置。在所示的实施例中,神经网络1915被配置为输出识别针对所检测的特征的一组位置的信息2004。角点检测器1916可以利用信息2004作为可能角点的位置。在一些情况下,信息2004可以是热图。热图的示例在图22D中示出。热图识别图像中的具有感兴趣特征的位置。神经网络1915由于它所具有的卷积层而能够使用全局上下文来识别感兴趣特征。因此,由神经网络1915识别的感兴趣特征更相关。
如在本说明书中所使用的,术语“神经网络”是指由多个互连的处理元件组成的任何计算设备、系统或模块,这些处理元件通过它们对输入的动态状态响应来处理信息。在一些实施例中,神经网络可以具有深度学习能力和/或人工智能。在一些实施例中,神经网络可以只是可使用一个或多个数据集来训练的任何计算元件。作为非限制性示例,神经网络可以是感知机、前馈神经网络、径向基神经网络、深度前馈神经网络、循环神经网络、长/短期记忆神经网络、门控循环单元、自动编码器神经网络、变分自动编码器神经网络、去噪自动编码器神经网络、稀疏自动编码器神经网络、马尔可夫链神经网络、霍普菲尔德神经网络、玻尔兹曼机、受限玻尔兹曼机、深度信念网络、卷积网络、反卷积网络、深度卷积逆图形网络、生成对抗网络、液态状态机、极限学习机、回声状态网络、深度残差网络、Kohonen网络、支持向量机、神经图灵机、模块化神经网络、序列到序列模型等、或前述的任何组合。
返回图22B,角点检测器1916使用由神经网络1915提供的信息2004作为可能角点位置的“提示”来检测第二图像2003中的角点。因此,角点检测器1916不需要对整个图像执行角点检测。在一些实施例中,对于由神经网络1915在第二图像2003中识别的特征的每个位置,角点检测器1916在第二图像2003内确定包括所检测的特征的感兴趣区域。感兴趣区域可以是具有64个像素的8×8块(patch)。在一些实施例中,针对每个所检测的特征的感兴趣区域可以具有其它块大小。此外,在一些实施例中,代替具有降低的分辨率的第二图像2003,角点检测器1916可以在具有原始分辨率的第一图像2002内确定感兴趣区域。在所示的实施例中,角点检测器1916被配置为使用角点检测算法来在每个块中检测(一个或多个)角点。例如,角点检测器1916可以使用哈里斯角点检测算法或其它类型的角点检测技术来检测角点。在一些实施例中,块可以由神经网络1915(而不是角点检测器1916)识别。
在一些实施例中,神经网络1915被配置为向块内的每个像素分配分数。角点检测器1916可以被配置为在块内识别具有最大分数的像素,并使用所识别的像素的位置作为可能角点的位置。
在角点检测器1916在每个块检测到(一个或多个)角点之后,角点检测器1916将角点检测结果2006传递到非极大值抑制器1922。角点检测结果2006可以包括一组所检测到的角点的标识符以及它们相应的坐标。在一些实施例中,角点检测结果2006还可以可选地包括各个所检测到的角点的分数。分数可以指示所检测到的角点的质量、所检测到的角点的置信水平、所检测到的角点的准确度等。
非极大值抑制器1922被配置为识别和去除重复识别的角点。例如,角点检测器1916可以检测彼此靠近的两个角点,当实际上它们是针对图像中的同一角点时。因此,采用非极大值抑制器422以对所检测到的角点执行非极大值抑制,以使得避免对相同角点的重复检测。在一些实施例中,非极大值抑制器1922利用3×3窗口来确保在3×3像素的网格内不存在重复检测到的角点。在一些实施例中,非极大值抑制器1922可以利用其它窗口大小来执行非极大值抑制。在非极大值抑制器1922去除重复检测到的角点之后,非极大值抑制器1922将结果2008传递到空间分箱模块1924。在一些实施例中,结果2008是由角点检测器1916输出的结果2006的子集。
空间分箱模块1924针对图像选择某些所检测到的角点,以使得图像的不同区域将具有所检测到的角点的稍微均匀的分布。空间分箱模块1924是有利的,因为它确保所检测到的角点不集中在图像的某个部分,并且防止对于图像的某个部分检测到太多角点。在一些实施例中,处理单元1630可以不包括空间分箱模块1924。
在一些实施例中,如果角点检测器1916基于具有降低的分辨率的第二图像2003来执行角点的检测,则可期望基于第一图像2002的分辨率来精确所检测到的角点的位置,以便在由空间分箱模块1924输出的结果2010(或者结果2006,如果处理单元1630不包括非极大值抑制器1922和空间分箱模块1924)中获得所检测到的角点的更准确的位置。如图22B所示,角点位置确定器1926被配置为基于由角点检测器1916提供的输出2022来精确(由空间分箱模块1924/非极大值抑制器1922/角点检测器1916输出的)角点的位置。特别地,在一些实施例中,角点检测器1916还处理具有第一分辨率的第一图像2002以获得一组角点。在一些实施例中,角点检测器1916可基于哈里斯角点检测技术来处理第一图像2002。在一些实施例中,角点检测器1916可以使用不同的角点检测技术来在第一图像2002中检测角点。角点位置确定器1926被配置为基于在第一图像2002中检测到的角点来精确该组中的所检测到的角点的位置(结果2006/2008/2010),以便确定所检测到的角点的最终位置以用于输出2030。在一些实施例中,角点位置确定器1926被配置为确定基于第一图像2002而检测到的哪个角点(在输出2022中)与由空间分箱模块1924输出的组中的每个角点(即,在输出2010中)具有最优空间对应关系。例如,为了改进所检测到的角点的位置,如果(基于第二图像2003的)输出2010中的角点具有位置(x=83,y=97),并且如果(基于第一图像2002)的输出2022中的角点具有最接近角点的位置的位置(x=84,y=95),则角点位置确定器1926将使用位置(x=84,y=95)作为所检测到的角点的最终位置。在一些实施例中,角点位置确定器1926可以被配置为仅检查第一图像2002的离散区域内的角点以识别与输出2010中的角点相对应的角点。在一些实施例中,来自角点位置确定器1926的输出530包括来自空间分箱模块1924/非极大值抑制器1922/角点检测器1916的一组所检测到的角点,但是对于所识别的角点具有改进的位置。
在一些实施例中,角点检测器1916进行的角点检测、非极大值抑制器1922进行的非极大值抑制以及空间分箱模块1924进行的空间分箱都是基于具有降低分辨率的第二图像2003而执行的。该技术的优势在于它允许这些操作被非常快速地执行而无需大量的计算资源。在第一图像2002具有VGA分辨率且第二图像2003具有QVGA分辨率的示例中,处理单元1630在由角点检测器1916、非极大值抑制器1922和空间分箱模块1924进行的处理的所有三个阶段中仅需要使用第二图像2003中的块来处理四分之一的像素(与使用第一图像2002中的块的场景相比)。在一些实施例中,这种技术允许角点特征被非常快速地从图像中提取。例如,使用上述的技术,可以在小于10ms、小于6ms、小于4ms、小于2ms等的时间内从图像中获得一组角点(在经过非极大值抑制和空间分箱之后)。这是有利的,因为它允许输入相机图像的实时处理。
在一些实施例中,角点位置确定器1926可以使用其它技术来精确(从第二图像中检测到的)所检测到的角点的位置。例如,如图22C所示,在一些实施例中,空间分箱模块1924的输出2010(例如,由非极大值抑制器1922和空间分箱模块1924选择为第二图像中的所检测到的角点的子集的一组角点的位置)可以被输入到角点检测器1916。然后,角点检测器1916执行角点检测算法以在与来自第二图像2003的一组角点的位置相对应的离散位置中检测第一图像2002中的角点。在一些实施例中,角点检测器1916可以执行哈里斯角点检测算法以在第一图像2002中检测相对于在第二图像2003中检测到的角点在位置上对应的一组角点。该技术的优点在于不需要对整个第一图像2002执行哈里斯角点检测,但仅对第一图像2002的离散部分执行,从而进一步节省时间和计算资源。在这样的情况下,角点检测器1916可以提供输出2030,该输出2030包括具有精确位置的一组角点以用作图像的特征/地图点。
在一些实施例中,处理单元1630可以不包括非极大值抑制器1922和/或空间分箱模块1924。在这样的情况下,角点检测器1916可以将其输出2006直接提供给角点位置确定器1926,该角点位置确定器1926确定所识别的角点的位置。
在一些实施例中,处理单元1630可以不包括非极大值抑制器1922、空间分析模块1924和角点位置确定器1926。在这种情况下,角点检测器1916可以输出所识别的角点的位置(例如,信息2030)。
在一些实施例中,代替具有降低的分辨率的第二图像2003,角点检测器1916可以被配置为使用由神经网络1915提供的信息2004作为可能角点位置的“提示”来检测第一图像2002(具有原始的更高分辨率)中的角点。在一些实施例中,对于由神经网络1915在第二图像2003中识别的特征的每个位置,角点检测器1916在第一图像2002内的对应位置确定包括所检测的特征的感兴趣区域。感兴趣区域可以是具有原始分辨率的具有64个像素的8×8块。在其它实施例中,针对每个所检测的特征的感兴趣区域可以具有其它块大小。例如,在其它实施例中,块可以是N×N块,其中N是大于1的任何整数。在进一步的实施例中,块可以具有144个像素或更少的像素,其中像素被排列成正方形或非正方形(例如,矩形)形状。在所示的实施例中,角点检测器1916被配置为使用角点检测算法在第一图像2002中检测每个块中的(一个或多个)角点。例如,角点检测器1916可以使用哈里斯角点检测算法或其它类型的角点检测技术来检测角点。使角点检测器1916对具有原始分辨率的第一图像2002进行操作是有利的,因为它避免了对所检测到的角点的所确定的位置进行精确调整的需要(如果角点检测器1916对具有降低的分辨率的第二图像2003进行操作,则可能需要该精确调整)。
在一些实施例中,处理单元1630可以不包括伽马校正器1912。在这种情况下,图像被直接输入到图像调整器1914。
在一些实施例中,处理单元1630可以不包括图像调整器1914。在这种情况下,神经网络1915和角点检测器1916二者都被配置为使用具有原始分辨率的图像来执行它们的操作。
在一些实施例中,可以组合处理单元1630中的一个或多个组件。例如,在一些实施例中,非极大值抑制器1922、空间分箱模块1924、角点位置确定器1926或前述的任何组合可以被实现为角点检测器1916的部分。在一些实施例中,伽马校正器1912和/或图像调整器1914可以被实现为神经网络1915的一部分。
在一些实施例中,可由处理单元1630执行角点的检测以处理来自图像显示设备1601的相机系统的实时输入图像。例如,输入图像可由相机系统提供,并且处理单元1630可从输入图像中确定一组角点。该组角点可以被用作输入图像的一组特征,以用于与定位图内的对应特征进行匹配,以便定位图像显示设备1601的用户。
在一些实施例中,可由处理单元1630执行角点的检测以处理来自图像显示设备1601的相机系统的图像以便创建定位图。例如,相机系统可以提供图像序列,并且处理单元1630可从序列中的每个图像中确定一组角点。当图像显示设备1601的用户具有不同的头部姿态时,可以由相机系统获得图像,以使得图像与用户的不同观看方向相对应。处理单元1630还可以执行立体匹配,其中它将序列中的一个图像中的角点与序列中的另一图像中的角点相匹配,以便针对该角点创建3D地图点。然后,3D地图点被包括作为定位图的一部分。
应当注意,使用混合技术(即,神经网络加角点检测器)来检测角点优于仅利用角点检测器而没有任何神经网络的技术。这是因为混合技术产生具有较少误报(falsepositive)的角点检测结果,并且能够提取“弱”角点。此外,混合技术能够提取弱角点(否则其仅使用哈里斯角点检测而不可检测到)。在一些实施例中,神经网络暗示在块内可存在角点,并且系统使用最强的响应来检测角点。参见例如图22D,其中图像VGA块很难识别角点,但神经网络可以判断存在角点,因为它处理图像的较大部分(参见例如图22D中的“VGA检测”)。神经网络输出被预期具有良好特征(例如,角点)的粗糙区域。
图22E示出使用哈里斯角点检测并且没有受益于神经网络而获得的结果的示例。如图所示,当许多点是误报(即它们不是角点)时,角点检测器将图像中的许多点识别为角点。如图22F所示,由神经网络提供的热图可以用作消除许多误报的掩模(maks)。因此,混合技术识别图像中的更准确的一组角点。如图22G所示,与图22E所示的相比,使用混合技术在图像中识别的角点数量更少。
此外,使用神经网络1915来提供热图以供角点检测器1916用作“提示”是有利的。热图提供了对块的分类,即,它指示在块中是否存在感兴趣特征。因此,神经网络1915的输出将角点检测问题变成简单的分类问题(即,是或否分类)。基于分类,角点检测器1916则确认在块内的位置中是否确实存在角点。
将神经网络与角点检测器相结合的混合技术也是有利的,因为它可以很好地检测具有低光的图像中的角点。由于神经网络1915使用全局上下文来识别感兴趣特征,因此,即使在低光情况下,它也允许角点检测器1916使用由神经网络1915提供的热图来识别角点。
由处理单元和/或处理单元中的应用程序执行的方法
图24示出根据一些实施例的方法2600。方法2600可以由被配置为由用户佩戴的装置执行,该装置具有被配置为向用户呈现图形的屏幕、被配置为观看用户所在的环境的相机系统、以及处理单元。在一些实施例中,方法2600可以由图15至图18所示的图像显示设备1601中的任一个来执行。例如,方法2600可以由图像显示设备1601的处理单元1630执行。方法2600包括:在图像中获得特征的位置,其中,特征的位置由神经网络识别(项2602);确定针对图像中的特征之一的感兴趣区域,该感兴趣区域的大小小于图像的大小(项2604);以及在感兴趣区域中使用角点检测算法来执行角点检测以识别角点(项2606)。
可选地,在方法2600中,基于由神经网络识别的至少一个位置来确定感兴趣区域。
可选地,方法2600进一步包括:生成图像;以及向神经网络发送图像。
可选地,在方法2600中,神经网络在头戴式图像显示设备的模块中。
可选地,在方法2600中,神经网络在远离头戴式图像显示设备的一个或多个计算设备中实现。
可选地,在方法2600中,神经网络具有机器学习能力。
可选地,在方法2600中,通过从神经网络接收热图来获得特征的位置,其中,热图指示特征的位置。
可选地,在方法2600中,感兴趣区域包括N×N块,并且对N×N块执行角点检测,其中N是大于1的整数。
可选地,在方法2600中,感兴趣区域包括具有144个像素或更少像素的块,并且对该块执行角点检测。
可选地,在方法2600中,感兴趣区域包括8×8块,并且对8×8小执行角点检测。
可选地,在方法2600中,图像具有第一分辨率,并且其中,特征的位置由神经网络基于具有小于第一分辨率的第二分辨率的另一个图像来识别。
可选地,在方法2600中,该方法进一步包括:将具有第一分辨率的图像转换为具有第二分辨率的另一个图像。
可选地,在方法2600中,第一分辨率包括VGA分辨率。
可选地,在方法2600中,第二分辨率包括QVGA分辨率。
可选地,在方法2600中,该方法进一步包括神经网络。
可选地,在方法2600中,已经使用参考数据集对神经网络进行了训练。
可选地,在方法2600中,神经网络包括卷积神经网络。
可选地,在方法2600中,神经网络被配置为计算兴趣点位置和描述符。
可选地,在方法2600中,神经网络包括被配置为在空间上对输入图像进行下采样的编码器。
可选地,在方法2600中,神经网络还包括:兴趣点解码器,其被配置为对来自编码器的编码器输出进行操作,并针对输入图像中的每个像素产生分数;以及描述符解码器,其被配置为对编码器输出进行操作,将编码器输出上采样到更高分辨率,并针对输入图像中的每个像素产生向量。
可选地,在方法2600中,神经网络被配置为使用单应性适应来提高兴趣点检测器的几何一致性。
可选地,在方法2600中,神经网络包括卷积神经网络,并且其中,用卷积神经网络训练兴趣点检测器。
可选地,在方法2600中,神经网络被配置为在单应性适应中执行图像扭曲以创建一个或多个经扭曲的图像。
可选地,方法2600进一步包括:至少部分地基于角点在块中的位置来确定角点在图像中的位置。
可选地,方法2600进一步包括:将图像中的第一角点的位置存储在非暂态介质中。
可选地,方法2600进一步包括:针对感兴趣区域中的每个像素确定分数。
专用处理系统
对本领域技术人员来说显然,可以根据特定要求进行实质性的变化。例如,也可以使用定制硬件,和/或可以在硬件、包括便携式软件(诸如小应用程序等)的软件、或两者中实现特定元素。进一步地,可以采用与其它计算设备(诸如网络输入/输出设备)的连接。
图25是示出可用于实现文本所描述的各种特征的专用处理系统3100的实施例的框图。例如,在一些实施例中,处理系统3100可以用于实现图像显示设备3101。处理系统3100包括用于传送信息的总线3102或其它通信机制、以及与总线3102耦合以用于处理信息的处理器3104。处理器系统3100还包括被耦合到总线3102的主存储器3106(诸如随机存取存储器(RAM)或其它动态存储设备),以用于存储信息和要由处理器3104执行的指令。主存储器3106也可以用于在执行要由处理器3104执行的指令期间存储临时变量或其它中间信息。处理器系统3100进一步包括被耦合到总线3102的只读存储器(ROM)3108或其它静态存储设备,以用于存储用于处理器3104的静态信息和指令。数据存储设备3110(诸如磁盘、固态盘或光盘)被提供并被耦合到总线3102以用于存储信息和指令。
处理器系统3100可以经由总线3102耦合到显示器3112(诸如屏幕)以用于向用户显示信息。在一些情况下,如果处理系统3100是包括触摸屏的装置的一部分,则显示器3112可以是触摸屏。包括字母数字键和其它键的输入设备3114被耦合到总线3102,以用于向处理器3104传送信息和命令选择。另一种类型的用户输入设备是光标控件3116,诸如鼠标、轨迹球或光标方向键,以用于将方向信息和命令选择传送到处理器3104并用于控制显示器3112上的光标移动。该输入设备通常在两个轴(第一轴(例如,x)和第二轴(例如,y))上具有两个自由度,这允许设备指定平面中的位置。在一些情况下,如果处理系统3100是包括触摸屏的装置的一部分,则输入设备3114和光标控件可以是触摸屏。另一种类型的用户输入设备是光学相机和/或深度感测相机,其被配置为检测手势。这种用户输入设备不需要用户触摸任何东西,并且可以基于手势来解释用户的命令。
在一些实施例中,处理器系统3100可以被用于执行本文所描述的各种功能。根据一些实施例,这种使用由处理器系统3100响应于处理器3104执行被包含在主存储器3106中的一个或多个指令的一个或多个序列而提供。本领域技术人员将知道如何基于本文所描述的功能和方法来准备这种指令。这种指令可从另一个处理器可读介质(诸如存储设备3110)被读入主存储器3106。被包含在主存储器3106中的指令序列的执行使处理器3104执行在此描述的处理步骤。还可以采用多处理布置中的一个或多个处理器来执行被包含在主存储器3106中的指令序列。在替代实施例中,可以使用硬连线电路代替软件指令或与软件指令结合使用以实现在此描述的各种实施例。因此,实施例不限于硬件电路和软件的任何特定组合。
如本文所使用的术语“处理器可读介质”是指参与向处理器3104提供指令以供执行的任何介质。这种介质可以采用多种形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括例如光盘、固态或磁盘,诸如存储设备3110。非易失性介质可以被认为是非暂态介质的示例。易失性介质包括动态存储器,诸如主存储器3106。易失性介质可被认为是非暂态介质的示例。传输介质包括同轴电缆、铜线和光纤,包括包含总线3102的电线。传输介质还可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的那些声波或光波。
处理器可读介质的常见形式包括例如软盘、硬盘、磁带、或任何其它磁介质、CD-ROM、任何其它光学介质、具有孔图案的任何其它物理介质、RAM、PROM和EPROM、FLASH-EPROM、固态磁盘、任何其它存储芯片或盒式磁带、下文中描述的载波、或处理器可以从中读取的任何其它介质。
各种形式的处理器可读介质可涉及将一个或多个指令的一个或多个序列携带到处理器3104以供执行。例如,指令最初可以被携带在远程计算机的磁盘或固态盘上。远程计算机可以将指令加载到其动态存储器中,并通过网络(诸如互联网)发送指令。处理系统3100可以在网络线上接收数据。总线3102将数据携带到主存储器3106,处理器3104从该主存储器3106取回并执行指令。由主存储器3106接收的指令可以可选地在处理器3104执行之前或之后被存储在存储设备3110上。
处理系统3100还包括被耦合到总线3102的通信接口3118。通信接口3118提供耦合到被连接到本地网络3122的网络链路3120的双向数据通信。例如,通信接口3118可以是局域网(LAN)卡以提供到可兼容LAN的数据通信连接。也可以实现无线链路。在任何这种实现方式中,通信接口3118发送和接收携带表示各种类型信息的数据流的电信号、电磁信号或光信号。
网络链路3120通常通过一个或多个网络向其它设备提供数据通信。例如,网络链路3120可以提供通过本地网络3122到主机3124或设备3126的连接。通过网络链路3120传输的数据流可以包括电信号、电磁信号或光信号。通过各种网络的信号以及在网络链路3120上并通过通信接口3118的信号(其携带到处理系统3100的数据和来自处理系统3100的数据)是传输信息的载波的示例性形式。处理系统3100可以通过(一个或多个)网络、网络链路3120和通信接口3118发送消息和接收数据,包括程序代码。
在一方面,一些实施例可以采用处理系统3100来执行根据本技术的各种实施例的方法。根据一组实施例,响应于处理系统310执行一个或多个指令的一个或多个序列,由处理系统3100执行这样的方法中的一些或全部过程,其中指令的序列可能被并入操作系统中和/或是被包含在处理系统3100的存储器中的其它代码(诸如应用程序)。这种指令可以从另一个计算机可读介质(诸如一个或多个存储设备)被读入存储器。仅作为示例,被包含在存储器中的指令序列的执行可能使处理系统3100执行本文所描述的方法的一个或多个过程。附加地或可替代地,本文所描述的方法的部分可以通过专用硬件来执行。
在一些实施例中,本文所描述的方法2600可以由执行应用程序的处理系统3100或由应用程序来执行。应用程序可包含一组指令。此外,处理系统3100可以是处理单元1630的示例。在一个实现方式中,可以提供具有存储用于应用程序的指令集的非暂态介质的专用处理系统。图像显示设备1601的处理单元1630对指令的执行将使处理单元1630执行本文所描述的特征。
在一些实施例中,图像显示设备1601也可以被认为是专用处理系统。特别地,图像显示设备1601是专用处理系统,因为它包含被存储在其非暂态介质中的指令,以用于由处理单元1630执行以在真实世界中提供独特的有形效果。由图像显示设备1601提供的特征(作为处理单元1630执行指令的结果)提供在角点检测、定位图创建和基于图像的定位的技术领域的改进。
应当注意,在本说明书中使用的术语“图像”可以是指被显示的图像和/或未处于显示形式的图像(例如,被存储在介质中的或正被处理的图像或图像数据)。
此外,如在本说明书中使用的,术语“装置”可以是指单个设备或组件、或者可以或可以不物理连接在一起和/或可以或可以不位于同一地理区域的多个设备或组件。例如,彼此无线通信的两个或更多个设备或组件可以被统称为“装置”。作为另一个示例,装置可以包括彼此通信的在不同地理区域中的两个设备。此外,装置可以是软件、硬件或两者的组合。在一些实施例中,装置包括至少一些硬件,诸如集成电路(例如,处理器)。
此外,如在本说明书中使用的,术语“处理单元”可以是指硬件、软件或两者的组合。作为非限制性示例,处理单元可以是一个或多个软件模块、一个或多个应用程序、集成电路(诸如一个或多个处理器、一个或多个硬件组件等)、或前述的组合。
已经在上文中阐述了本公开的示例性方面以及关于材料选择和制造的细节。至于本公开的其它细节,这些可以结合上面引用的专利和出版物以及本领域技术人员通常已知或理解的来理解。关于本公开的基于方法的方面,在通常或逻辑上采用的附加动作方面,这同样适用。
此外,虽然本公开已经参考可选地结合各种特征的若干示例进行了描述,但是,本公开不限于关于本公开的每个变型所预期的描述或指示的内容。在不脱离本公开的真实精神和范围的情况下,可以对所描述的公开进行各种改变,并且可以替换等同物(无论是在本文中引用还是为了某种简洁而未被包括在内)。此外,在提供值范围的情况下,应当理解,在该范围的上下限与在该范围内的任何其它说明的值或中间值之间的每个中间值都被包含在本公开内。
此外,预期可以独立地或与本文所描述的任何一个或多个特征相组合地提出并要求保护所描述的本发明变型的任何可选特征。对单数项的提及包括存在多个相同项的可能性。更具体地,如在此和与其相关的权利要求中所使用的,单数形式“一”、“一个”、“所述”和“该”包括复数指代物,除非另有具体说明。进一步应注意,可以起草任何权利要求以排除任何可选元素。因此,本声明旨在用于与权利要求要素的叙述相关联的诸如“仅仅”、“仅”等这种排外术语或“否定”限制的先行基础。
本公开的广度并不限于所提供的示例和/或主题说明书,而是仅限于与本公开相关联的权利要求语言的范围。
在上述说明书中,已经参考本公开的具体实施例描述了本公开。然而,很明显,在不脱离本公开的更广泛的精神和范围的情况下,可以对其进行各种修改和改变。例如,上述的过程流是参考特定的过程动作顺序来描述的。然而,在不影响本公开的范围或操作的情况下,可以改变许多所描述的过程动作的顺序。因此,说明书和附图被认为是说明性的而不是限制性的。
Claims (54)
1.一种被配置为由用户头戴的装置,包括:
屏幕,其被配置为向所述用户呈现图形;
相机系统,其被配置为观看所述用户所在的环境;以及
处理单元,其被耦合到所述相机系统,所述处理单元被配置为:
针对与所述环境相关联的图像数据获得特征的位置,其中,所述特征的所述位置由神经网络识别;
在所述图像中确定针对所述特征之一的感兴趣区域,所述感兴趣区域的大小小于所述图像的大小;以及
在所述感兴趣区域中使用角点检测算法来执行角点检测以识别角点。
2.根据权利要求1所述的装置,其中,所述处理单元被配置为将所述感兴趣区域确定为具有基于由所述神经网络识别的所述位置中的至少一个位置的定位,以及其中,所述定位是相对于所述图像的。
3.根据权利要求1所述的装置,其中,所述图像数据与由所述相机系统生成并被发送到所述神经网络的至少一个图像相关联。
4.根据权利要求1所述的装置,其中,所述神经网络在所述装置的模块中。
5.根据权利要求1所述的装置,其中,所述神经网络在远离所述装置的一个或多个计算设备中实现。
6.根据权利要求1所述的装置,其中,所述神经网络具有机器学习能力。
7.根据权利要求1所述的装置,其中,所述处理单元被配置为通过获得由所述神经网络生成的热图来获得所述特征的所述位置,所述热图指示所述特征的所述位置。
8.根据权利要求1所述的装置,其中,所述感兴趣区域包括N×N块,并且所述处理单元被配置为对所述N×N块执行所述角点检测,其中,N是大于1的整数。
9.根据权利要求1所述的装置,其中,所述感兴趣区域包括具有少于或等于144个像素的块,并且所述处理单元被配置为对所述块执行所述角点检测。
10.根据权利要求1所述的装置,其中,所述感兴趣区域包括8×8块,并且所述处理单元被配置为对所述8×8块执行所述角点检测。
11.根据权利要求1所述的装置,其中,所述图像数据包括从由所述相机系统生成的至少一个高分辨率图像降低分辨率的至少一个低分辨率图像。
12.根据权利要求11所述的装置,其中,所述处理单元还被配置为将具有所述第一分辨率的图像转换为具有所述第二分辨率的另一个图像。
13.根据权利要求11所述的装置,其中,所述第一分辨率包括VGA分辨率。
14.根据权利要求11所述的装置,其中,所述第二分辨率包括QVGA分辨率。
15.根据权利要求1所述的装置,进一步包括所述神经网络。
16.根据权利要求15所述的装置,其中,已使用参考数据集对所述神经网络进行训练。
17.根据权利要求15所述的装置,其中,所述神经网络包括卷积神经网络。
18.根据权利要求15所述的装置,其中,所述神经网络被配置为计算兴趣点位置和描述符。
19.根据权利要求15所述的装置,其中,所述神经网络包括被配置为在空间上对输入图像进行下采样的编码器。
20.根据权利要求19所述的装置,其中,所述神经网络还包括:
兴趣点解码器,其被配置为对来自所述编码器的编码器输出进行操作,并针对所述输入图像中的每个像素产生分数;以及
描述符解码器,其被配置为对所述编码器输出进行操作,将所述编码器输出上采样到更高分辨率,并针对所述输入图像中的每个像素产生向量。
21.根据权利要求15所述的装置,其中,所述神经网络被配置为使用单应性适应来提高兴趣点检测器的几何一致性。
22.根据权利要求21所述的装置,其中,所述神经网络包括被配置为训练所述兴趣点检测器的卷积神经网络。
23.根据权利要求21所述的装置,其中,所述神经网络被配置为在所述单应性适应中执行图像扭曲以创建一个或多个经扭曲的图像。
24.根据权利要求1所述的装置,其中,所述处理单元被配置为至少部分地基于所述角点在所述感兴趣区域中的位置来确定所述角点在所述图像中的位置。
25.根据权利要求24所述的装置,进一步包括非暂态介质,所述非暂态介质被配置为存储所述图像中的所述第一角点的位置。
26.根据权利要求1所述的装置,其中,所述处理单元被配置为针对所述感兴趣区域中的每个像素确定分数。
27.根据权利要求1所述的装置,其中,所述神经网络是所述处理单元的一部分。
28.根据权利要求1所述的装置,进一步包括所述神经网络,所述神经网络通信地耦合到所述处理单元。
29.一种由头戴式图像显示设备执行的方法,包括:
在图像中获得特征的位置,其中,所述特征的所述位置由神经网络识别;
在所述图像中确定针对所述特征之一的感兴趣区域,所述感兴趣区域的大小小于所述图像的大小;以及
在所述感兴趣区域中使用角点检测算法来执行角点检测以识别角点。
30.根据权利要求29所述的方法,其中,所述感兴趣区域被确定为具有基于由所述神经网络识别的所述位置中的至少一个位置的定位,以及其中,所述定位是相对于所述图像的。
31.根据权利要求29所述的方法,进一步包括:
生成所述图像;以及
向所述神经网络发送所述图像。
32.根据权利要求29所述的方法,其中,所述神经网络在所述头戴式图像显示设备的模块中。
33.根据权利要求29所述的方法,其中,所述神经网络在远离所述头戴式图像显示设备的一个或多个计算设备中实现。
34.根据权利要求29所述的方法,其中,所述神经网络具有机器学习能力。
35.根据权利要求29所述的方法,其中,通过从所述神经网络接收热图来获得所述特征的所述位置,其中,所述热图指示所述特征的所述位置。
36.根据权利要求29所述的方法,其中,所述感兴趣区域包括N×N块,并且对所述N×N块执行所述角点检测,其中,N是大于1的整数。
37.根据权利要求29所述的方法,其中,所述感兴趣区域包括具有少于或等于144个像素的块,并且对所述块执行所述角点检测。
38.根据权利要求29所述的方法,其中,所述感兴趣区域包括8×8块,并且对所述8×8块执行所述角点检测。
39.根据权利要求29所述的方法,其中,所述图像具有第一分辨率,并且其中,所述特征的所述位置由所述神经网络基于具有小于所述第一分辨率的第二分辨率的另一个图像来识别。
40.根据权利要求39所述的方法,进一步包括:将具有所述第一分辨率的图像转换为具有所述第二分辨率的另一个图像。
41.根据权利要求39所述的方法,其中,所述第一分辨率包括VGA分辨率。
42.根据权利要求39所述的方法,其中,所述第二分辨率包括QVGA分辨率。
43.根据权利要求29所述的方法,进一步包括所述神经网络。
44.根据权利要求43所述的方法,其中,已使用参考数据集对所述神经网络进行训练。
45.根据权利要求43所述的方法,其中,所述神经网络包括卷积神经网络。
46.根据权利要求43所述的方法,其中,所述神经网络被配置为计算兴趣点位置和描述符。
47.根据权利要求43所述的方法,其中,所述神经网络包括被配置为在空间上对输入图像进行下采样的编码器。
48.根据权利要求47所述的方法,其中,所述神经网络还包括:
兴趣点解码器,其被配置为对来自所述编码器的编码器输出进行操作,并针对所述输入图像中的每个像素产生分数;以及
描述符解码器,其被配置为对所述编码器输出进行操作,将所述编码器输出上采样到更高分辨率,并针对所述输入图像中的每个像素产生向量。
49.根据权利要求43所述的方法,其中,所述神经网络被配置为使用单应性适应来提高兴趣点检测器的几何一致性。
50.根据权利要求49所述的方法,其中,所述神经网络包括卷积神经网络,并且其中,用所述卷积神经网络对所述兴趣点检测器进行训练。
51.根据权利要求49所述的方法,其中,所述神经网络被配置为在所述单应性适应中执行图像扭曲以创建一个或多个经扭曲的图像。
52.根据权利要求29所述的方法,进一步包括:至少部分地基于所述角点在所述感兴趣区域中的位置来确定所述角点在所述图像中的位置。
53.根据权利要求52所述的方法,进一步包括:将所述图像中的所述第一角点的位置存储在非暂态介质中。
54.根据权利要求29所述的方法,进一步包括:针对所述感兴趣区域中的每个像素确定分数。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962849386P | 2019-05-17 | 2019-05-17 | |
US62/849,386 | 2019-05-17 | ||
PCT/US2020/033208 WO2020236624A1 (en) | 2019-05-17 | 2020-05-15 | Methods and apparatuses for corner detection using neural network and corner detector |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113892127A true CN113892127A (zh) | 2022-01-04 |
Family
ID=73245048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080037833.9A Pending CN113892127A (zh) | 2019-05-17 | 2020-05-15 | 使用神经网络和角点检测器进行角点检测的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11686941B2 (zh) |
EP (1) | EP3970114A4 (zh) |
JP (2) | JP7422785B2 (zh) |
CN (1) | CN113892127A (zh) |
WO (1) | WO2020236624A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11210547B2 (en) * | 2019-03-20 | 2021-12-28 | NavInfo Europe B.V. | Real-time scene understanding system |
US11340624B2 (en) * | 2019-08-29 | 2022-05-24 | Ford Global Technologies, Llc | Vehicle neural network |
US11783444B1 (en) * | 2019-11-14 | 2023-10-10 | Apple Inc. | Warping an input image based on depth and offset information |
US11354913B1 (en) * | 2019-11-27 | 2022-06-07 | Woven Planet North America, Inc. | Systems and methods for improving vehicle predictions using point representations of scene |
US11176425B2 (en) * | 2019-12-11 | 2021-11-16 | Naver Corporation | Joint detection and description systems and methods |
CN112561979B (zh) * | 2020-12-25 | 2022-06-28 | 天津大学 | 一种基于深度学习的自监督单目深度估计方法 |
TWI778519B (zh) * | 2021-02-09 | 2022-09-21 | 鴻海精密工業股份有限公司 | 瑕疵圖像生成方法、裝置、電子設備及存儲介質 |
US11822620B2 (en) * | 2021-02-18 | 2023-11-21 | Microsoft Technology Licensing, Llc | Personalized local image features using bilevel optimization |
KR20240005790A (ko) * | 2021-04-30 | 2024-01-12 | 나이앤틱, 인크. | 관심 지점들의 반복성 예측 |
CN114049502B (zh) * | 2021-12-22 | 2023-04-07 | 贝壳找房(北京)科技有限公司 | 神经网络的训练、特征提取、数据处理方法和设备 |
CN115170746B (zh) * | 2022-09-07 | 2022-11-22 | 中南大学 | 一种基于深度学习的多视图三维重建方法、系统及设备 |
CN115542318B (zh) * | 2022-10-12 | 2024-01-09 | 南京航空航天大学 | 面向无人机群目标的空地联合多域探测系统和方法 |
JP7477849B1 (ja) | 2023-01-16 | 2024-05-02 | 国立大学法人 東京大学 | 作業システム及び溶接システム |
CN116245950B (zh) * | 2023-05-11 | 2023-08-01 | 合肥高维数据技术有限公司 | 用于全屏或单角缺失的屏幕角点定位方法 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160267720A1 (en) * | 2004-01-30 | 2016-09-15 | Electronic Scripting Products, Inc. | Pleasant and Realistic Virtual/Augmented/Mixed Reality Experience |
KR101377950B1 (ko) | 2007-05-04 | 2014-03-25 | 엘지전자 주식회사 | 영상 디스플레이 방법 및 이를 구현할 수 있는 단말기 |
US8831277B1 (en) | 2009-10-02 | 2014-09-09 | Rockwell Collins, Inc. | Optical helmet tracking system |
US8860760B2 (en) | 2010-09-25 | 2014-10-14 | Teledyne Scientific & Imaging, Llc | Augmented reality (AR) system and method for tracking parts and visually cueing a user to identify and locate parts in a scene |
IL231862A (en) | 2014-04-01 | 2015-04-30 | Superfish Ltd | Image representation using a neural network |
US10726560B2 (en) * | 2014-10-31 | 2020-07-28 | Fyusion, Inc. | Real-time mobile device capture and generation of art-styled AR/VR content |
JP6557973B2 (ja) * | 2015-01-07 | 2019-08-14 | 株式会社リコー | 地図生成装置、地図生成方法およびプログラム |
US10037712B2 (en) | 2015-01-30 | 2018-07-31 | Toyota Motor Engineering & Manufacturing North America, Inc. | Vision-assist devices and methods of detecting a classification of an object |
US9922220B2 (en) * | 2015-06-11 | 2018-03-20 | Digimarc Corporation | Image block selection for efficient time-limited decoding |
DE102016110902A1 (de) * | 2015-06-14 | 2016-12-15 | Facense Ltd. | Head-Mounted-Devices zur Erfassung thermischer Messwerte |
US11301045B1 (en) * | 2015-08-22 | 2022-04-12 | Bertec Corporation | Measurement system that includes at least one measurement assembly, a visual display device, and at least one data processing device |
US10354364B2 (en) * | 2015-09-14 | 2019-07-16 | Intel Corporation | Automatic perspective control using vanishing points |
JP6556015B2 (ja) * | 2015-10-09 | 2019-08-07 | ソニー株式会社 | 情報処理装置、位置および/または姿勢の推定方法、およびコンピュータプログラム |
IL297610B2 (en) * | 2015-10-16 | 2023-11-01 | Magic Leap Inc | Eye position detection using eye features |
JP2017191501A (ja) * | 2016-04-14 | 2017-10-19 | キヤノン株式会社 | 情報処理装置、情報処理方法及びプログラム |
CA3021964A1 (en) * | 2016-04-26 | 2017-11-02 | Magic Leap, Inc. | Electromagnetic tracking with augmented reality systems |
US10290111B2 (en) * | 2016-07-26 | 2019-05-14 | Qualcomm Incorporated | Systems and methods for compositing images |
JP6829575B2 (ja) * | 2016-10-03 | 2021-02-10 | グローリー株式会社 | 画像処理装置、画像処理システム及び画像処理方法 |
US10664722B1 (en) * | 2016-10-05 | 2020-05-26 | Digimarc Corporation | Image processing arrangements |
US10573040B2 (en) * | 2016-11-08 | 2020-02-25 | Adobe Inc. | Image modification using detected symmetry |
AU2017361061B2 (en) * | 2016-11-15 | 2022-02-03 | Magic Leap, Inc. | Deep learning system for cuboid detection |
US11393160B2 (en) * | 2018-03-23 | 2022-07-19 | Intel Corporation | Deep geometric model fitting |
US20190303648A1 (en) * | 2018-04-02 | 2019-10-03 | QRI Group, LLC | Smart surveillance and diagnostic system for oil and gas field surface environment via unmanned aerial vehicle and cloud computation |
WO2019227194A1 (en) * | 2018-06-01 | 2019-12-05 | Motion Metrics International Corp. | Method, apparatus and system for monitoring a condition associated with operating heavy equipment such as a mining shovel or excavator |
WO2020011580A1 (en) * | 2018-07-13 | 2020-01-16 | Asml Netherlands B.V. | Sem image enhancement methods and systems |
US20200065559A1 (en) * | 2018-08-22 | 2020-02-27 | Nitin Vats | Generating a video using a video and user image or video |
KR20210036962A (ko) * | 2018-08-28 | 2021-04-05 | 에이에스엠엘 네델란즈 비.브이. | 최적의 계측 안내 시스템들 및 방법들 |
US11282198B2 (en) * | 2018-11-21 | 2022-03-22 | Enlitic, Inc. | Heat map generating system and methods for use therewith |
-
2020
- 2020-05-15 WO PCT/US2020/033208 patent/WO2020236624A1/en active Application Filing
- 2020-05-15 US US16/875,499 patent/US11686941B2/en active Active
- 2020-05-15 CN CN202080037833.9A patent/CN113892127A/zh active Pending
- 2020-05-15 JP JP2021568283A patent/JP7422785B2/ja active Active
- 2020-05-15 EP EP20810549.4A patent/EP3970114A4/en active Pending
-
2023
- 2023-05-11 US US18/315,766 patent/US12007564B2/en active Active
-
2024
- 2024-01-16 JP JP2024004488A patent/JP2024028494A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2020236624A1 (en) | 2020-11-26 |
US12007564B2 (en) | 2024-06-11 |
US20200364876A1 (en) | 2020-11-19 |
US11686941B2 (en) | 2023-06-27 |
JP2024028494A (ja) | 2024-03-04 |
EP3970114A1 (en) | 2022-03-23 |
JP2022532238A (ja) | 2022-07-13 |
EP3970114A4 (en) | 2022-07-13 |
JP7422785B2 (ja) | 2024-01-26 |
US20230288703A1 (en) | 2023-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12007564B2 (en) | Methods and apparatuses for corner detection using neural network and corner detector | |
JP7403700B2 (ja) | ホモグラフィ適合を介した完全畳み込み着目点検出および記述 | |
US20180012411A1 (en) | Augmented Reality Methods and Devices | |
JP7357676B2 (ja) | 自己改良ビジュアルオドメトリを実施するためのシステムおよび方法 | |
US11605223B2 (en) | Methods and apparatuses for corner detection | |
US11734890B2 (en) | Three-dimensional model recovery from two-dimensional images | |
US11698529B2 (en) | Systems and methods for distributing a neural network across multiple computing devices | |
TW201907270A (zh) | 針對虛擬實境漫步式的掃視重新定向 | |
WO2021151380A1 (en) | Method for rendering virtual object based on illumination estimation, method for training neural network, and related products | |
US20210192782A1 (en) | Methods and apparatuses for corner detection | |
US20220180548A1 (en) | Method and apparatus with object pose estimation | |
US11783532B1 (en) | View synthesis using attribute correspondences and geometric relationship constraints |
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 |