随着现代图像及视频处理技术的不断发展,人们对图像处理提出了新的要求,最近几年,图像的分辨率和扫描频率都有了较大范围的提升,1080P分辨率的视频已经非常流行,2K甚至4K分辨率的图像也在火热发展中。

基于软件的图像处理方法存在着一些局限性,尤其是计算速度和算法效率方面。所以大家很自然的就想到了FPGA作为嵌入式图像应用的平台。许多图像处理本身就是并行计算的,并且FPGA的编程硬件,本质上也是并行的。

FPGA(Field-Program mable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

 

下面以米尔VECP边缘视觉套件作为图像处理的硬件平台,带你玩转FPGA之视频图像抓取。

FPGA功能描述图示:

MYD-CZU3EG-ISP 提供4K分辨率的摄像头功能,同时输出4K分辨率的图像显示到图像输出接口,下面带一起来体验FPGA的图像抓取和图像显示的操作和应用。

一、前期准备工作
将产品资料光盘中的镜像文件和摄像头测试文件复制到TF卡中,并安装光盘中的工业相机采集软件OCT SDK工具,同时去cypress官网下载FX3 SDK工具进行固件烧录。(具体文件路径请看板卡配套资料)

二、操作过程

(1)将开发板的启动模式switch 开关SW1 的1 拨到OFF,2 拨到ON,3拨到OFF,4 拨到ON,设置成TF 卡启动模式;

 
(2)插入已存入文件的TF 卡,连接串口,波特率设置为115200,开发板上电;
(3)开发板将引导进入Ramdisk 文件系统,进入Linux 命令行:

  1. Welcome to myir board
  2. myir login: root
  3. [root@myir ~]#

(4)打开OCT SDK 工具,如下图,选择“OCAM Technology”,点击右键选择Connect>Window:1:

 

光标移到右侧视屏区,点击右键,选择Start
(5)发送控制指令,设置Gige(网络接口)为输出接口的视频源为1,选择PS VDMA为输出的视频源;

  1. [root@myir ~]# cd /mnt/mmcblk1p1/
  2. [root@myir mmcblk1p1]# ./setispcmd ff

(6)抓取摄像头图像,输入如下命令,将会生成图像文件rgb888;

  1. [root@myir mmcblk1p1]# ./ispcaptest

(7)显示抓取摄像头图像;

  1. [root@myir mmcblk1p1]# cat rgb888 >/dev/fb0

(8)OCT 工具将会显示抓取的摄像头图像;

三、HDMI接口显示

如果要用hdmi 接口的4k 显示器显示摄像头图像,输入如下命令,将会显示如下图的摄像头图像。

  1. [root@myir ~]# cd /mnt/mmcblk1p1/
  2. [root@myir mmcblk1p1]# ./setispcmd ff
  3. [root@myir mmcblk1p1]# ./ispcaptest
  4. [root@myir mmcblk1p1]# cat rgb888 >/dev/fb0
 

四、USB显示输出

如果要用usb 显示摄像头图像,按照“MYD-CZU3EG-ISP 功能描述和编译”的文档生成包含usb 显示图像的功能的BOOT.bin,替换TF 卡中的BOOT.bin文件,将会显示如下图的摄像头图像。

  1. [root@myir ~]# cd /mnt/mmcblk1p1/
  2. [root@myir mmcblk1p1]# ./setispcmd ff
  3. [root@myir mmcblk1p1]# ./ispcaptest
  4. [root@myir mmcblk1p1]# cat rgb888 >/dev/fb0
 

五、HDMI 显示QT 界面

将开发板的启动模式switch开关SW1 的1 拨到OFF,2 拨到ON,3拨到OFF,4 拨到ON,设置成TF 卡启动模式;
插入已存入烧写文件的TF 卡,连接串口波特率为115200,开发板上电;
开发板将引导进入Ramdisk文件系统,进入Linux 命令行,输入命令开始更新:

  1. Welcome to myir board
  2. myir login: root
  3. [root@myir ~]#/updatesys.sh /mnt/mmcblk1p1

脚本将把BOOT.bin,devicetree.dtb,Image 烧写到QSPI-Flash,把rootfs.tar烧写到eMMC。
烧写完成之后,将开发板的启动模式switch 开关SW1的1拨到ON,2拨到OFF,3拨到ON,4拨到ON,
设置成Qspi flash 启动模式,重新上电,进入烧写的rootfs文件系统,输入如下命令。

  1. Welcome to myir board
  2. myir login: root
  3. [root@myir ~]# /mnt/mmcblk1p1/setispcmd ff
  4. [root@myir ~]# /usr/lib/qt/examples/widgets/painting/deform/deform

六、选择视频源的指令说明

选择视频源的指令说明见下表,查看ISP 控制指令集,请参考《MYD-CZU3EG -ISP图像控制指令手册》文档。

ISP 视频源控制指令集

Command Set

Command

Command Packet

Comments

PL Output
Port Video
Source Select

PL Video
Output
Select

81 01 12 00 01 00 0Y ff

Y的bit0、1、2分别表示HDMI、Gige、U3V输出接口的视频源选择:0表示选择PL ISP输出的视频、1表示选择PS VDMA输出的视频。

 

VECP边缘视觉套件简介 

 

MYD-CZU3EG开发板由MYC-CZU3EG核心板加MYB-CZU3EG-C-ISP底板组成。核心板采用了Xilinx最新的基于16nm工艺的Zynq UltraScale+ All Programmable SoC平台,集成了四核Cortex™-A53 处理器,双核Cortex™-R5 实时处理单元以及Mali-400 MP2图形处理单元及16nm FinFET+可编程逻辑相结合的异构处理系统。

 
底板搭载的接口包括PL端的HDMI输出,千兆网口,USB3.0 device接口,MIPI接口,高速扩展IO,以及PS端的USB3.0 HOST接口,千兆网口,TF卡接口,USB 转调试串口等,拥有超低延时4k图像处理技术,并且图像处理IP支持定制。

玩转FPGA边缘视觉——4k视频图像抓取的更多相关文章

  1. javaCV开发详解之6:本地音频(话筒设备)和视频(摄像头)抓取、混合并推送(录制)到服务器(本地)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...

  2. 新视觉影院yy6080.org视频的抓取

    用fiddler 分析了一下, 从点连接 到 视频播放的过程 http://yy6080.org/v/103390 http://id.jiathis.com/id.php?u=http%3A%2F% ...

  3. 玩爽了!直接在Chrome里抓取数据

    一个小测试发现可以自动做题,于是想通过脚本的方式看能不能获取相应的题库,刚好可以学习一下JS异步操作.花了一天时间,总算跑顺利了,遇到了不少坑.记录下来分享. 1.JS如何顺序执行 JS有强大的异步操 ...

  4. .net c# 视频剪切抓取缩略图

    public string Cut(string ffmpegPath, string videoPath, string savePath, string imgSize, int sleepTim ...

  5. 还没被玩坏的robobrowser(4)——从页面上抓取感兴趣的内容

    背景 本节的知识实际上是属于Beautiful Soup的内容. robobrowser支持Beautiful Soup,一般来说通过下面3个方法获取页面上感兴趣的内容 find find_all s ...

  6. javaCV开发详解之4:转流器实现(也可作为本地收流器、推流器,新增添加图片及文字水印,视频图像帧保存),实现rtsp/rtmp/本地文件转发到rtmp流媒体服务器(基于javaCV-FFMPEG)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...

  7. 10分钟教你用Python玩转微信之抓取好友个性签名制作词云

    01 前言+展示 各位小伙伴我又来啦.今天带大家玩点好玩的东西,用Python抓取我们的微信好友个性签名,然后制作词云.怎样,有趣吧~好了,下面开始干活.我知道你们还是想先看看效果的. 后台登录: 词 ...

  8. 基于Xilinx FPGA的视频图像采集系统

    本篇要分享的是基于Xilinx FPGA的视频图像采集系统,使用摄像头采集图像数据,并没有用到SDRAM/DDR.这个工程使用的是OV7670 30w像素摄像头,用双口RAM做存储,显示窗口为320x ...

  9. 基于FPGA的HDTV视频图像灰度直方图统计算法设计

    随着HDTV的普及,以LCD-TV为主的高清数字电视逐渐进入蓬勃发展时期.与传统CRT电视不同的是,这些高清数字电视需要较复杂的视频处理电路来驱动,比如:模数转换(A/D Converter).去隔行 ...

随机推荐

  1. 1 - Apache HttpClient 简单使用

    Apache HttpClient 是Apache 开源的实现Http协议的java开源库. HttpClien 是客户端的HTTP通信实现库,实现HTTP GET 和POST请求,获取响应内容. A ...

  2. 天天在用Redis,持久化方案你又知道哪些?

    前言 文章首发于微信公众号[码猿技术专栏]:天天用Redis,持久化方案有哪些你知道吗? Redis目前已经成为主流的内存数据库了,但是大部分人仅仅是停留在会用的阶段,你真的了解Redis内部的工作原 ...

  3. 使用GML的八方向自动寻路

    使用GML的八方向自动寻路 本教程适合无基础人员使用. 提示 本教程中仅使用了最简单的方法,并且有一些错误和不规范之处.请谅解一下,在评论区提出,我会修改.古人曰"教学相长",希望 ...

  4. TortoiseSVN的使用,以及冲突解决办法

    接下来,试试用TortoiseSVN修改文件,添加文件,删除文件,以及如何解决冲突等. 添加文件 在检出的工作副本中添加一个Readme.txt文本文件,这时候这个文本文件会显示为没有版本控制的状态, ...

  5. ubuntu下载速度慢的解决办法--修改下载源

    操作:https://blog.csdn.net/qq_24326765/article/details/81916222 推荐源:https://blog.csdn.net/qq_36328643/ ...

  6. thinkphp5.0 模型的应用

    <?php namespace app\admin\controller; use app\common\controller\BaseController; use think\Db;//数据 ...

  7. h5前端animate等js特效问题汇总

    1.jq中的animate不要重复大量使用,会导致内存溢出或泄漏,很直观的现象就是手机发热太严重: 2.input 的button类型的去掉默认样式并换颜色: -webkit-appearance:n ...

  8. JVM原理以及深度调优(二)

    JVM内存分配 内存分配其实真正来讲是有三种的.但对于JVM来说只有两种 栈内存分配: 大家在调优的过程中会发现有个参数是-Xss 默认是1m,这个内存是栈内存分配, 在工作中会发现栈OutOfMem ...

  9. java中functional interface的分类和使用

    目录 简介 Functional Interface Function:一个参数一个返回值 BiFunction:接收两个参数,一个返回值 Supplier:无参的Function Consumer: ...

  10. scala教程之:可见性规则

    文章目录 public Protected private scoped private 和 scoped protected 和java很类似,scala也有自己的可见性规则,不同的是scala只有 ...