999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android智能手機的前方車輛檢測系統

2016-05-14 21:05:59潘安李必軍
軟件導刊 2016年5期

潘安 李必軍

摘要:開發基于Android智能手機的前方車輛檢測系統。通過手機攝像頭獲取道路圖像數據,利用JNI技術調用Android本地方法對圖像數據進行處理并返回檢測結果。為解決Android平臺計算能力低、現有目標檢測算法耗時久的問題,設計了一種車輛區域定位方法。首先利用車輛固有紋理特征對檢測區域進行篩選,進一步利用聚類算法定位每一個車輛可能存在的區域。最后利用SVM分類器和HOG特征精確定位車輛外部輪廓,并剔除上一步中可能出現的錯誤聚類,最終實現手機平臺上的前車實時檢測。

關鍵詞:Android平臺;前車檢測;JNI技術;輔助安全

DOIDOI:10.11907/rjdk.161110

中圖分類號:TP319

文獻標識碼:A 文章編號:1672-7800(2016)005-0058-04

0 引言

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

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

1 系統技術方案

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

1.1 Android前端

Android前端模塊是實現與用戶交互以及后臺通信的平臺,主要有三大功能:①負責驅動手機攝像頭,使用Android API驅動相機并設置相機的對焦模式、圖像尺寸并將抓取的每一幀數據存入緩存隊列;②建立與本地方法的通信接口,將復雜的計算任務交由后臺完成;③反饋結果,將車輛檢測結果與相機獲取的圖像預覽數據相疊加并通過SurfaceView顯示。

1.2 車輛檢測模塊

車輛檢測模塊是系統的處理核心,運行在單一的工作線程。該模塊從緩存隊列中獲取一幀圖像,對圖像做基本的預處理后進行車輛檢測,檢測結果作為跟蹤決策模塊的輸入。

1.3 車輛決策模塊

為了使檢測結果更具有科學性,決策模塊需要采用離線的方式構建行車安全模型。通過行車安全建模對檢測結果進行評估并給出最終的駕駛建議。

2 算法設計

前車檢測算法檢測準確率的高低及速度快慢也是影響整個系統性能的關鍵。本文結合車輛輔助安全對算法實時性的高要求以及手機平臺的特點,設計了前車區域定位與最終檢測相結合的程序處理方式。

2.1 圖像分割

在手機攝像頭捕獲的所有圖像中,一半以上的區域是天空,而這部分區域對于前方車輛的檢測不提供任何有效信息。此外,道路兩旁的綠化帶也占據圖像很大比例,而且實際中道路邊線外的區域會經常性地發生誤檢情況。

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

2.2 車輛區域定位

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

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

2.3 車輛檢測

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

2.4 行車安全建模

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

S=D[x,y]

通過構建行車安全模型,獲取了決策所需速度與距離信息。當距離前車行駛時間大于2s時認為車輛行駛環境良好;當距離前車行駛時間介于1~2s時對駕駛員作出安全提示;當距離前車的行駛時間小于1s則給出安全警告。

3 程序設計與實現

3.1 Android Camera

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

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

3.2 Java本地接口(Java Native Interface)

Java本地接口是一個編程框架,使得運行在Java虛擬機上的Java調用或者被調用特定于本機硬件與操作系統的用其它語言(C、C++或匯編語言等)編寫的程序。如圖7所示,性能關鍵代碼由C/C++實現,系統架構代碼由Java實現。采用此種開發方式的應用程序成為JNI程序,其優勢在于[10]:①可利用C/C++來開發高性能的應用程序;②能重復利用平臺相關特性;③可以復用大量已有的高質量C/C++代碼。

3.3 Android端UI設計

Android程序的界面設計通過在XML文件中定義來實現。通過XML這種可擴展標記語言,定義Android程序界面上的所有控件,并指定控件的屬性及組織方式。在本系統中采用設計兩層SurfaceView控件疊加的布局方式,下層SurfaceView控件實時顯示Camera的預覽畫面,上層SurfaceView控件對檢測結果及當前系統運行狀態進行顯示,如圖8所示。

3.4 代碼編譯與調用

在完成代碼編寫后,需要使用Android NDK編譯本地代碼[9]。系統開發過程中,需要在Windows環境下搭建Cygwin來模擬Unix系統環境,在Cygwin中將編寫的本地代碼編譯成So庫文件。可以將生產的So庫與Java代碼一并打包產生Android APK。代碼編譯與庫文件調用流程如圖9所示。

4 測試結果

為了對比算法的運行效率,基于PC平臺采用不同的算法對同一視頻圖像進行測試。圖像尺寸為840*480,環境為X64-Release,CPU主頻為2.6GHz。

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

5 結語

本文基于Android平臺探討了前方車輛檢測實現方法,進行了行車安全建模、前車檢測算法相關研究并完成了Android APP的測試與開發。在車輛檢測的核心模塊,針對Android手機計算能力有限的特點設計了車輛粗定位和精確檢測相結合的算法。通過對車輛紋理特征進行分析,采用聚類方法對車輛可能出現的區域進行提取,改善了傳統滑動模板法目標檢測耗時久的缺陷,實現了基于手機平臺對前方車輛的實時檢測。最后將檢測結果代入設計好的危險評價模型并作出最終決策。

參考文獻:

[1]王榮本, 郭烈, 金立生,等.智能車輛安全輔助駕駛技術研究近況[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]李云種,何克忠,賈培發.基于陰影特征和Adaboost的前向車輛檢測系統[J].清華大學學報: 自然科學版, 2007,47(10):1713-1716.

[5]魏凱,盛建平,熊凱.基于陰影特征的前向車輛檢測和測距方法研究[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]吳國偉, 謝金法, 郭志強.基于Sobel算子的車輛輪廓邊緣檢測算法[J].河南科技大學學報:自然科學版,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]安卓開發官網[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.

(責任編輯:孫 娟)

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

主站蜘蛛池模板: 老司机精品99在线播放| 毛片三级在线观看| 特级做a爰片毛片免费69| 日本伊人色综合网| 日本高清在线看免费观看| 综合天天色| 国产精品免费电影| 欧洲高清无码在线| 国产成人精品2021欧美日韩| 亚洲一区二区三区中文字幕5566| 国产精品分类视频分类一区| 欧美亚洲第一页| 少妇高潮惨叫久久久久久| 蝌蚪国产精品视频第一页| 国产成人91精品免费网址在线 | 国产乱人伦精品一区二区| 成人年鲁鲁在线观看视频| 成AV人片一区二区三区久久| 国产欧美在线观看一区| 久久人与动人物A级毛片| 亚洲女人在线| 久久久久人妻一区精品色奶水| 欧美亚洲国产一区| 思思热在线视频精品| 美女被躁出白浆视频播放| 久久www视频| 亚洲AV一二三区无码AV蜜桃| 老司机久久99久久精品播放| 制服丝袜 91视频| 国产毛片高清一级国语| 国产一区自拍视频| 精品少妇人妻无码久久| 成人午夜天| 精品福利网| a级毛片网| 狠狠色丁香婷婷综合| 国产www网站| 国产va欧美va在线观看| 无码AV高清毛片中国一级毛片| 亚洲无码视频一区二区三区| 亚洲v日韩v欧美在线观看| 538国产在线| 亚洲日韩精品欧美中文字幕| 很黄的网站在线观看| 色色中文字幕| 亚洲V日韩V无码一区二区| 日韩欧美在线观看| 色丁丁毛片在线观看| 亚洲AV电影不卡在线观看| 亚洲swag精品自拍一区| 亚洲欧美日韩精品专区| 亚洲日韩精品无码专区| 精品亚洲国产成人AV| 国产无码精品在线播放| 色妞永久免费视频| 久久久精品国产SM调教网站| 亚洲第一天堂无码专区| 久久精品aⅴ无码中文字幕| 亚洲一道AV无码午夜福利| 一本大道香蕉中文日本不卡高清二区| 国产美女在线免费观看| www.99在线观看| 亚洲乱强伦| 亚洲欧洲日韩综合| 久久国产热| 久久亚洲中文字幕精品一区| 福利小视频在线播放| 看你懂的巨臀中文字幕一区二区| 99热这里只有成人精品国产| 国产亚洲欧美在线视频| 亚洲国产高清精品线久久| 99精品国产高清一区二区| 色婷婷视频在线| 国产综合精品一区二区| 中文毛片无遮挡播放免费| 精久久久久无码区中文字幕| 国产极品美女在线播放| 国产高清不卡| 欧美福利在线| 中文国产成人精品久久一| 日韩在线第三页| 88av在线|