CN111583092B - 一种变分光流fpga实现方法、***、存储介质、终端 - Google Patents
一种变分光流fpga实现方法、***、存储介质、终端 Download PDFInfo
- Publication number
- CN111583092B CN111583092B CN202010234746.4A CN202010234746A CN111583092B CN 111583092 B CN111583092 B CN 111583092B CN 202010234746 A CN202010234746 A CN 202010234746A CN 111583092 B CN111583092 B CN 111583092B
- Authority
- CN
- China
- Prior art keywords
- optical flow
- image
- gradient
- calculation
- model
- 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
- 230000003287 optical effect Effects 0.000 title claims abstract description 100
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000004364 calculation method Methods 0.000 claims abstract description 97
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 34
- 238000007781 pre-processing Methods 0.000 claims abstract description 25
- 238000006243 chemical reaction Methods 0.000 claims abstract description 14
- 230000006870 function Effects 0.000 claims description 22
- 239000013598 vector Substances 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 238000009825 accumulation Methods 0.000 claims description 5
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 abstract description 7
- 238000012545 processing Methods 0.000 abstract description 4
- 238000005094 computer simulation Methods 0.000 abstract description 2
- 238000013461 design Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 238000004088 simulation Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000004907 flux Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
-
- 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 Hardware Design (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Geometry (AREA)
- Operations Research (AREA)
- Algebra (AREA)
- Evolutionary Computation (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
Abstract
本发明属于计算机视觉处理技术领域,公开了一种变分光流FPGA实现方法、***、存储介质、终端,对两帧输入图像的预处理,包括图像色彩空间转换和图像去噪,输出为两幅预处理后的图像;预处理后的图通过图像邻域像素计算出当前像素的水平方向梯度、垂直方向梯度;同时,通过两帧图像中对应位置的像素计算出时间方向的梯度;根据图像预处理模型、图像梯度计算模型的输出,计算出变分光流计算所需的大型线性方程组的参数;通过迭代计算模型对最终的光流输出进行求解。本发明能够极大地缩短光流算法在FPGA硬件上的应用开发时间,各个模块相互独立,易于裁剪、扩充和维护,能够极大地提高变分光流算法的运算速度,能够达到实时应用的目的。
Description
技术领域
本发明属于计算机视觉处理技术领域,尤其涉及一种变分光流FPGA实现方法、***、存储介质、终端。
背景技术
目前,计算机视觉是一门主要研究如何利用图像进行表达的学科。作为计算机视觉的分支,光流估计是一种广泛应用的像素运动表示方法,是计算机视觉领域最基础、最广泛的问题之一。目前主流的光流估计方法是基于变分优化技术的光流算法。变分优化技术将光流估计问题描述为目标能量函数的最小化问题,通过对目标能量函数的求解,将最终的问题转化为一个超大型线性方程的求解问题。典型的变分光流技术通常包括预处理、线性方程组构建、方程求解等步骤,这些步骤计算复杂度相当高。常见的的变分光流实现主要基于C/C++、Matlab等高级语言进行实现,由于变分光流极高的计算复杂度导致基于高级语言的实现运行速度慢,从而应用场景受限。针对采用高级语言实现的变分光流算法速度慢的问题,通常将算法分为多个模块,在通用处理器上采用多线程技术实现多个模块的同时运行,以提高处理器利用率。FPGA(FieldProgrammable GateArray可编程逻辑门阵列)能够有效实现多个模块的并行加速,是硬件加速很好的选择。但是对于变分光流技术来说,传统的FPGA开发方式实现难度高,架构设计困难,难以满足算法的快速更新迭代。针对以上问题,目前需要一种新的方法,使之能很方便地提高变分光流算法的运算速度,并且能够快速进行算法的实现。
通过上述分析,现有技术存在的问题及缺陷为:
(1)目前的变分光流技术通的计算复杂度相当高,基于高级语言的实现运行速度慢,应用场景受限。
(2)传统的FPGA开发方式实现难度高,架构设计困难,难以满足算法的快速更新迭代。
解决以上问题及缺陷的难度为:
(1)基于高级语言设计的算法通常以帧为单位进行处理,而基于FPGA实现的算法通常以像素为单位进行处理,需要将基于帧处理的算法转化为基于像素流处理的算法。
(2)传统的多线程加速方式需要将算法分解成可并行化的多个步骤,然后用多个线程同时进行运算。而FPGA基于寄存器、逻辑电路来描述基于数据流结构的算法,相当于采用更多的线程来同时计算,需要将算法分解为更加精细的计算步骤。
(3)传统的FPGA开发采用硬件描述语言来描述算法的硬件结构,而FPGA开发需要经验丰富的硬件工程师来实现,通常FPGA开发工程师与算法工程师之间的沟通需要浪费大量的时间。
解决以上问题及缺陷的意义为:
(1)直接地,将变分光流算法应用到FPGA硬件上,能够拓展变分光流算法在嵌入式场景的应用范围。
(2)间接地,变分光流算法的FPGA实现能够加速一些需要光流计算结果的计算机视觉算法在嵌入式场景的应用范围。
(3)另外,采用基于模型设计的方法实现光流算法在FPGA上的实现,能够很容易地进行算法的仿真、调试,并能自动生成高效的硬件描述代码,避免了手工编写代码过程中大意出错的问题。同时,采用基于模型设计的方法对于其他计算机视觉算法的FPGA硬件实现能够提供有益参考。
发明内容
针对现有技术存在的问题,本发明提供了一种变分光流FPGA实现方法、***、存储介质、终端。
本发明是这样实现的,一种变分光流FPGA实现方法,所述变分光流FPGA实现方法包括:
第一步,对两帧输入图像的预处理,包括图像色彩空间转换和图像去噪,输出为两幅预处理后的图像;
第二步,预处理后的图通过图像邻域像素计算出当前像素的水平方向梯度、垂直方向梯度;同时,通过两帧图像中对应位置的像素计算出时间方向的梯度;
第三步,根据图像预处理模型、图像梯度计算模型的输出,计算出变分光流计算所需的大型线性方程组的参数;
第四步,通过迭代计算模型对最终的光流输出进行求解。
进一步,所述第一步包括:当输入是彩色图像经过色彩空间转换模块转换为灰度图像,若输入图像本身是灰度图像保持原始输入;通过图像行缓存模块实现窗口列向量的提取,然后由延迟缓存单元缓存多拍列向量后输出当前像素对应的滑动窗口,得到滑动窗口后,通过矩阵乘法单元实现窗口像素与滤波器模板像素的点乘,之后通过累加求和单元实现所有点乘结果的所有元素的累加和即为该窗口对应像素的最终输出。
进一步,所述第二步包括:图像梯度计算实现两帧图像的水平x方向梯度、垂直y方向梯度、时间t方向梯度,x方向的梯度由延迟单元实现左右相邻像素的灰度值相减进行计算;y方向梯度由行缓存单元实现上下相邻像素的提取后相减进行计算。
进一步,所述第三步包括:参数计算实现变分光流计算所需构建的大型线性方程组的参数的计算,变分光流计算过程中需要计算Ψ函数的值,以Ix表示图像x方向梯度Iy表示y方向梯度It表示时间方向梯度u表示初始化的x方向光流v表示初始化的y方向光流,ε表示常数,则Ψ公式表示为:
变分光流最终所需的线性方程共5组系数分别是A11、A12、A22、B1、B2,公式表示为:
Ψ函数作为参数计算模块中一个独立单元,其他参数通过信号线连接到一起通过计算后输出,其所需参数包括Ix、Iy、It、u、v。
进一步,所述第四步包括:光流解算需要Φ函数的计算值,计算需要用到初始光流值的梯度值,假定当前光流初始值(u,v)在x和y方向上的梯度分别表示为ux、uy、vx、vy,则Φ函数公式表示为:
进一步,光流求解实现对构建的大型线性方程组进行求解,将参数计算模块计算的A11、A12、A22、B1、B2、Φ作为参数数对方程进行求解;采用的求解算法是红黑法SOR,基于红黑法SOR分组运算的原理,将SOR计算模型设计为配置为奇数组计算模型和偶数组计算模型;选定模型参与奇数组运算,则当像素流通过该模块时判断像素是否为组内像素;若当前像素为组内像素则更新输出的当前迭代值,否则将保持输入值不变并进行相应延迟后输出;将奇数组计算模型与偶数组计算模型首尾相连则组成完整的单次迭代模型。
进一步,所述变分光流FPGA实现方法通过单次迭代模型实现多次迭代模型有两种形式:
(1)采用一个单次迭代模型和一个存储控制器,单次迭代的输出直接通过存储控制器存储到存储器中,并在下一循环从存储器读出后通过计算模块实现一次迭代,在存储控制器的控制下,实现方程的迭代求解;
(2)将多个单次迭代模型级联实现多次迭代运算,一次迭代的输出直接接入下一次迭代模块的输入。
本发明的另一目的在于提供一种接收用户输入程序存储介质,所存储的计算机程序使电子设备执行权利要求任意一项所述包括下列步骤:
第一步,对两帧输入图像的预处理,包括图像色彩空间转换和图像去噪,输出为两幅预处理后的图像;
第二步,预处理后的图通过图像邻域像素计算出当前像素的水平方向梯度、垂直方向梯度;同时,通过两帧图像中对应位置的像素计算出时间方向的梯度;
第三步,根据图像预处理模型、图像梯度计算模型的输出,计算出变分光流计算所需的大型线性方程组的参数;
第四步,通过迭代计算模型对最终的光流输出进行求解。
本发明的另一目的在于提供一种实施所述变分光流FPGA实现方法的变分光流FPGA实现***,所述变分光流FPGA实现***包括:
图像预处理模块,用于完成对两帧输入图像的预处理功能,包括图像色彩空间转换模块和图像去噪模块,模型输出为两幅预处理后的图像;
图像梯度计算模块,包含图像窗口提取模块、梯度计算模块,用于通过图像邻域像素计算出当前像素的水平方向梯度、垂直方向梯度;同时,通过两帧图像中对应位置的像素计算出时间方向的梯度;
参数计算模块,用于根据图像预处理模型、图像梯度计算模型的输出,计算出变分光流计算所需的大型线性方程组的参数;
光流解算模块,用于通过迭代计算模型对最终的光流输出进行求解。
本发明的另一目的在于提供一种计算机视觉终端,所述计算机视觉终端搭载所述的变分光流FPGA实现***。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明采用基于模型的FPGA设计方法,通过代码生成的方式生成目标FPGA平台的硬件描述代码,能够极大地缩短光流算法在FPGA硬件上的应用开发时间。本发明采用模块化设计方法,对每个所述模块采用统一的数据接口,各个模块相互独立,易于裁剪、扩充和维护。本发明的模型采用流水线结构设计,能够极大地提高变分光流算法的运算速度,能够达到实时应用的目的。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的变分光流FPGA实现方法流程图。
图2是本发明实施例提供的变分光流FPGA实现***的结构示意图;
图中:1、图像预处理模块;2、图像梯度计算模块;3、参数计算模块;4、光流解算模块。
图3是本发明实施例提供的变分光流FPGA实现方法实现流程图。
图4是本发明实施例提供的一种具体实施方式中所涉及的去噪模块的设计示意图。
图5是本发明实施例提供的一种具体实施方式中所涉及的x方向和y方向梯度计算模块的设计示意图。
图6是本发明实施例提供的一种具体实施方式中所涉及的t方向梯度计算模块的设计示意图。
图7是本发明实施例提供的一种具体实施方式中所涉及的Ψ函数的设计示意图。
图8是本发明实施例提供的一种具体实施方式中所涉及的大型线性方程组参数计算模块的设计示意图。
图9是本发明实施例提供的一种具体实施方式中所涉及的Φ函数的设计示意图。
图10是本发明实施例提供的一种具体实施方式中所涉及的整幅图像的Φ参数计算模块的设计示意图。
图11是本发明实施例提供的一种具体实施方式中所涉及的光流解算模块中单次迭代模型的设计示意图。
图12是本发明实施例提供的一种具体实施方式中所涉及的光流解算模块中多次迭代实现方式(1)中所述的模型示意图。
图13是本发明实施例提供的一种具体实施方式中所涉及的光流解算模块中多次迭代实现方式(2)中所述的模型示意图。
图14是本发明实施例提供的一种具体实施方式中实现的算法模型仿真结果示例1。图15是本发明实施例提供的一种具体实施方式中实现的算法模型仿真结果示例2。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种变分光流FPGA实现方法、***、存储介质、终端,下面结合附图对本发明作详细的描述。
如图1所示,本发明提供的变分光流FPGA实现方法包括以下步骤:
S101:对两帧输入图像的预处理,包括图像色彩空间转换和图像去噪,输出为两幅预处理后的图像;
S102:预处理后的图通过图像邻域像素计算出当前像素的水平方向梯度、垂直方向梯度;同时,通过两帧图像中对应位置的像素计算出时间方向的梯度;
S103:根据图像预处理模型、图像梯度计算模型的输出,计算出变分光流计算所需的大型线性方程组的参数;
S104:通过迭代计算模型对最终的光流输出进行求解。
如图2所示,本发明提供的变分光流FPGA实现***包括:
图像预处理模块1,用于完成对两帧输入图像的预处理功能,包括图像色彩空间转换模块和图像去噪模块,模型输出为两幅预处理后的图像。
图像梯度计算模块2,包含图像窗口提取模块、梯度计算模块,用于通过图像邻域像素计算出当前像素的水平方向梯度、垂直方向梯度。同时,通过两帧图像中对应位置的像素计算出时间方向的梯度。
参数计算模块3,用于根据图像预处理模型、图像梯度计算模型的输出,计算出变分光流计算所需的大型线性方程组的参数。
光流解算模块4,用于通过迭代计算模型对最终的光流输出进行求解。
下面结合附图对本发明的技术方案作进一步的描述。
如图3所示,整个光流计算流程中图像输入后,图像数据依次经过图像预处理模块、图像梯度计算模块、参数计算模块、光流求解模块,最后输出最终的光流计算结果。在具体实施发明时,采用Simulink平台搭建所述的模型、***。
首先考虑模块之间的数据连接方法。本发明实施例中模型输入输出接口采用像素流接口(StreamingPixelInterface)实现。像素流接口用来传输串行的像素流数据,其包括像素数据总线与像素控制总线。像素数据总线是一种抽象的总线信号,在Simulink模型中格式不固定,可以是浮点数、定点数、整数、向量等。控制总线包括5个布尔信号,通过布尔信号指示像素的有效性及其在帧中的相对位置。通过像素流接口可以轻松地将一个模块的数据和控制输出连接到另一个模块的输入。
预处理模块通常包含图像色彩空间转换和滤波处理。当输入是彩色图像则首先经过色彩空间转换模块转换为灰度图像,若输入图像本身是灰度图像则保持原始输入。经过色彩空间转换的图像输出到滤波模块,滤波模块通常由滑动窗口滤波器实现,如图4所示,本发明实施例中通过图像行缓存模块实现窗口列向量的提取,然后由延迟缓存单元缓存多拍列向量后输出当前像素对应的滑动窗口。得到滑动窗口后,通过矩阵乘法单元实现窗口像素与滤波器模板像素的点乘,之后通过累加求和单元实现所有点乘结果的所有元素的累加和即为该窗口对应像素的最终输出。
图像梯度计算模块实现两帧图像的水平x方向梯度、垂直y方向梯度、时间t方向梯度。如图5所示,本发明实施例中x方向的梯度由延迟单元实现左右相邻像素的灰度值相减进行计算;y方向梯度由行缓存单元实现上下相邻像素的提取后相减进行计算。如图6所示,本发明实施例中t方向的梯度计算实现为两帧图像对应像素的相减。
参数计算模块实现变分光流计算所需构建的大型线性方程组的参数的计算。本发明实施例中,变分光流计算过程中需要计算Ψ函数的值,以Ix表示图像x方向梯度Iy表示y方向梯度It表示时间方向梯度u表示初始化的x方向光流v表示初始化的y方向光流,ε表示常数,则Ψ公式表示为:
基于公式(1),本发明实施例实现的Ψ函数计算单元如图7所示。变分光流最终所需的线性方程共5组系数分别是A11、A12、A22、B1、B2,公式表示为:
根据公式(2),实现后的线性***构建模块如图8所示。Ψ函数作为参数计算模块中一个独立单元,其他参数通过信号线连接到一起通过计算后输出,其所需参数包括Ix、Iy、It、u、v。为了保证数据的对齐这里放置了一些延迟寄存器进行延迟平衡。同时,控制信号也在延迟相应的节拍之后进行输出。
本发明实施例中,光流解算模块还需要Φ函数的计算值,这一项的计算是与光流方程中的平滑项相关的。其计算需要用到初始光流值的梯度值,假定当前光流初始值(u,v)在x和y方向上的梯度分别表示为ux、uy、vx、vy,则Φ函数公式表示为:
根据公式(3),本发明实施例所实现的Φ函数计算子模块如图9所示,其组合而成的完整的计算一帧Φ值的模块如图10所示,其左边部分用到图像梯度计算模块。
光流求解模块实现对构建的大型线性方程组进行求解,即就是将参数计算模块计算的A11、A12、A22、B1、B2、Φ作为参数数来对方程进行求解。本发明实施例中采用的求解算法是红黑法SOR(红黑法超松弛迭代)。基于红黑法SOR分组运算的原理,将SOR计算模型设计为可配置为奇数组计算模型和偶数组计算模型。基数组和偶数组的计算是相同的,所以只通过一个输入的参数信号指出当前模型参与奇运算数还是偶数运算。一旦选定该模型参与奇数组运算,则当像素流通过该模块时判断像素是否为组内像素。若当前像素为组内像素则更新输出的当前迭代值,否则将保持输入值不变并进行相应延迟后输出。将奇数组计算模型与偶数组计算模型首尾相连则组成完整的单次迭代模型,如图11所示。
本发明实施例中,通过单次迭代模型实现多次迭代模型有两种形式:(1)如图12所示,采用一个单次迭代模型和一个存储控制器,单次迭代的输出直接通过存储控制器存储到存储器中,并在下一循环从存储器读出后通过计算模块实现一次迭代。在存储控制器的控制下,实现方程的迭代求解。(2)如图13所示,将多个单次迭代模型级联实现多次迭代运算,一次迭代的输出直接接入下一次迭代模块的输入。
下面结合实验对本发明的技术效果作详细的描述。
本发明实施例对所实现的模型进行仿真输出的结果如图14、图15所示,其中最左侧图为输入图像,中间图为Matlab实现的光流算法的计算结果,最右侧图为本实施例所实现的模型仿真结果。可以看到,由于面向FPGA的模型采用定点数进行计算,模型的仿真输出与基于Matlab实现的算法仅有细微的差别。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行***,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种变分光流FPGA实现方法,其特征在于,所述变分光流FPGA实现方法包括:
第一步,对两帧输入图像的预处理,包括图像色彩空间转换和图像去噪,输出为两幅预处理后的图像;
第二步,预处理后的图通过图像邻域像素计算出当前像素的水平方向梯度、垂直方向梯度;同时,通过两帧图像中对应位置的像素计算出时间方向的梯度;
第三步,根据图像预处理模型、图像梯度计算模型的输出,计算出变分光流计算所需的大型线性方程组的参数;
第四步,通过迭代计算模型对最终的光流输出进行求解。
2.如权利要求1所述的变分光流FPGA实现方法,其特征在于,所述第一步包括:当输入是彩色图像经过色彩空间转换模块转换为灰度图像,若输入图像本身是灰度图像保持原始输入;通过图像行缓存模块实现窗口列向量的提取,然后由延迟缓存单元缓存多拍列向量后输出当前像素对应的滑动窗口,得到滑动窗口后,通过矩阵乘法单元实现窗口像素与滤波器模板像素的点乘,之后通过累加求和单元实现所有点乘结果的所有元素的累加和即为该窗口对应像素的最终输出。
3.如权利要求1所述的变分光流FPGA实现方法,其特征在于,所述第二步包括:图像梯度计算实现两帧图像的水平x方向梯度、垂直y方向梯度、时间t方向梯度,x方向的梯度由延迟单元实现左右相邻像素的灰度值相减进行计算;y方向梯度由行缓存单元实现上下相邻像素的提取后相减进行计算。
6.如权利要求5所述的变分光流FPGA实现方法,其特征在于,光流求解实现对构建的大型线性方程组进行求解,将参数计算模块计算的A11、A12、A22、B1、B2、Φ作为参数数对方程进行求解;采用的求解算法是红黑法SOR,基于红黑法SOR分组运算的原理,将SOR计算模型设计为配置为奇数组计算模型和偶数组计算模型;选定模型参与奇数组运算,则当像素流通过该模块时判断像素是否为组内像素;若当前像素为组内像素则更新输出的当前迭代值,否则将保持输入值不变并进行相应延迟后输出;将奇数组计算模型与偶数组计算模型首尾相连则组成完整的单次迭代模型。
7.如权利要求1所述的变分光流FPGA实现方法,其特征在于,所述变分光流FPGA实现方法通过单次迭代模型实现多次迭代模型有两种形式:
(1)采用一个单次迭代模型和一个存储控制器,单次迭代的输出直接通过存储控制器存储到存储器中,并在下一循环从存储器读出后通过计算模块实现一次迭代,在存储控制器的控制下,实现方程的迭代求解;
(2)将多个单次迭代模型级联实现多次迭代运算,一次迭代的输出直接接入下一次迭代模块的输入。
8.一种接收用户输入程序存储介质,所存储的计算机程序使电子设备执行权利要求1~7任意一项所述变分光流FPGA实现方法包括下列步骤:
第一步,对两帧输入图像的预处理,包括图像色彩空间转换和图像去噪,输出为两幅预处理后的图像;
第二步,预处理后的图通过图像邻域像素计算出当前像素的水平方向梯度、垂直方向梯度;同时,通过两帧图像中对应位置的像素计算出时间方向的梯度;
第三步,根据图像预处理模型、图像梯度计算模型的输出,计算出变分光流计算所需的大型线性方程组的参数;
第四步,通过迭代计算模型对最终的光流输出进行求解。
9.一种实施权利要求1~7任意一项所述变分光流FPGA实现方法的变分光流FPGA实现***,其特征在于,所述变分光流FPGA实现***包括:
图像预处理模块,用于完成对两帧输入图像的预处理功能,包括图像色彩空间转换模块和图像去噪模块,模型输出为两幅预处理后的图像;
图像梯度计算模块,包含图像窗口提取模块、梯度计算模块,用于通过图像邻域像素计算出当前像素的水平方向梯度、垂直方向梯度;同时,通过两帧图像中对应位置的像素计算出时间方向的梯度;
参数计算模块,用于根据图像预处理模型、图像梯度计算模型的输出,计算出变分光流计算所需的大型线性方程组的参数;
光流解算模块,用于通过迭代计算模型对最终的光流输出进行求解;
所述变分光流FPGA实现***的输入输出接口采用像素流接口实现;像素流接口用来传输串行的像素流数据,包括像素数据总线与像素控制总线;控制总线包括5个布尔信号,通过布尔信号指示像素的有效性及其在帧中的相对位置。
10.一种计算机视觉终端,其特征在于,所述计算机视觉终端搭载权利要求9所述的变分光流FPGA实现***。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010234746.4A CN111583092B (zh) | 2020-03-30 | 2020-03-30 | 一种变分光流fpga实现方法、***、存储介质、终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010234746.4A CN111583092B (zh) | 2020-03-30 | 2020-03-30 | 一种变分光流fpga实现方法、***、存储介质、终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111583092A CN111583092A (zh) | 2020-08-25 |
CN111583092B true CN111583092B (zh) | 2023-03-07 |
Family
ID=72124240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010234746.4A Active CN111583092B (zh) | 2020-03-30 | 2020-03-30 | 一种变分光流fpga实现方法、***、存储介质、终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111583092B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2008144840A (ru) * | 2008-11-14 | 2010-05-20 | Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." (KR) | Способ и устройство для вычисления и фильтрации карты диспарантности на основе стереоизображений |
CN105261042A (zh) * | 2015-10-19 | 2016-01-20 | 华为技术有限公司 | 光流估计的方法及装置 |
CN108776971A (zh) * | 2018-06-04 | 2018-11-09 | 南昌航空大学 | 一种基于分层最近邻域的变分光流确定方法及*** |
-
2020
- 2020-03-30 CN CN202010234746.4A patent/CN111583092B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2008144840A (ru) * | 2008-11-14 | 2010-05-20 | Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." (KR) | Способ и устройство для вычисления и фильтрации карты диспарантности на основе стереоизображений |
CN105261042A (zh) * | 2015-10-19 | 2016-01-20 | 华为技术有限公司 | 光流估计的方法及装置 |
CN108776971A (zh) * | 2018-06-04 | 2018-11-09 | 南昌航空大学 | 一种基于分层最近邻域的变分光流确定方法及*** |
Non-Patent Citations (1)
Title |
---|
光流场算法中优化图像梯度数据可信度方法;夏毓鹏等;《计算机工程与应用》(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111583092A (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6865847B2 (ja) | 処理装置、チップ、電子設備及び方法 | |
CN109117948B (zh) | 画风转换方法及相关产品 | |
Asano et al. | Performance comparison of FPGA, GPU and CPU in image processing | |
CN111310904A (zh) | 一种用于执行卷积神经网络训练的装置和方法 | |
KR20210099991A (ko) | 딥 러닝 처리 장치, 방법, 기기 및 저장 매체 | |
Monson et al. | Implementing high-performance, low-power FPGA-based optical flow accelerators in C | |
Fan et al. | Reconfigurable acceleration of 3D-CNNs for human action recognition with block floating-point representation | |
CN109472734B (zh) | 一种基于fpga的目标检测网络及其实现方法 | |
Zhang et al. | Lucas-kanade optical flow estimation on the ti c66x digital signal processor | |
CN103413273A (zh) | 一种基于gpu加速实现图像复原处理方法 | |
Huang et al. | IECA: An in-execution configuration CNN accelerator with 30.55 GOPS/mm² area efficiency | |
CN102054109B (zh) | 集成电路下层硬件映射方法、数据控制流生成方法及装置 | |
CN111583092B (zh) | 一种变分光流fpga实现方法、***、存储介质、终端 | |
Shan et al. | A CNN Accelerator on FPGA with a Flexible Structure | |
Zhang et al. | A-u3d: A unified 2d/3d cnn accelerator on the versal platform for disparity estimation | |
CN111178492B (zh) | 计算装置及相关产品、执行人工神经网络模型的计算方法 | |
CN115345285B (zh) | 基于gpu的时序图神经网络训练方法、***及电子设备 | |
CN115294263A (zh) | 一种光照估计模型、网络、方法及*** | |
Wu et al. | Real-time low-power binocular stereo vision based on FPGA | |
CN113255538A (zh) | 基于fpga的红外弱小目标的检测跟踪装置及方法 | |
Belyakov et al. | An FPGA-optimized architecture of variational optical flow | |
Mémin et al. | VLSI design methodology for edge-preserving image reconstruction | |
Sosa et al. | Change-driven data flow image processing architecture for optical flow computation | |
Wassner et al. | Hardware-software codesign of a tightly-coupled coprocessor for video content analysis | |
Wang et al. | A co-design method for parallel image processing accelerator based on DSP and FPGA |
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 |