设计并实现了NVIDIA嵌入式平台Jetson TX2上的车辆跟踪系统。从摄像头采集YUV420格式的视频数据,然后将数据送到Tegra Parker硬件HEVC编码器进行编码,输出码流经过RTP封装后通过UDP广播发送,利用Gstreamer多媒体框架开发接收及解码程序,最后,针对获取的视频动态进行车辆的跟踪与显示。运行Yolo V2检测算法,对车辆进行检测,从而为跟踪系统提供跟踪对象。利用Kalman滤波算法对车辆的位置进行预测,再经过Meanshift算法进行车辆跟踪。系统能够实现帧率为60 f/s的超高清4K视频实时编码和传输,此系统中的HEVC 硬件编码器编码速率比PC端x265编码器大3个数量级,PSNR比PC端x265编码器高6 dB,更加适用于智能交通中。
中文引用格式: 张雷,王越. 嵌入式平台下的车辆跟踪系统设计[J].电子技术应用,2019,45(11):13-16.
英文引用格式: Zhang Lei,Wang Yue. Design of vehicle tracking system based on embedded platform[J]. Application of Electronic Technique,2019,45(11):13-16.
基于NVIDIA Jetson TX2的车辆跟踪系统设计与以往的车辆跟踪系统设计有很大的不同,在本设计中实现超高清4K视频实时编码和传输,在视频编码中使用了高效率视频编码(High Efficiency Video Coding,HEVC),HEVC在相同的主观条件下与H.264/AVC相比,编码码率可以节省50% 以上[1]。硬件编码器编码速率也要比PC端x265编码器大超过3个数量级[2]。因此,本设计的跟踪系统更加能适用于以后的智能交通发展。本设计充分利用了HEVC编码的优势来为后续的检测跟踪带来优质的视频资料,再利用Yolo V2、Meanshift、Kalman算法实现对车辆的准确跟踪。同时,在检测跟踪的质量和实时性方面也能够满足目前市场的应用需求。
1.1 硬件平台
2017年3月8日,NVIDIA发布了Jetson TX2,Jetson TX2作为Jetson TX1的升级版与TX1相比最大的性能优势就是采用了NVIDIA最新研发的Tegra Parker处理器[3]。在前代的基础上增加了2个自主研发的NVIDIA Denver 2 CPU核心,能够支持实时超高清视频编解码。它具备Jetson TX1模块的所有功能[4]。因其强大的性能、低功耗、外形小巧,非常适合基于嵌入式的多媒体领域。
1.2 软件平台
Jetson TX2的软件平台包含了很多种标准硬件接口,可以在包含高性能计算与低功耗的应用场合下更方便灵活地进行平台扩展和设计。该软件平台由内核、根文件、应用软件等构成。
2.1 环境搭建
先搭建 Jetson TX2的开发环境。本文所使用的开发环境为:PC使用64位Ubuntu 16.04操作系统,Jetson SDK 的版本为Jet Pack 3.2。首先在Ubuntu主机端运行Jetson SDK,进行下载工作,再进行烧写,最后检验Jetson TX2上的系统开发环境是否已经搭建完毕[5]。
2.2 系统设计
设计并实现了NVIDIA嵌入式平台上的车辆跟踪检测系统,系统总体框图如图1所示。
利用Jetson TX2的板载相机获取YUV420格式帧率为60 f/s的视频数据,送给Tegra Parker的硬件HEVC编码器将其压缩为H265码流;对输出码流进行实时传输协议(Real-time Transport Protocol,RTP)打包,打包完成后通过用户数据报协议(User Datagram Protocol,UDP)广播发送,然后进行接收和解码。根据设计功能的需求,本设计的车辆图像处理算法主要分为两部分,第一部分是对视频中的车辆进行检测操作,使用的是Yolo V2检测算法;第二部分是在检测到的车辆基础上进行跟踪操作,跟踪的算法使用的是Kalman位置预测与Meanshift跟踪相配合的方法[6]。
2.3 功能模块实现
2.3.1 获取视频数据
本文选择利用Argus来获取原始视频数据,Argus可以输出EGL-Stream图像数据或者DMA Buffer文件描述符,可以把DMA Buffer看做一块共享内存。Argus还可以调用ISP进行图像的去噪、边缘增强等图像预处理工作。本文利用Argus捕获视频数据的流程图如图2所示。
2.3.2 HEVC编码器配置
Tegra Parker处理器内有一个视频编码器,相对于H.264在同等清晰度的前提下少一半的码率,从而节省存储空间和带宽,可以减少投入的成本,而速度是其200倍以上,且能够支持帧率为60 f/s的HEVC实时编码[7]。存储设计视频编码器的输入输出的缓存队列长度都设置为10。HEVC视频编码器只支持YUV420M的格式,输入缓存队列使用存储于DMAbuffer的视频数据,输出的缓存队列输出CPUbuffer。流程图如图3所示。
2.3.3 RTP封装
H.265码流RTP协议是一种实时传输标准,其设计的目的是为了支持网络实时传输服务[8]。H.265码流由NALU序列组成,RTP协议封装和传输H.265码流实际上就是NALU的封装和传输。链路层的载荷数据有最大传输单元限制,当传输的数据超过这个最大输出单元时,将无法进行正常的传输,按照以太网对RTP包大小的限制,正常情况下不能超过1 472 B,超过1 472 B后将无法正常进行传输[9]。
2.3.4 上位机取流解码
本设计利用Gstreamer来开发接收、解码、播放程序[10]。Gstreamer程序从网口接收RTP数据包,接收到数据包之后传送到HEVC上进行软件解码后播放显示。UDP接收RTP数据包,进行解包,经过解包后的数据为H.265原始码流[11],利用H265parse对码流分析,再将H.265原始码流送给avdec_H265解码。最后,将解码后的视频数据送到xvimagesink实现视频播放。
2.3.5 车辆的检测与跟踪
针对之前一系列处理得到的视频影像,需要进行算法程序的操作,对视频中的汽车先进行检测,此时使用Yolo V2检测算法,将检测到的汽车轮廓信息作为后续跟踪算法的输入。经过Yolo V2检测完成后,得到了一个序列,将这个序列作为基础序列,针对跟踪检测算法,首先监测出一个汽车轮廓,针对已有的汽车轮廓使用Meanshift方法得到当前车辆的真实位置[12],如图4所示。
进入到视频中的汽车,系统首先对汽车的外框信息保存到跟踪器中,再提取一个汽车的外框与之前保存的外框信息进行相似度比对,如果信息重叠则立即更新Kalman预测模型,预测此车辆的大体活动位置,再利用Meanshift得到正确的位置,在视频中用框标注出跟踪汽车,直到汽车消失在视频中,系统会自动删除其外框信息。如果在相似度对比时跟踪器中没有与此汽车信息相同的外框信息,则把此信息自动添加到跟踪器中,进行后续操作[13]。
其中,z(x,y)为候选目标的坐标。S(z)是巴氏系数,具有如下公式:
根据式(1)~式(3)计算出S(z),S(z)的值在0~1之间,S(z)值越大,两个模型越相似。
2.4 测试结果
Tegra Parker上的HEVC硬件编码器编码速率比PC端x265编码器大,PSNR比PC端x265编码器高。根据本文设计的系统,对HEVC 编码器在不同分辨率情况下的编码速度、压缩率和网络发送速率进行了测试,针对HEVC硬件编码器编码速率与PC端x265编码选择分辨率分别为640×480、1 280×720、1 920×1 080、2 104×1 560做了简要对比,在Tegra Parker上编码器参数如表1所示。PC端x265编码器参数如表2所示。
下面对表1中的数据加以说明,其中表1中压缩比体现的是压缩后文件与原始文件的比值,相对于x265在同等清晰度的前提下压缩比提高很多。编码速率是指视频在编码的过程中单位时间内能完成压缩视频编码的帧数,相对于商用编码核心x264的编码速率快近100倍。在测试过程中还对UDP传输时间进行了粗略的统计,通过平均的输出时间从而得到系统的输出速率,PSNR计算公式为:
本系统能对采集的高清交通视频影像进行车辆的检测跟踪,对视频中的检测到的车辆用框标记出来,再对标记的车辆进行跟踪,标记框会伴随着车辆的移动而移动[15]。图5所示是车辆检测及跟踪的画面。
本文在NVIDIA Jetson TX2平台上设计实现车辆的检测及跟踪,利用板载摄像头完成视频采集,再进行HEVC编码,对HEVC的输出码进行RTP封装后通过UDP广播发送,然后在PC端接收解码,最后进行识别及跟踪。测试结果表明,相对于x265,在同等清晰度的前提下压缩比提高很多;相对于商用编码核心x264的编码速率快了近100倍。本文设计的系统在保证视频画面质量良好的情况下能够达到4K分辨率的实时编码传输,这使后续对显示的视频进行车辆的识别跟踪更加清晰准确。
参考文献
[1] 沈燕飞,李锦涛,朱珍民,等.高效视频编码[J].计算机学报,2013,36(11):23-40.
[2] RAM C,PANWAR S.Performance comparision of high efficiency video coding(HEVC) with H.264 AVC[C].2017 13th International Conference Signal-Image Technology & Internet-Based Systems(SITIS),2017.
[3] NVIDIA Corporation.NVIDIA Jetson.The AI platform for autonomous machines[EB/OL].(2018- 05-10)[2019-05-13].https://developer.nvidia.com/embedded/develop/hardware.Html.
[4] Yan Han,ORUKLU E.Traffic sign recognition based on the nvidia jetson tx1 embedded system using convolutional neural networks[C].2017 IEEE60th International Midwest Symposium on Circuitsand Systems(MWSCAS),2017:184-187.
[5] 林峰,张雷,梁明亮.基于NVIDIA Jetson TX1的HEVC编码和传输系统设计[J].沈阳航空航天大学,2018,35(5):51-56.
[6] 孙鹏.基于视频的嵌入式车辆跟踪系统[D].北京:北方工业大学,2013.
[7] 李维,杨付正,任鹏.考虑视频内容的H.265/HEVC帧层码率分配算法[J].通信学报,2015,36(9):76-81.
[8] 丁凉.基于RTP的MPEG-4传输方法研究与实践[D].合肥:合肥工业大学,2004.
[9] 许宁.基于RTP协议的移动视频监控系统的设计[J].通信技术,2014,47(4):455-458.
[10] 孟凡飞,刘金海,吴宗泽.基于Gstreamer的嵌入式流媒体播放器的设计[J].嵌入式系统应用,2010,26(20):5-9.
[11] 林文.基于嵌入式开发的视频监控系统设计与实现[D].成都:西南交通大学,2012.
[12] 康剑斌.无人机双目视觉深度感知技术研究与实现[D].成都:电子科技大学,2018.
[13] 林付春,刘宇红,张达峰,等.基于深度学习的智能路牌识别系统设计[J].电子技术应用,2018,44(6):68-71.
[14] 赵春晖,张洪才,王永忠.基于特征颜色空间变换的目标跟踪融合算法[J].计算机工程与应用,2008(3):8-9,19.
[15] 张宁.基于无人机平台的动态目标检测系统开发[D].杭州:浙江大学,2018.
作者信息:
张 雷,王 越
(沈阳航空航天大学 电子信息工程学院,辽宁 沈阳110136)
原创声明:此内容为AET网站原创,未经授权禁止转载。