CN112150409B - 基于fpga的实时全方位目标检测方法及*** - Google Patents
基于fpga的实时全方位目标检测方法及*** Download PDFInfo
- Publication number
- CN112150409B CN112150409B CN202010855029.3A CN202010855029A CN112150409B CN 112150409 B CN112150409 B CN 112150409B CN 202010855029 A CN202010855029 A CN 202010855029A CN 112150409 B CN112150409 B CN 112150409B
- Authority
- CN
- China
- Prior art keywords
- image data
- data
- filtering
- new
- value
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 41
- 238000000034 method Methods 0.000 claims abstract description 93
- 238000009499 grossing Methods 0.000 claims abstract description 40
- 230000011218 segmentation Effects 0.000 claims abstract description 32
- 238000000605 extraction Methods 0.000 claims abstract description 22
- 230000002708 enhancing effect Effects 0.000 claims abstract description 10
- 238000001914 filtration Methods 0.000 claims description 263
- 238000006243 chemical reaction Methods 0.000 claims description 30
- 230000001629 suppression Effects 0.000 claims description 7
- 230000000750 progressive effect Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 11
- 239000002131 composite material Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Images
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
- 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
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/136—Segmentation; Edge detection involving thresholding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Quality & Reliability (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种基于FPGA的实时全方位目标检测方法及***,该方法为:逐行对原始图像Iorig进行初步细节增强,获得大目标边缘以及小目标增强后的图像Ior;根据原始图像数据Iorig(i,j)对所述大目标边缘以及小目标增强后的图像Ior的图像数据Ior(i,j)进行细节提取获得平滑大目标边缘后的细节层图像数据Inew(i,j);对所述平滑大目标边缘后的细节层图像数据Inew(i,j)进行二次细节增强,获得仅包含小目标的细节层图像数据Idl new(i,j);对所述仅包含小目标的细节层图像数据Idl new(i,j)进行阈值分割,获得阈值分割后的图像Its n,n为像素索引;对所述阈值分割后的图像Its n进行下采样,并且逐行读取数据及逐行显示图像数据。
Description
技术领域
本发明属于目标检测领域,具体涉及一种基于FPGA的实时全方位目标检测方法及***。
背景技术
目标检测***在无人搜救、自动监控***和军事领域有着广泛的应用;目标检测***的核心问题是小目标检测,小目标检测的主要难点是由于目标形状信息的不足而导致的对目标的精确定位。
为了有效地检测出小目标,研究人员提出了一些方法,如MaxMean和Max-Medium滤波器、Top-Hat滤波器和二维最小均方(TDLMS)滤波器等,但这些方法都有缺点。其中:
最大均值和最大中值滤波的缺点是:该方法在目标与背景差异较小时不能有效检测出目标。
Top-Hat滤波的缺点是:该方法需要选择合适的结构元素,对检测效果影响较大。
TDLMS滤波的缺点是:该方法对背景预测精度较差。
在算法实现方面,通常使用嵌入式***进行目标检测。嵌入式***被称为“专为特定应用而设计的专用计算机***”,在实时图像处理领域得到了广泛的应用。而其中FPGA以其直接面向用户、灵活性强、通用性强、实现速度快等特点成为最常用的设备之一。
目标检测***有两个主要挑战。其一,除非焦距可以自适应调整,否则很难用单个探测器实现大视场的探测,但这会增加***的复杂度,降低空间分辨率,从而进一步影响***的性能;另一个问题是由于没有形状或纹理信息可供利用,如何有效地检测出弱小目标。
发明内容
有鉴于此,本发明的主要目的在于提供一种基于FPGA的实时全方位目标检测方法及***。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供一种基于FPGA的实时全方位目标检测方法,该方法为:
逐行对原始图像Iorig进行初步细节增强,获得大目标边缘以及小目标增强后的图像Ior;
根据原始图像数据Iorig(i,j)对所述大目标边缘以及小目标增强后的图像Ior的图像数据Ior(i,j)进行细节提取获得平滑大目标边缘后的细节层图像数据Inew(i,j);
对所述平滑大目标边缘后的细节层图像数据Inew(i,j)进行二次细节增强,获得仅包含小目标的细节层图像数据Idl new(i,j);
对所述仅包含小目标的细节层图像数据Idl new(i,j)进行阈值分割,获得阈值分割后的图像Its n,n为像素索引;
对所述阈值分割后的图像Its n进行下采样,并且逐行读取数据及逐行显示图像数据。
上述方案中,所述逐行对原始图像Iorig进行初步细节增强,获得大目标边缘以及小目标增强后的图像Ior,具体为:对原始图像Iorig的第i行第j列像素位置的图像数据Iorig(i,j)进行平方操作,并将第一平方值I2进行均值滤波,获得第二滤波结果m11;对原始图像Iorig的第i行第j列像素位置的图像数据Iorig(i,j)进行均值滤波,再对第一滤波结果m1执行平方操作,获得第二平方值m1 2;将所述第二滤波结果m11与第二平方值m1 2的差值v1转换为浮点插值数据vf后,对参数H(k)和浮点差值数据vf求和获得求和值vm;将所述浮点差值数据vf除以求和值vm获得参数a,并对所述参数a进行均值滤波获得第三滤波结果ma;将所述第一滤波结果m1转换为浮点滤波数据mf后,再将第一滤波结果m1与浮点滤波数据mf和参数a的乘积值am相减获得参数b,对参数b进行均值滤波获得第四均值滤波结果mb;最终,将所述原始图像第i行第j列像素的图像数据Iorig(i,j)和第三滤波结果ma的乘积值Ia,根据所述乘积值Ia和第四滤波结果mb求和获得大目标边缘以及小目标增强后的图像Ior;
所述对所述平滑大目标边缘后的细节层图像数据Inew(i,j)进行二次细节增强,获得仅包含小目标的细节层图像数据Idl new(i,j),具体为:对平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)进行平方操作,并将第三平方值I2 2进行均值滤波,获得第六滤波结果m22;对平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)进行均值滤波,再对第五滤波结果m2执行平方操作,获得第四平方值m2 2;将所述第六滤波结果m22与第四平方值m2 2的差值v2转换为浮点插值数据vf2后,对参数H2(k)和浮点差值数据vf2求和获得求和值vm2;将所述浮点差值数据vf2除以求和值vm2获得参数a2,并对所述参数a2进行均值滤波获得第七滤波结果ma2;将所述第五滤波结果m2转换为浮点滤波数据mf2后,再将第五滤波结果m2与浮点滤波数据mf2和参数a2的乘积值am2相减获得参数b2,对参数b2进行均值滤波获得第八滤波结果mb2;最终,将所述平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)和第七滤波结果ma2的乘积值Ia2,根据所述乘积值Ia2和第八滤波结果mb2求和获得仅包含小目标的细节层图像数据Idl new(i,j)。
上述方案中,所述根据原始图像数据Iorig(i,j)对所述大目标边缘以及小目标增强后的图像Ior的图像数据Ior(i,j)进行细节提取获得平滑大目标边缘后的细节层图像数据Inew(i,j),具体为:将图像数据Ior(i,j)和原始图像数据Iorig(i,j)作差确保结果不小于零,获得仅包含大目标边缘与小目标的细节层图像数据Idl(i,j);
将细节层图像数据Idl(i,j)除以255,将图像数据转换到0和1之间,获得归一化后的细节层图像数据Idl(i,j),用norm(Idl)表示;
通过1减去细节层图像数据norm(Idl),即对norm(Idl)取逆,用(1-norm(Idl))表示;
将原始图像数据Iorig(i,j)除以255,将图像数据转换到0和1之间,获得归一化的原始图像数据,用norm(Iorig)表示;
对所述图像数据norm(Idl)和图像数据(1-norm(Idl))进行对应元素相乘,获得平滑大目标边缘后的细节层图像数据Inew(i,j)。
上述方案中,所述对所述仅包含小目标的细节层图像数据Idl new(i,j)进行阈值分割,获得阈值分割后的图像Its n,n为像素索引,具体为:对细节层图像Idl new第i行第j列像素位置的图像数据Idl new(i,j)进行均值滤波获得滤波结果m3对所述滤波结果m3进行平方操作获得平方值m3 2;
对细节层图像Idl new第i行第j列像素位置的图像数据Idl new(i,j)进行平方操作获得平方值I3 2,对所述平方值I3 2进行均值滤波获得滤波结果m31;
将所述滤波结果m3和乘积值相加获得阈值Th,将细节层图像Idl new第i行第j列像素位置的数据Idl new(i,j)与阈值Th相比较,大于阈值置为255,小于阈值置为0,并最终获得阈值分割后的图像Its n,n为像素索引。
上述方案中,所述对所述阈值分割后的图像Its n进行下采样,并且逐行读取数据显示图像数据,具体为:对阈值分割后的图像Its n进行下采样,逐行输入图像数据,每8个像素点进行一次读取,输入每行数据后,间隔5行再进行图像数据读取,将读取的图像数据分为四部分图像的数据,分别用Ⅱ1(a)、Ⅱ2(a)、Ⅱ3(a)、Ⅱ4(a)表示,a代表当前操作的行数,对四部分图像分别从依次在写状态开始写入第一行图像数据Ⅱ1(1)至最后一行图像数据Ⅱ4(1),随后,开始依次读出显示第一行图像数据Ⅱi(i)(i=1,2,3,4),并开始写入第二行图像数据Ⅱj(2)(j=i),如此反复,实现逐行显示图像数据。
本发明实施例还提供一种基于FPGA的实时全方位目标检测***,该***包括主***、从***;
所述从***并列设置十个,并且分别与主***连接,均用于逐行对原始图像Iorig进行初步细节增强,获得大目标边缘以及小目标增强后的图像Ior;对所述大目标边缘以及小目标增强后的图像Ior的图像数据Ior(i,j)和原始图像数据Iorig(i,j)进行细节提取获得平滑大目标边缘后的细节层图像数据Inew(i,j);对所述平滑大目标边缘后的细节层图像数据Inew(i,j)进行二次细节增强,获得仅包含小目标的细节层图像数据Idl new(i,j);对所述仅包含小目标的细节层图像数据Idl new(i,j)进行阈值分割,获得阈值分割后的图像Its n,n为像素索引,并且将阈值分割后的图像Its n发送到主***;
所述主***,用于对所述阈值分割后的图像Its n进行下采样,并且逐行读取数据及逐行显示图像数据;
所述从***均包括探测器和数据发送器,其中,所述探测器用于完成小目标检测,包括依次连接的背景抑制模块和阈值分割模块;所述阈值分割模块与数据发送器连接,所述数据发送器与主***连接。
上述方案中,所述背景抑制模块包括两个细节增强模块和一个细节提取模块;
第一个细节增强模块,用于逐行对原始图像Iorig进行初步细节增强,获得大目标边缘以及小目标增强后的图像Ior;具体用于对原始图像Iorig的第i行第j列像素位置的图像数据Iorig(i,j)进行平方操作,并将第一平方值I2进行均值滤波,获得第二滤波结果m11;对原始图像的第i行第j列像素位置的图像数据Iorig(i,j)进行均值滤波,再对第一滤波结果m1执行平方操作,获得第二平方值m1 2;将所述第二滤波结果m11与第二平方值m1 2的差值v1转换为浮点插值数据vf后,对参数H(k)和浮点差值数据vf求和获得求和值vm;将所述浮点差值数据vf除以求和值vm获得参数a,并对所述参数a进行均值滤波获得第三滤波结果ma;将所述第一滤波结果m1转换为浮点滤波数据mf后,再将第一滤波结果m1与浮点滤波数据mf和参数a的乘积值am相减获得参数b,对参数b进行均值滤波获得第四均值滤波结果mb;最终,将所述原始图像第i行第j列像素的图像数据Iorig(i,j)和第三滤波结果ma的乘积值Ia,根据所述乘积值Ia和第四滤波结果mb求和获得大目标边缘以及小目标增强后的图像Ior;
所述细节提取模块,用于根据原始图像数据Iorig(i,j)对所述大目标边缘以及小目标增强后的图像Ior的图像数据Ior(i,j)进行细节提取获得平滑大目标边缘后的细节层图像数据Inew(i,j);具体用于将图像数据Ior(i,j)和原始图像数据Iorig(i,j)作差确保结果不小于零,获得仅包含大目标边缘与小目标的细节层图像数据Idl(i,j);将细节层图像数据Idl(i,j)除以255,并且将图像数据转换到0和1之间,获得归一化后的细节层图像数据Idl(i,j),用norm(Idl)表示;通过1减去细节层图像数据norm(Idl),即对norm(Idl)取逆,用(1-norm(Idl))表示;将原始图像数据Iorig(i,j)除以255,将图像数据转换到0和1之间,获得归一化的原始图像数据,用norm(Iorig)表示;对所述图像数据norm(Idl)和图像数据(1-norm(Idl))进行对应元素相乘,获得平滑大目标边缘后的细节层图像数据Inew(i,j);
第二个细节增强模块,用于对所述平滑大目标边缘后的细节层图像数据Inew(i,j)进行二次细节增强,获得仅包含小目标的细节层图像数据Idl new(i,j);具体用于对平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)进行平方操作,并将第三平方值I2 2进行均值滤波,获得第六滤波结果m22;对平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)进行均值滤波,再对第五滤波结果m2执行平方操作,获得第四平方值m2 2;将所述第六滤波结果m22与第四平方值m2 2的差值v2转换为浮点插值数据vf2后,对参数H2(k)和浮点差值数据vf2求和获得求和值vm2;将所述浮点差值数据vf2除以求和值vm2获得参数a2,并对所述参数a2进行均值滤波获得第七滤波结果ma2;将所述第五滤波结果m2转换为浮点滤波数据mf2后,再将第五滤波结果m2与浮点滤波数据mf2和参数a2的乘积值am2相减获得参数b2,对参数b2进行均值滤波获得第八滤波结果mb2;最终,将所述平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)和第七滤波结果ma2的乘积值Ia2,根据所述乘积值Ia2和第八滤波结果mb2求和获得仅包含小目标的细节层图像数据Idl new(i,j)。
上述方案中,所述细节增强模块包括主体模块和参数生成模块;
所述参数生成模块包括:四个减法器、四个乘法器、一个加法器和一个系数存储器;
第一减法器,用于对输入原始图像第i行第j列像素位置的数据Iorig(i,j)和第i+1行第j列像素位置的数据Iorig(i+1,j)作差得到插值c1并送入第一乘法器;
第二减法器,用于对输入原始图像第i行第j列像素位置的数据Iorig(i,j)和第i-1行第j列像素位置的数据Iorig(i-1,j)作差得到插值c2并送入第二乘法器;
第三减法器,用于对输入原始图像第i行第j列像素位置的数据Iorig(i,j)和第i行第j+1列像素位置的数据Iorig(i,j+1)作差得到插值c3并送入第三乘法器;
第四减法器,用于对输入原始图像第i行第j列像素位置的数据Iorig(i,j)和第i行第j-1列像素位置的数据Iorig(i,j-1)作差得到插值c4并送入第四乘法器;
系数存储器,用于根据插值c1、c2、c3、c4的数值大小输出不同的系数k1、k2、k3、k4并分别送入四个乘法器h;
第一乘法器,用于接收插值c1并与系数k1相乘,再将乘积值c1k1送入加法器;
第二乘法器,用于接收插值c2并与系数k2相乘,再将乘积值c2k2送入加法器;
第三乘法器,用于接收插值c3并与系数k3相乘,再将乘积值c3k3送入加法器;
第四乘法器,用于接收插值c4并与系数k4相乘,再将乘积值c4k4送入加法器;
加法器,用于将乘积值c1k1、c2k2、c3k3、c4k4相加得到参数H(k)并将其送入主体模块;
所述主体模块包括两个平方运算单元,四个均值滤波,一个整型减法器,两个类型转换器,两个浮点加法器,两个浮点乘法器,一个浮点除法器和一个浮点减法器;
第一平方运算单元,用于对原始图像第i行第j列像素位置的数据Iorig(i,j)进行平方操作,并将第一平方值I2传输给第二均值滤波器进行均值滤波,再将第二滤波结果m11传输给整型减法器;
第一均值滤波器,用于对原始图像第i行第j列像素位置的数据Iorig(i,j)进行平方操作,并将第一滤波结果m1分别传输给第二平方运算单元、第二类型转换器和浮点减法器,通过第二平方运算单元对第一滤波结果m1执行平方操作,并将第二平方值m1 2传输给整型减法器;
整型减法器,用于将第二滤波结果m11与第二平方值m1 2的差值v1传输给第一类型转换器,再将差值v1转换为浮点插值数据vf后分别传输给第一浮点加法器和浮点除法器,通过第一浮点加法器,对参数H(k)和浮点差值数据vf求和,并将求和值vm传输给浮点除法器;
浮点除法器,用于将浮点差值数据vf除以求和值vm得到参数a,并将参数a分别传输给第三均值滤波器和第一浮点乘法器,通过第三均值滤波器对参数a进行均值滤波,并将第三滤波结果ma传输给第二浮点乘法器;
第二类型转换器,用于将第一滤波结果m1转换为浮点滤波数据mf后传输给第一浮点乘法器,再将浮点滤波数据mf和参数a的乘积值am传输给第一浮点减法器,并由第一滤波结果m1与乘积值am相减得到参数b,再将参数b传输给第四均值滤波器进行均值滤波,并将第四均值滤波结果mb传输给第二浮点加法器;
第二浮点乘法器,用于接收原始图像第i行第j列像素的数据Iorig(i,j),并将处理图像数据Iorig(i,j)和第三滤波结果ma的乘积值Ia传输给第二浮点加法器,再对乘积值和第四滤波结果mb求和得到大目标边缘以及小目标增强后的图像Ior(i,j)。
上述方案中,所述阈值分割模块,用于对所述仅包含小目标的细节层图像数据Idl new(i,j)进行阈值分割,获得阈值分割后的图像Its n,n为像素索引;具体用于对细节层图像Idl new第i行第j列像素位置的图像数据Idl new(i,j)进行均值滤波获得滤波结果m3对所述滤波结果m3进行平方操作获得平方值m3 2;对细节层图像Idl new第i行第j列像素位置的图像数据Idl new(i,j)进行平方操作获得平方值I3 2,对所述平方值I3 2进行均值滤波获得滤波结果m31;对所述平方值m3 2和滤波结果m31进行作差获得差值将差值和常数k=1.2相乘获得乘积值将所述滤波结果m3和乘积值相加获得阈值Th,将细节层图像Idl new第i行第j列像素位置的数据Idl new(i,j)与阈值Th相比较,大于阈值置为255,小于阈值置为0,并最终获得阈值分割后的图像Its n,n为像素索引。
上述方案中,所述主***,具体用于对阈值分割后的图像Its n进行下采样,逐行输入图像数据,每8个像素点进行一次读取,输入每行数据后,间隔5行再进行图像数据读取,将读取的图像数据分为四部分图像的数据,分别用Ⅱ1(a)、Ⅱ2(a)、Ⅱ3(a)、Ⅱ4(a)表示,a代表当前操作的行数;
所述主***采用单线FIFO进行逐行显示图像数据,该单线FIFO由四个相互独立的子FIFO组成,四部分图像的数据与四个子FIFO分别对应,向四个子FIFO同时写入预设的初始化数据,然后从每个FIFO读出数据,同时只有一个子FIFO在读出数据,在第一个子FIFO读出初始化数据的同时其余子FIFO仍然在写入初始化数据,在第一个子FIFO中初始化数据全部读出后,第一个子FIFO进入写状态开始写入第一行图像数据I1(1),与此同时,第二个子FIFO进入读状态,开始读出初始化数据,依次类推,直到第四个子FIFO中的初始化数据全部读出后,第一个子FIFO开始读出第一行图像数据I1(1)并开始第一行图像数据的显示;如此反复,实现逐行显示图像数据。
与现有技术相比,本发明采用了级联反转滤波小目标检测算法,可以很好地保留小目标的细节并平滑大目标的边缘,并通过背景抑制和阈值分割提取目标,解决了大视场与高空间分辨率之间的矛盾,采用多探测器共轴凝视成像的策略,采用单行缓存显示的显示方法来展示检测结果,可以节省大量的存储空间。
附图说明
图1为发明实施例提供一种基于FPGA的实时全方位目标检测方法的流程图;
图2为本发明实施例还提供一种基于FPGA的实时全方位目标检测***的连接框图;
图3为本发明中参数生成模块的结构框图;
图4为本发明***中主体模块的结构框图;
图5为本发明***中细节提取模块的结构框图;
图6为本发明***中阈值分割模块的结构框图;
图7为本发明***中显示模块的结构示意图;
图8为本发明***中所提算法对合成图像软件实现和硬件实现的结果对比图;
图9为本发明***中所提算法对真实图像软件实现和硬件实现的结果对比图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供一种基于FPGA的实时全方位目标检测方法,如图1所示,该方法通过以下步骤实现:
步骤101:逐行对原始图像Iorig进行初步细节增强,获得大目标边缘以及小目标增强后的图像Ior;
具体地,对原始图像Iorig的第i行第j列像素位置的图像数据Iorig(i,j)进行平方操作,并将第一平方值I2进行均值滤波,获得第二滤波结果m11;对原始图像Iorig的第i行第j列像素位置的图像数据Iorig(i,j)进行均值滤波,再对第一滤波结果m1执行平方操作,获得第二平方值m1 2;将所述第二滤波结果m11与第二平方值m1 2的差值v1转换为浮点插值数据vf后,对参数H(k)和浮点差值数据vf求和获得求和值vm;将所述浮点差值数据vf除以求和值vm获得参数a,并对所述参数a进行均值滤波获得第三滤波结果ma;将所述第一滤波结果m1转换为浮点滤波数据mf后,再将第一滤波结果m1与浮点滤波数据mf和参数a的乘积值am相减获得参数b,对参数b进行均值滤波获得第四均值滤波结果mb;最终,将所述原始图像第i行第j列像素的图像数据Iorig(i,j)和第三滤波结果ma的乘积值Ia,根据所述乘积值Ia和第四滤波结果mb求和获得大目标边缘以及小目标增强后的图像Ior。
所述参数H(k)的获得过程:对输入原始图像第i行第j列像素位置的图像数据Iorig(i,j)和第i+1行第j列像素位置的图像数据Iorig(i+1,j)作差获得插值c1;
对输入原始图像第i行第j列像素位置的图像数据Iorig(i,j)和第i-1行第j列像素位置的图像数据Iorig(i-1,j)作差获得插值c2;
对输入原始图像第i行第j列像素位置的体现数据Iorig(i,j)和第i行第j+1列像素位置的体现数据Iorig(i,j+1)作差获得插值c3;
对输入原始图像第i行第j列像素位置的图像数据Iorig(i,j)和第i行第j-1列像素位置的图像数据Iorig(i,j-1)作差获得插值c4;
根据插值c1、c2、c3、c4的数值大小输出不同的系数k1、k2、k3、k4;
将插值c1与系数k1相乘获得乘积值c1k1;
将插值c2与系数k2相乘获得乘积值c2k2;
将插值c3与系数k3相乘获得乘积值c3k3;
将插值c4与系数k4相乘获得乘积值c4k4;
将乘积值c1k1、c2k2、c3k3、c4k4相加获得参数H(k)。
步骤102:根据原始图像数据Iorig(i,j)对所述大目标边缘以及小目标增强后的图像Ior的图像数据Ior(i,j)进行细节提取获得平滑大目标边缘后的细节层图像数据Inew(i,j);
具体地,将图像数据Ior(i,j)和原始图像数据Iorig(i,j)作差确保结果不小于零,获得仅包含大目标边缘与小目标的细节层图像数据Idl(i,j);
将细节层图像数据Idl(i,j)除以255,将图像数据转换到0和1之间,获得归一化后的细节层图像数据Idl(i,j),用norm(Idl)表示;
通过1减去细节层图像数据norm(Idl),即对norm(Idl)取逆,用(1-norm(Idl))表示;
将原始图像数据Iorig(i,j)除以255,将图像数据转换到0和1之间,获得归一化的原始图像数据,用norm(Iorig)表示;
对所述图像数据norm(Idl)和图像数据(1-norm(Idl))进行对应元素相乘,获得平滑大目标边缘后的细节层图像数据Inew(i,j)。
步骤103:对所述平滑大目标边缘后的细节层图像数据Inew(i,j)进行二次细节增强,获得仅包含小目标的细节层图像数据Idl new(i,j);
具体地,对平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)进行平方操作,并将第三平方值I2 2进行均值滤波,获得第六滤波结果m22;对平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)进行均值滤波,再对第五滤波结果m2执行平方操作,获得第四平方值m2 2;将所述第六滤波结果m22与第四平方值m2 2的差值v2转换为浮点插值数据vf2后,对参数H2(k)和浮点差值数据vf2求和获得求和值vm2;将所述浮点差值数据vf2除以求和值vm2获得参数a2,并对所述参数a2进行均值滤波获得第七滤波结果ma2;将所述第五滤波结果m2转换为浮点滤波数据mf2后,再将第五滤波结果m2与浮点滤波数据mf2和参数a2的乘积值am2相减获得参数b2,对参数b2进行均值滤波获得第八滤波结果mb2;最终,将所述平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)和第七滤波结果ma2的乘积值Ia2,根据所述乘积值Ia2和第八滤波结果mb2求和获得仅包含小目标的细节层图像数据Idl new(i,j)。
所述参数H2(k)的获得过程:对平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)和第i+1行第j列像素位置的图像数据Inew(i+1,j)作差获得插值c12;
对平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)和第i-1行第j列像素位置的图像数据Inew(i-1,j)作差获得插值c22;
对平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)和第i行第j+1列像素位置的体现数据Inew(i,j+1)作差获得插值c32;
对平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)和第i行第j-1列像素位置的图像数据Inew(i,j-1)作差获得插值c42;
根据插值c12、c22、c32、c42的数值大小输出不同的系数k12、k22、k32、k42;
将插值c12与系数k12相乘获得乘积值c12k12;
将插值c22与系数k22相乘获得乘积值c22k22;
将插值c32与系数k32相乘获得乘积值c32k32;
将插值c42与系数k42相乘获得乘积值c42k42;
将乘积值c12k12、c22k22、c32k32、c42k42相加获得参数H2(k)。
步骤104:对所述仅包含小目标的细节层图像数据Idl new(i,j)进行阈值分割,获得阈值分割后的图像Its n,n为像素索引;
具体地,对细节层图像Idl new第i行第j列像素位置的图像数据Idl new(i,j)进行均值滤波获得滤波结果m3对所述滤波结果m3进行平方操作获得平方值m3 2;
对细节层图像Idl new第i行第j列像素位置的图像数据Idl new(i,j)进行平方操作获得平方值I3 2,对所述平方值I3 2进行均值滤波获得滤波结果m31;
将所述滤波结果m3和乘积值相加获得阈值Th,将细节层图像Idl new第i行第j列像素位置的数据Idl new(i,j)与阈值Th相比较,大于阈值置为255,小于阈值置为0,并最终获得阈值分割后的图像Its n,n为像素索引。
步骤105:对所述阈值分割后的图像Its n进行下采样,并且逐行读取数据及逐行显示图像数据。
具体地,对阈值分割后的图像Its n进行下采样,逐行输入图像数据,每8个像素点进行一次读取,输入每行数据后,间隔5行再进行图像数据读取,将读取的图像数据分为四部分图像的数据,分别用Ⅱ1(a)、Ⅱ2(a)、Ⅱ3(a)、Ⅱ4(a)表示,a代表当前操作的行数,对四部分图像分别从依次在写状态开始写入第一行图像数据Ⅱ1(1)至最后一行图像数据Ⅱ4(1),随后,开始依次读出显示第一行图像数据Ⅱi(i)(i=1,2,3,4),并开始写入第二行图像数据Ⅱj(2)(j=i),如此反复,实现逐行显示图像数据。
本发明实施例还提供一种基于FPGA的实时全方位目标检测***,如图2所示,该***包括主***、从***;
所述从***并列设置十个,并且分别与主***连接,均用于对原始图像Iorig进行初步细节增强,获得大目标边缘以及小目标增强后的图像Ior;对所述大目标边缘以及小目标增强后的图像Ior的图像数据Ior(i,j)和原始图像数据Iorig(i,j)进行细节提取获得平滑大目标边缘后的细节层图像数据Inew(i,j);对所述平滑大目标边缘后的细节层图像数据Inew(i,j)进行二次细节增强,获得仅包含小目标的细节层图像数据Idl new(i,j);对所述仅包含小目标的细节层图像数据Idl new(i,j)进行阈值分割,获得阈值分割后的图像Its n,n为像素索引,并且将阈值分割后的图像Its n发送到主***;
所述主***用于对所述阈值分割后的图像Its n进行下采样,并且逐行读取数据及逐行显示图像数据。
所述从***均包括探测器和数据发送器,其中,所述探测器用于完成小目标检测,包括依次连接的背景抑制模块和阈值分割模块;所述阈值分割模块与数据发送器连接,所述数据发送器与主***连接。
所述背景抑制模块包括:两个细节增强模块和一个细节提取模块;
所述第一细节增强模块,接收输入原始图像Iorig进行初步细节增强,获得大目标边缘以及小目标增强后的图像Ior,并将其传输给第一细节提取模块;
第一个细节增强模块,用于逐行对原始图像Iorig进行初步细节增强,获得大目标边缘以及小目标增强后的图像Ior;具体用于对原始图像Iorig的第i行第j列像素位置的图像数据Iorig(i,j)进行平方操作,并将第一平方值I2进行均值滤波,获得第二滤波结果m11;对原始图像的第i行第j列像素位置的图像数据Iorig(i,j)进行均值滤波,再对第一滤波结果m1执行平方操作,获得第二平方值m1 2;将所述第二滤波结果m11与第二平方值m1 2的差值v1转换为浮点插值数据vf后,对参数H(k)和浮点差值数据vf求和获得求和值vm;将所述浮点差值数据vf除以求和值vm获得参数a,并对所述参数a进行均值滤波获得第三滤波结果ma;将所述第一滤波结果m1转换为浮点滤波数据mf后,再将第一滤波结果m1与浮点滤波数据mf和参数a的乘积值am相减获得参数b,对参数b进行均值滤波获得第四均值滤波结果mb;最终,将所述原始图像第i行第j列像素的图像数据Iorig(i,j)和第三滤波结果ma的乘积值Ia,根据所述乘积值Ia和第四滤波结果mb求和获得大目标边缘以及小目标增强后的图像Ior;
所述细节提取模块,用于根据原始图像数据Iorig(i,j)对所述大目标边缘以及小目标增强后的图像Ior的图像数据Ior(i,j)进行细节提取获得平滑大目标边缘后的细节层图像数据Inew(i,j);具体用于将图像数据Ior(i,j)和原始图像数据Iorig(i,j)作差确保结果不小于零,获得仅包含大目标边缘与小目标的细节层图像数据Idl(i,j);将细节层图像数据Idl(i,j)除以255,并且将图像数据转换到0和1之间,获得归一化后的细节层图像数据Idl(i,j),用norm(Idl)表示;通过1减去细节层图像数据norm(Idl),即对norm(Idl)取逆,用(1-norm(Idl))表示;将原始图像数据Iorig(i,j)除以255,将图像数据转换到0和1之间,获得归一化的原始图像数据,用norm(Iorig)表示;对所述图像数据norm(Idl)和图像数据(1-norm(Idl))进行对应元素相乘,获得平滑大目标边缘后的细节层图像数据Inew(i,j);
第二个细节增强模块,用于对所述平滑大目标边缘后的细节层图像数据Inew(i,j)进行二次细节增强,获得仅包含小目标的细节层图像数据Idl new(i,j);具体用于对平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)进行平方操作,并将第三平方值I2 2进行均值滤波,获得第六滤波结果m22;对平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)进行均值滤波,再对第五滤波结果m2执行平方操作,获得第四平方值m2 2;将所述第六滤波结果m22与第四平方值m2 2的差值v2转换为浮点插值数据vf2后,对参数H2(k)和浮点差值数据vf2求和获得求和值vm2;将所述浮点差值数据vf2除以求和值vm2获得参数a2,并对所述参数a2进行均值滤波获得第七滤波结果ma2;将所述第五滤波结果m2转换为浮点滤波数据mf2后,再将第五滤波结果m2与浮点滤波数据mf2和参数a2的乘积值am2相减获得参数b2,对参数b2进行均值滤波获得第八滤波结果mb2;最终,将所述平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)和第七滤波结果ma2的乘积值Ia2,根据所述乘积值Ia2和第八滤波结果mb2求和获得仅包含小目标的细节层图像数据Idl new(i,j)。
所述细节增强模块包括:主体模块和参数生成模块。
如图3所示,所述参数生成模块包括:四个减法器1112a,1112b,1112c,1112d、四个乘法器1112e,1112f,1112g,1112h、一个加法器1112i和一个系数存储器1112j。其中:
第一减法器1112a用于对输入原始图像第i行第j列像素位置的数据Iorig(i,j)和第i+1行第j列像素位置的数据Iorig(i+1,j)作差得到插值c1并送入第一乘法器1112e;
第二减法器1112b用于对输入原始图像第i行第j列像素位置的数据Iorig(i,j)和第i-1行第j列像素位置的数据Iorig(i-1,j)作差得到插值c2并送入第二乘法器1112f;
第三减法器1112c用于对输入原始图像第i行第j列像素位置的数据Iorig(i,j)和第i行第j+1列像素位置的数据Iorig(i,j+1)作差得到插值c3并送入第三乘法器1112g;
第四减法器1112d用于对输入原始图像第i行第j列像素位置的数据Iorig(i,j)和第i行第j-1列像素位置的数据Iorig(i,j-1)作差得到插值c4并送入第四乘法器1112h;
系数存储器1112j用于根据插值c1、c2、c3、c4的数值大小输出不同的系数k1、k2、k3、k4并分别送入乘法器1112e,1112f,1112g,1112h;
第一乘法器1112e用于接收插值c1并与系数k1相乘,再将乘积值c1k1送入加法器1112i;
第二乘法器1112f用于接收插值c2并与系数k2相乘,再将乘积值c2k2送入加法器1112i;
第三乘法器1112g用于接收插值c3并与系数k3相乘,再将乘积值c3k3送入加法器1112i;
第四乘法器1112h用于接收插值c4并与系数k4相乘,再将乘积值c4k4送入加法器1112i;
加法器用于将乘积值c1k1、c2k2、c3k3、c4k4相加得到参数H(k)并将其送入主体模块。
参数生成模块中的系数存储器1112j是一个长度为256的RAM,不同的地址与插值c1、c2、c3、c4的不同数值大小相对应,每个地址分别储存着系数k1、k2、k3、k4的相应数值。
如图4所示,所述主体模块包括:两个平方运算单元1111a、1111b,四个均值滤波1111c、1111d、1111e、1111f,一个整型减法器1111g,两个类型转换器1111h、1111i,两个浮点加法器1111j、1111k,两个浮点乘法器1111l、1111m,一个浮点除法器1111n和一个浮点减法器1211o。其中:
第一平方运算单元1111a,用于对原始图像第i行第j列像素位置的数据Iorig(i,j)进行平方操作,并将第一平方值I2传输给第二均值滤波器1111d进行均值滤波,再将第二滤波结果m11传输给整型减法器1111g;
第一均值滤波器1111c,用于对原始图像第i行第j列像素位置的数据Iorig(i,j)进行平方操作,并将第一滤波结果m1分别传输给第二平方运算单元1111b、第二类型转换器1111i和浮点减法器1111o,通过第二平方运算单元1111b对第一滤波结果m1执行平方操作,并将第二平方值m1 2传输给整型减法器1111g;
该整型减法器1111g,将第二滤波结果m11与第二平方值m1 2的差值v1传输给第一类型转换器1111h,再将差值v1转换为浮点插值数据vf后分别传输给第一浮点加法器1111j和浮点除法器1111n,通过第一浮点加法器1111j,对参数H(k)和浮点差值数据vf求和,并将求和值vm传输给浮点除法器1111n;
该浮点除法器1111n,将浮点差值数据vf除以求和值vm得到参数a,并将参数a分别传输给第三均值滤波器1111e和第一浮点乘法器1111l,通过第三均值滤波器1111e对参数a进行均值滤波,并将第三滤波结果ma传输给第二浮点乘法器1111m;
第二类型转换器1111i,将第一滤波结果m1转换为浮点滤波数据mf后传输给第一浮点乘法器1111l,再将浮点滤波数据mf和参数a的乘积值am传输给第一浮点减法器1111o,并由第一滤波结果m1与乘积值am相减得到参数b,再将参数b传输给第四均值滤波器1111f进行均值滤波,并将第四均值滤波结果mb传输给第二浮点加法器1111k。
第二浮点乘法器1111m,用于接收原始图像第i行第j列像素的数据Iorig(i,j),并将处理图像数据Iorig(i,j)和第三滤波结果ma的乘积值Ia传输给第二浮点加法器1111k,再对乘积值和第四滤波结果mb求和得到大目标边缘以及小目标增强后的图像Ior(i,j)。
主体模块1111中的各个均值滤波器均包括:行缓存寄存器组、邻域寄存器组、加法器和除法器,
所述行缓存寄存器组,包含25个寄存器,用于连续接收五次行缓存寄存器组输出的数据,并将五个移位寄存器移出的数据传输给邻域寄存器组;
所述邻域寄存器组,包含25个寄存器,用于连续接收五次行缓存寄存器组输出的数据,并将得到的25个数据传输给加法器求和,再将求和值传输给除法器除以25得到滤波结果。
如图5所示,所述细节提取模块包括:两个浮点减法器113a,113b,一个比较器113c,两个浮点除法器113d,113e,一个对应元素乘法器113f,其中:
第一浮点减法器113a,将细节增强模块输出的图像数据Ior(i,j)和输入原始图像数据Iorig(i,j)作差并送入比较器113c以确保结果不小于零,得到仅包含大目标边缘与小目标的细节层图像数据Idl(i,j);
第一浮点除法器113d,将细节层图像数据Idl(i,j)除以255,将图像数据转换到0和1之间,得到归一化后的细节层图像数据Idl(i,j),用norm(Idl)表示;
第二浮点减法器113b,用1减去细节层图像数据norm(Idl),即对norm(Idl)取逆,用(1-norm(Idl))表示;
第二浮点除法器113e,将原始图像数据Iorig(i,j)除以255,将图像数据转换到0和1之间,得到归一化的原始图像数据,用norm(Iorig)表示;
对应元素乘法器113f,用于对浮点除法器113d输出的图像数据norm(Idl)和浮点减法器113b输出的图像数据(1-norm(Idl))进行对应元素相乘,得到平滑大目标边缘后的细节层图像数据Inew(i,j)。
第二细节增强模块与第一细节增强模块结构相同,用于对来自细节提取模块平滑大目标边缘后的细节层图像数据Inew(i,j)进行二次细节增强,得到仅包含小目标的细节层图像数据Idl new(i,j)并送入阈值分割模块。
如图6所示,所述阈值分割模块包括:两个均值滤波模块12a,12b、两个平方运算单元12c,12d、减法器12e、乘法器12f、加法器12g和比较器12h。其中:
第三均值滤波器12a用于对细节层图像Idl new第i行第j列像素位置的数据Idl new(i,j)进行均值滤波,并将滤波结果m1分别传输给第三平方运算单元12c和加法器12g,通过第三平方运算单元12c对滤波结果m1进行平方操作,并将平方值m1 2传输给减法器12e;
第四平方运算单元12d用于对细节层图像Idl new第i行第j列像素位置的数据Idl new(i,j)进行平方操作,并将平方值I2传输给第四均值滤波器12b,通过第四均值滤波器12b对平方值I2进行均值滤波操作,并将滤波结果m11送入减法器12e;
加法器12g将滤波结果m1和乘积值相加得到阈值Th,并将阈值Th送入比较器12h,比较器将细节层图像Idl new第i行第j列像素位置的数据Idl new(i,j)与阈值Th相比较,大于阈值置为255,小于阈值置为0,并最终得到阈值分割后的图像Its n(n为像素索引)。
所述主***包括数据接收器、显示模块。
数据发送器用于对阈值分割后的图像Its n进行下采样,并传输给数据接收器,再由数据接收器将图像数据送入显示模块,具体为:逐行输入图像数据,每8个像素点进行一次读取,输入每行数据后,间隔5行再进行图像数据读取。
十个从***逐行进行探测,每一个从***对应的数据发送器分别下发对应的数据Ⅰ1(a)、Ⅰ2(a)、Ⅰ3(a)、Ⅰ4(a)、Ⅰ5(a)、Ⅰ6(a)、Ⅰ7(a)、Ⅰ8(a)、Ⅰ9(a)、Ⅰ10(a)到主***的数据接收器。
所述主***的数据接收器逐行读取数据Ⅰ1(a)、Ⅰ2(a)、Ⅰ3(a)、Ⅰ4(a)、Ⅰ5(a)、Ⅰ6(a)、Ⅰ7(a)、Ⅰ8(a)、Ⅰ9(a)、Ⅰ10(a)并且合成完整的图像数据,再将图像数据分为四个部分Ⅱ1(a)、Ⅱ2(a)、Ⅱ3(a)、Ⅱ4(a)表示(a代表当前操作的行数)。
如图7所示,本发明***中的显示模块采用单行缓存显示的显示方法,采用一个单线FIFO来逐行显示图像数据,该单线FIFO由四个相互独立的子FIFO组成,从***分为四部分与四个子FIFO分别对应,将四部分图像的数据分别用Ⅱ1(a)、Ⅱ2(a)、Ⅱ3(a)、Ⅱ4(a)表示(a代表当前操作的行数),具体为:首先,向四个子FIFO同时写入预设的初始化数据,然后从每个FIFO读出数据,同时只有一个子FIFO在读出数据,在第一个子FIFO读出初始化数据的同时其余子FIFO仍然在写入初始化数据,任何一个读操作都必须在规定时间内完成,在第一个子FIFO中初始化数据全部读出后,第一个子FIFO进入写状态开始写入第一行图像数据I1(1),与此同时,第二个子FIFO进入读状态,开始读出初始化数据,依次类推,直到第四个子FIFO中的初始化数据全部读出后,第一个子FIFO开始读出第一行图像数据Ⅱ1(1)并开始第一行图像数据的显示;如此反复,实现逐行显示图像数据。
本发明***的检测效果可通过以下实验进一步说明:
实验一,分别通过软件仿真和本发明***对一组嵌入目标的合成图像序列进行目标检测,实验结果如图(8,9)所示,其中:
图8(a)为输入的一帧原始图像,该原始图像序列是一组嵌入目标的合成图像序列;
图8(b)为通过对上述合成图像序列进行软件仿真所获得的一帧检测结果图,可以看出所提算法可以有效滤除大目标边缘等其它背景噪声,可对合成图像序列中的小目标进行有效检测;
图8(c)为对上述合成图像序列在本发明***上进行目标检测所获得的一帧检测结果图,可以看出与软件仿真检测效果差别不大,均可以对合成图像中的小目标进行有效检测;
图9(a)为输入的一帧原始图像,该原始图像序列是一组含有真实目标的真实图像序列;
图9(b)为通过对上述真实图像序列进行软件仿真所获得的一帧检测结果图,可以看出所提算法可以有效滤除大目标边缘等其它背景噪声,可对真实图像序列中的小目标进行有效检测;
图9(c)对上述真实图像序列在本发明***上进行目标检测所获得的一帧检测结果图,可以看出与软件仿真检测效果差别不大,均可以对真实图像中的小目标进行有效检测;
表1
表1显示了对上述两组图像通过软件实现和硬件实现之间的定量对比结果,可以看出两种实现几乎没有差别,但是硬件实现可以显著提高效率。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (7)
1.一种基于FPGA的实时全方位目标检测方法,其特征在于,该方法为:
逐行对原始图像Iorig进行初步细节增强,获得大目标边缘以及小目标增强后的图像Ior;
根据原始图像数据Iorig(i,j)对所述大目标边缘以及小目标增强后的图像Ior的图像数据Ior(i,j)进行细节提取获得平滑大目标边缘后的细节层图像数据Inew(i,j);
对所述平滑大目标边缘后的细节层图像数据Inew(i,j)进行二次细节增强,获得仅包含小目标的细节层图像数据Idl new(i,j);
对所述仅包含小目标的细节层图像数据Idl new(i,j)进行阈值分割,获得阈值分割后的图像Its n,n为像素索引;
对所述阈值分割后的图像Its n进行下采样,并且逐行读取数据及逐行显示图像数据;
所述逐行对原始图像Iorig进行初步细节增强,获得大目标边缘以及小目标增强后的图像Ior,具体为:对原始图像Iorig的第i行第j列像素位置的图像数据Iorig(i,j)进行平方操作,并将第一平方值I2进行均值滤波,获得第二滤波结果m11;对原始图像Iorig的第i行第j列像素位置的图像数据Iorig(i,j)进行均值滤波,再对第一滤波结果m1执行平方操作,获得第二平方值m1 2;将所述第二滤波结果m11与第二平方值m1 2的差值v1转换为浮点插值数据vf后,对参数H(k)和浮点差值数据vf求和获得求和值vm;将所述浮点差值数据vf除以求和值vm获得参数a,并对所述参数a进行均值滤波获得第三滤波结果ma;将所述第一滤波结果m1转换为浮点滤波数据mf后,再将第一滤波结果m1与浮点滤波数据mf和参数a的乘积值am相减获得参数b,对参数b进行均值滤波获得第四均值滤波结果mb;最终,将所述原始图像第i行第j列像素的图像数据Iorig(i,j)和第三滤波结果ma的乘积值Ia,根据所述乘积值Ia和第四滤波结果mb求和获得大目标边缘以及小目标增强后的图像Ior;
所述对所述平滑大目标边缘后的细节层图像数据Inew(i,j)进行二次细节增强,获得仅包含小目标的细节层图像数据Idl new(i,j),具体为:对平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)进行平方操作,并将第三平方值I2 2进行均值滤波,获得第六滤波结果m22;对平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)进行均值滤波,再对第五滤波结果m2执行平方操作,获得第四平方值m2 2;将所述第六滤波结果m22与第四平方值m2 2的差值v2转换为浮点插值数据vf2后,对参数H2(k)和浮点差值数据vf2求和获得求和值vm2;将所述浮点差值数据vf2除以求和值vm2获得参数a2,并对所述参数a2进行均值滤波获得第七滤波结果ma2;将所述第五滤波结果m2转换为浮点滤波数据mf2后,再将第五滤波结果m2与浮点滤波数据mf2和参数a2的乘积值am2相减获得参数b2,对参数b2进行均值滤波获得第八滤波结果mb2;最终,将所述平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)和第七滤波结果ma2的乘积值Ia2,根据所述乘积值Ia2和第八滤波结果mb2求和获得仅包含小目标的细节层图像数据Idl new(i,j);
所述根据原始图像数据Iorig(i,j)对所述大目标边缘以及小目标增强后的图像Ior的图像数据Ior(i,j)进行细节提取获得平滑大目标边缘后的细节层图像数据Inew(i,j),具体为:将图像数据Ior(i,j)和原始图像数据Iorig(i,j)作差确保结果不小于零,获得仅包含大目标边缘与小目标的细节层图像数据Idl(i,j);
将细节层图像数据Idl(i,j)除以255,将图像数据转换到0和1之间,获得归一化后的细节层图像数据Idl(i,j),用norm(Idl)表示;
通过1减去细节层图像数据norm(Idl),即对norm(Idl)取逆,用(1-norm(Idl))表示;
将原始图像数据Iorig(i,j)除以255,将图像数据转换到0和1之间,获得归一化的原始图像数据,用norm(Iorig)表示;
对所述图像数据norm(Idl)和图像数据(1-norm(Idl))进行对应元素相乘,获得平滑大目标边缘后的细节层图像数据Inew(i,j)。
2.根据权利要求1所述的基于FPGA的实时全方位目标检测方法,其特征在于,所述对所述仅包含小目标的细节层图像数据Idl new(i,j)进行阈值分割,获得阈值分割后的图像Its n,n为像素索引,具体为:对细节层图像Idl new第i行第j列像素位置的图像数据Idl new(i,j)进行均值滤波获得滤波结果m3对所述滤波结果m3进行平方操作获得平方值m3 2;
对细节层图像Idl new第i行第j列像素位置的图像数据Idl new(i,j)进行平方操作获得平方值I3 2,对所述平方值I3 2进行均值滤波获得滤波结果m31;
对所述平方值m3 2和滤波结果m31进行作差获得差值νIdl,将差值νIdl和常数k=1.2相乘获得乘积值kνIdl;
将所述滤波结果m3和乘积值kνIdl相加获得阈值Th,将细节层图像Idl new第i行第j列像素位置的数据Idl new(i,j)与阈值Th相比较,大于阈值置为255,小于阈值置为0,并最终获得阈值分割后的图像Its n,n为像素索引。
3.根据权利要求2所述的基于FPGA的实时全方位目标检测方法,其特征在于,所述对所述阈值分割后的图像Its n进行下采样,并且逐行读取数据显示图像数据,具体为:对阈值分割后的图像Its n进行下采样,逐行输入图像数据,每8个像素点进行一次读取,输入每行数据后,间隔5行再进行图像数据读取,将读取的图像数据分为四部分图像的数据,分别用Ⅱ1(a)、Ⅱ2(a)、Ⅱ3(a)、Ⅱ4(a)表示,a代表当前操作的行数,对四部分图像分别从依次在写状态开始写入第一行图像数据Ⅱ1(1)至最后一行图像数据Ⅱ4(1),随后,开始依次读出显示第一行图像数据Ⅱi(i)(i=1,2,3,4),并开始写入第二行图像数据Ⅱj(2)(j=i),如此反复,实现逐行显示图像数据。
4.一种基于FPGA的实时全方位目标检测***,其特征在于,该***包括主***、从***;
所述从***并列设置十个,并且分别与主***连接,均用于逐行对原始图像Iorig进行初步细节增强,获得大目标边缘以及小目标增强后的图像Ior;对所述大目标边缘以及小目标增强后的图像Ior的图像数据Ior(i,j)和原始图像数据Iorig(i,j)进行细节提取获得平滑大目标边缘后的细节层图像数据Inew(i,j);对所述平滑大目标边缘后的细节层图像数据Inew(i,j)进行二次细节增强,获得仅包含小目标的细节层图像数据Idl new(i,j);对所述仅包含小目标的细节层图像数据Idl new(i,j)进行阈值分割,获得阈值分割后的图像Its n,n为像素索引,并且将阈值分割后的图像Its n发送到主***;
所述主***,用于对所述阈值分割后的图像Its n进行下采样,并且逐行读取数据及逐行显示图像数据;
所述从***均包括探测器和数据发送器,其中,所述探测器用于完成小目标检测,包括依次连接的背景抑制模块和阈值分割模块;所述阈值分割模块与数据发送器连接,所述数据发送器与主***连接;
所述背景抑制模块包括两个细节增强模块和一个细节提取模块;
第一个细节增强模块,用于逐行对原始图像Iorig进行初步细节增强,获得大目标边缘以及小目标增强后的图像Ior;具体用于对原始图像Iorig的第i行第j列像素位置的图像数据Iorig(i,j)进行平方操作,并将第一平方值I2进行均值滤波,获得第二滤波结果m11;对原始图像的第i行第j列像素位置的图像数据Iorig(i,j)进行均值滤波,再对第一滤波结果m1执行平方操作,获得第二平方值m1 2;将所述第二滤波结果m11与第二平方值m1 2的差值v1转换为浮点插值数据vf后,对参数H(k)和浮点差值数据vf求和获得求和值vm;将所述浮点差值数据vf除以求和值vm获得参数a,并对所述参数a进行均值滤波获得第三滤波结果ma;将所述第一滤波结果m1转换为浮点滤波数据mf后,再将第一滤波结果m1与浮点滤波数据mf和参数a的乘积值am相减获得参数b,对参数b进行均值滤波获得第四均值滤波结果mb;最终,将所述原始图像第i行第j列像素的图像数据Iorig(i,j)和第三滤波结果ma的乘积值Ia,根据所述乘积值Ia和第四滤波结果mb求和获得大目标边缘以及小目标增强后的图像Ior;
所述细节提取模块,用于根据原始图像数据Iorig(i,j)对所述大目标边缘以及小目标增强后的图像Ior的图像数据Ior(i,j)进行细节提取获得平滑大目标边缘后的细节层图像数据Inew(i,j);具体用于将图像数据Ior(i,j)和原始图像数据Iorig(i,j)作差确保结果不小于零,获得仅包含大目标边缘与小目标的细节层图像数据Idl(i,j);将细节层图像数据Idl(i,j)除以255,并且将图像数据转换到0和1之间,获得归一化后的细节层图像数据Idl(i,j),用norm(Idl)表示;通过1减去细节层图像数据norm(Idl),即对norm(Idl)取逆,用(1-norm(Idl))表示;将原始图像数据Iorig(i,j)除以255,将图像数据转换到0和1之间,获得归一化的原始图像数据,用norm(Iorig)表示;对所述图像数据norm(Idl)和图像数据(1-norm(Idl))进行对应元素相乘,获得平滑大目标边缘后的细节层图像数据Inew(i,j);
第二个细节增强模块,用于对所述平滑大目标边缘后的细节层图像数据Inew(i,j)进行二次细节增强,获得仅包含小目标的细节层图像数据Idl new(i,j);具体用于对平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)进行平方操作,并将第三平方值I2 2进行均值滤波,获得第六滤波结果m22;对平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)进行均值滤波,再对第五滤波结果m2执行平方操作,获得第四平方值m2 2;将所述第六滤波结果m22与第四平方值m2 2的差值v2转换为浮点插值数据vf2后,对参数H2(k)和浮点差值数据vf2求和获得求和值vm2;将所述浮点差值数据vf2除以求和值vm2获得参数a2,并对所述参数a2进行均值滤波获得第七滤波结果ma2;将所述第五滤波结果m2转换为浮点滤波数据mf2后,再将第五滤波结果m2与浮点滤波数据mf2和参数a2的乘积值am2相减获得参数b2,对参数b2进行均值滤波获得第八滤波结果mb2;最终,将所述平滑大目标边缘后的细节层图像Inew的第i行第j列像素位置的图像数据Inew(i,j)和第七滤波结果ma2的乘积值Ia2,根据所述乘积值Ia2和第八滤波结果mb2求和获得仅包含小目标的细节层图像数据Idl new(i,j)。
5.根据权利要求4所述的基于FPGA的实时全方位目标检测***,其特征在于,所述细节增强模块包括主体模块和参数生成模块;
所述参数生成模块包括:四个减法器、四个乘法器、一个加法器和一个系数存储器;
第一减法器,用于对输入原始图像第i行第j列像素位置的数据Iorig(i,j)和第i+1行第j列像素位置的数据Iorig(i+1,j)作差得到插值c1并送入第一乘法器;
第二减法器,用于对输入原始图像第i行第j列像素位置的数据Iorig(i,j)和第i-1行第j列像素位置的数据Iorig(i-1,j)作差得到插值c2并送入第二乘法器;
第三减法器,用于对输入原始图像第i行第j列像素位置的数据Iorig(i,j)和第i行第j+1列像素位置的数据Iorig(i,j+1)作差得到插值c3并送入第三乘法器;
第四减法器,用于对输入原始图像第i行第j列像素位置的数据Iorig(i,j)和第i行第j-1列像素位置的数据Iorig(i,j-1)作差得到插值c4并送入第四乘法器;
系数存储器,用于根据插值c1、c2、c3、c4的数值大小输出不同的系数k1、k2、k3、k4并分别送入四个乘法器h;
第一乘法器,用于接收插值c1并与系数k1相乘,再将乘积值c1k1送入加法器;
第二乘法器,用于接收插值c2并与系数k2相乘,再将乘积值c2k2送入加法器;
第三乘法器,用于接收插值c3并与系数k3相乘,再将乘积值c3k3送入加法器;
第四乘法器,用于接收插值c4并与系数k4相乘,再将乘积值c4k4送入加法器;
加法器,用于将乘积值c1k1、c2k2、c3k3、c4k4相加得到参数H(k)并将其送入主体模块;
所述主体模块包括两个平方运算单元,四个均值滤波,一个整型减法器,两个类型转换器,两个浮点加法器,两个浮点乘法器,一个浮点除法器和一个浮点减法器;
第一平方运算单元,用于对原始图像第i行第j列像素位置的数据Iorig(i,j)进行平方操作,并将第一平方值I2传输给第二均值滤波器进行均值滤波,再将第二滤波结果m11传输给整型减法器;
第一均值滤波器,用于对原始图像第i行第j列像素位置的数据Iorig(i,j)进行平方操作,并将第一滤波结果m1分别传输给第二平方运算单元、第二类型转换器和浮点减法器,通过第二平方运算单元对第一滤波结果m1执行平方操作,并将第二平方值m1 2传输给整型减法器;
整型减法器,用于将第二滤波结果m11与第二平方值m1 2的差值v1传输给第一类型转换器,再将差值v1转换为浮点插值数据vf后分别传输给第一浮点加法器和浮点除法器,通过第一浮点加法器,对参数H(k)和浮点差值数据vf求和,并将求和值vm传输给浮点除法器;
浮点除法器,用于将浮点差值数据vf除以求和值vm得到参数a,并将参数a分别传输给第三均值滤波器和第一浮点乘法器,通过第三均值滤波器对参数a进行均值滤波,并将第三滤波结果ma传输给第二浮点乘法器;
第二类型转换器,用于将第一滤波结果m1转换为浮点滤波数据mf后传输给第一浮点乘法器,再将浮点滤波数据mf和参数a的乘积值am传输给第一浮点减法器,并由第一滤波结果m1与乘积值am相减得到参数b,再将参数b传输给第四均值滤波器进行均值滤波,并将第四均值滤波结果mb传输给第二浮点加法器;
第二浮点乘法器,用于接收原始图像第i行第j列像素的数据Iorig(i,j),并将处理图像数据Iorig(i,j)和第三滤波结果ma的乘积值Ia传输给第二浮点加法器,再对乘积值和第四滤波结果mb求和得到大目标边缘以及小目标增强后的图像Ior(i,j)。
6.根据权利要求5所述的基于FPGA的实时全方位目标检测***,其特征在于,所述阈值分割模块,用于对所述仅包含小目标的细节层图像数据Idl new(i,j)进行阈值分割,获得阈值分割后的图像Its n,n为像素索引;具体用于对细节层图像Idl new第i行第j列像素位置的图像数据Idl new(i,j)进行均值滤波获得滤波结果m3对所述滤波结果m3进行平方操作获得平方值m3 2;对细节层图像Idl new第i行第j列像素位置的图像数据Idl new(i,j)进行平方操作获得平方值I3 2,对所述平方值I3 2进行均值滤波获得滤波结果m31;对所述平方值m3 2和滤波结果m31进行作差获得差值νIdl,将差值νIdl和常数k=1.2相乘获得乘积值kνIdl;将所述滤波结果m3和乘积值kνIdl相加获得阈值Th,将细节层图像Idl new第i行第j列像素位置的数据Idl new(i,j)与阈值Th相比较,大于阈值置为255,小于阈值置为0,并最终获得阈值分割后的图像Its n,n为像素索引。
7.根据权利要求6所述的基于FPGA的实时全方位目标检测***,其特征在于,所述主***,具体用于对阈值分割后的图像Its n进行下采样,逐行输入图像数据,每8个像素点进行一次读取,输入每行数据后,间隔5行再进行图像数据读取,将读取的图像数据分为四部分图像的数据,分别用Ⅱ1(a)、Ⅱ2(a)、Ⅱ3(a)、Ⅱ4(a)表示,a代表当前操作的行数;
所述主***采用单线FIFO进行逐行显示图像数据,该单线FIFO由四个相互独立的子FIFO组成,四部分图像的数据与四个子FIFO分别对应,向四个子FIFO同时写入预设的初始化数据,然后从每个FIFO读出数据,同时只有一个子FIFO在读出数据,在第一个子FIFO读出初始化数据的同时其余子FIFO仍然在写入初始化数据,在第一个子FIFO中初始化数据全部读出后,第一个子FIFO进入写状态开始写入第一行图像数据I1(1),与此同时,第二个子FIFO进入读状态,开始读出初始化数据,依次类推,直到第四个子FIFO中的初始化数据全部读出后,第一个子FIFO开始读出第一行图像数据I1(1)并开始第一行图像数据的显示;如此反复,实现逐行显示图像数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010855029.3A CN112150409B (zh) | 2020-08-24 | 2020-08-24 | 基于fpga的实时全方位目标检测方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010855029.3A CN112150409B (zh) | 2020-08-24 | 2020-08-24 | 基于fpga的实时全方位目标检测方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112150409A CN112150409A (zh) | 2020-12-29 |
CN112150409B true CN112150409B (zh) | 2023-04-25 |
Family
ID=73888133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010855029.3A Active CN112150409B (zh) | 2020-08-24 | 2020-08-24 | 基于fpga的实时全方位目标检测方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112150409B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177429A (zh) * | 2013-04-16 | 2013-06-26 | 南京理工大学 | 基于fpga的红外图像细节增强***及其方法 |
CN103310419A (zh) * | 2013-06-18 | 2013-09-18 | 深圳大学 | 一种小目标图像处理装置 |
CN105160657A (zh) * | 2015-08-05 | 2015-12-16 | 西安电子科技大学 | 基于fpga的红外成像非均匀性校正*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8295632B2 (en) * | 2009-01-21 | 2012-10-23 | Yissum Research Development Company of Jerusalem Ltd. | System and method for edge-enhancement of digital images using wavelets |
-
2020
- 2020-08-24 CN CN202010855029.3A patent/CN112150409B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177429A (zh) * | 2013-04-16 | 2013-06-26 | 南京理工大学 | 基于fpga的红外图像细节增强***及其方法 |
CN103310419A (zh) * | 2013-06-18 | 2013-09-18 | 深圳大学 | 一种小目标图像处理装置 |
CN105160657A (zh) * | 2015-08-05 | 2015-12-16 | 西安电子科技大学 | 基于fpga的红外成像非均匀性校正*** |
Non-Patent Citations (2)
Title |
---|
Moving object detecting method in video;Ou Yang;《 IEEE Aerospace and Electronic Systems Magazine》;20080131;第18-20页 * |
数字细节增强技术在脉冲热成像无损检测中的应用;徐超等;《红外与激光工程》;20181125(第11期);第1-8页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112150409A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103279952A (zh) | 一种目标跟踪方法和装置 | |
CN107025660A (zh) | 一种确定双目动态视觉传感器图像视差的方法和装置 | |
Ttofis et al. | High-quality real-time hardware stereo matching based on guided image filtering | |
Li et al. | High throughput hardware architecture for accurate semi-global matching | |
Villalpando et al. | FPGA implementation of stereo disparity with high throughput for mobility applications | |
Li et al. | Panodepth: A two-stage approach for monocular omnidirectional depth estimation | |
US20190020814A1 (en) | Imaging device and imaging method using compressed sensing | |
CN116912405A (zh) | 一种基于改进MVSNet的三维重建方法及*** | |
CN113095358A (zh) | 一种图像融合方法及*** | |
CN112150409B (zh) | 基于fpga的实时全方位目标检测方法及*** | |
CN109003247B (zh) | 彩色图像混合噪声的去除方法 | |
CN108305265B (zh) | 微弱小目标图像实时处理方法及*** | |
CN113111736A (zh) | 基于深度可分离卷积及融合pan的多级特征金字塔目标检测方法 | |
CN103841340A (zh) | 图像传感器及其运作方法 | |
Sung et al. | Convolutional neural network based resolution enhancement of underwater sonar image without losing working range of sonar sensors | |
CN116704200A (zh) | 图像特征提取、图像降噪方法及相关装置 | |
Zhao et al. | Unpaired sonar image denoising with simultaneous contrastive learning | |
Qi et al. | Fast detection of small infrared objects in maritime scenes using local minimum patterns | |
CN108764144B (zh) | 一种基于gpu的合成孔径雷达目标检测方法 | |
Rao et al. | Various Degradation: Dual Cross-Refinement Transformer For Blind Sonar Image Super-Resolution | |
van Beek et al. | Efficient high-dynamic-range depth map processing with reduced precision neural net accelerator | |
Kim et al. | A real-time rectification using an adaptive differential encoding for high-resolution video | |
CN117218005B (zh) | 基于全距离特征聚合的单帧图像超分辨率方法及*** | |
Song et al. | Fpga-based acceleration system for visual tracking | |
Bailey | Hough transform line reconstruction on FPGA using back-projection |
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 |