CN106504182B - 一种基于fpga的直线特征提取*** - Google Patents
一种基于fpga的直线特征提取*** Download PDFInfo
- Publication number
- CN106504182B CN106504182B CN201610944260.3A CN201610944260A CN106504182B CN 106504182 B CN106504182 B CN 106504182B CN 201610944260 A CN201610944260 A CN 201610944260A CN 106504182 B CN106504182 B CN 106504182B
- Authority
- CN
- China
- Prior art keywords
- value
- gradient
- pixel
- straight line
- module
- 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
Classifications
-
- 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
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于FPGA的直线特征提取***,包括高斯滤波单元、梯度模值和水平角计算单元、梯度伪排序单元、区域增长单元和矩形近似单元。本发明的有益效果是:本发明的硬件***不仅保证了好的提取效果,而且具有稳定性好、准确性高、时间消耗少和内存使用少的优势,本发明采用并行流水线结构,直线特征提取速度能够满足嵌入式视觉测量***要求。
Description
技术领域
本发明涉及测量技术领域,特别涉及一种基于FPGA的直线特征提取***。
背景技术
由于大多数目标物体中都包含有平面特征,因此直线可以作为最重要的特征,用于描述目标物体形状,此外视觉测量中,直线拟合也是视觉***采用的重要特征,因为直线是图像中的重要的几何特征之一。直线检测已经被广泛应用到图像识别及计算视觉领域,比如立体视觉、图像分析、智能机器人、智能交通和模式识别。现有的直线检测算法,如霍夫变换检测速度慢且误检率较高。还有其它的直线检测,如一些基于梯度方向的方法的最后一步都需要一个选择标准,但是与这些方法相关的误检率控制措施效果不是很好。2010年,Rafael Grompone Von Gioi等人在文章“LSD:一种带误差控制的快速直线检测器”(LSD:AFast Line Segment Detector with a False Detection Control),IEEE模式分析及机器智能,第32卷,第四期,722-732页,2010年(IEEE Transactions on Pattern Analysis andMachine Intelligence,Vol,32,No.4,pp.722-732,2010)提出了一种直线检测器,简称为LSD。利用LSD,可以快速的检测图像中的直线段,然后根据目标的几何特征设计快速算法,以快速确定疑似目标区域。LSD能在线性时间(linear-time)内得到亚像素级准确度的直线段检测算法。LSD算法被开源软件OPENCV以软件方式实现,但难以直接应用到嵌入式图像及视觉***中。本发明中的直线检测是基于LSD算法的硬件实现,目前在硬件上还没有被实现过。
发明内容
本发明所要解决的技术问题是:提供一种检测准确、误检率低且检测速度快的基于FPGA的直线特征提取的硬件***,以满足嵌入式图像识别和视觉测量***应用中能够对图像中直线进行快速准确检测的需求。
本发明的技术解决方案是:一种基于FPGA的直线特征提取的硬件***,直线特征硬件提取***由高斯滤波单元、梯度模值和水平角计算单元、梯度伪排序单元、区域增长单元和矩形近似单元组成;高斯滤波单元用于去除待测图像噪声;梯度模值和水平角计算单元用于计算图像像素的梯度模值和水平角并存储;梯度伪排序单元的主要功能为:根据梯度模值大小将像素划分到若干个直方块模板并存储;区域增长单元用于获取同一直方块模板中具有相同水平角的像素并存储,以及计算区域角;矩形近似单元用于计算直线起点坐标、终点坐标和直线宽度。
所述梯度模值和水平角计算单元,采用2×2滑动窗口模块对去噪后的待测图像进行扫描。
所述水平角计算模块输出水平角的角度值进行量化得到方向值,并将角度值和方向值均存储在所述水平角存储器中。
所述梯度伪排序单元包括84个直方块模板和选择器;所述直方块模板是指将分布在4-255范围内的梯度模值,按照由小到大、每连续的3个数值范围作为一个集合分割而成84个存储容器;所述选择器,用于根据像素的梯度模值大小将像素地址存储到对应的直方块模板,每个所述直方块模板最终存储满足条件的第一个像素对应的地址和最后一个像素对应的地址。
所述区域增长单元采用滑动窗口模块对整个图像进行扫描,所述区域增长单元包括区域像素获取模块、区域像素正弦值和余弦值计算模块和区域角计算模块;所述区域像素获取模块,用于将每个所述直方块模板中存储的第一个像素作为第一个中心点,将第二像素为最后一个中心点,将中心点与其八个邻域点的方向值比较,找出方向值相同的邻域点像素进行缓存,并将存储的邻域点作为中心点找出方向值相同的邻域点进行缓存,最终存储像素数目大于15个的像素。
所述矩形近似单元包括中心点坐标计算单元和直线参数计算单元;所述中心点坐标计算单元包括像素坐标获取模块、移动位数计算模块和中心点坐标计算模块;所述像素坐标获取模块,包括用于获取区域存储器中像素的坐标值的区域存储器地址产生器;所述移动位数计算模块,根据像素坐标值获取梯度模值,再根据查找表得到与梯度模值对应的权值和代表左移位数的整数,将权值按照左移位数经过左移运算后存储在左移位数存储器中,同时将权值经过累加器累加再进行右移运算后,与左移位数存储器中的数据输入到减法器,减法器输出结果即为移动位数;所述中心点坐标计算模块,根据所述的移动位数将区域存储器中的像素坐标值右移运算后累加得到区域中心点坐标。
所述直线参数计算单元包括:像素坐标获取模块、矩形长度和宽度求取模块、直线起点终点计算模块和直线宽度求取模块;所述像素坐标获取模块,包括用于获取区域存储器中像素的坐标值的区域存储器地址产生器;所述矩形长度和宽度求取模块:包括矩形长度求取子模块和矩形宽度求取子模块,分别用于计算矩形的长度和宽度;所述直线起点终点计算模块:以长度最小值、长度最大值、区域角余弦值以及中心坐标值cx、cy作为输入,计算得出直线起点坐标和终点坐标;将起点坐标(x1,y1)、终点坐标(x2,y2)和宽度值传给上位机即可。
所述高斯滤波单元:采用(n+1)×(n+1)的高斯卷积模板对待测图像进行高斯滤波降低噪音得到滤波后图像的装置;其中,n为大于等于1的正整数;
所述高斯滤波单元具体包括:用于行缓存的FIFO存储器组、列对称加法器组、列卷积系数寄存器组、列卷积模块、串行寄存器组、行对称加法器组、行卷积系数寄存器组和行卷积模块;其中,FIFO存储器组由n个FIFIO存储器组成,列对称加法器组和行对称加法器组均由(n+1)/2个加法器组成,列卷积模块和行卷积模块均由(n+1)/2个乘法器和加法器组成;串行寄存器组由(n+1)个寄存器组成;
列对称加法器组的每个加法器均有两个输入端和一个输出端,第一个所述加法器的一个输入端直接输入当前行数据,另一个输入端与第n个FIFO存储器的输出端连接,第二个加法器的一个输入端与FIFO存储器组中的第一个FIFO存储器的输出端连接,另一个输入端与第(n-1)个FIFO存储器的输出端连接,以此类推;
列卷积模块中的乘法器均有两个输入端和一个输出端,第一个所述乘法器的一个输入端与所述列对称加法器中的第一个加法器的输出端连接,另一个输入端与列卷积系数寄存器组的第一个存储器连接,以此类推;然后(n+1)/2个所述乘法器的输出端再与加法器的输入端连接;列卷积模块最终得到一列卷积;
列卷积模块的输出端与串行寄存器组的输入端连接,将经过所述列卷积模块处理后得到的输出结果由串行寄存器组进行串并转换,所述行对称加法器组的每个加法器均有两个输入端和一个输出端,第一个所述加法器的一个输入端与串行寄存器组中的第一个寄存器的输出端连接,另一个输入端与第(n+1)个寄存器的输出端连接,第二个加法器的一个输入端与串行寄存器组中的第二个寄存器的输出端连接,另一个输入端与第n个寄存器的输出端连接,以此类推;
行卷积模块中的乘法器均有两个输入端和一个输出端,第一个所述乘法器的一个输入端与所述行对称加法器组中的第一个加法器的输出端连接,另一个输入端与行卷积系数寄存器组的第一个寄存器连接,以此类推;然后所述乘法器的输出端再与加法器的输入端连接,加法器输出最后的卷积结果。
本发明的有益效果是:本发明的硬件***不仅保证了好的提取效果,而且具有稳定性好、准确性高、时间消耗少和内存使用少的优势,本发明采用并行流水线结构,直线特征提取速度能够满足双目测距***要求。
附图说明
图1为本发明实施例的整体硬件结构框图。
图2为本发明实施例中高斯滤波单元的结构示意图。
图3为本发明实施例中梯度模值和水平角计算单元的结构示意图。
图4为本发明实施例中梯度伪排序单元的结构示意图。
图5为本发明实施例中梯度模值和水平角计算单元水平角量化的示意图。
图6为本发明实施例中区域增长单元的流程图。
图7为本发明实施例中区域增长单元的结构示意图。
图8为本发明实施例中中心点坐标计算单元的结构示意图。
图9为本发明实施例中直线参数计算单元的操作架构示意图。
图10为本发明实施例中直线参数计单元中矩形长度和宽度求取模块的结构示意图;
图11为本发明实施例中直线参数计单元中直线起点终点计算模块和直线宽度求取模块的结构示意图。
图12为本发明对比实验中,对几何物体图像“办公室”的实验结果。
图13为本发明对比实验中,对几何物体图像“汽车”的实验结果。
图14为本发明对比实验中,对几何物体图像“椅子”的实验结果。
图15为本发明对比实验中,对几何物体图像“房子”的实验结果。
图16为本发明对比实验中,对非几何物体图像“马”的实验结果。
图17为本发明对比实验中,对非几何物体图像“人物”的实验结果。
图18为本发明对比实验中,对曲线边缘物体图像“圆环”的实验结果。
图19为本发明对比实验中,对曲线边缘物体图像“车轮”的实验结果。
图20为本发明对比实验中,对手绘直线图像的实验结果。
图21为本发明对比实验中,对手绘直线图像的直线检测误差分析图。
图22为本发明对比试验中,对有噪声图像“桌子”的实验结果。
图23为本发明对比试验中,对有噪声图像“椅子”的实验结果。
图24为本发明对比试验中,对有噪声图像“黑白”的实验结果。
其中,图12-图19均分别包括a、b、c三幅图,a系列图均为待测图像或原图像,b系列图均为基于LSD算法软件***的检测图像,c系列图均为本发明***的检测图像;图20包括九幅图,其中最后一幅图是前面八幅图中直线的总体展示图;图22、图23和图24均包括六幅图,第一行的三幅图均为有噪声的原图(待检图像),第二行的三幅图均为经过高斯降采样后的图像(待检图像),第一列图像为输入图像(待检图像),第二列图像为基于LSD算法软件***的检测图像结果,第三列图像均为本发明***的检测图像结果。
具体实施方式
本发明根据实际应用,以双目视觉测量***为例进行具体实施方案的说明。双目视觉觉测量***主要包括3个模块:图像采集模块、FPGA处理模块、上位机模块,关键硬件组件包括两个图像传感器、带有PCIe接口的FPGA和外部存储器、连接图像传感器和FPGA的接口转换板和上位机。将所有硬件组件连接到一个单独的PCB板上,PCIe作为连接FPGA与上位机的总线选择,通过Spartan-6 LXT设备的PCIe终端实现。PCIe提供了一个高带宽和低延迟的连接,在FPGA和上位机端都保证了低开销。在FPGA端,PCIe控制器是一个IP硬核,它消耗很少的逻辑资源,仅在连接控制器的流接口和片上DMA总线上需要消耗一些逻辑资源。双目视觉测量***的整体硬件平台,即FPGA和上位机相结合的方式。将整体的功能实现大体分为图像采集、图像直线特征提取、图像对直线匹配和后处理。其中图像直线特征提取在FPGA上实现,然后再用局部匹配的方法进行直线匹配,后处理操作将在上位机上实现。本发明重点在于提供一种直线特征提取的硬件***,对直线匹配和后处理均采用现有技术,在本发明中不再做详细描述。其中直线特征提取是双目视觉中重要和基础的一步,它的硬件实现直接影响到整个双目测距功能的整体效果。
直线检测是嵌入式视觉应用程序中很重要的一步。直线检测已经被广泛应用到工业领域,比如图像分析、智能机器人、智能交通和模式识别。包括直线提取在内的图像特征提取是立体视觉中最基本和最重要的一步。本发明是基于FPGA的直线特征提取的硬件***,来实现对图像的直线特征提取。该***主要包括五个部分,分别是梯度求取和水平角计算单元、梯度伪排序单元、区域增长单元和直线参数计算单元,从而得到最终的直线参数,包括起点、终点和直线像素宽度。进一步地,该***还可以包括高斯滤波单元,图像首先用高斯核进行滤波来消除噪声影响后在进行后续计算。本发明中仅对图像采取图像高斯滤波,不进行降采样处理。
以下采用实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。
参见图1,本发明实施例提供了一种FPGA的直线特征提取的硬件***,包括高斯滤波单元、梯度模值和水平角计算单元、梯度伪排序单元、区域增长单元和矩形近似单元;
在本实施例中选用MT9V032图像传感器采集图像,并在嵌入式时钟和纵向、横向代码的共同作用下以320Mbps的速度连续输出视频流,并通过视频流获取VGA图像(待测图像)作为本***的输入;
(1)高斯滤波单元:用于去除待测图像噪音的装置;
(2)梯度模值和水平角计算单元:用于计算图像像素的梯度模值和水平角并存储的装置;梯度模值和水平角是一个直线段的两个重要的基本元素。水平角代表了边缘的方向。在本发明的硬件实现中,对每一个像素的梯度模值和水平角的计算方法采取了合理的计算方法,以适应硬件的结构特点;
(3)梯度伪排序单元:根据梯度模值大小将像素划分成若干个直方块并存储的装置;
(4)区域增长单元:用于获取同一直方块中具有相同水平角的像素并存储,以及计算区域角的装置;
(5)矩形近似单元:用于计算直线起点坐标、终点坐标和直线宽度的装置。
具体如下:
(1)本发明实施例高斯滤波单元采用5×5的高斯卷积模板对待测图像进行高斯滤波降低噪音得到滤波后图像的装置;
所述高斯滤波单元具体包括:用于行缓存的FIFO存储器组、列对称加法器组、列卷积系数寄存器组、列卷积模块、串行寄存器组、行对称加法器组、行卷积系数寄存器组和行卷积模块;其中,FIFO存储器组由4个FIFIO存储器组成,列对称加法器组和行对称加法器组均由3个加法器组成,列卷积模块和行卷积模块均由3个乘法器和加法器组成;串行寄存器组由5个寄存器组成;
列对称加法器组的每个加法器均有两个输入端和一个输出端,第一个所述加法器的一个输入端直接输入当前行数据,另一个输入端与第四个FIFO存储器的输出端连接,第二个加法器的一个输入端与FIFO存储器组中的第一个FIFO存储器的输出端连接,另一个输入端与第三个FIFO存储器的输出端连接,第三个加法器的一个输入端与FIFO存储器组中的第二个FIFO存储器的输出端连接,另一个输入端直接输入0值;
列卷积模块中的乘法器均有两个输入端和一个输出端,第一个所述乘法器的一个输入端与所述列对称加法器中的第一个加法器的输出端连接,另一个输入端与列卷积系数寄存器组的第一个存储器连接,以此类推;然后三个所述乘法器的输出端再与加法器的输入端连接;列卷积模块最终得到一列卷积;
列卷积模块的输出端与串行寄存器组的输入端连接,将经过所述列卷积模块处理后得到的输出结果由串行寄存器组进行串并转换,所述行对称加法器组的每个加法器均有两个输入端和一个输出端,第一个所述加法器的一个输入端与串行寄存器组中的第一个寄存器的输出端连接,另一个输入端与第五个寄存器的输出端连接,第二个加法器的一个输入端与串行寄存器组中的第二个寄存器的输出端连接,另一个输入端与第四个寄存器的输出端连接,第三个加法器的一个输入端与第三个寄存器的输出端连接,另一个输入端直接输入0值;
行卷积模块中的乘法器均有两个输入端和一个输出端,第一个所述乘法器的一个输入端与所述行对称加法器组中的第一个加法器的输出端连接,另一个输入端与行卷积系数寄存器组的第一个寄存器连接,以此类推;然后所述乘法器的输出端再与加法器的输入端连接,加法器输出最后的卷积结果。
上述高斯滤波单元原理具体为:在图像处理中高斯滤波经常被用来降低噪声影响。高斯核函数是可分离的,时域内二维高斯卷积函数如等式(14)所示,
它的离散化等式如等式(15)所示,
为了保持图像亮度,高斯核的系数按照等式(16)进行归一化,
本发明为了尽可能多地减少乘法器的使用,将二维高斯函数分离成两个一维的高斯函数,所以一个二维的高斯卷积模板可以分成两个一维的模板从而简化模板(如图2所示),模板中元素值是理论值的256倍,因为FPGA不擅长处理浮点数,所以每一个像素由16位表示,其中低8位代表小数部分,高8位代表整数部分。一维高斯核的系数通过等式(17)求取,
本发明定义σ值为1,求取的系数如表3所示。
表3一维模板系数对照表
位置 | C(-2) | C(-1) | C(0) | C(1) | C(2) |
系数 | 14 | 63 | 104 | 63 | 14 |
注:C是指系数值。
高斯滤波后,像素的高8位被传到后续单元来完成后面的操作,从选择的高斯卷积模板中可以看到元素是关于第三行和第三列轴对称的,所以将5×5的模板分成两个一维模板后,又用加法器代替乘法器,因此乘法器的数量从原先的25个降到6个。
具体硬件实现过程:首先,利用5×5的滑动窗口模块从左到右,从上到下完成对整个图像的扫描。一窗口的像素通过运算产生一个最终的结果就如图2中的卷积结果。滑动窗口实现由很多方式如移位寄存器,可是这种方法会浪费很多晶体管,因为移位寄存器是通过触发器来实现的,再如用SRAM来实现滑动窗口,但是这种结构实现起来很复杂。本发明采用四个FIFO存储器来实现窗口操作。通过设置FIFO存储器IP核的参数我们控制每一个FIFO存储器的容量,并且在程序中设置读写管脚的触发信号,然后图像数据一旦以数据流的方式传入FIFO存储器,这四个FIFO存储器将会存储四行的图像数据,一个FIFO存储器存储一行,当第五行的图像数据传进来的时候,所有FIFO存储器的读信号同时有效,然后每个周期输出5个像素,作为3个对称加法器的输入,并将会产生3个输出,然后与预先设置好的权值相乘,最后通过一个树形加法器相加。通过上述操作将会产生一个列卷积,然后这个结果存储在串行移位寄存器组中。存储着列卷积的5个移位寄存器进行类似的操作来得到最后的卷积结果,也是我们需要的最终卷及结果。对一幅图像来说,前两行和最后两行图像数据保持原值不被处理。
其中,高斯滤波单元采用一个并行流水线结构来将二维高斯卷积变成两个一维卷积,这样的架构不仅提高了整体的并行性而且还减少了乘法器的使用,这两点在硬件实现中都是很重要的。
(2)梯度模值和水平角计算单元(参见图3-图5):采用2×2滑动窗口模块对整个图像进行扫描来求取梯度模值,包括FIFO存储器、梯度计算模块、两个移位寄存器、水平角计算模块、加法器、梯度存储器和水平角存储器;
图像数据流经FIFO存储器缓存,实现两行数据同时输入到所述梯度计算模块中,所述梯度计算模块将计算出的x方向梯度值和y方向梯度值分别经过所述移位寄存器得到x方向梯度真值和y方向梯度真值,两个所述移位寄存器的输出端与所述加法器连接,所述加法器输出即为梯度模值并存储在梯度存储器中;
梯度计算模块的梯度模值计算公式如下:
G(x,y)=|gx(x,y)|+|gy(x,y)| (1)
水平角计算模块包括两个输入端和一个输出端,两个移位寄存器的输出端与所述水平角计算模块的输入端连接,所述水平角计算模块的输出端与所述水平角存储器连接;水平角计算模块利用x方向梯度值和y方向梯度值计算得出水平角;
水平角计算模块的水平角计算公式如下:
其中,公式(1)和公式(2)中,
i(x,y)指像素(x,y)的灰度值。
由图3能够看出,梯度计算模块计算得到的梯度值是梯度真值的2倍,所以在梯度计算模块计算出x方向梯度值和y方向梯度值后,需要右移两位才能得到x方向梯度真值和y方向梯度真值,并按照等式(1)计算出梯度模值。
在发明中水平角的计算采用CORDIC算法来解决,原理通过和等式(2)来诠释。(x1,y1)和(x2,y2)的关系如等式(3)所示,为了计算方便,对坐标(x1,y1)进行伪旋转得到坐标与坐标(x2,y2)相比,坐标具有相同的角度,只是梯度模值较大,伪旋转后坐标与坐标(x1,y1)关系如等式(4)所示。基于伪旋转,在等式(5)中,z(i+1)是经过第i次旋转后的角度,对于arctan(y/x)的求取,工作流如下,首先是预处理,然后取一组初值,z0=0,x0=x',y0=y',当y值接近0或迭代13次后对应的z值就是所求的结果。在等式(5)中,di取值±1,符号与yi相同。旋转角度满足等式(6)的约束条件。所述的预处理是指根据坐标系内四个象限中的角度关系,将[-π,π]范围内的角转换到角内,最后再根据相关标志将角度转换过来。
tanθi=2-i(i=0,1,2…) (6)
从表1中可以看出,角度并不是FPGA擅长处理的整数,为了解决这个问题,需将所有的角度扩大256倍,即用低8位来表示一个角的小数部分。
表1每次旋转的角度
i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
θ | 45° | 26.57° | 14.04° | 7.13° | 3.58° | 1.79° | 0.90° | 0.45° | 0.22° | 0.11° | 0.06° | 0.03° | 0.01° |
将水平角计算模块输出的水平角的角度值进行量化得到方向值,角度值和方向值同样重要,用于判断像素是否共直线。因此,参见图5本发明中将介于(-180°,180°]的角度划分成8个方向,每45度被定义为一个方向,用3位二进制数表示,即“000”表示方向0,“111”表示方向7。所以存在水平角存储器里的值不仅有角度值还有方向值。每个水平角存储单元是20位,低3位表示像素水平角的方向值,高17位每个水平角的角度值。
(3)梯度伪排序单元包括:选择器和84个直方块模板;84个直方块模板是指将分布在4-255范围内的梯度模值,按照由小到大、每3个数值范围作为一个集合分割而成的84个存储容器,即由小到大排列共有84个直方块模板,每个直方块模板仅用于存储属于所述3个数值范围内的像素;比如第1直方块模板1用于接收梯度模值从4到6的像素,第74直方块模板用于接收梯度模值从223到225的像素。
每个直方块模板包括一个计数器和两个寄存器,两个寄存器分别为第一寄存器和第二寄存器;梯度存储器的输出端与一数据缓存器的输入端连接,数据缓存器通过选择器与84个直方块模板连接,选择器将梯度模值根据梯度模值大小进行分类,并将梯度模值所对应的地址输入到对应的直方块模板内;所述直方块模板接收到数据后,计数器加1,并将第一个梯度模值对应的地址输入到所述直方块模板的第一寄存器中,并将第二个梯度模值对应的地址输入到所述直方块模板的第二寄存器中,当第三个梯度模值对应的地址输入到所述第二寄存器中并覆盖第二个梯度模值对应的地址,当第m+1个梯度模值对应的地址输入到所述第二寄存器中并覆盖第m个梯度模值对应的地址,以此类推,因此选择器实际相当于一个查找表,即第一寄存器保存第一个梯度模值所对应的地址,第二寄存器仅保留最后一个梯度模值所对应的地址。因此,并不是所有的像素都一个个被分别存到相应的直方块模板中,只有第一个和最后一个满足条件的像素的地址被保存,同时计数器记录满足各自直方图条件的总像素数。
由于梯度模值和水平角计算单元与梯度伪排序单元并行运行,因此梯度模值计算完成后,梯度伪排序也相继完成,此时,直方块模板的计数器中记录着总像素个数,两个寄存器里分别记录着第一个梯度模值对应的地址和最后一个梯度模值对应的地址。
梯度伪排序实际上是对像素基于梯度幅值的分类。图3可以看出,只有完成滤波的像素才会被计算梯度,并不是指完成了整个图像的滤波梯度模值和水平角计算单元才开始。高斯滤波单元和梯度模值和水平角计算单元并行运行,考虑到不同的计算延迟,梯度模值和水平角计算单元比高斯滤波单元延迟几行的时钟周期以确保梯度模值和水平角计算单元的输入是经过滤波后的像素。基于固定的延迟,这两个单元可以共用同一个计数器来与像素地址相对应。
(4)区域增长单元(参见图5和图7),采用3×3的滑动窗口模块对整个图像进行扫描,所述区域增长单元包括区域像素获取模块、区域像素正弦值和余弦值计算模块和区域角计算模块。介于每个直方块模板两个寄存器所记录的地址之间的像素的水平角都要与其相邻的8个邻域像素的水平角做比较,满足预定条件的像素被包含进一个特定的区域,并且同时它们作为新的中心点来与它们各自的8邻域像素做比较,所有的直方图同时进行这个操作。
a、区域像素获取模块,包括滑动窗口地址产生器、水平角存储器地址产生器、子区域1寄存器、子区域2寄存器、选择器和区域存储器;
将所述直方块模板中第一寄存器中存储的地址对应的像素作为第一个中心点,第二寄存器中存储的地址对应的像素为最后一个中心点,所述水平角存储器地址产生器将依次获取第一个中心点和最后一个中心点之间所有像素对应的地址;
根据每一个中心点对应的地址,获取水平角存储器中中心点的方向值和中心点相邻的八个邻域点的方向值,然后将八个邻域点的方向值分别与中心点的方向值逻辑“与”,将结果为“1”的邻域点存储在子区域1寄存器中,同时将水平角存储器的数据左移一位并且加1,将结果为“0”的邻域点左移一位并加0后存储在水平角存储器中;然后将存储在子区域1寄存器中的邻域点再次作为中心点,与其相邻的八个邻域点的方向值进行逻辑“与”,并将结果为“1”的邻域像素地址存储在子区域2寄存器中,将结果为“0”的邻域点左移一位并加0后存储在水平角存储器中;最后将最终存储在子区域1寄存器和子区域2寄存器中的数据存储在区域存储器中,若区域存储器中的像素数目少于15个,则区域存储器将会被释放,若区域存储器中的像素数目大于或等于15个,则将数据输入到区域像素正弦值和余弦值计算模块;其中,子区域1寄存器、子区域2寄存器和区域存储器构成一个乒乓操作,从而节省了缓存区空间和提高了数据处理效率。
b、区域像素正弦值和余弦值计算模块,用于计算出每个像素的正弦值和余弦值,并求取像素正弦累加值和余弦累加值;在本发明中正旋值和余弦值的计算仍然采用CORDIC算法来解决,在上述水平角的计算中已进行阐述,具体原理和实现方法在此不再赘述;
c、区域角计算模块,根据正弦累加值和余弦累加值计算出区域角;
其中,区域角的计算公式为:
其中,level-line-anglej为像素j的水平角。
(5)矩形近似单元包括中心点坐标计算单元和直线参数计算单元;直线对应一个矩形,所以在求取直线参数之前,应首先确定对应所生成的区域的矩形,一个矩形的三个主要元素是矩形中心(cx,cy)和矩形的方向角;
a、中心点坐标计算单元(参见图8)包括像素坐标获取模块、移动位数计算模块和中心点坐标计算模块;
像素坐标获取模块,包括用于获取区域存储器中像素的坐标值的区域存储器地址产生器;
移动位数计算模块,根据像素坐标值获取梯度模值,再根据查找表得到与梯度模值对应的权值和代表左移位数的整数,将权值按照左移位数经过左移运算后存储在左移位数存储器中,同时将权值经过累加器累加再进行右移运算后,与左移位数存储器中的数据输入到减法器,减法器输出结果即为移动位数;
中心点坐标计算模块,根据所述的移动位数将区域存储器中的像素坐标值右移运算后累加得到区域中心点坐标。
参见图8所示,利用移位寄存器来计算中心点坐标,矩形中心点坐标计算公式如等式(8)和等式(9)。
bits=[integerdenominatoe-integernumerator] (8)
具体实现过程为:首先通过像素坐标获取模块获取它的坐标(x,y),然后根据它的地址在在梯度存储器中取出梯度模值;如表2所示,每一个梯度模值对应一个权值和一个整数,这个整数代表左移的位数。对区域存储器中的每一个像素,它所对应的整数被存在“左移位数RAM”中,它所对应的权值被存储在一个寄存器中,这个寄存器存储着“区域RAM”中所有像素的累加权值。一旦整个RAM块都完成了左移位运算,寄存器中就记录了像素的权值和。然后根据表2将这个权值和转换成一个整数,用来代表需要右移的位数,因为它在分母的位置上。存储在“左移位数RAM”中的值都是从0到8的整数代表着左移的位数,因为它们在分子的位置上。矩形中心点的x坐标是所有像素的x坐标右移后的累加和,矩形中心点的y坐标是所有像素的y坐标右移后的累加和。由于所述位数(包括左移位数和右移位数)的最大值是8,所以对每一个坐标(x,y),首先被扩展为16位,低8位代表小数部分。累加操作结束后,只有高8位被用作中心点的像素的坐标。
表2梯度与权值之间的查找表
梯度模值 | 权值 | 位数 |
<2 | 1 | 0 |
<4 | 2 | 1 |
<8 | 4 | 2 |
<16 | 8 | 3 |
<32 | 16 | 4 |
<64 | 32 | 5 |
<128 | 64 | 6 |
<255 | 128 | 7 |
=255 | 256 | 8 |
b、直线参数计算单元包括:像素坐标获取模块、矩形长度和宽度求取模块、直线起点终点计算模块和直线宽度求取模块;
b1、像素坐标获取模块,包括用于获取区域存储器中像素的坐标值的区域存储器地址产生器;
b2、矩形长度和宽度求取模块(参见图10):包括矩形长度求取子模块和矩形宽度求取子模块,分别用于计算矩形的长度和宽度;为了得到最后的直线参数,因此引入中间参数dx、dy、l、w,其中l为矩形长度,w为矩形宽度,中间参数是通过下面的等式来求取;
dx=cosθ (10)
dy=sinθ (11)
l=(x-cx)×dx+(x-cy)×dy (12)
w=(y-cy)×dx-(x-cx)×dy (13)
具体为:参见图10,矩形长度求取子模块包括两个减法器、两个乘法器和两个比较器,坐标值x和中心坐标值cx作为第一减法器的输入,坐标值y和中心坐标值cy作为第二减法器的输入,第一减法器的输出和区域角余弦值作为第一乘法器的输入,第二减法器的输出和区域角正弦值作为第二乘法器的输入,第一乘法器的输出和第二乘法器的输出作为加法器的输入,加法器的输出作为两个比较器的输入,第一比较器得到长度最小值lmin,第二比较器得到长度最大值lmax;
b3、矩形宽度求取子模块(参见图11)包括三个减法器、两个乘法器和两个比较器,坐标值x和中心坐标值cx作为第一减法器的输入,坐标值y和中心坐标值cy作为第二减法器的输入,第一减法器的输出和区域角正弦值作为第一乘法器的输入,第二减法器的输出和区域角余弦值作为第二乘法器的输入,第一乘法器的输出和第二乘法器的输出作为第三减法器的输入,第三减法器的输出作为两个比较器的输入,第一比较器得到宽度最小值wmin,第二比较器得到宽度最大值wmax,将宽度最小值wmin和宽度最大值wmax输入到一减法器即得直线宽度值;
b4、直线起点终点计算模块(参见图11):包括四个乘法器、四个加法器和一个减法器;长度最小值和区域角余弦值作为第一乘法器的输入,第一乘法器的输出和中心坐标值cx作为第一加法器的输入,第一加法器输出即得起点坐标值x1;长度最大值和区域角余弦值作为第二乘法器的输入,第二乘法器的输出和中心坐标值cx所谓第二加法器的输入,第二加法器的输出即为终点坐标值x2;长度最小值和区域角正弦值作为第三乘法器的输入,第三乘法器的输出和中心坐标值cy作为第三加法器的输入,第三加法器的输出即为起点坐标值y1,长度最大值和区域角正弦值作为第四乘法器的输入,第四乘法器的输出和中心坐标值cy作为第四加法器的输入,第四加法器的输出即为终点坐标值y2;
由于直线宽度值比直线起点终点坐标提前计算出一个时钟周期,为了保证5个参数输出的同步性,直线宽度值先被暂时缓存到一个寄存器中;将起点坐标(x1,y1)、终点坐标(x2,y2)和宽度值传给上位机即可。
实施例
本发明选择多种类型的图像对本***进行测试和评估,同时选择基于LSD算法的软件***对相同的待测图像进行直线特征提取,并对提取结果进行对比,并从***的稳定性、硬件资源消耗情况和时间消耗三个方面对测试结果进行评估。其中,本发明***最终得到的直线参数,通过CY7C68013的USB控制器(有16个数据线)传到PC机并将检测到的直线显示在于输入图像大小相等的空白图像上。
图像选择:采用多种类型的有噪声图像和无噪声图像来验证本发明***的有效性和稳定性,其中无噪声图像包括自然图像和手绘的直线图像(如图20-图22),自然图像包括几何物体图像(如图12-图15),非几何物体图像(如图16-图17),以及具有曲线边缘物体图像(如图18-图19)。其中,图12-图19均分别包括a、b、c三幅图,a系列图均为待测图像或原图像,b系列图均为基于LSD算法软件***的检测图像,c系列图均为本发明***的检测图像。
(一)无噪声自然图像测试结果
1、几何图像的检测结果如图12-图15所示,能够看出本发明的硬件***提取的图像直线特征很好的勾画出了物体的轮廓,与现有的软件***检测效果基本一致,除了一些极短的、被视为无意义的直线片段被忽略,几乎所有直线段均被检测出来,而且没有误检测。在双目直线匹配中,与漏检率相比,我们更关心误检率,因为只要在左右图像中能检测出若干条典型的直线,接下来的工作就可继续进,但是过大的误检率会使接下来的匹配非常麻烦。
2、非几何图像的检测结果如图16和图17所示,能够看本发明***检测出的许多直线段虽然并不是真的直物体,但却是一个合理的近似,比如图17的c系列图片中两个人的下部和胳膊。对于这种情况,也许它并不严格准确,但是在双目测距***中是一种合理的近似。
3、具有曲线边缘的物体图像检测结果如图18和图19所示,本发明的***可实现一些直线段组合来近似曲线的效果,即从检测结果图像也可以看出,当具有相同方向的且连续的短直线段出现的时候,我们可以将它们的组合视为一个曲线。图18和图19中b系列和c系列的图像基本一致,说明本发明的***能够很好的检测出具有曲线边缘的物体图像的直线。
从上述1-3的对比试验及分析可以看出,本发明基于FPGA的直线特征提取的硬件***能够实现很好的直线检测结果,而且稳定性很好。
(二)无噪声手绘直线图像的测试结果
为了进一步检验我们算法的准确性,我们画了八条代表性直线,它们的方向在我们的日常生活中很常见。手绘的直线信息(包括首尾坐标和直线角度)如表4所示,手绘直线图像从左到右、从上到下依次如图20所示,图20中包括九幅图,其中最后一幅图是所有直线的总体展示图。
表4手绘直线的信息参照表
直线标号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
首点坐标 | (30,128) | (30,185) | (30,226) | (185,30) | (128,30) | (71,30) | (30,30) | (30,71) |
尾点坐标 | (226,128) | (226,71) | (226,30) | (71,226) | (128,226) | (185,226) | (226.226) | (226,185) |
直线角度 | 0° | 30° | 45 | 60 | 90 | 120 | 135 | 150 |
所有待测的手绘直线图像都是256×256,它们通过CY7C68013的USB控制器传给本发明***,本发明***将检测到的直线参数,包括首点坐标、末点坐标以同样的方式传给PC机,然后将检测到的参数与真值比较,为了排除偶然因素的影响,我们对每一种直线图像分别检测10次,检测结果误差分析如图21所示。误差定义的计算公式如等式(18)所示,由于图21所示的误差是x坐标和y坐标的和误差,包括首点坐标和尾点坐标,所以总的误差如等式(19)所示。
由图21可以看出,手绘的直线图的检测误差不大,在三个典型值上分布,即0、0.057和0.151,并且它们分别对应0个像素误差、1个像素误差和2个像素误差。这意味着当直线是水平的和垂直的,本发明可以无误差地完成检测。因为这两种直线是我们日常生活中最常见的,所以本发明为双目测距传感器提供了一个非常有效的直线检测方法。其它角度直线的检测误差也很小,可以被接受,而却10次实验误差基本一样,可以得出结论本发明具有很好的稳定性。
(三)有噪声图像测试结果
上述实验是基于无噪声图像,检测结果具有很好的准确性和稳定性。参照图22-图24,本实验是对有噪声图像的检测试验,其中,图22、图23和图24均包括六幅图,第一行的三幅图均为有噪声的原图(待检图像),第二行的三幅图均为经过高斯降采样后的图像(待检图像),高斯降采样后的图像分辨率为原图像的1/2,第一列图像为输入图像(待检图像),第二列图像为基于LSD算法软件***的检测图像,第三列图像均为本发明***的检测图像。
由图23-图24可以看出,当图像含有噪声时,基于LSD算法软件***和本发明***均无法很好的检测到直线,因为噪声对水平角有很坏的影响,高斯降采样可以解决这个问题。从图24中的第一行图像可以看出,在有噪声的情况下,本发明***的检测结果要好于基于LSD算法软件***的检测结果,它最大限度地得到了直线形状。对于一个双目测距***,图像基本都是从自然界获得,没有那么多的噪声,因此本发明***没有对图像进行高斯降采样的预处理。
(四)硬件资源消耗情况和时间消耗
本发明***通过ISE12.2软件成功综合、放置和布线,在Spantan6 XC6SLX45 FPGA平台上的资源消耗情况和内存使用量,结果如表5和表6所示,主要分4部分分别对应本***的4个不同的模块:(1)高斯滤波FIFO窗口产生器;(2)梯度和水平角缓存(FIFO窗口产生器和像素梯度模值和水平角缓存);(3)根据特定约束条件所形成的区域的缓存;(4)中间参数的缓存。
表5本发明硬件***资源消耗统计表
资源种类 | 使用量 | 提供量 | 利用率 |
片寄存器 | 12216 | 54576 | 22% |
片查找表 | 18427 | 27288 | 67% |
片 | 4012 | 6882 | 58% |
DSP块 | 10 | 58 | 17% |
表6本发明硬件***内存使用量统计表
本发明***采用80MHz的时钟频率,该时钟由Xilinx内部芯片数字时钟控制器产生。并行和流水线结构,对于每一个模块内的数据级并行情况,时间由最长的子模块决定。对于整个***,时间消耗是主要流水线型模块的和。时间消耗与输入图像的大小成正比,并且与图像的直线数目有关。为了更好地比较***消耗时间,本实验选用图12-图17六幅图像作为输入图像,分别使用基于LSD算法的软件***和本发明基于FPGA的硬件***进行对比,结果如如表7所示。
表7时间消耗对照表
项目 | 软件*** | 本发明 |
图像大小 | 256×256 | 256×256 |
频率 | 3.10GHz | 80MHz |
实现平台 | PC | FPGA |
图15总时间消耗/ms | 77.2 | 18.3 |
图16总时间消耗/ms | 88.0 | 19.9 |
图17总时间消耗/ms | 78.1 | 19.1 |
图18总时间消耗/ms | 69.4 | 17.7 |
图19总时间消耗/ms | 149.5 | 28.6 |
图20总时间消耗/ms | 102.5 | 21.1 |
平均时间消耗/ms | 94.1 | 20.8 |
从表7可以看出,与基于LSD算法的软件***,由于本发明的硬件***采用并行结构,明显缩短了直线特征提取的时间。从PC机平台的94.1ms的平均时间到FPGA平台的20.8ms的平均时间,这样的一个平均处理速度可以实现45-55的帧频。除此之外,考虑到Spartan6XC6SLX45硬件资源的限制,比如块RAM的量,因此对若干张分辨率高的高清图片用ModelSim仿真,采用400MHz的频率,本发明的平均处理时间接近23.2ms,这说明其处理速度为每秒43帧,所以在合适的频率和足够的资源下我们的硬件***是能够实现实时要求。
综上,本发明的硬件***不仅保证了直线特征提取具有稳定性好、准确性高、时间消耗少和内存使用少的优势,而且本发明采用并行流水线结构,直线特征提取速度能够满足双目测距***要求。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种基于FPGA的直线特征提取***,其特征在于,包括高斯滤波单元、梯度模值和水平角计算单元、梯度伪排序单元、区域增长单元和矩形近似单元;
所述高斯滤波单元:用于去除待测图像噪声的装置;
所述梯度模值和水平角计算单元:用于计算图像像素的梯度模值和水平角并存储的装置;
梯度伪排序单元:根据梯度模值大小将像素划分到若干个直方块模板并存储的装置;
区域增长单元:用于获取同一直方块模板中具有相同水平角的像素并存储,以及计算区域角的装置;
矩形近似单元:用于计算直线起点坐标、终点坐标和直线宽度的装置;
其中,所述梯度模值和水平角计算单元,采用2×2滑动窗口模块对去噪后的待测图像进行扫描;对水平角计算模块输出水平角的角度值进行量化得到方向值,并将角度值和方向值均存储在水平角存储器中,具体的:
所述梯度模值和水平角计算单元包括FIFO存储器、梯度计算模块、两个移位寄存器、水平角计算模块、加法器、梯度存储器和水平角存储器;图像数据流经FIFO存储器缓存,实现两行数据同时输入到所述梯度计算模块中,所述梯度计算模块将计算出的x方向梯度值和y方向梯度值分别经过所述移位寄存器得到x方向梯度真值和y方向梯度真值,两个所述移位寄存器的输出端与所述加法器连接,所述加法器输出即为梯度模值并存储在梯度存储器中;水平角计算模块包括两个输入端和一个输出端,两个移位寄存器的输出端与所述水平角计算模块的输入端连接,所述水平角计算模块的输出端与所述水平角存储器连接;水平角计算模块利用x方向梯度值和y方向梯度值计算得出水平角。
2.根据权利要求1所述的基于FPGA的直线特征提取***,其特征在于,所述梯度伪排序单元包括:84个直方块模板和选择器;所述直方块模板是指将分布在4-255范围内的梯度模值,按照由小到大、每连续的3个数值范围作为一个集合分割而成84个存储容器;所述选择器,用于根据像素的梯度模值大小将像素地址存储到对应的直方块模板,每个所述直方块模板最终存储满足条件的第一个像素对应的地址和最后一个像素对应的地址。
3.根据权利要求1所述的基于FPGA的直线特征提取***,其特征在于,所述区域增长单元采用滑动窗口模块对整个图像进行扫描,所述区域增长单元包括区域像素获取模块、区域像素正弦值和余弦值计算模块和区域角计算模块;所述区域像素获取模块,用于将每个所述直方块模板中存储的第一个像素作为第一个中心点,将第二像素为最后一个中心点,将中心点与其八个邻域点的方向值比较,找出方向值相同的邻域点像素进行缓存,并将存储的邻域点作为中心点找出方向值相同的邻域点进行缓存,最终存储像素数目大于15个的像素。
4.根据权利要求1-3任一项所述的基于FPGA的直线特征提取***,其特征在于,所述矩形近似单元包括中心点坐标计算单元和直线参数计算单元;所述中心点坐标计算单元包括像素坐标获取模块、移动位数计算模块和中心点坐标计算模块;所述像素坐标获取模块,包括用于获取区域存储器中像素的坐标值的区域存储器地址产生器;所述移动位数计算模块,根据像素坐标值获取梯度模值,再根据查找表得到与梯度模值对应的权值和代表左移位数的整数,将权值按照左移位数经过左移运算后存储在左移位数存储器中,同时将权值经过累加器累加再进行右移运算后,与左移位数存储器中的数据输入到减法器,减法器输出结果即为移动位数;所述中心点坐标计算模块,根据所述的移动位数将区域存储器中的像素坐标值右移运算后累加得到区域中心点坐标。
5.根据权利要求4所述的基于FPGA的直线特征提取***,其特征在于,所述直线参数计算单元包括:像素坐标获取模块、矩形长度和宽度求取模块、直线起点终点计算模块和直线宽度求取模块;所述像素坐标获取模块,包括用于获取区域存储器中像素的坐标值的区域存储器地址产生器;所述矩形长度和宽度求取模块:包括矩形长度求取子模块和矩形宽度求取子模块,分别用于计算矩形的长度和宽度;所述直线起点终点计算模块:以长度最小值、长度最大值、区域角余弦值以及中心坐标值cx、cy作为输入,计算得出直线起点坐标和终点坐标;将起点坐标(x1,y1)、终点坐标(x2,y2)和宽度值传给上位机即可。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610944260.3A CN106504182B (zh) | 2016-11-02 | 2016-11-02 | 一种基于fpga的直线特征提取*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610944260.3A CN106504182B (zh) | 2016-11-02 | 2016-11-02 | 一种基于fpga的直线特征提取*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106504182A CN106504182A (zh) | 2017-03-15 |
CN106504182B true CN106504182B (zh) | 2019-11-08 |
Family
ID=58321123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610944260.3A Active CN106504182B (zh) | 2016-11-02 | 2016-11-02 | 一种基于fpga的直线特征提取*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106504182B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107316038B (zh) * | 2017-05-26 | 2020-04-28 | 中国科学院计算技术研究所 | 一种sar图像舰船目标统计特征提取方法与装置 |
CN108154477B (zh) * | 2017-12-26 | 2021-12-21 | 深圳市兴森快捷电路科技股份有限公司 | 一种基于fpga的图像旋转方法 |
CN109816639B (zh) * | 2019-01-05 | 2021-04-20 | 西安交通大学 | 一种基于lsd算法的实时直线段检测***及方法 |
CN110610451B (zh) * | 2019-08-12 | 2023-04-07 | 深圳云天励飞技术有限公司 | 图像梯度计算装置 |
CN111832718B (zh) * | 2020-06-24 | 2021-08-03 | 上海西井信息科技有限公司 | 芯片架构 |
CN111814972B (zh) * | 2020-07-08 | 2024-02-02 | 上海雪湖科技有限公司 | 一种基于fpga的神经网络卷积运算加速方法 |
CN112180926B (zh) * | 2020-09-28 | 2023-10-03 | 湖南格兰博智能科技有限责任公司 | 一种扫地机器人的直线引导方法、***及扫地机器人 |
CN112702131B (zh) * | 2020-12-18 | 2021-09-24 | 大连理工大学 | 一种脉冲噪声环境下的窄带多径信号超分辨率时延估计的方法 |
CN112633498B (zh) * | 2020-12-22 | 2023-04-07 | 天津大学 | 基于数据流的卷积神经网络权重梯度优化方法 |
CN113221926B (zh) * | 2021-06-23 | 2022-08-02 | 华南师范大学 | 一种基于角点优化的线段提取方法 |
CN117037106B (zh) * | 2023-10-08 | 2024-02-20 | 广州市大湾区虚拟现实研究院 | 一种基于fpga的视频梯形畸变实时校正***和方法 |
CN117094996B (zh) * | 2023-10-18 | 2024-02-23 | 广州市大湾区虚拟现实研究院 | 基于fpga和lsd算法的直线检测***及其控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101625760A (zh) * | 2009-07-28 | 2010-01-13 | 谭洪舟 | 一种证件图像倾斜校正的办法 |
CN103177262A (zh) * | 2013-02-19 | 2013-06-26 | 山东大学 | 基于hog和svm的行人检测***的fpga架构及其实现方法 |
CN104156946A (zh) * | 2014-07-17 | 2014-11-19 | 西北工业大学 | 一种空间绳系机器人抓捕区域内的障碍物检测方法 |
CN104978749A (zh) * | 2014-04-08 | 2015-10-14 | 南京理工大学 | 一种基于fpga的sift图像特征提取*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101192269B (zh) * | 2006-11-29 | 2012-05-02 | 佳能株式会社 | 从图像估计消失点的方法和装置、计算机程序及其存储介质 |
-
2016
- 2016-11-02 CN CN201610944260.3A patent/CN106504182B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101625760A (zh) * | 2009-07-28 | 2010-01-13 | 谭洪舟 | 一种证件图像倾斜校正的办法 |
CN103177262A (zh) * | 2013-02-19 | 2013-06-26 | 山东大学 | 基于hog和svm的行人检测***的fpga架构及其实现方法 |
CN104978749A (zh) * | 2014-04-08 | 2015-10-14 | 南京理工大学 | 一种基于fpga的sift图像特征提取*** |
CN104156946A (zh) * | 2014-07-17 | 2014-11-19 | 西北工业大学 | 一种空间绳系机器人抓捕区域内的障碍物检测方法 |
Non-Patent Citations (2)
Title |
---|
Novel dynamic template matching of visual servoing for tethered space robot;Jia Cai等;《2014 4th IEEE International Conference on Information Science and Technology》;20140428;第389-392页 * |
基于边缘连接的快速直线段检测算法;董晶 等;《光学学报》;20130331;第0315003-1-0315003-8页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106504182A (zh) | 2017-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106504182B (zh) | 一种基于fpga的直线特征提取*** | |
CN108427924B (zh) | 一种基于旋转敏感特征的文本回归检测方法 | |
CN107492091B (zh) | 基于机器视觉的标签外观检测方法及终端设备 | |
CN107301661B (zh) | 基于边缘点特征的高分辨率遥感图像配准方法 | |
CN109409208A (zh) | 一种基于视频的车辆特征提取与匹配方法 | |
CN109859178A (zh) | 一种基于fpga的红外遥感图像实时目标检测方法 | |
CN106023187A (zh) | 一种基于sift特征和角度相对距离的图像配准方法 | |
CN116704516B (zh) | 一种用于水溶肥料包装的视觉检测方法 | |
US8068673B2 (en) | Rapid and high precision centroiding method and system for spots image | |
CN110335219B (zh) | 一种像素畸变的校正方法、校正装置及终端 | |
CN110110640B (zh) | 一种定量计算指纹变形大小的方法 | |
US7529404B2 (en) | Digital video filter and image processing | |
CN114821554A (zh) | 图像识别方法、电子设备及存储介质 | |
EP2321819A1 (en) | Digital video filter and image processing | |
Zhang et al. | Hierarchical and parallel pipelined heterogeneous SoC for embedded vision processing | |
CN110663046B (zh) | 用于方向梯度直方图计算的硬件加速器 | |
CN114001674B (zh) | 一种自由视角下的线束弯曲半径机器视觉测量方法 | |
CN114821075A (zh) | 空间目标捕获方法、装置、终端设备及存储介质 | |
CN113608207A (zh) | 一种高炉料面形状测量方法、终端设备及存储介质 | |
Peng et al. | Deep learning-based autonomous real-time digital meter reading recognition method for natural scenes | |
CN113674360A (zh) | 一种基于协变的线结构光光平面标定方法 | |
CN106557772A (zh) | 用于提取局部特征子的方法、装置及图像处理方法 | |
Chen et al. | Design and Development of an Identification System for Gauge Meter Value | |
Albanesi et al. | Benchmarking Hough transform architectures for real-time | |
Qi et al. | Fastener counting method with an improved Blendmask |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |