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

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

3天内不再提示

基于RTDX技术实现图像目标识别系统的设计

电子设计 来源:国外电子元器件 作者:胡敏露;徐刚锋;李 2021-05-21 09:41 次阅读

作者:胡敏露;徐刚锋;李飚

1 引言

数字信号处理系统开发过程中,通常要对算法的正确性进行验证,也就是程序调试。而传统的主机调试器必须通过在目标应用程序中插入断点,在中断目标应用程序运行时观测目标机上各寄存器或内存变量的值。但是,由于处理系统是实时的,因此,这种经典的方法不能实时地跟踪数据的变化,有时显示的数据根本就是错误的。这种方法的不足在笔者的图像处理系统中表现得更为突出。且不说它不能实时反映数据处理的结果,即使可以实时反映,在用memoryView方法来观测图像处理的结果时也只是各内存单元的值,因而非常不直观,为故障诊断和系统性能测评等带来许多不便,所以,必须寻找一种方法来实时跟踪数据变化,而且数据还应以非常直观的形式显示在主机屏幕上。

TI的Real-Time Data Ex-change(RTDX)技术就是利用DSPs的内部仿真逻辑和JTAG接口来实现主机与目标机之间的数据交换,它不占用DSPs的系统总线和串口等I/0资源,数据传送完全可以在应用程序的后台运行,对应用程序影响很小,它完全可以在不中断目标应用程序的前提下,向主机实时发送目标机上各寄存器或内存变量的值。而主机上的可视化应用程序也可以通过嵌入COM的APl函数来获得这些数据,并以适当的格式把数据显示出来(如表格、波形图或二维图像等形式)。这样,就可以实时观测和分析应用程序的运行情况,使得编程人员查找和修改应用程序的错误更加方便,从而缩短系统的设计开发周期。

在设计图像目标识别系统时,把摄像头信号通过视频采集卡进行采样和量化,并存放在处理机系统的外部存储器中。为了获得目标在图像中的位置,设计时必须对采样的数据进行识别算法处理。因为笔者处理的是连续图像帧序列,因而不能在中断程序运行的情况下观测处理结果,而且无法通过只看相应memo~的值来判断跟踪窗是否能跟上运动的目标,所以,采用了RTDX技术。

2 RTDX的原理

RTDX是一种可以在不影响目标应用程序运行的情况下让主机和目标机进行实时数据传输的技术。RTDX支持双向数据流,即目标机到主机的数据流和主机到目标机的数据流。RTDX数据流示意图如图1所示。

基于RTDX技术实现图像目标识别系统的设计

2.1目标机到主机的数据传送

目标机为了向主机发送数据,必须设定一个输出通道oehanData。通过用户接口可将数据送到输出通道以使这些数据随即保存到RTDX目标机的缓存(由RTDX目标函数库定义)中,然后再将这些数据通过JTAG接口发送到主机。RTDX主机函数库将接收到的数据保存在log文件中或主机的缓存中(具体由RTDX模式来决定)。

保存在log文件中或主机缓存中的数据可以通过COM Automation Client重新获取析。下面是几种典型的COM Automation Client:

Visual Basic applications;

Visual C++ applications;

Lab View;

Microsoft Excel。

2.2主机到目标机的数据传送

目标机要从主机中获得数据,首先必须设定一个输入通道ichanCmd,来接受主机发出的命令,从而实现数据传输的同步。运行中,系统可通过用户接口发送一个读取数据的请求,并将这个请求保存在RTDX目标机的缓存中,然后通过JTAG接口发送到主机。同时应由COM automation client通过COM接口把要发送的数据先写入到RTDX主;帆函数库中的缓存,以等待目标机读取数据的请求。当RTDX主机函数库收到从目标机发出的读取数据请求时,保存在RTDX主机函数库中的数据便可通过JTAG接口将数据发送到目标机,从而使该数据可以实时写入目标机指定的存储区域。操作完成后,主机会通知RTDX目标机函数库。

2.3 RTDX目标机函数库的用户接口和COM接口

利用RTDX目标机函数库的用户接口可实现在目标机DSP应用程序和主机之间进行安全可靠的数据交换。同时可利用它完成应用程序向RTDX主机库发送数据、应用程序向RTDX主机库发送数据请求以及在目标机上提供数据缓存等功能。另外,数据发送前应先将数据拷贝到目标机缓存中,以减少对应用程序实时性的影响。 RTDX主机库中的COM接口可用来确定COM automation client与RTDX主机函数库的通信方式。而通过COM automation client可访问保存在RTDX lox文件或BTDX主机函数库缓存中的数据。同时COM automation client也可通过RTDX主机函数库向应用程序发送数据。

2.4 RTDX模式

RTDX主机函数库提供了两种接受目标机数据的模式:第一种是非连续模式,在这种模式中,数据通常存到主机的log文件中。该模式一般应用于非实时处理情况下,可在事后分析保存在log文件中的数据。第二种是连续模式,在这种模式中,数据不写入log文件,而是由RTDX主机函数库缓存,它一般应用在实时情况下。

3 基-ZRTDX的视频数据传输

在程序调试时,笔者利用RTDX技术在主机上显示采集图像处理后的结果以验证算法的性能,并通过设定主机与目标机的握手信号来在主机上实现动态的视频显示。

考虑到数据传输都由JTAG接口完成而且图像数据量很大,调试中往往采用将512X512图像每4个相邻像素取一个点的方法来将分辨率降为128X128,因为减少数据量可提高显示帧频。当数据通过RTDX通道传到主机时,128X128的图像数据可通过每个像素扩展成4个相邻的像素来恢复图像。最后通过VC的位图显示函数来显示图像结果。图2所示是其视频数据流示意图。

为了使主机与目标机之间能正确地传送和接受数据,主机应用程序和目标机应用程序都要嵌入支持RTDX的APl函数。下面详细介绍两者之间的操作流程。

3.1在DSP应用程序中使用RTDX

在DSP应用程序中通过APl函数调用RTDX目标机函数库时,必须将相应的API函数嵌入应用程序中。其步骤如下:

(1)设定相应的RTDX通道为全局对象

RTDX通道为单向传输。设定RTDX输出通道ochanData可使目标机向主机传输数据;而设定RT-DX输入通道ichanCmd则可使主机向目标机传输命令数据,同时,可用输入通道来同步主机与目标机。

其程序如下:

RTDX_CreatOutputChannel(ochanData);

RTDX_CreatlnputChannel(ichanCmd);

Void Task ch()

RTDX_enableOutput(&ochanData);

RTDX_enablelnput(&ichanCmd)

//START为主机向目标机发送

的传输开始控制命令(用户自定义)

Retumcode二RTDX_read(&ichanCmd,

received,4);

)while(received[0]!:START);

(2)设定RTDX_Poll()的调用方式

RTDX目标机函数库是通过调用函数RTDXPon()来实现主机与目标机间的通信的。RTDX_Poll()的调用有两种方式:一种是在应用程序中调用,另一种是利用中断服务程序调用。程序如下

while(RTDX_writing!二NUIL)

#ifRTDX_POIIJNG

RTDX_Poll();

#endif )

若将宏RTDX_POII,ING_IMPLEMENTATION定义为1,则表示在应用程序中调用RTDX_Poll(),而如果将其定义为0,则表示在中断服务程序中调用

RTDX_Poll()。

(3)目标机向主机发送视频数据

若采集数据空间的一帧图像(512X 512),可通过调用函数RTDX_write()发送到主机,并可将一帧图像分成若干块传输,每一块数据为1k。程序如下:

fOr(cond:0;cond《0x10;cond++)

rawdat_temp‘baseadd+cond*0x4000;

rawdat二(unsignedint*)mwdat_temp;

/*图像在目标机上的地址*/

fOr(count:0;count while(!RTDX-write(&ochan,mwdat+count*datanum,datanum*sizeof(int)));

3.2在VC编程环境下使用RTDX

在VC环境下获取RTDX主机函数库缓存中的数据并显示的步骤如下:

(1)在VC中实现与RTDX主机函数库的握手

(Handshanking)程序如下:

::Colnitialize(NULL); //initializeCOM

::Variantlnit(&sa); //initializeVARIANTsa

h二ndx.Createlnstance(uuidof(RTDXINTLib::Rtdx-

Exp)); //instantiate出eRTDX//COMObiect

订(FAILED(血)){

MessageBox(//Error:Instantiationfailed!//);

return-1; )

status二rtdx-》Open(“ochan’‘,”R“);

//opepachannel(ochan)fOrreading

订(status!二Success){

MessageBox(”-Error

fdled!“);

return-1; 1

(2)在VC中重新获得由目标机传送来的数据

rtck-》ReadSAl4(&sa);

//read a 32-ht integermessage

switch(status) {

//teststatus returnedfrom ReadSAl4

case Success:

for(i:0;i《(signed)sa.parray-》

rgsabound[0].cElements;i++)

{hr二::SafeArrayGetElement(sa.parray,

&i,(10ng*)&data);

datatemp:(unsignedint)data;

fOr(intitochar:0;itochar《4;itochar十+)

ImageT[count+itochar];(char)(datatemp

》》itochar-k9)&队000000ff);

count+:4;1//counter为传输像素计数器

break;

case Failure:

MessageBox(-Error:ReadSAl4

returnedfmlure!\n”);

case

return-1;

EnoDataAvailsble:

MessageBox(“NODataiscurrendy

available!”);

return-1;

case EendOfl_ogFile:

MessageBox(“DataProcessingComplete!”)

1 while(status!二EEndOfLogFile)

(3)在VC中显示数据的程序如下:

if(count二:16384) //128*128:

count二0;

br(inti:0;i for(intj:0¨ lpTemlmage¨*m_nWidth+¨:ImageT

[(m_nHei少t-i-1)*m_nWidth+¨

m_rawdat:RawToDib(hlmage);

Draw(m_rawdat,dc,1eft,top);

/*调用函数Draw()画图*

4 结束语

RTDX是一种非常优秀的实时数据传输技术,为软件调试提供了一种全新的方法。该项技术所设计的调试软件具有占用系统资源少、速度快和COM Automatic Client选择灵活等特点,为DSP编程人员发现程序错误和监测系统运行状况提供了实时的、直观的表示形式。其实,RTDX不但可以用在软件调试过程中,而且可用于医疗监测、工业控制等领域。

责任编辑:gt

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

    关注

    553

    文章

    7987

    浏览量

    348745
  • 寄存器
    +关注

    关注

    31

    文章

    5336

    浏览量

    120230
  • 存储器
    +关注

    关注

    38

    文章

    7484

    浏览量

    163763
收藏 人收藏

    评论

    相关推荐

    关于MATLAB建立图像处理和目标识别系统流程的求助

    本人新手,之前从未接触过图像处理,现在因为项目需要搭建一个关于图像处理和目标识别的MATLAB系统系统介绍如下: 想要从图片中将
    发表于 07-10 15:05

    如何选择合适频率的射频识别系统

    (Transponder/Tag)和询问器 /读写器(Interrogator/Reader)之间双向通信,从而达到识别目的并交换数据的新兴技术技术实现
    发表于 05-29 08:14

    嵌入式系统中的目标识别技术有哪些?

    嵌入式系统中的目标识别技术
    发表于 03-09 08:33

    怎么实现基于Z85C30的动目标识别系统的串行通信设计?

    怎么实现基于Z85C30的动目标识别系统的串行通信设计?
    发表于 05-31 06:32

    基于DSP的毫米波主被动复合探测器目标识别系统设计【回映分享】

    。因此,毫米波主被动复合探测体制是毫米波探测技术的发展趋势之一。 本文介绍了3mm波段毫米波主被动复合探测系统的工作原理,探讨了探测系统的主要技术指标,并确定了
    发表于 12-30 10:36

    智能车目标识别系统的设计实现资料推荐

    1、智能车目标识别系统实现  首先,简单介绍一下上面提到的各个话题的范围 (Domain),人工智能 (Artifitial Intelligence)是最大的话题,如果用一张图来说明的话
    发表于 09-06 14:54

    基于RT-Thread和N32G457的嵌入式目标识别系统设计实现

    1、基于RT-Thread和N32G457的嵌入式目标识别系统设计  本演示示例移植苏州大学计算机科学与技术学院王宜怀教授团队的金葫芦嵌入式人工智能:物体认知系统中的代码在N32G457上实现
    发表于 11-30 11:36

    基于USB和目标识别图像采集系统的设计实现

    介绍了一种有目标识别功能的图像采集系统,用USB 接口芯片实现了数据的传输。阐述了系统的硬件、固件、设备驱动程序和应用软件的设计与
    发表于 08-13 08:42 14次下载

    运动目标识别与跟踪系统的研究

    提出了一种运动目标识别与跟踪系统的方案,给出了系统的原理图和结构框图。重点论述了图像处理的过程和算法,包括颜色模型的选择,图像的预处理,
    发表于 07-20 16:14 29次下载

    基于图像检索的地标识别系统

    设计并实现了基于图像检索的地标识别系统。该系统通过捕捉地标的视觉特征,帮助游客或使用者更好地理解图像的内容并同时提供
    发表于 07-16 17:02 25次下载

    红外动目标识别跟踪系统实现方案

    红外动目标识别跟踪系统实现方案
    发表于 01-12 22:13 24次下载

    《光学精密工程》—采用优化卷积神经网络的红外目标识别系统

    采用优化卷积神经网络的红外目标识别系统 人工智能技术与咨询 前天 本文来自《光学精密工程》,作者刘可佳等 关注微信公众号:人工智能技术与咨询。了解更多咨询! 摘要 针对视频数据利用低效和光测设备
    发表于 11-16 14:33 1111次阅读
    《光学精密工程》—采用优化卷积神经网络的红外<b class='flag-5'>目标识别系统</b>

    机器视觉的图像目标识别方法操作要点

    通过加强图像分割,能够提高机器视觉的图像目标识别的自动化水平,使得图像目标识别效果更加显著。图像
    发表于 01-15 12:17 433次阅读

    机器视觉的图像目标识别方法综述

    文章来源:MEMS引言从20世纪80年代开始,机器视觉技术的发展速度不断加快,已经走进了人们的日常生活与工作之中。机器视觉的图像目标识别系统的自动化程度较高,应用范围广,尤其在危险场所的运用,采用
    的头像 发表于 02-23 08:26 710次阅读
    机器视觉的<b class='flag-5'>图像</b><b class='flag-5'>目标识别</b>方法综述

    目标智能识别系统

    智慧华盛恒辉多目标智能识别系统是一种利用现代计算机视觉技术和人工智能算法,从图像或视频中同时识别和分类多个
    的头像 发表于 07-16 10:42 1.3w次阅读