LBP(Local Binary Pattern)是一种用来描述图像局部纹理特征的算子,作用是进行图像纹理特征的提取,在图像领域应用非常广泛。本发明专利技术公开了一种使用SIMD(Single Instruction Multiple Data)指令提高LBP提取速度的方法,SIMD可以用一条指令操作128位数据,即可以一次操作16组8位的数,即16个像素,所以和传统的LBP特征提取相比,使用SIMD指令可以使LBP提取速度在量级上得到提高。
【技术实现步骤摘要】
【专利摘要】LBP(Local?Binary?Pattern)是一种用来描述图像局部纹理特征的算子,作用是进行图像纹理特征的提取,在图像领域应用非常广泛。本专利技术公开了一种使用SIMD(Single?Instruction?Multiple?Data)指令提高LBP提取速度的方法,SIMD可以用一条指令操作128位数据,即可以一次操作16组8位的数,即16个像素,所以和传统的LBP特征提取相比,使用SIMD指令可以使LBP提取速度在量级上得到提高。【专利说明】利用SIMD提高LBP的提取速度
本专利技术涉及一种在图像处理领域的LBP特征提取的加速方法。
技术介绍
人们感知事物的时候往往通过视觉来提取物体的特征,进而判断物体的类型,故而计算机在识别物体的时候也需要提取特征,而图像LBP特征提取在计算机视觉中应用广泛,例如纹理分类、模式识别等领域。计算机视觉的应用场景一般情况是对实时性会有一定要求,而且计算量会比较庞大,所以如何加速往往是研究的重点。 举例来说,LBP局部纹理特征算子已经成功应用于指纹识别、人脸识别、车牌识别等等,而现在的LBP特征提取都是对图像的像素逐一提取(例如20*30的图像,至少要循环18*28次),在这点上大大限制了速度。
技术实现思路
本专利技术的目的是提出一种利用SMD加速LBP特征提取的办法,该方法的速度相比普通的LBP提取可以在量级上提高。 本专利技术要解决的技术问题是,在效果不变的情况下,加速LBP特征提取。 为解决上述技术问题,本专利技术采取以下技术方案:利用SMD提高LBP特征提取速度。具体的,SMD具有可以同时处理128位数据的优点,灰度图的像素值为8位,利用SMD指令可以一次处理16个像素,但是现有的LBP特征提取是每个像素逐一计算的,由此可见,利用SIMD可以将LBP特征提取的速度提高数倍。 【专利附图】【附图说明】 图1—计算某一像素的LBP特征示意图。 图2-SIMD的ADDPS指令操作。 图3——未使用SMD计算图像LBP特征流程图。 图4——使用SMD计算图像LBP特征流程图。 【具体实施方式】 下面举出实例对本专利技术的技术方案进行详细说明。 LBP算子是一种用来描述图像局部纹理特征的算子,在3*3的窗口内,以中心像素值作为阈值,经过计算得到该窗口的值,这个值来反映该区域的纹理信息。图像提取LBP特征的具体步骤如下:取图像中的某一像素作为3*3窗口的中心点,将该中心点的灰度值作为基准值,分别与窗口内中心像素周围的8个点的灰度值相比较,标记为I或者O (大于基准值标记为1,否则标记为O)。8个点的位置决定了自身的权重,将其加权求和之后可以得到此窗口的LBP值。这样逐一对图像的每个像素操作,可以提取到整个待提取图像的LBP特征。由此可见,传统的LBP特征提取是每个像素逐一进行的,这样速度得到了限制。 图1为取图像中一 3*3的窗口,计算该窗口中心像素的LBP特征的示意图,这个计算过程可以用如下公式表示: Value (Ibp) = (Al > value (η) ? 1: O) *ffl+ (A2 > value (n) ? 1:0) *W2 + (A3 > value (n) ? 1:0) *W3+ (A4 > value (n) ? 1:0) *W4 + (A5 > value (n) ? 1:0) *W5+(A6 > value (n) ? 1:0) *W6 + (A7 > value (n) ? 1:0) *W7+ (A8 > value (n) ? 1:0) *W8 Al、A2、A3等是3*3窗口内四周像素的值,value (n)为中心像素值,Wl、W2、W3等是四周像素各自的权重。 SMD可以同时处理128位数据,即可以用一条指令处理多组数据,例如4组32位float类型数,或16组8位的数等等。图2是SMD的ADDPS指令操作实现两组单精度值相加的示意图,A和B是两组包含4个float类型数据的向量,该指令可以同时让4组float数据实现相加操作。 灰度图像的像素值范围在0-255,长度为8位,由此,SMD可以一次处理16个像素点,那么可以用SIMD的load指令分别加载16个中心像素值、对应的周围像素值(8组,每组16个值),然后,按照LBP特征提取的方法操作,但在比较、求和等操作时均使用SMD指令。 图3为传统方法来提取图像LBP特征的流程图。提取图像的LBP特征需要逐个像素来进行操作,图4为使用SMD来提取图像LBP特征的流程图。与传统的提取方法相比,这种方法一次加载16组数据,可以一次性计算16个像素点。图4中提取LBP特征中所用的公式: Vec (Value (Ibp)) = (Vec (Al) > Vec (value (η))) *Vec (Wl) +(Vec (A2) > Vec (value (n))) *Vec (W2) + (Vec (A3) > Vec (value (n))) *Vec (W3) + (Vec (A4) > Vec (value (n))) *Vec (W4) + (Vec (A5) > Vec (value (n))) *Vec (W5) +(Vec(A6) > Vec(value(n)))*Vec(W6) + (Vec (A7) > Vec(value(n)))*Vec (W7) + (Vec (A8) > Vec (value (n))) *Vec (W8) 16个中心像素点构成中心像素向量Vec (value (η)),16个中心像素点的左上像素点构成向量Vec(Al),正上像素点构成向量Vec (Α2),其余周边像素可以以此类推,Vec(W)表示某个周边像素点的权重向量。该公式用来表示3*3窗口内周边8个像素的向量分别与中心像素的向量相比较,比较结果为O和I组成的向量,该结果分别与各自的权重向量相乘,最后结果相加得到LBP特征的向量。 使用SIMD指令后,可以同时提取16个像素的特征,不足16个像素的可以使用传统的逐个像素提取的方法,如此,对图像提取LBP特征的速度能得到量级提升。【权利要求】1.利用SIMD提高LBP提取速度的方法,其特征在于: 利用SIMD的相关指令,一次计算16个像素的LBP特征,达到减少循环次数,提升整体速度的效果。2.利用SIMD指令提取图片LBP特征值的步骤主要为: (1)加载需要提取LBP的图像到缓冲; (2)SIMD指令加载16组数据,每组包括9个数据,分别是3*3窗口的中心像素值、8个中心像素的四周(左上、正上、右上、左、右、左下、正下、右下)像素值; (3)按照LBP 特征提取办法使用 _mm_or_sil28, _mm_and_sil28, _mm_cmpgt_epi8 等SIMD指令计算得到一组(16个)LBP特征值,保存至图像LBP特征提取的结果中; (4)对9*16个数据计算完成后,即提取完成16个像素的LBP特征值,继续循环步骤(2)和(3)可以计算下一组LB本文档来自技高网...
【技术保护点】
利用SIMD提高LBP提取速度的方法,其特征在于:利用SIMD的相关指令,一次计算16个像素的LBP特征,达到减少循环次数,提升整体速度的效果。
【技术特征摘要】
【专利技术属性】
技术研发人员:李军,刘宇,
申请(专利权)人:南京壹进制信息技术有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。