ARMNEON技术在车位识别算法中的应用

时间:2022-10-25 12:16:09

ARMNEON技术在车位识别算法中的应用

摘 要: 为了在车位检测系统中不使用DSP的情况下,达到实时处理和节约成本的目的,在嵌入式Linux系统中使用了CORTEX?A系列的NEON协处理器技术来优化一种车位图像检测算法的代码。在CORTEX?A8平台上使用该图像处理算法进行了大量的处理测试,图像算法处理速度得到很大提升。最后在多个平台下使用该图像处理算法进行测试对比,使用了NEON技术后其算法处理速度提升明显,能够满足实时要求。

关键词: ARM; CORTEX?A8; NEON; GCC

中图分类号: TN919?34; TP391 文献标识码: A 文章编号: 1004?373X(2013)18?0105?03

0 引 言

随着城市越来越多家庭拥有汽车,相应的停车场建设数目也越来越多,停车场管理系统也越来越重要[1]。而国内城市车多人多,空间拥挤给停车厂管理带来诸多不便。车位检测系统设计成嵌入式终端是一个好的选择。图像检测算法的复杂度给实时检测带来难题,一般的图像处理都是基于DSP完成,这带来了成本的上升。ARM公司CORTEX?A系列处理器的出现,极大地缓解了这个难题。

ARM平台能够很好地支持Linux系统,Linux系统具有强大的网络通讯功能[2],也给程序移植等带来便利。本文的检测算法在ARM平台基于NEON技术进行了优化,在保证检测精度的同时,处理速度提升明显,与使用DSP相比,大大节约了成本,为停车场管理系统的研究提供新的方向。

1 ARM NEON技术介绍

ARM的NEON通用 SIMD 引擎可有效处理当前和将来的多媒体格式,从而改善用户体验。 NEON 技术是通过清晰方式构建的,并可无缝用于其本身的独立流水线和寄存器文件。NEON 技术是 ARM Cortex?A 系列处理器的128 位 SIMD(单指令多数据)体系结构扩展,旨在为多媒体应用提供更加强大的加速功能,从而明显改善程序性能。它具有 32 个寄存器,64 位宽(是 16 个寄存器,128 位宽的双倍视图)NEON 指令特点如下:

(1)寄存器被视为同一数据类型的元素的矢量;

(2)数据类型可为:有符号/无符号的 8 位、16 位、32 位、64 位单精度浮点;

(3)指令在所有通道中执行同一操作。

本系统目前在一处地下停车场进行测试验证,如图4在停车中采集到的背景和待测图像,通过对100幅采集到800×600分辨率的现场图像,在CORTEX?A8平台上进行测试,平均检测时间为538 ms,该算法在地下停车场中准确率97%。表1中给出了处理一幅待测图像CORTEX?A8和ARM11平台优化前平均时间的测试对比结果(均使用GCC交叉编译)。

3 图像处理算法在CORTEX?A8平台上的优化

本系统是Cortex?A8和Linux系统上搭建[7],Linux下使用的编译器为GCC。本文中使用普通C语言优化和NEON编程优化对图像相关函数进行了优化,并进行了测试对比,下面给出方差函数variance代码进行优化前后的对比说明,如图5优化前的代码。

4 结 语

通过使用ARM NEON技术,对于图像处理这类矩阵运算进行并行优化,可大大提高处理速度,进行优化后,速度较优化前提升了达2倍之多,较ARM11提升了8倍的速度。ARM COTEX?A系列所使用的NEON技术,不仅使车位图像检测算法的速度有很大提升,在信号处理等多媒体处理算法中[10],也有广阔的应用前景。

参考文献

[1] 芮瑞.车位检测器及其发展研究[C].南宁:中国高科技产业化研究会信号处理产业化分会筹备工作委员会,2008.

[2] 谭会生.ARM嵌入式系统原理及开发应用[M].西安:西安电子科技大学出版社,2012.

[3] 王凯.基于TVP5150的视频LCD显示设计[J].电子设计工程,2011,19(1):178?181.

[4] 郝俊.基于V4L2的ARM11 USB视频采集终端的设计与实现[J].贵州大学学报,2011,28(4):74?78.

[5] SONKA Milan, BOYLE Roger. Image processing, analysis, and machine vision [M]. 2nd ed. Beijing: Posts & Telecommunications Press, 2002.

[6] 刘学勇,陈建伟.精通Linux C编程[M].北京:清华大学出版社,2009.

[7] 程昌南.ARM Cortex?A8硬件DIY[M].北京:北京航空航天大学出版社,2012.

[8] GNU. GNU free documentation [EB/OL]. [2008?10?03]. http://.

[9] 金丽.基于ARM嵌入式系统的C程序优化方法[J].南通大学学报,2006,5(3):61?64.

[10] 王家.基于ARM Cortex_A8平台的WMA解码器优化设计[D].上海:上海交通大学,2009.

上一篇:Z4机座加工工艺问题探讨 下一篇:基于RTX与反射内存的实时支撑系统设计