本文主要介绍基于全志科技T3国产平台的视频开发案例,内容包含了gige_capture案例、案例、GigE工业相机配置、图像采集并显示、图像采集以及案例编译保存、关键代码等。

本次测试板卡为基于创龙科技TLT3-EVM是一款基于全志科技T3处理器设计的4核ARM Cortex-A7高性能低功耗国产评估板,每核主频高达1.2GHz。

全志科技芯片供应商(全志科技T3开发板)(1)

评估板接口资源丰富,引出双路网口、双路CAN、双路USB、双路RS485等通信接口,板载Bluetooth、WIFI、4G(选配)模块,同时引出MIPI LCD、LVDS LCD、TFT LCD、CVBS OUT、CAMERA、LINE IN、H/P OUT等音视频多媒体接口,支持双屏异显、1080P@45fps H.264视频硬件编解码,并支持SATA大容量存储接口。

gige_capture案例案例说明

表 1

案例名称

目录

gige_capture

bin

可执行程序

lib

程序运行依赖库

pylonSDK

第三方pylonSDK开发包

src

程序源码

tools

yuvplayer工具

案例功能具体说明如下:

  1. 查询局域网内的GigE工业相机。
  2. 采集GigE工业相机图像数据,写至framebuffer以实现图像显示,格式为gray8。
  3. 采集GigE工业相机图像数据,保存至指定文件中,格式为gray8。

程序流程图如下图所示。

全志科技芯片供应商(全志科技T3开发板)(2)

图 1

案例测试

本案例使用GigE工业相机型号为Basler的acA720-290gm,最高支持分辨率为720x540,帧率可达291fps。

通过网线将评估板千兆网口RGMII ETH和GigE工业相机连接至相同路由器,确保在同一局域网下。将评估板VGA OUT通过VGA线连接至VGA显示屏,用于显示采集图像,硬件连接如下图所示。

全志科技芯片供应商(全志科技T3开发板)(3)

图 2

如通过网线将评估板和GigE工业相机直连,需将GigE工业相机配置为静态IP,并设置评估板和GigE工业相机的IP地址为同一网段。

GigE工业相机配置

本小节使用Basler官方提供的pylonSDK开发包,在PC机Ubuntu中对GigE工业相机进行IP地址获取方式、采集帧率等参数配置。

将案例"pylonSDK\x86_64\"目录下的pylonSDK-5.1.0.12682-x86_64.tar.gz压缩包拷贝至Ubuntu任意路径,并进入压缩包所在目录执行如下命令将其解压至当前目录下。

Host# tar -zxf pylonSDK-5.1.0.12682-x86_64.tar.gz -C .

全志科技芯片供应商(全志科技T3开发板)(4)

图 3

将GigE工业相机上电,通过网线将PC机和GigE工业相机连接至相同路由器,并执行如下命令进入"pylon5/bin/"目录下运行IpConfigurator工具,配置IP地址获取方式。

Host# cd pylon5/bin/

Host# ./IpConfigurator

全志科技芯片供应商(全志科技T3开发板)(5)

图 4

程序运行成功后,将会打开pylon IP Configurator窗口,点击Refresh刷新并识别GigE工业相机。由配置界面可看到GigE工业相机支持静态IP(Static IP)和动态IP(DHCP)两种模式。本次采用动态IP模式进行测试,选择DHCP选项,点击Save保存。

全志科技芯片供应商(全志科技T3开发板)(6)

图 5

IP配置完成后,关闭配置窗口,然后在bin目录下,执行如下命令运行PylonViewerApp工具,配置采集帧率等参数。

Host# ./PylonViewerApp

全志科技芯片供应商(全志科技T3开发板)(7)

图 6

在如下界面中双击选中GigE工业相机设备,"User Level"选择Expert。然后点击打开"Transport Layer"栏目,将"Packet Size"设置为1500、"Inter-Packet Delay"设置为1100。"Inter-Packet Delay"参数值会影响采集帧率,不同相机需根据实际情况进行修改。

点击菜单栏

全志科技芯片供应商(全志科技T3开发板)(8)

按钮进行连续采集,即可查看GigE工业相机采集到的图像(如下图)。配置完成后,请点击

全志科技芯片供应商(全志科技T3开发板)(9)

按钮释放GigE工业相机连接。

全志科技芯片供应商(全志科技T3开发板)(10)

图 7

图像采集并显示

评估板上电,将案例lib目录下的库文件压缩包libpylon_armhf.tar.gz拷贝至评估板文件系统任意目录,并进入压缩包所在目录执行如下命令将其解压至"/usr/lib/"目录。

Target# tar -xvf libpylon_armhf.tar.gz -C /usr/lib

全志科技芯片供应商(全志科技T3开发板)(11)

图 8

将案例bin目录下的gige_capture可执行文件拷贝至评估板文件系统任意目录下。在其所在目录下执行如下命令查看程序参数说明。

Target# ./gige_capture --help

全志科技芯片供应商(全志科技T3开发板)(12)

图 9

执行如下命令扫描局域网内的GigE工业相机,并测试GigE工业相机图像采集帧率,本次测试为159fps。

Target# ./gige_capture -m scan

全志科技芯片供应商(全志科技T3开发板)(13)

图 10

并执行如下命令,先将Qt程序关闭,并初始化framebuffer,再运行程序将GigE工业相机采集图像显示至VGA显示屏上。若图像显示不清晰,请调节相机镜头光圈和焦距。本次实测GigE工业相机采集并显示的处理帧率为82fps,实际的帧率会受硬件性能和网络环境的影响有一定的波动。

Target# killall Launcher MediaUI CameraUI //关闭Qt程序

Target# fbinit //初始化Framebuffer

Target# echo 0,0 > /sys/class/disp/disp/attr/fb2ui

Target# ./gige_capture -m display -o /dev/fb0

全志科技芯片供应商(全志科技T3开发板)(14)

图 11

全志科技芯片供应商(全志科技T3开发板)(15)

图 12

本次测试的CPU占用率如下所示。

全志科技芯片供应商(全志科技T3开发板)(16)

图 13 CPU占用率

图像采集并保存

在gige_capture可执行文件所在目录下执行如下命令,将GigE工业相机采集的图像以gray8的格式保存至指定路径的文件中。图像采集并保存的帧数会受存储设备的读写速率影响,本次实测为25fps。

Target# ./gige_capture -m save -o /root/test.gray8

全志科技芯片供应商(全志科技T3开发板)(17)

图 14

请将保存的test.gray8文件复制到Windows下(本次通过U盘复制),使用案例tools目录下的yuvplayer.exe程序打开文件,点击"Sixe -> Custom",设置图像格式Width为720,Height为540,点击"Color -> Y",点击播放按钮即可显示图像,如下所示。

全志科技芯片供应商(全志科技T3开发板)(18)

图 15

全志科技芯片供应商(全志科技T3开发板)(19)

图 16

全志科技芯片供应商(全志科技T3开发板)(20)

图 17

案例编译

将案例src源码目录和pylonSDK目录拷贝至Ubuntu同一工作目录下,执行如下命令,进入"pylonSDK/armhf/"目录,将压缩包pylonSDK-5.1.0.12682-armhf.tar.gz解压至当前目录。

Host# cd pylonSDK/armhf/

Host# tar -zxf pylonSDK-5.1.0.12682-armhf.tar.gz

全志科技芯片供应商(全志科技T3开发板)(21)

图 18

执行如下命令,进入src目录下,修改makefile文件,将PYLON_ROOT的参数值修改为ARM端pylonSDK实际路径。

Host# cd ../../src/

全志科技芯片供应商(全志科技T3开发板)(22)

图 19

全志科技芯片供应商(全志科技T3开发板)(23)

图 20

请先确保已参考Linux系统使用手册编译过LinuxSDK,构建T3处理器对应的GCC编译器。在src目录下执行如下命令,使用LinuxSDK开发包目录下的GCC编译器进行案例编译。编译完成后,将在当前目录下生成可执行文件。

Host# CC=/home/tronlong/T3/lichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/arm-linux-gnueabihf-gcc make

全志科技芯片供应商(全志科技T3开发板)(24)

图 21

想要获取案例的关键代码以及更多测试案例详细说明,欢迎在评论区留言~

,