• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    利用計算機視覺庫的Android平臺系統(tǒng)道路識別

    2014-09-25 03:05:46邢飛郭文成
    關鍵詞:圖像處理車道車輛

    邢飛,郭文成

    (天津工業(yè)大學電氣工程與自動化學院,天津300000)

    引 言

    道路識別系統(tǒng),可以協(xié)助汽車司機安全駕駛,通過分析道路路況、車距以及識別車道線,減少車禍率。目前,Android系統(tǒng)主要借助底層的Skia圖形圖像處理庫進行圖像處理。但是Android系統(tǒng)在圖像處理方面的功能不是很完善,處理的能力相對有限,只能針對圖像進行簡單的變換,無法對復雜背景以及噪聲嚴重的圖像進行處理和識別。所以提出一種在Android系統(tǒng)下利用計算機視覺庫OpenCV進行圖像處理的方法。實驗證明,OpenCV庫可以方便地應用到Android系統(tǒng)中。

    1 OpenCV簡介

    本文借助OpenCV圖像處理開發(fā)包,利用Android NDK技術實現(xiàn)了基于Android平臺的道路識別系統(tǒng)。

    OpenCV是一個基于(開源)發(fā)行的跨平臺計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統(tǒng)上。它輕量級而且高效——由一系列C函數(shù)和少量C++類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法。OpenCV相對于MATLAB等其他常用的圖像處理軟件來說,還有其顯著的優(yōu)勢:

    ①OpenCV擁有包括300多個C函數(shù)的跨平臺的中高層API。它不依賴于其他的外部庫——盡管也可以使用某些外部庫。

    ②OpenCV對非商業(yè)應用和商業(yè)應用都是免費的。

    ③OpenCV為Intel Integrated Performance Primitives(IPP)提供了透明接口。這意味著如果有為特定處理器優(yōu)化的IPP庫,OpenCV將在運行時自動加載這些庫。

    ④可移植性好。OpenCV提供的視覺處理算法非常豐富,并且它部分以C語言編寫,加上其開源的特性,處理得當,不需要添加新的外部支持也可以完整地編譯鏈接生成執(zhí)行程序,所以很多人用它來做算法的移植。

    2 OpenCV移植到Android

    2.1 Android應用程序開發(fā)環(huán)境搭建

    Android開發(fā)平臺可以搭建在Windows操作系統(tǒng)下,也可以搭建在Linux操作系統(tǒng)下。本文是基于Linux操作系統(tǒng)下開發(fā)的,使用的是Ubuntu9.0操作系統(tǒng)。Android開發(fā)所需要的軟件主要有集成開發(fā)環(huán)境Eclipse、JDK、Android SDK和ADT插件。

    自從OpenCV 2.2發(fā)布以來,OpenCV就可支持Android平臺,本文使用的版本是OpenCV 2.2.1。

    2.2 OpenCV的移植

    ①Android的開發(fā)平臺是使用Java語言進行開發(fā)的,而OpenCV由一系列C函數(shù)和少量C++類構成,所以想要在Android系統(tǒng)應用程序中調用基于C/C++編寫的OpenCV庫,則需要使用NDK對OpenCV源碼進行編譯,生成共享庫so文件。

    ②Android的應用程序開發(fā)框架提供給開發(fā)者的都是Java API,然而底層的本地庫是基于C/C++語言編寫的,所以需要一個機制將它轉換,之后提供給開發(fā)者Java接口。JNI(Java Native Interface)譯為Java本地接口,它使Java可以通過JNI調用C/C++的庫。

    ③為了使用戶能夠方便地在Android設備上安裝和使用本系統(tǒng),則需要將本系統(tǒng)打包成apk格式的應用軟件。通過Android應用程序編寫Java端的代碼,最后通過Android SDK生成Android應用程序.apk。

    結構框圖如圖1所示。

    圖1 結構框圖

    3 系統(tǒng)的結構框架

    本系統(tǒng)主要是通過在移動設備上應用安全駕駛的輔助程序來協(xié)助司機減少車禍的發(fā)生。構思圖如圖2所示,上邊圖像中的斜線為系統(tǒng)檢測的范圍,下邊圖像中的矩形框為車輛標識的對象,兩側直線為系統(tǒng)識別的車道線。該系統(tǒng)主要通過Android設備自帶的Video攝像頭功能采集視頻圖像,對攝像頭進行初始化和參數(shù)設置,將采集到的一幀數(shù)據(jù)傳給圖像處理模塊,以便進行車輛跟蹤和道路線檢測,之后將結果信息傳給提示警告模塊以便作出決策。

    所以根據(jù)系統(tǒng)功能的分析,把道路識別系統(tǒng)分為視頻圖像采集模塊、圖像處理模塊和提示警告模塊。模塊劃分如圖3所示。

    3.1 視頻圖像采集

    圖2 構思圖

    Android系統(tǒng)的Linux內(nèi)核和驅動程序運行于內(nèi)核空間。Android設備的攝像頭就是由Linux提供的內(nèi)核標準的視頻驅動程序,即Video4Linux(Video for Linux),簡稱V4L。目前的版本為Video4Linux2(V4L2)。它驅動的Video設備可以支持捕獲及視頻輸出方式。圖像采集的流程圖如圖4所示。

    圖3 模塊的劃分

    圖4 圖像采集流程圖

    本文利用攝像頭Intent捕獲視頻,部分代碼如下:_REQUEST_CODE);

    startActivityForResult()方法執(zhí)行完畢,用戶攝像完畢(或取消操作)后,用戶界面返回應用程序,這時必須監(jiān)聽onActivityResult()方法來接收intent的返回結果并執(zhí)行后續(xù)操作。

    3.2 圖像處理模塊

    圖像處理模塊主要包括車輛跟蹤和車道線檢測。這兩個功能是通過OpenCV自帶的庫函數(shù)進行實現(xiàn)的。

    ①車輛跟蹤主要運用的是基于Kalman濾波器的團塊跟蹤。首先,采用平均值法建立初始背景,對幀圖像進行濾波和去噪聲處理,并對背景進行減操作和OSTU自適應閾值算法檢測運動目標。其次,背景更新以便適應新的環(huán)境變化。最后是團塊跟蹤,主要是通過卡爾曼濾波器建立運動模型,對運動目標的下一步的運動進行預測,并用查找輪廓的方法繪制矩形區(qū)域圈住目標圖像,找到運動目標的重心,求出相對于自己車輛的距離。

    ②車道線檢測主要運用的是Hough變換。首先,通過Canny算法找到圖像的輪廓,然后用Hough變換檢測直線,最后用line()函數(shù)將直線畫出。在圖像中會檢查出很多條直線,因此通過車道線的角度,把檢測到的直線分成左右車道線兩組,對每一組進行排序,繪制找到的最長的車道線。

    相關的一些函數(shù):

    車道線和車輛識別結果如圖5所示。

    3.3 提示警告模塊

    所設計的道路識別系統(tǒng)主要通過發(fā)現(xiàn)一些異常駕駛行為來提醒司機安全駕駛,所以需要一些相應的提示和警告模塊。有以下異常時,系統(tǒng)會發(fā)出警告和提醒:

    ①當車身與其他車輛的距離在不正常的范圍時;

    ②當車速超過規(guī)定范圍時;

    ③當車身和車道線之間的位置出現(xiàn)異常時。

    檢測到以上情況,用Android.media.SoundPool類實現(xiàn)聲音警報程序。

    圖5 車道線和車輛識別結果

    結 語

    車輛識別系統(tǒng),可以提醒駕駛員安全駕駛以及避免交通事故的發(fā)生。軟件主要基于Android平臺開發(fā),利用了開源計算機視覺庫OpenCV的圖形圖像工具和Android NDK編程相結合,實現(xiàn)了基于Android平臺的道路識別系統(tǒng)。本系統(tǒng)還有許多不足之處,比如有時無法檢測到兩邊的車道線,報警系統(tǒng)還不是很完善,在下一步的研究中,會盡量完善和改進。

    [1] Bradski G,Kaehler A.Learning OpenCV:Computer vision with the OpenCV library[M] .[s.l.] :O'reilly,2008.

    [2] 劉瑞禎,于仕琪.OpenCV教程:基礎篇[M] .北京:北京航空航天大學出版社,2007.

    [3] 姚昱旻,劉衛(wèi)國.Android的架構與應用開發(fā)研究[J] .計算機系統(tǒng)應用,2008,17(11):110-112.

    [4] 韓露,李祖樞,陳東義.一種Java與OpenCV結合實現(xiàn)的目標檢測模塊[J] .計算機應用,2008,28(3):29-32.

    [5] 任俊偉,林東岱.JNI技術實現(xiàn)跨平臺開發(fā)的研究[J] .計算機應用研究,2005,22(7):180-184.

    [6] 王宏彬,李燈熬,趙菊敏,等.利用OpenCV實現(xiàn)在Android系統(tǒng)下的人臉檢測[J] .軟件,2011,32(12):4-7.

    [7] 王連鵬.基于Android系統(tǒng)的手勢識別方法研究及應用[D] .齊齊哈爾:齊齊哈爾大學,2012.

    猜你喜歡
    圖像處理車道車輛
    北斗+手機實現(xiàn)車道級導航應用
    避免跟車闖紅燈的地面車道線
    科學大眾(2021年9期)2021-07-16 07:02:50
    淺談MTC車道改造
    機器學習在圖像處理中的應用
    電子制作(2018年18期)2018-11-14 01:48:20
    車輛
    小太陽畫報(2018年3期)2018-05-14 17:19:26
    模糊圖像處理,刑事偵查利器
    圖像處理技術的實戰(zhàn)應用
    冬天路滑 遠離車輛
    車輛出沒,請注意
    提高車輛響應的轉向輔助控制系統(tǒng)
    汽車文摘(2015年11期)2015-12-02 03:02:53
    邵东县| 新沂市| 商丘市| 鄂温| 龙陵县| 拜城县| 沽源县| 台东县| 霍林郭勒市| 凤阳县| 青田县| 嘉兴市| 蓝山县| 凤冈县| 凌源市| 枝江市| 潜山县| 南通市| 嫩江县| 沈阳市| 仁寿县| 海兴县| 大渡口区| 庄河市| 武胜县| 佛冈县| 夏河县| 海晏县| 贵南县| 苏尼特左旗| 西峡县| 元谋县| 三门县| 蓝田县| 金沙县| 江达县| 榕江县| 新安县| 手游| 阿勒泰市| 双城市|