跳转到主要内容

玩转FPGA边缘视觉——4k视频图像抓取

judy 提交于

随着现代图像及视频处理技术的不断发展,人们对图像处理提出了新的要求,最近几年,图像的分辨率和扫描频率都有了较大范围的提升,1080P分辨率的视频已经非常流行,2K甚至4K分辨率的图像也在火热发展中。
<center><img src="http://xilinx.eetrend.com/files/2020-05/wen_zhang_/100049258-97322-tu1…; alt=""></center>

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

FPGA(Field-Program mable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
<center><img src="http://xilinx.eetrend.com/files/2020-05/wen_zhang_/100049258-97323-tu2…; alt=""></center>

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

FPGA功能描述图示:
<center><img src="http://xilinx.eetrend.com/files/2020-05/wen_zhang_/100049258-97324-tu3…; alt=""></center>

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

<strong>一、前期准备工作</strong>
将产品资料光盘中的镜像文件和摄像头测试文件复制到TF卡中,并安装光盘中的工业相机采集软件OCT SDK工具,同时去cypress官网下载FX3 SDK工具进行固件烧录。(具体文件路径请看板卡配套资料)
<center><img src="http://xilinx.eetrend.com/files/2020-05/wen_zhang_/100049258-97325-tu4…; alt=""></center>

<strong>二、操作过程</strong>
(1)将开发板的启动模式switch 开关SW1 的1 拨到OFF,2 拨到ON,3拨到OFF,4 拨到ON,设置成TF 卡启动模式;
<center><img src="http://xilinx.eetrend.com/files/2020-05/wen_zhang_/100049258-97326-tu5…; alt=""></center>

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

Welcome to myir board
myir login: root
[root@myir ~]#

(4)打开OCT SDK 工具,如下图,选择“OCAM Technology”,点击右键选择Connect>Window:1:
<center><img src="http://xilinx.eetrend.com/files/2020-05/wen_zhang_/100049258-97327-tu6…; alt=""></center>

光标移到右侧视屏区,点击右键,选择Start
(5)发送控制指令,设置Gige(网络接口)为输出接口的视频源为1,选择PS VDMA为输出的视频源;
[root@myir ~]# cd /mnt/mmcblk1p1/
[root@myir mmcblk1p1]# ./setispcmd 81 01 12 00 01 00 02 ff
(6)抓取摄像头图像,输入如下命令,将会生成图像文件rgb888;
[root@myir mmcblk1p1]# ./ispcaptest
(7)显示抓取摄像头图像;
[root@myir mmcblk1p1]# cat rgb888 >/dev/fb0
(8)OCT 工具将会显示抓取的摄像头图像;
<center><img src="http://xilinx.eetrend.com/files/2020-05/wen_zhang_/100049258-97328-tu7…; alt=""></center>

<strong>三、HDMI接口显示</strong>
如果要用hdmi 接口的4k 显示器显示摄像头图像,输入如下命令,将会显示如下图的摄像头图像。
[root@myir ~]# cd /mnt/mmcblk1p1/
[root@myir mmcblk1p1]# ./setispcmd 81 01 12 00 01 00 01 ff
[root@myir mmcblk1p1]# ./ispcaptest
[root@myir mmcblk1p1]# cat rgb888 >/dev/fb0
<center><img src="http://xilinx.eetrend.com/files/2020-05/wen_zhang_/100049258-97329-tu8…; alt=""></center>

<strong>四、USB显示输出</strong>
如果要用usb 显示摄像头图像,按照“MYD-CZU3EG-ISP 功能描述和编译”的文档生成包含usb 显示图像的功能的BOOT.bin,替换TF 卡中的BOOT.bin文件,将会显示如下图的摄像头图像。
[root@myir ~]# cd /mnt/mmcblk1p1/
[root@myir mmcblk1p1]# ./setispcmd 81 01 12 00 01 00 04 ff
[root@myir mmcblk1p1]# ./ispcaptest
[root@myir mmcblk1p1]# cat rgb888 >/dev/fb0
<center><img src="http://xilinx.eetrend.com/files/2020-05/wen_zhang_/100049258-97330-tu9…; alt=""></center>

<strong>五、HDMI 显示QT 界面</strong>
将开发板的启动模式switch开关SW1 的1 拨到OFF,2 拨到ON,3拨到OFF,4 拨到ON,设置成TF 卡启动模式;
插入已存入烧写文件的TF 卡,连接串口波特率为115200,开发板上电;
开发板将引导进入Ramdisk文件系统,进入Linux 命令行,输入命令开始更新:
Welcome to myir board
myir login: root
[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文件系统,输入如下命令。
Welcome to myir board
myir login: root
[root@myir ~]# /mnt/mmcblk1p1/setispcmd 81 01 12 00 01 00 01 ff
[root@myir ~]# /usr/lib/qt/examples/widgets/painting/deform/deform

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

<body>
<table border="1" cellspacing="0">
<tbody>
<tr>
<td width="852" valign="top" colspan="4"><span font-size:16px;="font-size:16px;">ISP 视频源控制指令集</span></td>
</tr>
<tr>
<td width="180" valign="top"><p align="center"><span font-size:16px;="font-size:16px;">Command Set</span></p></td>
<td width="156" valign="top"><p align="center"><span font-size:16px;="font-size:16px;">Command</span></p></td>
<td width="269" valign="top"><p align="center"><span font-size:16px;="font-size:16px;">Command Packet</span></p></td>
<td width="246" valign="top"><p align="center"><span font-size:16px;="font-size:16px;">Comments</span></p></td>
</tr>
<tr>
<td width="180" valign="center"><p align="center"><span font-size:16px;="font-size:16px;">PL Output</span><br />
<span font-size:16px;="font-size:16px;">Port Video</span><br />
<span font-size:16px;="font-size:16px;">Source Select</span></p></td>
<td width="156" valign="center"><p align="center"><span font-size:16px;="font-size:16px;">PL Video</span><br />
<span font-size:16px;="font-size:16px;">Output</span><br />
<span font-size:16px;="font-size:16px;">Select</span></p></td>
<td width="269" valign="center"><p align="center"><span font-size:16px;="font-size:16px;">81 01 12 00 01 00 0Y ff</span></p></td>
<td width="246" valign="top"><p><span font-size:16px;="font-size:16px;">Y的bit0、1、2分别表示HDMI、Gige、U3V输出接口的视频源选择:0表示选择PL ISP输出的视频、1表示选择PS VDMA输出的视频。</span></p></td>
</tr>
</tbody>
</table>
</body>

<strong>VECP边缘视觉套件简介 </strong>
<center><img src="http://xilinx.eetrend.com/files/2020-05/wen_zhang_/100049258-97331-tu10…; alt=""></center>

MYD-CZU3EG开发板由MYC-CZU3EG核心板加MYB-CZU3EG-C-ISP底板组成。核心板采用了Xilinx最新的基于16nm工艺的Zynq UltraScale+ All Programmable SoC平台,集成了四核Cortex™-A53 处理器,双核Cortex™-R5 实时处理单元以及Mali-400 MP2图形处理单元及16nm FinFET+可编程逻辑相结合的异构处理系统。
<center><img src="http://xilinx.eetrend.com/files/2020-05/wen_zhang_/100049258-97332-tu11…; alt=""></center>

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

文章来源:米尔科技