【基于FPGA的运动目标实时跟踪检测】

基于FPGA的目标实时跟踪检测(一)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、系统架构
  • 二、算法设计
    • 1.RGB转YCBCR
    • 2.中值滤波算法
    • 3.帧间差分算法
  • 总结


前言

整体工程的架构分为了图像采集与输入部分、算法部分以及图像存储与显示部分,我主要在算法部分进行设计;设计了RGB转灰度模块、滤波模块、腐蚀膨胀模块、帧间差分模块与检测目标投票设计模块;


`

一、系统架构

【基于FPGA的运动目标实时跟踪检测】_第1张图片
该系统框图参考:咸鱼FPGA

二、算法设计

1.RGB转YCBCR

具体部分可以参考:FPGA实现灰度转换
图像灰度处理原因:
RGB色彩空间数据计算量大,每一个通道都需要大量计算,在FPGA上会耗费大量资源,而且在做图像处理时,需要用一路视频图像进行后面算法的实现,汇成目标框,只需要灰度信息就够了。
实现的代码可以依据下列公式,最后取Y分量;

【基于FPGA的运动目标实时跟踪检测】_第2张图片

2.中值滤波算法

在进行灰度处理之后,图像会含有一些噪声,因此使用中值滤波算法进行去噪(系统框图中没有加);它是非线性滤波,去除高斯噪声表现差,去除孤点噪声(椒盐噪声)好,而且还可以保持边缘特性,不会使图像产生显著模糊。
滤波的过程原理就是排序比较,用下面这种图可能更好理解
【基于FPGA的运动目标实时跟踪检测】_第3张图片

算法实现流程:以3×3为例,每一行比较出大中小;再分别比较三个最大值中最小值,三个最小值中最大值,三个中间值中的中间值;最后比较第二步的三个值,得到中值,此过程耗费3clk;

3.帧间差分算法

在上图中,由于Sdram使用的为兵乓操作,相当于在Sdram中就延时一帧,因此从RD1出来的数据可直接与YCBCR数据相减;
帧差法是通过两帧相邻图像间做差,并选取合适的阈值对图像进行二值化,从而选取出运动的物体。设 f(x,y)为灰度差分图像,gk(x,y)、gk-1(x,y) 为相邻的两帧灰度图像,D(x,y)为侦差图像,T为差分阈值
【基于FPGA的运动目标实时跟踪检测】_第4张图片

总结

以上就是今天要讲的内容,本文仅仅介绍了此系统前半部分内容,后续内容以及代码公开,放在下一篇文章;

你可能感兴趣的:(fpga开发,计算机视觉,人工智能)