《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 手機ADAS:基于OpenCL的車道線檢測應用評估
手機ADAS:基于OpenCL的車道線檢測應用評估
2017年電子技術應用第4期
朱 笛,張文權,蔡 行,黃 凱
中山大學 數據科學與計算機學院 無人系統研究所,廣東 廣州510006
摘要: 先進駕駛輔助系統(Advanced Driving Assistant System,ADAS)有利于提高駕駛安全性。如今,Open Computing Language(OpenCL)框架以及集成Graphics Processing Unit(GPU)手機的出現,使得在手機上高效運行ADAS應用成為可能。基于OpenCL框架實現了ADAS最典型的一個功能——車道線檢測,并運行在三款手機上。通過比較該應用的檢測準確度、幀處理速度、應用能效,根據實驗結果手機設備非常適合運行基于視覺的ADAS應用。
中圖分類號: TN919;U463.6
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.04.001
中文引用格式: 朱笛,張文權,蔡行,等. 手機ADAS:基于OpenCL的車道線檢測應用評估[J].電子技術應用,2017,43(4):3-6,12.
英文引用格式: Zhu Di,Zhang Wenquan,Cai Xing,et al. Mobile ADAS: an evaluation on OpenCL based lane detect application[J].Application of Electronic Technique,2017,43(4):3-6,12.
Mobile ADAS: an evaluation on OpenCL based lane detect application
Zhu Di,Zhang Wenquan,Cai Xing,Huang Kai
Unmanned System Institute,School of Data and Computer Science, Sun Yat-sen University,Guangzhou 510006,China
Abstract: Advanced Driving Assistant System(ADAS) are important to increase driving safety. Nowadays, the Open Computing Language(OpenCL) framework and mobile devices integrated with Graphics Processing Unit(GPU) has made it possible to launch ADAS applications on mobile devices efficiently. In this paper, a typical ADAS lane detection application based on OpenCL framework is implemented and launched on three mobile devices. By evaluating the accuracy, processing frame speed and energy efficiency of this application, it's concluded that the mobile devices are suitable for ADAS applications.
Key words : ADAS;mobile phone;OpenCL;lane detection

0 引言

    先進駕駛輔助系統(Advancend Driving Assistant System,ADAS)常用于提高駕駛體驗以及駕駛安全性,例如自適應定速巡航系統[1]與智能速度調節系統[2]能有效減少司機的勞動以及交通事故。由于ADAS對計算能力需求較高,通常運行在特殊的處理單元中,這類車載電子設備行業中分為車載前裝、后裝。其中后裝市場中的Mobileye,能提示司機車道偏離以及提示車距過近。盡管在過去數十年里,ADAS技術高速發展[3],各類前裝、后裝ADAS產品的價格仍然是個大問題。

    如今,移動設備計算能力的高速發展以及GPU在手機片上系統(System on Chip,SoC)上的集成使得在手機上運行高計算需求的任務成為可能[4-5]。此外,智能手機配置的高清相機以及便于交互的觸摸屏,以及其低廉的價格,非常適合運行基于視覺的手機ADAS應用[6]。不僅如此,在高通即將發布的驍龍835 SoC上已經支持Tensorflow機器學習框架,能通過手機運行基于深度學習的ADAS應用。

    目前,業界主要使用FPGA以及GPU的并行能力,加速科學計算。在業界,主要包括Nvidia支持的CUDA以及OpenCL兩個計算框架。相較于CUDA只支持在Nvidia的顯卡上運行,OpenCL框架提供了異構并行計算的解決方案,其中包括FPGA、GPU、CPU,尤其是其支持手機GPU。按照OpenCL API編寫的內核函數,能在處理核心(如:GPU、FPGA等設備)上并行運行。通過OpenCL框架,能充分利用手機GPU進行異構并行計算[7-9],進而高效運行部分基于視覺的ADAS應用。雖然iOS上的Metal框架與OpenCL比較類似,但目前而言,只有安卓系統支持基于OpenCL的應用。

    基于性能評估的需要,本文選擇了3款手機,分別為:小米5(Mi 5)、紅米Note2(Redmi Note 2)、華為榮耀6(Honor 6)。這三款手機囊括了市面上常見的SoC廠商(高通、聯發科、華為),均集成了支持OpenCL的GPU;同時,這三款手機均位于1 000~2 000人民幣的區間,能表現手機ADAS的價格低、實用的特點。

1 安卓應用設計與優化

    本文及本應用中所使用的車道線檢測算法來自文獻[10,11],此處不再贅述。選擇上述算法的原因如下:(1)并行性:上述算法主要基于粒子濾波,在預處理、車道線檢測、車道下跟蹤的過程都可并行化處理;(2)可調性:該算法對于車道線檢測的準確度可通過粒子濾波的粒子數、采樣數等參數調節。在手機上運行時,可以基于手機配置調節車道線檢測的精度與效率。在該車道線檢測算法中,包括兩個調節參數:Np,粒子濾波中粒子的數量;Nc,粒子濾波中重采樣過程中候選線的數量。通常而言,Np與Nc越大,車道檢測的準確率就越高,但也意味著更高的計算量、更多的計算時間。

1.1 應用設計

    為了對比實驗的需要,需要為本應用提供CPU運行模式以及CPU-GPU運行模式。分別表示車道線算法單純運行在手機CPU上;車道線算法通過OpenCL框架,運行在GPU上進行并行加速。

    為了在安卓手機上使用基于C/C++的OpenCL框架,在應用開發時需要使用Java原生接口(Java Native Interface,JNI)。開發工具包括Eclipse與安卓原生開發套件(Android Native Develop Kit, NDK)。首先,通過開放計算語言(Open Computing Language,OpenCL)框架與開放計算機視覺(Open Computer Vsion,OpenCV)編寫車道線檢測的C/C++代碼;再使用NDK對其進行編譯;再于編寫安卓應用時,通過JNI調用上述編譯好的C/C++內核函數。在運行該應用之前需要安裝OpenCV4Android到手機上,以提供OpenCV的庫文件。對于本OpenCL安卓應用運行描述,如文獻[12]所示,應用從Java代碼端開始,通過JNI調用執行C/C++代碼,進一步調用OpenCL框架的函數,完成初始化過程,再次返回C/C++層進行數據的填充,隨后通過GPGPU驅動交由手機GPU進行計算,最后返回結果至Java層供進一步使用(主要是在屏幕上顯示)。

1.2 應用優化

    由于上述車道線檢測算法,主要用于桌面級平臺,將其移植至移動平臺后,針對手機計算能力以及內存較小的特點,進行了針對優化。

    在OpenCL框架中,工作組大小,亦即數據分割程度,與多處理核心的利用率直接相關[13],在本應用中,針對各家手機GPU廠商的特點,對工作組大小進行優化。其中根據Imagination與Mali公司的指引,工作組大小為128或256時,能充分利用處理核心的性能[14-15]。通過實驗,發現在三款手機中工作組為128與256時,三家廠商SoC的處理時間均較低,而榮耀6在工作組為256時,處理時間反而上升了,如圖1所示。為了兼容更多的硬件,本文選擇128作為工作組大小。

adas1-t1.gif

    在手機平臺上,內存的大小與帶寬均低于桌面級平臺[16]。然而,相較于桌面級平臺GPU擁有獨自的內存,手機GPU與CPU共享集成在SoC上的內存。在桌面級GPU運行OpenCL與CUDA時,將數據從主內存拷貝到顯卡內存進行運算,再將結果從顯卡內存拷貝回主內存中,即需要內存拷貝操作。為了充分利用手機SoC片上內存的特點,通過內存映射的機制,即通過“map()”與“unmap()”操作,將部分片上內存的擁有者分配為GPU或CPU。通過這種方式,使用內存映射而不是內存拷貝的機制,將圖片數據從CPU的片上內存映射到OpenCL的內核中,并將OpenCL車道線檢測運算的結果,映射回CPU,實現零拷貝。在手機上使用內存拷貝與內存映射機制時處理幀率如圖2所示,圖中,橫坐標為粒子數Np,縱坐標為幀每秒;對于Np<=29,Nc=29,否則Nc=212。使用內存映射機制各幀的處理速度更為穩定,并且明顯高于使用內存拷貝機制。

adas1-t2.gif

    所以本文通過修改合適工作組以及使用內存映射代替內存拷貝的機制,對上述的車道線檢測算法進行優化。

2 實驗結果

    如上文引言所述,在上述三款手機上,進行了對比實驗。其硬件配置如表1所示,囊括了中國市場上三家SoC廠商的系列:高通驍龍、聯發科、華為海思。同時,這也涵蓋了三大手機GPU IP核提供商:高通、Imagination、ARM。同時,這三款GPU都提供了對OpenCL的支持,其中高通Adreno 530完整地支持OpenCL 2.0,Imagination PowerVR G6200支持嵌入式OpenCL 1.2,ARM Mali T628 MP4完整地支持OpenCL 1.1。不同版本OpenCL對于部分數據類型有優化,此處以OpenCL 1.1版本的特性為準。同時,這三款手機的電池容量也相近。實驗過程中,使用本文實現的基于OpenCL的車道線檢測,對性能與能耗進行比較。

adas1-b1.gif

2.1 精確度與幀率

    精確度是車道線檢測的基本要求,該車道線檢測算法使用不同調節參數Np、Nc時對應的準確度已經在FPGA以及桌面級GPU上已經檢測過了[10],此處通過判斷不同粒子數Np下,各手機的車道線檢測幀率是否滿足使用需求。同時,也比較了不同CPU模式以及CPU-GPU模式(即使用OpenCL框架進行并行加速)下的情況,如圖3所示,圖中,橫坐標為粒子數Np,縱坐標為幀每秒;對于Np<=29,Nc=29,否則Nc=212。可以發現,在最高效果Np=8×29,Nc=212時,在CPU-GPU模式下,除了紅米Note2約30 fps以外,另外兩款平臺均在40 fps以上,幀率最多降低了33%;而CPU模式均明顯低于20 fps,幀率降低了約67%。對于沒有使用GPU并行計算的GPU模式而言,下降十分顯著。可見OpenCL并行計算框架在高計算量時,加速效果十分顯著。此外,Np=27,Nc=29時,能滿足日常使用需求[10],此時,CPU模式與CPU-GPU模式處理速度均在40 fps以上。故該車道線檢測應用在滿足精度要求的情況下,仍然能夠高速地運行,同時,使用OpenCL并行加速的CPU-GPU模式能在高精度要求的情況下高速運行。

adas1-t3.gif

2.2 能耗統計與分布

    若使用手機ADAS進行駕駛輔助耗電量很大的話,用戶無法忍受下車的時候手機電量所剩無幾,所以該車道線應用對續航的影響是個很重要的問題。對此,對本車道線檢測應用進行了電量消耗測試。為了盡可能地控制變量,如上文所述,本文選擇的三款平臺電池容量相當,約3 000 mAh。考慮到電池老化問題,選擇了三臺全新的手機進行實驗。為了模擬在車上使用本手機ADAS應用進行車道線檢測的環境,通過屏幕播放行車記錄儀的數據,分別使用三臺手機分別在CPU模式下、CPU-GPU模式下,使用手機攝像頭獲取圖像進行車道線檢測,并記錄電池使用時間。實驗過程中無其他后臺程序,車道線檢測參數為Np=27,Nc=29,同時三臺手機屏幕的亮度均調至最高。其運行結果如圖4所示,能發現,基本上都能在屏幕亮度最高的情況下使用2.5 h以上。同時,使用OpenCL加速在高通驍龍與華為海思兩款SoC上增加0.5 h使用電量,而對于紅米Note2兩個模式的電池使用時間都較為接近。

adas1-t4.gif

    其中,三款手機兩個模式下的能耗分布如表2所示,數據來源于安卓系統提供的電池使用情況。能夠發現,使用OpenCL框架進行并行計算的CPU-GPU模式,應用所消耗電量低于單純使用CPU計算的CPU模式。即,在本車道線檢測應用中,使用OpenCL框架加速,也能降低電量的使用。在實際車上應用該手機ADAS時,還可以通過降低屏幕亮度以及使用車載電源充電的方式,延長電池使用時間,保障手機用戶的體驗。

adas1-b2.gif

3 結論

    本文在安卓平臺上使用了OpenCL框架,實現了車道線檢測的手機ADAS應用。根據三款支持OpenCL框架的手機的實驗結果,手機能提供足夠計算性能以及續航能力用于車道線檢測。如今移動安卓手機已經集成了高性能的SoC以及高分辨率的相機,十分適合基于視覺的ADAS手機應用。市面上也有部分雙攝像頭的手機,未來或許可應用基于雙目視覺的ADAS應用。不僅如此,隨著支持Tensorflow深度學習框架的驍龍835的上市,手機上將有更多支持深度學習的硬件集成。在不久的將來,將可以看到基于深度學習的ADAS應用運行在手機上。

參考文獻

[1] JURGEN R K.Adaptive cruise control[J].Automotive News Europe,2005,55(6):1943-1947.

[2] VAHIDI A,ESKANDARIAN A.Research advances in intel-ligent collision avoidance and adaptive cruise control[J].IEEE Transactions on Intelligent Transportation Systems,2003,4(3):143-153.

[3] BERNHART W,WINTERHOFF M.Autonomous driving: disruptive innovation that promises to change the automotive industry as we know[C].Energy Consumption and Autonomous Driving,2016,16(6):3-10.

[4] HEWENER H,TRETBAR S.Mobile ultrafast ultrasound imaging system based on smartphone and tablet devices[C].Ultrasonics Symposium.IEEE,2015:1-4.

[5] THABET R,MAHMOUDI R,BEDOUI M H.Image processing on mobile devices:An overview[C].Image Processing,Applications and Systems Conference.IEEE,2014:1-8.

[6] PETROVAI A,DANESCU R,NEDEVSCHI S.A stereovision based approach for detecting and tracking lane and forward obstacles on mobile devices[C].Intelligent Vehicles Symposium.IEEE,2015:634-641.

[7] ROSS J A,RICHIE D A,PARK S J,et al.A case study of OpenCL on an Android mobile GPU[C].High Performance Extreme Computing Conference.IEEE,2014:1-6.

[8] BACKES L,RICO A,FRANKE B.Experiences in speeding up computer vision applications on mobile computing platforms[C].International Conference on Embedded Computer Systems:Architectures,Modeling,and Simulation.IEEE,2015:1-8.

[9] WANG G,XIONG Y,YUN J,et al.Accelerating computer vision algorithms using OpenCL framework on the mobile GPU-A case study[C].IEEE International Conference on Acoustics,Speech and Signal Processing.IEEE,2013:2629-2633.

[10] HUANG K,HU B,BOTSCH J,et al.A scalable lane detection algorithm on COTSs with OpenCL[C].Design,Automation & Test in Europe Conference & Exhibition.IEEE,2016:229-232.

[11] ACOSTA A,ALMEIDA F.Parallel Implementations of the Particle Filter Algorithm for Android Mobile Devices[C].Euromicro International Conference on Parallel,Distributed and Network-Based Processing.IEEE,2015:244-247.

[12] KO Y,YI S,YI Y,et al.Hardware-in-the-loop simulation of Android GPGPU applications[C].Embedded Systems for Real-time Multimedia,IEEE,2014.

[13] ANDARGIE F A,ROSE J.Performance characterization of mobile GP-GPUs[C].AFRICON.IEEE,2015:1-6.

[14] Berkeley Design Technology Institute,Implementing computer vision functions with opencl on the qualcomm adreno 420[DB/OL]. [2017-02-28]http://www.bdti.com/MyBDTI/pubs/ComputerVision_OpenCL_Adreno420.pdf.

[15] Imagination Technology Limited,Building Heterogeneous Systems with PowerVR OpenCL Programmers Reference[DB/OL].[2017-02-28].https://www.imgtec.com/down-loads/building-heterogeneous-systems-with-powervr-opencl-programmers-reference/.

[16] LEE J K,LEE J Y.Android programming techniques for improving performance[C].Awareness Science and Techno-logy(iCAST),2011 3rd International Conference on.IEEE,2011:386-389.



作者信息:

朱  笛,張文權,蔡  行,黃  凱

(中山大學 數據科學與計算機學院 無人系統研究所,廣東 廣州510006)

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲专区在线| 欧美视频网站| 亚洲综合视频1区| 亚洲国产色一区| 在线综合亚洲| 亚洲国产精品尤物yw在线观看| 亚洲麻豆视频| 99re热这里只有精品视频| 亚洲国产视频直播| 一本久久综合亚洲鲁鲁| 亚洲成人资源网| 欧美在线视频免费观看| 午夜精品福利视频| 亚洲欧美日韩天堂一区二区| 亚洲一区日韩在线| 午夜精品久久久99热福利| 午夜一级久久| 欧美一区二区网站| 欧美在线视频免费观看| 亚洲第一精品在线| 亚洲国产精彩中文乱码av在线播放| 久久精品av麻豆的观看方式| 久久国产视频网站| 亚洲国产成人一区| 亚洲精品中文字| 亚洲午夜在线视频| 性欧美长视频| 久久久久一区二区| 免费日韩av| 欧美日本一区二区视频在线观看 | 欧美成人免费小视频| 欧美国产日韩一区| 欧美午夜精品久久久久久孕妇 | 亚洲高清视频中文字幕| 91久久视频| 一二三区精品福利视频| 亚洲男人的天堂在线| 亚欧美中日韩视频| 久久夜色精品国产| 欧美精品一区二区在线播放| 欧美涩涩视频| 国产欧美精品| 在线日韩欧美| 一本一本a久久| 欧美一区二区三区免费在线看 | 亚洲激情电影在线| 亚洲亚洲精品三区日韩精品在线视频| 亚洲资源在线观看| 久久久噜噜噜久久久| 欧美精品一区二区精品网| 国产精品久久久久婷婷| 国产在线一区二区三区四区| 亚洲激情综合| 亚洲在线视频观看| 最新日韩精品| 亚洲在线观看| 另类综合日韩欧美亚洲| 欧美日韩一区二区在线播放| 国产欧美高清| 最新成人av在线| 亚洲免费在线观看视频| 亚洲国产一区二区a毛片| 亚洲午夜国产成人av电影男同| 久久成人免费网| 亚洲女性裸体视频| 国产欧美综合在线| 亚洲国产欧美一区二区三区同亚洲| 999亚洲国产精| 久久激情婷婷| 亚洲一区视频在线| 美女国内精品自产拍在线播放| 欧美日韩国产欧| 国产综合精品| 中文在线不卡视频| 最新亚洲激情| 欧美在线不卡| 欧美日韩情趣电影| 在线观看福利一区| 亚洲在线观看视频| 日韩午夜电影在线观看| 久久免费视频在线| 国产精品免费小视频| 91久久久精品| 久久国产精品久久精品国产| 亚洲一区在线免费观看| 久久伊人精品天天| 国产欧美日韩综合| 一本色道久久综合精品竹菊 | 欧美自拍偷拍| 亚洲欧美国产精品桃花| 欧美国产激情| 国产在线国偷精品产拍免费yy| 在线综合亚洲| 一个人看的www久久| 欧美大片在线观看一区二区| 国产日韩欧美在线一区| 在线一区视频| 一区二区三区免费看| 欧美xx视频| 激情文学一区| 久久国产黑丝| 久久成人免费电影| 国产精品午夜在线| 亚洲视频一区二区在线观看 | 久久免费视频网| 国产精品自拍一区| 亚洲天堂成人| 亚洲小说区图片区| 欧美日韩亚洲三区| 亚洲精品久久久蜜桃| 亚洲国产综合91精品麻豆| 女人色偷偷aa久久天堂| 亚洲欧美日韩一区| 亚洲调教视频在线观看| 欧美激情视频在线播放 | 久久精品最新地址| 国产午夜精品一区二区三区视频| 亚洲永久免费精品| 午夜精品久久久久久久蜜桃app| 国产精品s色| 在线亚洲伦理| 亚洲欧美日韩天堂一区二区| 国产精品毛片一区二区三区| 一区二区精品国产| 亚洲一区亚洲| 国产精品日本精品| 亚洲免费在线观看视频| 亚久久调教视频| 国产午夜精品在线| 亚洲国产电影| 欧美福利视频| 亚洲精品系列| 亚洲一区二区三区免费视频 | 在线一区亚洲| 午夜精品福利视频| 国产精品有限公司| 午夜视频在线观看一区二区| 久久久精品日韩欧美| 一区二区三区在线高清| 亚洲人成久久| 欧美日韩亚洲综合一区| 亚洲午夜电影网| 久久精品人人做人人综合 | 久久精品国产精品| 蜜桃av综合| 亚洲精品欧美精品| 亚洲一级片在线观看| 国产乱码精品一区二区三区不卡| 欧美一区二区观看视频| 久久伊人亚洲| 亚洲精选大片| 亚洲欧美日韩国产精品| 国产欧美在线看| 亚洲激情啪啪| 欧美午夜三级| 欧美伊人久久久久久久久影院| 久久伊人一区二区| 亚洲美女视频网| 欧美一区二区免费| 曰韩精品一区二区| 亚洲网站啪啪| 国产日韩在线不卡| 99国产精品久久| 国产精品无人区| 亚洲欧洲免费视频| 国产精品久久综合| 久久精品夜色噜噜亚洲aⅴ| 欧美啪啪一区| 欧美一区二区视频免费观看| 欧美极品一区| 午夜精品一区二区三区电影天堂 | 91久久精品一区二区别| 欧美性感一类影片在线播放| 欧美一区二区视频在线| 欧美日本中文字幕| 欧美一区二区三区男人的天堂| 欧美激情一区二区三区蜜桃视频 | 国产亚洲美州欧州综合国| 亚洲欧洲日韩在线| 国产精品美女久久久久av超清 | 性欧美长视频| 亚洲精品久久久蜜桃 | 国产精品激情偷乱一区二区∴| 欧美永久精品| 欧美日韩精品福利| 久久福利一区| 国产精品免费电影| 亚洲精品小视频| 国产精自产拍久久久久久| 99re6这里只有精品视频在线观看| 国产精品一区在线播放| 一本色道久久综合亚洲精品按摩| 国产香蕉久久精品综合网| 中日韩午夜理伦电影免费| 一区免费观看视频| 欧美一区二区三区精品电影| 亚洲精品一区二区三区福利| 久久青草欧美一区二区三区| 亚洲性av在线| 欧美日韩午夜|