无人驾驶小车定点追踪系统的设计与实现
2017-01-17陈亮亮刘玉莹詹春
陈亮亮+刘玉莹+詹春
摘 要:为了更好的解决无人车定点追踪的问题,本文提出了一种基于OpenCL的图像追踪算法。特定目标物的检测和连续跟踪技术是目前计算机视觉领域的前沿方向和热点研究[1]。本设计是将OpenCV中的CamShift算法移植到DE1-SoC开发板的OpenCL平台上。整个设计分为五个模块:视频模块、音频模块、超声波测距模块、蓝牙音箱驱动模块和算法移植模块。最终小车能够实现定点追踪固定目标物,且在目标物的正前方10cm处停下同时外接蓝牙音箱响起乐曲。
关键词:OpenCV;定点追踪;OpenCL;计算机视觉
中图分类号:TP391.4 文献标识码:A
1 引言(Introduction)
特定目标物的检测和连续跟踪技术是目前计算机视觉领域的前沿方向和热点研究,因为其融合多学科的先进技术,在诸多行业广泛使用,更因为因其背后蕴藏着巨大的经济效益和商机,引起诸多科研机构、学术界和企业界的关注。当前很多的科研机构、企业都在该领域投入了大量精力进行研究和探索,取得了丰硕成果[2]。本设计是将OpenCV中的CamShift算法移植到DE1-SoC开发板的OpenCL上,根据鼠标框选区域的色度光谱来进行固定目标物的跟踪。
本设计选择了友晶科技提供的DE1-SoC开发板,这款开发板是Altera Cyclone V SoC的专用平台[3]。随着FPGA技术的高速发展,芯片规模不断提升,带来了更强的性能的同时,也实现了更低的功耗[4,5]。FPGA凭借其强大的并行信号处理能力,在应对控制复杂度低、数据量大的运算时具有较强的优势[6]。但是在复杂算法的实现上,FPGA却远没有32位精简指令集计算机(RISC)处理器灵活方便,所以在设计具有复杂算法和控制逻辑的系统时,往往需要RISC和FPGA结合使用[7]。这样电路设计的难度也就相应地增加。而Altera的Cyclone V SoC将RISC硬核处理器系统和FPGA集成到一起实现了功能的互补,大大减小了硬件电路复杂性和体积,同时也降低了功耗,提高了系统可靠性[8]。
DE1-SoC开发板提供了板载USB Blaster II JTAG在线调试功能、SD卡启动、HPS享1GB DDR3内存、FPGA享64MB SDRAM内存、VGA高清显示、ADC采样、10/100/1000M以太网、USBx2接口、FPGA扩展等丰富的扩展接口和硬件资源。DE1-SoC开发板系统框图如图1所示[9]。
本设计实现的具体功能如下:
在小车车头位置固定一个车载高清摄像头,读取车正前方可视角大约170°的图像,与存在FPGA的SDRAM中的基准图像进行比较,这里我们选取的基准图像为鼠标在显示屏上框选的480*480的白色区域。首先,摄像头取得480*480的图像存储在SDRAM中,然后检测图像的中线位置上是否有白色区域。若是在中线位置没有白色区域,则车头左右摆动微小的角度来定位白色区域。若是中线位置有白色区域,发送一个控制信号给FPGA,驱动小车直行。若是白色区域在中线位置的左侧,发送一个控制信号给FPGA,控制小车左转。若是白色区域在中线位置的右侧,发送一个控制信号给FPGA,控制小车右转。为防止小车与白色固定目标物相碰撞,我们应用了HC-SR04超声波模块来控制小车与目标物之间至少保持10cm的安全距离,当距离到了10cm时超声波模块会返回一个控制信号给FPGA,这时小车停止运动,同时启动音频模块,响起音乐。
2 系统实现原理(System realization principle)
整个系统分为五个模块:视频模块、音频模块、超声波测距模块、蓝牙音箱驱动模块和图像算法移植模块。整体设计结构如图2所示。
其中,音频模块、视频模块和超声波测距模块由FPGA部分控制,蓝牙音箱驱动模块和图像算法移植模块由ARM部分控制。下面将详细分析各个子模块的实现原理。
2.1 视频模块
在DE1-SoC开发板上提供了一块视频解码芯片ADV7180,此块解码芯片是受I2C总线协议的控制[10]。视频显示原理如图3所示。
首先通过TD_Detect检测模块检测外部图像,并选择合适的视频制式,如图4所示,默认视频制式为NTSC。
其次将采集到的图像经过ITU_656_Decoder解码生成YCbCr的图像格式,如图5所示。
接下来将解码出来的YCbCr信号隔行写入到SDRAM中,并且通过SDRAM隔行读出来,如图6所示。
最后通过下面三个模块,将存储在SDRAM中的YCbCr的信号先转换为4:4:4的图像格式,再转换为RGB图像格式,通过VGA接口显示在屏幕上,如图7所示。
2.2 音频模块
在DE1-SoC开发板上提供了一块24位的音频解码芯片WM8731,此芯片支持麦克风line-in和line-out。WM8731也受I2C总线协议控制[11]。音频模块实现原理如图8所示。
其中,核心模块为子模块HIGH,是用来存放音频文件的,我们存放的是《我和你》乐曲的音频。
2.3 超声波测距模块
测距模块是利用超声波模块HC-SR04,它有VCC、GND、Trig、Echo四个管脚,只要给Trig一个大于10μs的高电平,在Echo端口接收到的高电平时间就是此次测距的时间,其测距公式:s=t*340/2,我们可以设置其高电平的时间来设置其距离。超声波测距模块实现原理如图9所示。
2.4 蓝牙音箱驱动模块
我们使用USB的外部扩展,在DE1-SoC开发板上安装蓝牙音箱的发送端,然后在Linux系统上与我们的蓝牙音响连接,从而实现音频信号的放大。蓝牙音箱驱动模块软件流程如图10所示[12]。
2.5 图像算法移植模块
我们利用一个人脸扫描的算法原理来扫描摄像头扫描到图像的颜色,将OpenCV中的CamShift算法(连续自适应的MeanShift算法)移植到DE1-SoC开发板上的OpenCL上,根据鼠标框选区域的色度光谱来进行摄像头读入的视频目标的追踪,对白色目标物进行定位追踪[11]。图像算法移植模块软件流程如图11所示[10]。
3 系统测试(System testing)
将五个子模块整合在一起,构成了一个完整的智能小车定点追踪系统,整体联调的效果图如图12和图13所示。
4 结论(Conclusion)
(1)在DE1-SoC开发板上运行Linux,我们首先需要设定串口终端,把开发板连接在电脑上,然后找到相应的外接装置。执行putty.exe来选择Serial来进行串口通信,进行保存后就可以关闭此窗口。接着是制作microSD card Image,下载好image file后使用win32DiskImager.exe来把Linux image刻录到SD内,在开发板上电后,打开putty.exe,当系统boot起来后输入root并按下enter就可以登入系统。
(2)在DE1-SoC开发板上实现ARM/HPS到FPGA的通信。首先我们需要先搭建一个Qsys硬件系统;然后需要写一个完成相应功能的C语言代码(主要是结合开发板完成地址的映射和寄存器配置及功能实现),我们主要是写了一个可控制小车左转、右转,以及前进后退的控制程序;其次是创建Makefile文件,制定编译工程的一系列规则(可根据案例把文件名和地址改为自己的文件名和地址即可);最后打开embedded文件中的Embedded_Command_Shell.bat,输入cd切换路径,然后输入自己的文件位置,输入make即可在原文件中生成一个空白文档形式的可执行文件。打开Putty.exe就可以,用u盘把生成的可执行文件拷入优盘,然后把开发板上电,输入相应的命令把此文件存入Linux路径下的root即可。然后在Quartus中下载FPGA硬件sof文件,最后在串口终端输入“./+生成的文件名即可”。我们主要用ARM控制FPGA的GPIO口。
(3)在DE1-SoC开发板上提供了一块视频解码芯片ADV7180,此块解码芯片是基于I2C总线协议的传输。当外置摄像头扫描到物体时首先会生成YCbCr格式的图像,然后存入SDRAM,接着Ycbcr格式通过解码生成RGB格式,通过VGA接口在显示屏上显示图像。
(4)在DE1-SoC开发板上提供了一块24位的音频解码芯片WM8731,此块解码芯片是基于I2C总线协议的传输。通过锁相环分频后,控制声音模块,将固定乐曲的音调用MIF Maker生成MIF文件存入ROM中,在数码管上显示乐谱,通过外置蓝牙音箱进行声音放大。
(5)硬件小车模块主要是通过L298模块来驱动直流电机控制小车模块的移动,通过FPGA端口的GPIO口的控制信号来给小车移动的相应信号。电源主要采用电池给开发板供电,然后通过降压后又给电机以及相应模块供电。
参考文献(References)
[1] Lazaro J L,Garci J C,Mazo M.Distributed Architecture for Control and Path Planning of Autonomous Vehicles,2001(03):112-116.
[2] Liu Wanli,Wang Zhankui,Zhu Hua.Novel Method of Trajectory Tracking and Posture Stabilization for Mobile Robot[S.I.].IEEE Press,2010.
[3] Regional objects based image retrieval[A].Proceedings of the 2011 Chinese Control and Decision Conference(CCDC),2011.
[4] 何燚,张翼飞.基于双目视觉的移动机器人避障算法仿真研究[J].计算机仿真,2013(02):21-24.
[5] 汪明磊.智能车辆自主导航中避障路径规划与跟踪控制研究[D].合肥工业大学,2013.
[6] 武丽.基于图像传感器的黑线提取及抗干扰算法研究[J].电子技术应用,2012(02):11-13.
[7] 崔瑾娟.移动机器人路径规划技术现状与展望[J].安阳师范学院学报,2013(02):11-15.
[8] 胡永仕,张阳.基于遗传模糊算法的智能车辆避障路径规划研究[J].福州大学学报(自然科学版),2015(02):16-20.
[9] 阮晓芳.多路超声波机器人的模糊避障研究[J].计算机测量与控制,2012(12):51-53.
[10] 友晶科技.Altera DE1-SoC培训教材[M].友晶科技,2002.
[11] 毛星云,冷雪飞.OpenCV3编程入门[M].电子工业出版社,2015.
[12] 张茜.智能车辆的轨迹跟踪控制方法研究[D].哈尔滨工业大学,2015.
作者简介:
陈亮亮(1982-),女,硕士,讲师.研究领域:信息处理,微电子技术应用.
刘玉莹(1972-),女,硕士,副教授.研究领域:信息处理.
詹 春(1975-),女,硕士,副教授.研究领域:信息处理.