0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅析FPGA的图像采集和快速移动物体检测

电子工程师 来源:微型机与应用 作者:李翔翔 2021-05-12 15:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

摘 要: 提出了一种图像采集和快速移动物体检测的设计,即通过FPGA实现对摄像头的初始化及数据采集,并通过自定义的传输协议将FPGA缓存中的数据传输给ARM7处理器,实现图像数据的快速传输。根据适用范围,本文提出了自适应二值化阀值及相关的检测算法改进。

这对于小型的、低功耗实用型的监控系统具有一定的实用价值。近年来,计算机技术、通信技术、微电子技术迅猛发展,数字监控系统逐步从传统方式的监控系统走向小型化、多样化和智能化。监控系统的发展首先是从图像采集开始的,本文根据项目需要提出了一种基于FPGA的图像采集和移动物体检测的设计方案,用以实现对特定背景下的图像采集和移动物体快速检测。

1 系统总体设计

本系统主要由摄像头初始化模块、图像采集模块、数据传输模块和运动物体检测模块构成。本系统中所使用的FPGA[1]芯片型号是FUSION系列的AFS600。如果只是完成本文中所要实现的内容,则完全可以选择更低性能的FPGA芯片,例如ProASIC3系列的A3P060;如果所选择的芯片没有片内RAM或者片内RAM很小,需要对本文的设计做适当的调整才能完成相应的功能。

本系统中,由FPGA模拟SCCB对摄像头(OV7670)进行初始化,控制端获取图像时再启动FPGA对一幅图像进行采集,将采集到的数据放入一个双端口的RAM存储器中,并将数据传输给控制端。控制端间隔一段时间就通过FPGA采集一幅图像,通过对这些连续的图像进行处理,判定是否有移动物体出现,如果有则可以启动报警系统。本系统中控制端是ARM7系列开发板,图像采集的相关原理图如图1所示。

10608636146615.gif

2 FPGA图像采集端

2.1 摄像头的初始化

本系统实验所使用的摄像头是OV7670,其感官阵列共656×488个像素。OV7670通过SCCB总线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率为8 bit的影响数据。用于VGA图像显示最高可达30帧/s。用户可以完全控制图像质量、数据格式和传输方式。摄像头内部包含伽玛曲线、白平衡、饱和度、色度等,这些设置均通过SCCB总线接口完成。

SCCB是和I2C相同的一个协议。SCCB由一根数据线(SIO_D)和一根时钟线(SIO_C)构成,数据线是双向传输的,时钟线是由主机完全控制的。本系统中主机是由FPGA芯片来担任的,对摄像头初始化的过程只是由主机对摄像头内部的寄存器写入数据,不需要完成从摄像头接收数据的过程,而且对摄像头(OV7670)寄存器写入指令的格式很统一。指令由3 B构成,第1个字节为命令字节,对于本文中的摄像头其内容是0x42;第2个字节是一个8 bit寄存器地址;第3个字节为所要修改的寄存器内容。

根据以上分析,通过FPGA实现摄像头初始化的过程简化了SCCB传输协议,不再考虑接收数据;而且由于发送数据固定为24 bit,如果再加上起始、终止和确认位,总共需要传输的状态位为29 bit,通过状态机机制即可很轻松地编写FPGA代码。本系统中将实验所产生的FPGA信号通过逻辑分析仪提取,结果如图2所示。

10608932236403.gif

2.2 图像采集

图像采集要用到OV7670的3个同步信号,分别为VSYNC(场同步信号)、HREF(行同步信号)和PCLK(像素同步信号),三者的时序关系如图3所示。VSYNC的上升沿表示一帧新图像的到来,下降沿则表示一帧图像数据采集的开始;HREF的上升沿表示一行图像数据的开始,HREF为高电平即可开始有效的数据采集;

PCLK下降沿表明数据的产生,PCLK每出现一个下降沿,OV7670 摄像头便传输一个像素数据。最后,当下一个VSYNC信号上升沿到来,表明一帧图像输出结束,同时表示下一帧图像输出开始。从图3中可以看出,当PCLK下降沿到来时摄像头就会更新输出下一个数据;要通过FPGA采集图像数据就要选定一个稳定的图像数据采样点,通过分析图像可知,在PCLK为上升沿时最适合图像数据的采样。

10609023187167.gif

本系统中,FPGA采样得到的数据暂存于一个双端口的内部RAM缓冲存储器中。当收到采集图像命令时,系统首先复位双端口RAM的写地址,每当PCLK上升沿到来时FPGA将数据总线上的数据保存下来,接着再将获得的数据写入双端口缓冲区中,每写完一个数据便对写地址做加1的操作。

其主要流程如图4所示,在用Verilog语言实现对图像数据采集时,检测PCLK上升沿并将总线数据保存到寄存器是在一个周期内完成的,将寄存器中的数据存入双端口RAM是在下一个周期完成的,即如果输入时钟为48 MHz,则通过FPGA可以对24 MHz的像素频率(PCLK)的输出图像进行采集。其采集频率即使对640×480的图像也能达到30帧/s以上的速度。提高图像采集的速度瓶颈关键在图像从FPGA传输到控制端的过程中,因此提高数据的传输速度显得非常重要。

10609230668632.gif

2.3 数据传输

本系统通过一个双端口RAM存储器来做缓冲,与使用外部SRAM相比,其好处是实现简单、不需要外接SRAM芯片,同时作为FPGA内部RAM,其处理速度很快可以达到350 MHz。但是RAM缓冲区的大小有限,不能够存储一幅完整的图像,如果控制端读取数据太慢,可能会使原有的缓冲数据被覆盖。从图3中可以看出,在每一行数据传输结束后都有很长一段行同步时间,通过使用缓冲区可以有效利用这段时间来传输数据。

数据传输过程的实现流程如图5所示,该数据传输过程中使用4根控制线和8根数据线。4根控制线分别是开始(start)、结束(finish)、接收状态(R_ready)和发送状态(S_ready)。图5(a)为FPGA发送端的控制流程,图5(b)为数据接收端的控制流程。发送端中rdata为从RAM缓冲区中读出的数据,raddress为双端口读地址,waddress为双端口写地址,数据采集完毕为采集过程结束的标志。

10609409283052.gif

3 处理器控制端

3.1 移动物体检测研究现状

目前比较常用的运动物体检测的方法主要有3种,分别是光流法、背景差法和帧差法。光流法的基本原理是给图像中的每一个像素分配一个速度矢量,根据各个像素的速度矢量特征,对图像进行动态分析[2],但光流计算方法相当复杂,且抗噪性能差;帧差法的基本原理是利用图像序列相邻两帧之间的差异计算出变化的像素[3];背景差法的主要思想是通过对序列图像建立一个背景模型,估算出当前的最优背景图像,再通过对前景图像与背景图像的差分来判断场景中的运动物体[4]。

3.2 移动物体检测

由于处理速度和资源都十分有限,本系统需要通过无线网络来传输图像,在这样的硬件条件下难以完成视频采集,如果使用帧差法前后两帧之间的差异可能会很大;并且本系统主要起到监控报警的功能,通常所监控的环境移动物体很少,所以选用背景差法进行运动物体检测。

3.2.1 移动物体检测流程

首先要获取初始图像,系统上电后将第一次获取的图像作为初始背景,初始背景并不一定准确,但是随着时间的推移,在自适应背景更新的过程中背景将会越来越趋近于真实的背景;接下来,将采集到的图像与背景做差,得到背景差图像,再对背景差图像做中值滤波处理;之后,对中值滤波后的背景差图像做二值化,从而提取出移动物体即背景差图中的白色部分,在对图像二值化过程中,本系统根据实际应用环境采用自适应的二值化阈值。

3.2.2 中值滤波

由于噪声和运动的相关性,会出现一部分残留的噪声和运动物体内部空洞的现象,需要利用形态学中开和闭运算进行必要的后处理。在众多预处理方法中,中值滤波作为一种常用的图像预处理方法,能够有效地去除噪声、平滑图像,并能够有效地保留图像的边缘信息,所以本系统采用中值滤波来处理图像。

本系统所采用的是快速中值滤波[5]。快速中值滤波的处理过程为:首先获得需要中值滤波处理的像素及其周围像素,结果为一个3×3矩阵;然后分别计算每一行中3个数据的最大值max、中值med和最小值min;再在上面求得的3个最小值中求最大值max_of_min,最大值中求最小值min_of_max,中值中求中值med_of_med;最后在max_of_min、min_of_max和med_of_med中求中值middle,middle即为所求,把3×3矩阵的中间值换成middle就完成了对Data5的中值滤波处理。

3.2.3 自适应阈值

由于阈值的大小对移动物体的检测主要表现在:当阈值定得较大时,会忽略背景差图中的一些微小变化;当阈值定得太小,又会导致出现太多的移动物体,造成错误的移动物体检测。因此,可以根据经验给移动物体个数规定一个上限和一个下限。当检测到的移动物体个数大于所规定的上限时就适当的增大阈值,当移动物体个数小于所设置的下限时就适当地增大阈值。

阈值的变化不是无限的,而是在所容忍的范围之内变化的。本系统经过上述一系列处理后得到的结果如图6、图7所示:图6为包含移动物体及背景的图像,图7为经过一系列处理后得到的对移动物体二值化处理后的结果,其中白色部分为移动物体。

3.2.4 背景自适应更新

现实环境中,即使是固定不变的背景也会因为天气和光照条件的变化、周围环境的影响、物体的经过以及摄像机的轻微抖动等因素而发生变化。因此在长期运行的运动检测系统中背景的更新至关重要。背景更新一般有统计平均法和加权平均法两种方法。统计平均即取几帧图像的平均值作为背景,其公式如下:

本系统采用的更新策略为加权平均,FK表示采集的图像中扣除被判定为移动物的那部分图像,对于移动物体部分,将会保留其原来的背景像素值。

本文重点介绍了图像采集和移动物体检测,系统主要着眼于对一个简单实用型监控系统的研究,为此提出了一些有效的方法。随着硬件技术的发展和芯片价格的下降,系统在日后可以作更大的改进和完善。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22283

    浏览量

    630186
  • 图像采集
    +关注

    关注

    2

    文章

    311

    浏览量

    41980
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    图像采集卡:机器视觉时代的图像数据核心枢纽

    一、图像采集卡的技术本质:从信号到数据的“转换器”与“传输通道”图像采集卡(ImageCaptureCard)是机器视觉系统的核心硬件组件,本质是通过专用芯片(如
    的头像 发表于 11-12 15:15 287次阅读
    <b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡:机器视觉时代的<b class='flag-5'>图像</b>数据核心枢纽

    AGV视觉导航:智能物流的“智慧之眼”

    获取移动物体在空间中所处的位置、方向和其他环境信息,并用一定的算法对所获信息进行处理,建立环境模型,进而寻找一条最优或近似最优的无碰路径,实现安全移动,到达目的地。 AGV物流仓储 视觉导航的核心是通过摄像头采集环境
    的头像 发表于 11-04 15:54 215次阅读
    AGV视觉导航:智能物流的“智慧之眼”

    友思特方案 | FPGA 加持,友思特图像采集卡高速预处理助力视觉系统运行提速增效

    图像预处理是图像处理关键中间环节,通过优化传感器到主机的数据传输处理为后续减负。其算法依托硬件执行,搭载 FPGA 的友思特图像采集卡以高速
    的头像 发表于 08-20 09:18 596次阅读
    友思特方案 | <b class='flag-5'>FPGA</b> 加持,友思特<b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡高速预处理助力视觉系统运行提速增效

    FPGA 加持,友思特图像采集卡高速预处理助力视觉系统运行提速增效

    图像预处理是图像处理关键环节,可优化数据传输、减轻主机负担,其算法可在FPGA等硬件上执行。友思特FPGA图像
    的头像 发表于 08-13 17:41 771次阅读
    <b class='flag-5'>FPGA</b> 加持,友思特<b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡高速预处理助力视觉系统运行提速增效

    在树莓派5上使用YOLO进行物体动物识别-入门指南

    大家好,接下来会为大家开一个树莓派5和YOLO的专题。内容包括四个部分:在树莓派5上使用YOLO进行物体动物识别-入门指南在树莓派5上开启YOLO人体姿态估计识别之旅YOLO物体检测在树莓派
    的头像 发表于 07-17 17:16 1565次阅读
    在树莓派5上使用YOLO进行<b class='flag-5'>物体</b>和<b class='flag-5'>动物</b>识别-入门指南

    【嘉楠堪智K230开发板试用体验】01 Studio K230开发板Test2——手掌,手势检测,字符检测

    理解: 它不仅能检测图像内容,更能进行精确的识别和定位。例如: 人脸检测与定位(位置和尺寸)。 物体检测、识别(分类)、定位(位置和尺寸)。 高性能: 其计算能力显著提升,官方数据显示
    发表于 07-10 09:45

    如何选择合适的工业相机快门种类

    在需要拍摄高速运动物体的场景中,全局快门传感器是最佳选择。而对于移动缓慢或静止的物体(如显微镜等科学应用场景),卷帘快门传感器则更为适合。
    的头像 发表于 07-04 15:14 938次阅读
    如何选择合适的工业相机快门种类

    【HarmonyOS 5】VisionKit人脸活体检测详解

    【HarmonyOS 5】VisionKit人脸活体检测详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、VisionKit人脸活体检测
    的头像 发表于 06-21 11:52 632次阅读
    【HarmonyOS 5】VisionKit人脸活<b class='flag-5'>体检测</b>详解

    云南恩田有毒有害气体检测系统# 的安全#隧道施工#有毒有害气体检测

    体检测
    恩田智能设备
    发布于 :2025年05月15日 15:06:40

    安森美推出首款飞行时间传感器HyperluxID系列

    安森美(onsemi,美国纳斯达克股票代号:ON)推出其首款实时、间接飞行时间(iToF)传感器HyperluxID 系列,可对快速移动物体进行高精度长距离测量和三维成像。
    的头像 发表于 03-12 16:41 1097次阅读

    体检漏仪如何操作?注意事项有哪些?

    一下: 首先,打开气体检漏仪的电源开关,等待设备自检完成。接着就可以将气体传感器连接到仪器上,确保连接稳固。同时还要调整设备的灵敏度,以适应不同环境下的泄漏检测需求。将探头靠近可能泄漏的区域,缓慢移动
    发表于 03-12 15:08

    图像采集卡:现代图像处理技术的关键组件

    在现代科技快速发展的背景下,图像处理技术已成为信息技术领域不可或缺的一部分。图像采集卡,作为连接计算机与各种图像
    的头像 发表于 02-20 10:42 920次阅读
    <b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡:现代<b class='flag-5'>图像</b>处理技术的关键组件

    图像采集卡:技术原理、应用与未来趋势

    图像采集卡作为机器视觉、工业检测、医疗影像等领域的核心硬件设备,承担着将物理世界的图像信号转化为数字信息的关键任务。本文从技术原理、核心功能、典型应用场景及未来发展方向出发,系统性解析
    的头像 发表于 02-10 14:41 1208次阅读
    <b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡:技术原理、应用与未来趋势

    基于FPGA图像边缘检测设计

    今天给大侠带来基于 FPGA图像边缘检测设计,话不多说,上货。 设计流程如下:mif文件的制作→ 调用 ip 核生成rom以及仿真注意问题→ 灰度处理→ 均值滤波:重点是3*3 像素阵列的生成
    的头像 发表于 02-10 11:30 1094次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>图像</b>边缘<b class='flag-5'>检测</b>设计

    基于FPGA的GigE Vision相机图像采集方案设计

    1 概述 GigE Vision是一个比较复杂的协议,要在FPGA中完全实现具有较大的难度。如果FPGA作为接收端希望实现GigE Vision相机的配置和图像采集功能,则只需要实现其
    的头像 发表于 01-07 09:34 1847次阅读
    基于<b class='flag-5'>FPGA</b>的GigE Vision相机<b class='flag-5'>图像</b><b class='flag-5'>采集</b>方案设计