CN104952068B - 一种脊椎特征点自动识别方法 - Google Patents

一种脊椎特征点自动识别方法 Download PDF

Info

Publication number
CN104952068B
CN104952068B CN201510271121.4A CN201510271121A CN104952068B CN 104952068 B CN104952068 B CN 104952068B CN 201510271121 A CN201510271121 A CN 201510271121A CN 104952068 B CN104952068 B CN 104952068B
Authority
CN
China
Prior art keywords
vertex
vertebra
characteristic point
point
summit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510271121.4A
Other languages
English (en)
Other versions
CN104952068A (zh
Inventor
鱼滨
张琛
苏仲谋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201510271121.4A priority Critical patent/CN104952068B/zh
Publication of CN104952068A publication Critical patent/CN104952068A/zh
Application granted granted Critical
Publication of CN104952068B publication Critical patent/CN104952068B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • G06T7/344Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30004Biomedical image processing
    • G06T2207/30008Bone
    • G06T2207/30012Spine; Backbone
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/248Aligning, centring, orientation detection or correction of the image by interactive preprocessing or interactive shape modelling, e.g. feature points assigned by a user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/03Recognition of patterns in medical or anatomical images
    • G06V2201/033Recognition of patterns in medical or anatomical images of skeletal patterns

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

本发明公开了一种脊椎特征点自动识别方法,属于医学图像处理领域。构建过程为:通过CT图片进行脊椎三维模型建模和切割;获得要进行特征点识别的特定椎体;对椎体进行网格划分,使得椎体由细小的三角面片构成;对椎体模型的每个顶点,自适应计算每个顶点的邻域面积,称该顶点为其邻域内核心点;计算处于邻域面积内部的顶点法向量;计算核心点所处邻域内所有顶点与核心点法向量夹角总和;对所有核心点的夹角和进行降序排序;对所有核心点根据一定抑制区间进行非极大值抑制;最后获得该椎体的特征点。本发明主要是针对脊椎特定的外形结构进行特征点识别方法。可用于外科医学领域中与脊椎相关的研究。

Description

一种脊椎特征点自动识别方法
技术领域
本发明属于医学图像处理领域,尤其涉及到脊椎部位的特征点识别和标定的方法。
背景技术
特征点是计算机视觉和图像处理的一个概念,特征点是指图像中某个具体的点存在着区别于该点周围的其他点的特征信息。具体的应用领域对特征点的定义不同:在二维图像中,特征点可以概括为角点,边缘和脊。在三维模型中,特征点一般可以定义为外凸点,内凹点,模型边缘。特征点标定是指识别并且标记出给定对象上符合特征点定义的特殊点集。特征点标定是图像处理和应用的重点研究领域,将特征点标定应用到医学图像能够为医学诊断提供参考数据,避免人为因素导致的失误。脊椎是人体的重要支撑骨骼,特征点标定可以应用到脊椎的诊疗中的病灶定位,椎体测量,虚拟手术等过程中。
然而由于椎体结构复杂,目前脊椎特征点识别的主要集中在手动和半自动方面。手动方法操作步骤主要是依靠操作者的经验,通过特定仪器,直接在给定的椎体上面标记出特征点的位置。半自动主要是在手动操作的基础上,计算机通过高斯曲率等方法对人为手动标记的位置进行微调,从而降低手动特征点标定的误差。这两种方法对操作人员和仪器的要求高,且效率低。因此,研究脊椎特征点自动标定算法尤为必要。
由于脊椎结构复杂,使得直接将三维模型特征点自动标定算法应用到脊椎模型中无法达到令人满意的效果。具体原因是:
1.脊椎存在椎孔,椎孔的存在会导致椎孔表面的法向量与正常模型的法向量相反。
2.单个椎体模型的中心点可能存在不在模型内部的情况。当模型中心点位于模型外部时,会导致传统三维特征点标定中点法向量的计算存在较大偏差。
发明内容
针对上述现有技术中存在的问题,本发明的目的在于,提供一种脊椎特征点自动识别方法,准确、快速、自动、有效地完成脊椎特征点的识别过程。
为了实现上述任务,本发明采用以下技术方案:
一种脊椎特征点自动识别方法,包括以下步骤:
步骤一,对人体脊椎的CT图像进行三维重建,得到脊椎的三维模型,对该三维模型进行切割,获得要提取特征点的椎体;
步骤二,对要提取特征点的椎体模型进行网格划分;
步骤三,确定划分后网格中每个顶点法向量计算时的阈值环数;
步骤四,计算每个顶点的法向量;
步骤五,计算每个顶点周围阈值环数范围内其他顶点与该顶点法向量夹角总和;
步骤六,对所有顶点的按照步骤五计算出的法向量夹角总和进行降序排列;
步骤七,对所有顶点进行非极大值抑制;
步骤八,输出脊椎模型特征点。
进一步地,所述的步骤三的具体过程如下:
步骤S30,对于网格中的每一个顶点,按照下面的公式计算其自适应邻域面积:
上式中,n是该椎体模型上顶点总数,a-ring(vi)是指网格化后模型中顶点vi周围a环范围,cj为顶点vi周围a环范围内的一个三角面片,area(cj)为三角面片cj的面积,a的取值为[1,4];
步骤S31,按照下述循环算法确定顶点的阈值环数ki
a.令ki=1;
b.计算顶点vi周围ki环内所有三角片面的面积之和d;
c.如果d<自适应邻域面积,则ki=ki+1,并返回步骤b,否则得到ki
进一步地,步骤四中,顶点法向量的计算公式如下:
上式中,ki-ring(vi)表示顶点vi周围的ki环邻域范围,area(cj)表示三角面片cj的面积,(xi,yi,zi)为计算出来的向量和,表示三角面片cj的单位法向量,为顶点vi的法向量。
进一步地,步骤五中,法向量夹角总和D(vi)的计算公式如下:
上式中,ki-ring(vi)表示顶点vi周围ki环邻域范围,vj为处于ki环邻域范围内除了vi之外的每个顶点,为顶点vi的法向量,为顶点vj的法向量。
进一步地,步骤七中,非极大值抑制的具体过程为:
对于两个顶点距离小于抑制范围r的情况,保留特征值D(vi)最大的点,舍弃特征值较小的点;特征值D(vi)最大的点即为特征点。
本发明具有以下技术特点:
1.特征点提取过程全自动,无需手动提取,算法效率较高。该方法通过输入建模好的椎体模型,能够自动标记出椎体模型中特征点的位置;此外,该方法每个顶点只需计算一次,算法复杂度与模型顶点数量成线性关系,算法效率高。
2.本方法针对脊椎的结构特点进行专门优化。已有的三维模型特征点自动标定方法中,顶点向量是定义为顶点与模型中心原点的向量差。当模型中心原点位于模型外部时,这种方式定义出来的顶点向量无法准确地表达顶点的变化程度,从而无法筛选出模型中的特征点。本方法通过把模型顶点法向量定义为周围三角面片向量的矢量叠加,能够有效地解决模型椎孔和模型中心点外置的问题。
3.实验表明该方法对脊椎模型,尤其是腰椎模型上进行特征点识别上能够达到较好的效果。
附图说明
图1为本发明方法的流程图;
图2为ScanIP模块计算时的示意图;
图3为构建出来的腰椎L3三维模型;
图4为腰椎L3的网格化后的三维模型;
图5为a环邻域范围的说明图;
图6(a)为定义特征点斜俯视图;
图6(b)为定义特征点斜仰视图;
图6(c)为定义特征点俯视图;
图6(d)为定义特征点仰视图;
图6(e)为定义特征点左视图;
图6(f)为定义特征点右视图;
图6(g)为定义特征点后视图;
图6(h)为定义特征点前视图;
图7(a)为本方法结果俯视图;
图7(b)为本方法结果仰视图;
图7(c)为本方法结果左视图;
图7(d)为本方法结果右视图;
图7(e)为本方法结果后视图;
图7(f)为本方法结果前视图;
图8(a)为方法1结果俯视图;
图8(b)为方法1结果仰视图;
图8(c)为方法1结果左视图;
图8(d)为方法1结果右视图;
图8(e)为方法1结果后视图;
图8(f)为方法1结果前视图;
图9(a)为方法2结果俯视图;
图9(b)为方法2结果仰视图;
图9(c)为方法2结果左视图;
图9(d)为方法2结果右视图;
图9(e)为方法2结果后视图;
图9(f)为方法2结果前视图;
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚,以下结合实例,对本发明进行进一步详细说明。
结合本方法的流程图1,分别展示应用本方法在人体腰椎L3上特征点识别的过程和结果。该模型在论文(Wang Y,Yu B,Dai J.Three-Dimensional Finite Element ForceAnalysis and Simulation of Human Spinal Lumbar Segment[J].Journal ofConvergence Information Technology,2013,8(4).)中得到验证。
步骤一,对人体脊椎的CT图像进行三维重建,得到脊椎的三维模型,对该三维模型进行切割,获得要提取特征点的椎体;
如图2所示,对CT数据进行增强和阈值提取后,分割出目标椎体的范围,得到如图3所示的三维模型。具体构建和分割过程,可通过simpleware软件的ScanIP模块进行进行,在构建过程中,利用前期图像增强,中期图像阈值分割和区域生长算法,后期去噪点三个步骤保证模型的准确。
步骤二,对要提取特征点的椎体进行网格划分;
将单个椎体设置网格相应的参数,利用simpleware软件的ScanIP模块生成模型的三角面片格式。利用该方式生成的三角面片能够自动优化局部复杂结构的网格划分,在保证整体网格质量的同时,降低网格数量,简化操作流程。本例中,利用ScanIP模块将腰椎L3表面数据转化为网格后输出Ascii码格式的STL文件。划分后的网格模型如图4所示。
步骤三,确定划分后网格中每个顶点法向量计算时的阈值环数;
步骤S30,对于网格中的每一个顶点,设定一个自适应邻域面积大小,自适应邻域面积是为了动态调整每个顶点邻域范围的大小;网格化后的模型是由很多三角形面片组成,每个三角形面片有三个顶点,所有的这些顶点都成为模型的顶点。从这些点中挑选出一些有特别特征的点,如突出点,可作为特征点;自适应邻域面积由以下公式计算:
上式中,n是划分后的椎体模型上的顶点总数,a-ring(vi)是指网格化后模型中顶点vi周围a环范围(a-ring),图5展示了a=1,2,3时顶点周围a环三角面片的情况。cj为顶点vi周围a环范围内的一个三角面片。area(cj)为三角面片cj的面积。在实际操作中,a的取值根据模型网格精细程度进行调整,一般取值:[1,4];本实例中,a取值2,自适应邻域面积为37.3702。自适应邻域面积是为了确定阈值环数ki。每个顶点参考自适应邻域面积来获得顶点各自的ki值;
步骤S31,根据步骤S30得到的自适应邻域面积,计算顶点vi的阈值环数ki环邻域中ki的取值,具体计算过程为:
a.令ki=1;
b.计算顶点vi周围ki环内所有三角片面的面积之和d;
c.如果d<自适应邻域面积,则ki=ki+1,并返回步骤b,否则得到ki
步骤四,计算每个顶点vi的法向量,计算公式如下:
上式中,ki-ring(vi)表示顶点vi周围的ki环邻域范围,cj为处于该邻域范围内的每个三角面片,area(cj)表示cj的面积,(xi,yi,zi)为计算出来的向量和,表示三角面片cj的单位法向量,为顶点vi的法向量;
步骤五,计算顶点vi周围ki环范围内其他顶点vj与该顶点法向量的夹角总和,公式如下:
上式中,ki-ring(vi)表示顶点vi周围ki环邻域范围,ki的值为步骤S31计算出来的值;vj为处于ki环邻域范围内除了vi之外的每个顶点,这里计算时vi被当做核心点;cos-1为反余弦函数,用于求出vi和vj向量的夹角。为顶点vi的法向量,为顶点vj的法向量,D(vi)为顶点vi周围ki环邻域范围内其他所有顶点vj的法向量与顶点vi的法向量夹角总和。
步骤六,对所有顶点的按照步骤五计算出的法向量夹角总和进行降序排列;
将每个顶点的夹角总和代入快速排序算法进行降序排列,得到法向量夹角和从大到小的排列结果;由于模型顶点个数在10^4左右,顶点个数多且每个顶点的法向量夹角和混乱无序,因此快速排序相比起其他排序算法能够获得更好的时间和空间上的性能。相比起其他特征点的阈值响应方法,利用排序能够快速调整特征点拾取个数,更加适合于脊椎特征点这一新课题的研究。
步骤七,对脊椎模型内所有顶点进行非极大值抑制;具体过程为:
对于两个顶点距离小于抑制范围r的情况,则保留特征值D(vi)最大的点,舍弃特征值较小的点;特征值D(vi)最大的点即为特征点;r根据模型大小设置,一般设置为ki环邻域的半径;本实例中r=9.0。
步骤八,输出脊椎模型的特征点;
把最终筛选出来的特征点展示出来,具体结果见图6。由于单纯显示点无法突出试验结果,因此试验结果除了显示模型中的特征点外,还显示了特征点1邻域范围内的所有三角面片,使结果更加直观。
对比试验:
为了突出本方法的有效性,展示了传统特征点自动识别算法(Zhou Z D,Ai Q S,Liu Q,et al.A novel feature points selection algorithm for 3D triangular meshmodels[C]//Signal Processing,2008.ICSP 2008.9th International Conferenceon.IEEE,2008:1023-1026,简称方法1)和(Walter,N.,Aubreton,O.,Laligant,O.:Salientpoint characterizationfor low resolution meshes.In:ICIP,pp.1512–1515(2008),简称方法2)在本方法实验模型上的应用效果。
参考论文(Jun D,Bin Y,Ying W.Statistic Model of the Spine in Three-Dimension Geometry[c]//Information Science and Engineering(ISISE),2010International Symposium on.IEEE,2010:66-70.)定义本实验模型L3上34个特征点,如图6所示。
图7展示了本方法的结果,在自适应面积=32.2,抑制区间=10时,正确提取出30个特征点。
图8展示了方法1的结果,a=3时,抑制区间=10时正确提取出23个特征点。
图9展示了方法2的结果,r=2.0时,抑制区间=10时正取提取出26个特征点。
从结果可以看出,本方法在针对脊椎特殊模型时,能够达到较好地自动特征点标定效果。方法1除了特征点标定正确率低之外,特征点标定的误差也大于方法2和本方法。其原因在于方法1的顶点法向量计算方式无法适应模型中心点在模型外部的情况。本实验椎体L3的模型中心点处于模型外部,在椎孔中间。
同时,方法2除了在正确率和误差上比方法1的结果好。但是方法2的计算效率低。在计算每个独立球形里面不同三角面片占用体积时,需要根据球形球心的不同而重新计算。

Claims (4)

1.一种脊椎特征点自动识别方法,其特征在于,包括以下步骤:
步骤一,对人体脊椎的CT图像进行三维重建,得到脊椎的三维模型,对该三维模型进行切割,获得要提取特征点的椎体;
步骤二,对要提取特征点的椎体模型进行网格划分;
步骤三,确定划分后网格中每个顶点法向量计算时的阈值环数,具体过程包括:
步骤S30,对于网格中的每一个顶点,按照下面的公式计算其自适应邻域面积:
上式中,n是椎体模型上的顶点总数,a-ring(vi)是指网格化后模型中顶点vi周围a环范围,cj为顶点vi周围a环范围内的一个三角面片,area(cj)为三角面片cj的面积,a的取值为[1,4];
步骤S31,按照下述循环算法确定顶点的阈值环数ki
a.令ki=1;
b.计算顶点vi周围ki环内所有三角片面的面积之和d;
c.如果d<自适应邻域面积,则ki=ki+1,并返回步骤b,否则得到ki
步骤四,计算每个顶点的法向量;
步骤五,计算每个顶点周围阈值环数范围内其他顶点与该顶点法向量夹角总和;
步骤六,对所有顶点的按照步骤五计算出的法向量夹角总和进行降序排列;
步骤七,对所有顶点进行非极大值抑制;
步骤八,输出脊椎模型特征点。
2.如权利要求1所述的脊椎特征点自动识别方法,其特征在于,步骤四中,顶点法向量的计算公式如下:
上式中,ki-ring(vi)表示顶点vi周围的ki环邻域范围,area(cj)表示三角面片cj的面积,(xi,yi,zi)为计算出来的向量和,表示三角面片cj的单位法向量,为顶点vi的法向量。
3.如权利要求1所述的脊椎特征点自动识别方法,其特征在于,步骤五中,法向量夹角总和D(vi)的计算公式如下:
上式中,ki-ring(vi)表示顶点vi周围ki环邻域范围,vj为处于ki环邻域范围内除了vi之外的每个顶点,为顶点vi的法向量,为顶点vj的法向量。
4.如权利要求3所述的脊椎特征点自动识别方法,其特征在于,步骤七中,非极大值抑制的具体过程为:
对于两个顶点距离小于抑制范围r的情况,保留特征值D(vi)最大 的点,舍弃特征值较小的点;特征值D(vi)最大的点即为特征点。
CN201510271121.4A 2015-05-25 2015-05-25 一种脊椎特征点自动识别方法 Active CN104952068B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510271121.4A CN104952068B (zh) 2015-05-25 2015-05-25 一种脊椎特征点自动识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510271121.4A CN104952068B (zh) 2015-05-25 2015-05-25 一种脊椎特征点自动识别方法

Publications (2)

Publication Number Publication Date
CN104952068A CN104952068A (zh) 2015-09-30
CN104952068B true CN104952068B (zh) 2017-11-21

Family

ID=54166696

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510271121.4A Active CN104952068B (zh) 2015-05-25 2015-05-25 一种脊椎特征点自动识别方法

Country Status (1)

Country Link
CN (1) CN104952068B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10325412B2 (en) 2015-11-05 2019-06-18 Shenyang Neusoft Medical Systems Co., Ltd. Cutting three-dimensional image
CN105809730B (zh) * 2016-03-07 2018-08-07 哈尔滨工程大学 一种长骨骨折断面点云提取方法
CN106228567A (zh) * 2016-08-26 2016-12-14 西北工业大学 一种基于平均曲率流的脊椎特征点自动识别方法
CN106875377A (zh) * 2016-12-30 2017-06-20 西北工业大学 一种基于高斯曲率流的脊椎特征点自动识别方法
CN106960439B (zh) * 2017-03-28 2018-10-26 安徽医科大学第二附属医院 一种脊椎骨识别装置及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104318009A (zh) * 2014-10-20 2015-01-28 北京航空航天大学 一种个性化椎间融合器设计方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104318009A (zh) * 2014-10-20 2015-01-28 北京航空航天大学 一种个性化椎间融合器设计方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A Novel Feature Points Selection Algorithm for 3D Triangular Mesh Models;Zhou Z.D. et al.;《ICSP2008 Proceedings》;20081231;全文 *
一种改进的边界法向量叠加疑似肺结节提取;栾国欣 等;《东北大学学报(自然科学版)》;20100831;第31卷(第8期);全文 *
人类腰段脊柱三维有限元模型的建立;张爱平 等;《中国临床康复》;20020630;第6卷(第12期);全文 *
腰椎骨质疏松三维有限元模型的建立及应用;石磊 等;《西南军医》;20070831;第9卷(第4期);全文 *

Also Published As

Publication number Publication date
CN104952068A (zh) 2015-09-30

Similar Documents

Publication Publication Date Title
CN104952068B (zh) 一种脊椎特征点自动识别方法
EP2583245B1 (en) Method and system of automatic determination of geometric elements from a 3d medical image of a bone
CN104952109A (zh) 一种基于Harris的脊椎特征点自动识别方法
CN109872325B (zh) 基于双路三维卷积神经网络的全自动肝脏肿瘤分割方法
CN108986891A (zh) 医疗影像处理方法及装置、电子设备及存储介质
US9241634B2 (en) Analytic morphomics: high speed medical image automated analysis method
CN110717518B (zh) 基于3d卷积神经网络的持续性肺结节识别方法及装置
CN104346799B (zh) 一种ct图像中脊髓的提取方法
CA2567184A1 (en) Nodule detection
CN107708550A (zh) 用于检测和测量解剖异常的分段回声结构的表面建模
CN107016666A (zh) 基于坐标体系的骨盆ct三维重建的图像后处理方法
CN109035283A (zh) 一种基于随机选取分区的肺气肿精准检测与量化分析方法
CN112258516A (zh) 一种脊柱侧弯图像检测模型的生成方法
CN106934810B (zh) 一种脊椎矫正装置
EP3047455B1 (en) Method and system for spine position detection
CN109191475B (zh) 椎体终板分割方法、装置及计算机可读存储介质
CN112215217B (zh) 模拟医师阅片的数字图像识别方法及装置
CN105556567B (zh) 用于脊椎位置探测的方法和系统
CN102419864A (zh) 一种提取脑部ct图像骨骼方法及装置
CN107680110A (zh) 基于统计形状模型的内耳三维水平集分割方法
CN113034528A (zh) 基于影像组学的靶区及危及器官勾画轮廓准确性检验方法
CN115252233B (zh) 基于深度学习的全髋关节置换术中髋臼杯的自动化规划方法
CN112184664B (zh) 一种椎骨检测方法及计算机设备
CN110533637B (zh) 一种检测对象的方法及装置
CN113409306A (zh) 一种检测装置、训练方法、训练装置、设备和介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant