• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Android智能手機(jī)的前方車輛檢測(cè)系統(tǒng)

      2016-05-14 21:05:59潘安李必軍
      軟件導(dǎo)刊 2016年5期
      關(guān)鍵詞:Android平臺(tái)

      潘安 李必軍

      摘要:開發(fā)基于Android智能手機(jī)的前方車輛檢測(cè)系統(tǒng)。通過手機(jī)攝像頭獲取道路圖像數(shù)據(jù),利用JNI技術(shù)調(diào)用Android本地方法對(duì)圖像數(shù)據(jù)進(jìn)行處理并返回檢測(cè)結(jié)果。為解決Android平臺(tái)計(jì)算能力低、現(xiàn)有目標(biāo)檢測(cè)算法耗時(shí)久的問題,設(shè)計(jì)了一種車輛區(qū)域定位方法。首先利用車輛固有紋理特征對(duì)檢測(cè)區(qū)域進(jìn)行篩選,進(jìn)一步利用聚類算法定位每一個(gè)車輛可能存在的區(qū)域。最后利用SVM分類器和HOG特征精確定位車輛外部輪廓,并剔除上一步中可能出現(xiàn)的錯(cuò)誤聚類,最終實(shí)現(xiàn)手機(jī)平臺(tái)上的前車實(shí)時(shí)檢測(cè)。

      關(guān)鍵詞:Android平臺(tái);前車檢測(cè);JNI技術(shù);輔助安全

      DOIDOI:10.11907/rjdk.161110

      中圖分類號(hào):TP319

      文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2016)005-0058-04

      0 引言

      隨著全國(guó)私人轎車保有量的逐年上升,交通安全問題受到社會(huì)各方的廣泛關(guān)注。越來越多汽車廠商、互聯(lián)網(wǎng)公司開始著手進(jìn)行車輛輔助安全方面的研究[1]。在車輛行駛過程中駕駛員受制于視角的限制,對(duì)行駛方向上的縱向距離不敏感,在跟車行駛時(shí)無法預(yù)留足夠的安全距離,從而極易發(fā)生追尾、刮擦等事故。利用計(jì)算機(jī)視覺技術(shù)進(jìn)行前方車輛檢測(cè)并給出駕駛員預(yù)警信息能夠在很大程度上避免交通事故的發(fā)生。同時(shí),智能手機(jī)普及率高,在智能手機(jī)平臺(tái)上開發(fā)前車檢測(cè)預(yù)警系統(tǒng)具有極強(qiáng)的現(xiàn)實(shí)意義。

      目前,計(jì)算機(jī)視覺領(lǐng)域常用的檢測(cè)算法主要是從Harr特征的目標(biāo)檢測(cè)[2]以及HOG特征的目標(biāo)檢測(cè)[3]衍生而來。算法的運(yùn)行環(huán)境通常是配備GPU的高性能PC機(jī),其性能在手機(jī)平臺(tái)上難以實(shí)現(xiàn)。李云種[4]、魏凱[5]等提出運(yùn)用車輛底部陰影作為檢測(cè)的輔助手段,通過對(duì)車輛底部陰影的檢測(cè)找到合理的車輛感興趣區(qū)域(ROI)以減少目標(biāo)檢測(cè)的運(yùn)算量。但實(shí)際測(cè)試發(fā)現(xiàn),車輛底部陰影作為單一特征其魯棒性不強(qiáng),容易受到樹木、道路邊界線的干擾??紤]到這些因素,本文設(shè)計(jì)了前車區(qū)域定位與最終檢測(cè)相結(jié)合的程序處理算法。

      1 系統(tǒng)技術(shù)方案

      本系統(tǒng)在Android智能手機(jī)上運(yùn)行,手機(jī)用支架固定在后視鏡下方,相機(jī)鏡頭瞄準(zhǔn)車輛的前進(jìn)方向。系統(tǒng)運(yùn)行中通過手機(jī)攝像頭獲取前方道路信息,定位視野前方的車輛并估算其相對(duì)于該車的位置,進(jìn)一步根據(jù)危險(xiǎn)性給出不同程度的危險(xiǎn)預(yù)警。系統(tǒng)由3部分組成:Android前端模塊、車輛檢測(cè)模塊、車輛決策模塊,如圖1所示。

      1.1 Android前端

      Android前端模塊是實(shí)現(xiàn)與用戶交互以及后臺(tái)通信的平臺(tái),主要有三大功能:①負(fù)責(zé)驅(qū)動(dòng)手機(jī)攝像頭,使用Android API驅(qū)動(dòng)相機(jī)并設(shè)置相機(jī)的對(duì)焦模式、圖像尺寸并將抓取的每一幀數(shù)據(jù)存入緩存隊(duì)列;②建立與本地方法的通信接口,將復(fù)雜的計(jì)算任務(wù)交由后臺(tái)完成;③反饋結(jié)果,將車輛檢測(cè)結(jié)果與相機(jī)獲取的圖像預(yù)覽數(shù)據(jù)相疊加并通過SurfaceView顯示。

      1.2 車輛檢測(cè)模塊

      車輛檢測(cè)模塊是系統(tǒng)的處理核心,運(yùn)行在單一的工作線程。該模塊從緩存隊(duì)列中獲取一幀圖像,對(duì)圖像做基本的預(yù)處理后進(jìn)行車輛檢測(cè),檢測(cè)結(jié)果作為跟蹤決策模塊的輸入。

      1.3 車輛決策模塊

      為了使檢測(cè)結(jié)果更具有科學(xué)性,決策模塊需要采用離線的方式構(gòu)建行車安全模型。通過行車安全建模對(duì)檢測(cè)結(jié)果進(jìn)行評(píng)估并給出最終的駕駛建議。

      2 算法設(shè)計(jì)

      前車檢測(cè)算法檢測(cè)準(zhǔn)確率的高低及速度快慢也是影響整個(gè)系統(tǒng)性能的關(guān)鍵。本文結(jié)合車輛輔助安全對(duì)算法實(shí)時(shí)性的高要求以及手機(jī)平臺(tái)的特點(diǎn),設(shè)計(jì)了前車區(qū)域定位與最終檢測(cè)相結(jié)合的程序處理方式。

      2.1 圖像分割

      在手機(jī)攝像頭捕獲的所有圖像中,一半以上的區(qū)域是天空,而這部分區(qū)域?qū)τ谇胺杰囕v的檢測(cè)不提供任何有效信息。此外,道路兩旁的綠化帶也占據(jù)圖像很大比例,而且實(shí)際中道路邊線外的區(qū)域會(huì)經(jīng)常性地發(fā)生誤檢情況。

      分水嶺算法[6]是主流的圖像分割算法之一,其基本思想是將圖像中每一點(diǎn)像素的灰度值作為該點(diǎn)的海拔高度,每一個(gè)局部極小值及其影響區(qū)域被稱為集水盆,而集水盆的邊界則形成分水嶺。將圖像按照分水嶺來劃分可以很好地將圖像中灰度值不同的區(qū)域進(jìn)行分割。圖2為采用分水嶺算法進(jìn)行分割后的效果,可以看到圖像整體區(qū)域被分成了天空、綠化帶、路面3個(gè)部分。

      2.2 車輛區(qū)域定位

      為進(jìn)一步提高該模塊運(yùn)行效率,在圖2路面區(qū)域進(jìn)一步定位車輛大致范圍。對(duì)車輛的粗定位可以利用其固有的紋理特征,測(cè)試發(fā)現(xiàn)除底部陰影外,后車窗、車牌、車頂、車輛下邊緣等都具有較強(qiáng)的橫向紋理,通過車輛橫向紋理可以解決單一陰影帶來的魯棒性差的問題。圖3中1、4區(qū)域,單一陰影受到道路邊界干擾,結(jié)合車輛橫向紋理后可以更好地定位圖像2、3區(qū)域的車輛。

      尋找區(qū)域2、3就是車輛粗定位的目標(biāo)所在,其主要流程包含以下3部分:①使用Sobel算子,對(duì)圖中的橫向邊緣進(jìn)行提取,同時(shí)除去縱行邊緣的噪聲[7];②采用Hough直線檢測(cè)對(duì)其進(jìn)行處理,將破碎的邊緣信息整合成可以代表車輛特征的直線紋理特征;③采用聚類算法對(duì)這些直線特征進(jìn)行聚類操作,就可以獲取車輛粗定位的區(qū)域。各階段處理結(jié)果如圖4所示。

      2.3 車輛檢測(cè)

      為解決車輛特征聚類中可能出現(xiàn)的錯(cuò)誤(圖4(c)中1,2區(qū)域),可以采用HOG特征對(duì)前方車輛進(jìn)行精確檢測(cè)與定位。方向梯度直方圖(Histogram of Oriented Gradient,HOG)是一種在計(jì)算機(jī)視覺和圖像處理中用來進(jìn)行物體檢測(cè)的特征描述算子,它通過計(jì)算和統(tǒng)計(jì)圖像局部區(qū)域的梯度方向直方圖來構(gòu)成特征。Dalal N[8]使用HOG特征結(jié)合線性SVM分類器在行人檢測(cè)問題上獲得極大成功。本文選用64*64的塊尺寸作為車輛HOG特征計(jì)算范圍,以16*16的胞元作為計(jì)算梯度的基本單位,塊滑動(dòng)距離為8個(gè)像素,相鄰胞元間有一半的像素重疊,如圖5所示。將梯度方向劃分成9個(gè)直方圖通道,這樣每個(gè)車輛樣本擁有1 764維特征。

      2.4 行車安全建模

      在城區(qū)道路擁擠的交通情況下,有著車距近、車速低的特點(diǎn)。因此,在作最終決策時(shí)主要以時(shí)間為衡量標(biāo)準(zhǔn)。本系統(tǒng)中可以通過手機(jī)GPS獲取速度信息,但難以對(duì)前方車輛進(jìn)行精確的距離測(cè)量。因此,考慮一種離線量測(cè)的方法建立車輛像素尺寸與前車距離之間的關(guān)系來進(jìn)行建模。相機(jī)位置如圖6中所示,鏡頭主光軸與地面平行豎直向前,距地面高度與車內(nèi)后視鏡高度一致。待測(cè)車輛向前行駛,相機(jī)在拍照的同時(shí)記錄對(duì)應(yīng)的距離S1、S2…Sn。考慮到相機(jī)鏡頭存在的切向畸變,同時(shí)要對(duì)左二車道、左一車道、本車道分別進(jìn)行同樣的量測(cè)。最后以車輛像素坐標(biāo)(x,y)為鍵,實(shí)際距離S為值建立字典D實(shí)現(xiàn)存儲(chǔ)。

      S=D[x,y]

      通過構(gòu)建行車安全模型,獲取了決策所需速度與距離信息。當(dāng)距離前車行駛時(shí)間大于2s時(shí)認(rèn)為車輛行駛環(huán)境良好;當(dāng)距離前車行駛時(shí)間介于1~2s時(shí)對(duì)駕駛員作出安全提示;當(dāng)距離前車的行駛時(shí)間小于1s則給出安全警告。

      3 程序設(shè)計(jì)與實(shí)現(xiàn)

      3.1 Android Camera

      Android SDK提供了完整的條用攝像頭的應(yīng)用框架,其中最為重要的是Camera類以及SurfaceView類,分別提供了操作攝像頭和顯示預(yù)覽畫面的API[9]。具體而言,攝像頭的預(yù)覽及數(shù)據(jù)抓取步驟如下:①surfaceCreated中創(chuàng)建相機(jī)對(duì)象Camera.open();②調(diào)用setPreviewDisplay(),將攝像頭捕捉到的畫面綁定到已經(jīng)定義好的SurfaceView控件上用于顯示;③surfaceChanged()中對(duì)相機(jī)進(jìn)行初始化操作,設(shè)置相機(jī)預(yù)覽分辨率,對(duì)焦方式、抓取視頻的格式等;④onPreviewFrame()中攝像頭會(huì)將捕獲到的每一幀相機(jī)預(yù)覽數(shù)據(jù)以byte[]數(shù)組形式返回。

      通過上述步驟可以實(shí)現(xiàn)Android攝像頭的開啟、參數(shù)設(shè)置、視頻幀捕捉等一系列操作。在onPreviewFrame中將byte[]圖像數(shù)據(jù)由YUV格式轉(zhuǎn)換為RGB圖像格式并以整型數(shù)組的形式進(jìn)行存儲(chǔ),作為下一步車輛檢測(cè)模塊的輸入。

      3.2 Java本地接口(Java Native Interface)

      Java本地接口是一個(gè)編程框架,使得運(yùn)行在Java虛擬機(jī)上的Java調(diào)用或者被調(diào)用特定于本機(jī)硬件與操作系統(tǒng)的用其它語(yǔ)言(C、C++或匯編語(yǔ)言等)編寫的程序。如圖7所示,性能關(guān)鍵代碼由C/C++實(shí)現(xiàn),系統(tǒng)架構(gòu)代碼由Java實(shí)現(xiàn)。采用此種開發(fā)方式的應(yīng)用程序成為JNI程序,其優(yōu)勢(shì)在于[10]:①可利用C/C++來開發(fā)高性能的應(yīng)用程序;②能重復(fù)利用平臺(tái)相關(guān)特性;③可以復(fù)用大量已有的高質(zhì)量C/C++代碼。

      3.3 Android端UI設(shè)計(jì)

      Android程序的界面設(shè)計(jì)通過在XML文件中定義來實(shí)現(xiàn)。通過XML這種可擴(kuò)展標(biāo)記語(yǔ)言,定義Android程序界面上的所有控件,并指定控件的屬性及組織方式。在本系統(tǒng)中采用設(shè)計(jì)兩層SurfaceView控件疊加的布局方式,下層SurfaceView控件實(shí)時(shí)顯示Camera的預(yù)覽畫面,上層SurfaceView控件對(duì)檢測(cè)結(jié)果及當(dāng)前系統(tǒng)運(yùn)行狀態(tài)進(jìn)行顯示,如圖8所示。

      3.4 代碼編譯與調(diào)用

      在完成代碼編寫后,需要使用Android NDK編譯本地代碼[9]。系統(tǒng)開發(fā)過程中,需要在Windows環(huán)境下搭建Cygwin來模擬Unix系統(tǒng)環(huán)境,在Cygwin中將編寫的本地代碼編譯成So庫(kù)文件??梢詫⑸a(chǎn)的So庫(kù)與Java代碼一并打包產(chǎn)生Android APK。代碼編譯與庫(kù)文件調(diào)用流程如圖9所示。

      4 測(cè)試結(jié)果

      為了對(duì)比算法的運(yùn)行效率,基于PC平臺(tái)采用不同的算法對(duì)同一視頻圖像進(jìn)行測(cè)試。圖像尺寸為840*480,環(huán)境為X64-Release,CPU主頻為2.6GHz。

      從表1可以看出,采用本文設(shè)計(jì)的處理算法,針對(duì)車輛可能存在的區(qū)域提取ROI可以有效避免滑動(dòng)模板匹配在處理圖像金字塔中的耗時(shí)操作[12],檢測(cè)效率顯著提升。使用小米3(2013年9月上市)作為測(cè)試機(jī)型,在處理速度上完全實(shí)現(xiàn)了數(shù)據(jù)實(shí)時(shí)抓取以及性能實(shí)時(shí)檢測(cè),每幀處理時(shí)間約為14.3ms,測(cè)試結(jié)果如圖10所示。

      5 結(jié)語(yǔ)

      本文基于Android平臺(tái)探討了前方車輛檢測(cè)實(shí)現(xiàn)方法,進(jìn)行了行車安全建模、前車檢測(cè)算法相關(guān)研究并完成了Android APP的測(cè)試與開發(fā)。在車輛檢測(cè)的核心模塊,針對(duì)Android手機(jī)計(jì)算能力有限的特點(diǎn)設(shè)計(jì)了車輛粗定位和精確檢測(cè)相結(jié)合的算法。通過對(duì)車輛紋理特征進(jìn)行分析,采用聚類方法對(duì)車輛可能出現(xiàn)的區(qū)域進(jìn)行提取,改善了傳統(tǒng)滑動(dòng)模板法目標(biāo)檢測(cè)耗時(shí)久的缺陷,實(shí)現(xiàn)了基于手機(jī)平臺(tái)對(duì)前方車輛的實(shí)時(shí)檢測(cè)。最后將檢測(cè)結(jié)果代入設(shè)計(jì)好的危險(xiǎn)評(píng)價(jià)模型并作出最終決策。

      參考文獻(xiàn):

      [1]王榮本, 郭烈, 金立生,等.智能車輛安全輔助駕駛技術(shù)研究近況[J].公路交通科技,2007,24(7):107-111.

      [2]VIOLA P, JONES M. Robust real-time object detection[J]. International Journal of Computer Vision,2001(4):51-52.

      [3]PAPAGEORGIOU C P, OREN M, POGGIO T. A general framework for object detection[C].Sixth international conference on Computer vision,1998: 555-562.

      [4]李云種,何克忠,賈培發(fā).基于陰影特征和Adaboost的前向車輛檢測(cè)系統(tǒng)[J].清華大學(xué)學(xué)報(bào): 自然科學(xué)版, 2007,47(10):1713-1716.

      [5]魏凱,盛建平,熊凱.基于陰影特征的前向車輛檢測(cè)和測(cè)距方法研究[J].機(jī)械設(shè)計(jì)與制造,2013 (2):131-133.

      [6]DENG Y,MANJUNATH B S,SHIN H.Color image segmentation[C].IEEE Computer Society Conference on Computer Vision and Pattern Recognition,1999.

      [7]吳國(guó)偉, 謝金法, 郭志強(qiáng).基于Sobel算子的車輛輪廓邊緣檢測(cè)算法[J].河南科技大學(xué)學(xué)報(bào):自然科學(xué)版,2009,30(6):38-41.

      [8]DALAL N,TRIGGS B.Histograms of oriented gradients for human detection[C].IEEE Computer Society Conference on Computer Vision and Pattern Recognition,2005:886-893.

      [9]安卓開發(fā)官網(wǎng)[EB/OL].http://developer.android.com/.

      [10]金泰延.Android框架揭秘[M].北京:人民郵電出版社,2011.

      [11]VIOLA P,JONES M.Fast and robust classification using asymmetric adaboost and a detector cascade[J].Advances in Neural Information Processing System,2001(4):14.

      [12]FELZENSZWALB,P F GIRSHICK,R B MCALLESTER,et al.Object detection with discriminatively trained part based models[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2010,32(9):1627-1645.

      (責(zé)任編輯:孫 娟)

      Abstract:Development a front-vehicle detection system based on Android smartphone.Use the phone camera to catch the image data of the road,and then use the Android native method to processing the image data and return the result back.The Android platforms compute capacity is not good while the detection algorithm efficiency is slow .In order to solve the above problem,we design a vehicle ROI location algorithm. First use the intrinsic texture on car to filter the detection area,then use the cluster algorithm to locate vehicles ROI.Then, precise positioning the outline of vehicle by HOG feature with SVM classifier,in this step the miss cluster area also been rejected.Finally realize a real time front-vehicle detection system on Android platform.

      Key Words: Android Platform;Front-vehicle Detection;JNI Technics; Safety Assistance

      猜你喜歡
      Android平臺(tái)
      基于Android平臺(tái)的兒童跟蹤系統(tǒng)
      基于Android平臺(tái)的老人跌倒檢測(cè)算法及APP設(shè)計(jì)
      軟件(2016年7期)2017-02-07 13:07:28
      基于Android平臺(tái)軟件開發(fā)技術(shù)研究
      科技資訊(2016年25期)2016-12-27 18:46:40
      基于Android平臺(tái)的人臉識(shí)別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      基于Android平臺(tái)的健康醫(yī)療APP設(shè)計(jì)與開發(fā)
      Android手機(jī)主題設(shè)計(jì) 
      基于Android的Python語(yǔ)言英漢維電子詞典設(shè)計(jì)與實(shí)現(xiàn)
      Android平臺(tái)下的空氣質(zhì)量和天氣情況查詢應(yīng)用設(shè)計(jì)與實(shí)現(xiàn)
      基于Android平臺(tái)的即時(shí)通訊系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      基于Android的移動(dòng)GIS系統(tǒng)的應(yīng)用與實(shí)現(xiàn)
      吐鲁番市| 若尔盖县| 乌兰浩特市| 大丰市| 历史| 平利县| 改则县| 桦南县| 钟祥市| 库车县| 海城市| 海门市| 民权县| 囊谦县| 交城县| 通海县| 宾川县| 义乌市| 海林市| 石狮市| 黔西县| 墨竹工卡县| 满洲里市| 海城市| 宜章县| 蓬安县| 东丰县| 巩留县| 报价| 皋兰县| 黔西县| 东阿县| 临朐县| 密云县| 洛浦县| 府谷县| 筠连县| 黎川县| 汤阴县| 于田县| 驻马店市|