CN109559305A - 一种基于soc-fpga的线结构光图像快速处理系统 - Google Patents
一种基于soc-fpga的线结构光图像快速处理系统 Download PDFInfo
- Publication number
- CN109559305A CN109559305A CN201811414940.XA CN201811414940A CN109559305A CN 109559305 A CN109559305 A CN 109559305A CN 201811414940 A CN201811414940 A CN 201811414940A CN 109559305 A CN109559305 A CN 109559305A
- Authority
- CN
- China
- Prior art keywords
- laser
- image
- convolution
- data
- fpga
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 133
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000004364 calculation method Methods 0.000 claims abstract description 17
- 230000003287 optical effect Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 15
- 239000011159 matrix material Substances 0.000 claims description 13
- 238000001914 filtration Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 4
- 238000000605 extraction Methods 0.000 abstract description 7
- 238000003672 processing method Methods 0.000 abstract 1
- 230000008901 benefit Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000005611 electricity Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种基于SOC‑FPGA的线结构光图像快速处理系统,包括线激光发射单元、图像数据采集单元和处理单元;处理单元包括SOC处理单元和FPGA处理单元;FPGA处理单元通过总线与SOC处理单元相互通讯,FPGA处理单元将接收到的图像利用图像处理算法IP核进行图像处理,得到激光条的中心亚像素坐标,再由得到的激光条的中心亚像素坐标得到被测物表面特征信息;通过FPGA中的图像处理算法IP核中的计算方法能够并行的实现激光条中心坐标的提取,利用本发明提供的图像处理算法IP核中的计算方法相较现有处理方法相同品质图像所需时间仅为现有方法的1/50,使得整个系统的计算速度得以优化。
Description
技术领域
本发明涉及计算机视觉测量领域,特别涉及一种基于SOC-FPGA的线结构光图像快速处理系统。
背景技术
融合了ASIC(专门应用的集成电路)和基于处理器的系统的最大优势,现场可编程门阵列(FPGA)技术不断呈现增长势头,FPGA的灵活性与在基于处理器的系统上运行的软件相当,并不受可用处理器内核数量的限制;与处理器不同的是,FPGA属于真正的并行实行,利用硬件并行的优势,FPGA打破了顺序执行的模式,在每个时钟周期内完成更多的处理任务,不同的处理操作无需竞争相同的资源,每个独立的处理任务都配有专用的芯片部分,能在不受其它逻辑块的影响下自主运作。
另一方面,快速准确地获取物体的三维信息是机器视觉领域经久不衰的重要研究领域,在各个领域都有着广泛的应用,使用三维测量技术获取物体的三维信息有助于产品的设计与加工;对于汽车、飞机等,形貌的准确检测是进行空气动力学分析的重要因素;在材料力学领域,可以精确获取物体的受力变形情况,将结构光投影在被测物表面,由相机捕获投影图像。
常规处理器采用的是SOC(片上系统)实现,通过循环计算,耗费计算时间长。
当利用线结构光投影到被测物体表面,再根据线结构光被调制后的结构光图像分析被测物体表面特征时,由于需要大量的矩阵运算和循环计算,直接由处理器SOC进行结构光图像处理算法,耗时在半秒左右。
发明内容
为了解决上述问题,本发明结合FPGA处理信息的并行优势基于SOC-FPGA通讯技术,将线结构光三维测量的前期算法在FPGA中进行实现,提出一种基于SOC-FPGA的结构光图像快速处理系统,FPGA的硬件逻辑电路时序保证了相机与SOC之间的数据传输速度;而FPGA能够并行的实现,因此基于SOC-FPGA的系统使得测量速度得到量级提升。
为此,本发明的技术方案如下:
一种基于SOC-FPGA的线结构光图像快速处理系统,包括线激光发射单元、图像数据采集单元和处理单元;
所述线激光发射单元根据处理单元的控制信号发射出线激光条投影到被测物表面;
所述图像数据采集单元受控于处理单元,采集所述线激光条的彩色图像或灰度图像,并将采集到的彩色图像或灰度图像传输到处理单元;当所述处理单元接收到的图像为彩色图像时,先对其进行处理,得到对应的灰度图像;
进一步,所述工业相机采图模式为灰度图模式,所采集的图像呈现激光条为白色,背景为黑色;
所述处理单元包括SOC处理单元和FPGA处理单元;所述FPGA处理单元通过总线与SOC处理单元相互通讯,所述FPGA处理单元将接收到的灰度图像利用图像处理算法IP核(IP核,Intellectual Property core,是一段具有特定电路功能的硬件描述语言程序)进行图像处理,得到激光条的中心亚像素坐标;
其中,所述图像处理算法IP核包括以下处理过程:
a、读入灰度图像,通过初步滤波,得到待处理激光条图像数据流;
b、利用FPGA对所述待处理激光条图像数据流中的每一个像素同时进行卷积计算,获取每一像素对应的rxx、rxy、ryy、rx、ry;其中:rxx表示图像沿x方向的二阶偏导;rxy表示图像沿x方向求一阶偏导,再对一阶偏导的结果沿y方向求一阶偏导;ryy表示图像沿y方向的二阶偏导;rx表示图像沿x方向的一阶导数,ry表示图像沿y方向的一阶导数;
FPGA内设置有五个卷积模块,分别对应单独计算rxx、rxy、ryy、rx、ry;所述五个卷积模块分别将待处理激光条图像数据流的卷积计算拆解为行卷积和列卷积,利用卷积模块内的行卷积模块、列卷积模块分别计算行卷积和列卷积,并且所述五个卷积模块对待处理激光条图像数据流计算完行卷积后再计算列卷积或者计算完列卷积后再计算行卷积,最终得到每一像素对应的rxx、rxy、ryy、rx、ry;
c、利用步骤b得到的结果计算Hessian矩阵,Hessian矩阵表示为:再求取Hessian矩阵最大特征值对应的特征向量(nx,ny),设定基准点为(x0,y0),则激光条中心的亚像素坐标为:(px,py)=(x0+tnx,y0+tny),式中(tnx,tny)∈[-0.5,0.5]×[-0.5,0.5];
d、所述SOC处理单元通过总线接收FPGA处理单元传输的所述激光条中心的亚像素坐标数据,并根据所述激光条中心的亚像素坐标数据计算得到被测物表面特征信息。
所述行卷积模块的计算过程如下:所述待处理激光条图像数据流存储在缓存寄存器中,在每一个时钟内,缓存寄存器赋值给下一级寄存器,所有寄存器内数据分别与对应的行模板数据相乘后求和,得到行卷积值,行卷积值输出,所述缓存寄存器内数据部分替换寄存器内数据,再次计算行卷积值,如此循环;
所述列卷积模块的计算过程如下:
行卷积模块求得的行卷积值存储在列卷积模块的缓存区内,在每一个时钟内,缓存区赋值给下一级寄存器,所有寄存器内数据分别与对应的列模板数据相乘后求和,得到列卷积数值,列卷积值输出,所述缓存区内数据部分替换寄存器内数据,再次计算列卷积值,如此循环;
最终,五个卷积模块分别求取rxx、rxy、ryy、rx、ry;
其中,求取rx的卷积模块中的行模板数据为列模板数据为
求取ry的卷积模块中的行模板数据为列模板数据为
求取rxx的卷积模块中的行模板数据为列模板数据为
求取ryy的卷积模块中的行模板数据为列模板数据为
求取rxy的卷积模块中的行模板数据为列模板数据为
行模板数据和列模板数据个数相等,记为k个,
式中:
进一步,步骤a得到待处理激光条图像数据流后,再利用高斯滤波获取平滑的激光条图像;所述高斯方差其中w为光条宽度;
步骤b中对平滑的激光条图像数据流中的每一个像素同时进行卷积计算。
进一步,所述步骤d SOC处理单元根据激光条中心的亚像素坐标数据计算得到被测物表面特征信息的方法为:
1)SOC处理单元读取FPGA中的激光条中心的亚像素坐标数据后,对所有激光条中心点的坐标进行一次按行坐标递增的排序;
2)将所有激光条中心点的坐标由图像坐标系转换到相机坐标系下,去掉垂直于线激光平面的分量,得到第一组数据;
3)将第一组数据进行最近邻检索,得到断点两侧激光条中心点的排序坐标,分别拟合曲线;
4)分别从拟合曲线中确定直线段和圆弧段,确定断点两端最相近的直线段的端点坐标,继而计算间隙、面差。
当系统中选用的线激光发射单元、图像数据采集单元为多组时,所述步骤d SOC处理单元根据激光条中心的亚像素坐标数据计算得到被测物表面特征信息的方法为:
①SOC处理单元读取FPGA中的激光条中心的亚像素坐标数据后,对所有激光条中心点的坐标进行一次按行坐标递增的排序;
②将所有激光条中心点的坐标由图像坐标系转换到相机坐标系下,去掉垂直于线激光平面的分量,得到第一组数据;
③将第一组数据中来源于不同相机的数据统一到同一相机坐标系下,记为第二组数据;
④将第二组数据进行最近邻检索,得到断点两侧激光条中心点的排序坐标,分别拟合曲线;
⑤分别从拟合曲线中确定直线段和圆弧段,确定断点两端最相近的直线段的端点坐标,继而计算间隙、面差。
进一步,所述线激光发射单元包括线激光器、激光器驱动电路和激光器控制电路;所述激光器驱动电路驱动线激光器发出线激光条,所述激光器驱动电路受控于激光器控制电路,所述激光器控制电路与处理单元相连。
进一步,所述图像数据采集单元包括相机、滤光片、相机驱动电路和相机控制电路;所述滤光片安装在相机前端,所述相机受控于相机驱动电路,所述相机驱动电路受控于相机控制电路,所述相机控制电路受控于处理单元。
进一步,所述处理单元触发激光器控制电路发出PWM(脉冲宽度调制)信号控制激光器驱动电路按照PWM占空比输出模拟电压值,驱动线激光器发射线结构光并投射在被测物表面。
进一步,所述步骤a中初步滤波的方法为:以像素值为A作为预设值,判断像素值小于A的像素为非激光条部分;判断像素值大于A的像素点,为待处理激光条,提取像素值大于A的像素点。
进一步,所述A值为15~30像素值。
进一步,所述的基于SOC-FPGA的线结构光图像快速处理系统,其特征在于:还包括显示单元,用于显示处理单元对激光条图像的处理结果。
由于SOC是串行处理信息,而FPGA对信息通过逻辑电路并行处理来实现,通过FPGA中的图像处理算法IP核中的计算方法能够并行的实现激光条中心坐标的提取,优化整个系统的计算速度,使得测量速度得到量级提升。在SOC上进行处理两张激光条图像需要大约2s(分辨率960×1280,FPGA中的图像处理算法IP核求中心点亚像素坐标用时),而在FPGA上实现相同的处理只需40ms,速度提升了50倍,大大提高了图像处理速度。
附图说明
图1是本发明实施例1中的系统框图;
图2是本发明实施例1中采集到的激光条图像;
图3是本发明实施例2中的系统框图;
图4是本发明实施例2中两组图像数据采集单元采集到的线激光条图像示意图;
图5是利用FPGA求取rxx、rxy、ryy、rx、ry的流程图;
图6为本发明提供的处理系统对图片1中光条中心坐标数据的提取结果;
图7为采用CPU中软件处理对图片1中光条中心坐标数据的提取结果;
图8为图6、7中数据放在同一坐标系下的展现结果;
图9为图8的局部放大图。
具体实施方式
以下结合附图和实施例对本发明的技术方案进行详细描述。
实施例1
一种基于SOC-FPGA的线结构光图像快速处理系统,如图1所示,包括线激光发射单元、图像数据采集单元和处理单元;
线激光发射单元包括线激光器、激光器驱动电路和激光器控制电路;激光器驱动电路驱动线激光器发出线激光条,激光器驱动电路受控于激光器控制电路,激光器控制电路与处理单元相连,处理单元触发激光器控制电路发出PWM信号控制激光器驱动电路按照PWM占空比输出模拟电压值,驱动线激光器发射线结构光并投射在被测物表面。
图像数据采集单元包括相机、滤光片、相机驱动电路和相机控制电路;滤光片安装在相机前端,相机受控于相机驱动电路,相机驱动电路受控于相机控制电路,相机控制电路受控于处理单元;本实施例中,工业相机采图模式为灰度图模式,所采集的图像呈现激光条为白色,背景为黑色;滤光片能够过滤掉背景信息,使得激光条透过,在相机中成像;
图像数据采集单元中的采集线激光条的灰度图像,并将采集到灰度图像传输到处理单元;
处理单元包括SOC处理单元和FPGA处理单元;FPGA处理单元通过总线与SOC处理单元相互通讯,FPGA处理单元将接收到的灰度图像利用图像处理算法IP核进行图像处理,得到激光条的中心亚像素坐标;
其中,图像处理算法IP核包括以下处理过程:
a、读入灰度图像,通过初步滤波,以像素值为15作为预设值,判断像素值小于15的像素为非激光条部分;判断像素值大于15的像素点,为待处理激光条,提取像素值大于15的像素点,得到待处理激光条;再利用高斯滤波获取平滑的激光条图像;高斯方差其中w为光条宽度;最终得到包含激光条图像信息的数据流;(值得注意的是,此步对灰度图像的处理过程有助于提高最终得到结果精确度,若不对灰度图像进行处理,利用该系统也是可以得到结果。)
b、对平滑的激光条图像数据流中的每一个像素同时进行卷积计算,获取每一像素对应的rxx、rxy、ryy、rx、ry;其中:rxx表示图像沿x方向的二阶偏导;rxy表示图像沿x方向求一阶偏导,再对一阶偏导的结果沿y方向求一阶偏导;ryy表示图像沿y方向的二阶偏导;rx表示图像沿x方向的一阶导数,ry表示图像沿y方向的一阶导数;
FPGA内设置有五个卷积模块,分别为用于计算rxx的x二阶导卷积模块,用于计算rxy的x,y二阶偏导卷积模块,用于计算ryy的y二阶导卷积模块,用于计算rx的x一阶导卷积模块,用于计算ry的y一阶导卷积模块;
x二阶导卷积模块中将对平滑的激光条图像数据流中每一像素的卷积计算拆解为行卷积和列卷积,利用x二阶导卷积模块内的行卷积模板计算行卷积,再计算列卷积,最终得到rxx;
在同一时钟下,x,y二阶偏导卷积模块、y二阶导卷积模块、x一阶导卷积模块、y一阶导卷积模块按照同上方法,分别将待处理激光条图像数据流中每一像素的卷积计算拆解为行卷积和列卷积,利用卷积模块内的行卷积模块、列卷积模块分别计算行卷积和列卷积,最终得到每一像素对应的rxy、ryy、rx、ry;
值得注意的是,将二维卷积拆解为两个一维卷积(行卷积、列卷积)计算时,既可以先计算行卷积再计算列卷积,也可以先计算列卷积再计算行卷积;
行卷积模块的计算过程如下:待处理激光条图像数据流存储在缓存寄存器中,在每一个时钟内,缓存寄存器赋值给下一级寄存器,所有寄存器内数据分别与对应的行模板数据相乘后求和,得到行卷积值,行卷积值输出,缓存寄存器内数据部分替换寄存器内数据,再次计算行卷积值,如此循环;
列卷积模块的计算过程如下:
行卷积模块求得的行卷积值存储在列卷积模块的缓存区内,在每一个时钟内,缓存区赋值给下一级寄存器,所有寄存器内数据分别与对应的列模板数据相乘后求和,得到列卷积数值,列卷积值输出,缓存区内数据部分替换寄存器内数据,再次计算列卷积值,如此循环;
最终,五个卷积模块分别求取rxx、rxy、ryy、rx、ry;
其中,求取rx的卷积模块中的行模板数据为列模板数据为
求取ry的卷积模块中的行模板数据为列模板数据为
求取rxx的卷积模块中的行模板数据为列模板数据为
求取ryy的卷积模块中的行模板数据为列模板数据为
求取rxy的卷积模块中的行模板数据为列模板数据为
行模板数据和列模板数据个数相等,记为k个,
式中:
c、利用步骤b得到的结果计算Hessian矩阵,Hessian矩阵表示为:再求取Hessian矩阵最大特征值对应的特征向量(nx,ny),设定基准点为(x0,y0),则激光条中心的亚像素坐标为:(px,py)=(x0+tnx,y0+tny),式中(tnx,tny)∈[-0.5,0.5]×[-0.5,0.5];
d、SOC处理单元通过总线接收FPGA处理单元传输的激光条中心的亚像素坐标数据,并根据激光条中心的亚像素坐标数据计算得到被测物表面特征信息。
具体而言,步骤d SOC处理单元根据激光条中心的亚像素坐标数据计算得到被测物表面特征信息的方法为:
1)SOC处理单元读取FPGA中的激光条中心的亚像素坐标数据后,对所有激光条中心点的坐标进行一次按行坐标递增的排序;
2)将所有激光条中心点的坐标由图像坐标系转换到相机坐标系下,去掉垂直于线激光平面的分量,得到第一组数据;
3)将第一组数据进行最近邻检索,得到断点两侧激光条中心点的排序坐标,分别拟合曲线(图2所示);
4)分别从拟合曲线中确定直线段和圆弧段,确定断点两端最相近的直线段的端点坐标,继而计算间隙、面差。
本实施例中,处理单元还连接有显示单元,用于显示处理单元对激光条图像的处理结果。
实施例2
一种基于SOC-FPGA的线结构光图像快速处理系统,如图3所示,包括处理单元、两组线激光发射单元、图像数据采集单元;
线激光发射单元包括线激光器、激光器驱动电路和激光器控制电路;激光器驱动电路驱动线激光器发出线激光条,激光器驱动电路受控于激光器控制电路,激光器控制电路与处理单元相连,处理单元触发激光器控制电路发出PWM信号控制激光器驱动电路按照PWM占空比输出模拟电压值,驱动线激光器发射线结构光并投射在被测物表面,两组线激光发射单元所发射出的激光条重合延长。
图像数据采集单元包括两个相机、滤光片、相机驱动电路和相机控制电路;各相机前端均安装有滤光片,相机受控于相机驱动电路,相机驱动电路受控于相机控制电路,相机控制电路受控于处理单元;两组图像数据采集单元对应采集线激光条的图像,并将采集到的图像传输到处理单元;处理单元对图像进行灰度处理,得到对应的灰度图像;灰度图像呈现激光条为白色,背景为黑色;滤光片能够过滤掉背景信息,使得激光条透过,在相机中成像;
处理单元包括SOC处理单元和FPGA处理单元;FPGA处理单元通过AXI总线与SOC处理单元相互通讯,FPGA处理单元将灰度图像利用图像处理算法IP核进行图像处理,得到激光条的中心亚像素坐标;
其中,图像处理算法IP核包括以下处理过程:
a、读入灰度图像,通过初步滤波,以像素值为30作为预设值,判断像素值小于30的像素为非激光条部分;判断像素值大于30的像素点,为待处理激光条,提取像素值大于30的像素点,得到待处理激光条;再利用高斯滤波获取平滑的激光条图像;高斯方差其中w为光条宽度;最终得到包含激光条图像信息的数据流;(值得注意的是,此步对灰度图像的处理过程有助于提高最终得到结果精确度,若不对灰度图像进行处理,利用该系统也是可以得到结果。)
b、对平滑的激光条图像数据流中的每一个像素同时进行卷积计算,获取每一像素对应的rxx、rxy、ryy、rx、ry;其中:rxx表示图像沿x方向的二阶偏导;rxy表示图像沿x方向求一阶偏导,再对一阶偏导的结果沿y方向求一阶偏导;ryy表示图像沿y方向的二阶偏导;rx表示图像沿x方向的一阶导数,ry表示图像沿y方向的一阶导数;
FPGA内设置有五个卷积模块,分别为用于计算rxx的x二阶导卷积模块,用于计算rxy的x,y二阶偏导卷积模块,用于计算ryy的y二阶导卷积模块,用于计算rx的x一阶导卷积模块,用于计算ry的y一阶导卷积模块;
x二阶导卷积模块中将对平滑的激光条图像数据流中每一像素的卷积计算拆解为行卷积和列卷积,利用x二阶导卷积模块内的行卷积模板计算行卷积,再计算列卷积,最终得到rxx;
在同一时钟下,x,y二阶偏导卷积模块、y二阶导卷积模块、x一阶导卷积模块、y一阶导卷积模块按照同上方法,分别将待处理激光条图像数据流中每一像素的卷积计算拆解为行卷积和列卷积,利用卷积模块内的行卷积模块、列卷积模块分别计算行卷积和列卷积,最终得到每一像素对应的rxy、ryy、rx、ry;
值得注意的是,将二维卷积拆解为两个一维卷积(行卷积、列卷积)计算时,既可以先计算行卷积再计算列卷积,也可以先计算列卷积再计算行卷积;
行卷积模块的计算过程如下:待处理激光条图像数据流存储在缓存寄存器中,在每一个时钟内,缓存寄存器赋值给下一级寄存器,所有寄存器内数据分别与对应的行模板数据相乘后求和,得到行卷积值,行卷积值输出,缓存寄存器内数据部分替换寄存器内数据,再次计算行卷积值,如此循环;
列卷积模块的计算过程如下:
行卷积模块求得的行卷积值存储在列卷积模块的缓存区内,在每一个时钟内,缓存区赋值给下一级寄存器,所有寄存器内数据分别与对应的列模板数据相乘后求和,得到列卷积数值,列卷积值输出,缓存区内数据部分替换寄存器内数据,再次计算列卷积值,如此循环;
最终,五个卷积模块分别求取rxx、rxy、ryy、rx、ry;
其中,求取rx的卷积模块中的行模板数据为列模板数据为
求取ry的卷积模块中的行模板数据为列模板数据为
求取rxx的卷积模块中的行模板数据为列模板数据为
求取ryy的卷积模块中的行模板数据为列模板数据为
求取rxy的卷积模块中的行模板数据为列模板数据为
行模板数据和列模板数据个数相等,记为k个,
式中:
c、利用步骤b得到的结果计算Hessian矩阵,Hessian矩阵表示为:再求取Hessian矩阵最大特征值对应的特征向量(nx,ny),设定基准点为(x0,y0),则激光条中心的亚像素坐标为:(px,py)=(x0+tnx,y0+tny),
式中(tnx,tny)∈[-0.5,0.5]×[-0.5,0.5];
d、SOC处理单元通过总线接收FPGA处理单元传输的激光条中心的亚像素坐标数据,并根据激光条中心的亚像素坐标数据计算得到被测物表面特征信息。
具体而言,步骤d SOC处理单元根据激光条中心的亚像素坐标数据计算得到被测物表面特征信息的方法为:
①SOC处理单元读取FPGA中的激光条中心的亚像素坐标数据后,对所有激光条中心点的坐标进行一次按行坐标递增的排序;
②将所有激光条中心点的坐标由图像坐标系转换到相机坐标系下,去掉垂直于线激光平面的分量,得到第一组数据;
③将第一组数据中来源于不同相机的数据统一到同一相机坐标系下,记为第二组数据;
④将第二组数据进行最近邻检索,得到断点两侧激光条中心点的排序坐标,分别拟合曲线(如图4所示);
⑤分别从拟合曲线中确定直线段和圆弧段,确定断点两端最相近的直线段的端点坐标,继而计算间隙、面差。
本实施例中,处理单元还连接有显示单元,用于显示处理单元对激光条图像的处理结果。
本发明方法中FPGA中的逻辑计算方法将二维卷积计算解算成两个一维卷积,行卷积、列卷积,实现时,五个卷积模块:x二阶导卷积模块、x,y二阶偏导卷积模块、y二阶导卷积模块、x一阶导卷积模块、y一阶导卷积模块内各自设置一个行卷积模板,一个列卷积模板;行卷积模板计算行卷积,列卷积模板计算列卷积;五个卷积模板同时计算,获取rxx、rxy、ryy、rx、ry;即为FPGA内的并行计算。此种方法相较软件计算方法具有如下优点:
1)软件中卷积的乘法运算是串行实现的,而FPGA中是并行实现。
2)软件中多个卷积的运算也是串行实现的,而FPGA中可以实现多个卷积运算的并行执行。
FPGA中的此种运算方法相较FPGA中传统的运算方法具有如下优点:
①传统的二维卷积计算需要使用FPGA中大量的dsp资源,卷积模板决定了卷积需要31×31个乘法器,而本发明方法中将二维卷积计算拆解成两个一维卷积,只需要31+31个乘法器,虽然拆分的计算方式会多占用几百个时钟周期,但时间上仅为us级,故本发明提供的方法在处理速度达到要求的条件下大大减少了FPGA逻辑资源的使用。
②传统方法对图像边缘进行二维卷积时通常需要填充卷积核超出图像的部分,而本申请提供的拆分一维卷积不需要考虑这种情况。
对比实验
利用本发明提供的基于SOC-FPGA的线结构光图像快速处理系统和现有的CPU中软件分别对四张光条图片进行光条提取的处理,保证读取图像文件的源数据相同,统计如下数据:源数据量、数据结果及耗时。
可见,对于相同图片的处理,本发明提供的处理系统的处理速度提升了40~50倍。
由图6可见本发明提供的处理系统对图片1中光条中心坐标数据的提取结果,图7可见采用CPU中软件处理对图片1中光条中心坐标数据的提取结果;图8给出了图6、7中数据放在同一坐标系下的展现结果,图9为图8的局部放大图,可见,两种方法得到的像素坐标仅仅相差0.5个像素左右,但是从检测数据来讲,采用本发明提供的处理系统器处理速度提升了40~50倍。
前面对本发明具体示例性实施方案所呈现的描述是出于说明和描述的目的。前面的描述并不想要成为毫无遗漏的,也不是想要把本发明限制为所公开的精确形式,显然,根据上述教导很多改变和变化都是可能的。选择示例性实施方案并进行描述是为了解释本发明的特定原理及其实际应用,从而使得本领域的其它技术人员能够实现并利用本发明的各种示例性实施方案及其不同选择形式和修改形式。本发明的范围旨在由所附权利要求书及其等价形式所限定。
Claims (10)
1.一种基于SOC-FPGA的线结构光图像快速处理系统,其特征在于:包括线激光发射单元、图像数据采集单元和处理单元;
所述线激光发射单元根据处理单元的控制信号发射出线激光条投影到被测物表面;
所述图像数据采集单元受控于处理单元,采集所述线激光条的彩色图像或灰度图像,并将采集到的彩色图像或灰度图像传输到处理单元;当所述处理单元接收到的图像为彩色图像时,先对其进行处理,得到对应的灰度图像;
所述处理单元包括SOC处理单元和FPGA处理单元;所述FPGA处理单元通过总线与SOC处理单元相互通讯,所述FPGA处理单元将接收到的灰度图像利用图像处理算法IP核进行图像处理,得到激光条的中心亚像素坐标;
其中,所述图像处理算法IP核包括以下处理过程:
a、读入灰度图像,通过初步滤波,得到待处理激光条图像数据流;
b、利用FPGA对所述待处理激光条图像数据流中的每一个像素同时进行卷积计算,获取每一像素对应的rxx、rxy、ryy、rx、ry;
其中:rxx表示图像沿x方向的二阶偏导;rxy表示图像沿x方向求一阶偏导,再对一阶偏导的结果沿y方向求一阶偏导;ryy表示图像沿y方向的二阶偏导;rx表示图像沿x方向的一阶导数,ry表示图像沿y方向的一阶导数;
FPGA内设置有五个卷积模块,分别对应单独计算rxx、rxy、ryy、rx、ry;所述五个卷积模块分别将待处理激光条图像数据流的卷积计算拆解为行卷积和列卷积,利用卷积模块内的行卷积模块、列卷积模块分别计算行卷积和列卷积,并且所述五个卷积模块对待处理激光条图像数据流计算完行卷积后再计算列卷积或者计算完列卷积后再计算行卷积,最终得到每一像素对应的rxx、rxy、ryy、rx、ry;
c、利用步骤b得到的结果计算Hessian矩阵,Hessian矩阵表示为:再求取Hessian矩阵最大特征值对应的特征向量(nx,ny),设定基准点为(x0,y0),则激光条中心的亚像素坐标为:(px,py)=(x0+tnx,y0+tny),
式中(tnx,tny)∈[-0.5,0.5]×[-0.5,0.5];
d、所述SOC处理单元通过总线接收FPGA处理单元传输的所述激光条中心的亚像素坐标数据,并根据所述激光条中心的亚像素坐标数据计算得到被测物表面特征信息。
2.如权利要求1所述基于SOC-FPGA的线结构光图像快速处理系统,其特征在于:所述行卷积模块的计算过程如下:所述待处理激光条图像数据流存储在缓存寄存器中,在每一个时钟内,缓存寄存器赋值给下一级寄存器,所有寄存器内数据分别与对应的行模板数据相乘后求和,得到行卷积值,行卷积值输出,所述缓存寄存器内数据部分替换寄存器内数据,再次计算行卷积值,如此循环;
所述列卷积模块的计算过程如下:
行卷积模块求得的行卷积值存储在列卷积模块的缓存区内,在每一个时钟内,缓存区赋值给下一级寄存器,所有寄存器内数据分别与对应的列模板数据相乘后求和,得到列卷积数值,列卷积值输出,所述缓存区内数据部分替换寄存器内数据,再次计算列卷积值,如此循环;
最终,五个卷积模块分别求取rxx、rxy、ryy、rx、ry;
其中,求取rx的卷积模块中的行模板数据为列模板数据为
求取ry的卷积模块中的行模板数据为列模板数据为
求取rxx的卷积模块中的行模板数据为列模板数据为
求取ryy的卷积模块中的行模板数据为列模板数据为
求取rxy的卷积模块中的行模板数据为列模板数据为
行模板数据和列模板数据个数相等,记为k个,
式中:
3.如权利要求1所述的基于SOC-FPGA的线结构光图像快速处理系统,其特征在于:步骤a得到待处理激光条图像数据流后,再利用高斯滤波获取平滑的激光条图像;所述高斯方差其中w为光条宽度;
步骤b中对平滑的激光条图像数据流中的每一个像素进行卷积计算。
4.如权利要求1或2或3所述的基于SOC-FPGA的线结构光图像快速处理系统,其特征在于:步骤d SOC处理单元根据激光条中心的亚像素坐标数据计算得到被测物表面特征信息的方法为:
1)SOC处理单元读取FPGA中的激光条中心的亚像素坐标数据后,对所有激光条中心点的坐标进行一次按行坐标递增的排序;
2)将所有激光条中心点的坐标由图像坐标系转换到相机坐标系下,去掉垂直于线激光平面的分量,得到第一组数据;
3)将第一组数据进行最近邻检索,得到断点两侧激光条中心点的排序坐标,分别拟合曲线;
4)分别从拟合曲线中确定直线段和圆弧段,确定断点两端最相近的直线段的端点坐标,继而计算间隙、面差。
5.如权利要求1或2或3所述的基于SOC-FPGA的线结构光图像快速处理系统,其特征在于:步骤d SOC处理单元根据激光条中心的亚像素坐标数据计算得到被测物表面特征信息的方法为:
①SOC处理单元读取FPGA中的激光条中心的亚像素坐标数据后,对所有激光条中心点的坐标进行一次按行坐标递增的排序;
②将所有激光条中心点的坐标由图像坐标系转换到相机坐标系下,去掉垂直于线激光平面的分量,得到第一组数据;
③将第一组数据中来源于不同相机的数据统一到同一相机坐标系下,记为第二组数据;
④将第二组数据进行最近邻检索,得到断点两侧激光条中心点的排序坐标,分别拟合曲线;
⑤分别从拟合曲线中确定直线段和圆弧段,确定断点两端最相近的直线段的端点坐标,继而计算间隙、面差。
6.如权利要求1或2或3所述的基于SOC-FPGA的线结构光图像快速处理系统,其特征在于:所述线激光发射单元包括线激光器、激光器驱动电路和激光器控制电路;所述激光器驱动电路驱动线激光器发出线激光条,所述激光器驱动电路受控于激光器控制电路,所述激光器控制电路与处理单元相连。
7.如权利要求1或2或3所述的基于SOC-FPGA的线结构光图像快速处理系统,其特征在于:所述图像数据采集单元包括相机、滤光片、相机驱动电路和相机控制电路;所述滤光片安装在相机前端,所述相机受控于相机驱动电路,所述相机驱动电路受控于相机控制电路,所述相机控制电路受控于处理单元。
8.如权利要求1或2或3所述的基于SOC-FPGA的线结构光图像快速处理系统,其特征在于:所述处理单元触发激光器控制电路发出PWM信号控制激光器驱动电路按照PWM占空比输出模拟电压值,驱动线激光器发射线结构光并投射在被测物表面。
9.如权利要求1或2或3所述的基于SOC-FPGA的线结构光图像快速处理系统,其特征在于:步骤a中初步滤波的方法为:以像素值为A作为预设值,判断像素值小于A的像素为非激光条部分;判断像素值大于A的像素点,为待处理激光条,提取像素值大于A的像素点。
10.如权利要求1或2所述的基于SOC-FPGA的线结构光图像快速处理系统,其特征在于:所述A值为15~30像素值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811414940.XA CN109559305B (zh) | 2018-11-26 | 2018-11-26 | 一种基于soc-fpga的线结构光图像快速处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811414940.XA CN109559305B (zh) | 2018-11-26 | 2018-11-26 | 一种基于soc-fpga的线结构光图像快速处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109559305A true CN109559305A (zh) | 2019-04-02 |
CN109559305B CN109559305B (zh) | 2023-06-30 |
Family
ID=65867413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811414940.XA Active CN109559305B (zh) | 2018-11-26 | 2018-11-26 | 一种基于soc-fpga的线结构光图像快速处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109559305B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114723808A (zh) * | 2022-03-10 | 2022-07-08 | 合肥工业大学 | 一种基于fpga的光条亚像素中心提取方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005050390A2 (en) * | 2003-11-13 | 2005-06-02 | Metrologic Instruments, Inc. | Hand-supportable imaging-based bar code symbol reader supporting narrow-area and wide-area modes of illumination and image capture |
CN101178812A (zh) * | 2007-12-10 | 2008-05-14 | 北京航空航天大学 | 一种结构光光条中心线提取的混合图像处理方法 |
CN101770641A (zh) * | 2008-12-26 | 2010-07-07 | 中国科学院沈阳自动化研究所 | 一种结构光焊缝图像特征点快速提取方法 |
CN103279921A (zh) * | 2013-05-17 | 2013-09-04 | 复旦大学 | 一种图像嵌入式处理系统及低照度图像光点获取与定位方法 |
CN104835162A (zh) * | 2015-05-12 | 2015-08-12 | 李鹏飞 | 基于SoC_FPGA的柔性智能机器视觉检测系统 |
CN105005981A (zh) * | 2014-04-18 | 2015-10-28 | 北京航空航天大学 | 基于多尺度的光条中心提取方法及装置 |
CN105761288A (zh) * | 2016-02-02 | 2016-07-13 | 华中科技大学 | 一种基于fpga的实时星点质心定位方法及装置 |
US20170019659A1 (en) * | 2015-07-13 | 2017-01-19 | Shenzhen ESUN Display Co., Ltd | 3D scanning control apparatus based on FPGA and control method and system thereof |
CN107248156A (zh) * | 2017-05-27 | 2017-10-13 | 广州地铁集团有限公司 | 分段点自动提取的踏面轮廓拟合方法 |
CN107860312A (zh) * | 2017-10-20 | 2018-03-30 | 武汉惟景三维科技有限公司 | 一种结构光三维测量算法的嵌入式实现系统及方法 |
US20180150721A1 (en) * | 2016-11-28 | 2018-05-31 | Samsung Electronics Co., Ltd. | Convolution processing apparatus and method |
US20180165528A1 (en) * | 2015-06-24 | 2018-06-14 | Kyocera Corporation | Image processing device, stereo camera device, vehicle, and image processing method |
CN108827340A (zh) * | 2018-04-28 | 2018-11-16 | 江苏中科院智能科学技术应用研究院 | 一种基于zynq硬件加速的视觉里程计 |
-
2018
- 2018-11-26 CN CN201811414940.XA patent/CN109559305B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005050390A2 (en) * | 2003-11-13 | 2005-06-02 | Metrologic Instruments, Inc. | Hand-supportable imaging-based bar code symbol reader supporting narrow-area and wide-area modes of illumination and image capture |
CN101178812A (zh) * | 2007-12-10 | 2008-05-14 | 北京航空航天大学 | 一种结构光光条中心线提取的混合图像处理方法 |
CN101770641A (zh) * | 2008-12-26 | 2010-07-07 | 中国科学院沈阳自动化研究所 | 一种结构光焊缝图像特征点快速提取方法 |
CN103279921A (zh) * | 2013-05-17 | 2013-09-04 | 复旦大学 | 一种图像嵌入式处理系统及低照度图像光点获取与定位方法 |
CN105005981A (zh) * | 2014-04-18 | 2015-10-28 | 北京航空航天大学 | 基于多尺度的光条中心提取方法及装置 |
CN104835162A (zh) * | 2015-05-12 | 2015-08-12 | 李鹏飞 | 基于SoC_FPGA的柔性智能机器视觉检测系统 |
US20180165528A1 (en) * | 2015-06-24 | 2018-06-14 | Kyocera Corporation | Image processing device, stereo camera device, vehicle, and image processing method |
US20170019659A1 (en) * | 2015-07-13 | 2017-01-19 | Shenzhen ESUN Display Co., Ltd | 3D scanning control apparatus based on FPGA and control method and system thereof |
CN105761288A (zh) * | 2016-02-02 | 2016-07-13 | 华中科技大学 | 一种基于fpga的实时星点质心定位方法及装置 |
US20180150721A1 (en) * | 2016-11-28 | 2018-05-31 | Samsung Electronics Co., Ltd. | Convolution processing apparatus and method |
CN107248156A (zh) * | 2017-05-27 | 2017-10-13 | 广州地铁集团有限公司 | 分段点自动提取的踏面轮廓拟合方法 |
CN107860312A (zh) * | 2017-10-20 | 2018-03-30 | 武汉惟景三维科技有限公司 | 一种结构光三维测量算法的嵌入式实现系统及方法 |
CN108827340A (zh) * | 2018-04-28 | 2018-11-16 | 江苏中科院智能科学技术应用研究院 | 一种基于zynq硬件加速的视觉里程计 |
Non-Patent Citations (2)
Title |
---|
A. H. MAZINAN; A. ESMAEILI: "An algorithm for extracting the phase of the fringe patterns with its applications to three-dimensional imaging through FPGA based implementation", 2016 INTERNATIONAL CONFERENCE ON INDUSTRIAL INFORMATICS AND COMPUTER SYSTEMS (CIICS), pages 1 - 5 * |
曾大为,徐贵力,程月华,王正盛,田裕鹏: "基于自适应模板线结构的光条中心亚像素提取方法", 光电子技术, vol. 38, no. 2, pages 117 - 121 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114723808A (zh) * | 2022-03-10 | 2022-07-08 | 合肥工业大学 | 一种基于fpga的光条亚像素中心提取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109559305B (zh) | 2023-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109887020B (zh) | 一种植株器官分离方法及系统 | |
CN108876744B (zh) | 一种基于区域分割的大尺度点云噪声去噪方法 | |
CN110009667B (zh) | 基于罗德里格斯变换的多视点云全局配准方法 | |
CN110544233A (zh) | 基于人脸识别应用的深度图像质量评价方法 | |
CN112233076B (zh) | 基于红色圆标靶图像处理的结构振动位移测量方法及装置 | |
WO2020029915A1 (zh) | 基于人工智能的中医舌像分割装置、方法及存储介质 | |
CN110443802B (zh) | 图像检测方法和装置、设备及存储介质 | |
CN103426179A (zh) | 一种基于均值偏移多特征融合的目标跟踪方法及装置 | |
CN110399866A (zh) | 基于ccd相机不同曝光时间交替的空间碎片观测方法 | |
CN110264527A (zh) | 基于zynq的实时双目立体视觉输出方法 | |
CN114136975A (zh) | 一种微波裸芯片表面缺陷智能检测系统和方法 | |
CN110443839A (zh) | 一种骨骼模型空间配准方法及装置 | |
CN110097540A (zh) | 多边形工件的视觉检测方法及装置 | |
CN109559305A (zh) | 一种基于soc-fpga的线结构光图像快速处理系统 | |
CN110838146A (zh) | 一种共面交比约束的同名点匹配方法、系统、装置及介质 | |
Yang et al. | Defect detection scheme of pins for aviation connectors based on image segmentation and improved RESNET-50 | |
CN113570587A (zh) | 一种基于计算机视觉的光伏电池断栅检测方法及系统 | |
CN104655041A (zh) | 一种附加约束条件的工业零件轮廓线多特征提取方法 | |
CN116385347A (zh) | 一种基于变形分析的飞机蒙皮曲面图案视觉检测方法 | |
CN114148103B (zh) | 一种基于神经网络学习的焊膏印刷标记识别方法及系统 | |
CN116051808A (zh) | 一种基于YOLOv5的轻量化零件识别定位方法 | |
CN115682957A (zh) | 一种混凝土裂缝检测方法及装置 | |
CN113592789A (zh) | 暗光图像识别方法、装置、设备及存储介质 | |
CN112200803A (zh) | 精子核蛋白成熟度检测方法及装置 | |
CN110728222A (zh) | 一种用于机械臂抓取系统中目标物体的位姿估计方法 |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: Room 495, building 3, 1197 Bin'an Road, Binjiang District, Hangzhou City, Zhejiang Province 310051 Patentee after: Yi Si Si (Hangzhou) Technology Co.,Ltd. Address before: Room 495, building 3, 1197 Bin'an Road, Binjiang District, Hangzhou City, Zhejiang Province 310051 Patentee before: ISVISION (HANGZHOU) TECHNOLOGY Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |