图像实时采集系统

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

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

本方案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的图形化开发环境中,无需文本代码,而是通过拖放式图标开发数据采集系统。直观的流程图所显示的代码便于开发、维护和理解,而且具有快速、灵活的数据存储选项,系统稳定可靠。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

亚马逊鲲鹏系统强大的指纹系统可有效防止账号关联

亚马逊鲲鹏系统最新的防指纹技术支持绑定不同的代理IP,可以根据ip创建不同的指纹环境,让账号伪装成来自不同地点、不同设备的流量,每个账号环境隔离开来,实现了完全独立的操作任务,避免了账户指纹关联和操作轨迹关联。…

20. 深度学习 - 多层神经网络

Hi,你好。我是茶桁。 之前两节课的内容,我们讲了一下相关性、显著特征、机器学习是什么,KNN模型以及随机迭代的方式取获取K和B,然后定义了一个损失函数(loss函数),然后我们进行梯度下降。 可以…

ubuntu上安装edge浏览器

1下载edge浏览器 官网下载 edge浏览器的linux版本可在上面的官网中寻找。 我选择的是Linux(.deb)。 2 安装 可在终端的edge安装包所在的路径下输入下面命令安装。 sudo dpkg -i edge安装包的名称.deb3 安装可能存在的问题 1dpkg:依赖关系问题使得edge-stable的配置工作不…

【NLP】理解 Llama2:KV 缓存、分组查询注意力、旋转嵌入等

LLaMA 2.0是 Meta AI 的开创性作品,作为首批高性能开源预训练语言模型之一闯入了 AI 场景。值得注意的是,LLaMA-13B 的性能优于巨大的 GPT-3(175B),尽管其尺寸只是其一小部分。您无疑听说过 LLaMA 令人印象深刻的性能,但您是否想知…

idea 插件推荐第二期

文章目录 便捷开发CodeGlance Pro (代码缩略图)GenerateAllSetter(快速生成对象所有set方法)GsonFormatPlus:json转实体RestfulToolkitX(找到controller快捷请求接口) 美化activate-power-mode-x (敲击计数、动效)Nyan…

nginx -s reload, 提示 [emerg] duplicate location “/“

问题描述: 执行nginx -s reload, 提示 duplicate location / 问题原因: 是因为location / 有两个,匹配重复了 解决方案: 把其中一个location / 注释掉,即可

Swift--基本运算符与程序流程控制

系列文章目录 第一章:量值与基本数据类型 第二章:字符、字符串与集合类型 文章目录 系列文章目录空合并运算符区间运算符循环结构while与repeat-while条件循环结构 空合并运算符 可选值类型是Swift语言的一个独特之处,空合并运算符就是针对…

「Verilog学习笔记」优先编码器电路①

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 timescale 1ns/1ns//优先编码器电路1 //电路的优先顺序是,从9到1,高级到低级 //9个输入端:I端,4个输出端:Y端&am…

U盘怎么加密?U盘数据该怎么加密?

在使用U盘的过程中,我们会将很多重要数据存放在电脑中,但为了保护文件的安全性,我们需要使用加密来进行保护。那么,U盘数据该怎么加密呢? U盘数据加密方法 想要将普通U盘变成加密U盘,我们需要使用专业的U盘…

【JVM】类加载器 Bootstrap、Extension、Application、User Define 以及 双亲委派

以下环境为 jdk1.8 两大类 分类成员语言继承关系引导类加载器bootstrap 引导类加载器C/C无自定义类加载器extension 拓展类加载器、application 系统/应用类加载器、user define 用户自定义类加载器Java继承于 java.lang.ClassLoader 四小类 Bootstrap 引导类加载器 负责加…

js编辑只取修改后的对象的属性和值

需求:在el-table的列表编辑操作后, 第一步:获取当前行数据,为对象:{}, 第二步:数据回填 第三步:编辑 第四步:请求后端接口 本文章操作就是在编辑完成后,只取编…

npm install导致的OOM解决方案

文章目录 问题记录解决方法Linux重启排查方法 如何排查Linux自动重启的原因 问题记录 我在华为云服务器配置npm开发环境的时候, SSH远程连接一直掉线,无奈提了工单,被告知是NPM install导致的OOM问题。无语了,破NPM还有这个问题呢…

项目二:家庭记账系统

目录 一:目标 二:需求说明 2.1:基本资金和收支明细的记录 2.2:键盘访问的实现 三:实现步骤 3.1:实现主程序结构 3.2:实现收入和支出登记处理 3.3:工具类的使用 四:代…

跨境电商的数据安全:隐私保护的前沿

在数字时代,跨境电商已经成为了国际贸易的重要组成部分,为企业和消费者提供了便捷的购物和销售途径。然而,这一快速增长的领域也伴随着数据安全和隐私保护的挑战。本文将深入探讨跨境电商的数据安全问题,以及行业在维护用户隐私权…

第七章 块为结构建模 P5|系统建模语言SysML实用指南学习

仅供个人学习记录 应用泛化对分类层级建模 继承inherit更通用分类器的公共特性,并包含其他特有的附加特性。通用分类器与特殊分类器之间的关系称为泛化generalization 泛化由两个分类器之间的线条表示,父类端带有空心三角形箭头 块的分类与结构化特性…

Haskell添加HTTP爬虫ip编写的爬虫程序

下面是一个简单的使用Haskell编写的爬虫程序示例,它使用了HTTP爬虫IP,以爬取百度图片。请注意,这个程序只是一个基本的示例,实际的爬虫程序可能需要处理更多的细节,例如错误处理、数据清洗等。 import Network.HTTP.Cl…

想要轻松上手Docker?Portainer帮你实现零基础快速部署!

Portainer简介 前面我们已经讲解了安装docekr和使用docker run 部署容器了,但是这些可能需要使用CLI(命令行参数)才能快乐的玩耍,因此可以使用一个工具在web界面进行配置管理容器与镜像,方便大家使用。 Portainer是一款Docker容器管理系统&am…

《QT从基础到进阶·二十一》QGraphicsView、QGraphicsScene和QGraphicsItem坐标关系和应用

前言: 我们需要先由一个 QGraphicsView,这个是UI显示的地方,也就是装满可见原色的Scene,然后需要一个QGraphicsScene 用来管理所有可见的界面元素,要实现UI功能,我们需要用各种从QGraphicsItem拼装成UI控件…

sqlmap requires ‘python-pymysql‘ third-party library

使用sqlmap进行udf提权报错: [14:06:04] [CRITICAL] sqlmap requires python-pymysql third-party library in order to directly connect to the DBMS MySQL. You can download it from https://github.com/PyMySQL/PyMySQL. Alternative is to use a package pyt…

高频SQL50题(基础班)-4

文章目录 主要内容一.SQL练习题1.1789-员工的直属部门代码如下(示例): 2.610-判断三角形代码如下(示例): 3.180-连续出现的数字代码如下(示例): 4.1164-指定日期的产品价格代码如下(示例&#x…