图像实时采集系统

news2024/11/15 12:25:13

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

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

本方案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.coloradmin.cn/o/1202378.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业计算机中了eking勒索病毒如何解毒,eking勒索病毒文件恢复

网络技术的不断发展,为企业的生产生活提供了极大便利,但随之而来的网络安全威胁也不断增加,近期,很多企业的计算机服务器遭到了eking勒索病毒攻击,导致企业的计算机服务器所有数据被加密,无法正常使用&…

thinkPHP8 调试

方法一: config/app.php 把‘config/app.php’ 里面的 ‘show_error_msg’ > false, 改成true; 这样如果网页找不到内容就会显示出具体原因 方法二:.example.env 重命名 为 .env 修改成.env,修改后如果没有找到方法,则会提示…

【深度学习】pytorch——常用工具模块

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 深度学习专栏链接: http://t.csdnimg.cn/dscW7 pytorch——常用工具模块 数据处理 torch.utils.data模块DatasetDataLoadersamplertorch.utils.data的使用 计算机视觉工具包 torchvisiontorchvision.d…

RabbitMQ实战

文章目录 1、简介2、MQ优点缺点MQ的应用场景AMQP工作原理市面上常见的MQ 3、Linux安装RabbitMQ3.1 版本对应3.2 安装socat3.3 下载 Erlang/OTP、安装、验证 erlang方法一:1. 下载2. 将下载的Erlang服务上传到服务器上面3. 解压4. 编译erlang的依赖环境5. 安装Erlang…

【stack题解】逆波兰表达式求值 | 用队列实现栈

逆波兰表达式求值 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 、-、…

ROS1 学习11 坐标系tf 管理系统 简介及demo示例

坐标系是我们非常熟悉的一个概念,也是机器人学中的重要基础,在一个完整的机器人系统中,会存在很多坐标系,这些坐标系之间的位置关系该如何管理? ROS给我们提供了一个坐标系的管理神器——TF。 比如在机械臂形态的机器…

热敏电阻B值含义

1.B值(材料常数) 也称为β值,该热敏电阻规格是NTC热敏电阻的电阻与温度之间关系的特定曲线。它是一个描述热敏电阻材料物理特性的参数,也是热灵敏度指标,B值越大,表示热敏电阻器的灵敏度越高。应注意的是&a…

Python标准库中隐藏的利器

Python安装之后,其标准库中有的模块,不一定要通过代码来引用,还可以直接在命令行中使用的。 在命令行中直接使用Python标准库的模块,最大的好处就是就是不用写代码,就能使用其中的功能,当临时需要一些某些…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(四)

编辑员工和分类模块功能开发 1. 编辑员工1.1 需求分析与设计1.1.1 产品原型1.1.2 接口设计 1.2 代码开发1.2.1 回显员工信息功能1.2.2 修改员工信息功能 1.3 功能测试 2. 分类模块功能开发2.1 需求分析与设计2.1.1 产品原型2.1.2 接口设计2.1.3 表设计 2.2 代码实现2.2.1 Mappe…

CSP模拟

1.3n -1 题目描述 给定一个整数n,只能对n进行以下这几种操作: 1.若n是3的倍数除以3 2.加1 3.减1 求最少多少次操作才能使n变为1? 输入 一行一个整数n 输出 一行一个整数表示答案 样例输入 4 样例输出 2 提示 对于样例1:4-…

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

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

搜集的升压芯片资料

DC-DC升压芯片,输入电压0.65v/1.5v/1.8v/2v/2.5v/2.7v/3v/3.3v/3.6v/5v/12v/24v航誉微 HUB628是一款超小封装高效率、直流升压稳压电路。输入电压范围可由低2V伏特到24伏特,升压可达28V可调,且内部集成极低RDS内阻100豪欧金属氧化物半导体场效应晶体管的…

桌面云架构讲解(VDI、IDV、VOI/TCI、RDS)

目录 云桌面架构 VDI 虚拟桌面基础架构 IDV 智能桌面虚拟化 VOI/TCI VOI 虚拟系统架构 TCI 透明计算机架构 RDS 远程桌面服务 不同厂商云桌面架构 桌面传输协议 什么是云桌面 桌面云是虚拟化技术成熟后发展起来的一种应用,桌面云通常也称为云桌面、VDI等 …

Swagger3 GET请求,使用对象接收 Query 参数,注解怎么写?

简中互联网上就没一个靠谱的答案,最终翻到了 Github Issue 上才解决,真 TMD…… CSDN 就一坨 shit mountain 解决方案 原文:https://github.com/swagger-api/swagger-core/issues/4177 太长不看: 请求方法参数上加 ParameterObj…

【异步并发编程】使用aiohttp构建Web应用程序

文章目录 1. 写在前面1. 什么是aiohttp?1.1. 什么是异步编程? 2. 安装aiohttp3. 异步HTTP服务器4. 异步请求5. aiohttp REST实例 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力…

行情不好,程序员的路在哪里?

最近有人提问,行情不好,程序员的路在哪里?今天的文章从远程工作、市场和流量思维、新技术、自媒体几个维度来讲讲。 远程工作 如果你在二三线城市,机会比较少,可以考虑一下远程工作。找一份美国或欧洲的远程工作&…

开源网安受邀参加网络空间安全合作与发展论坛,为软件开发安全建设献计献策

​11月10日,在广西南宁举办的“2023网络空间安全合作与发展论坛”圆满结束。论坛在中国兵工学会的指导下,以“凝聚网络空间安全学术智慧,赋能数字经济时代四链融合”为主题,邀请了多位专家及企业代表共探讨网络安全发展与数字经济…

助力燃气安全运行:智慧燃气管网背景延展

关键词:城市燃气管网、智慧燃气管网、智慧管网、智慧燃气管网解决方案、智慧燃气 01背景 当前,随着我国城市化进程不断加快,城市燃气管网也不断延伸,运行规模庞大,地下管线复杂,不少城市建设“重地上轻地…

Web后端开发_01

Web后端开发 请求响应 SpringBoot提供了一个非常核心的Servlet 》DispatcherServlet,DispatcherServlet实现了servlet中规范的接口 请求响应: 请求(HttpServletRequest):获取请求数据响应(HttpServletRe…

2011年09月29日 Go生态洞察:image/draw包的深度解析

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…