【学术论文】高帧频视觉实时目标检测系统

摘要

为了实现高速场景下的智能实时目标检测,设计了一种基于ZYNQ7000系列FPGA的高速相机平台,并利用该平台进行目标检测算法实现,形成了一套高帧频实时目标检测系统样机。

该系统将高速CMOS图像信号直接接入FPGA,在本地FPGA中进行数据处理,实现目标检测算法,最终实时输出目标位置序列。

FPGA设计采用流水线结构,对高速视频流图像逐级进行背景差分、二值化、质心解算的流水操作,实现了图像获取与目标检测同步进行。测试结果表明,该系统在560×480分辨率下可以实现大于1 100 f/s的实时目标检测,并输出目标位置,检测精度可达3个像素。

中文引用格式: 杨鲁新,董文博. 高帧频视觉实时目标检测系统[J].电子技术应用,2019,45(4):109-112,117.
英文引用格式: Yang Luxin,Dong Wenbo. High-frame-rate visual real-time target detection system[J]. Application of Electronic Technique,2019,45(4):109-112,117.

0 引言

基于机器视觉的智能目标检测系统应用非常广泛,尤其在航天军工等领域中,经常涉及高速目标的实时检测和控制,对目标检测的智能性和实时性提出了更严格的要求。在这种应用中,视觉系统相对雷达、声纳具有信息量大、抗干扰能力强、软件处理灵活、体积重量小、成本低等特点,但缺点是传输和处理需要的时间更多,因此很难满足图像信息传输和处理的实时性要求。

高速相机一般通过GigE、Camera Link、USB3.0等接口将图像采集后传输到图像处理器上,这种方式把大量时间消耗到信息传输通道。为了解决这个问题,最好的方式是直接在近端对传感器芯片采集的图像进行处理。FPGA凭借其硬件并行运算的优势,越来越多地应用于高速相机以及高速运动检测系统中,极大地提高了图像处理速度,保证了系统的高速、实时性与准确性[1-6]。通过FPGA对图像传感器进行近端处理,可以做到采集图像与智能处理同步进行。其最需要解决的问题是优化智能算法,使得运算更加简单高效,并占用更少的资源。

目前很多学者正致力于高速视觉目标检测系统的研究。GU Q Y等人设计了2 000 f/s的高速智能相机,可以对目标进行智能实时监测[7]。后又设计了高帧频视频拼接系统,该系统运用了改进的基于特征的视频拼接算法,能够实时合成全景图像,帧率可达500 f/s[8]。麻省理工大学的CHEN J G等人通过高速摄像机(5 000 f/s)对悬臂梁上的目标物体进行位移测量实验,通过PC对数据进行离线分析,得到了与激光测振仪和加速度计测量相一致的振动曲线。并且通过FFT算法对三组数据进行频域分析,得出了各个共振频率分量[9]

本文以高帧频与实时性作为研究的切入点,设计了一种基于ZYNQ7000的高速相机平台,充分利用芯片上的FPGA资源及其硬件并行的优势,进行目标提取及质心检测算法的实现[10-14]。本文优化了目标检测的FPGA算法,去掉中间缓存环节,以流水线结构对图像数据进行实时流水处理,提高了目标检测算法的处理效率,可以在每帧图像采集后的有限个时钟周期内完成位置检测运算,做到同步检测。实验结果表明,该系统可以实现560×480分辨率、1 100 f/s、3像素精度的实时目标检测。

1 硬件系统设计

1.1 系统组成

为了达到高速实时的要求,本系统采用FPGA直接驱动高速CMOS传感器的方式,实现近端处理。该检测系统主要由FPGA主控单元、CMOS图像采集单元、多电源轨供电单元、对外接口单元和光学成像单元几部分构成,如图1所示。

FPGA主控单元选用ZYNQ7020芯片,片上集成ARM硬核和FPGA资源,ARM负责对CMOS传感器进行配置,FPGA对获取图像进行数据处理、目标检测算法实现、输出图像及位置信息。

CMOS图像采集单元选用Python300型灰度CMOS传感器,该传感器分辨率为640×480,可以达到815 f/s的全分辨率输出,并可通过开窗(ROI)操作进一步提高帧频。

对外接口单元包括HDMI显示接口、串口、JTAG接口等电路,实现图像显示、位置坐标传输和调试下载等功能。

1.2 硬件设计

该系统硬件电路设计为两部分:FPGA主控板和高速底板,二者通过规范化的高速连接器进行互联和信号传输。主控板选用成品高速FPGA核心板,底板则采用4层PCB板设计,整合了CMOS电路、HDMI显示电路、电源电路、串口电路等。

底板设计主要是对上述各部分电路进行合理布局布线。其中,由于CMOS传感器输出的是低压差分信号(Low Voltage Differential Signal,LVDS),每路数据速率可以达到720 Mb/s,设计时必须考虑信号完整性。

布线时对该信号进行了特殊的处理,严格遵循高速差分线的规则:每对差分线平行布线,尽可能保持相同的最小距离,且小于线宽;减少过孔次数;布线拐角大于90°;差分阻抗控制在100 Ω,与差分信号接收端的100 Ω端接电阻相匹配,减少信号的反射;每组差分线布线长度尽可能保持一致;各组差分线之间保持较大距离。

通过以上措施,保证高速差分信号的信号完整性,以及各组信号较小的延迟差。

2 软件系统设计

软件设计主要实现使能控制和寄存器配置两种功能。使能控制通过ARM处理器的IO操作控制CMOS的时钟、供电;寄存器配置是ARM通过SPI总线IP核与CMOS传感器进行通信,对一些必要的寄存器进行配置,主要包括窗口大小、图像深度、运行模式、图像数据输出等。

通过配置CMOS内部寄存器,使CMOS传感器输出8 bit深度、560×480分辨率、大于1 000 f/s的高速视频流图像,经LVDS接口传输至FPGA进行数据处理及算法实现。

3 信号处理及检测算法FPGA实现

3.1 目标检测原理

3.1.1 目标提取

进行目标检测,首先需要将图像中的目标与背景区分并提取出来。结合应用场景,本系统选用背景差分法加阈值分割的方法对目标进行提取。

首先获取清晰稳定的背景图像,然后将当前帧图像与背景图像对应像素值做差,完成差分运算。接着将差值与设定阈值进行比较,若大于阈值,则判定为1,即运动前景;反之为0,即背景,生成二值化图像。

3.1.2 质心检测

本系统所要检测的目标为一球体,进行阈值分割之后的二值化图像中,目标表现为一个圆形亮斑。考虑到目标的特殊性,同时配合FPGA流水线结构的特点,本文通过圆直径检测的方法,找出X方向和Y方向上直径所在直线的交叉点,从而确定圆心所在位置。

具体方法如图2所示:将二值化图像每行的像素灰度值相加,相加之和两两比较,在直径所在的行上将会产生一个最大值,该最大值所对应的行数即视为圆心的Y坐标。列方向上进行相同操作也可得到X坐标。

圆直径检测计算圆心的方法配合FPGA流水线结构,在读取图像的同时进行处理和解算,可以最大程度减少检测延迟,提高实时性。

3.2 FPGA逻辑设计

CMOS传感器图像数据的传输按照自左向右、自下而上逐行进行,每8个像素为一组,称为一个kernel。由于目标帧频>1 000 f/s,每帧图像更新的周期<1 ms,而其中大部分时间用来获取图像,无法在当前帧周期内完成图像缓存和处理过程。

本系统充分利用FPGA并行运算的特点,逻辑设计上采用三级流水线结构,如图3所示,并去除中间缓存环节,在读取图像的同时将每组数据直接送入流水线逐级进行处理。该流水线能够同时处理三组数据,且每组中8个像素的操作也是同时的。如此,图像读取和处理的过程同步进行,保证了数据处理的高效性与实时性。

三级流水线结构对应了目标检测的3个步骤,逻辑设计如下:

(1)背景差分

在获取当前kernel值的同时,读取背景帧中对应地址的背景kernel值,将8个像素值同时对应做差,求得各像素位置的差值,存入差值寄存器,输入到下一级流水中。随后立即处理下一个kernel的像素,直到读完整幅图像。

(2)阈值分割

差值寄存器更新后,将8个像素差值与设定的阈值进行对比,大于阈值则二值化寄存器对应位置像素赋值为最大值,反之则赋值为0,结果输入到下一级流水。随后进行下一个kernel的分割。

(3)质心检测

质心检测逻辑分为两个分支,分别计算目标质心的X坐标和Y坐标。

计算X坐标的逻辑中,设置560个列相加寄存器,每当二值化寄存器更新,则将8个二值化像素值加入对应列的列相加寄存器中。在读取完整帧图像时,比较各个列相加寄存器的值,得到最大值及对应列数,即为X坐标。

计算Y坐标的逻辑中,设置两个寄存器,一个存储当前行像素值的和值,另一个存储行像素和值的最大值。完成一行的读取后,将和值寄存器值与最大和值寄存器的值作比较,若大于最大和值,则将最大和值更新为该行和值,并记录此时的行数;反之则保持最大和值及对应行数不变。当读取完一帧图像后,最大和值对应的行数即为质心的Y坐标。

4 系统测试与结果分析

4.1 测试环境

通过光学平板固定相机,保持相机稳定;以白色A4纸作为背景,检测目标为一黑色碳球;镜头为焦距6 mm的工业镜头,镜头与目标距离20 cm,测试时通过平板LED灯进行补光。测试主要分为精度测试、速度测试。

4.2 精度测试

相机开启后,首先采集500帧图像作为背景帧。后将目标固定于背景纸上,连续采样10 000次,测试单点采集精度,并通过串口输出目标位置,绘制图像。实验重复10次,测试结果如图4所示,测试的单点精度典型值为3×3(像素)。

4.3 速度测试

4.3.1 帧率测试

当相机运行在8 bit深度、560×480分辨率下,其帧率理论值为1 164 f/s。帧率大小通过以下方式进行测试:将系统置于运行模式,打开串口工具接收坐标数据,同时进行计时,通过一定时间内接收的坐标个数计算帧率。

实验结果如下:系统运行10 s,共接收11 871个坐标数据,得到帧率测量值为1 187 f/s。考虑到计时误差的因素,可以得出,测量帧率与理论帧率基本一致,满足系统设计要求。

4.3.2 运动测试

通过对目标物体自由落体过程进行检测,来进行系统运动测试。目标由静止状态自由落下,系统捕捉整个过程并将实时位置发送到串口。通过对接收的位置坐标进行分析,得到图5所示的运动轨迹图以及图6所示的Y轴方向位移-时间关系图。

由图6可以看出,位移曲线与理论曲线趋势基本一致,且略小于理论值。测试过程中,目标实际下落距离为60 mm,理论下落时间应为0.11 s。而实际测量中,系统采集了140帧图像,实际下落时间为0.12 s,比理论时间长0.01 s。

分析测试结果:首先应当考虑空气阻力的因素对自由落体运动产生影响,导致加速度的值小于重力加速度,进而使位移量小于理论值。另外,由图5可以看出,下落方向与Y坐标方向并非完全重合,存在X方向的位移,所以Y方向的位移小于预计值。考虑到以上两个因素的影响,可以认为相机准确检测到了物体的高速运动过程。

5 结论

本文研制了一套高帧频视觉实时目标检测系统,从硬件设计、软件配置、FPGA算法实现分别进行了介绍。采用了FPGA近端直接进行智能处理的策略,设计了流水线处理的结构,极大地解决了高速智能视觉检测系统的实时性问题。最后对系统进行了测试,结果表明,系统实现了560×480分辨率、1 100 f/s高速视频流的实时目标检测,精度达到3个像素。该系统可以应用到各种高速检测的场景中,例如位移速度测量、振动分析、高速目标监测与控制等,后续工作将完善优化算法,提高检测的精度,并从圆形目标推广到不规则目标,提高背景变化时检测的鲁棒性。

参考文献

[1] 杜建宝,张祖锋.基于FPGA的运动目标检测系统的设计[J].仪器仪表用户,2018(3):40-42.

[2] 王晓娟,翟成瑞.基于FPGA联合Sobel算法的实时图像边沿检测系统的设计与实现[J].计算机测量与控制,2017,25(1):34-37.

[3] 钱锋,杨名宇,李刚,等.基于DSP+FPGA架构的猫眼目标快速检测系统[J].光电子·激光,2016(8):863-869.

[4] 温杰,李锦明.基于FPGA的实时图像边沿检测系统的实现[J].电子技术应用,2015,41(10):65-67.

[5] 邵鹏,杨晨,张晋敏.基于FPGA的自适应阈值运动目标检测[J].应用光学,2017,38(6):903-909.

[6] 张浩.低空目标探测雷达高速目标检测与跟踪技术研究与实现[D].成都:电子科技大学,2016.

[7] ISHII I,TATEBE T,GU Q Y,et al.2000 fps real-time vision system with high-frame-rate video recording[C].Proceedings of IEEE International Conference on Robotics & Automation,2010:1536-1541.

[8] OKUMURA K I,RAUT S,GU Q Y,et al.Real-time feature-based video mosaicing at 500 fps[C].IEEE/RSJ International Conference on Intelligent Robots and Systems.IEEE,2014:2665-2670.

[9] CHEN J G,WADHWA N,CHA Y J,et al.Modal identification of simple structures with high-speed video using motion magnification[J].Journal of Sound & Vibration,2015,345:58-71.

[10] 刘珂.基于ZYNQ的高速图像采集处理平台设计与验证[D].济南:山东大学,2016.

[11] 王莹,高美凤.基于FPGA的视频图像目标检测系统[J].计算机系统应用,2017,26(6):98-102.

[12] 刘明.基于FPGA的红外图像识别与跟踪系统[D].成都:电子科技大学,2016.

[13] 苏峰,凌清,高梅国.红外小目标实时检测系统实现[J].激光与红外,2008,38(8):826-829.

[14] 于帅.基于CMOS图像传感器的高速相机成像电路设计与研究[D].北京:中国科学院大学,2014.

作者信息:

杨鲁新1,2,董文博1

(1.中国科学院空间应用工程与技术中心 中国科学院太空应用重点实验室,北京100094;

2.中国科学院大学 计算机与控制学院,北京101408)

 

(0)

相关推荐

  • RODNet:实时雷达目标检测网络

    重磅干货,第一时间送达 小白导读 论文是学术研究的精华和未来发展的明灯.小白决心每天为大家带来经典或者最新论文的解读和分享,旨在帮助各位读者快速了解论文内容.个人能力有限,理解难免出现偏差,建议对文章 ...

  • 首个实时单目3D目标检测算法:RTM3D,代码将开源

    基于单目图像的3D目标检测是在输入RGB图像的情况下估计目标的3D包围框,在自动驾驶领域非常有用. 今天来自中科院沈阳自动化所等单位的学者公布论文提出一种实时的单目3D目标检测算法RTM3D,快速版3 ...

  • Google又发大招:高效实时实现视频目标检测

    加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动! 同时提供每月大咖直播分享.真实项目需求对接.干货资讯汇总 ...

  • 实战:使用 PyTorch 和 OpenCV 实现实时目标检测系统

    重磅干货,第一时间送达 一.引言 自动驾驶汽车可能仍然难以理解人类和垃圾桶之间的区别,但这并没有使最先进的物体检测模型在过去十年中取得的惊人进步相去甚远. 将其与 OpenCV 等库的图像处理能力相结 ...

  • 【学术论文】基于FPGA的深度学习目标检测系统的设计与实现

    摘要: 针对当前深度学习目标检测算法计算复杂度高和内存需求大等问题,设计并实现了一种基于FPGA的深度学习目标检测系统.设计对应YOLOv2-Tiny目标检测算法的硬件加速器,对加速器各模块的处理时延 ...

  • YOLObile:面向移动设备的「实时目标检测」算法

    作者提出了一种通过从压缩.编译两个角度,在保证模型准确率的基础上,减小模型的大小,并提升模型在移动设备端的运行速度. 通过所提出的YOLObile framework,将YOLOv4压缩了14倍,准确 ...

  • 基于OpenCV的视障人士实时目标检测

    重磅干货,第一时间送达 一.概述 计算机视觉领域一直是一个活跃的研究领域,在本文中,我们让设备实时与其应用程序(对象检测)相结合并运行. 二.硬件 设备:程序将在其上运行,由于该设备将安装在手杖上,并 ...

  • 【opencv】调用darknet模型实现实时目标检测

    继[opencv]调用caffe.tensorflow.darknet模型 之后,我们接下来运行一个具体的实例. 1.下载模型 Darknet是一个用C语言编写的小众的神经网络框架,即和tensorf ...

  • 基于手机系统的实时目标检测

    计算机视觉研究院专栏 作者:Edison_G 在具有有限计算能力和存储器资源的移动设备上运行卷积神经网络(CNN)模型的日益增长的需求促进了对有效模型设计的研究 公众号ID|ComputerVisio ...

  • ICCV 2019|70 篇论文抢先读,含目标检测/自动驾驶/GCN/等

    虽然ICCV2019已经公布了接收ID名单,但是具体的论文都还没放出来,为了让大家更快得看论文,我们汇总了目前已经公布的大部分ICCV2019 论文,并组织了ICCV2019论文汇总开源项目(http ...

  • CVPR2019 | 03-25日更新12篇论文及代码汇总(目标检测、姿态估计、跟踪、VQA等)

    前段时间,计算机视觉顶会CVPR 2019 公布了接收结果,极市也对此做了相关报道:1300篇!CVPR2019接收结果公布,你中了吗?.目前官方只公布了接收论文ID列表,极市已汇总目前公开的所有论文 ...

  • YOLO-LITE:专门面向CPU的实时目标检测

    现在的实时目标检测算法,比如YOLO.SSD在GPU上已经可以跑的很快了,比如YOLOv2可以在GPU上跑到224fps,但在便携式笔记本甚至手机终端,这些算法还不能达到实时. 来自Georgia I ...