APP下载

基于DSP6455实时红外图像处理仿真平台设计

2018-07-02黄成章安成斌

激光与红外 2018年6期
关键词:上位图像处理红外

李 聪,黄成章,安成斌

(华北光电技术研究所,北京 100015)

1 引 言

高性能的DSP6455芯片在红外图像处理中得到了很好的运用,但是在实际工程中,整个红外图像处理系统十分复杂,项目耗时久。而图像处理算法的调试工作是在整个系统搭建后才能进行,最后调试算法的时间非常有限,严重影响项目的效率和进度[1]。传统的仿真都是在MATLAB上进行,完全不依赖硬件,由于实时性和硬件资源等问题,仿真效果和实际效果可能相差很多。

为了解决这个问题,设计了一种基于DSP6455的红外图像处理仿真平台,该平台主要组成是DSP和上位机。上位机的作用是通过千兆以太网和DSP连接,按照一定的帧频发送图像至DSP,由于常用的图像处理平台架构都是FPGA+DSP,其中FPGA主要完成一些图像的预处理工作,所以上位机除了发送图像外,还要对图像进行简单的预处理(二值化、直方图等),以及对DSP处理结果的回传显示,从而更接近实际红外系统的真实效果。DSP端采用两块DSP6455芯片设计,其中DSP1负责网络通信传输图像,DSP0用来对图像进行处理,验证实际红外图像处理算法。通过该平台,只要预先采集某些场景的红外图像,就可以完成算法的仿真验证工作。

2 系统介绍

2.1 硬件平台

仿真平台的硬件组成如图1所示,采用TI公司的两片TMS320C6455芯片,峰值处理能力为2×8000MIPS。DSP之间的互联采用新型串行点到点高速传输协议Serial RapidIO协议[2],四个 1×串行高速 IO(Serial RapidIO)(或一个 4×):消息传递,支持 DirectIO,最高通信速率为3.125G×4 bps。采用256 kb(32 kB)L1P程序缓存(专用),256 kb(32 kB)L1D数据缓冲器,16 Mb(2096 kB)L2 缓存器。同时具备千兆网接口,十分方便用于和上位机进行通信。DSP外挂128MByte×2 DDRII内存,这些存储容量可用于大量的数据存储,适合大图像的处理。

图1 硬件平台

2.2 软件平台

该系统软件平台主要包括两部分,第一部分是上位机软件平台,第二部分是DSP软件平台。

2.2.1 上位机软件平台

上位机软件平台主要是MFC+OpenCV。MFC(Microsoft Foundation Classes )微软基础类库是一个微软公司提供的类库,以C++形式封装了Windows API,并包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含大量的Windows句柄封装类和很多Windows的内建控件和组件的封装类[3]。本系统设计用MFC编程实现上位机通过TCP发送图像至DSP1。

OpenCV是一个基于C/C++语言的开源图像处理函数库,其代码都经过优化,可用于实时处理图像,具有良好的可移植性。

2.2.2 DSP软件平台

主要包括DSP/BIOS、CSL、NDK和DDK。

DSP/BIOS是一个简易的嵌入式操作系统,主要是为需要实时调度、同步以及主机与目标系统通讯和实时监测等应用而设计的。DSP/BIOS 系统本身仅占用很少的资源,并且是可以剪裁的,它只把直接或间接调用的模块和API链接到应用目标文件中。

CSL(芯片支持库)提供了一个用于配置和控制片上外设的C语言接口。它有各个分立的模块组成,并被编译成库文件。

NDK(Network Development Kit):为了加速DSP的网络化进程,TI结合其C6000系列推出了TCP/IP NDK开发包采用紧凑的设计方法,实现了利用极少资源支持TCP/IP。

DDK是TI为简化驱动设计开发为TMS320系列DSP及其EVM板等提供的驱动程序开发套件。该套件为TMS320C6000系列中外围器件提供完整的标准化驱动程序模型,使得驱动程序可以很方便的移植到其他应用中,大大提高驱动程序开发的效率。

3 系统设计

本系统设计的目标是能够完成任意分辨率,小于等于50 Hz帧频的红外图像的传输,并且要求系统能实时处理图像处理算法。如图2所示,实现流程是上位机通过网络(TCP/IP)将提前采集到的视频图像按照一定的帧频,逐帧发送至负责通信的DSP1芯片,DSP1接收到图像后将图像传至DSP0,DSP0将传来的图像通过处理后,将结果回传至DSP1,DSP1再将结果传至上位机,这样就完成了一个图像处理算法验证仿真流程。

图2 系统流程图

实现这些功能主要包括:上位机与DSP之间网络传输用于传输图像和回传结果,上位机MFC编程实现界面化控制传输图像和对图像的预处理,DSP网络编程和任务分配用于实现与上位机之间实时传输图像并完成算法仿真。

3.1 上位机与DSP之间网络传输

上位机与DSP通过网络连接,网络协议选择为TCP/IP。TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。当客户和服务器彼此交换数据前,必须先在双方建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端[4]。实现TCP/IP协议一般通过socket编程,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket[5]。两个端口分别称为客户端和服务器端。在编程前必须设定两个端口是客户端还是服务器端。本系统将上位机设为服务器端,将DSP1设为客户端。

上位机端的网络是用套接字(socket)编程。VC++的MFC提供了两个Socket类,即CAsyncSocket类和CSocket类。CAsyncSocket类在较低级别上封装了WinSock API函数,可以使用面向对象的方式进行Socket编程,函数是非阻塞的,函数调用后立即返回并反馈信息,支持异步操作。

3.2 上位机MFC编程

上位机主要功能是人机交互以及网络编程,第一步就是初始化并开启监听窗口,所有初始化的操作都由OnInitDialog完成,包括初始化网络,初始化菜单,初始化图像及帧频。采用时钟驱动的方式实现功能以下功能:

3.3 DSP的网络编程实现及任务关系

按照NDK的机制,将用于实现上述功能的驱动函数整合在HAL.LIB中,用C语言或汇编语言实现。这些驱动函数的函数名和参数结构属于NDK的标准API,由上层协议栈及NDK控制层规定其需要实现的功能。驱动函数的内部实现与具体的硬件环境有关,需要自行编制。

对网络初始化完成后就要socket编程实现TCP/IP协议,本系统设计将DSP设为客户端。

step1:创建socket:stcp=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

step2:设置服务器端端口信息:包括端口(与服务器端一致),ip地址。

step3:建立连接:connect(stcp,(PSA)&sin1,sizeof(sin1)。

除学习科目外,学院在课程设置的其他方面也对学生提出了相应的要求和规范。例如:积极鼓励学生参加各种类型的学术会议以及与本学科专业相关的大型会议,参加会议可跟随导师,也可自行参加。在学术讨论上,学生可以与导师提前联系沟通,在时间允许的情况下,可进行同“师门”的学术研讨与汇报等。

step4:接收图像数据,要设置为阻塞模式:recv(stcp,temp,length,MSG_WAITALL );

step5:接收成功后利用SRIO发送至负责处理算法的DSP0。

step6:将处理结果发送至DSP1。

step7:DSP1通过TCP将处理结果回传至上位机。

DSP端程序主要是通过任务将整个程序串联起来。

DSP1主要任务:

①网络初始化及配置(TASK0):该任务由DSP/BIOS静态创建,是网络传输任务的主线程,主要完成网络初始化、网络参配置。配置完成后启动NDK调度器。

②网络接收(TASK1):该任务负责接收服务器发送的预处理结果,并将接收的数据发送至DSP0。

③中断(HWI):接收完成后发送DOORBELL中断。

④结果回传任务(TASK2):接收DSP0回传的处理结果并发送至上位机。

DSP0主要任务:

①DOOEBELL中断服务函数

②处理任务(TASK0);接收到的图像预处理数据进行处理并发送DSP1处理结果。

4 红外单帧检测算法实现

本文设计的仿真平台基于640×512分辨率、50 Hz帧频的红外图像,数据源为16bits,只要预先采集某些场景的红外图像,在满足系统带宽的情况下就可以对红外图像实时算法仿真。TCP带宽决定上位机能否在满足系统实时性的情况下发送图像用于算法仿真。红外单帧检测算法用于验证仿真平台的实时性和算法仿真性能的评估。

4.1 TCP网络性能

工程建立后利用jperf-2.0.0工具对DSP与上位机之间网络连接进行测速,jperf-2.0.0是一种网络性能测试工具,可以测量TCP最大可带宽。分别设置TCP传输缓存和L2Cache大小,TCP网速如表1所示。

表1 网络性能

结果可知在TCP Transmit Buffer Size为最大8192和L2Cache Size最大为256k时,网速最快可以达到400Mb/s,完全满足图像传输带宽要求。

4.2 红外单帧检测算法流程

本文仿真的红外单帧检测算法主要分为四部分,如图3所示。首先是将原始图像分别进行中值滤波、形态滤波和匹配滤波,都是采用3×3的滤波器。将得到的3个结果分别赋予适应环境的阈值就可以得到候选目标,将候选目标进行融合和剔除就可以得到算法实际的检测结果。此算法流程图如3所示。

图3 算法流程图

4.3 算法仿真效果

将采集好的红外图像有上位机发送至DSP进行算法仿真,实际效果如图4所示。

图4 原始图像

图5 仿真后结果

4.4 仿真性能评估

为了验证仿真平台的实时性,在该仿真平台中实现红外单帧检测的算法,同时在Intel Core i7-2600 3.4 GHz,4G内存的PC机上,基于MATLAB实现同样的算法进行对比,分别测试算法处理一帧以及TCP传输一帧图像所需要的事件。分析结果如表2所示。因此本仿真平台可以实施处理分辨率为640×512、50帧频的红外视频流。采用该仿真平台可以实现20倍的加速比,为实时处理红外图像、算法硬件调试提供有利保障。

表2 仿真及传输时间

5 结束语

通过上位机与DSP之间网络通信,DSP之间级联,充分利用上位机资源,使硬件仿真变得方便灵活,算法调试更早进行,从而缩短项目研发周期。今后还要继续优化并改善软件框架,提高算法可移植性。

参考文献:

[1] WANG Ke,MA Li,et al.Real-time simulation platform for airborne image processing engine[J].Journal of System Simulation,2011,23(9):1832-1836.(in Chinese)

王科,马丽,等.机载图像处理引擎实时仿真平台[J].系统仿真学报,2011,23(9):1832-1836.

[2] LIANG Ji,JIN Hengke,XU Weimin.Design and implementation of high performance interface based on rapidIO[J].Computer Application And Software,2009,26(7):43-45.(in Chinese)

梁基,金亨科,徐炜民,等.基于RapidIO 的高性能接口的设计与实现[J].计算机应用与软件,2009,26(7):43-45.

[3] YAO Lingtian.Proficient in MFC programming[M]. Beijing:Post & Telecom,2007.(in Chinese)

姚领田.精通MFC 程序设计[M]. 北京:人民邮电出版社,2007.

[4] Kevin R Fall,W Richard Stevens. TCP/IP Illustrated. Machinery Industry Process[M].Beijing:China Machine Press, 2016.(in Chinese)

Kevin R Fall,W Richard Stevens.TCP/IP详解[M].吴英,张玉,译.北京:机械工业出版社,2016.

[5] SONG Jingbin.Linux network programming[M].2nd.ed.Beijing:Tsinghua University Process,2014.(in Chinese)

宋敬彬. Linux网络编程[M].2版.北京:清华大学出版社,2014.

猜你喜欢

上位图像处理红外
网红外卖
人工智能辅助冠状动脉CTA图像处理和诊断的研究进展
闪亮的中国红外『芯』
基于ARM嵌入式的关于图像处理的交通信号灯识别
8路红外遥控电路
TS系列红外传感器在嵌入式控制系统中的应用
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
特斯拉 风云之老阿姨上位
“三扶”齐上位 决战必打赢