CN110991291B - 一种基于并行计算的图像特征提取方法 - Google Patents
一种基于并行计算的图像特征提取方法 Download PDFInfo
- Publication number
- CN110991291B CN110991291B CN201911171390.8A CN201911171390A CN110991291B CN 110991291 B CN110991291 B CN 110991291B CN 201911171390 A CN201911171390 A CN 201911171390A CN 110991291 B CN110991291 B CN 110991291B
- Authority
- CN
- China
- Prior art keywords
- value
- point
- pixel
- gray
- values
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
Abstract
本发明提出一种基于并行计算的图像特征提取方法,属于视觉图像处理技术领域。该方法基于FAST‑BRIEF算法。首先获取RGB图片并转为灰度图,然后采用并行加速机制对图片进行FAST特征点的提取,BRIEF描述子的计算等操作,最终得到特征点信息。本方法利用并行加速的方法加快了FAST‑BRIEF算法的实现,相比CPU上的串行执行机制,算法的运行速度有较大的提升。
Description
技术领域
本发明涉及视觉图像处理领域,具体涉及一种基于并行计算的图像特征提取方法。
背景技术
无人机和无人车等无人平台的广泛应用减轻了人们的劳动负担,降低了工作的危险性,可以让人类完成很多以前无法完成的任务。而无人平台的定位和路径规划需要用到同步定位与建图(SLAM)技术。该技术是指无人平台搭载特定的传感器主体在没有环境先验信息的情况下于运动过程中建立环境的模型,同时估计自己的运动;也就是在未知的环境中使无人机或无人车等移动平台一方面能够明白自身的状态(即位置),另一方面也要了解外在的环境(即地图)。SLAM技术相当于是无人系统的眼睛,为无人系统的自主导航提供了基础。SLAM技术让很多应用成为了现实,比如扫地机器人能够在陌生的环境中执行扫地任务,自动驾驶汽车逐渐走入人们的视野,虚拟现实应用也逐渐进入人们的生活。
视觉SLAM方法主要包括三个线程:位姿跟踪,后端优化,以及回环检测。其中位姿跟踪主要依赖于图像特征提取。图像特征提取的计算量很大,需要多次重复相同的计算,因此图像特征提取是整个视觉SLAM方法中最耗时的部分。提高图像特征提取的速度是提高整个视觉SLAM方法性能的关键。
在现有的视觉SLAM的方法中,Oriented FAST and Rotated BRIEF(ORB)有方向性的加速段测试特征和旋转快速二进制描述子生成算法是性能和质量的一个折中,ORB特征提取的基础是Features From Accelerated Segment Test(FAST)加速段测试特征和Binary Robust Independent Elementary Features(BRIEF)快速二进制描述子生成算法描述子的计算,对FAST特征点和BRIEF描述子的并行加速是提高ORB算法运行速度的关键。对FAST特征点和BRIEF描述子的并行加速是提高ORB算法运行速度的关键。在FAST-BRIEF的计算过程中,需要储存很多中间数据,例如,2013年韩国首尔西京大学的HoonHeo等人提出的基于可编程逻辑门阵列(FPGA)的FAST-BRIEF结构,采用非数据流的方法,缺点是需要采用外部储存来进行帧缓存,这会消耗大量的储存资源;2012年韩国高等技术研究院,Jun-Seok Park等人提出的基于字符匹配的FAST结构,采用非数据流的方法,缺点是也需要采用外部的储存空间来做帧储存,另外还需要一个用于顺序输入一维文本形式的匹配数据的机制。
所以在保证ORB算法有效性的同时,降低储存空间的消耗,也是使得ORB算法能够应用于嵌入式系统的关键。
发明内容
本发明的目的是为克服已有技术的不足之处,提出一种基于并行计算的图像特征提取方法。本发明利用FPGA上并行加速的方法,来加速FAST特征点提取算法和BRIEF描述子的计算,以此为基础来加速特征提取算法。本方法采用数据流的方法,能够降低储存的消耗,该方法能够应用到嵌入式平台上,加速ORB算法。
本发明一种基于并行计算的图像特征提取方法,其特征在于,包括以下步骤:
1)从第一随机存取储存器RAM中读取一张RGB图片数据到可编程逻辑门阵列FPGA;
2)把步骤1)读取的RGB图片转为对应的灰度图,RGB图片中每个像素点的转变方式如下:
S=0.299*R+0.587*B+0.114*G
其中R、G、B分别为RGB图片的该像素点的R、G、B值,S是该像素点转变后的灰度值;
3)对步骤2)中得到的灰度图进行复制,得到相同的两张灰度图,分别记为灰度图1和灰度图2;
4)对灰度图1进行特征点检测,对灰度图2进行GAUSSIAN高斯滤波;具体步骤如下:
4-1)判断灰度图1的每个像素点是否满足FAST条件,判断规则是:对于灰度图1上的所有像素点,考察每个像素点7*7邻域内以该像素点为圆心、半径是3个像素点的圆周上的共计16个像素点和圆心点的灰度值差异;令Ii表示任一圆周上第i个像素点的像素灰度值,i=1,2…16,Ip表示该圆周对应的圆心点的像素灰度值,t为设置的灰度阈值;若圆周上的任一像素点的像素值小于等于圆心点的像素值与灰度阈值之差,则判定该像素点为更暗Darker;若圆周上的任一像素点的像素值大于等于圆心点的像素值与灰度阈值之和,则判定该像素点为更亮Brighter;若圆周上任一像素点中既不满足更暗也不满足更亮,则判定该像素点为与圆心点相似Similar;表达式如下:
当圆周上16个像素点中有连续的9个像素点均满足更暗或者均满足更亮时,则该该圆周对应圆心点判定为满足FAST条件;否则,该圆心点判定为不满足FAST条件;
式(2)中的f(Ii)是圆周上的第i个像素点按照式(1)的方法比较之后的结果;
判断像素点是否满足FAST条件时,将圆周上的16个像素点放入到16个FPGA寄存器当中,并行进行如式(1)所示的减法运算;减法结果和比较结果储存在不同的寄存器中;然后,判断储存比较结果的寄存器中是否存在连续9个或者9个以上的数据相同;
4-2)对步骤4-1)中得到的所有满足FAST条件的圆心对应的像素点进行分值计算,分值计算的方法如式(3)、(4)、(5)所示;
当圆周上有连续9个像素点比圆心点更暗时,则计算该圆周对应的Vmin,表示选取圆心点与该圆周上像素点的灰度值的差的最小值;当圆周上有连续9个像素点比圆心点更亮时,则计算该圆周对应的Vmax,表示选取圆心点与该圆周上像素点的灰度值的差的最大值;最终计算得到该圆周所对应的圆心的分数值Score,表示选取|Vmax|,Vmin和t中的最大值;
Vmin=min{(Ip-Ii)|i=1,2,3,…,16},if Ip-Ii>t (3)
Vmax=max{(Ip-Ii)|i=1,2,3,…,16},if Ip-Ii<-t (4)
Score=max(|min(-t,Vmax)|,max(t,Vmin)) (5)
分值计算采用4-1)中得到的储存减法结果的寄存器,得到灰度值的差;对于选取相邻9个圆周上的像素点对应的该像素点与圆心点灰度值的差的最大值,首先比较相邻的两个寄存器中的值,取出较大值存到第二级寄存器组中;然后再从第二级寄存器组中取出间隔为1的两个寄存器中的值进行比较,选出较大值存到第三级寄存器组中;最后从第三级寄存器组中取出间隔为2的两个寄存器中的值进行比较,选出最大值存到第四级寄存器中;第四级寄存器中的值即为第一级寄存器相邻8个差值中的最大值;再把第四级寄存器中的值取出与相邻的第9个值相比较,取出较大值存到第五级寄存器中;第五级寄存器中的值为9个值中的最大值;
对于选取相邻9个圆周上的像素点对应的该像素点与圆心点灰度值的差的最小值,首先比较相邻的两个寄存器中的值,取出较小的值存到第二级寄存器组中;然后再从第二级寄存器组中取出间隔为1的两个寄存器中的值进行比较,选出较小的值存到第三级寄存器组中;最后从第三级寄存器组中取出间隔为2的两个寄存器中的值进行比较,选出较小的值存到第四级寄存器中;第四级寄存器中的值即为第一级寄存器相邻8个差值中的较小的值;再把第四级寄存器中的值取出与相邻的第9个值相比较,取出较小的值存到第五级寄存器中;第五级寄存器中的值为9个值中的最小值;
4-3)利用步骤4-2)计算得到的分值进行非极大值抑制;非极大值抑制在以步骤4-1)得到的集合中每个像素点作为正方形的中心点,大小为3*3的正方形区域内进行;最后用二值图像mask储存每个像素点对应的非极大值抑制后的结果,留下的像素点值为1,其它像素点值为0;Mask中,在步骤4-1)中判定不满足FAST条件的像素点的值设为0;
所述非极大值抑制方法是:用正方形中心点的分值与周围8个点的分值做比较,如果中心点的分值高于周围8个点,则中心点即为最后所要选取的特征点,将该中心点分值设为1,否则就舍弃该中心点;最终特征点的检测结果储存在二值图像mask中;
分值计算之后3*3区域的分值储存在3*3大小的分值寄存器中,并行比较中心点与周围8个点的大小,最后把比较结果做与运算,如果最后结果为0则舍弃该中心点,如果最后结果为1则保留该中心点;
4-4)对灰度图2进行高斯滤波得到滤波之后的灰度图,滤波的核大小为3*3的窗口,δx=δy=5;其中δx是二维高斯函数x方向上的方差,δy是二维高斯函数y方向上的方差;
5)将步骤4)得到的mask数据复制两份,分别为mask1和mask2;
6)将mask1用于BRIEF描述子计算,将mask2输出到第二RAM中,得到RGB图片的FAST-BRIEF特征;
6-1)利用mask1和步骤4-4)得到的滤波之后的灰度图,计算每个特征点对应的BRIEF描述子;计算方法为选取以特征点为中心的49*49大小的矩形区域内的128个点对,用以下公式比较128个点对,得到该特征点对应的一个长度为128位的二进制描述子;式中P(s)表示点s=(x,y)T的灰度值,B(P)是图像块P的描述子;
B(P)=∑1≤i≤n2i-1·τ(P;si,di) (7)
本发明的特点及有益效果在于
本发明提出一种基于并行计算的图像特征提取方法,该方法结合了图像特征提取算法FAST-BRIEF以及FPGA上并行加速的方法。该方法首先输入摄像头采集得到的RGB图片,然后将RGB图片转为灰度图,把灰度图数据流复制为两份,一份进行FAST特征点检测,另一份进行高斯滤波。最后利用FAST特征点检测得到的结果和高斯滤波得到的结果进行BRIEF描述子的计算,并把FAST特征点检测结果输出到RAM。其中FAST特征点检测和高斯滤波并行,FAST特征点检测结果的输出与BRIEF描述子的计算并行。
在FAST特征点计算中,判断像素点是否满足FAST条件,并行进行中心像素点和周围像素点灰度值的减法,在计算分值的过程中采用并行比较的方法得出最大值和最小值,非极大值抑制过程中采用并行比较分值的方法。BRIEF描述子的计算过程中,点对的比较并行进行。该发明采用数据流的结构能够减少储存空间的用量,并且在实施过程中采用并行计算的结构能够加快FAST-BRIEF算法的运行速度。这使得ORB算法可以在嵌入式低功耗的平台上运行,拓展了其应用场景,可以应用到小型低功耗的移动平台和实时性要求高的平台。
附图说明
图1是本发明方法的整体流程图。
图2是本发明实施例中并行进行特征点周围点的比较和减法运算的结构图。
图3是本发明实施例中并行判断特征点是否满足FAST条件的结构图。
图4是本发明实施例中求连续分布的9个差值中的最大值的结构图。
图5是本发明实施例中求连续分布的9个差值中的最小值的结构图。
图6是本发明实施例中非极大值抑制并行结构示意图。
图7是本发明实施例中BRIEF描述子的取点位置图。
图8是本发明实施例中描述子的计算的并行结构示意图。
具体实施方式
本发明提出一种基于并行计算的图像特征提取方法,下面结合附图和具体实施例,对本发明进一步详细说明如下。
本发明提出一种基于并行计算的图像特征提取方法,整体流程如图1所示,包括以下步骤:
1)从第一随机存取储存器(RAM)中读取一张RGB图片数据到可编程逻辑门阵列FPGA。
2)把步骤1)读取的RGB图片转为对应的灰度图,RGB图片中每个像素点的转变方式如下:
S=0.299*R+0.587*B+0.114*G
其中R、G、B分别为RGB图片的该像素点的R、G、B值,S是该像素点转变后的灰度值;
3)对步骤2)中得到的灰度图进行复制,得到相同的两张灰度图,分别记为灰度图1和灰度图2;
4)对灰度图1进行特征点检测,对灰度图2进行GAUSSIAN高斯滤波;具体步骤如下:
4-1)判断灰度图1的每个像素点是否满足FAST条件,判断规则是:对于灰度图1上的所有像素点,考察每个像素点7*7邻域内以该像素点为圆心、半径是3个像素点的圆周上的共计16个像素点和圆心点的灰度值差异。判断方法如下,Ii表示圆周上第i个像素点的像素灰度值(i=1,2…16),Ip表示该圆周对应的圆心点的像素灰度值,t为设置的灰度阈值(通常取圆心点灰度值的20%)。若圆周上的任一像素点的像素值小于等于圆心点的像素值与灰度阈值之差,则该圆周上的像素点被判定为更暗;若圆周上的任一像素点的像素值大于等于圆心点的像素值与灰度阈值之和,则该圆周上的像素点被判定为更亮;圆周上任一像素点中既不满足更暗(Darker)也不满足更亮(Brighter),则该圆周上的像素点被判定为与圆心点相似(Similar)。表达式如下:
当圆周上16个像素点中至少有连续的9个像素点均满足更暗(Darker)或者均满足更亮(Brighter)时(即该连续的9个像素点判定结果一致,均为更暗或者更亮),则该圆周对应圆心点判定为满足FAST条件;否则,该圆心点判定为不满足FAST条件。
式(2)中的f(Ii)是圆周上的第i个像素点按照式(1)的方法比较之后的结果。判断像素点是否满足FAST条件时,将16个像素点放入到16个FPGA寄存器当中,并行进行如式(1)所示的减法运算如图2(a)所示和比较运算如图2(b)所示。减法结果和比较结果储存在不同的寄存器中。然后,判断储存比较结果的寄存器中是否存在连续9个或者9个以上的数据相同,如图3所示。对灰度图1中每个像素点对应的7*7邻域进行如上操作,得到灰度图1中所有满足FAST条件的圆心对应的像素点组成满足FAST条件的像素点集合;
所述16个FPGA寄存器之后连接比较器,比较器再连接比较结果寄存器;16个FPGA寄存器之后同时连接减法器,减法器之后再连接减法结果寄存器。
4-2)对步骤4-1)中得到的所有满足FAST条件的圆心对应的像素点进行分值计算,分值计算的方法如式(3)、(4)、(5)所示,其中Ii表示任一圆心点对应的圆周上16个像素点的像素灰度值;Ip是圆心点像素的灰度值,t是灰度阈值。
当圆周上有连续9个像素点比圆心点更暗时,则计算该圆周对应的Vmin,表示选取圆心点与该圆周上像素点的灰度值的差的最小值;当圆周上有连续9个像素点比圆心点更亮时,则计算该圆周对应的Vmax,表示选取圆心点与该圆周上像素点的灰度值的差的最大值;最终计算得到该圆周所对应的圆心的分数值Score,表示选取|Vmax|,Vmin和t中的最大值;
Vmin=min{(Ip-Ii)|i=1,2,3,…,16},if Ip-Ii>t (3)
Vmax=max{(Ip-Ii)|i=1,2,3,…,16},if Ip-Ii<-t (4)
Score=max(|min(-t,Vmax)|,max(t,Vmin)) (5)
分值计算采用4-1)中得到的储存减法结果的寄存器,从中得到灰度值的差。图4是本发明实施例中求连续分布的9个差值中的最大值的结构图。
如图4所示,首先比较相邻的两个寄存器中的值,取出较大值存到第二级寄存器组中。然后再从第二级寄存器组中取出间隔为1的两个寄存器中的值进行比较,选出较大值存到第三级寄存器组中。最后从第三级寄存器组中取出间隔为2的两个寄存器中的值进行比较,选出最大值存到第四级寄存器中。第四级寄存器中的值即为第一级寄存器相邻8个差值中的最大值。在把第四级寄存器中的值取出与相邻的第9个值相比较,取出较大值存到第五级寄存器中。第五级寄存器中的值为9个值中的最大值。相邻9个值中的最小值的计算过程与上述过程相同,如图5所示,首先比较相邻的两个寄存器中的值,取出较小的值存到第二级寄存器组中。然后再从第二级寄存器组中取出间隔为1的两个寄存器中的值进行比较,选出较小的值存到第三级寄存器组中。最后从第三级寄存器组中取出间隔为2的两个寄存器中的值进行比较,选出较小的值存到第四级寄存器中。第四级寄存器中的值即为第一级寄存器相邻8个差值中的较小的值。再把第四级寄存器中的值取出与相邻的第9个值相比较,取出较小的值存到第五级寄存器中。第五级寄存器中的值为9个值中的最小值。重复上述过程,可以计算得到所有连续9个点中的最大值和最小值。最后按(5)式计算得到分值。
4-3)利用步骤4-2)计算得到的分值进行非极大值抑制。非极大值抑制在以步骤4-1)得到的集合中每个像素点作为正方形的中心点,大小为3*3的正方形区域内进行。最后用二值图像(mask)储存每个像素点对应的非极大值抑制后的结果,留下的像素点值为1,其它像素点值为0。
对满足FAST条件的像素点实施步骤4-2)后可以得到他们的分值,不满足FAST条件的像素点的值设为0。方法是:用区域中心点(圆心)的分值与周围8个点的分值做比较,如果中心点的分值高于周围8个点,则中心点即为最后所要选取的特征点,将该中心点分值设为1,否则就舍弃该中心点。最终特征点的检测结果储存在二值图像mask中。
分值计算之后3*3区域的分值储存在3*3大小的分值寄存器中,并行比较中心点与周围8个点的大小,如图6所示。最后把比较结果做与运算,如果最后结果为0则舍弃该中心点,如果最后结果为1则保留该中心点。
4-4)对灰度图2进行高斯滤波得到滤波之后的灰度图,滤波的核大小为3*3的窗口,δx=δy=5。其中δx是二维高斯函数x方向上的方差,δy是二维高斯函数y方向上的方差。
在步骤4)中步骤4-4)与4-1)、4-2)、4-3)并行。
5)将步骤4)得到的mask数据复制两份,分别为mask1和mask2。
6)mask1用于BRIEF描述子计算,mask2输出到第二RAM中,得到RGB图片的FAST-BRIEF特征。
6-1)利用mask1和步骤4-4)中计算得到滤波之后得到的灰度图,计算每个特征点对应的BRIEF描述子。计算方法为选取以特征点(即满足FAST条件的点)为中心的49*49矩形区域内的128个点对,用以下公式比较这128个点对,得到该特征点对应的一个长度为128位的二进制描述子。式中P(s)表示点s=(x,y)T的灰度值,B(P)是图像块P的描述子。
从以满足FAST条件的像素点为中心的49*49大小的寄存器中按照BRIEF描述子的取点规则,取出128个点对。取点对的方法固定如图7所示,具体原则是以满足FAST条件的点为原点按照如下所示的坐标选取点对,用线段连接的两个端点即为一个点对。比较点对中两个像素点的灰度值的大小关系,比较过程并行执行,过程示意图如图8。
本实施例128个点对坐标如下:
(-2,-1) (7,-1)
(-6,-23) (8,-9)
(-14,9) (2,0)
(0,12) (-3,19)
(-13,13) (3,-1)
(6,12) (21,3)
(22,0) (7,-18)
(4,12) (0,-19)
(3,6) (22,-2)
(4,-7) (0,16)
(-20,17) (-18,7)
(-2,4) (-1,6)
(5,-7) (7,7)
(11,0) (-3,2)
(-11,6) (-10,13)
(1,-1) (13,-10)
(-14,-1) (-3,3)
(-12,6) (-10,8)
(7,-3) (22,6)
(1,15) (-11,-5)
(-16,17) (6,10)
(-3,2) (14,1)
(-1,-3) (0,18)
(20,13) (3,5)
(-13,14) (4,-4)
(-6,-5) (-12,-1)
(2,15) (19,-11)
(-2,7) (6,8)
(-5,13) (-8,11)
(7,-12) (14,5)
(1,-7) (14,0)
(-19,14) (8,-14)
(1,-2) (11,2)
(-3,-1) (8,1)
(-6,6) (-8,-5)
(14,-1) (7,8)
(7,15) (-5,0)
(5,1) (-5,11)
(-4,22) (-5,3)
(-8,-12) (5,0)
(-13,8) (-18,-22)
(1,-1) (9,18)
(-18,6) (-7,3)
(-8,-1) (-7,-9)
(11,-4) (0,8)
(0,-7) (-1,-1)
(-12,1) (-5,-5)
(-4,-13) (7,1)
(1,6) (-10,-7)
(3,6) (5,6)
(-5,9) (7,-1)
(7,-23) (-5,5)
(2,-12) (19,-2)
(3,-17) (-6,2)
(1,-7) (2,-3)
(-5,6) (-7,-11)
(-1,-1) (-7,3)
(-7,10) (-11,6)
(-4,1) (-14,13)
(8,-9) (15,0)
(5,-11) (-9,-6)
(-16,0) (6,8)
(4,7) (8,-1)
(1,-2) (12,-7)
(13,2) (-1,0)
(-7,-6) (5,-5)
(-3,-7) (-10,-18)
(0,-6) (-10,17)
(3,-6) (-4,-15)
(6,8) (5,-10)
(19,-20) (17,-2)
(6,-11) (-3,-22)
(-19,-12) (4,3)
(4,3) (19,-7)
(17,3) (2,-8)
(0,22) (-4,-15)
(2,-6) (3,-20)
(22,11) (0,-3)
(-1,-5) (15,2)
(3,-5) (1,-5)
(-14,5) (5,-3)
(22,-2) (-11,-8)
(4,-5) (0,11)
(13,-4) (-3,-4)
(8,3) (0,14)
(-14,-2) (0,4)
(3,-10) (-8,24)
(15,4) (10,1)
(8,10) (13,-2)
(-18,5) (-4,5)
(-7,2) (1,6)
(-14,-1) (3,-2)
(-6,2) (6,10)
(19,0) (5,-17)
(-3,-1) (7,-10)
(-2,-2) (8,-10)
(-2,8) (2,4)
(14,7) (8,5)
(2,3) (9,10)
(-12,1) (-12,2)
(4,-11) (5,5)
(5,-7) (-6,5)
(-5,-14) (7,5)
(-7,-4) (15,-6)
(-6,-1) (-6,-5)
(4,0) (-20,4)
(17,-9) (-2,8)
(-7,-4) (17,-7)
(-6,-6) (-15,7)
(-23,-14) (-13,-19)
(3,-6) (10,-18)
(2,14) (8,7)
(-11,8) (-15,5)
(-1,14) (-5,-14)
(-10,3) (4,9)
(0,8) (3,22)
(11,-7) (7,1)
(10,4) (4,-7)
(-2,12) (-4,-15)
(5,10) (0,24)
(2,-21) (-3,2)
(7,-11) (18,12)
(-8,-6) (-1,12)
(-8,-2) (9,-4)
(-6,-3) (2,1)
(-8,10) (-11,-2)
(-7,-13) (-13,10)
(3,9) (8,2)
6-2)因为mask中每个像素点的像素值的数据类型是8位无符号整数,在输出数据时将4个像素点的像素值合并为一个数据,也就是32位无符号整数之后再输出。
6-3)128位描述子可以将其分为4个32位的数据分别输出。FAST特征点的坐标(mask图像中的坐标)及其对应的128位的描述子为输入的RGB图片的FAST-BRIEF特征。
步骤(6)中(6-1)和(6-2)并行。
Claims (1)
1.一种基于并行计算的图像特征提取方法,其特征在于,包括以下步骤:
1)从第一随机存取储存器RAM中读取一张RGB图片数据到可编程逻辑门阵列FPGA;
2)把步骤1)读取的RGB图片转为对应的灰度图,RGB图片中每个像素点的转变方式如下:
S=0.299*R+0.587*B+0.114*G
其中R、G、B分别为RGB图片的该像素点的R、G、B值,S是该像素点转变后的灰度值;
3)对步骤2)中得到的灰度图进行复制,得到相同的两张灰度图,分别记为灰度图1和灰度图2;
4)对灰度图1进行特征点检测,对灰度图2进行GAUSSIAN高斯滤波;具体步骤如下:
4-1)判断灰度图1的每个像素点是否满足FAST条件,判断规则是:对于灰度图1上的所有像素点,考察每个像素点7*7邻域内以该像素点为圆心、半径是3个像素点的圆周上的共计16个像素点和圆心点的灰度值差异;令Ii表示任一圆周上第i个像素点的像素灰度值,i=1,2…16,Ip表示该圆周对应的圆心点的像素灰度值,t为设置的灰度阈值;若圆周上的任一像素点的像素值小于等于圆心点的像素值与灰度阈值之差,则判定该像素点为更暗Darker;若圆周上的任一像素点的像素值大于等于圆心点的像素值与灰度阈值之和,则判定该像素点为更亮Brighter;若圆周上任一像素点中既不满足更暗也不满足更亮,则判定该像素点为与圆心点相似Similar;表达式如下:
当圆周上16个像素点中有连续的9个像素点均满足更暗或者均满足更亮时,则该圆周对应圆心点判定为满足FAST条件;否则,该圆心点判定为不满足FAST条件;
式(2)中的f(Ii)是圆周上的第i个像素点按照式(1)的方法比较之后的结果;
判断像素点是否满足FAST条件时,将圆周上的16个像素点放入到16个FPGA寄存器当中,并行进行如式(1)所示的减法运算;减法结果和比较结果储存在不同的寄存器中;然后,判断储存比较结果的寄存器中是否存在连续9个或者9个以上的数据相同;
4-2)对步骤4-1)中得到的所有满足FAST条件的圆心对应的像素点进行分值计算,分值计算的方法如式(3)、(4)、(5)所示;
当圆周上有连续9个像素点比圆心点更暗时,则计算该圆周对应的Vmin,表示选取圆心点与该圆周上像素点的灰度值的差的最小值;当圆周上有连续9个像素点比圆心点更亮时,则计算该圆周对应的Vmax,表示选取圆心点与该圆周上像素点的灰度值的差的最大值;最终计算得到该圆周所对应的圆心的分数值Score,表示选取|Vmax|,Vmin和t中的最大值;
Vmin=min{(Ip-Ii)|i=1,2,3,…,16},if Ip-Ii>t (3)
Vmax=max{(Ip-Ii)|i=1,2,3,…,16},if Ip-Ii<-t (4)
Score=max(|min(-t,Vmax)|,max(t,Vmin)) (5)
分值计算采用4-1)中得到的储存减法结果的寄存器,得到灰度值的差;对于选取相邻9个圆周上的像素点对应的该像素点与圆心点灰度值的差的最大值,首先比较相邻的两个寄存器中的值,取出较大值存到第二级寄存器组中;然后再从第二级寄存器组中取出间隔为1的两个寄存器中的值进行比较,选出较大值存到第三级寄存器组中;最后从第三级寄存器组中取出间隔为2的两个寄存器中的值进行比较,选出最大值存到第四级寄存器中;第四级寄存器中的值即为第一级寄存器相邻8个差值中的最大值;再把第四级寄存器中的值取出与相邻的第9个值相比较,取出较大值存到第五级寄存器中;第五级寄存器中的值为9个值中的最大值;
对于选取相邻9个圆周上的像素点对应的该像素点与圆心点灰度值的差的最小值,首先比较相邻的两个寄存器中的值,取出较小的值存到第二级寄存器组中;然后再从第二级寄存器组中取出间隔为1的两个寄存器中的值进行比较,选出较小的值存到第三级寄存器组中;最后从第三级寄存器组中取出间隔为2的两个寄存器中的值进行比较,选出较小的值存到第四级寄存器中;第四级寄存器中的值即为第一级寄存器相邻8个差值中的较小的值;再把第四级寄存器中的值取出与相邻的第9个值相比较,取出较小的值存到第五级寄存器中;第五级寄存器中的值为9个值中的最小值;
4-3)利用步骤4-2)计算得到的分值进行非极大值抑制;非极大值抑制在以步骤4-1)得到的集合中每个像素点作为正方形的中心点,大小为3*3的正方形区域内进行;最后用二值图像mask储存每个像素点对应的非极大值抑制后的结果,留下的像素点值为1,其它像素点值为0;mask 中,在步骤4-1)中判定不满足FAST条件的像素点的值设为0;
所述非极大值抑制方法是:用正方形中心点的分值与周围8个点的分值做比较,如果中心点的分值高于周围8个点,则中心点即为最后所要选取的特征点,将该中心点分值设为1,否则就舍弃该中心点;最终特征点的检测结果储存在二值图像mask中;
分值计算之后3*3区域的分值储存在3*3大小的分值寄存器中,并行比较中心点与周围8个点的大小,最后把比较结果做与运算,如果最后结果为0则舍弃该中心点,如果最后结果为1则保留该中心点;
4-4)对灰度图2进行高斯滤波得到滤波之后的灰度图,滤波的核大小为3*3的窗口,δx=δy=5;其中δx是二维高斯函数x方向上的方差,δy是二维高斯函数y方向上的方差;
5)将步骤4)得到的mask数据复制两份,分别为mask1和mask2;
6)将mask1用于BRIEF描述子计算,将mask2输出到第二RAM中,得到RGB图片的FAST-BRIEF特征;
6-1)利用mask1和步骤4-4)得到的滤波之后的灰度图,计算每个特征点对应的BRIEF描述子;计算方法为选取以特征点为中心的49*49大小的矩形区域内的128个点对,用以下公式比较128个点对,得到该特征点对应的一个长度为128位的二进制描述子;式中P(s)表示点s=(x,y)T的灰度值,B(P)是图像块P的描述子;
B(P)=∑1≤i≤n2i-1·τ(P;si,di) (7)
6-2)将128位描述子分为4个32位的数据分别输出;FAST特征点的在mask图像中的坐标及对应的128位的描述子即为步骤1)的RGB图片的FAST-BRIEF特征。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911171390.8A CN110991291B (zh) | 2019-11-26 | 2019-11-26 | 一种基于并行计算的图像特征提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911171390.8A CN110991291B (zh) | 2019-11-26 | 2019-11-26 | 一种基于并行计算的图像特征提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110991291A CN110991291A (zh) | 2020-04-10 |
CN110991291B true CN110991291B (zh) | 2021-09-07 |
Family
ID=70086935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911171390.8A Active CN110991291B (zh) | 2019-11-26 | 2019-11-26 | 一种基于并行计算的图像特征提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110991291B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113744177A (zh) * | 2020-05-28 | 2021-12-03 | 中科寒武纪科技股份有限公司 | 图像的角点检测方法、装置和存储介质 |
CN112529016A (zh) * | 2020-12-21 | 2021-03-19 | 浙江欣奕华智能科技有限公司 | 一种图像中特征点的提取方法及提取装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100792221B1 (ko) * | 2006-09-29 | 2008-01-07 | 학교법인 포항공과대학교 | 스테레오 비전의 시각 특징점과 초음파 센서의 선 형상의결합을 통한 동시 위치인식 및 지도형성 방법 |
CN106803270A (zh) * | 2017-01-13 | 2017-06-06 | 西北工业大学深圳研究院 | 无人机平台基于单目slam的多关键帧协同地面目标定位方法 |
CN108021528A (zh) * | 2016-11-03 | 2018-05-11 | 北京中科寒武纪科技有限公司 | Slam运算装置和方法 |
CN109919825A (zh) * | 2019-01-29 | 2019-06-21 | 北京航空航天大学 | 一种orb-slam硬件加速器 |
CN110378355A (zh) * | 2019-06-30 | 2019-10-25 | 南京理工大学 | 基于fpga硬件融合图像fast特征点检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170374342A1 (en) * | 2016-06-24 | 2017-12-28 | Isee, Inc. | Laser-enhanced visual simultaneous localization and mapping (slam) for mobile devices |
-
2019
- 2019-11-26 CN CN201911171390.8A patent/CN110991291B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100792221B1 (ko) * | 2006-09-29 | 2008-01-07 | 학교법인 포항공과대학교 | 스테레오 비전의 시각 특징점과 초음파 센서의 선 형상의결합을 통한 동시 위치인식 및 지도형성 방법 |
CN108021528A (zh) * | 2016-11-03 | 2018-05-11 | 北京中科寒武纪科技有限公司 | Slam运算装置和方法 |
CN106803270A (zh) * | 2017-01-13 | 2017-06-06 | 西北工业大学深圳研究院 | 无人机平台基于单目slam的多关键帧协同地面目标定位方法 |
CN109919825A (zh) * | 2019-01-29 | 2019-06-21 | 北京航空航天大学 | 一种orb-slam硬件加速器 |
CN110378355A (zh) * | 2019-06-30 | 2019-10-25 | 南京理工大学 | 基于fpga硬件融合图像fast特征点检测方法 |
Non-Patent Citations (2)
Title |
---|
A parallel method for aerial image stitching using ORB feature points;Guodong Wang等;《2017 IEEE/ACIS 16th International Conference on Computer and Information Science (ICIS)》;20170629;769-773 * |
基于粒子滤波的SLAM算法并行优化与实现;朱福利等;《广东工业大学学报》;20170331;第34卷(第2期);92-96 * |
Also Published As
Publication number | Publication date |
---|---|
CN110991291A (zh) | 2020-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108647585B (zh) | 一种基于多尺度循环注意力网络的交通标识符检测方法 | |
CN112991447B (zh) | 一种动态环境下视觉定位与静态地图构建方法及系统 | |
CN110991291B (zh) | 一种基于并行计算的图像特征提取方法 | |
CN107679489B (zh) | 基于场景分割的自动驾驶处理方法、装置及计算设备 | |
CN110309842B (zh) | 基于卷积神经网络的物体检测方法及装置 | |
CN113807361B (zh) | 神经网络、目标检测方法、神经网络训练方法及相关产品 | |
EP4057226A1 (en) | Method and apparatus for estimating pose of device | |
CN112488999B (zh) | 一种图像中小目标检测方法、系统、存储介质及终端 | |
Yang et al. | An improved encoder–decoder network for ore image segmentation | |
El‐Shafie et al. | Survey on hardware implementations of visual object trackers | |
Yan et al. | Single image depth estimation with normal guided scale invariant deep convolutional fields | |
Huang et al. | Change detection with various combinations of fluid pyramid integration networks | |
CN113673545A (zh) | 光流估计方法、相关装置、设备及计算机可读存储介质 | |
CN111428566B (zh) | 一种形变目标跟踪系统及方法 | |
Meus et al. | Embedded vision system for pedestrian detection based on HOG+ SVM and use of motion information implemented in Zynq heterogeneous device | |
CN112734931B (zh) | 一种辅助点云目标检测的方法及系统 | |
CN113326734B (zh) | 一种基于YOLOv5的旋转目标检测方法 | |
CN111523548B (zh) | 一种图像语义分割、智能行驶控制方法及装置 | |
Zhang et al. | Small target detection based on squared cross entropy and dense feature pyramid networks | |
CN107622498B (zh) | 基于场景分割的图像穿越处理方法、装置及计算设备 | |
Zhou et al. | Superpixel-driven level set tracking | |
JP5417312B2 (ja) | 画像検索装置、および画像検索プログラム | |
CN115115698A (zh) | 设备的位姿估计方法及相关设备 | |
Haimer et al. | Yolo algorithms performance comparison for object detection in adverse weather conditions | |
Li et al. | Soc and fpga oriented high-quality stereo vision system |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |