CN109522906A - 基于fpga的低复杂度快速sift特征提取方法 - Google Patents
基于fpga的低复杂度快速sift特征提取方法 Download PDFInfo
- Publication number
- CN109522906A CN109522906A CN201811238694.7A CN201811238694A CN109522906A CN 109522906 A CN109522906 A CN 109522906A CN 201811238694 A CN201811238694 A CN 201811238694A CN 109522906 A CN109522906 A CN 109522906A
- Authority
- CN
- China
- Prior art keywords
- gaussian
- image
- fpga
- characteristic point
- quick
- 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 11
- 239000000284 extract Substances 0.000 claims abstract description 13
- 238000005070 sampling Methods 0.000 claims abstract description 7
- 238000001914 filtration Methods 0.000 claims abstract description 5
- 238000001514 detection method Methods 0.000 claims description 11
- 230000008520 organization Effects 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 2
- 238000000605 extraction Methods 0.000 abstract description 13
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
Classifications
-
- 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/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/462—Salient features, e.g. scale invariant feature transforms [SIFT]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本发明涉及计算机视觉领域,为对SIFT算法的特征描述符提取部分进行优化,提高该部分的硬件执行速度,保持特征描述符的稳定性,降低FPGA硬件资源消耗。为了实现上述目的,本发明采取的技术方案是:基于FPGA的低复杂度快速SIFT特征提取方法,利用上采样模块采集图像数据至初始二维高斯滤波模块G0产生基准高斯图像,之后再利用4个并行的二维高斯滤波器G1~G4产生4层高斯图像,构成高斯金字塔;相邻的两层高斯图像相减得到的高斯差分图像D1~D3,构成高斯差分金字塔。本发明主要应用于图像特征提取场合。
Description
技术领域
本发明涉及计算机视觉领域,涉及一种基于FPGA(现场可编程门阵列)的实时目标识别***,特别地涉及一种基于FPGA的快速SIFT特征提取技术。
背景技术
在计算机视觉领域,尺度不变特征变换(SIFT)算法应用广泛。SIFT算法的主要思想是首先检测图像中稳定的特征点,然后提取特征点邻域的局部特征描述符,主要步骤如下所述。
(1)对输入图像进行包括上采样和初始高斯滤波的预处理,然后构建高斯金字塔和高斯差分金字塔。
(2)在高斯差分金字塔中检测特征点。
(3)计算特征点主方向。
(4)根据特征点主方向对特征点邻域进行旋转,然后提取特征点的特征描述符。
SIFT特征提取算法具有较高的计算复杂度实时性较低。实验发现,对于分辨率为480x320的图像,提取713个特征描述符的时间消耗约为2s(CPU I5 2.6GHz,Vs2010,Opencv2.4.11)。一些研究者利用GPU并行运算或多核***对SIFT算法进行加速,可以取得较好的加速效果。但是,这两种加速方式都存在功耗高的缺点,无法在嵌入式***中应用。
由于现场可编程门阵列(FPGA)具有速度高功耗低的特点,许多研究者利用FPGA对SIFT算法进行加速,使得提取特征点所需时钟周期数越来越接近于图像像素的数量,特征描述符提取部分逐渐成为限制硬件执行时间的瓶颈。因此,在保持特征描述符稳定性的技术上,对特征描述符提取部分进行适合于硬件执行的优化变得越来越重要。
发明内容
本发明的目的是在相关研究的基础上,对SIFT算法的特征描述符提取部分进行优化,提高该部分的硬件执行速度,保持特征描述符的稳定性,降低FPGA硬件资源消耗。为了实现上述目的,本发明采取的技术方案是:基于FPGA的低复杂度快速SIFT特征提取方法,利用上采样模块采集图像数据至初始二维高斯滤波模块G0产生基准高斯图像,之后再利用4个并行的二维高斯滤波器G1~G4产生4层高斯图像,构成高斯金字塔;相邻的两层高斯图像相减得到的高斯差分图像D1~D3,构成高斯差分金字塔;在高斯差分金字塔中进行特征点的检测,所检测到的特征点的坐标通过DMA的方式传输到双倍速率同步动态随机存储器DDR,中进行存储;在进行特征点检测的同时,G2的输出进入像素梯度信息计算模块,所求解的像素梯度信息通过DMA的方式传输到DDR中进行存储;特征点检测与梯度信息计算结束后,利用DMA读取特征点所需的邻域像素点的梯度信息,利用2个16x16的寄存器阵列组成流水线结构进行特征点主方向计算和特征描述符提取。
进行特征点主方向计算和特征描述符提取时,提前计算每个像素点的高斯权重并固化到只读存储器ROM中,硬件执行时直接读取。
利用硬件求解梯度信息时,直接将梯度方向转变为6比特梯度方向类别。
对于采用三线性插值算法构建提取特征描述符的梯度幅值直方图时,将三线性插值中水平方向的双线性插值系数以及梯度幅值直方图索引固化到ROM中,硬件执行时直接进行读取。
本发明的特点及有益效果是:
由于本发明利用FPGA对SIFT算法进行加速,并优化了进行特征点主方向计算和特征描述符提取的方式,因而:
(1)与软件相比,可以获得约200倍的加速。
(2)图像尺度变化后正确匹配点对的数量较多,特征描述符稳定性高。
(3)旋转变换后提取的特征描述符具有较高的匹配率。
(4)硬件资源消耗较低。
(5)硬件执行速度提升。
附图说明:
图1SIFT硬件架构图。
图2尺度变化特征匹配结果。
图3SIFT特征描述符提取流水线架构。
具体实施方式
提出的SIFT硬件架构如图1所示。***主要包括预处理、尺度空间构建(高斯金字塔构建和高斯差分金字塔构建)、梯度信息计算、特征点检测、特征点主方向计算和特征描述符提取等部分。
在预处理模块,原始图像灰度像素通过DMA(直接存储器访问)传输到上采样模块。上采样模块的输出至初始二维高斯滤波模块G0产生基准高斯图像,之后再利用4个并行的二维高斯滤波器G1~G4产生4层高斯图像,构成高斯金字塔。相邻的2层高斯图像相减得到的高斯差分图像D1~D3,构成高斯差分金字塔。特征点的检测在高斯差分金字塔中进行。所检测到的特征点的坐标通过DMA的方式传输到DDR(双倍速率同步动态随机存储器,可作为FPGA片外存储资源)中进行存储。在进行特征点检测的同时,G2的输出进入像素梯度信息计算模块,所求解的像素梯度信息通过DMA的方式传输到DDR中进行存储。
特征点检测与梯度信息计算结束后,***利用DMA读取特征点所需的邻域像素点的梯度信息,利用2个16x16的寄存器阵列组成流水线结构进行特征点主方向计算和特征描述符提取。
表1特征描述符提取伪代码
表1为特征描述符提取部分的伪代码(opencv2.4.11),涉及指数、三角函数和乘除法等不适合利用硬件实现的复杂数学运算。本发明采用以下3种技术对特征描述符提取部分进行适合于硬件设计的优化。
表1中高斯权重系数w的计算在邻域旋转之后进行,计算公式如式(1)(2)(3)所示。旋转前、后像素点的位置分别为(r,c)、(r_rot,c_rot),θ表示特征点主方向,d为常数4。由于公式(1)(2)(3)包含指数、三角函数以及乘除法等数学运算,计算复杂度高,不易于硬件实现。
c_rot=c*cosθ-r*sinθ (1)
r_rot=c*sinθ+r*cosθ (2)
但是,将公式(1)和(2)代入公式(3)可以看出,高斯权重系数与坐标旋转无关,只与邻域像素点和特征点之间的相对位置有关。因此,可以提前计算每个像素点的高斯权重并固化到ROM中,硬件执行时直接读取,可以避免指数、三角函数和乘除法等数学计算,降低硬件复杂度,提高处理速度。
利用硬件求解梯度信息(梯度幅值和梯度方向)时,梯度方向一般用16比特表示。当利用流水线结构计算特征点主方向和提取特征描述符时,需要构造2个16x16的存储像素梯度信息的寄存器阵列,会消耗大量硬件资源。本发明增加了一个梯度方向分类模块,直接将梯度方向转变为6比特梯度方向类别,明显降低了后续特征点主方向计算模块和特征描述符提取模块的硬件资源消耗。
此外,对于采用三线性插值算法构建提取特征描述符的梯度幅值直方图时,将三线性插值中水平方向的双线性插值系数以及梯度幅值直方图索引固化到ROM中,硬件执行时直接进行读取。
本发明使用FPGA对SIFT算法进行加速,以实现对图像局部特征描述符的实时提取,其:
(1)提取776个特征描述符的时间约为10ms,与软件相比,可以获得约200倍的加速。
(2)图像尺度变化后正确匹配点对的数量较多,特征描述符稳定性高,匹配结果如图2所示。
(3)旋转变换后提取的特征描述符具有较高的匹配率,匹配率定义为正确匹配点的对数与匹配的点对的总量之比,如表2所示。
表2旋转变化特征描述符稳定性检测
(4)硬件资源消耗对比如表3所示,本发明所需需片上存储资源与Jiang[1]相比降低了85%,与Qasaimeh[2]相比降低了50%;与Jiang[1]、Qasaimeh[2]相比所需查找表(LUTs)资源和乘法器(DSP)资源较低,但是消耗了较多的寄存器(Registers)资源;而Chiu[3]消耗了大量的LUTs与Registers资源。
表3硬件资源消耗对比
(5)硬件执行速度对比如表4所示,与完整SIFT硬件架构Qasaimeh[2]相比,本发明在增加上采样模块后仍然可以获得3倍的速度提升。N表示特征点的数量。
表4硬件执行速度对比
下面结合附图,就本发明的上述技术做进一步地说明。
SIFT特征描述符提取的硬件执行流水线结构如图3所示。SIFT特征描述符的提取主要包括T0、T1、T2、T3 4个时刻。在T0时刻,高斯权重化梯度幅值产生magw与特征点邻域旋转两个任务并行进行。特征点邻域旋转是指将邻域像素的梯度方向类别(Grc)与特征点主方向类别(Orc)相减得到相对梯度方向类别(ROrc)。在T1时刻,确定邻域像素点梯度幅值在r、c平面对周围4个种子点的贡献rcbinmagw;同时,分别取ROrc的高4位和低2位得到ROrc_4和ROrc_2,其中ROrc_4用于确定最终梯度幅值直方图索引,ROrc_2用于确定在o方向的插值系数。在T2时刻,根据Orc_4确定最终梯度幅值直方图索引;同时,根据ROrc_2在o方向上对rcbinmagw进行插值得到rcobinmagw。T3时刻,根据梯度幅值直方图索引,将三线性插值结果rcobinmagw加到对应的梯度幅值直方图中。当处理完特征点邻域内所有像素后开始输出提取的特征描述符。输出完毕后,继续提取下一个特征点的特征描述符。
相关文献:
[1]Jiang J,Li X,Zhang G.SIFT hardware implementation for real-timeimage feature extraction.IEEE Transactions on Circuits and Systems for VideoTechnology,2014,24(7):1209
[2]Qasaimeh M,Sagahyroon A,Shanableh T.FPGA-based parallel hardwarearchitecture for real-time image classification.IEEE Transactions onComputational Imaging,2015,1(1):56
[3]Vourvoulakis J,Kalomiros J,Lygouras J.Fully pipelined FPGA-basedarchitecture for real-time SIFT extraction.Microprocessors and Microsystems,2016,40(C):53。
Claims (4)
1.一种基于FPGA的低复杂度快速SIFT特征提取方法,其特征是,利用上采样模块采集图像数据至初始二维高斯滤波模块G0产生基准高斯图像,之后再利用4个并行的二维高斯滤波器G1~G4产生4层高斯图像,构成高斯金字塔;相邻的两层高斯图像相减得到的高斯差分图像D1~D3,构成高斯差分金字塔;在高斯差分金字塔中进行特征点的检测,所检测到的特征点的坐标通过DMA的方式传输到双倍速率同步动态随机存储器DDR,中进行存储;在进行特征点检测的同时,G2的输出进入像素梯度信息计算模块,所求解的像素梯度信息通过DMA的方式传输到DDR中进行存储;特征点检测与梯度信息计算结束后,利用DMA读取特征点所需的邻域像素点的梯度信息,利用2个16x16的寄存器阵列组成流水线结构进行特征点主方向计算和特征描述符提取。
2.如权利要求1所述的基于FPGA的低复杂度快速SIFT特征提取方法,其特征是,进行特征点主方向计算和特征描述符提取时,提前计算每个像素点的高斯权重并固化到只读存储器ROM中,硬件执行时直接读取。
3.如权利要求1所述的基于FPGA的低复杂度快速SIFT特征提取方法,其特征是,利用硬件求解梯度信息时,直接将梯度方向转变为6比特梯度方向类别。
4.如权利要求1所述的基于FPGA的低复杂度快速SIFT特征提取方法,其特征是,对于采用三线性插值算法构建提取特征描述符的梯度幅值直方图时,将三线性插值中水平方向的双线性插值系数以及梯度幅值直方图索引固化到ROM中,硬件执行时直接进行读取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811238694.7A CN109522906A (zh) | 2018-10-23 | 2018-10-23 | 基于fpga的低复杂度快速sift特征提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811238694.7A CN109522906A (zh) | 2018-10-23 | 2018-10-23 | 基于fpga的低复杂度快速sift特征提取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109522906A true CN109522906A (zh) | 2019-03-26 |
Family
ID=65772451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811238694.7A Pending CN109522906A (zh) | 2018-10-23 | 2018-10-23 | 基于fpga的低复杂度快速sift特征提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109522906A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111009004A (zh) * | 2019-11-24 | 2020-04-14 | 华南理工大学 | 一种加速图像匹配的硬件优化方法 |
CN111583093A (zh) * | 2020-04-27 | 2020-08-25 | 西安交通大学 | 一种实时性好的orb特征点提取的硬件实现方法 |
CN112348032A (zh) * | 2019-08-09 | 2021-02-09 | 珠海市一微半导体有限公司 | 一种基于硬件电路的sift算法关键点检测方法 |
WO2024077729A1 (zh) * | 2022-10-13 | 2024-04-18 | 上海科技大学 | 一种高能效fpga实现的点云特征提取方法及其应用 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593850A (zh) * | 2013-11-26 | 2014-02-19 | 北京航空航天大学深圳研究院 | 一种在cuda平台上基于递归高斯滤波的sift并行化***及方法 |
CN104978749A (zh) * | 2014-04-08 | 2015-10-14 | 南京理工大学 | 一种基于fpga的sift图像特征提取*** |
CN107909094A (zh) * | 2017-10-31 | 2018-04-13 | 天津大学 | 一种自适应阈值多目标sift匹配算法实现方法 |
-
2018
- 2018-10-23 CN CN201811238694.7A patent/CN109522906A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593850A (zh) * | 2013-11-26 | 2014-02-19 | 北京航空航天大学深圳研究院 | 一种在cuda平台上基于递归高斯滤波的sift并行化***及方法 |
CN104978749A (zh) * | 2014-04-08 | 2015-10-14 | 南京理工大学 | 一种基于fpga的sift图像特征提取*** |
CN107909094A (zh) * | 2017-10-31 | 2018-04-13 | 天津大学 | 一种自适应阈值多目标sift匹配算法实现方法 |
Non-Patent Citations (2)
Title |
---|
JIE JIANG等: "SIFT Hardware Implementation for Real-Time Image Feature Extraction", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》 * |
JOHN VOURVOULAKIS等: "Fully pipelined FPGA-based architecture for real-time SIFT extraction", 《MICROPROCESSORS AND MICROSYSTEMS》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112348032A (zh) * | 2019-08-09 | 2021-02-09 | 珠海市一微半导体有限公司 | 一种基于硬件电路的sift算法关键点检测方法 |
CN112348032B (zh) * | 2019-08-09 | 2022-10-14 | 珠海一微半导体股份有限公司 | 一种基于硬件电路的sift算法关键点检测方法 |
CN111009004A (zh) * | 2019-11-24 | 2020-04-14 | 华南理工大学 | 一种加速图像匹配的硬件优化方法 |
CN111009004B (zh) * | 2019-11-24 | 2023-05-23 | 华南理工大学 | 一种加速图像匹配的硬件优化方法 |
CN111583093A (zh) * | 2020-04-27 | 2020-08-25 | 西安交通大学 | 一种实时性好的orb特征点提取的硬件实现方法 |
WO2024077729A1 (zh) * | 2022-10-13 | 2024-04-18 | 上海科技大学 | 一种高能效fpga实现的点云特征提取方法及其应用 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109522906A (zh) | 基于fpga的低复杂度快速sift特征提取方法 | |
Li et al. | Nested network with two-stream pyramid for salient object detection in optical remote sensing images | |
Zheng et al. | Hyperspectral image classification using mixed convolutions and covariance pooling | |
Fang et al. | FPGA-based ORB feature extraction for real-time visual SLAM | |
Pauwels et al. | A comparison of FPGA and GPU for real-time phase-based optical flow, stereo, and local image features | |
Ma et al. | Evaluation and acceleration of high-throughput fixed-point object detection on FPGAs | |
Lu et al. | A resource-efficient pipelined architecture for real-time semi-global stereo matching | |
CN103345382A (zh) | 一种cpu+gpu群核超算***及sift特征匹配并行计算方法 | |
Shan et al. | DenseNet-based land cover classification network with deep fusion | |
Sun et al. | A flexible and efficient real-time orb-based full-hd image feature extraction accelerator | |
Hegde et al. | PIG-Net: Inception based deep learning architecture for 3D point cloud segmentation | |
CN104978749A (zh) | 一种基于fpga的sift图像特征提取*** | |
CN109255301A (zh) | 一种基于fpga的红外遥感图像舰船检测虚警剔除方法 | |
Chen et al. | A refined single-stage detector with feature enhancement and alignment for oriented objects | |
Kang et al. | RCS-YOLO: A fast and high-accuracy object detector for brain tumor detection | |
CN108648213A (zh) | 一种kcf跟踪算法在tms320c6657上的实现方法 | |
Poostchi et al. | Efficient GPU implementation of the integral histogram | |
Gao et al. | AMIO-Net: An attention-based multiscale input–output network for building change detection in high-resolution remote sensing images | |
Palaniappan et al. | Parallel flux tensor analysis for efficient moving object detection | |
Wu et al. | A lightweight network for vehicle detection based on embedded system | |
Pei et al. | Fast normalized cross-correlation image matching based on multiscale edge information | |
Fu et al. | HmsU-Net: A hybrid multi-scale U-net based on a CNN and transformer for medical image segmentation | |
Shi et al. | Image feature point matching method based on improved BRISK | |
Yin et al. | A feature points extraction algorithm based on adaptive information entropy | |
Yang et al. | Multi-level contour combination features for shape recognition |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190326 |
|
RJ01 | Rejection of invention patent application after publication |