图像实时采集系统

本方案主要在于解决图像实时采集系统对算法校正的仿真实验,以及采集卡接收电路的验证。

由于图像实时跟踪处理系统需要大量的外场景实验,大部分时候只能通过采集的现场图像以在电脑软件中读取图片的形式来进行验证算法,而无法通过采集卡对接来联立的验证系统的实用性。在进行联立实验室只能在有外场环境的情况下进行校正,并且外场场景单一。本系统的设计可以在室内进行已录制的不同外场场景的切换,可以灵活地验证图像实时处理系统的正确性。

本方案FPGA采用K7芯片,并且配有双BASE模式的CameraLink端口,不仅提高数据的处理和传输速度,也方便两台机器同时工作。本方案已成功在项目上应用验证,在高低温和热真空的环境试验中,可以成功把照片组快速传送到处理板上,处理板的算法对恶劣环境的照片组进行实时的目标跟踪。

硬件方面,上位机将数据传送到FPGA模块,然后通过NI PXIe-1082适配器,传出CameraLink信号,双BASE模式,通过CameraLink协议传输到自己的处理板,经过算法的处理,传到显示板,直接显示在显示屏上。(图1)

图1 硬件构成原理图

       图2是整个系统的图片,由NI发图设备、处理板,显示屏组成。FlexRIO的高速图像仿真发图系统发送硬盘中的图片组到处理板,图片经过处理传送到显示屏中。

图2 系统实物图

  软件方面,用户操作界面简单易懂,软件以打开图片所在文件夹的形式选取不同的外景,对相机的仿真设置参数均按照所需要求设置。程序一共分为2部分,也就是FPGA代码和上位机代码。其中FPGA代码实现了标准的CameraLink协议部分,而上位机代码决定了图像发送的尺寸大小和位数以及TAP形式。为了方便扩展,FPGA代码给CameraLink的部分参数留了可改动的余地。正是由于NI FPGA的灵活性,不仅是CameraLink的标准协议可以很好的实现,而且也可以自定义一些时序数据或间隔时间。

 FPGA代码分解:

图3 FPGA代码分解:

数据从DMA FIFO中读出并放入到VI SCOPE的FIFO中,做一级数据缓存。

图4

实现整个CameraLink功能的状态机,也是程序主体部分。将这个状态机进一步细分则是:

图5

实现流程为:

图6 

       一般不同的应用,只需要修改上位机软件就可以了,在介绍上位机之前,先来看看CameraLink协议。CameraLink分为Base和Full两种格式,Base格式通过5个差分对来传输图像,除去时钟差分对,一共还有4对,每个时钟周期里,这4根差分对传输7个bit的数据,那就是说CameraLink一个时钟周期能传输28bit数据,事实上一般情况我们都会将其中4位去掉,也就是只考虑24bit也就是三个字节。我们在写数据的时候是将一幅图的所有数据全部提取出来并且拼接成U32的格式,并上图像的宽度和高度,一同写入到DMA FIFO中。目前上位机程序已经实现了多种不同格式的图像数据的发送了,经过与NI CameraLink接收卡相连测试,都能够成功传输。

       上位机操作界面简单易行

图7 上位机软件操作界面

上位机加载FPGA的运行文件:

图8

读取图片文件,可以读常用的图片格式,同时也可以用读数据的形式来读自定的图片格式:

图9

对读出来的图片数据进行解析和拼接,符合CameraLink格式,可以发送图像深度为8、10、12、14、16,并且相应的以1、2、3Tap形式发送给FPGA:

图10

  针对实验室的需求,我们需要发送不同格式的图片到处理板,有些图片的格式由实验室制定,LABVIEW现有的图片控件不能识别自定的图片属性,而且需要发送的图片内存非常大。经过创新设计,我们将自定格式的图片以数据的形式发送,无论图片格式如何,都会将数据发送出去。针对图片组内存大的问题,我们使用了生产者/消费者模式,只需要一幅图像的内存,大大减少了所需的内存空间,有效地解决了这个问题,现在设计的软件程序针对不同的图片格式和不同的位数,有着不同的处理方式,而且速度快,系统稳定。

以前我们每次做实验,都需要用相机来拍摄图像,现场试验,这样会需要很大的人力物力,有些特殊环境不允许重复拍摄,从而增加了实验难度。使用NI的仿真发图系统,有效地仿真相机的功能,随时传输各种实验环境的照片,相比较以前使用的系统,NI的产品的优势很多, 主要表现在NI软件具有极大的灵活性,在NI LABVIEW的图形化开发环境中,无需文本代码,而是通过拖放式图标开发数据采集系统。直观的流程图所显示的代码便于开发、维护和理解,而且具有快速、灵活的数据存储选项,系统稳定可靠。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/176153.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《网络协议》05. 网络通信安全 · 密码技术

title: 《网络协议》05. 网络通信安全 密码技术 date: 2022-09-10 15:16:15 updated: 2023-11-12 07:03:52 categories: 学习记录:网络协议 excerpt: 网络通信安全(ARP 欺骗,DoS & DDoS,SYN 洪水攻击,LAND 攻击&a…

基于flask+bootstrap4实现的注重创作的轻博客系统项目源码

一个注重创作的轻博客系统 作为一名技术人员一定要有自己的博客,用来记录平时技术上遇到的问题,把技术分享出去就像滚雪球一样会越來越大,于是我在何三博客的基础上开发了[l4blog],一个使用python开发的轻量博客系统,…

github镜像访问方法

https://ghproxy.com/ (GitHub 文件 , Releases , archive , gist , raw.githubusercontent.com 文件代理加速下载服务) https://mirror.ghproxy.com/ 在这个网址后面直接加上github的网址,如: https://mirror.ghproxy.com/htt…

ZYNQ实验--Petalinux--Linux C 编程入门

Linux C 编程入门 在 Windows 下我们可以使用各种各样的 IDE 进行编程,比如强大的 Visual Studio。Ubuntu 下也有一些可以进行编程的工具,但是大多都只是编辑器,也就是只能进行代码编辑,如果要编译的话就需要用到 GCC 编译器&…

Protobuf 语法

Protobuf语法 1.1.1. 基本规范 文件以.proto做为文件后缀,除结构定义外的语句以分号结尾 结构定义可以包含:message、service、enum rpc方法定义结尾的分号可有可无 Message命名采用驼峰命名方式,字段命名采用小写字母加下划线分隔方式 …

如何使用内网穿透实现远程公网访问windows node.js的服务端

使用Nodejs搭建简单的web网页并实现公网访问 前言 Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的Web应用程序框架。 Node.js自带运行时环境可在Javascript脚本的基础上可以解释和执行(这类似于JVM的Java字节码)。这个运行时允许在浏览器以外的任何机器上执行JavaScri…

轻量封装WebGPU渲染系统示例<31>- 若干线条对象(源码)

线条对象包括: AABB包围盒,OBB包围盒, 曲线,直线,圆,坐标轴,视锥体线框,方形网格等。 当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/LineOb…

go学习之接口知识

文章目录 接口1.接口案例代码展示2.基本介绍3.基本语法4.应用场景介绍5.注意事项和细节6.接口编程经典案例7.接口与继承之间的比较8.面向对象编程--多态1)基本介绍2)快速入门3)接口体现多态的两种形式 9.类型断言1)先看一个需求2&…

Ladybug 全景相机, 360°球形成像,带来全方位的视觉体验

360无死角全景照片总能给人带来强烈的视觉震撼,有着大片的既视感。那怎么才能拍出360球形照片呢?它的拍摄原理是通过图片某个点位为中心将图片其他部位螺旋式、旋转式处理,从而达到沉浸式体验的效果。俗话说“工欲善其事,必先利其…

RabbitMq防止消息丢失

RabbitMq防止消息丢失 消息的传递路径出现消息丢失的位置解决 消息的传递路径 消息发送方 --> MQ --> 消息消费方 出现消息丢失的位置 消息发送方: 消息传输过程中丢失MQ: MQ收到消息后,存在内存中,还未被消费就宕机了,导致数据丢失消息消费方: 消息到达消费方后, 服务…

css实现元素四周阴影

前言 首先确定的是需要使用box-shadow这一属性 语法如下: box-shadow: h-shadow v-shadow blur spread color inset; h-shadow:表示水平方向上的阴影偏移量,必须指明,可以是正数、负数、0,如果为正数左方有阴影&…

【机器学习基础】机器学习入门(1)

🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:机器学习 欢迎订阅!后面的内容会越来越有意思~ 💡专栏介绍: 本专栏的第一篇文章,当然要介绍一下了~来说一下这个专栏的开…