CN115516508A - 用于实时多模态图像对准的系统和方法 - Google Patents
用于实时多模态图像对准的系统和方法 Download PDFInfo
- Publication number
- CN115516508A CN115516508A CN202080071899.XA CN202080071899A CN115516508A CN 115516508 A CN115516508 A CN 115516508A CN 202080071899 A CN202080071899 A CN 202080071899A CN 115516508 A CN115516508 A CN 115516508A
- Authority
- CN
- China
- Prior art keywords
- data points
- point cloud
- processors
- data
- processing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 240
- 230000001131 transforming effect Effects 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 557
- 230000015654 memory Effects 0.000 claims description 104
- 230000009466 transformation Effects 0.000 claims description 71
- 230000004044 response Effects 0.000 claims description 66
- 239000013598 vector Substances 0.000 claims description 60
- 230000008569 process Effects 0.000 claims description 43
- 230000008859 change Effects 0.000 claims description 38
- 238000005316 response function Methods 0.000 claims description 29
- 238000009877 rendering Methods 0.000 claims description 18
- 238000001514 detection method Methods 0.000 claims description 17
- 230000033001 locomotion Effects 0.000 claims description 17
- 230000002829 reductive effect Effects 0.000 claims description 11
- 238000005070 sampling Methods 0.000 claims description 11
- 238000010606 normalization Methods 0.000 claims description 4
- 239000011159 matrix material Substances 0.000 description 43
- 238000003860 storage Methods 0.000 description 29
- 238000004422 calculation algorithm Methods 0.000 description 27
- 238000004891 communication Methods 0.000 description 26
- 238000002595 magnetic resonance imaging Methods 0.000 description 21
- 230000011218 segmentation Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 15
- 230000000007 visual effect Effects 0.000 description 13
- 238000012952 Resampling Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 12
- 238000002591 computed tomography Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 7
- 241000699666 Mus <mouse, genus> Species 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000005286 illumination Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000013439 planning Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000001356 surgical procedure Methods 0.000 description 4
- 238000012800 visualization Methods 0.000 description 4
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 3
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 238000002604 ultrasonography Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 238000001574 biopsy Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000010897 surface acoustic wave method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 101150012579 ADSL gene Proteins 0.000 description 1
- 102100020775 Adenylosuccinate lyase Human genes 0.000 description 1
- 108700040193 Adenylosuccinate lyases Proteins 0.000 description 1
- 208000010392 Bone Fractures Diseases 0.000 description 1
- 208000003174 Brain Neoplasms Diseases 0.000 description 1
- 241000258963 Diplopoda Species 0.000 description 1
- 241000238558 Eucarida Species 0.000 description 1
- 101000666896 Homo sapiens V-type immunoglobulin domain-containing suppressor of T-cell activation Proteins 0.000 description 1
- 235000006679 Mentha X verticillata Nutrition 0.000 description 1
- 235000002899 Mentha suaveolens Nutrition 0.000 description 1
- 235000001636 Mentha x rotundifolia Nutrition 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 241000414697 Tegra Species 0.000 description 1
- 102100038282 V-type immunoglobulin domain-containing suppressor of T-cell activation Human genes 0.000 description 1
- 230000003187 abdominal effect Effects 0.000 description 1
- 238000002679 ablation Methods 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- IJJVMEJXYNJXOJ-UHFFFAOYSA-N fluquinconazole Chemical compound C=1C=C(Cl)C=C(Cl)C=1N1C(=O)C2=CC(F)=CC=C2N=C1N1C=NC=N1 IJJVMEJXYNJXOJ-UHFFFAOYSA-N 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002697 interventional radiology Methods 0.000 description 1
- 230000003902 lesion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012829 orthopaedic surgery Methods 0.000 description 1
- 230000002685 pulmonary effect Effects 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000011514 reflex Effects 0.000 description 1
- 238000002271 resection Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 210000001519 tissue Anatomy 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
- 230000002861 ventricular Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/14—Transformations for image registration, e.g. adjusting or mapping for alignment of images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/33—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/33—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
- G06T7/344—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods involving models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/521—Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10072—Tomographic images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10072—Tomographic images
- G06T2207/10088—Magnetic resonance imaging [MRI]
-
- 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/20072—Graph-based image processing
-
- 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/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Optics & Photonics (AREA)
- Image Processing (AREA)
- Health & Medical Sciences (AREA)
- Radiology & Medical Imaging (AREA)
- Epidemiology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
- Apparatus For Radiation Diagnosis (AREA)
- Magnetic Resonance Imaging Apparatus (AREA)
Abstract
一种用于基于图像数据在环境中对准多个深度相机的方法可包括由一个或多个处理器访问对应于相对于对象的第一姿势的多个第一点云数据点和对应于相对于对象的第二姿势的多个第二点云数据点。该方法可以包括由一个或多个处理器基于第一姿态或第二姿态中的至少一个来确定图像数据的参考系。该方法可以包括由一个或多个处理器变换多个第一点云数据点或多个第二点云数据点中的至少一个,以与参考系对准。
Description
相关申请的交叉引用
本申请要求美国临时专利申请号62/888,099的权益和优先权,其公开内容通过引用整体结合于此。
背景技术
图像配准可用于各种应用中。例如,来自相机的图像数据可以被配准到3D模型,以将图像数据与存储的3D信息相关联。
发明内容
本公开总体上涉及图像检测和配准领域。更具体地,本公开涉及用于实时多模态图像对准的系统和方法。该技术解决方案的系统和方法可以用于实时3D点云和图像配准,例如用于医学分析或外科手术应用。
各个方面通常涉及使用三维(3D)图像数据进行实时多模态图像对准的系统和方法,并且可以在没有标记的情况下以亚毫米精度实现。3D图像,包括诸如CT或MRI的扫描,可以被直接配准到对象上,诸如患者的身体上,其使用一个或多个捕捉设备实时捕捉。这允许诸如内部组织信息的某些扫描信息与对象的点云表示一起实时显示。这对于外科手术是有益的,否则外科手术将利用手动过程在CT扫描中在相同的参考系中取向仪器。可以跟踪仪器,绘制仪器轨迹,并在扫描中突出显示目标。本解决方案可以为各种应用提供实时的亚毫米配准,例如将深度捕捉信息与医学扫描(例如,用于外科手术导航)对准、将深度捕捉信息与CAD模型(例如,用于制造和故障检修)对准、将多种医学图像模态(例如,MRI和CT;CT和3D超声;MRI和3D超声)对准、对准多个CAD模型(例如,找出模型之间的差异)以及融合来自多个图像捕捉设备的深度捕捉数据)。
本解决方案可以在各种环境中实现图像引导程序,包括手术室、门诊环境、CT套房、ICU和急诊室。本解决方案可用于神经外科应用,例如CSF分流程序,例如外部脑室放置和VP分流放置;脑肿瘤切除和活检;和电极位置。本解决方案可用于介入放射学,例如用于腹部和肺部活检、消融、抽吸和引流。本解决方案可用于整形外科手术,例如脊柱融合手术。
本公开的至少一个方面涉及一种将三维点云变换到不同参考系的方法。该方法可以例如由数据处理系统的一个或多个处理器来执行。该方法可以包括由一个或多个处理器访问由具有第一姿态的第一捕捉设备捕捉的第一点云的第一组数据点,以及由具有不同于第一姿态的第二姿态的第二捕捉设备捕捉的第二点云的第二组数据点。该方法可以包括基于第一组数据点选择参考系。该方法可以包括使用参考系和第一组数据点确定第二组数据点的变换数据结构。该方法可以包括使用变换数据结构和第二组数据点将第二组数据点变换成变换的一组数据点。
在该方法的一些实施方式中,访问第一点云的第一组数据点可以包括从第一捕捉设备接收三维图像数据。在该方法的一些实施方式中,访问第一点云的第一组数据点可以包括使用来自第一捕捉设备的3D图像数据生成第一点云以具有第一组数据点。
在该方法的一些实施方式中,第二捕捉设备可以与第一捕捉设备相同。在该方法的一些实施方式中,选择参考系可以包括选择第一点云的第一参考系作为第一参考系。在该方法的一些实施方式中,选择参考系可以包括检索分配给第一点云的第一组数据点中的一个或多个的颜色数据。在该方法的一些实施方式中,选择参考系可以包括基于颜色数据确定参考系。在该方法的一些实施方式中,确定变换数据结构可以包括生成变换数据结构以包括第二组数据点中至少一个点的位置变化或旋转变化。
在该方法的一些实施方式中,变换第二组数据点可以包括将位置变化或旋转变化应用于第二组数据点中的至少一个点,以生成变换的一组数据点。在该方法的一些实施方式中,它可以包括还包括生成包括第一组数据点和变换的一组数据点的组合的一组数据点。在该方法的一些实施方式中,访问第一组数据点和第二组数据点可以包括对第一组数据点或第二组数据点中的至少一个进行下采样。在该方法的一些实施方式中,变换第二组数据点可以包括将第一组数据点的至少一个第一点与第二组数据点的至少一个第二点进行匹配。
本公开的至少一个其他方面涉及一种被配置为将三维点云变换到不同参考系的系统。该系统可以包括由机器可读指令配置的一个或多个处理器。该系统可以通过一个或多个处理器访问由具有第一姿态的第一捕捉设备捕捉的第一点云的第一组数据点,以及由具有不同于第一姿态的第二姿态的第二捕捉设备捕捉的第二点云的第二组数据点。该系统可以由一个或多个处理器基于第一组数据点选择参考系。该系统可以由一个或多个处理器使用参考系和第一组数据点来确定第二组数据点的变换数据结构。该系统可以通过一个或多个处理器使用变换数据结构和第二组数据点将第二组数据点变换成变换的一组数据点。
在一些实施方式中,系统可以通过从第一捕捉设备接收三维图像数据来访问第一点云的第一组数据点。在一些实施方式中,系统可以通过使用来自第一捕捉设备的3D图像数据生成第一点云以具有第一组数据点来访问第一点云的第一组数据点。在该系统的一些实施方式中,第二捕捉设备可以与第一捕捉设备相同。在一些实施方式中,系统可以通过选择第一点云的第一参考系作为第一参考系来选择参考系。
在一些实施方式中,系统可以检索分配给第一点云的第一组数据点中的一个或多个的颜色数据。在一些实施方式中,系统可以基于颜色数据来确定参考系。在一些实施方式中,系统可以通过生成变换数据结构以包括第二组数据点中至少一个点的位置变化或旋转变化来确定变换数据结构。在一些实施方式中,系统可以通过将位置变化或旋转变化应用于第二组数据点中的至少一个点来变换第二组数据点,以生成变换的一组数据点。
在一些实施方式中,系统可以生成包括第一组数据点和变换的一组数据点的组合的一组数据点。在一些实施方式中,系统可以对第一组数据点或第二组数据点中的至少一个进行下采样。在一些实施方式中,系统可以将第一组数据点的至少一个第一点匹配到第二组数据点的至少一个第二点。
本公开的至少一个其他方面涉及一种用于对三维点云数据进行下采样的方法。该方法可以包括访问对应于表示对象的表面的点云的一组数据点。该方法可以包括将响应函数应用于该一组数据点,以将相应的一组响应值分配给该一组数据点。该方法可以包括使用选择策略和该一组响应值来选择该一组数据点的子集。该方法可以包括生成包括该一组数据点的子集的数据结构。
在该方法的一些实施方式中,访问该一组数据点可以包括从至少一个捕捉设备接收三维图像数据。在该方法的一些实施方式中,访问该一组数据点可以包括使用3D图像数据生成表示对象的表面的点云。在该方法的一些实施方式中,将响应函数应用于该一组数据点可以包括使用对应于表示对象的表面的点云的该一组数据点生成图形数据结构。在该方法的一些实施方式中,将响应函数应用于该一组数据点可以包括确定图形过滤器作为响应函数的一部分。
在该方法的一些实施方式中,确定图形过滤器可以包括使用该一组数据点生成k维二叉树。在该方法的一些实施方式中,确定图形过滤器可以包括使用k维二叉树生成图形过滤器。在该方法的一些实施方式中,确定图形过滤器可以包括使用该一组数据点的一对数据点之间的欧几里德距离来生成图形过滤器。在该方法的一些实施方式中,使用该一组数据点的该一对数据点之间的欧几里德距离生成图形过滤器可以进一步基于该一组数据点的该一对数据点的至少一个颜色通道。
在该方法的一些实施方式中,生成图形过滤器可以包括识别该一组数据点的强度参数。在该方法的一些实施方式中,生成图形过滤器可以包括基于该一组数据点的该一对数据点的至少一个颜色通道来确定是否生成图形过滤器。在该方法的一些实施方式中,选择该一组数据点的子集可以包括使用该一组响应值的每个响应值作为权重来执行加权随机选择。在该方法的一些实施方式中,选择策略可以被配置为选择对应于对象的表面上的一个或多个轮廓的数据点的子集。在该方法的一些实施方式中,它可以包括还包括将包括该一组数据点的子集的数据结构存储在存储器中。
本公开的至少一个其他方面涉及一种被配置用于对三维点云数据进行下采样的系统。该系统可以包括由机器可读指令配置的一个或多个处理器。该系统可以访问对应于表示对象的表面的点云的一组数据点。该系统可以将响应函数应用于该一组数据点,以将相应的一组响应值分配给该一组数据点。该系统可以使用选择策略和该一组响应值来选择该一组数据点的子集。该系统可以生成包括该一组数据点的子集的数据结构。
在一些实施方式中,该系统可以从至少一个捕捉设备接收三维图像数据。在一些实施方式中,系统可以使用3D图像数据生成表示对象的表面的点云。在一些实施方式中,系统可以使用对应于表示对象的表面的点云的该一组数据点来生成图形数据结构。在一些实施方式中,系统可以确定图形过滤器作为响应函数的一部分。在一些实施方式中,系统可以使用该一组数据点生成k维二叉树。在一些实施方式中,系统可以使用k维二叉树来生成图形过滤器。
在一些实施方式中,系统可以使用该一组数据点的一对数据点之间的欧几里德距离来生成图形过滤器。在一些实施方式中,该系统可以进一步基于该一组数据点的该一对数据点的至少一个颜色通道,使用该一组数据点的该一对数据点之间的欧几里德距离来生成图形过滤器。在一些实施方式中,系统可以识别该一组数据点的强度参数。在一些实施方式中,系统可以基于该一组数据点的该一对数据点的至少一个颜色通道来确定是否生成图形过滤器。
在一些实施方式中,系统可以使用该一组响应值中的每个响应值作为权重来执行加权随机选择。在一些实施方式中,选择策略可以被配置为使得系统选择对应于对象的表面上的一个或多个轮廓的数据点的子集。在一些实施方式中,系统可以将包括该一组数据点的子集的数据结构存储在存储器中。
本公开的至少一个其他方面涉及一种为点云和图像配准调度处理作业的方法。该方法可以包括识别具有第一存储器的第一处理设备和具有第二存储器的第二多处理器设备。该方法可以包括识别第一点云的第一处理作业。该方法可以包括确定将第一处理作业分配给第二多处理器设备。该方法可以包括将包括第一点云的第一处理作业的信息分配给第二存储器。该方法可以包括接收第二点云的第二处理作业。该方法可以包括确定将第二处理作业分配给第一处理设备。该方法可以包括将用于第二处理作业的信息分配给第一存储器。该方法可以包括由一个或多个处理器向第二多处理器设备传送第一指令,以使第二多处理器设备执行第一处理作业。第一指令可以特定于第二多处理器设备。该方法可以包括由一个或多个处理器向第一处理设备传送第二指令,以使第一处理设备执行第二处理作业。第二指令可以特定于第一处理设备。
在该方法的一些实施方式中,确定将第一处理作业分配给第二多处理器设备可以包括确定第一处理作业包括用于第一点云中的特征检测的操作。在该方法的一些实施方式中,确定将第一处理作业分配给第二多处理器设备可以进一步基于第一点云的数据点的数量小于预定阈值、第二多处理器设备的使用量小于预定阈值或者第一作业的处理复杂度超过复杂度阈值中的至少一个。在该方法的一些实施方式中,识别第一点云的第一处理作业可以包括从第一捕捉设备接收第一点云。
在该方法的一些实施方式中,识别第二点云的第二处理作业可以响应于识别第一点云的第一处理作业。在该方法的一些实施方式中,第一处理作业或第二处理作业可以包括下采样操作、归一化操作、特征检测操作、轮廓检测操作、配准操作或渲染操作中的至少一个。在该方法的一些实施方式中,第二点云可以从由捕捉设备捕捉的图像或3d医学图像中的至少一个中提取。在该方法的一些实施方式中,确定将第二处理作业分配给第一处理设备可以响应于确定第二点云是从3d医学图像中提取的。
在该方法的一些实施方式中,第一处理作业可以与第一优先级值相关联。在该方法的一些实施方式中,第二处理作业可以与第二优先级值相关联。在该方法的一些实施方式中,它可以包括,并且还包括响应于确定第一优先级值大于第二优先级值,确定将第二处理作业分配给第一处理设备。在该方法的一些实施方式中,每个第一优先级值可以基于执行第一处理作业的第一频率。在该方法的一些实施方式中,第二优先级值可以基于执行第二处理作业的第二频率。
本公开的至少一个其他方面涉及一种用于调度点云和图像配准的处理作业的系统。该系统可以包括由机器可读指令配置的一个或多个处理器。该系统可以识别具有第一存储器的第一处理设备和具有第二存储器的第二多处理器设备。该系统可以识别第一点云的第一处理作业。系统可以确定将第一处理作业分配给第二多处理器设备。系统可以将包括第一点云的第一处理作业的信息分配给第二存储器。该系统可以接收第二点云的第二处理作业。系统可以确定将第二处理作业分配给第一处理设备。系统可以将用于第二处理作业的信息分配给第一存储器。该系统可以通过一个或多个处理器向第二多处理器设备传送第一指令,以使第二多处理器设备执行第一处理作业。第一指令可以特定于第二多处理器设备。该系统可以由一个或多个处理器向第一处理设备传送第二指令,以使第一处理设备执行第二处理作业。第二指令可以特定于第一处理设备。
在一些实施方式中,系统可以确定第一处理作业包括用于第一点云中的特征检测的操作。在一些实施方式中,系统可以基于第一点云的数据点的数量小于预定阈值、第二多处理器设备的使用量小于预定阈值、或者第一作业的处理复杂度超过复杂度阈值中的至少一个来确定将第一处理作业分配给第二多处理器设备。在一些实施方式中,系统可以从第一捕捉设备接收第一点云。
在一些实施方式中,系统可以响应于识别第一点云的第一处理作业来识别第二点云的第二处理作业。在该系统的一些实施方式中,第一处理作业或第二处理作业可以包括下采样操作、归一化操作、特征检测操作、轮廓检测操作、配准操作或渲染操作中的至少一个。在一些实施方式中,系统可以从捕捉设备捕捉的图像或3d医学图像中的至少一个中提取第二点云。在一些实施方式中,响应于确定第二点云是从3d医学图像中提取的,系统可以确定将第二处理作业分配给第一处理设备。
在系统的一些实施方式中,第一处理作业可以与第一优先级值相关联。在系统的一些实施方式中,第二处理作业可以与第二优先级值相关联。在一些实施方式中,响应于确定第一优先级值大于第二优先级值,系统可以确定将第二处理作业分配给第一处理设备。在系统的一些实施方式中,第一优先级值可以基于执行第一处理作业的第一频率,第二优先级值可以基于执行第二处理作业的第二频率。
本公开的至少一个其他方面涉及一种用于将三维医学图像与点云配准的方法。该方法可以包括访问表示具有第一参考系的全局场景的第一点云的第一组数据点。该方法可以包括识别具有不同于第一参考系的第二参考系的三维医学图像的特征的一组特征数据点。该方法可以包括使用第一参考系、第一组数据点和该一组特征数据点确定3D医学图像的变换数据结构。该方法可以包括使用变换数据结构将3D医学图像与表示全局场景的第一点云配准,使得3D医学图像相对于第一参考系定位。
在该方法的一些实施方式中,确定变换数据结构可以包括对第一组数据点进行下采样,以生成缩减的第一组数据点。在该方法的一些实施方式中,确定变换数据结构可以包括使用缩减的第一组数据点确定3D医学图像的变换数据结构。在该方法的一些实施方式中,确定变换数据结构可以还包括生成变换数据结构以包括3D医学图像的位置变化或旋转变化。在该方法的一些实施方式中,将3D医学图像与表示全局场景的第一点云配准可以还包括将位置变化或旋转变化应用于3D医学图像,以将3D医学图像的特征与第一点云中的对应点对准。
在该方法的一些实施方式中,识别3D医学图像的特征的该一组特征数据点可以包括向医学图像中的每个数据点分配权重值以生成相应的一组权重值。在该方法的一些实施方式中,识别3D医学图像的特征的该一组特征数据点可以包括选择对应于满足权重值阈值的权重值的3D医学图像的数据点作为该一组特征数据点。在该方法的一些实施方式中,其可以包括还包括响应于将3D医学图像与第一点云配准,显示第一点云和3D医学图像的渲染。在该方法的一些实施方式中,它可以包括从手术仪器接收跟踪数据。在该方法的一些实施方式中,它可以包括将来自手术仪器的跟踪数据变换到第一参考系,以生成变换的跟踪数据。在该方法的一些实施方式中,它可以包括在第一点云和3D医学图像的渲染中渲染经变换的跟踪数据。
在该方法的一些实施方式中,它可以包括确定第一参考系内与第一点云和3D医学图像相关的感兴趣位置。在该方法的一些实施方式中,其可以包括基于第一点云、3D医学图像和感兴趣位置生成手术仪器的移动指令。在该方法的一些实施方式中,它可以包括将运动指令传送到手术仪器。在该方法的一些实施方式中,其可以包括还包括在3D医学图像的渲染中显示高亮区域和对应于感兴趣位置的第一点云。在该方法的一些实施方式中,其可以包括还包括确定3D医学图像中表示的患者距至少部分负责生成第一点云的捕捉设备的距离。
本公开的至少一个其他方面涉及一种被配置用于将三维医学图像与点云配准的系统。该系统可以包括由机器可读指令配置的一个或多个处理器。该系统可以访问表示具有第一参考系的全局场景的第一点云的第一组数据点。该系统可以识别具有不同于第一参考系的第二参考系的三维医学图像的特征的一组特征数据点。该系统可以使用第一参考系、第一组数据点和该一组特征数据点来确定3D医学图像的变换数据结构。系统可以使用变换数据结构将3D医学图像与表示全局场景的第一点云配准,使得3D医学图像相对于第一参考系定位。
在一些实施方式中,系统可以对第一组数据点进行下采样,以生成缩减的第一组数据点。在一些实施方式中,系统可以使用缩减的第一组数据点来确定3D医学图像的变换数据结构。在一些实施方式中,系统可以生成变换数据结构以包括3D医学图像的位置变化或旋转变化。在一些实施方式中,系统可以将位置变化或旋转变化应用于3D医学图像,以将3D医学图像的特征与第一点云中的对应点对准。
在一些实施方式中,系统可以将权重值分配给医学图像中的每个数据点,以生成相应的一组权重值。在一些实施方式中,系统可以选择对应于满足权重值阈值的权重值的3D医学图像的数据点作为该一组特征数据点。在一些实施方式中,响应于将3D医学图像与第一点云配准,系统可以显示第一点云以及3D医学图像的渲染。在一些实施方式中,系统可以从手术仪器接收跟踪数据。在一些实施方式中,系统可以将跟踪数据从手术仪器变换到第一参考系,以生成变换的跟踪数据。在一些实施方式中,系统可以在第一点云和3D医学图像的渲染中渲染经变换的跟踪数据。
在一些实施方式中,系统可以确定第一参考系内与第一点云和3D医学图像相关的感兴趣位置。在一些实施方式中,该系统可以基于第一点云、3D医学图像和感兴趣位置生成手术仪器的移动指令。在一些实施方式中,系统可以将运动指令传送到手术仪器。在一些实施方式中,系统可以显示3D医学图像的渲染中的高亮区域和对应于感兴趣位置的第一点云。在一些实施方式中,该系统可以确定3D医学图像中表示的患者距至少部分负责生成第一点云的捕捉设备的距离。
这些和其他方面和实施方式将在下面详细讨论。前述信息和以下具体描述包括各个方面和实施方式的说明性示例,并提供了用于理解所要求保护的方面和实施方式的性质和特征的概述或框架。附图提供了对各种方面和实施方式的说明和进一步理解,并且被并入并构成本说明书的一部分。各方面可以组合,并且很容易理解,在本发明的一个方面的上下文中描述的特征可以与其他方面组合。各方面可以以任何方便的形式实施。例如通过适当的计算机程序实施,该计算机程序可以承载在适当的载体介质(计算机可读介质)上,该载体介质可以是有形的载体介质(例如磁盘)或者无形的载体介质(例如通信信号)。还可以使用合适的设备来实施这些方面,该设备可以采取运行被安排来实施该方面的计算机程序的可编程计算机的形式。如在说明书和权利要求中所使用的,单数形式的“一”、“一个”和“该”包括复数指示物,除非上下文另有明确规定。
附图说明
附图不打算按比例绘制。不同附图中相同的附图标记和名称表示相同的元件。为了清楚起见,不是每个部件都可以在每个图中标出。在附图中:
图1是根据本公开的一实施例的图像处理系统的透视图。
图2是根据本公开的一实施例的图像处理系统的框图。
图3是根据本公开的一实施例的用于对准来自多个模态的图像数据的方法的流程图。
图4是根据本公开的一实施例的用于基于图像数据在环境中对准多个深度相机的方法的流程图。
图5是根据本公开的一实施例的用于分割医学图像的表面的方法的流程图。
图6是根据本公开的一实施例的用于基于分割从医学图像生成3D表面模型的方法的流程图。
图7是根据本公开的一实施例的用于基于分割从医学图像生成3D表面模型的方法的流程图。
图8是根据本公开的一实施例的用于对从3D表面模型生成的点云进行下采样以提高图像对准效率的方法的流程图。
图9是根据本公开的一实施例的用于从下采样点云中检测轮廓点并对轮廓点的分析进行优先排序的方法的流程图。
图10是根据本公开的一实施例的用于将医学图像的点云配准到全局场景点云的方法的流程图。
图11是根据本公开的一实施例的使用预先捕捉的医学图像和全局场景图像进行实时手术计划可视化的方法的流程图。
图12是根据本公开的一实施例的用于在3D图像环境中动态跟踪仪器运动的方法的流程图。
图13A和13B是根据本公开的一实施例的计算环境的框图。
图14描绘了根据本公开的一实施例的重新采样图像。
图15是根据本公开的一实施例的用于将处理资源动态分配给处理电路内的不同计算对象的方法的流程图。
具体实施方式
以下是与用于实时多模态图像对准的技术、途径、方法、设备和系统相关的各种概念及其实施方式的具体描述。由于所描述的概念不限于任何特定的实施方式,因此上面介绍的和下面更详细讨论的各种概念可以以多种方式中的任何一种来实施。提供特定实施方式和应用的示例主要是为了说明的目的。
I.概述
根据本解决方案的系统和方法可以用于执行来自多个模态的图像数据的实时对准,例如将3D图像数据与医学扫描数据对准或配准。一些系统可以使用用于配准的标记,这些标记可能体积庞大,需要附着到对象上,或者干扰一个或多个图像捕捉设备。由于图像处理流水线中的处理要求,很难以高精度和实时操作这种系统,例如亚毫米精度。此外,各种图像处理操作可能对影响图像数据的因素高度敏感,例如照明、阴影、遮挡、传感器噪声和相机姿态。
根据本解决方案的系统和方法可以应用各种图像处理解决方案来提高来自多个源的图像数据被处理和对准的速度,这可以提高性能并降低处理硬件要求以实现期望的性能基准,而无需使用标记。本解决方案能够实现精确、响应迅速且易于使用的手术导航平台。例如,本解决方案可以使诸如CT或MRI扫描的3D扫描以直接配准到对象(或表示对象的图像数据)上,以及跟踪仪器、绘制仪器轨迹和在扫描上突出显示目标。
图1-2描述了图像处理系统100。图像处理系统100可以包括多个图像捕捉设备104,例如三维相机。相机可以是可见光相机(例如,彩色或黑白)、红外相机或其组合。每个图像捕捉设备104可以包括一个或多个透镜204。在一些实施例中,图像捕捉设备104可以包括用于每个透镜204的相机。图像捕捉设备104可以被选择或设计成预定的分辨率和/或具有预定的视野。图像捕捉设备104可以具有用于检测和跟踪对象的分辨率和视野。图像捕捉设备104可以具有摇摄、倾斜或变焦机制。图像捕捉设备104可以具有对应于图像捕捉设备104的位置和方位的姿态。图像捕捉设备104可以是深度相机。图像捕捉设备104可以是微软公司制造的KINECT。
要由图像捕捉设备104捕捉的图像的光通过一个或多个透镜204被接收。图像捕捉设备104可以包括传感器电路,包括但不限于电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)电路,其可以检测经由一个或多个透镜204接收的光,并基于接收的光生成图像208。
图像捕捉设备104可以例如经由通信总线向处理电路212提供图像208。图像捕捉设备104可以向图像208提供相应的时间戳,这可以在对图像208执行图像处理时便于图像208的同步。图像捕捉设备104可以输出3D图像(例如,具有深度信息的图像)。图像208可以包括多个像素,每个像素分配有空间位置数据(例如,水平、垂直和深度数据)、强度或亮度数据和/或颜色数据。
每个图像捕捉设备104可以与一个或多个臂108的相应端联接,所述臂108可以与平台112联接。平台112可以是手推车,其可以包括用于移动的轮子和用于支撑与平台112一起使用的设备的各种支撑表面。
臂108可以通过旋转、伸展、收缩或伸缩来改变位置和方位,使得图像捕捉设备104的姿态能够被控制。平台112可以支持包括处理电路212的至少一部分的处理硬件116,以及用户界面120。图像208可以由处理电路212处理,以便经由用户界面120呈现。
处理电路212可以结合参考图13A和13B描述的计算设备1300的特征。例如,处理电路212可以包括处理器和存储器。处理器可以被实施为专用处理器、专用集成电路(ASIC)、一个或多个现场可编程门阵列(FPGA)、一组处理组件或其他合适的电子处理组件。存储器是用于存储数据和计算机代码的一个或多个设备(例如,RAM、ROM、闪存、硬盘存储器),所述数据和计算机代码用于完成和促进本公开中描述的各种用户或客户端进程、层和模块。存储器可以是或包括易失性存储器或非易失性存储器,并且可以包括数据库组件、目标代码组件、脚本组件或用于支持这里公开的发明概念的各种活动和信息结构的任何其他类型的信息结构。存储器可通信地连接到处理器,并且包括用于执行这里描述的一个或多个过程的计算机代码或指令模块。该存储器包括各种电路、软件引擎和/或模块,这些电路、软件引擎和/或模块使得处理器执行这里描述的系统和方法。
处理电路212的一些部分可以由远离平台112的一个或多个设备提供。例如,一个或多个服务器、云计算系统或移动设备(例如,如参考图13A和13B所描述的)可以用于执行这里描述的图像处理流水线的各个部分。
图像处理系统100可以包括通信电路216。通信电路216可以实现参考图13A和13B描述的计算设备1300的特征,例如网络接口1318。
图像处理系统100可以包括一个或多个红外(IR)传感器220。IR传感器220可以检测来自图像处理系统100周围环境中的各种设备的IR信号。例如,IR传感器220可用于检测来自IR发射器的IR信号,该IR发射器可与仪器联接以跟踪仪器。IR传感器220可以通信地联接到图像处理系统100的其他组件,使得图像处理系统100的组件可以在图像处理流水线中的适当操作中利用IR信号,如下文所述。
图3描绘了图像处理系统100可以使用一个或多个图像模态的图像数据来执行的图像处理流水线300。本文进一步描述了图像处理流水线300的各种特征,这些特征能够使图像处理系统100以高精度执行实时图像对准。
在一些实施例中,可以执行设置程序以使图像处理系统100能够执行这里描述的各种功能。例如,平台112可以位于诸如患者的对象附近。图像捕捉设备104可以以各种姿势定位和定向,以检测关于对象的图像数据。图像捕捉设备104可以以不同的姿态定位,例如从多个方向面向对象,这可以提高通过融合来自图像捕捉设备104的图像数据而生成的图像数据的质量。
在305处,可以接收第一图像数据。第一图像数据可以是模型数据(例如,医学扫描数据、DICOM数据),例如CT、MRI、超声或CAD数据。模型数据可以经由医疗机构的网络,例如与图片归档和通信系统(PACS)连接的网络,从远程源(例如,云服务器)接收,或者可以在处理电路216的存储器中。模型数据可以是术中数据(例如,在对对象执行程序时检测到的)或术前数据。
在310处,可以接收第二图像数据。第二图像数据可以具有与第一图像数据不同的模态。例如,第二图像数据可以是来自3D相机的3D图像数据。
在315处,可以对第一图像数据进行重新采样,例如下采样。可以以保留第一图像数据的关键特征的方式对第一图像数据进行重新采样,同时降低第一图像数据的数据复杂度,提高对第一图像数据执行的进一步操作的效率。类似地,在320处,可以对第二图像数据进行重新采样。重新采样可以包括识别图像数据中与图像配准不相关的特征,并移除它们以生成缩减的或下采样的图像。
在325处,可以确定关于重新采样的第一图像数据的一个或多个第一特征描述符。可以确定特征描述符与重新采样的第一图像数据的轮廓或其他特征相关,该重新采样的第一图像数据对应于由重新采样的第一图像数据表示的3D表面。类似地,在330处,可以确定关于第二图像数据的一个或多个第二特征描述符。
在335处,可以在一个或多个第一特征描述符和一个或多个第二特征描述符之间执行特征匹配。例如,可以通过比较相应的第一特征描述符和第二特征描述符来确定匹配分数,并且响应于匹配分数满足匹配阈值来识别匹配,来执行特征匹配。
在340处,响应于特征匹配,可以在第一图像数据和第二图像数据之间执行一个或多个对准。可以执行一次或多次对准,以将第一图像数据或第二图像数据中的至少一个变换到公共参考系。
II.用于基于图像数据在环境中对准多个深度相机的系统和方法
使用多个深度相机,诸如3D相机,可以提高所收集的关于对象和该对象周围的环境的3D图像数据的质量。然而,可能难以对准来自可能位于不同姿势的各种深度相机的图像数据。本解决方案可以有效地确定用于变换各种点云数据点的参考系,并将点云数据点与参考系对准,以便生成对准的图像数据。
现在返回参考图1和2,图像处理系统100可以利用图像捕捉设备104作为3D相机来捕捉对象的实时3D图像数据。例如,图像捕捉设备104可以各自捕捉对象、物体或环境的至少一个3D图像。这种环境可以包括对存在于该环境中的对象来说不能是医学上的其他特征。3D图像可以由图像捕捉设备提供的参考系中的多个点或一组点组成。组成3D图像的一组点可以具有颜色信息。在一些实施方式中,该颜色信息被丢弃,并且不在进一步的处理步骤中使用。由相应的图像捕捉设备104捕捉的每组点可以被称为“点云”。如果利用多个图像捕捉设备104来捕捉对象的图像,则每个图像捕捉设备104可以具有不同的参考系。在一些实施方式中,由图像捕捉设备104捕捉的3D图像不能被实时记录。在这样的实施方式中,可以使用单个图像捕捉设备104,并且该图像捕捉设备104可以以第一姿势捕捉第一3D图像,然后被重新定位到第二姿势以捕捉对象的第二3D图像。
响应于捕捉至少一个3D图像(例如,作为图像208中的至少一个,等等),图像捕捉设备104可以例如经由通信总线向处理电路212提供图像208。图像捕捉设备104可以向图像208提供相应的时间戳,这可以在对图像208执行图像处理时便于图像208的同步。图像捕捉设备104可以输出3D图像(例如,具有深度信息的图像)。图像208可以包括多个像素,每个像素分配有空间位置数据(例如,水平、垂直和深度数据)、强度或亮度数据或颜色数据。在一些实施方式中,处理电路212可以将图像208存储在处理电路212的存储器中。例如,存储图像208可以包括在处理电路212的存储器中的一个或多个数据结构中索引图像208。
处理电路212访问由具有第一姿态的第一捕捉设备104捕捉的第一点云的第一组数据点,以及由具有不同于第一姿态的第二姿态的第二捕捉设备104捕捉的第二点云的第二组数据点。例如,每个3D图像(例如,图像208)可以包括构成点云的一个或多个3D维度数据点。数据点可以对应于由3D相机捕捉的单个像素,并且可以至少是三维数据点(例如,包含至少三个坐标,每个坐标对应于一个维度)。三维数据点可以包括在相应图像208中指示的参考系内的至少三个坐标。这样,处于不同姿态的不同图像捕捉设备104可以产生不同参考系中的3D图像。为了在捕捉对象的3D图像时提高系统的整体精度和特征密度,系统可以对准由图像捕捉设备104捕捉的3D图像的点云,以产生单个组合的3D图像。组成图像208之一的三维数据点可以一起被认为是单个“点云”。
处理电路212可以从接收自图像捕捉设备104的图像208中的每个数据点提取三维数据,以生成对应于第一图像捕捉设备104的第一点云以及对应于第二图像捕捉设备104的第二点云。从点云中提取三维数据可以包括仅访问和提取(例如,复制到处理电路212中的存储器的不同区域等等)3D图像中的数据点的三个坐标(例如,x轴、y轴和z轴等等)。这样的过程可以在进一步的处理步骤中去除或丢弃任何颜色或其他不相关的信息。
在一些实施方式中,为了提高系统的整体计算效率,处理电路可以下采样,或者选择性地丢弃构成3D图像的某些数据点,以生成下采样的一组数据点。处理电路212可以例如通过丢弃(例如,不从图像中提取数据点,等等)图像中每四个数据点中的一个(例如,75%的点被均匀提取,等等),来有选择地均匀移除数据点。在一些实施方式中,处理电路212可以提取不同百分比的点数(例如,5%、10%、15%、20%、任何其他百分比等等)。因此,当提取或访问3D图像的点云中的数据点时,处理电路212可以下采样点云以减小它们的整体尺寸,而不会显著影响进一步处理步骤的精度,从而改善图像处理。
响应于来自图像捕捉设备104中的每一个的3D图像数据被变换或以其他方式作为两个或更多个点云被访问,处理电路212可以选择点云中的一个点云作为用于任何其他点云的对准的基线参考系。为了提高表示环境中对象的表面的点云的精度和整体分辨率,两个或更多个图像捕捉设备104可以捕捉对象的3D图像。处理电路212可以组合图像,使得它们存在于单个参考系中。例如,处理电路212可以选择对应于由第一图像捕捉设备104捕捉的一个3D图像的点云中的一个作为参考系。选择点云作为参考系可以包括将所选择的点云(例如,组成点云的数据点和坐标等)复制到存储器的不同区域。在一些实施方式中,选择点云可以包括将存储点分配给处理电路212的存储所选点云的存储器的至少一部分。
选择参考系可以包括检索分配给第一点云的第一组数据点中的一个或多个的颜色数据。例如,处理电路212可以从接收自图像捕捉设备104的3D图像208中的像素或数据点提取颜色数据(例如,红/绿/蓝(RGB)值、青/黄/品红/强度(CMYK)值等),并将颜色数据存储在相应点云的数据点中。处理电路212可以通过将每个数据点的颜色数据与亮度值(例如,平均颜色值的阈值等)进行比较来确定一个参考系是否被更均匀地照亮。处理电路212可以对每个点云中均匀数量的数据点执行这种比较,例如通过循环通过每第N个数据点并将颜色阈值与每个数据点中的颜色数据进行比较。在一些实施方式中,处理电路212可以对每个点云中的数据点上的颜色数据进行平均,以计算平均颜色强度值。响应于平均颜色强度值大于预定阈值,处理电路212可以确定点云被均匀照亮。
在一些实施方式中,处理电路212可以通过确定照射最多(例如,照射最均匀)的点云来选择参考系。具有最均匀照明的点云(例如,因此是高质量的图像)可以被选择作为用于进一步对准计算的参考系。在一些实施方式中,处理电路可以选择参考系作为照明最不均匀的点云的参考系。在一些实施方式中,处理电路212可以任意地(例如,使用伪随机数等)选择点云的参考系作为参考系。
处理电路212可以使用参考系和第一组数据点来确定第二组数据点的变换数据结构。变换数据结构可以包括一个或多个变换矩阵。变换矩阵可以是例如4×4的刚性变换矩阵。为了生成变换数据结构的变换矩阵,处理电路212可以识别一个或多个特征向量,例如通过执行下面结合图9描述的方法900的一个或多个步骤。该过程的结果可以包括每个点云的一组特征向量,其中一个点云被用作参考系(例如,该点云的点将不被变换)。处理电路212可以生成变换矩阵,使得当每个矩阵被应用于(例如用于变换)相应的点云时,经变换的点云的特征将与参考系点云中的类似特征对准。
为了生成变换矩阵(例如,作为变换数据结构的一部分或作为变换数据结构),处理电路212可以访问或从处理电路212的存储器中检索对应于每个点云的特征。为了在参考系点云中找到对应于要变换的点云的点,处理电路212可以计算每个点云中的特征向量之间的L2距离。计算每个点云中特征点的L2距离会返回每个点的初始(且可能不准确)对应列表。对应可以指示数据点对应于每个点云中表示的对象的表面上的相同位置。在列举了这些初始对应之后,处理电路212可以应用随机样本一致性(RANSAC)算法来识别和拒绝不准确的对应。RANSAC算法可用于使用初始对应列表迭代地识别和拟合每个点云之间的对应。
RANSAC算法可用于确定两个点云中的特征的哪些对应与对准过程相关,以及哪些是错误的对应(例如,一个点云中的特征被错误地识别为对应于要变换或对准的点云中的特征)。RANSAC算法可以是迭代的,并且可以拒绝两个点云之间的错误对应,直到拟合出满意的模型。输出的令人满意的模型可以识别参考点云中的每个数据点,这些数据点在要变换的点云中具有对应的数据点,反之亦然。
在执行RANSAC算法时,处理电路212可以从使用特征向量之间的L2距离识别的初始对应的完整集合中随机地(例如伪随机地等等)选择包含最小对应的特征对应的样本子集。处理电路212可以使用该样本子集的元素来计算拟合模型和相应的模型参数。样本子集的基数可以是足以确定模型参数的最小基数。处理电路212可以检查全部对应集中的哪些元素与由估计的模型参数实例化的模型一致。如果对应在某个误差阈值(例如,1%、5%、10%等)内不符合由该组估计模型参数例示的拟合模型,则该对应可以被认为是异常值,该误差阈值定义了可归因于噪声影响的最大偏差。为拟合模型获得的内联集可以称为一致性对应集。处理电路212可以迭代地重复RANSAC算法的步骤,直到在某次迭代中获得的一致集具有足够的内联体(例如,大于或等于预定阈值,等等)。一致集可以是符合RANSAC算法参数的每个点云中的数据点之间的对应的准确列表。RANSAC算法的参数可以是预定的参数。一致集然后可以在迭代最近点(ICP)算法中使用,以确定变换数据结构。
处理电路212可以使用通过使用RANSAC算法生成的对应特征的一致集来执行ICP算法。一致集中的每个对应特征可以包括每个点云中的一个或多个数据点。当执行ICP算法时,处理电路212可以将参考点云中的最近点(或选择的一组)与要变换的点云中的最近点进行匹配。然后,处理电路212可以使用均方根点到点距离度量最小化技术来估计旋转和平移的组合,该技术将最好地对准要变换的点云中的每个点与其在参考点云中的匹配。处理电路212可以变换点云中的点,以确定点云中特征之间的误差量,并使用该过程进行迭代,以确定要变换的点云的位置和旋转的最佳变换值。这些输出值可以组合在一个变换矩阵中,例如4×4的刚性变换矩阵。这个输出变换矩阵可以是变换数据结构。
处理电路212使用变换数据结构来变换点云中要变换的该一组数据点,以创建变换的一组数据点。变换数据结构可以包括一个或多个变换矩阵。变换矩阵包括表示要变换的点云中的点的位置变化或旋转的变换值。处理电路212可以将变换数据结构中的值应用(例如,偏移一位置或应用围绕参考点的旋转,等等)到要变换的点云中的每个点,以改变其相应的位置或旋转。然后,该变换后的点云可以在与被选作参考系的点云相同的参考系中。
处理电路212可以生成包括第一组数据点和变换的一组数据点的组合的一组数据点。在一些实施方式中,该组合的一组数据点可以包括参考点云和经变换的点云中的所有数据点。因为数据点表示从两个不同角度对同一对象的捕捉,所以处理电路212可以使用该组合的一组数据点来组合更完整的3D基于点的图像。例如,该组合的一组数据点中的每个可以表示被分析对象的3D图像。该3D图像可被变换成显示数据(例如,使用3D渲染技术渲染的基于3D点的网格等)并被提供给用户界面120用于显示。处理电路212可以将组合的一组数据点存储在处理电路212的存储器中,用于进一步处理。
现在参考图4,描绘了用于基于图像数据在环境中对准多个深度相机的方法400的流程图。方法400可以使用这里描述的各种设备和系统来执行,例如上面结合图1和2描述的图像处理系统100或其组件或模块。
在405处,访问第一点云数据点和第二点云数据点。点云数据点可以包括空间坐标和分配给该空间坐标的各种参数。例如,点云数据点可以包括特定参考系中的空间坐标(例如,笛卡尔坐标;圆柱坐标;球面坐标)。点云数据点可以指示诸如亮度或强度、灰度数据、颜色数据(例如,RGB、CYMK)、密度或其各种组合的信息。在一些实施例中,图像数据被处理以生成点云数据点。
第一点云数据点可以对应于相对于对象的第一姿态,第二点云数据点可以对应于相对于对象的第二姿态。姿态可以表示检测对应于点云数据点的图像数据的设备的位置和方位,诸如图像捕捉设备(例如,相机)、MRI机器或CT机器。
第一姿态或第二姿态中的至少一个可以基于从相应的图像捕捉设备接收的姿态数据来确定。例如,可以基于从与图像捕捉设备联接的位置传感器(例如,加速度计)接收的数据来确定姿态。
第一姿态或第二姿态中的至少一个可以基于由对象周围环境中的一个或多个图像捕捉设备捕捉的图像数据来确定。例如,如果第二图像捕捉设备在第一图像捕捉设备的视野中,则由第一图像捕捉设备捕捉的图像数据可以被处理以识别第二图像捕捉设备。第二图像捕捉设备的姿态可以从识别第二图像捕捉设备的图像数据中确定。
在410处,基于第一姿态或第二姿态中的至少一个为图像数据确定参考系。参考系可以通过比较第一点云数据点和第二点云数据点来确定。例如,可以比较点云数据或从点云数据提取的特征,可以基于该比较生成匹配分数(例如,确定相似性),并且可以基于该匹配分数确定对准变换。
在一些实施例中,来自点云数据点的颜色数据可用于确定参考系。例如,除了强度或亮度值之外,当比较点云数据点时,可以使用来自分配给每个点云数据点的一个或多个颜色通道的数据,这可以提高基于比较生成的匹配分数的精度。
在415处,第一点云数据点或第二点云数据点中的至少一个被变换以与参考系对准。例如,如果参考系对应于第一姿态(或第二姿态),则第二点云数据点(或第一点云数据点)可以被变换以与参考系对准。在一些实施例中,参考系不同于第一和第二姿态中的每一个,并且第一点云数据点和第二点云数据点每个都可以被变换以与参考系对准。
在一些实施例中,当变换点云数据点时,不使用颜色数据。例如,该变换可以应用于点云数据点的空间坐标,而不能应用于颜色数据。颜色数据可以在变换点云数据点之前被丢弃,或者可以保留在点云数据结构中以供以后检索。
III.用于分割医学图像的表面的系统和方法
分割图像,例如医学图像或3D图像,可以提高在图像处理流水线中对图像执行的进一步操作的效率。然而,可能难以以计算高效的方式分割图像,同时还保留与正在对其执行图像处理的应用相关的信息。本解决方案可以实现分割模型,该分割模型可以有效地保留解剖学相关信息并提高计算效率。例如,本解决方案可以实现分割模型,该分割模型有效地将对象的表面(包括其解剖特征)与周围环境区分开,例如通过识别对象的表面和周围空气之间的密度差异,或者使用被训练来将点云数据点分类为对应于对象的表面的机器学习模型。
图5描绘了用于分割医学图像的表面的方法500。方法500可以使用这里描述的各种设备和系统来执行,例如图像处理系统100。
在505处,访问点云数据点。点云数据点可以对应于对象的表面。例如,点云数据点可以对应于由3D相机、MRI设备或CT设备检测的对象的医学图像或3D图像。
在510处,多个点云数据点被用作分割模型的输入。分割模型可以包括基于由点云数据点的图像数据指示的密度数据生成分割的一个或多个函数(例如,基于点云数据点的强度数据从空气中分割表面)。这些片段可以是共享相似特性的像素区域或数据点组,例如从对象周围的空气中表示对象的表面的像素区域或数据点组。
在一些实施例中,分割模型包括机器学习模型。可以使用包括预定图像(例如,预定图像数据)和与图像相关联的标记片段(例如,预定片段)的训练数据来训练机器学习模型。例如,机器学习模型可以包括神经网络,该神经网络被训练成基于包括图像数据(例如点云数据点)的输入数据来生成包括一个或多个片段的输出数据。
在515处,生成多个片段。可以使用分割模型来生成片段。响应于对分割模型的输入,片段可以对应于对象的表面。
在520处,输出多个片段。可以输出这些片段以生成对象的表面的3D表面模型
IV.用于基于分割从医学图像生成3D表面模型的系统和方法
基于医学图像(例如MRI或CT扫描)的3D表面模型可用于各种应用,包括手术导航和规划以及仪器跟踪。为了使用3D表面模型有效地渲染和执行图像处理操作,从底层3D图像数据的分割中生成3D表面模型可能是有用的。例如,可以从使用这里描述的分割模型生成的片段中生成三角形或四边形3D表面模型。点云数据可以从3D表面模型生成,或者直接从分割数据生成(例如,从由分割模型生成的片段)。
图6描绘了用于基于分割从医学图像生成3D表面模型的方法600。方法600可以使用这里描述的各种设备和系统来执行,例如图像处理系统100。
在605处,访问多个片段。这些片段可以对应于对象的三维表面。例如,可以从表示表面的图像数据生成片段,例如对应于检测到的表面图像的3D点云数据点。
在610处,生成多个片段的三维模型。三维模型可以表示对象的三维表面。3D模型可以被生成为三角形或四边形的3D表面模型,例如通过连接片段的点以形成三边或四边的表面部分。
在615处,生成点云数据结构。点云数据结构可以表示对象的三维表面。例如,点云数据结构可以通过对形成使用片段生成的表面的表面部分的点进行采样来生成。点云数据结构可以包括对应于表面部分的多个点云数据点。
在620处,输出点云数据结构。可以输出点云数据结构来表示3D表面模型,例如用于将3D表面模型与其他模态的图像数据(例如,3D图像数据)进行匹配。
图7描绘了用于基于分割从医学图像生成3D表面模型的方法700。方法700可以使用这里描述的各种设备和系统来执行,例如图像处理系统100。方法700可以类似于方法600,同时直接从表面的分割生成对象的表面的点云表示(例如,而不是经由3D表面模型)。
在705处,访问多个片段。这些片段可以对应于对象的三维表面。例如,可以从表示表面的图像数据生成片段,例如对应于检测到的表面图像的3D点云数据点。
在710处,生成点云数据结构。点云数据结构可以表示对象的三维表面。例如,点云数据结构可以通过使用片段对点进行采样来生成。点云数据结构可以包括对应于片段的多个点云数据点。
在715处,输出点云数据结构。可以输出点云数据结构来表示对象的表面,例如用于将3D表面与其他模态的图像数据(例如,3D图像数据)相匹配。
V.用于对从3D表面模型生成的点云进行下采样以提高图像对准效率的系统和方法
可以比较和匹配来自多个模态的点云数据,以便为各种应用对准点云数据。然而,表示对象的3D表面、3D图像数据和3D模型的点云数据的大小和复杂性使得难以在图像处理流水线中有效地处理这些数据。例如,微软公司制造的KINECT每秒可以生成900万点云数据点。使用3D点云数据的图像处理操作的运行时间可以与3D点云数据的密度直接相关(包括比以线性时间运行更慢)。此外,各种图像处理操作可能对影响图像数据的环境因素高度敏感,例如照明、阴影、遮挡和姿态。
本解决方案可以以有效保留点云数据点之间的解剖学或其他物理相关信息和关系的方式,有效地对点云进行重新采样(例如,下采样),例如保留对象的轮廓和边缘,同时降低进一步图像处理中涉及的计算复杂度。本解决方案可以降低点云密度,以允许更快的图像处理,同时保留相关信息。这样,本解决方案能够实现满足目标性能标准的实时图像处理,例如亚毫米精度(例如,保留点云数据点之间的距离小于1毫米的图像数据)。
现在回头参考图1和2,图像处理系统100可以对点云进行重新采样或下采样,以提高图像处理流水线中的计算效率,而不会显著降低图像配准的精度。通过选择性地减少需要被处理以实现期望的3D图像配准的点的总数,图像处理系统100可以提高3D图像配准技术的速度,同时减少整体计算需求。图像处理系统100可以对点云数据执行基于轮廓的重新采样,这可以降低3D图像(例如,由图像捕捉设备捕捉的,或者从诸如CT扫描或MRI图像等3D医学图像中提取的)的点云的密度,同时保留相关的点和点之间的关系,诸如轮廓和边缘。点云中的相关部分是对这里描述的图像配准过程具有更大影响或重要性的部分。
处理电路212可以访问对应于表示对象的表面的点云的一组数据点。构成点云的3D数据点(例如,从3D医学图像中提取的,等等)可以是描述特定参考系中的一组坐标的多维数据点。例如,点云的3D数据点(例如,数据点的集合)可以包括三个坐标(例如,笛卡尔坐标、圆柱坐标等)。数据点可以对应于由3D相机捕捉的单个像素,并且可以至少是三维数据点(例如,包含至少三个坐标,每个坐标对应于一空间维度)。在一些实施方式中,数据点可以对应于3D医学图像中的点或顶点,例如CT扫描模型或MRI图像。在一些实施方式中,所访问的数据点(例如,由处理电路212从存储器中的一个或多个数据结构中检索的数据点等)可以是从两个或更多个图像捕捉设备104捕捉的点云中生成的该组合的一组数据点。在一些实施方式中,处理电路212例如在图像捕捉设备104捕捉对象或环境的3D图像时实时地从至少一个图像捕捉设备104访问或接收该一组数据点。
访问该一组数据点可以包括使用3D图像数据生成表示对象的表面的点云。在一些实施方式中,处理电路212可以接收或检索包括一组3D数据点的3D图像或模型。可以从3D图像或模型中提取这些数据点以及其他相关的点数据(例如,颜色、每个点的温度等其他因素)。例如,在3D模型(例如,CT扫描网格或MRI图像模型等)的情况下,处理电路212可以使用3D模型中存在的数据提取一个或多个切片或顶点。在一些实施方式中,处理电路212可以使用上文结合图6和7描述的方法600或方法700中的步骤从3D模型生成点云。
处理电路212可以将响应函数应用于该一组数据点,以将相应的一组响应值分配给该一组数据点。响应函数可以是获取一组数据点(例如,来自点云)并基于输入点之间的关系生成响应值的函数。响应函数可以通过对点云中的点应用一个或多个矩阵运算来为每个输入数据点生成响应值。响应值可以是指示相应数据点是否是感兴趣特征(例如轮廓)的一部分的权重值。例如,因为轮廓是更复杂的结构,所以可以认为它们与图像配准或两个不同点云的配准更相关。为了确定点云中每个数据点的响应值,处理电路212可以相对于一个或多个相邻对数据点对每个数据点进行分析。例如,处理电路212可以应用响应函数来生成响应值,该响应值基于与感兴趣特征具有更大关联的数据点而具有更大的权重,感兴趣特征例如是轮廓、边缘、片段或可能表示解剖特征或手术仪器的其他图像特征。
例如,处理电路212可以应用包括图形过滤器的响应函数,该图形过滤器可以应用于从点云中的数据点生成的图形数据结构。图形过滤器可以是将图形数据结构作为输入作为输入并产生由相同图形数据索引的输出的函数。图形数据结构可以是指示图形中不同节点(例如,点云数据点)之间关系的邻接矩阵。邻接矩阵可以是正方形矩阵,其值对应于图形中节点之间的边权重。
为了生成图形数据结构,处理电路212可以生成具有边权重W的邻接矩阵,使得:
其中W可以是点云中的点之间的邻接矩阵,xi和xj可以分别对应于点云中的第i和第j个数据点,σ是图形过滤器响应函数的可调参数。在一些实施方式中,处理电路212可以生成邻接矩阵,使得如果由边连接的点之间的距离大于预定阈值,则将数据点的边权重设置为零。使用上述邻接矩阵,处理电路212可以利用图形过滤函数:
h(A)=I-A,
其中h(A)是图形过滤器,A是图形移位算子,使得:
A=D-1W,
其中W是上面概述的邻接矩阵,而D是对角矩阵,其中Di,I可以是W的第i行中每个元素的总和。使用上述图形过滤器,处理电路212可以将响应函数定义为:
响应函数可以在整组数据点X上操作,并且给每个数据点X分配一权重值,该权重值指示相应点是轮廓的一部分的可能性。
为了提高计算效率,处理电路212可以使用该一组数据点来生成邻接矩阵W,从而生成k维二叉树(这里有时称为“k-d树”)。在一些实施方式中,处理电路212不创建k-d树,而是生成邻接矩阵以包括从点云中的每个数据点到点云中的每个其他数据点的非零边。
处理电路212可以使用点云数据点作为二叉树来生成k维树,该二叉树基于点云数据点的参数(例如空间坐标)将点云数据点分类成节点,并且可以使用分配给每个点云数据点的强度、亮度、颜色、密度或其他参数来进一步生成k维树。可以基于k维树生成特定点云数据点的邻接矩阵W,使得在k维树中距离特定点云数据点超过k个邻居的每个点云数据点的权重Wi,j设置为零。维数k可以对应于用于生成k维树的不同参数的数目(例如,三个空间坐标维或三个颜色维,等等)。维数k可以是预定的参数,其可以用于控制与生成响应函数和将响应函数应用于点云数据点相关联的计算需求。
在一些实施方式中,当组装邻接矩阵时,处理电路212可以基于该一组数据点的该一对数据点的至少一个颜色通道确定欧几里得距离(例如,而不是仅基于独立于任何颜色通道数据的位置数据来确定xi–xj)。在一些实施方式中,处理电路212可以另外基于每个数据点中包括的红色、绿色或蓝色通道数据(或者青色、黄色、品红色、强度颜色通道数据,视情况而定)来计算欧几里德距离。例如,处理电路212可以使用每个颜色通道来确定或计算欧几里德距离,作为范围例如可以从0到1的三个附加且独立的距离。颜色值可以作为数据点的一部分或与数据点相关联地存储,例如,作为范围从0到255的8位颜色数据(每个颜色通道一个8位数)。
生成图形过滤器可以包括识别该一组数据点的强度参数。强度参数可以是例如描述通道的参数,该通道包括在点云中的数据点的颜色值中或者从该颜色值中计算出。例如,如果数据点存储CYMK颜色通道,则数据点可以利用K作为数据点的强度值。在一些实施方式中,例如当数据点与RGB颜色通道一起存储时,处理电路212可以计算每个数据点中的颜色通道的加权平均值,以计算每个数据点的强度值。处理电路212可以比较为点云中的数据点生成或访问的强度值,并确定大量(例如,大于10%、15%、40%、50%、任何其他预定量等)强度值之间的变化是否大于预定阈值。如果该变化大于预定阈值,则由点云表示的表面不能被均匀地照亮,并且处理电路212可以使用基于非颜色的图形过滤器变型。相反,如果变化不大于预定阈值,则表面可以被均匀且清晰地照亮,并且处理电路212可以利用基于颜色的图形过滤器变型。
处理电路212可以使用选择策略和对应于点云中每个数据点的该一组响应值来选择该一组数据点的子集。选择策略可以指示例如哪些点与进一步的处理操作相关,以及哪些点可以从整个点云中移除而不牺牲图像配准精度。由处理电路212执行的选择策略可以例如将每个数据点的响应值与预定阈值进行比较。如果响应值等于或大于预定阈值,则选择策略可以指示数据点不应从点云中剔除。如果响应值小于预定阈值,则选择策略可以指示该点应该从点云中移除或下采样。因此,选择策略可以被配置为选择点云中的数据点的子集,该子集充分对应于由点云表示的对象的表面上的一个或多个轮廓。
在一些实施方式中,选择策略可以在伪随机的基础上移除点。除了基于计算的响应值移除数据点之外,处理电路212可以通过从点云中均匀地移除数据点来进一步提高性能。例如,为了从整个点云中伪随机且均匀地移除数据点,选择策略可以包括为点云中的每个数据点生成伪随机数的指令。伪随机数可以是一范围值之间的值,例如0到100之间的值。处理电路212可以确定数据点的伪随机值是否小于预定阈值。按照前面的示例,如果选择策略指示大约25%的数据点应该从点云中被均匀地剔除,则选择策略可以包括移除或剔除被分配了小于25的伪随机值的数据点的指令。
一旦选择策略指示了哪些点可以从点云中移除而不牺牲系统的精度,处理电路212就可以生成包括没有被选择策略剔除的该一组数据点的所选子集的数据结构。该数据结构可以小于包括点云中的整个该一组数据点的数据结构。在一些实施方式中,可以为子集中的数据点分配索引值,该索引值对应于数据点在数据结构中的相应位置。处理电路212然后可以将数据点的主题的所生成的数据结构存储在处理电路212的存储器中。
图8描绘了用于对从3D表面模型生成的点云进行下采样以提高图像对准效率的方法800。方法800可以使用这里描述的各种设备和系统来执行,例如图像处理系统100。方法800可以用于对点云数据执行基于轮廓的重新采样,这可以降低点云数据的点云密度,同时保留相关的点和点之间的关系,例如轮廓和边缘。
在805处,访问多个点云数据点。点云数据点可以对应于对象的表面。例如,点云数据点可以对应于由3D相机、MRI设备或CT设备检测的对象的医学图像或3D图像。
在810处,基于图形过滤器的响应函数被应用于多个数据点的每个点云数据点。响应函数可以被应用来将响应值分配给多个点云数据点中的每个相应的点云数据点。
例如,图形过滤器可以是函数h(A)=I–A,其中A是图形移位运算符A=D-1W。W可以是点云数据点的邻接矩阵,使得W具有边权重并且D是对角矩阵,其中Di,i是W的第i行中的每个元素的和。响应函数可以定义为
在一些实施例中,使用k维树来生成图形过滤器,这可以减少计算需求。例如,可以使用点云数据点作为二叉树来生成k维树,该二叉树基于点云数据点的参数(例如空间坐标)将点云数据点分类成节点,并且可以使用分配给每个点云数据点的强度、亮度、颜色、密度或其他参数来进一步生成k维树。可以基于k维树生成特定点云数据点的邻接矩阵W,使得在k维树中距离特定点云数据点超过k个邻居的每个点云数据点的权重Wi,j设置为零。维数k可以对应于用于生成k维树的不同参数的数量(例如,三个空间坐标维度或三个颜色维度)。维数k可以是预定的参数,其可用于控制与生成响应函数和将响应函数应用于点云数据点相关联的计算需求。参数σ2也可以是预定的参数。响应函数可以应用于每个点云数据点,以生成对应于每个相应点云数据点的响应值。
在815处,选择多个点云数据点的子集。可以使用选择策略和多个响应值来选择子集。例如,可以基于响应值来选择子集。选择策略可以执行加权选择,其中基于分配给该点的响应值(例如,基于满足阈值的响应值)为子集选择每个点。在一些实施例中,选择策略执行随机加权选择,例如通过随机生成一个或多个阈值来比较响应值。
在820处,输出多个点云数据点的子集。该子集可以被输出用于进一步的图像处理操作,例如特征匹配和点云对准,这可以由于点云数据点的子集的密度降低而得到改善。图14描绘了图像1400的示例,该图像1400已经根据本解决方案被重新采样,其中k=10并且σ2=0.0005,导致在1405处保留了19.31%的点,在1410处保留了5.30%的点。如图13所示,本解决方案可以将点云数据点的密度减少大约四至二十倍,同时保留相关特征,例如对象的边缘和轮廓。
如上所述,用于确定邻接矩阵W的边权重的点云数据点xi和xj之间的距离可以是基于点云数据点的空间坐标的欧几里得距离(例如,用于确定xi-xj的L2范数)。因此,颜色数据不用于生成邻接矩阵W。在一些实施例中,点云数据点xi和xj之间的距离可以进一步基于来自分配给点云数据点的一个或多个颜色通道的颜色数据来确定(例如,除了空间坐标)。例如,当确定点云数据点之间的欧几里德距离时,来自一个或多个相应颜色通道(例如,红色、绿色、蓝色通道)的一个或多个颜色数据值可以用作除空间维度之外的附加维度。颜色数据可以被归一化到特定的尺度(例如,从0到1的尺度),该尺度可以是与空间维度进行比较的尺度相同的尺度,或者可以是不同的尺度,使得不同的权重被应用于空间距离和颜色距离。
使用颜色数据(例如,执行颜色感知过滤器)在各种情况下都是有效的,尽管它会增加对点云数据点进行重新采样的计算复杂度。例如,当使用颜色数据时,文本(例如,彩色文本)可以被更频繁地采样,因为文本可以被检测为形成文本所在平面的一部分,而不是形成对象的边缘或轮廓。此外,由图像捕捉设备捕捉的用于生成点云数据的颜色数据可能显著依赖于捕捉图像数据时存在的照明。因此,诸如照明、阴影和遮挡等因素会影响使用颜色数据的有效性。当为了下游比较而被重新采样的点云具有相似或均匀的照明时,使用颜色数据可以改进变换估计。使用颜色数据还可以减轻图像捕捉设备的问题,例如飞行像素(其可以呈现与对象边缘的像素相同的颜色)。
在一些实施例中,响应函数可以应用于使用颜色数据的第一操作模式或不使用颜色数据的第二操作模式。操作模式可以基于来自图像数据的信息来选择,例如点云数据点的强度参数。例如,如果强度参数指示点云数据点的照度大于均匀度的阈值度量(例如,基于强度的统计度量,如强度的中值、平均值或标准偏差),则可以选择第一操作模式。
在一些实施例中,在使用响应函数和图形过滤器进行重新采样之前,将一个或多个初步过滤器应用于点云数据点。例如,可以将体素网格过滤器应用于点云数据点,并且可以将响应函数应用于体素网格过滤器的输出,这可以提高重新采样的整体有效性。应用体素网格过滤器可以包括在点云数据点上生成边长为l的网格(例如,每个体素作为特定空间坐标的仓(bin)的3D网格),基于点云数据点的空间坐标将每个点云数据点分配给相应的体素,然后在分配给每个相应体素的每个点云数据点的质心位置和质心颜色处生成更新的点云数据点。体素网格过滤器可以允许点云数据点的均匀密度(例如,与由于相机如何检测图像数据而随着离相机的距离增加而降低密度相比,这可以在一些随机重新采样方法中保留)以及平滑掉局部噪声变化。
VI.用于从下采样点云中检测轮廓点并对轮廓点进行优先分析的系统和方法
可以识别重新采样的点云的特征,例如轮廓点,以便执行进一步的图像处理操作。例如,识别特征可以允许特征匹配和基于特征匹配的点云对准。特征的有效选择(例如,保留物理上相关的特征)可以减少执行对准的计算要求,同时保持对准的目标性能和质量。在一些实施例中,使用诸如尺度不变特征变换(SIFT)或加速鲁棒特征(SURF)算法的关键点检测方法来选择特征。
图9描绘了用于从下采样点云中检测轮廓点并对轮廓点的分析进行优先分析的方法900。方法900可以使用这里描述的各种设备和系统来执行,例如图像处理系统100。具体而言,处理电路212可以执行本文描述的任何操作。
在905处,访问多个点云数据点。点云数据点可以对应于对象的表面。例如,点云数据点可以对应于由3D相机、MRI设备或CT设备检测的对象的医学图像或3D图像。
在910处,生成点云数据点的特征向量。可以为多个点云数据点的至少一个子集的每个点云数据点生成点云数据点的特征向量。点云数据点的特征向量可以基于点云数据点和多个相邻点云数据点。
在一些实施例中,通过将点云数据点和多个相邻点云数据点之间的多个旋转值分配给表示特征向量的多个空间仓中的每一个来生成特征向量。例如,可以使用快速点特征直方图(FPFH)来生成特征向量。可以为每个空间仓确定每个空间轴上的旋转值(例如,θ、φ和α角)。每个空间仓可以分配有在点云数据点的给定半径内的相邻点云数据点;例如,可以使用十一个空间仓,产生长度为33的向量(十一个空间仓,每个被分配三个旋转角度)。生成特征向量可以是O(n*k2)的量级,其中n是点云数据点的数量,k是点云数据点半径内的邻居的数量。
在一些实施例中,通过使用点云数据点的预定半径内的相邻点云数据点来确定点云数据点的参考系,并且基于参考系和多个空间仓来生成特征向量,来生成特征向量。例如,可以使用直方图取向的签名(SHOT)来生成特征向量。参考系可以是使用相邻点云数据点确定的9维参考系。可以生成网格(例如,各向同性网格)来识别多个空间仓,诸如具有32个仓和分配给每个仓的10个角度的网格,这可以产生长度为329的特征向量(描述仓的320维度以及参考系的9维度)。在一些实施例中,特征向量包括颜色数据,其可以被分配给额外的仓。生成特征向量的量级可以是O(n*k)。
可以基于诸如精度和计算时间之类的因素来选择生成特征向量所要执行的过程。例如,使用参考系生成特征向量可以减少计算时间,同时在保留关于对象的相关信息的准确性和保真度方面具有类似的性能。如上关于重新采样所述,颜色数据的使用会受到环境照明均匀度的影响,因此特征向量的生成可以在各种操作模式下执行,这些操作模式可以使用或不使用响应于照明的颜色数据。例如,当在场景配准模式下操作时,使用颜色数据可能是有用的,在场景配准模式下,点云数据被配准到场景(例如,医学扫描数据被配准到对象的3D图像数据)。
在915处,输出每个特征向量。例如,可以输出特征向量来执行特征匹配,其由于本解决方案生成特征向量的方式可以提高计算效率。特征向量可以存储在存储器(例如处理电路212的存储器)中的一个或多个数据结构中。
VII.用于在并行处理环境中为图像对准和点云生成操作动态分配处理资源的系统和方法
本文描述的图像处理流水线可以使用并行处理操作来改进图像对准和点云生成的计算时间。例如,处理电路212可以分配处理资源,例如单独的线程、单独的处理核心或单独的虚拟机(例如,由系统管理程序控制),并且可以用于执行并行处理,例如点云重新采样和特征向量确定(例如,并行地重新采样两个不同的点云或者并行地从重新采样的点云中生成特征向量)。处理电路212可以包括其他计算设备或计算机器,例如图形处理单元、现场可编程门阵列、具有多个处理器或计算节点的计算集群或其他并行处理设备。基于处理资源的当前需求和处理作业的大小,处理电路212可以动态地将某些处理作业分配给专门从事并行处理的处理机器,并将其他处理作业分配给专门从事顺序处理的处理机器。
在一些实施方式中,可以基于图像数据或图像流捕捉源的类型来执行并行处理操作。例如,DICOM数据(例如,CT数据、MRI数据)可以具有不同于由深度相机检测的3D图像数据的特定特征。本解决方案可以将不同的处理线程分配给从每个源接收的每个点云,并且可以基于预期的计算需求将更多或更少的处理资源分配给不同的图像源模态,以便保持在每个模态上执行的处理之间的同步。在适当时,以紧密调度的方式跨并行和顺序计算设备执行点云计算,允许处理电路212实时执行精确的图像配准。
现在参考图15,描绘了用于将处理资源分配给不同计算机器以提高点云配准操作的计算性能的方法1500的说明性流程图。方法1500可以由图像处理系统100执行、实施或以其他方式实施,特别是至少由处理电路212、在此结合图13A和13B描述的计算机系统1300或在此描述的任何其他计算设备执行、实施或以其他方式实施。
在1505处,处理电路212可以识别具有第一存储器的第一处理设备和具有第二存储器的第二多处理器设备。处理电路212可以包括不同的处理机器,例如专门从事并行操作的处理机器(例如,计算节点集群、图形处理单元(GPU)、现场可编程门阵列(FPGA)等),以及专门从事顺序操作的计算机器(例如,高频单核或多核设备等)。这些设备中的每一个都可以包括用于处理操作的存储体或计算机可读存储器。在一些实施方式中,存储体或其他计算机可读介质可以在不同的处理设备之间共享。此外,一些处理设备的存储器可以比其他处理设备具有更高的带宽。
在一些实施方式中,图像处理系统100的处理电路212可以是模块化的。例如,某些处理设备和存储器可以通过一个或多个系统总线或通信总线添加到系统中或从系统中移除。通信总线可以包括PCI Express和以太网等。不同系统总线及其操作的进一步讨论可以在下面结合图13A和13B找到。处理电路212可以查询一个或多个通信或系统总线,以识别和列举可用于处理点云数据的处理资源。例如,处理电路212可以识别一个或多个并行处理单元(例如,计算节点、GPU、FPGA等的集群)或顺序处理单元(例如,高频单核或多核设备等)。一旦识别了设备,处理电路212可以与每个处理设备通信,以确定与每个设备相关联的参数和存储体、映射或区域。这些参数可以包括处理能力、内核、存储器映射、配置信息以及与处理相关的其他信息。
在1510处,处理电路212可以识别第一点云的第一处理作业。在处理电路212的处理设备已经被识别之后,处理电路212可以开始执行这里详细描述的处理作业。处理电路212可以执行指令来处理图像捕捉设备104的点云信息、组合的点云(例如,全局场景点云)或与3D图像数据相关联的点。例如,一个这样的处理作业是计算点云的k维树,如上所述。可以由处理电路212识别的其他处理作业可以包括图形过滤器生成、计算欧几里德距离、确定整体强度值、下采样点云、计算法线贴图、生成点云的特征、将3D医学图像数据(例如,分割)变换成可以表示为点云的3D图像等。在一些实施方式中,这里描述的作业或操作具有处理电路212可以识别的特定顺序。
由处理电路212识别的处理作业可以包括作业信息,例如关于将由处理电路212处理的信息的元数据。作业信息还可以包括一个或多个数据结构或计算机存储器区域,其包含当作业被执行时要被处理的信息。在一些实施方式中,作业信息可以包括指向存储器区域的指针,该存储器区域包括当作业被执行时要被处理的信息。由处理电路212识别的其他作业信息可以包括指令,当由所识别的处理设备执行时,这些指令可以使得处理设备对要处理的信息执行计算任务,以执行处理作业。在一些实施方式中,可以响应于从至少一个图像处理设备104接收点云数据来识别第一处理作业。
在1515处,处理电路212可以确定将第一处理作业分配给第二多处理器设备。某些处理作业可以在不同的、功能更强的处理硬件上更快地执行。例如,如果处理作业包括用于点云中的特征检测的操作,其包括可以并行执行的许多操作,则处理电路212可以确定在并行计算设备上执行该处理作业。可以基于关于要执行的作业的信息为特定作业选择处理设备。这种信息可以包括由作业处理的点云中的数据点的数量、作为处理电路212的一部分的处理设备的使用量或者作业的整体处理复杂度。
如果在特定作业中处理的点的数量超过阈值,并且处理作业不是基于顺序的算法,则处理电路212可以处理确定在多处理器设备上处理作业,该多处理器设备诸如GPU、集群或FPGA,如果这些设备中的任何一个存在的话。否则,如果要处理的点的数量低于预定阈值,例如当点云是3D医学图像时(例如,更小或更少的点,等等),处理电路212可以确定在专门进行顺序处理的处理设备上处理作业。在另一示例中,如果处理设备之一被过度利用(例如,利用量大于预定阈值等),则处理电路212可以确定将作业分配给不同的计算设备。相反,如果处理电路212确定处理单元未被充分利用(例如,利用量分别大于或小于预定阈值,等等),并且适合于在合理的时间量内执行处理作业,则处理电路可以确定将处理作业分配给该处理设备。如果作业的处理复杂度大于某个阈值(例如,非常高的计算阶数等),则处理电路212可以将作业分配给适合该复杂度的计算设备,例如多处理器设备。如果处理电路212确定应该在专门从事顺序计算操作的处理设备上执行处理作业,则该处理设备可以执行步骤1520A。如果处理电路212确定应该在专门从事并行计算操作的第二多处理器设备上执行处理作业,则该处理设备可以执行步骤1520B。
在1520A和1520B处,处理电路212可以将包括第一点云的第一处理作业的信息分配给第二存储器或第一存储器。一旦为特定作业确定了处理设备,处理电路212就可以将执行该作业的作业专用资源分配给适当的处理设备。如果处理电路212确定将使用一个或多个并行处理设备来执行作业,则处理电路212可以向并行处理设备的存储器传送或以其他方式分配作业特定数据,例如点云或任何其他相关数据结构。如果作业专用资源驻留在存储器中与并行处理设备共享的位置,则处理电路212可以向处理设备提供指向作业相关数据的位置的指针。否则,处理电路212可以将处理专用数据传送或以其他方式复制(例如,经由直接存储器存取(DMA)等)到并行处理设备的存储器中,以准备作业用于执行。处理电路212可以使用一个或多个应用编程接口(API),例如NVIDIA CUDA或OpenMP,来与任意数量的并行处理设备或资源通信,或者执行这里公开的任意操作。
如果处理电路212确定将使用顺序处理设备来执行作业,则处理电路212可以向顺序处理设备的存储器传送或以其他方式分配作业特定数据,例如点云或任何其他相关数据结构。如果作业专用资源驻留在存储器中与并行处理设备共享的位置,则处理电路212可以向处理设备提供指向作业相关数据的位置的指针。否则,处理电路212可以将处理专用数据传送或以其他方式复制(例如,经由直接存储器存取(DMA)等)到顺序处理设备的存储器中,以准备作业用于执行。处理电路212可以使用一个或多个应用编程接口(API),例如OpenMP,来与任意数量的顺序处理设备或资源通信,或者执行这里公开的任意操作。
在1525处,处理电路212可以识别第二点云的第二处理作业。即使在其他计算设备正在分配或执行另一作业时,处理电路212也可以执行指令来处理图像捕捉设备104的点云信息、组合的点云(例如,全局场景点云)或与3D图像数据相关联的点,并将这些作业分配给其他计算设备。例如,一个这样的处理作业是计算点云的k维树,如上所述。可以由处理电路212识别的其他处理作业可以包括图形过滤器生成、计算欧几里德距离、确定总强度值、下采样点云、计算法线贴图、生成点云的特征、将3D医学图像数据(例如,分割)变换成可以表示为点云的3D图像,或者这里描述的任何其他处理操作。在一些实施方式中,这里描述的作业或操作具有处理电路212可以识别的特定顺序。在一些实施方式中,如果当前作业所依赖的先前作业仍在由处理电路212的计算机器处理,则处理电路212可以停止作业的处理。
由处理电路212识别的处理作业可以包括作业信息,例如关于将由处理电路212处理的信息的元数据。作业信息还可以包括一个或多个数据结构或计算机存储器区域,其包含当作业被执行时要被处理的信息。在一些实施方式中,作业信息可以包括指向存储器区域的指针,该存储器区域包括当作业被执行时要被处理的信息。由处理电路212识别的其他作业信息可以包括指令,当由所识别的处理设备执行时,这些指令可以使得处理设备对要处理的信息执行计算任务,以执行处理作业。在一些实施方式中,处理作业可以响应于从至少一个图像处理设备104接收点云数据而被识别,或者响应于另一作业被完成而被识别。
在1530处,处理电路212可以确定将第二处理作业分配给第一处理设备。如果所识别的处理作业具有较高的复杂度,并且没有许多可以并行执行的操作,则处理电路212可以确定将该处理作业分配给具有高时钟频率的顺序计算设备。该确定也可以基于关于要执行的作业的信息来进行。这种信息可以包括由作业处理的点云中的数据点的数量、作为处理电路212的一部分的处理设备的使用量或者作业的整体处理复杂度。在一些实施方式中,可以基于优先级值将作业分配给某些计算设备。例如,对于顺序计算设备具有高优先级值的作业将在被分配给非顺序计算设备之前被分配给顺序计算设备。
如果在特定作业中处理的点的数量超过阈值,并且处理作业不是基于顺序的算法,则处理电路212可以处理确定在多处理器设备上处理作业,该多处理器设备诸如GPU、集群或FPGA,如果这些设备中的任何一个存在的话。否则,如果要处理的点的数量低于预定阈值,例如当点云是3D医学图像时(例如,更小或更少的点,等等),处理电路212可以确定在专门进行顺序处理的处理设备上处理作业。在另一示例中,如果处理设备之一被过度利用(例如,利用量大于预定阈值等),则处理电路212可以确定将作业分配给不同的计算设备。相反,如果处理电路212确定处理单元未被充分利用(例如,利用量分别大于或小于预定阈值,等等),并且适合于在合理的时间量内执行处理作业,则处理电路可以确定将处理作业分配给该处理设备。如果作业的处理复杂度大于某个阈值(例如,非常高的计算阶数等),则处理电路212可以将作业分配给适合该复杂度的计算设备,例如多处理器设备。此外,如果特定算法或过程包括不能并行执行的大多数操作,则处理电路212可以将作业分配给顺序处理设备。如果处理电路212确定应该在专门从事顺序计算操作的处理设备上执行处理作业,则该处理设备可以执行步骤1535A。如果处理电路212确定应该在专门从事并行计算操作的第二多处理器设备上执行处理作业,则该处理设备可以执行步骤1535B。
在1535A和1535B处,处理电路212可以将第二处理作业的信息分配给第一存储器或第二存储器(步骤1535A和1535B)。一旦为特定作业确定了处理设备,处理电路212就可以将执行该作业的作业专用资源分配给适当的处理设备。如果处理电路212确定将使用顺序处理设备来执行作业,则处理电路212可以向顺序处理设备的存储器传送或以其他方式分配作业特定数据,例如点云或任何其他相关数据结构。如果作业专用资源驻留在存储器中与并行处理设备共享的位置,则处理电路212可以向处理设备提供指向作业相关数据的位置的指针。否则,处理电路212可以将处理专用数据传送或以其他方式复制(例如,经由直接存储器存取(DMA)等)到顺序处理设备的存储器中,以准备作业用于执行。处理电路212可以使用一个或多个应用编程接口(API),例如OpenMP,来与任意数量的顺序处理设备或资源通信,或者执行这里公开的任意操作。
如果处理电路212确定将使用一个或多个并行处理设备来执行作业,则处理电路212可以向并行处理设备的存储器传送或以其他方式分配作业特定数据,例如点云或任何其他相关数据结构。如果作业专用资源驻留在存储器中与并行处理设备共享的位置,则处理电路212可以向处理设备提供指向作业相关数据的位置的指针。否则,处理电路212可以将处理专用数据传送或以其他方式复制(例如,经由直接存储器存取(DMA)等)到并行处理设备的存储器中,以准备作业用于执行。处理电路212可以使用一个或多个应用编程接口(API),例如NVIDIA CUDA或OpenMP,来与任意数量的并行处理设备或资源通信,或者执行这里公开的任意操作。
在1540处,处理电路212可以传送指令以使第一处理设备和第二多处理器设备执行它们被分配的处理作业。为了允许适当的处理设备执行特定作业的处理,处理电路212可以将与每个作业相关联的指令传送(例如,经由一个或多个系统总线或通信总线等)到适当的计算设备。在一些实施方式中,传送到计算设备的指令可以包括设备特定指令。例如,如果为处理作业选择了GPU设备,则处理电路212可以识别并发送GPU专用指令(例如,CUDA指令等)来执行该作业。同样,如果选择标准CPU设备(例如,顺序处理设备等),则处理电路212可以识别并发送CPU特定指令来执行处理作业。每个计算设备的处理指令可以包括在由处理电路212识别的作业信息中。当处理作业在特定处理设备上完成时,处理电路212可以识别来自该设备的指示作业完成的信号。处理电路212然后可以识别包括作为处理作业的一部分而执行的计算结果的存储器区域,并将其复制到工作存储器的另一区域用于进一步处理。
VIII.用于将医学图像的点云配准到全局场景点云的系统和方法
一旦从图像捕捉设备104捕捉的图像208已经被下采样以提高计算效率,并且特征向量已经从点云中提取,处理系统可以将3D医学图像,例如CT扫描图像或从MRI图像生成的3D模型配准到点云中。将CT扫描图像与点云实时配准可以允许医疗专业人员更容易地将手术仪器与医学图像中指示的特征对准,因为医学图像是在与实时对象信息相同的参考系中绘制的。此外,参考系数据可以与来自手术仪器的位置信息结合使用。跟踪信息可以被变换到与对象的点云数据和变换的医学图像相同的参考系中,以提高外科治疗的精确应用。
返回参考图1和2,图像处理系统100的处理电路212可以将来自一个或多个图像捕捉设备104的点云与对象的3D医学图像配准。3D医学图像可以是例如CT扫描图像或从MRI图像生成的3D模型。为了提高配准过程的处理速度,处理电路212可以用于在离线过程中识别医学图像的特征向量。因此,当医学图像与点云配准时,处理电路212仅需要计算实时捕捉的点云的特征向量,从而提高整体系统性能。
处理电路212可以访问表示具有第一参考系的全局场景的第一点云的一组数据点。全局场景可以是例如由点云中的该一组数据点表示的场景。例如,当使用诸如图像捕捉设备104的3D相机捕捉图像时,可以捕捉除了被分析对象之外的特征,诸如对象所处的周围区域或房间。因此,点云不仅可以表示感兴趣区域的表面,例如对象,还可以包括环境的表面,这可能与图像配准过程不太相关。如上所述,全局场景点云可以是从图像捕捉设备104生成的组合点云。
处理电路212可以识别具有不同于第一参考系的第二参考系的3D医学图像的特征的一组特征数据点。特征数据点可以是例如从离线过程中获取的3D医学图像中提取的一个或多个特征向量。例如,可以由处理电路212通过执行上文结合图9描述的方法900的一个或多个步骤来生成特征向量。访问3D医学图像的特征向量可以包括从处理电路212的存储器中的一个或多个数据结构中检索特征向量。
在一些实施方式中,在确定3D医学图像中存在的特征向量之前,处理电路212可以根据上文描述的方面对从3D医学图像生成的点云进行下采样。例如,处理电路212可以从3D医学图像中提取一个或多个数据点,以生成表示3D医学图像的点云。从3D医学图像提取的点云可以具有不同于由图像捕捉设备104生成的点云的参考系的参考系。在一些实施方式中,从3D医学图像捕捉的点云没有被下采样,而是基于3D医学图像的整个点来确定特征向量。
处理电路212可以使用第一参考系、第一组数据点和来自特征向量的该一组特征数据点来确定3D医学图像的变换数据结构。在表示全局场景的点云或表示3D医学图像的点云中的至少一个已经被下采样的实施方式中,处理电路212可以使用减少的或下采样的点云来生成变换数据结构。变换数据结构可以包括一个或多个变换矩阵。例如,变换矩阵可以是4×4的刚性变换矩阵。为了生成变换数据结构的变换矩阵,处理电路212可以例如通过执行上文结合图9描述的方法900的一个或多个步骤来识别全局场景点云的一个或多个特征向量。该过程的结果可以包括每个点云的一组特征向量,其中全局场景点云可以用作参考系(例如,该点云的点将不被变换)。处理电路212可以生成变换矩阵,使得当每个矩阵被应用于(例如用于变换)医学图像的点云时,医学图像的特征将与全局场景点云中的相似特征对准。
为了生成变换矩阵(例如,作为变换数据结构的一部分或作为变换数据结构),处理电路212可以访问或从处理电路212的存储器中检索对应于每个点云的特征。为了在参考系点云中找到对应于要被变换的点云的点,处理电路可以计算每个点云中特征向量之间的L2距离。在列举了这些对应之后,处理电路212可以应用随机样本一致性(RANSAC)算法来识别和拒绝错误的对应。
RANSAC算法可用于确定每个点云中的特征的哪些对应与对准过程相关,以及哪些是错误的对应(例如,一个点云中的特征被错误地识别为对应于要变换或对准的点云中的特征)。RANSAC算法可以是迭代的,并且可以拒绝两个点云之间的错误对应,直到拟合出满意的模型。输出的令人满意的模型可以识别参考点云中的每个数据点,这些数据点在要变换的点云中具有对应的数据点,反之亦然。
在执行RANSAC算法时,处理电路212可以从使用特征向量之间的L2距离识别的全部对应集中随机地(例如伪随机地等等)选择包含最小对应的特征对应的样本子集。处理电路212可以使用该样本子集的元素来计算拟合模型和相应的模型参数。样本子集的基数可以是足以确定模型参数的最小基数。处理电路212可以检查全部对应集中的哪些元素与由估计的模型参数实例化的模型一致。如果对应在某个误差阈值(例如,1%、5%、10%等)内不符合由该组估计模型参数例示的拟合模型,则该对应可以被认为是异常值,该误差阈值定义了归因于噪声影响的最大偏差。为拟合模型获得的内联集可以称为一致性对应集。处理电路212可以迭代地重复RANSAC算法的步骤,直到在某次迭代中获得的一致集具有足够的内联体(例如,大于或等于预定阈值,等等)。一致集然后可以在迭代最近点(ICP)算法中使用,以确定变换数据结构。
处理电路212可以使用通过使用RANSAC算法生成的对应特征的一致集来执行ICP算法。一致集中的每个对应特征可以包括每个点云中的一个或多个数据点。当执行ICP算法时,处理电路212可以将参考点云中的最近点(或选择的集合)与要变换的点云中的最近点进行匹配。然后,处理电路212可以使用均方根点到点距离度量最小化技术来估计旋转和平移的组合,该技术将最好地对准要变换的点云中的每个点与其在参考点云中的匹配。处理电路212可以变换点云中的点,以确定点云中特征之间的误差量,并使用该过程进行迭代,以确定要变换的点云的位置和旋转的最佳变换值。这些输出值可以组合在变换矩阵中,例如包括3D医学图像的位置变化或旋转变化的4×4刚性变换矩阵。这个输出变换矩阵可以是变换数据结构。
3D医学图像的变换矩阵可以对应于3D医学图像的位置变化或旋转变化。为了将3D医学图像与表示全局场景的点云配准,处理电路212可以将变换矩阵中的位置变化或旋转变化应用于3D医学图像中的点。通过应用变换矩阵,3D医学图像被变换到与由图像捕捉设备104捕捉的点云相同的参考系中。因此,变换矩阵的应用使得3D医学图像与全局场景点云对准。计算变换矩阵和3D医学图像的对准可以实时执行。在一些实施方式中,全局场景的数据点和经变换的3D医学图像的数据点可以被布置在单个参考系中,使得3D医学图像连同全局场景点云的数据点一起相对于全局场景的参考系被定位。
处理电路212可以向用户界面120提供显示信息,以响应于将3D医学图像与第一点云配准,显示第一点云和3D医学图像的渲染。可以使用一个或多个3D绘制过程,将全局场景参考系与经变换的3D医学图像一起用于生成显示数据。显示数据可以显示在例如图像处理系统100的用户界面120中。
图像处理系统100可以在全局场景点云的参考系中包括除了变换的3D图像之外的信息。例如,处理电路212可以从手术仪器接收跟踪数据,并且在全局场景点云的参考系中提供手术指令的指示。例如,使用生成全局场景点云参考系的图像捕捉设备104之一,可以接收手术指令的图像数据(例如,位置、移动、跟踪数据等)。因为仪器与全局场景点云在相同的参考系中,所以手术仪器的位置和跟踪信息可以与具有变换的3D医学图像的全局场景点云一起显示。
在一些实施方式中,处理电路212可以将来自手术仪器的跟踪数据变换到第一参考系,以生成变换的跟踪数据。变换后的跟踪数据可以包括位置偏移、旋转或从手术仪器接收的其他信息。例如,如果在手术仪器的位置和全局场景的参考系之间存在检测到的偏移,则处理电路212可以重新定位或变换跟踪数据以补偿该偏移。可以通过用户输入手动校正偏移。例如,如果观察用户界面120的用户注意到偏移,他们可以输入手动变换值来变换手术仪器的跟踪数据以进行补偿。在一些实施方式中,该过程可以由处理电路212自动执行。处理电路212然后可以使用经变换的跟踪数据来创建显示信息,该显示信息将经变换的手术仪器跟踪信息连同全局场景点云和经变换的3D医学图像一起呈现在全局场景参考系中。
使用来自全局场景的信息,处理电路212可以确定第一参考系内与第一点云和3D医学图像相关的感兴趣位置。例如,感兴趣的位置可以包括3D医学图像不能与全局场景正确对准(例如,不在可接受的误差范围内,等等)的区域。在某些情况下,3D医学图像可能会过时,并且不能与全局场景正确配准。根据上文详述的ICP过程的输出值,处理电路可以识别特征对应对没有在可接受的误差范围内对准的某些位置。如果检测到感兴趣的位置,则处理电路212可以在用户界面120中呈现的显示数据内生成突出显示的区域(例如,以某种方式强调、闪烁红色等)。突出显示的区域可以对应于3D医学图像或全局场景上的感兴趣位置。在一些实施方式中,确定感兴趣的位置可以从患者数据中检索,例如病变、骨折或可以使用手术信息治疗的其他医学问题。该位置可以由医疗专业人员输入,或者使用其他过程自动检测。医疗专业人员可以例如使用用户界面上的一个或多个输入来输入或识别位置。
在感兴趣位置是与外科手术或可以由机器人设备部分自动化的其他医疗手术相关的位置的情况下,处理电路212可以基于全局场景点云、3D医学图像和感兴趣位置生成用于外科手术仪器或其他机器人设备的移动指令。使用全局场景点云数据和手术仪器的跟踪位置,处理电路可以识别不干扰(例如,导致手术仪器以不期望的方式与对象碰撞等)全局场景点云的路径或一系列位置。因为可以实时计算全局场景点云,并且可以实时跟踪手术仪器,所以处理电路212可以计算并提供最新的移动指令,以使手术仪器在特定时间段内移动到感兴趣的位置。做出的移动指令包括将手术仪器移动到特定位置的指令,或者沿着由处理电路212计算的路径移动的指令,该路径允许手术仪器到达感兴趣的位置而不会以不期望的方式干扰患者。在产生运动指令之后,处理电路212可以使用通信电路216将运动指令传送到手术仪器,该通信电路216可以通信地联接到手术仪器。指令可以例如在一个或多个消息或数据包中传送。
处理电路212可以被配置为确定3D医学图像中表示的患者距至少部分负责生成第一点云的捕捉设备的距离。例如,处理电路212可以利用全局场景中的附图标记或对象来确定捕捉全局场景点云的捕捉设备104和正被成像的对象之间的实际距离。如果在全局场景点云中存在具有已知距离或长度的参考对象或市场,则处理电路212可以使用已知距离或长度来确定或计算全局场景点云的不同维度或参数,例如从图像捕捉设备104到全局场景中的其他特征的距离。使用与3D医学图像中的特征相对应的全局点云中的对象的特征,处理电路212可以确定对象的平均位置。使用该平均位置和参考长度或距离,处理电路212可以确定对象离图像捕捉设备104的距离。
图10描绘了用于将医学图像的点云配准到全局场景点云的方法1000。方法1000可以使用这里描述的各种设备和系统来执行,例如图像处理系统100。
在1005处,访问多个第一特征向量。第一特征向量可以对应于表示对象的第一图像数据的第一点云。例如,第一特征向量可以从对象的第一点云数据生成,其可以在特征检测之前被重新采样。第一图像数据可以是医学图像(例如,CT、MRI)。
在1010处,访问多个第二特征向量。第二特征向量可以对应于表示对象的第二图像数据的第二点云。例如,第二特征向量可以从对象的第二点云数据生成,其可以在特征检测之前被重新采样。
多个第二特征向量可以被映射到参考系。例如,第一图像数据可以是对应于参考系的全局场景点云(可以随时间生成和更新)。
在1015处,确定多个第一特征向量的变换。可以确定该变换,以便将多个第一特征向量与参考系对准。在一些实施例中,在一个或多个第一特征向量和一个或多个第二特征向量之间产生对应(例如,基于特征向量之间的L2距离)。可以通过对特征向量或特征向量之间的对应应用一种或多种对准算法来确定变换,例如随机样本一致性(RANSAC)和迭代最近点(ICP);在一些实施例中,使用RANSAC执行第一遍,使用ICP执行第二遍,这可以提高所识别的变换的准确性。可以使用对准算法作为可以应用于第一点云数据点的变换矩阵来确定变换。
在1020处,多个第一特征向量(或第一点云数据点)与第二点云对准(例如,与全局场景的参考系对准)。可以通过对第一特征向量或与第一特征向量相关联的第一点云数据点应用变换(例如,变换矩阵)来执行对准。
IX.用于使用预先捕捉的医学图像和全局场景图像进行实时手术计划可视化的系统和方法
本文所述的图像处理流水线能够实现改进的手术计划可视化,例如将3D图像与医学图像和模型以及用于仪器导航的计划轨迹一起可视化。
图11描绘了用于使用预先捕捉的医学图像和全局场景图像进行实时手术计划可视化的方法1100。方法1100可以使用这里描述的各种设备和系统来执行,例如图像处理系统100。
在1105处,访问关于对象的医学图像和关于对象的三维图像数据。医学图像可以包括各种医学图像,例如CT或MRI图像。可以从一个或多个3D相机,诸如深度相机,接收3D图像数据。
在1110处,将医学图像配准到三维图像数据。可以使用在此描述的各种过程来执行配准,例如通过对医学图像数据和3D图像数据进行重新采样,从重新采样的数据中确定特征,识别变换以将医学图像数据和3D图像数据对准(例如,彼此对准或与全局参考系对准),以及将变换应用于医学图像数据或3D图像数据中的一个或两个。
在1115处,经由用户界面接收视觉指示符。视觉指示符可以指示使用医学图像数据和3D图像数据呈现的环境中的轨迹或路径。例如,视觉指示符可以指示将仪器引入对象的路径。
在1120处,视觉指示符被映射到医学图像。例如,可以识别接收视觉指示符的参考系,并且可以确定视觉指示符到医学图像的变换,以将视觉指示符映射到医学图像。
在1125处,呈现医学图像、三维图像数据和视觉指示符的表示。可以使用显示设备呈现医学图像、三维图像数据和视觉指示符。例如,视觉指示符可以呈现为对象的3D图像和对象的CT或MRI图像上的覆盖物。呈现医学图像可以包括呈现对应于视觉指示符的显示数据,该显示数据包括对象的目标特征的突出显示或仪器的轨迹中的至少一个。
X.用于在3D图像环境中动态跟踪仪器运动的系统和方法
如上所述,IR传感器可用于跟踪对象周围环境中的仪器,以及在对对象操作仪器时。本解决方案可以使用跟踪数据来显示被跟踪仪器的表示以及3D图像数据和医学图像数据(例如,CT或MRI),使得用户能够有效地可视化仪器如何与对象交互。
在1205处,可以访问关于对象周围环境的三维图像数据。可以从一个或多个3D相机,诸如深度相机,接收3D图像数据。
在1210处,可以访问关于对象的医学图像。医学图像可以包括各种医学图像,例如CT或MRI图像。
在1215处,可以将医学图像配准到三维图像数据。可以使用在此描述的各种过程来执行配准,例如通过对医学图像数据和3D图像数据进行重新采样,从重新采样的数据中确定特征,识别变换以将医学图像数据和3D图像数据对准(例如,彼此对准或与全局参考系对准),以及将变换应用于医学图像数据或3D图像数据中的一个或两个。
在1220处,可以从3D图像数据中识别仪器。可以通过使用3D图像数据执行多种对象识别过程中的任何一种来识别仪器,例如通过检索对象的模板特征并将模板特征与从3D图像数据提取的特征进行比较。可以基于与仪器联接的标识符(例如,视觉指示符)来识别仪器,这可以通过减少从中识别仪器的3D图像数据的搜索空间来减少识别仪器的计算需求。
在1225处,访问仪器的模型。该模型可以指示仪器的形状、轮廓、边缘或其他特征。该模型可以包括用于识别仪器的模板特征。
在1230处,通过将表示仪器的三维图像数据的一部分与仪器的模型进行匹配来跟踪关于仪器的位置数据。例如,响应于将从图像数据中提取的特征与仪器的模型相匹配,可以识别仪器在3D图像数据中的位置,并跨图像(例如,来自3D相机的图像流)对其进行监控,以跟踪仪器。
XI.用于实时多模态图像对准的计算环境
图13A和13B描绘了计算设备1300的框图。如图13A和13B所示,每个计算设备1300包括中央处理单元1321和主存储单元1322。如图13A所示,计算设备1300可以包括存储设备1328、安装设备1316、网络接口1318、I/O控制器1323、显示设备1324a-1324n、键盘1326和点击设备1327,例如鼠标。存储设备1328可以包括但不限于操作系统、软件和系统200的软件。如图13B所示,每个计算设备1300还可以包括额外的可选元件,例如存储器端口1303、桥1370、一个或多个输入/输出设备1330a-1330n(通常使用附图标记1330表示)以及与中央处理单元1321通信的高速缓冲存储器1340。
中央处理单元1321是响应和处理从主存储器单元1322提取的指令的任何逻辑电路。在许多实施例中,中央处理单元1321由微处理器单元提供,例如:例如:由加利福尼亚州山景城的英特尔公司制造的那些;由伊利诺斯州绍姆堡的摩托罗拉公司制造的那些;ARM处理器(来自例如ARM Holdings并由ST、TI、ATMEL等制造。)和由加利福尼亚州圣克拉拉的Nvidia制造的TEGRA片上系统(SoC);POWER7处理器,由纽约怀特普莱恩斯的InternationalBusiness Machines制造的那些;或者由加利福尼亚州森尼维尔的Advanced MicroDevices制造的那些;或者来自加利福尼亚州圣何塞的Altera、Intel Corporation、加利福尼亚州圣何塞的Xlinix或加利福尼亚州阿里索别霍的MicroSemi的现场可编程门阵列(“FPGA”)等。计算设备1300可以基于这些处理器中的任何一个,或能够如本文所述操作的任何其他处理器。中央处理单元1321可以利用指令级并行、线程级并行、不同级别的高速缓存和多核处理器。多核处理器可以在单个计算组件上包括两个或更多个处理单元。多核处理器的示例包括AMD羿龙IIX2、英特尔酷睿i5和英特尔酷睿i7。
主存储器单元1322可以包括一个或多个能够存储数据并允许由微处理器1321直接访问任何存储位置的存储器芯片。主存储器单元1322可以是易失性的,并且比存储设备1328存储器更快。主存储器单元1322可以是动态随机存取存储器(DRAM)或任何变型,包括静态随机存取存储器(SRAM)、突发SRAM或同步突发SRAM(BSRAM)、快速页面模式DRAM(FPMDRAM)、增强型DRAM(EDRAM)、扩展数据输出RAM(EDO RAM)、扩展数据输出DRAM(EDO DRAM)、突发扩展数据输出DRAM(BEDO DRAM)、单数据速率同步DRAM(SDR SDRAM)、双数据速率SDRAM(DDR SDRAM)、直接Rambus DRAM(DRDRAM)或极限数据速率DRAM(XDR DRAM)。在一些实施例中,主存储器1322或存储设备1328可以是非易失性的;例如,非易失性读访问存储器(NVRAM)、闪存非易失性静态RAM(nvSRAM)、铁电RAM(FeRAM)、磁阻RAM(MRAM)、相变存储器(PRAM)、导电桥接RAM(CBRAM)、硅-氧化物-氮化物-氧化物-硅(SONOS)、电阻RAM(RRAM)、Racetrack、纳米RAM(NRAM)或千足虫存储器。主存储器1322可以基于任何上述存储器芯片,或者能够如本文所述操作的任何其他可用的存储器芯片。在图13A所示的实施例中,处理器1321通过系统总线1350与主存储器1322通信(下面将详细描述)。图13B描绘了计算设备1300的实施例,其中处理器经由存储器端口1303直接与主存储器1322通信。例如,在图13B中,主存储器1322可以是DRDRAM。
图13B示出了一个实施例,其中主处理器1321通过二级总线(有时称为背面总线)直接与高速缓冲存储器1340通信。在其他实施例中,主处理器1321使用系统总线1350与高速缓冲存储器1340通信。高速缓冲存储器1340通常比主存储器1322具有更快的响应时间,并且通常由SRAM、BSRAM或EDRAM提供。在图13B所示的实施例中,处理器1321通过本地系统总线1350与各种I/O设备1330通信。各种总线可用于将中央处理单元1321连接到任何I/O设备1330,包括PCI总线、PCI-X总线或PCI-Express总线或NuBus。对于I/O设备是视频显示器1324的实施例,处理器1321可以使用高级图形端口(AGP)来与显示器1324或显示器1324的I/O控制器1323通信。图13B描述了计算机1300的实施例,其中主处理器1321经由HYPERTRANSPORT、RAPIDIO或INFINIBAND通信技术直接与I/O设备1330b或其他处理器1321’通信。图13B还描述了混合本地总线和直接通信的实施例:处理器1321使用本地互连总线与I/O设备1330a通信,同时直接与I/O设备1330b通信。在一些实施例中,处理器1321可以经由连接到处理单元1321的各种总线与其他处理设备通信,例如其他处理器1321’、GPU和FPGA。例如,处理器1321可以通过一个或多个通信总线与GPU通信,例如PCI总线、PCI-X总线或PCI-Express总线或NuBus。
各种各样的I/O设备1330a-1330n可以存在于计算设备1300中。输入设备可以包括键盘、鼠标、跟踪板、轨迹球、触摸板、触摸鼠标、多点触摸触摸板和触摸鼠标、麦克风(模拟或MEMS)、多阵列麦克风、绘图板、相机、单镜头反光相机(SLR)、数字SLR(DSLR)、CMOS传感器、CCD、加速度计、惯性测量单元、红外光传感器、压力传感器、磁力计传感器、角速度传感器、深度传感器、接近传感器、环境光传感器、陀螺仪传感器或其他传感器。输出设备可以包括视频显示器、图形显示器、扬声器、耳机、喷墨打印机、激光打印机和3D打印机。
设备1330a-1330n可以包括多个输入或输出设备的组合,包括例如微软KINECT、用于WII的Nintendo Wiimote、Nintendo WII U GAMEPAD或苹果IPHONE。一些设备1330a-1330n通过组合一些输入和输出来允许手势识别输入。一些设备1330a-1330n提供面部识别,该面部识别可以用作不同目的的输入,包括认证和其他命令。一些设备1330a-1330n提供语音识别和输入,包括例如微软KINECT、苹果IPHONE的SIRI、Google Now或Google语音搜索。
附加设备1330a-1330n具有输入和输出能力,包括例如触觉反馈设备、触摸屏显示器或多点触摸显示器。触摸屏、多点触摸显示器、触摸板、触摸鼠标或其他触摸感测设备可以使用不同的技术来感测触摸,包括例如电容、表面电容、投射电容触摸(PCT)、内置电容、电阻、红外、波导、分散信号触摸(DST)、内置光学、表面声波(SAW)、弯曲波触摸(BWT)或基于力的感测技术。一些多点触摸设备可以允许与表面的两个或更多个接触点,从而允许高级功能,包括例如捏、展开、旋转、滚动或其他手势。一些触摸屏设备,包括例如微软PIXELSENSE或多点触摸协作墙,可以具有更大的表面,例如在桌面上或墙上,并且还可以与其他电子设备交互。一些I/O设备1330a-1330n、显示设备1324a-1324n或设备组可以是增强现实设备。I/O设备可以由I/O控制器1321控制,如图13A所示。I/O控制器1321可以控制一个或多个I/O设备,例如键盘126和点击设备1327,例如鼠标或光笔。此外,I/O设备还可以为计算设备1300提供存储和/或安装介质116。在其他实施例中,计算设备1300可以提供USB连接(未示出)来接收手持USB存储设备。在进一步的实施例中,I/O设备1330可以是系统总线1350和外部通信总线之间的桥,例如USB总线、SCSI总线、FireWire总线、以太网总线、千兆以太网总线、光纤通道总线或Thunderbolt总线。
在一些实施例中,显示设备1324a-1324n可以连接到I/O控制器1321。显示设备可以包括例如液晶显示器(LCD)、薄膜晶体管LCD(TFT-LCD)、蓝相LCD、电子纸(e-ink)显示器、柔性显示器、发光二极管显示器(LED)、数字光处理(DLP)显示器、硅上液晶(LCOS)显示器、有机发光二极管(有机发光二极管)显示器、有源矩阵有机发光二极管(AMOLED)显示器、液晶激光显示器、时分复用光闸(TMOS)显示器或3D显示器。3D显示器的示例可以使用例如立体视觉、偏振滤光器、主动快门或自动立体视觉。显示设备1324a-1324n也可以是头戴式显示器(HMD)。在一些实施例中,显示设备1324a-1324n或相应的I/O控制器1323可以通过或具有对OPENGL或DIRECTX API或其他图形库的硬件支持来控制。
在一些实施例中,计算设备1300可以包括或连接到多个显示设备1324a-1324n,每个显示设备可以是相同或不同的类型和/或形式。这样,任何I/O设备1330a-1330n和/或I/O控制器1323可以包括任何类型和/或形式的合适的硬件、软件或硬件和软件的组合,以支持、启用或提供计算设备1300对多个显示设备1324a-1324n的连接和使用。例如,计算设备1300可以包括任何类型和/或形式的视频适配器、视频卡、驱动程序和/或库,以接口、通信、连接或以其他方式使用显示设备1324a-1324n。在一个实施例中,视频适配器可以包括与多个显示设备1324a-1324n接口的多个连接器。在其他实施例中,计算设备1300可以包括多个视频适配器,每个视频适配器连接到一个或多个显示设备1324a-1324n。在一些实施例中,计算设备1300的操作系统的任何部分可以被配置为使用多个显示器1324a-1324n。在其他实施例中,显示设备1324a-1324n中的一个或多个可以由经由网络1340连接到计算设备1300的一个或多个其他计算设备1300a或1300b来提供。在一些实施例中,软件可以被设计和构造成使用另一计算机的显示设备作为计算设备1300的第二显示设备1324a。例如,在一个实施例中,苹果iPad可以连接到计算设备1300,并使用设备1300的显示器作为可以用作扩展桌面的附加显示屏。本领域普通技术人员将认识并理解计算设备1300可被配置为具有多个显示设备1324a-1324n的各种方式和实施例。
再次参考图13A,计算设备1300可以包括存储设备1328(例如一个或多个硬盘驱动器或独立磁盘冗余阵列),用于存储操作系统或其他相关软件,以及用于存储应用软件程序,例如与系统200的软件相关的任何程序。存储设备1328的示例包括,例如,硬盘驱动器(HDD);光驱,包括CD驱动器、DVD驱动器或BLU射线驱动器;固态硬盘(SSD);USB闪存盘;或任何其他适于存储数据的设备。一些存储设备可以包括多个易失性和非易失性存储器,包括例如将硬盘与固态高速缓存相结合的固态混合驱动器。一些存储设备1328可以是非易失性、可变的或只读的。一些存储设备1328可以是内部的,并通过总线1350连接到计算设备1300。一些存储设备1328可以是外部的,并且经由提供外部总线的I/O设备1330连接到计算设备1300。一些存储设备1328可以通过网络经由网络接口1318连接到计算设备1300,包括例如苹果公司的MACBOOK AIR的远程磁盘。一些客户端设备1300可以不需要非易失性存储设备1328,并且可以是瘦客户端或零客户端202。一些存储设备1328也可以用作安装设备1316,并且可以适用于安装软件和程序。此外,操作系统和软件可以从可引导介质上运行,例如可引导CD,例如KNOPPIX,一种用于GNU/Linux的可引导CD,可以作为GNU/Linux发行版从knoppix.net获得。
计算设备1300还可以安装来自应用分发平台的软件或应用。应用分发平台的示例包括苹果公司提供的iOS应用商店、苹果公司提供的Mac应用商店、谷歌公司提供的Android操作系统的GOOGLE PLAY、谷歌公司提供的Chrome操作系统的Chrome Webstore以及Amazon.com公司提供的Android操作系统和KINDLE FIRE的亚马逊应用商店。
此外,计算设备1300可以包括网络接口1318,以通过各种连接来连接到网络1340,这些连接包括但不限于标准电话线LAN或WAN链路(例如,802.11、T1、T3、千兆以太网、Infiniband)、宽带连接(例如,ISDN、帧中继、ATM、千兆以太网、SONET上的以太网、ADSL、VDSL、BPON、GPON、包括FiOS在内的光纤)、无线连接或上述任意或所有连接的某种组合。可以使用各种通信协议建立连接(例如,TCP/IP、以太网、ARCNET、SONET、SDH、光纤分布式数据接口(FDDI)、IEEE 802.11a/b/g/n/ac CDMA、GSM、WiMax和直接异步连接)。在一个实施例中,计算设备1300经由任何类型和/或形式的网关或隧道协议与其他计算设备1300’通信,例如安全套接字层(SSL)或传输层安全(TLS),或者由佛罗里达州劳德代尔堡的CitrixSystems,Inc.制造的Citrix网关协议。网络接口1318可以包括内置网络适配器、网络接口卡、PCMCIA网卡、EXPRESSCARD网卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适于将计算设备1300连接到能够通信并执行这里描述的操作的任何类型的网络的任何其他设备。
图13A中描绘的这种计算设备1300可以在操作系统的控制下操作,该操作系统控制任务的调度和对系统资源的访问。计算设备1300可以运行任何操作系统,诸如微软WINDOWS操作系统的任何版本、Unix和Linux操作系统的不同版本、用于Macintosh计算机的MAC OS的任何版本、任何嵌入式操作系统、任何实时操作系统、任何开源操作系统、任何专有操作系统、用于移动计算设备的任何操作系统、或者能够在计算设备上运行并执行这里描述的操作的任何其他操作系统。典型的操作系统包括但不限于:WINDOWS7000、WINDOWSServer 2012、WINDOWS CE、WINDOWS Phone、WINDOWS XP、WINDOWS VISTA以及WINDOWS 7、WINDOWS RT和WINDOWS 8,所有这些都是由华盛顿州雷蒙德市的微软公司制造的;由加利福尼亚州库比蒂诺的苹果公司制造的MAC OS和iOS以及自由可用的操作系统Linux,例如由英国伦敦的Canonical有限公司发行的Linux Mint发行版(“distro”)或Ubuntu或Unix;或其他类似Unix的衍生操作系统;和加州山景城的谷歌公司设计的安卓系统,等等。一些操作系统,例如包括谷歌的CHROME OS,可以在零客户端或瘦客户端上使用,例如包括CHROMEBOOKS。
计算机系统1300可以是任何工作站、电话、台式计算机、膝上型或笔记本计算机、上网本、超极本、平板电脑、服务器、手持计算机、移动电话、智能手机或其他便携式电信设备、媒体播放设备、游戏系统、移动计算设备或能够通信的任何其他类型和/或形式的计算、电信或媒体设备。计算机系统1300具有足够的处理器能力和存储容量来执行这里描述的操作。在一些实施例中,计算设备1300可以具有与该设备一致的不同处理器、操作系统和输入设备。例如,三星GALAXY智能手机在谷歌(Google,Inc.)开发的Android操作系统的控制下运行。GALAXY智能手机通过触摸界面接收输入。
在一些实施例中,计算设备1300是游戏系统。例如,计算机系统1300可以包括由日本东京的索尼公司制造的PLAYSTATION 3或个人PLAYSTATION PORTABLE(PSP)或PLAYSTATION VITA设备,由日本京都的Nintendo有限公司制造的Nintendo DS、Nintendo3DS、Nintendo WII或Nintendo WII U设备,或由华盛顿州雷蒙德市的微软公司制造的XBOX360设备,或由门罗市的OCULUS VR有限责任公司制造的OCULUS RIFT或OCULUS VR设备,或者由加利福尼亚州门洛帕克的OCULUS VR,LLC制造的OCULUS RIFT或OCULUS VR设备。
在一些实施例中,计算设备1300是数字音频播放器,例如由加利福尼亚州库比蒂诺的苹果计算机公司制造的苹果IPOD、IPOD Touch和IPOD NANO系列设备。一些数字音频播放器可以具有其他功能,包括例如游戏系统或由来自数字应用分发平台的应用提供的任何功能。例如,IPOD Touch可以访问苹果应用商店。在一些实施例中,计算设备1300是支持文件格式的便携式媒体播放器或数字音频播放器,这些文件格式包括但不限于MP3、WAV、M4A/AAC、WMA保护AAC、AIFF、Audible audiobook、苹果无损音频文件格式和.mov、.m4v和.mp4MPEG-4(H.264/MPEG-4AVC)视频文件格式。
在一些实施例中,计算设备1300是平板电脑,例如苹果公司的IPAD系列设备;三星的GALAXY TAB系列设备;或华盛顿州西雅图市Amazon.com公司生产的KINDLE FIRE。在其他实施例中,计算设备1300是电子书阅读器,例如Amazon.com的KINDLE系列设备,或者纽约市的Barnes&Noble,Inc.的NOOK系列设备。
在一些实施例中,通信设备1300包括设备的组合,例如与数字音频播放器或便携式媒体播放器组合的智能手机。例如,这些实施例之一是智能手机,例如由苹果公司制造的IPHONE系列智能手机;由三星公司制造的三星GALAXY系列智能手机;或者摩托罗拉DROID系列智能手机。在又一实施例中,通信设备1300是配备有网络浏览器以及麦克风和扬声器系统的膝上型或台式计算机,例如电话耳机。在这些实施例中,通信设备1300是网络使能的,并且可以接收和发起电话呼叫。在一些实施例中,膝上型或台式计算机还配备有网络摄像头或其他视频捕捉设备,其能够实现视频聊天和视频通话。
在一些实施例中,通常作为网络管理的一部分,监控网络中的一个或多个机器1300的状态。在这些实施例之一中,机器的状态可以包括负载信息(例如,机器上的进程数量、CPU和存储器利用率)、端口信息(例如,可用通信端口的数量和端口地址)或会话状态(例如,进程的持续时间和类型,以及进程是活动的还是空闲的)的标识。在这些实施例的另一个中,该信息可以由多个度量来标识,并且该多个度量可以至少部分地应用于负载分布、网络流量管理和网络故障恢复以及这里描述的本解决方案的操作的任何方面的决策。在本文公开的系统和方法的上下文中,上述操作环境和组件的各方面将变得显而易见。
本说明书中描述的主题和操作的实施方式可以实施在数字电子电路中,或者在有形介质、固件或硬件上的计算机软件中,包括本说明书中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中。本说明书中描述的主题的实施方式可以被实施为一个或多个计算机程序,例如计算机程序指令的一个或多个组件,其被编码在计算机存储介质上,用于由数据处理设备执行或控制数据处理设备的操作。程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,该信号被生成以编码信息,用于传送到合适的接收器设备以由数据处理设备执行。计算机存储介质可以是或被包括在计算机可读存储设备、计算机可读存储基底、随机或串行存取存储器阵列或设备、或者它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以包括编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或被包括在一个或多个单独的物理组件或介质中(例如,多个CD、盘或其他存储设备)。
本说明书中描述的操作可以被实施为由数据处理设备对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
术语“数据处理设备”、“数据处理系统”、“客户端设备”、“计算平台”、“计算设备”或“设备”包含用于处理数据的所有种类的设备、设备和机器,例如包括可编程处理器、计算机、片上系统或前述的多个或组合。该设备可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该设备还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。该设备和执行环境可以实现各种不同的计算模型基础设施,例如网络服务、分布式计算和网格计算基础设施。
计算机程序(也称为程序、软件、软件应用程序、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适合在计算环境中使用的其他单元。计算机程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协作文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署为在一台计算机或位于一个地点或分布在多个地点并通过通信网络互连的多台计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路来执行,并且设备也可以被实施为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
举例来说,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的元件包括用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括或可操作地联接到一个或多个用于存储数据的大容量存储设备,例如磁盘、磁光盘或光盘,以从该大容量存储设备接收数据或向其传送数据,或两者兼有。然而,计算机不需要有这样的设备。此外,计算机可以嵌入在另一设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器)。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;和CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入其中。
为了提供与用户的交互,本说明书中描述的主题的实施可以在计算机上实施,该计算机具有用于向用户显示信息的显示设备,例如CRT(阴极射线管)、等离子体或LCD(液晶显示器)监视器,以及用户可以用来向计算机提供输入的键盘和点击设备,例如鼠标或轨迹球。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以包括任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求,向用户的客户端设备上的网络浏览器发送网页。
本说明书中描述的主题的实施可以在计算系统中实施,该计算系统包括后端组件,例如作为数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有图形用户界面或Web浏览器的客户端计算机,用户可以通过该图形用户界面或Web浏览器与本说明书中描述的主题的实施进行交互,或者一个或多个这样的后端、中间件或前端组件的任何组合。该系统的组件可以通过任何形式或介质的数字数据通信(例如通信网络)来互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网(例如,因特网)和对等网络(例如,自组织对等网络)。
虽然本说明书包含许多具体的实现细节,但是这些不应该被解释为对任何发明的范围或者可以要求保护的范围的限制,而是对这里描述的系统和方法的特定实现所特有的特征的描述。本说明书中在独立实施的上下文中描述的某些特征也可以在单个实施方式中组合实施。相反,在单个实施方式的上下文中描述的各种特征也可以在多个实施方式中单独实施或者在任何合适的子组合中实施。此外,尽管特征可以在上面被描述为在某些组合中起作用,并且甚至最初被如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从该组合中被删除,并且所要求保护的组合可以针对子组合或子组合的变型。
类似地,虽然在附图中以特定的顺序描述了操作,但是这不应该被理解为要求这些操作以所示的特定顺序或顺序执行,或者要求所有示出的操作都被执行,以获得期望的结果。在某些情况下,权利要求中所述的动作可以以不同的顺序执行,并且仍能获得期望的结果。此外,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。
在某些情况下,多任务和并行处理可能是有利的。此外,上述实施方式中的各种系统组件的分离不应该被理解为在所有实施方式中都需要这样的分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者打包到多个软件产品中。
现在已经描述了一些说明性的实施方式和实施方式,很明显,前述内容是说明性的而非限制性的,是通过示例的方式呈现的。具体而言,尽管这里呈现的许多示例涉及方法动作或系统元素的特定组合,但是这些动作和这些元素可以以其他方式组合以实现相同的目标。仅结合一种实施方式讨论的动作、元素和特征不旨在被排除在其他实施方式或实施方式中的类似角色之外。
这里使用的措辞和术语是为了描述的目的,不应该被认为是限制性的。这里使用的“包括”、“包含”、“具有”、“含有”、“涉及”、“其特征为”、“其特征在于”及其变型意味着包含其后列出的项目、其等同物和附加项目,以及由其后专门列出的项目组成的替代实施方式。在一个实施方式中,这里描述的系统和方法包括一个、多于一个的每个组合或者所有描述的元素、动作或组件。
本文中以单数形式提及的系统和方法的任何实施方式或元素或动作也可以包括包含多个这些元素的实施方式,并且本文中任何实施方式或元素或动作的任何复数形式也可以包括仅包含单个元素的实施方式。单数或复数形式的引用不旨在将当前公开的系统或方法、它们的组件、动作或元素限制为单个或多个配置。对基于任何信息、动作或元素的任何动作或元素的引用可以包括其中该动作或元素至少部分基于任何信息、动作或元素的实施。
这里公开的任何实施方式可以与任何其他实施方式相结合,并且对“一实施方式”、“一些实施方式”、“替代实施方式”、“各种实施方式”、“一个实施方式”等的引用不一定相互排斥,而是旨在指示结合该实施方式描述的特定特征、结构或特性可以包括在至少一个实施方式中。这里使用的这些术语不一定都指同一实施方式。任何实施方式可以以与本文公开的方面和实施方式一致的任何方式与任何其他实施方式相包括地或排他地结合。
对“或”的引用可以被解释为包含性的,使得使用“或”描述的任何术语可以表示单个、多于一个和所有描述的术语中的任何一个。
在附图、详细描述或任何权利要求中的技术特征后面跟随附图标记的情况下,这些附图标记被包括在内的唯一目的是增加附图、详细描述和权利要求的可理解性。因此,附图标记或它们的不存在对任何权利要求元素的范围都没有任何限制作用。
在不脱离其特征的情况下,这里描述的系统和方法可以以其他特定形式来实施。尽管所提供的示例可以用于将三维点云变换到不同的参考系,但是这里描述的系统和方法可以应用于其他环境。前述实施方式是说明性的,而不是对所描述的系统和方法的限制。因此,这里描述的系统和方法的范围可以由所附权利要求而不是前面的描述来指示,并且在权利要求的等同物的含义和范围内的变化包含在其中。
Claims (80)
1.一种方法,包括:
由一个或多个处理器访问由具有第一姿态的第一捕捉设备捕捉的第一点云的第一组数据点,以及由具有不同于第一姿态的第二姿态的第二捕捉设备捕捉的第二点云的第二组数据点;
由一个或多个处理器基于第一组数据点选择参考系;
由一个或多个处理器使用所述参考系和第一组数据点来确定第二组数据点的变换数据结构;和
由一个或多个处理器使用变换数据结构和第二组数据点将第二组数据点变换成变换的一组数据点。
2.根据权利要求1所述的方法,其中,访问第一点云的第一组数据点包括:
由一个或多个处理器从第一捕捉设备接收三维(3D)图像数据;和
由一个或多个处理器使用3D图像数据生成具有第一组数据点的第一点云。
3.根据权利要求1所述的方法,其中,第二捕捉设备与第一捕捉设备相同。
4.根据权利要求1所述的方法,其中,选择参考系包括选择第一点云的第一参考系作为第一参考系。
5.根据权利要求1所述的方法,其中,选择参考系包括:
由一个或多个处理器检索分配给第一点云的第一组数据点中的一个或多个的颜色数据;和
由一个或多个处理器基于颜色数据确定参考系。
6.根据权利要求1所述的方法,其中,确定变换数据结构包括生成变换数据结构以包括位置变化或旋转变化。
7.根据权利要求6所述的方法,其中,变换第二组数据点包括由一个或多个处理器将位置变化或旋转变化应用于第二组数据点中的至少一个数据点,以生成变换的一组数据点。
8.根据权利要求1所述的方法,还包括由一个或多个处理器生成包括第一组数据点和变换的一组数据点的组合的一组数据点的显示信息。
9.根据权利要求1所述的方法,还包括:
由一个或多个处理器对第一组数据点或第二组数据点中的至少一个进行下采样;和
响应于对第一组数据点或第二组数据点中的至少一个进行下采样,由一个或多个处理器确定所述变换数据结构。
10.根据权利要求1所述的方法,其中,变换第二组数据点包括由一个或多个处理器将第一组数据点的至少一个第一点与第二组数据点的至少一个第二点进行匹配。
11.一种系统,包括:
一个或多个处理器,该一个或多个处理器由机器可读指令配置为:
访问由具有第一姿态的第一捕捉设备捕捉的第一点云的第一组数据点,以及由具有不同于第一姿态的第二姿态的第二捕捉设备捕捉的第二点云的第二组数据点;
基于第一组数据点选择参考系;
使用参考系和第一组数据点来确定第二组数据点的变换数据结构;和
使用该变换数据结构和第二组数据点将第二组数据点变换成变换的一组数据点。
12.根据权利要求11所述的系统,其中,一个或多个处理器还由机器可读指令配置为:
从第一捕捉设备接收三维图像数据;和
使用来自第一捕捉设备的3D图像数据生成第一点云以具有第一组数据点。
13.根据权利要求11所述的系统,其中,第二捕捉设备与第一捕捉设备相同。
14.根据权利要求11所述的系统,其中,一个或多个处理器还由机器可读指令配置为选择第一点云的第一参考系作为第一参考系。
15.根据权利要求11所述的系统,其中,一个或多个处理器还由机器可读指令配置为:
检索分配给第一点云的第一组数据点中的一个或多个的颜色数据;和
基于颜色数据确定参考系。
16.根据权利要求11所述的系统,其中,一个或多个处理器还由机器可读指令配置为生成包括位置变化或旋转变化的变换数据结构。
17.根据权利要求16所述的系统,其中,一个或多个处理器还由机器可读指令配置为将位置变化或旋转变化应用于第二组数据点中的至少一个点,以生成变换的一组数据点。
18.根据权利要求11所述的系统,其中,一个或多个处理器还由机器可读指令配置为生成组合的一组数据点的显示信息,该组合的一组数据点包括第一组数据点和变换的一组数据点。
19.根据权利要求11所述的系统,其中,一个或多个处理器还由机器可读指令配置为:
对第一组数据点或第二组数据点中的至少一个进行下采样;和
响应于对第一组数据点或第二组数据点中的至少一个进行下采样,确定所述变换数据结构。
20.根据权利要求11所述的系统,其中,一个或多个处理器还由机器可读指令配置为将第一组数据点的至少一个第一点与第二组数据点的至少一个第二点进行匹配。
21.一种方法,包括:
由一个或多个处理器访问对应于表示对象的表面的点云的一组数据点;
由一个或多个处理器将响应函数应用于该一组数据点,以将相应的一组响应值分配给该一组数据点;
由一个或多个处理器使用选择策略和该一组响应值来选择该一组数据点的子集;和
由一个或多个处理器生成包括该一组数据点的子集的数据结构。
22.根据权利要求21所述的方法,其中,所述响应函数采用图形数据结构作为输入,并提供相应的一组响应值作为输出。
23.根据权利要求21所述的方法,其中,将响应函数应用于所述一组数据点包括:
由一个或多个处理器使用对应于表示对象的表面的点云的该一组数据点生成图形数据结构;和
由一个或多个处理器确定图形过滤器作为响应函数的一部分。
24.根据权利要求23所述的方法,其中,确定图形过滤器包括:
由一个或多个处理器使用该一组数据点生成k维二叉树;和
由一个或多个处理器使用该k维二叉树生成图形过滤器。
25.根据权利要求23所述的方法,其中,确定所述图形过滤器包括使用所述一组数据点的一对数据点之间的欧几里德距离来生成所述图形过滤器。
26.根据权利要求25所述的方法,其中,使用所述一组数据点的该一对数据点之间的欧几里德距离生成所述图形过滤器是进一步基于所述一组数据点的该一对数据点的至少一个颜色通道。
27.根据权利要求26所述的方法,其中,生成图形过滤器包括:
由一个或多个处理器识别该一组数据点的强度参数;和
由一个或多个处理器基于所述一组数据点的该一对数据点的至少一个颜色通道来确定是否生成图形过滤器。
28.根据权利要求21所述的方法,其中,选择所述一组数据点的子集包括由一个或多个处理器使用所述一组响应值中的每个响应值作为权重来执行加权随机选择。
29.根据权利要求21所述的方法,其中,所述选择策略被配置为选择对应于所述对象的表面上的一个或多个轮廓的数据点的子集。
30.根据权利要求21所述的方法,还包括由一个或多个处理器将包括该一组数据点的子集的数据结构存储在存储器中。
31.一种系统,包括:
一个或多个处理器,该一个或多个处理器由机器可读指令配置为:
访问对应于表示对象的表面的点云的一组数据点;
将响应函数应用于该一组数据点,以将相应的一组响应值分配给该一组数据点;
使用选择策略和该一组响应值来选择该一组数据点的子集;和
生成包括该一组数据点的子集的数据结构。
32.根据权利要求31所述的系统,其中,一个或多个处理器还由机器可读指令配置为:
从至少一个捕捉设备接收三维图像数据;和
使用3D图像数据生成表示对象的表面的点云。
33.根据权利要求31所述的系统,其中,一个或多个处理器还由机器可读指令配置为:
使用对应于表示对象的表面的点云的一组数据点生成图形数据结构;和
确定一图形过滤器作为响应函数的一部分。
34.根据权利要求33所述的系统,其中,一个或多个处理器还由机器可读指令配置为:
使用该一组数据点生成k维二叉树;和
使用k维二叉树生成图形过滤器。
35.根据权利要求33所述的系统,其中,一个或多个处理器还由机器可读指令配置为使用所述一组数据点的一对数据点之间的欧几里德距离来生成图形过滤器。
36.根据权利要求35所述的系统,其中,一个或多个处理器还被机器可读指令配置为进一步基于所述一组数据点的一对数据点的至少一个颜色通道来生成所述图形过滤器。
37.根据权利要求36所述的系统,其中,一个或多个处理器还由机器可读指令配置为:
识别该一组数据点的强度参数;和
基于该一组数据点的该一对数据点的至少一个颜色通道来确定是否生成图形过滤器。
38.根据权利要求31所述的系统,其中,一个或多个处理器还由机器可读指令配置为使用所述一组响应值中的每个响应值作为权重来执行加权随机选择。
39.根据权利要求31所述的系统,其中,所述选择策略被配置为选择对应于所述对象的表面上的一个或多个轮廓的数据点的子集。
40.根据权利要求31所述的系统,其中,一个或多个处理器还由机器可读指令配置为将包括所述一组数据点的子集的数据结构存储在存储器中。
41.一种方法,包括:
由一个或多个处理器识别具有第一存储器的第一处理设备和具有第二存储器的第二多处理器设备;
由一个或多个处理器识别第一点云的第一处理作业;
由一个或多个处理器确定将第一处理作业分配给第二多处理器设备;
由一个或多个处理器将包括第一点云的第一处理作业的信息分配给第二存储器;
由一个或多个处理器识别第二点云的第二处理作业;
由一个或多个处理器确定将第二处理作业分配给第一处理设备;
由一个或多个处理器将用于第二处理作业的信息分配给第一存储器;
由一个或多个处理器向第二多处理器设备传送第一指令,以使第二多处理器设备执行第一处理作业,其中第一指令专用于第二多处理器设备;和
由一个或多个处理器向第一处理设备传送第二指令以使第一处理设备执行第二处理作业,其中第二指令专用于第一处理设备。
42.根据权利要求41所述的方法,其中,确定将第一处理作业分配给第二多处理器设备包括由一个或多个处理器确定第一处理作业包括用于在第一点云中进行特征检测的操作。
43.根据权利要求41所述的方法,其中,确定将第一处理作业分配给第二多处理器设备还基于第一点云的数据点的数量小于预定阈值、第二多处理器设备的使用量小于预定阈值、或者第一作业的处理复杂度超过复杂度阈值中的至少一个。
44.根据权利要求41所述的方法,其中,识别第一点云的第一处理作业包括从第一捕捉设备接收第一点云。
45.根据权利要求41所述的方法,其中,识别第二点云的第二处理作业是响应于识别第一点云的第一处理作业。
46.根据权利要求41所述的方法,其中,第一处理作业或第二处理作业包括下采样操作、归一化操作、特征检测操作、轮廓检测操作、配准操作或渲染操作中的至少一个。
47.根据权利要求41所述的方法,其中,第二点云是从捕捉设备捕捉的图像或3d医学图像中的至少一个中提取的。
48.根据权利要求41所述的方法,其中,确定将第二处理作业分配给第一处理设备是响应于由一个或多个处理器确定第二点云是从3D医学图像中提取的。
49.根据权利要求41所述的方法,其中,第一处理作业与第一优先级值相关联,并且第二处理作业与第二优先级值相关联,
并且还包括确定将第二处理作业分配给第一处理设备是响应于由一个或多个处理器确定第一优先级值大于第二优先级值。
50.根据权利要求49所述的方法,其中,第一优先级值是基于执行第一处理作业的第一频率,并且第二优先级值是基于执行第二处理作业的第二频率。
51.一种系统,包括:
一个或多个处理器,该一个或多个处理器由机器可读指令配置为:
识别具有第一存储器的第一处理设备和具有第二存储器的第二多处理器设备;
识别第一点云的第一处理作业;
确定将第一处理作业分配给第二多处理器设备;
将包括第一点云的第一处理作业的信息分配给第二存储器;
识别第二点云的第二处理作业;
确定将第二处理作业分配给第一处理设备;
将用于第二处理作业的信息分配给第一存储器;
由一个或多个处理器向第二多处理器设备传送第一指令,以使第二多处理器设备执行第一处理作业,其中第一指令专用于第二多处理器设备;和
由一个或多个处理器向第一处理设备传送第二指令,以使第一处理设备执行第二处理作业,其中第二指令专用于第一处理设备。
52.根据权利要求51所述的系统,其中,一个或多个处理器还由机器可读指令配置为确定第一处理作业包括用于第一点云中的特征检测的操作。
53.根据权利要求51所述的系统,其中,一个或多个处理器还由机器可读指令配置为进一步基于第一点云的数据点数量小于预定阈值、第二多处理器设备的使用量小于预定阈值或第一作业的处理复杂度超过复杂度阈值中的至少一个来确定将第一处理作业分配给第二多处理器设备。
54.根据权利要求51所述的系统,其中,一个或多个处理器还由机器可读指令配置为从第一捕捉设备接收第一点云。
55.根据权利要求51所述的系统,其中,一个或多个处理器还由机器可读指令配置为响应于识别第一点云的第一处理作业,识别第二点云的第二处理作业。
56.根据权利要求51所述的系统,其中,第一处理作业或第二处理作业包括下采样操作、归一化操作、特征检测操作、轮廓检测操作、配准操作或渲染操作中的至少一个。
57.根据权利要求51所述的系统,其中,第二点云是从捕捉设备捕捉的图像或3d医学图像中的至少一个中提取的。
58.根据权利要求51所述的系统,其中,一个或多个处理器还由机器可读指令配置为响应于确定第二点云是从3d医学图像中提取的,来确定将第二处理作业分配给第一处理设备。
59.根据权利要求51所述的系统,其中,第一处理作业与第一优先级值相关联,并且第二处理作业与第二优先级值相关联;并且一个或多个处理器还被机器可读指令配置为确定将第二处理作业分配给第一处理设备是响应于确定第一优先级值大于第二优先级值。
60.根据权利要求59所述的系统,其中,第一优先级值是基于执行第一处理作业的第一频率,并且第二优先级值是基于执行第二处理作业的第二频率。
61.一种用于将三维医学图像与点云配准的方法,包括:
由一个或多个处理器访问表示具有第一参考系的全局场景的第一点云的第一组数据点;
由一个或多个处理器识别具有不同于第一参考系的第二参考系的三维医学图像的特征的一组特征数据点;
由一个或多个处理器使用第一参考系、第一组数据点和所述一组特征数据点来确定所述3D医学图像的变换数据结构;和
由一个或多个处理器使用变换数据结构将3D医学图像与表示全局场景的第一点云配准,使得3D医学图像相对于第一参考系定位。
62.根据权利要求61所述的方法,其中,确定变换数据结构包括:
由一个或多个处理器对第一组数据点进行下采样,以生成缩减的第一组数据点;和
由一个或多个处理器使用缩减的第一组数据点来确定3D医学图像的变换数据结构。
63.根据权利要求61所述的方法,其中,确定所述变换数据结构还包括生成要包括所述3D医学图像的位置变化或旋转变化的变换数据结构。
64.根据权利要求63所述的方法,其中,将所述3D医学图像与表示所述全局场景的第一点云配准还包括由一个或多个处理器将所述位置变化或所述旋转变化应用于所述3D医学图像,以将所述3D医学图像的特征与第一点云中的对应点对准。
65.根据权利要求61所述的方法,其中,识别所述3D医学图像的特征的该一组特征数据点包括由一个或多个处理器在离线过程中确定所述3D医学图像的特征向量。
66.根据权利要求61所述的方法,还包括响应于将所述3D医学图像与第一点云配准,由一个或多个处理器显示第一点云和所述3D医学图像的渲染图。
67.根据权利要求66所述的方法,还包括:
由一个或多个处理器接收来自手术仪器的跟踪数据;
由一个或多个处理器将来自手术仪器的跟踪数据变换到第一参考系,以生成变换的跟踪数据;和
由一个或多个处理器在第一点云和所述3D医学图像的渲染图内渲染所述变换的跟踪数据。
68.根据权利要求61所述的方法,还包括:
由一个或多个处理器确定第一参考系内与第一点云和3D医学图像相关的感兴趣位置;
由一个或多个处理器基于第一点云、所述3D医学图像和所述感兴趣位置来生成手术仪器的移动指令;和
由一个或多个处理器将所述运动指令传送至所述手术仪器。
69.根据权利要求66所述的方法,还包括在所述3D医学图像和对应于感兴趣位置的第一点云的渲染图中显示高亮区域。
70.根据权利要求61所述的方法,还包括由一个或多个处理器确定3D医学图像中表示的患者与至少部分负责生成第一点云的捕捉设备之间的距离。
71.一种系统,包括:
一个或多个处理器,该一个或多个处理器由机器可读指令配置为:
由一个或多个处理器访问表示具有第一参考系的全局场景的第一点云的第一组数据点;
识别具有不同于第一参考系的第二参考系的三维医学图像的特征的一组特征数据点;
使用第一参考系、第一组数据点和所述一组特征数据点来确定所述3D医学图像的变换数据结构;和
使用变换数据结构将3D医学图像与表示全局场景的第一点云配准,使得3D医学图像相对于第一参考系定位。
72.根据权利要求71所述的系统,其中,一个或多个处理器还由机器可读指令配置为:
对第一组数据点进行下采样,以生成缩减的第一组数据点;和
使用缩减的第一组数据点来确定3D医学图像的变换数据结构。
73.根据权利要求71所述的系统,其中,一个或多个处理器还由机器可读指令配置为生成要包括3D医学图像的位置变化或旋转变化的变换数据结构。
74.根据权利要求73所述的系统,其中,一个或多个处理器还由机器可读指令配置为将位置变化或旋转变化应用于3D医学图像,以将3D医学图像的特征与第一点云中的对应点对准。
75.根据权利要求71所述的系统,其中,一个或多个处理器进一步由机器可读指令配置,以在离线过程中确定所述3D医学图像的特征向量。
76.根据权利要求71所述的系统,其中,一个或多个处理器还由机器可读指令配置为,响应于将所述3D医学图像与第一点云配准,显示第一点云和所述3D医学图像的渲染图。
77.根据权利要求76所述的系统,其中,一个或多个处理器还由机器可读指令配置为:
从手术仪器接收跟踪数据;
将来自手术仪器的跟踪数据变换到第一参考系,以生成变换的跟踪数据;
在第一点云和所述3D医学图像的渲染内渲染所述变换的跟踪数据。
78.根据权利要求71所述的系统,其中,一个或多个处理器还由机器可读指令配置为:
确定第一参考系内与第一点云和3D医学图像相关的感兴趣位置;
基于第一点云、所述3D医学图像和所述感兴趣位置生成手术仪器的移动指令;
将运动指令传送到手术仪器。
79.根据权利要求76所述的系统,其中,一个或多个处理器还由机器可读指令配置为在所述3D医学图像和对应于感兴趣位置的第一点云的渲染图内显示高亮区域。
80.根据权利要求71所述的系统,其中,一个或多个处理器还由机器可读指令配置为确定3D医学图像中表示的患者与至少部分负责生成第一点云的捕捉设备之间的距离。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962888099P | 2019-08-16 | 2019-08-16 | |
US62/888,099 | 2019-08-16 | ||
PCT/US2020/046473 WO2021034701A1 (en) | 2019-08-16 | 2020-08-14 | Systems and methods for real-time multiple modality image alignment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115516508A true CN115516508A (zh) | 2022-12-23 |
Family
ID=72243264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080071899.XA Pending CN115516508A (zh) | 2019-08-16 | 2020-08-14 | 用于实时多模态图像对准的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US20220285009A1 (zh) |
EP (1) | EP4014203A1 (zh) |
JP (1) | JP2022544717A (zh) |
CN (1) | CN115516508A (zh) |
AU (1) | AU2020332683A1 (zh) |
WO (1) | WO2021034701A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11304282B2 (en) * | 2018-12-10 | 2022-04-12 | Electronic Theatre Controls, Inc. | Systems and methods for determining lighting fixture arrangement information |
EP3828704B1 (en) * | 2019-11-29 | 2023-06-28 | My Virtual Reality Software AS | Real-time data acquisition and visualization for point-cloud recording |
US20220066794A1 (en) * | 2020-08-28 | 2022-03-03 | UiPath, Inc. | Robotic process automation data connector |
US11698707B2 (en) * | 2021-03-31 | 2023-07-11 | Sy Interiors Pvt. Ltd. | Methods and systems for provisioning a collaborative virtual experience of a building |
CN113506368B (zh) * | 2021-07-13 | 2023-03-24 | 阿波罗智能技术(北京)有限公司 | 地图数据融合方法、装置、电子设备、介质和程序产品 |
CN118251189A (zh) * | 2021-09-07 | 2024-06-25 | 泽塔外科手术公司 | 用于机器人手术控制和导航的系统和方法 |
CN116781920A (zh) * | 2022-03-11 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 点云编解码方法、装置、计算机、存储介质 |
CN117409161A (zh) * | 2022-07-06 | 2024-01-16 | 戴尔产品有限公司 | 点云处理方法和电子设备 |
CN115631275B (zh) * | 2022-11-18 | 2023-03-31 | 北京红棉小冰科技有限公司 | 多模态驱动的人体动作序列生成方法及装置 |
CN115861666B (zh) * | 2022-12-22 | 2023-06-27 | 河北工程大学 | 一种3d图像点云匹配方法、系统、设备及介质 |
CN117095033B (zh) * | 2023-07-25 | 2024-05-24 | 重庆邮电大学 | 一种基于图像与几何信息引导的多模态点云配准方法 |
CN117740186B (zh) * | 2024-02-21 | 2024-05-10 | 微牌科技(浙江)有限公司 | 隧道设备温度检测方法、装置和计算机设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5531520A (en) * | 1994-09-01 | 1996-07-02 | Massachusetts Institute Of Technology | System and method of registration of three-dimensional data sets including anatomical body data |
US20170032527A1 (en) * | 2015-07-31 | 2017-02-02 | Iwk Health Centre | Method and system for head digitization and co-registration of medical imaging data |
US9665936B2 (en) * | 2015-09-25 | 2017-05-30 | Siemens Healthcare Gmbh | Systems and methods for see-through views of patients |
WO2018191145A1 (en) * | 2017-04-09 | 2018-10-18 | Indiana University Research And Technology Corporation | Motion correction systems and methods for improving medical image data |
CN112085797B (zh) * | 2019-06-12 | 2024-07-19 | 通用电气精准医疗有限责任公司 | 3d相机-医疗成像设备坐标系校准系统和方法及其应用 |
-
2020
- 2020-08-08 US US17/635,693 patent/US20220285009A1/en active Pending
- 2020-08-14 WO PCT/US2020/046473 patent/WO2021034701A1/en unknown
- 2020-08-14 CN CN202080071899.XA patent/CN115516508A/zh active Pending
- 2020-08-14 JP JP2022536909A patent/JP2022544717A/ja active Pending
- 2020-08-14 AU AU2020332683A patent/AU2020332683A1/en active Pending
- 2020-08-14 EP EP20762004.8A patent/EP4014203A1/en active Pending
-
2024
- 2024-01-29 US US18/425,496 patent/US20240169566A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
AU2020332683A1 (en) | 2022-03-24 |
US20220285009A1 (en) | 2022-09-08 |
EP4014203A1 (en) | 2022-06-22 |
JP2022544717A (ja) | 2022-10-20 |
US20240169566A1 (en) | 2024-05-23 |
WO2021034701A1 (en) | 2021-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240169566A1 (en) | Systems and methods for real-time multiple modality image alignment | |
JP7355821B2 (ja) | 疎結合されたリローカライゼーションサービスおよびアセット管理サービスを介して人工環境内でデジタルアセットを提示するためのシステムおよび方法 | |
JP7250709B2 (ja) | 畳み込み画像変換を使用して同時位置特定およびマッピングを実施する方法およびシステム | |
CN108701376B (zh) | 三维图像的基于识别的对象分割 | |
JP6125100B2 (ja) | 点特徴と線特徴とを使用する堅牢な追跡 | |
KR20220009393A (ko) | 이미지 기반 로컬화 | |
US9129435B2 (en) | Method for creating 3-D models by stitching multiple partial 3-D models | |
US20170243352A1 (en) | 3-dimensional scene analysis for augmented reality operations | |
CN106033621B (zh) | 一种三维建模的方法及装置 | |
WO2021136386A1 (zh) | 数据处理方法、终端和服务器 | |
JP2015079490A (ja) | フレームを選択する方法、装置、及びシステム | |
BR112015023345B1 (pt) | Criação in situ de alvos planos de recurso natural | |
JP2022529367A (ja) | 姿勢付き単眼ビデオからの周囲推定 | |
CN113474816A (zh) | 弹性动态投影映射系统和方法 | |
US20210142511A1 (en) | Method of generating 3-dimensional model data | |
JP2015184054A (ja) | 同定装置、方法及びプログラム | |
Angladon et al. | The toulouse vanishing points dataset | |
JP2013037539A (ja) | 画像特徴量抽出装置およびそのプログラム | |
US20180033200A1 (en) | System and method for multiple device augmented surface | |
JP6086491B2 (ja) | 画像処理装置およびそのデータベース構築装置 | |
JP6818968B2 (ja) | オーサリング装置、オーサリング方法、及びオーサリングプログラム | |
JP6080424B2 (ja) | 対応点探索装置、そのプログラムおよびカメラパラメータ推定装置 | |
AU2022375768A1 (en) | Methods, storage media, and systems for generating a three-dimensional line segment | |
WO2023250131A1 (en) | Systems for real-time noninvasive surgical navigation | |
JP7286388B2 (ja) | 位置推定システム、位置推定装置、位置推定方法、及びプログラム |
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 |