基于圖像處理的車(chē)道線識(shí)別算法研究

上傳人:jun****875 文檔編號(hào):17807212 上傳時(shí)間:2020-12-07 格式:DOC 頁(yè)數(shù):42 大小:2.26MB
收藏 版權(quán)申訴 舉報(bào) 下載
基于圖像處理的車(chē)道線識(shí)別算法研究_第1頁(yè)
第1頁(yè) / 共42頁(yè)
基于圖像處理的車(chē)道線識(shí)別算法研究_第2頁(yè)
第2頁(yè) / 共42頁(yè)
基于圖像處理的車(chē)道線識(shí)別算法研究_第3頁(yè)
第3頁(yè) / 共42頁(yè)

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《基于圖像處理的車(chē)道線識(shí)別算法研究》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于圖像處理的車(chē)道線識(shí)別算法研究(42頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、基于圖像處理的車(chē)道線識(shí)別算法研究 摘要 為了提高車(chē)道線識(shí)別算法的實(shí)時(shí)性和準(zhǔn)確性,提出了一種基于改進(jìn)Hough變換的車(chē)道線檢測(cè)方法。在車(chē)道線的預(yù)處理階段,首先確定圖像中的感興趣區(qū)域,然后 對(duì)圖像進(jìn)行平滑處理、自適應(yīng)閾值分割、邊緣檢測(cè),從而減少了后期的處理數(shù)據(jù)量,排除了大部分的干擾因素。在車(chē)道線的識(shí)別階段,根據(jù)圓和橢圓的性質(zhì),對(duì)傳統(tǒng)的霍夫變換進(jìn)行改進(jìn),極大減小了在檢測(cè)圓和橢圓時(shí)的計(jì)算量,并提高了檢測(cè)的準(zhǔn)確性。最后使用OpenCV圖像處理庫(kù)編寫(xiě)程序,證明了新算法的正確性,得到了理想的結(jié)果。 關(guān)鍵詞:車(chē)道線識(shí)別 橢圓檢測(cè) 霍夫變換

2、 Study on Lane Mark Identification Algorithm Based on Image Processing Abstract In order to improve the real-time and accuracy of lane recognition algorithm, presents a method of lane detection based on improved Hough transform. The preprocessing stage in the lane line, first determine th

3、e image of the region of interest, and then smoothing, adaptive threshold segmentation, edge detection of image, thereby reducing the amount of data processing stage, most of the interference factors. The recognition phase in the lane line, according to the nature of the circle and ellipse, improvem

4、ent of the Hof transform to the traditional, greatly reduces the amount of computation in the detection of circle and ellipse, and improve the accuracy of detection. Finally, the use of OpenCV image processing library program, proved the correctness of the new algorithm, and the desired result. K

5、ey Words:lane mark identification;ellipse detection;hough transform 目錄 摘要 I Abstract II 目錄 III 第1章 緒論 1 1.1 研究背景 1 2.1 國(guó)內(nèi)外研究現(xiàn)狀 2 1.2.1 國(guó)外研究現(xiàn)狀 2 1.2.2 國(guó)內(nèi)研究現(xiàn)狀 3 3.1 論文主要內(nèi)容 3 第2章 車(chē)道線的預(yù)處理 5 2.1 認(rèn)識(shí)車(chē)道線 5 2.1.1 車(chē)道線的基本分類(lèi) 5 2.1.2 車(chē)道線的標(biāo)劃區(qū)分 6 2.1.3 車(chē)道線的基本形狀 6 2.2 感興趣區(qū)域 6

6、 2.3 平滑濾波 7 2.3.1 均值濾波 7 2.3.2 中值濾波 8 2.3.3 高斯濾波 9 2.3.4 平滑濾波總結(jié) 10 2.4 二值化 10 2.4.1 二值化的基本概念 10 2.4.2 大津法自適應(yīng)閾值分割 10 2.5 邊緣提取 11 2.5.1 Sobel算子 12 2.5.2 Canny算子 13 2.5.3 Sobel算子和Canny算子的比較 14 第3章 Hough變換直線和橢圓的檢測(cè) 15 3.1 Hough變換直線檢測(cè) 15 3.1.1 Hough變換直線檢測(cè)的基本原理 15 3.1.2 Hough變換的缺陷和改進(jìn) 16 3.2

7、 Hough變換圓檢測(cè) 17 3.2.1 Hough變換圓檢測(cè)的基本原理 17 3.2.2 對(duì)hough變換圓檢測(cè)算法的改進(jìn) 18 3.2.3 最小二乘法求曲線上一點(diǎn)的切線 18 3.3 Hough變換橢圓檢測(cè) 19 第4章 車(chē)道線的識(shí)別 22 結(jié)論 25 參考文獻(xiàn): 26 致謝 28 附錄1 29 第1章 緒論 1.1 研究背景 車(chē)道線的識(shí)別是圖像處理和交通智能化領(lǐng)域的一個(gè)重要分支,特別是近年來(lái),隨著只能汽車(chē)、自動(dòng)識(shí)別的發(fā)展和應(yīng)用,車(chē)道線識(shí)別的研究得到了長(zhǎng)足的發(fā)展,并且會(huì)在未來(lái)隨著人們對(duì)識(shí)別精度、速度的要求越來(lái)越高,車(chē)道線識(shí)別領(lǐng)域的研究將會(huì)愈發(fā)火熱,可以說(shuō)這是

8、一個(gè)方興未艾的研究領(lǐng)域。 車(chē)道線識(shí)別的研究成果很大程度上得益與數(shù)字圖象處理和計(jì)算機(jī)技術(shù)的發(fā)展。數(shù)字圖像處理最早出現(xiàn)于20世紀(jì)50年代,當(dāng)時(shí)的電子計(jì)算機(jī)已經(jīng)發(fā)展到一定水平,人們開(kāi)始利用計(jì)算機(jī)來(lái)處理圖形和圖像信息。數(shù)字圖像處理作為一門(mén)學(xué)科大約形成于20世紀(jì)60年代初期。早期的圖像處理的目的是改善圖像的質(zhì)量,它以人為對(duì)象,以改善人的視覺(jué)效果為目的。圖像處理中,輸入的是質(zhì)量低的圖像,輸出的是改善質(zhì)量后的圖像,常用的圖像處理方法有圖像增強(qiáng)、復(fù)原、編碼、壓縮等。首次獲得實(shí)際成功應(yīng)用的是美國(guó)噴氣推進(jìn)實(shí)驗(yàn)室(JPL)。他們對(duì)航天探測(cè)器徘徊者7號(hào)在1964年發(fā)回的幾千張?jiān)虑蛘掌褂昧藞D像處理技術(shù),如幾何校正、

9、灰度變換、去除噪聲等方法進(jìn)行處理,并考慮了太陽(yáng)位置和月球環(huán)境的影響,由計(jì)算機(jī)成功地繪制出月球表面地圖,獲得了巨大的成功。隨后又對(duì)探測(cè)飛船發(fā)回的近十萬(wàn)張照片進(jìn)行更為復(fù)雜的圖像處理,以致獲得了月球的地形圖、彩色圖及全景鑲嵌圖,獲得了非凡的成果,為人類(lèi)登月創(chuàng)舉奠定了堅(jiān)實(shí)的基礎(chǔ),也推動(dòng)了數(shù)字圖像處理這門(mén)學(xué)科的誕生。在以后的宇航空間技術(shù),如對(duì)火星、土星等星球的探測(cè)研究中,數(shù)字圖像處理技術(shù)都發(fā)揮了巨大的作用。隨著圖像處理技術(shù)的深入發(fā)展,從70年代中期開(kāi)始,隨著計(jì)算機(jī)技術(shù)和人工智能、思維科學(xué)研究的迅速發(fā)展,數(shù)字圖像處理向更高、更深層次發(fā)展。人們已開(kāi)始研究如何用計(jì)算機(jī)系統(tǒng)解釋圖像,實(shí)現(xiàn)類(lèi)似人類(lèi)視覺(jué)系統(tǒng)理解外部

10、世界,這被稱為圖像理解或計(jì)算機(jī)視覺(jué)。很多國(guó)家,特別是發(fā)達(dá)國(guó)家投入更多的人力、物力到這項(xiàng)研究,取得了不少重要的研究成果。其中代表性的成果是70年代末MIT的Marr提出的視覺(jué)計(jì)算理論,這個(gè)理論成為計(jì)算機(jī)視覺(jué)領(lǐng)域其后十多年的主導(dǎo)思想。圖像理解雖然在理論方法研究上已取得不小的進(jìn)展,但它本身是一個(gè)比較難的研究領(lǐng)域,存在不少困難,因人類(lèi)本身對(duì)自己的視覺(jué)過(guò)程還了解甚少,因此計(jì)算機(jī)視覺(jué)是一個(gè)有待人們進(jìn)一步探索的新領(lǐng)域。 2.1 國(guó)內(nèi)外研究現(xiàn)狀 在過(guò)去幾十年中,國(guó)內(nèi)外許多專家學(xué)者在車(chē)道線識(shí)別和跟蹤系統(tǒng)方面已經(jīng)做出了很多積極有意義的探索。國(guó)外一些關(guān)于智能車(chē)輛輔助駕駛系統(tǒng)的研究成果已經(jīng)比較成熟,有些已經(jīng)投入到

11、商業(yè)化應(yīng)用中,相對(duì)國(guó)外的研究水平,國(guó)內(nèi)的研究起步比較晚,但是發(fā)展速度比較快,相信在未來(lái)的幾年里,國(guó)內(nèi)的一些研究成果應(yīng)該能夠快速跟上國(guó)際版步伐,逐漸發(fā)展完善起自己的應(yīng)用體系,盡快的投入到實(shí)際生產(chǎn)應(yīng)用中。 1.2.1 國(guó)外研究現(xiàn)狀 國(guó)外一些關(guān)于車(chē)道線識(shí)別的研究成果已經(jīng)比較成熟,目前,有些方法已經(jīng)投入到了實(shí)際的商業(yè)化應(yīng)用中。其中,具有代表性的系統(tǒng)主要由:意大利帕爾瑪大學(xué)開(kāi)發(fā)的GOLD系統(tǒng)[20];美國(guó)密歇根州立大學(xué)人工智能實(shí)驗(yàn)室開(kāi)發(fā)的LOIS系統(tǒng);美國(guó)卡內(nèi)基梅隆大學(xué)開(kāi)發(fā)的RALPH系統(tǒng);美國(guó)卡內(nèi)基梅隆大學(xué)機(jī)器人學(xué)院NavLab實(shí)驗(yàn)室和Vision&Autonomous System Center

12、聯(lián)合開(kāi)發(fā)的SCARF系統(tǒng)和ALVINN系統(tǒng)。 GOLD系統(tǒng):該系統(tǒng)采用立體視覺(jué)技術(shù),根據(jù)目前車(chē)道線的油漆顏色特征來(lái)定位車(chē)道線所處位置,但是立體視覺(jué)技術(shù)面臨圖像匹配以及運(yùn)行時(shí)間長(zhǎng)等問(wèn)題,因而該系統(tǒng)有設(shè)計(jì)了并行SIMD硬件結(jié)構(gòu)來(lái)滿足實(shí)時(shí)性要求。 LOIS系統(tǒng):該系統(tǒng)利用一種可變型的道路模板技術(shù),將道路的彎曲度和智能車(chē)輛在行駛過(guò)程中所處道路的位置問(wèn)題轉(zhuǎn)換成多維參數(shù)空間的最優(yōu)化問(wèn)題,通過(guò)得到的最優(yōu)解來(lái)解決車(chē)道偏離預(yù)警中出現(xiàn)的問(wèn)題。 RALPH系統(tǒng):該系統(tǒng)首先根據(jù)車(chē)輛速度的變化情況,建立了與之相對(duì)應(yīng)的一系列梯形窗口,通過(guò)對(duì)梯形窗口內(nèi)的視頻圖像通過(guò)逆透視變換來(lái)確定道路的彎曲度,然后計(jì)算智能車(chē)輛偏離車(chē)

13、道中心線的距離,判斷車(chē)道線偏離情況,最后通過(guò)跟蹤逆透視變換得到的道路平行線,從而實(shí)現(xiàn)道路車(chē)道線的追蹤。該系統(tǒng)在實(shí)驗(yàn)開(kāi)始的時(shí)候進(jìn)行了道路結(jié)構(gòu)化假設(shè),在很大程度上提高了車(chē)道線檢測(cè)識(shí)別的魯棒性。 SCARF系統(tǒng):該系統(tǒng)利用雙目視覺(jué)原理,在圖像中設(shè)置的梯形窗口內(nèi),利用霍夫變換來(lái)估計(jì)車(chē)道線可能出現(xiàn)的ROI區(qū)域,然后反投影到真實(shí)的道路平面,通過(guò)控制車(chē)輛的方向沿著ROI中心線方向行駛來(lái)確保車(chē)輛不會(huì)偏離車(chē)道線。 ALVINN系統(tǒng):采用基于BP神經(jīng)網(wǎng)絡(luò)的方法,通過(guò)對(duì)不同天氣狀況下的車(chē)道線特征進(jìn)行訓(xùn)練,來(lái)得到一個(gè)參數(shù)訓(xùn)練模型,從而根據(jù)訓(xùn)練得到的參數(shù)模型來(lái)預(yù)測(cè)不同天氣狀況下的車(chē)道線位置。 1.2.2 國(guó)內(nèi)研究

14、現(xiàn)狀 今年來(lái),我國(guó)在該領(lǐng)域也做了一些積極的探索和研究,但是與其他發(fā)達(dá)國(guó)家相比起步比較晚,因此,國(guó)內(nèi)在該領(lǐng)域的研究和探索還存在一定的改進(jìn)空間。國(guó)內(nèi)的研究成果主要有以下幾個(gè): 清華大學(xué)計(jì)算機(jī)智能技術(shù)與系統(tǒng)國(guó)家重點(diǎn)實(shí)驗(yàn)室研制的THMR系統(tǒng):該項(xiàng)目采用的道路模型是直線模型,利用多窗口的雙閾值二值化進(jìn)行特征提取,在后續(xù)處理中采用增強(qiáng)轉(zhuǎn)移網(wǎng)絡(luò)來(lái)完成,在算法實(shí)時(shí)性方面做得比較好,但由于道路模型首先,因此只能對(duì)直線車(chē)道進(jìn)行檢測(cè)和識(shí)別。 吉林工業(yè)大學(xué)研制的JUTIV系統(tǒng):該項(xiàng)目采用3D回旋曲線為道路模型,用最大類(lèi)方差方法來(lái)設(shè)定閾值提取道路邊緣,利用隨即采用的LmedSquare方法進(jìn)行車(chē)道線曲線擬合,同時(shí)

15、結(jié)合了駕駛員穩(wěn)態(tài)預(yù)瞄原理,建立了車(chē)道線擬合的預(yù)測(cè)區(qū)域,并進(jìn)一步利用多傳感器信息融合技術(shù)對(duì)復(fù)雜環(huán)境下的車(chē)道線檢測(cè)識(shí)別與跟蹤等關(guān)鍵技術(shù)做了系統(tǒng)研究。 3.1 論文主要內(nèi)容 一種車(chē)道線識(shí)別方法,包括以下步驟:從在繪有不同車(chē)道標(biāo)志圖案 的車(chē)道上行駛的汽車(chē)中,通過(guò)圖像傳 感器拍攝汽車(chē)前方視野; 從上 述步驟中拍攝的圖像中選取汽車(chē)左、右車(chē)道邊界的數(shù)據(jù),通過(guò)將對(duì)所述選取的車(chē)道邊界數(shù)據(jù)進(jìn)行處理,完成車(chē)道線的識(shí)別,確定車(chē)輛所在區(qū)域的車(chē)道線類(lèi)型。 論文中主要分以下部分對(duì)車(chē)道線識(shí)別算法進(jìn)行分析和描述: 第2章:介紹了車(chē)道線的基本知識(shí),分析討論了車(chē)道線預(yù)處理的過(guò)程和用到的相關(guān)算法; 第3章:具體分析霍夫變換

16、算法,并根據(jù)圓和橢圓的性質(zhì)對(duì)霍夫變換算法進(jìn)行改進(jìn) 第4章:在對(duì)所使用的算法和車(chē)道線特征進(jìn)行分析綜合的基礎(chǔ)上,使用C語(yǔ)言結(jié)合OpenCV圖像處理庫(kù)編寫(xiě)程序?qū)崿F(xiàn)算法,并對(duì)算法進(jìn)行驗(yàn)證,得到最終的車(chē)道線識(shí)別結(jié)果。 第2章 車(chē)道線的預(yù)處理 預(yù)處理是車(chē)道線識(shí)別過(guò)程中一個(gè)十分重要的一環(huán)。良好的預(yù)處理能使排除各種干擾,使運(yùn)算量大大下降,大大提高車(chē)道線識(shí)別的實(shí)時(shí)性和準(zhǔn)確性,反之,則不僅會(huì)使識(shí)別效率降低,甚至導(dǎo)致得到錯(cuò)誤的結(jié)果。 預(yù)處理的過(guò)程主要分為車(chē)道線的設(shè)置感興趣區(qū)域、平滑濾波、閾值分割、邊緣檢測(cè)。本章首先簡(jiǎn)要介紹車(chē)

17、道線的基本知識(shí),然后對(duì)感興趣區(qū)域的原理和應(yīng)用進(jìn)行分析,并針對(duì)車(chē)道線的具體特征和要得到的目標(biāo)選擇合適的預(yù)處理方法,進(jìn)而對(duì)每種預(yù)處理過(guò)程中的算法進(jìn)行分析討論,得出適合的預(yù)處理算法。 2.1 認(rèn)識(shí)車(chē)道線 2.1.1 車(chē)道線的基本分類(lèi) 車(chē)道分界線是用來(lái)分隔同方向行駛的交通流的交通標(biāo)志線,凡同方向車(chē)行道有兩條或兩條以上車(chē)道時(shí),均應(yīng)劃車(chē)道分界線。車(chē)道分界線有兩種,即車(chē)道分界虛線和導(dǎo)向車(chē)道分界實(shí)線。車(chē)道分界虛線,在保證安全的原則下,準(zhǔn)許車(chē)輛越線超車(chē)或變更車(chē)道行駛;導(dǎo)向車(chē)道分界實(shí)線,不準(zhǔn)車(chē)輛越線或變更車(chē)道。 圖(2-1)所示為各種車(chē)道線: 圖2-1 各種車(chē)道線 2.1.2 車(chē)道

18、線的標(biāo)劃區(qū)分 白色虛線:劃于路段中時(shí),用以分隔同向行駛的交通流或作為行車(chē)安全距離識(shí)別線;劃于路口時(shí),用以引導(dǎo)車(chē)輛行進(jìn); 白色實(shí)線:劃于路段中時(shí),用以分隔同向行駛的機(jī)動(dòng)車(chē)和非機(jī)動(dòng)車(chē)或指示車(chē)行道線;劃于路口時(shí),用作導(dǎo)向車(chē)道線或停車(chē)線; 黃色虛線:劃于路段中時(shí),用以分隔對(duì)向行駛的交通流,劃于路側(cè)或緣石上時(shí),用以禁止車(chē)輛長(zhǎng)時(shí)在路邊停放。 黃色實(shí)線:劃于路段中時(shí),用以分隔對(duì)向行駛的交通流;劃于路側(cè)或緣石上時(shí),用以禁止車(chē)輛長(zhǎng)時(shí)或臨時(shí)在路邊停放。 雙白虛線:劃于路口時(shí)作為減速讓行線;劃于路段中時(shí),作為行車(chē)方向隨時(shí)間改變之可變車(chē)道線; 雙黃實(shí)線:劃于路段中時(shí),用以分隔對(duì)向行駛的交通流; 黃色虛實(shí)

19、線:劃于路段中時(shí),用以分隔對(duì)向行駛的交通流。黃色實(shí)線一側(cè)禁止車(chē)輛超車(chē)、跨越或回轉(zhuǎn),黃色虛線一側(cè)在保證安全的情況下準(zhǔn)許車(chē)輛超車(chē)、跨越或回轉(zhuǎn); 雙白實(shí)線:劃于路口時(shí),作為停車(chē)讓行線。 2.1.3 車(chē)道線的基本形狀 通過(guò)對(duì)各種車(chē)道線的比較,我們可以法線,車(chē)道線基本分為兩種形狀:直線和圓,其他的形狀還包括三角形等,但它們的基本組成元素仍然是直線,所以我們同樣能對(duì)其運(yùn)用直線的方式處理。但是必須注意的是,由于圖像采集設(shè)備與道路之間有一定的傾角,所以道路中的圓出現(xiàn)在圖像中時(shí)將會(huì)變?yōu)闄E圓。 通過(guò)將基本的識(shí)別目標(biāo)固定在直線和橢圓的范圍中,我們便將車(chē)道識(shí)別的問(wèn)題抽象為直線和橢圓的識(shí)別,研究方向進(jìn)一步固定。

20、 2.2 感興趣區(qū)域 感興趣區(qū)域簡(jiǎn)稱為ROI(region of interest)是將圖像中的重要區(qū)域進(jìn)行標(biāo)記,隨后的各種算法和分析將主要針對(duì)ROI。這樣做的好處是不僅使處理的數(shù)據(jù)量變少,而且也排除了非重點(diǎn)區(qū)域的潛在干擾。 觀察采集到的圖像,如圖所示,我們可以發(fā)現(xiàn),圖像中的上部是天空和較遠(yuǎn)處的信息,這一部分信息是不需要的,而且可能會(huì)對(duì)處理結(jié)果造成干擾。所以,在圖像的處理中我們應(yīng)當(dāng)適當(dāng)選取ROI,對(duì)于以后的處理有莫大裨益。 如圖(2-2)所示,其中下部較暗的區(qū)域即為我們的感興趣區(qū)域: 圖2-2 感興趣區(qū)域 2.3 平滑濾波 各類(lèi)圖像處理系統(tǒng)在圖像的采集、獲取、傳送

21、和轉(zhuǎn)換(如成像、復(fù)制掃描、傳輸以及顯示等)過(guò)程中,均處在復(fù)雜的環(huán)境中,光照、電磁多變,所有的圖像均不同程度地被可見(jiàn)或不可見(jiàn)的噪聲干擾。噪聲源包括電子噪聲、光子噪聲、斑點(diǎn)噪聲和量化噪聲。如果信噪比低于一定的水平,噪聲逐漸變成可見(jiàn)的顆粒形狀,導(dǎo)致圖像質(zhì)量的下降。除了視覺(jué)上質(zhì)量下降,噪聲同樣可能掩蓋重要的圖像細(xì)節(jié),因此,在對(duì)采集到的原始圖像做進(jìn)一步的處理時(shí),需要對(duì)圖像進(jìn)行必要的濾波降噪處理。 2.3.1 均值濾波 均值濾波是典型的線性濾波算法,它是指在圖像上對(duì)目標(biāo)像素給一個(gè)模板,該模板包括了其周?chē)呐R近像素,模板大小一般為33、55、或77 ,用其臨近區(qū)域像素值的均值來(lái)替代目標(biāo)像素。 均值濾波

22、的原理如圖(2-3)所示,其中a)圖中1-8為像素點(diǎn)的臨近區(qū)域,b)圖為的權(quán)系數(shù)矩陣: a) b) 圖2-3 均值濾波原理 均值濾波方法如公式(2-1)所示: (2-1) 均值濾波具有算法簡(jiǎn)單,計(jì)算速度快的優(yōu)點(diǎn),但它的缺點(diǎn)也很明顯:降低噪聲 的同時(shí)使圖像產(chǎn)生模糊,特別是景物的邊緣和細(xì)節(jié)部分。 2.3.2 中值濾波 中值濾波是一種非線性數(shù)字濾波器技術(shù),經(jīng)常用于去除圖像或者其它信號(hào)中的噪聲。 中值濾波的思想是將一個(gè)像素替換為其臨近區(qū)域的所有像素的中值,臨近區(qū)域一般選以此像素為中心的奇數(shù)大小的窗口,常用的為33、55、77等。 中值濾波的計(jì)

23、算方法如公式(2-2)所示: (2-2) 中值濾波法對(duì)消除椒鹽噪聲非常有效,在光學(xué)測(cè)量條紋圖象的相位分析處理方法中有特殊作用,但在條紋中心分析方法中作用不大. 中值濾波在圖像處理中,常用于保護(hù)邊緣信息,是經(jīng)典的平滑噪聲的方法。 圖(2-4)為中值濾波效果圖: 圖2-4 中值濾波效果圖 2.3.3 高斯濾波 高斯濾波是一種線性平滑濾波,適用于消除高斯噪聲,廣泛應(yīng)用于圖像處理的減噪過(guò)程。通俗的講,高斯濾波就是對(duì)整幅圖像進(jìn)行加權(quán)平均的過(guò)程,每一個(gè)像素點(diǎn)的值,都由其本身和鄰域內(nèi)的其他像素值經(jīng)過(guò)加權(quán)平均后得到。高斯濾波的思想是:用一個(gè)模板(或稱卷積、掩模)掃描圖

24、像中的每一個(gè)像素,用模板確定的鄰域內(nèi)像素的加權(quán)平均灰度值去替代模板中心像素點(diǎn)的值。 高斯濾波的效果圖如圖2-5所示: 圖2-5 高斯濾波效果圖 2.3.4 平滑濾波總結(jié) 通過(guò)比較以上三種濾波方法,可以看出三者的區(qū)別和適用范圍。均值濾波算法簡(jiǎn)單,但會(huì)造成圖像的模糊,中值濾波對(duì)椒鹽噪聲有非常好的去除效果,并且能夠保存邊緣信息,高斯濾波則對(duì)高斯噪聲具有很好的處理效果。 圖像邊緣的信息對(duì)于本論文中的車(chē)道線識(shí)別算法有重要作用,所以在選擇濾波算法上應(yīng)優(yōu)先選用中值濾波和高斯濾波。 2.4 二值化 2.4.1 二值化的基本概念 圖像的二值化就是將一副灰度圖像轉(zhuǎn)換為二值圖像,

25、例如設(shè)定一個(gè)閾值K,像素值小于K的置為0,反之則置為255,如公式(2-3)所示: (2-3) 2.4.2 大津法自適應(yīng)閾值分割 雖然通過(guò)給定一個(gè)閾值能實(shí)現(xiàn)圖像的二值化,但在很多時(shí)候并不能給出一個(gè)合適的閾值,為了解決這個(gè)問(wèn)題,人們提出了許多自適應(yīng)的閾值分割方法,以適應(yīng)不同灰度分布的圖像,其中應(yīng)用廣泛的有大津法自適應(yīng)閾值等。 大津法也叫最大類(lèi)間方差法,是一種自適應(yīng)的閾值確定的方法,簡(jiǎn)稱OTSU。它是按圖像的灰度特性,將圖像分成背景和目標(biāo)2部分。背景和目標(biāo)之間的類(lèi)間方差越大,說(shuō)明構(gòu)成圖像的2部分的差別越大,當(dāng)部分目標(biāo)錯(cuò)分為背景或部分背景錯(cuò)分為目標(biāo)都會(huì)導(dǎo)致2部分差別變小。因此,使類(lèi)間

26、方差最大的分割意味著錯(cuò)分概率最小。對(duì)于圖像,前景(即目標(biāo))和背景的分割閾值記作T,屬于前景的像素點(diǎn)數(shù)占整幅圖像的比例記為,其平均灰度;背景像素點(diǎn)數(shù)占整幅圖像的比例為,其平均灰度為。圖像的總平均灰度記為,類(lèi)間方差記為。假設(shè)圖像的背景較暗,并且圖像的大小為,圖像中像素的灰度值小于閾值T的像素個(gè)數(shù)記作,像素灰度大于閾值T的像素個(gè)數(shù)記作,則有 (2-4) (2-5) (2-6) (2-7) (2-8) (2-9) 經(jīng)計(jì)算后,得到等價(jià)公式(2-10): (2-10)

27、 采用遍歷的方法得到使類(lèi)間方差最大的閾值T,即為所求。 大津法閾值分割如圖2-6所示: 圖2-6 大津法自適應(yīng)閾值分割 2.5 邊緣提取 圖象的邊緣是指圖象局部區(qū)域亮度變化顯著的部分,該區(qū)域的灰度剖面一般可以看作是一個(gè)階躍,既從一個(gè)灰度值在很小的緩沖區(qū)域內(nèi)急劇變化到另一個(gè)灰度相差較大的灰度值。圖象的邊緣部分集中了圖象的大部分信息,圖象邊緣的確定與提取對(duì)于整個(gè)圖象場(chǎng)景的識(shí)別與理解是非常重要的,同時(shí)也是圖象分割所依賴的重要特征,邊緣檢測(cè)主要是圖象的灰度變化的度量、檢測(cè)和定位。 2.5.1 Sobe

28、l算子 Sobel算子主要用作邊緣檢測(cè)。在技術(shù)上,它是一離散性差分算子,用來(lái)運(yùn)算圖像亮度函數(shù)的梯度之近似值。在圖像的任何一點(diǎn)使用此算子,將會(huì)產(chǎn)生對(duì)應(yīng)的梯度矢量或是其法矢量。 Sobel算子包含兩個(gè)的矩陣,如圖(2-7)所示,用這兩個(gè)矩陣與圖像進(jìn)行卷積,便可分別得到橫向及縱向的亮度差分近似值。 如果以A代表原始圖像,Gx及Gy分別代表經(jīng)橫向及縱向邊緣檢測(cè)的圖像,其計(jì)算方法如公式(2-11)和(2-12): (2-11) (2-12) 圖像的每一個(gè)像素的橫向及縱向梯度值可用公式(2-13)來(lái)計(jì)算梯度的大小。 (2-13) 通常,

29、也使用一個(gè)近似計(jì)算的公式(2-14)來(lái)提高計(jì)算速度: (2-14) 可用以下公式計(jì)算梯度方向: (2-15) 如果角度Θ等于零,即代表圖像該處擁有縱向邊緣,左方較右方暗。 Sobel算子邊緣提取效果如圖(2-8)所示,a)圖為源圖像,b)圖為X方向邊緣檢測(cè)結(jié)果,c)圖為Y方向邊緣檢測(cè)結(jié)果 c) b) a) 圖2-8 Sobel算子邊緣檢測(cè)效果圖 2.5.2 Canny算子 Canny邊緣檢測(cè)算子是一個(gè)多級(jí)邊緣檢測(cè)算法,它的目標(biāo)為實(shí)現(xiàn)最優(yōu)的邊緣檢測(cè)算法。 Canny算子的處理過(guò)程分為幾個(gè)步驟,首先要對(duì)輸入圖像進(jìn)行高斯平

30、滑處理,然后使用一個(gè)二維一階導(dǎo)數(shù)算子作用與平滑處理后的圖像,用于突出圖像中高一空間導(dǎo)數(shù)的圖像區(qū)域,這樣我們就從原始圖像生成了圖像中每個(gè)點(diǎn)亮度梯度圖以及亮度梯度的方向。隨后Canny跟蹤這些亮度梯度并且保留局部最大值而把其他值設(shè)為0,即非極大值抑制,最后使用雙閾值算法檢測(cè)和連接邊緣。 對(duì)圖(2-8)中圖像進(jìn)行Canny邊緣檢測(cè)效果如圖(2-9)所示: 圖2-9 Canny算子邊緣檢測(cè)效果圖 2.5.3 Sobel算子和Canny算子的比較 Sobel算子通過(guò)對(duì)圖像進(jìn)行卷積運(yùn)算,算法簡(jiǎn)單且計(jì)算速度相對(duì)較快,缺點(diǎn)是Sobel算子并沒(méi)有將圖像的主題與背景嚴(yán)格地區(qū)分開(kāi)來(lái),換言之

31、就是Sobel算子并沒(méi)有基于圖像灰度進(jìn)行處理,由于Sobel算子并沒(méi)有嚴(yán)格地模擬人的視覺(jué)生理特征,所以提取的圖像輪廓有時(shí)并不能令人滿意。 算子是一個(gè)具有濾波增強(qiáng)檢測(cè)的多階段的優(yōu)化算子,在進(jìn)行處理前, Canny算子先利用高斯平滑濾波器來(lái)平滑圖像以除去噪聲,Canny分割算法采用一階偏導(dǎo)的有限差分來(lái)計(jì)算梯度幅值和方向,在處理過(guò)程中,Canny算子還將經(jīng)過(guò)一個(gè)非極大值抑制的過(guò)程,最后Canny算子還采用兩個(gè)閾值來(lái)連接邊緣??梢钥闯鯟anny算子的處理過(guò)程比較復(fù)雜,但它的處理結(jié)果是比較好的。 第3章 Hough變換直線和橢圓的檢測(cè) 3.1 Hough變換直

32、線檢測(cè) 3.1.1 Hough變換直線檢測(cè)的基本原理 Hough變換的核心思想是將圖像空間轉(zhuǎn)化到參數(shù)空間進(jìn)行分析。 在平面直角坐標(biāo)系中,一條直線可以用方程來(lái)表示,其中和是參數(shù),分別是斜率和截距。過(guò)某一點(diǎn)的所有直線的參數(shù)都會(huì)滿足方程,即點(diǎn)確定了一族直線。方程在參數(shù)平面上是一條直線。這樣,圖像平面上的一個(gè)前景像素點(diǎn)就對(duì)應(yīng)到參數(shù)平面上的一條直線,同理,直線上的其他點(diǎn)也對(duì)應(yīng)一條參數(shù)空間的直線,最終,在參數(shù)空間中的這些直線將會(huì)交于一點(diǎn),很顯然,這個(gè)點(diǎn)就是。 但是方程無(wú)法表示這樣的直線(斜率無(wú)窮大),所以在實(shí)際應(yīng)用中使用直線的法線式方程來(lái)表示直線: 此時(shí),圖像空間中的一點(diǎn)將對(duì)應(yīng)參數(shù)空間的一條

33、正弦曲線,這樣圖像空間中的一條直線就對(duì)應(yīng)參數(shù)空間中的一點(diǎn)。如圖(3-1)所示: 圖3-1 直線上點(diǎn)在參數(shù)空間的映射 圖(3-2)為霍夫變換直線檢測(cè)的效果(已設(shè)置感興趣區(qū)域): 圖3-2 霍夫變換直線檢測(cè) 3.1.2 Hough變換的缺陷和改進(jìn) Hough變換具有顯而易見(jiàn)的優(yōu)點(diǎn),但它也有一些不可忽視的缺點(diǎn): 1、運(yùn)算量大。傳統(tǒng)的Hough變換需要對(duì)每個(gè)點(diǎn)進(jìn)行計(jì)算,不僅運(yùn)算量大,而且會(huì)產(chǎn)生大量冗余數(shù)據(jù),并且運(yùn)用Hough變換進(jìn)行圓或其他圖像的檢測(cè)時(shí),由于參數(shù)的增多(如圓需要3個(gè)參數(shù)),計(jì)算量將會(huì)急劇增加,所以,Hough變換的實(shí)時(shí)性不高

34、; 2、雖然Hough變換能得到直線的參數(shù)方程,但它無(wú)法確定直線的起止點(diǎn),即無(wú)法確定直線是否是連續(xù)的; 3、圖像中的噪聲點(diǎn)會(huì)對(duì)Hough變換的結(jié)果產(chǎn)生較大的影響。 針對(duì)以上缺陷,需要對(duì)Hough變換進(jìn)行一定的改進(jìn),以更好地完成期望的工作: 1、對(duì)圖像進(jìn)行合適的預(yù)處理,盡力排除噪聲點(diǎn)的干擾; 2、對(duì)圖像進(jìn)行邊緣提取、區(qū)域分割等,提取出有用的信息,再根據(jù)統(tǒng)計(jì)學(xué)的一些原理來(lái)應(yīng)用Hough變換,減少Hough變換的運(yùn)算量 3、對(duì)于Hough變換以上缺陷中的第二點(diǎn),可以設(shè)計(jì)特殊的數(shù)據(jù)結(jié)構(gòu)記錄Hough變換過(guò)程中的數(shù)據(jù),從而解決探測(cè)直線等起止點(diǎn)的問(wèn)題。 3.2 Hough變換圓檢測(cè) 3

35、.2.1 Hough變換圓檢測(cè)的基本原理 Hough變換直線檢測(cè)中是將圖像空間中的一條直線映射為參數(shù)空間中的一個(gè)點(diǎn),對(duì)圓的檢測(cè)同樣如此,這也是Hough變換的核心思想所在。但是直線檢測(cè)需要兩個(gè)參數(shù),而圓檢測(cè)需要三個(gè)參數(shù)(為圓心坐標(biāo),r為圓的半徑)。 在平面直角坐標(biāo)系中,圓用方程來(lái)表示,將圓上的一點(diǎn)映射到參數(shù)空間,對(duì)應(yīng)的方程為由于圓的半徑r不確定,所以參數(shù)空間是一個(gè)三維空間,每一點(diǎn)在參數(shù)空間映射為一個(gè)圓錐,如圖(3-3)所示: 圖3-3 圓上一點(diǎn)在參數(shù)空間的映射 因此,Hough變換圓檢測(cè)的計(jì)算量會(huì)是相當(dāng)大的,這是傳統(tǒng)Hough變換最大的缺陷之一。 3.2.2 對(duì)hou

36、gh變換圓檢測(cè)算法的改進(jìn) 由于傳統(tǒng)的Hough變換圓檢測(cè)算法計(jì)算量太大,所以需要對(duì)其進(jìn)行改進(jìn)以增強(qiáng)其實(shí)時(shí)性。 對(duì)于圓,有如下性質(zhì):圓上一點(diǎn)的法線必過(guò)圓心。根據(jù)這一性質(zhì),隨機(jī)選取圓上若干各點(diǎn),求得其法線,法線的交點(diǎn)便是圓心,進(jìn)而也可以很容易地計(jì)算出圓的半徑。 那么如何求一個(gè)點(diǎn)的法線呢?對(duì)于圖像中的一個(gè)點(diǎn),其法線方向便是其梯度變換最大的方向,且法線與切線呈垂直關(guān)系,那么我們可以先求一點(diǎn)的切線,進(jìn)而得到這一點(diǎn)的法線。 3.2.3 最小二乘法求曲線上一點(diǎn)的切線 最小二乘法(又稱最小平方法)是一種數(shù)學(xué)優(yōu)化技術(shù)。它通過(guò)最小化誤差的平方和尋找數(shù)據(jù)的最佳匹配函數(shù)。利用最小二乘法可以簡(jiǎn)便地求得未知的數(shù)

37、據(jù),并使得這些求得的數(shù)據(jù)與實(shí)際數(shù)據(jù)之間誤差的平方和為最小。最小二乘法還可用于曲線擬合等初中應(yīng)用領(lǐng)域。 假設(shè)圖像中存在處于一條直線附近的幾個(gè)點(diǎn),那么設(shè)這條直線的方程為: 為直線斜率,為截距。 為求得和,根據(jù)最小二乘法原理,將實(shí)測(cè)值與的離差的平方和最小作為最優(yōu)判據(jù)。 令 (3-1) 當(dāng)最小時(shí),分別對(duì)和求偏導(dǎo),令這兩個(gè)偏導(dǎo)數(shù)等于0: (3-2) (3-3) 兩個(gè)偏導(dǎo)數(shù)等于0,即得: (3-4) (3-5) 將和的結(jié)果代入原直線方程,即得擬合所得的直線方程為: n X k Y X X X n Y

38、X Y X n Y i i i i i i i i - + - - = 2 2 ) ( 同樣,在圖像中圓上某一點(diǎn)的切線方程也可用同樣的方法求得。 雖然最小二乘法能比較方便的得出圓上一點(diǎn)的切線,但要知道其正確性與點(diǎn)的樣本大小有很大關(guān)系,如果樣本太小,則計(jì)算誤差變大,很可能得不到正確的結(jié)果,若樣本太大,則計(jì)算量也將隨之增大,所以樣本大小的選取是一個(gè)不可忽視的問(wèn)題。 圖(3-4)展示了根據(jù)最小二乘法原理得到的曲線上一點(diǎn)的切線: 圖3-4 最小二乘法得到曲線上一點(diǎn)的切線 3.3 Hough變換橢圓檢測(cè)

39、根據(jù)前面的分析,道路車(chē)道線經(jīng)過(guò)圖像采集設(shè)備采集后,其原本的圓將會(huì)變化為橢圓,所以我們更應(yīng)該關(guān)注橢圓的檢測(cè)。 根據(jù)Hough變換圓檢測(cè)的算法,進(jìn)一步討論橢圓的檢測(cè),由于橢圓上一點(diǎn)的法線并不過(guò)橢圓的中心,所以上面的圓檢測(cè)算法不能直接用于橢圓的檢測(cè),需要進(jìn)一步的改進(jìn)。根據(jù)橢圓的性質(zhì):橢圓上兩點(diǎn)法線的交點(diǎn)與這兩點(diǎn)中點(diǎn)所確定的直線過(guò)橢圓中心。我們自然而然便能對(duì)圓檢測(cè)算法加以改進(jìn)以適應(yīng)橢圓的檢測(cè)。 橢圓檢測(cè)的過(guò)程描述為: 第一步:在目標(biāo)圖形上選取隨機(jī)的三個(gè)點(diǎn)分別記為、和,并求得他們各自的切線,分別記為、、和他們兩兩間的中點(diǎn),分別記為、和(即為和的中點(diǎn)); 第二步:找到這三條切線兩兩相交的交點(diǎn),分別

40、記為、和(即為和的交點(diǎn),以此類(lèi)推); 第三步:將對(duì)應(yīng)的交點(diǎn)與中點(diǎn)連接,即與、與、與,將得到的直線分別記為、和; 第四步:求得這三條連線兩兩相交的交點(diǎn),根據(jù)一定的距離準(zhǔn)則,判斷這三點(diǎn)是否足夠接近,如果足夠接近,說(shuō)明此時(shí)的形狀可能是一個(gè)橢圓,否則則說(shuō)明不是; 第五步:在目標(biāo)圖形上另選一點(diǎn),求其切線,并將其與其他三點(diǎn)中的一點(diǎn)重新配對(duì),得到兩切線交點(diǎn)與中點(diǎn)的直線方程; 第六步:根據(jù)同樣的距離準(zhǔn)則,判斷新得到的直線與其他直線的交點(diǎn)是否足夠接近,如果是,那么目標(biāo)圖形是一個(gè)橢圓,如果不是,則說(shuō)明目標(biāo)圖形不是橢圓。 圖(3-5)為根據(jù)此方法對(duì)橢圓進(jìn)行檢測(cè)的結(jié)果: 圖3-5 橢圓檢測(cè)

41、 由圖可以看出,該方法能正確的檢測(cè)出圖像中的橢圓,說(shuō)明了此方法的正確性和可靠性。 第4章 車(chē)道線的識(shí)別 綜合分析前面章節(jié)中的處理過(guò)程和算法,總結(jié)出車(chē)道線識(shí)別的流程,如圖(4-1)所示: 圖4-1 車(chē)道線識(shí)別流程圖 在Linux平臺(tái)上,使用C語(yǔ)言和Gtk+結(jié)合OpenCV圖像處理庫(kù)編寫(xiě)程序,進(jìn)行車(chē)道線的識(shí)別,如圖(4-2)所示: 圖4-2 車(chē)道線識(shí)別程序界面 車(chē)道線的識(shí)別結(jié)果如圖(4-3)所示: 圖4-3 車(chē)道線的識(shí)別結(jié)果 從識(shí)別的結(jié)果可以看出,算法能

42、對(duì)車(chē)道線進(jìn)行準(zhǔn)確的識(shí)別,達(dá)到了預(yù)期的目的和理想的效果。 結(jié)論 從以上的算法分析和實(shí)驗(yàn)結(jié)果,可以看出,本論文中的算法能對(duì)車(chē)道線較好較準(zhǔn)確的進(jìn)行識(shí)別,算法的主要優(yōu)點(diǎn)有: 1、算法的準(zhǔn)確性高。相比傳統(tǒng)的識(shí)別算法,本論文中的算法經(jīng)過(guò)優(yōu)化處理,提高了識(shí)別的準(zhǔn)確性; 2、算法的實(shí)時(shí)性好,特別是經(jīng)過(guò)對(duì)Hough變換等算法的一定的改進(jìn),大大減少了計(jì)算量,提高了計(jì)算速度; 3、算法能檢測(cè)多種車(chē)道線,適應(yīng)范圍廣; 4、算法結(jié)構(gòu)清晰,魯棒性好,方便擴(kuò)展和改進(jìn); 當(dāng)然,在實(shí)際的應(yīng)用中也發(fā)現(xiàn)了一些問(wèn)題,主要有: 1、對(duì)于復(fù)雜路況和天氣條件欠佳時(shí),算法的

43、適應(yīng)性還不夠高; 2、對(duì)于一些現(xiàn)實(shí)中存在的干擾因素如馬路沿等,不能進(jìn)行有效的排除。 這些存在的問(wèn)題,也指出了下一階段改進(jìn)的方向和思路,以后的時(shí)間里還有更多的工作要做。 對(duì)于未來(lái),隨著人工智能、機(jī)器學(xué)習(xí)等的不斷發(fā)展,將這些技術(shù)應(yīng)用于車(chē)道識(shí)別中,必將能極大的提高車(chē)道線識(shí)別的精確性和適應(yīng)性,并且伴隨著智能汽車(chē)的進(jìn)一步發(fā)展,新的技術(shù)不斷得到應(yīng)用,車(chē)道線的識(shí)別技術(shù)一定會(huì)迎來(lái)一個(gè)大的發(fā)展。特別是國(guó)內(nèi),隨著中國(guó)的科技水平不斷提高,市場(chǎng)需要持續(xù)增大,對(duì)于車(chē)道線的自動(dòng)識(shí)別的需求也將更加迫切。所以未來(lái)是光明的,但更需要我們腳踏實(shí)地,不斷取得新的突破。 參考文獻(xiàn): [1]魯曼,

44、蔡自興,李儀.道路區(qū)域分割的車(chē)道線檢測(cè)方法[J].智能系統(tǒng)學(xué)報(bào),2010,5(6):505-509 [2]金輝,吳樂(lè)林,陳慧巖,龔建偉 .結(jié)構(gòu)化道路車(chē)道線識(shí)別的一種改進(jìn)算法[J].北京理工大學(xué)學(xué)報(bào),2007,27(6):502-505 [3]朱桂英,張瑞林 .基于Hough變換的圓檢測(cè)方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(6) [4]郭磊,王建強(qiáng),李克強(qiáng).基于點(diǎn)集優(yōu)化和干擾點(diǎn)模糊化的車(chē)道線識(shí)別[J].中國(guó)機(jī)械工程,18(15):1872-1876 [5]楊喜寧,段建民,高德芝,鄭榜貴.基于改進(jìn)Hough變換的車(chē)道線檢測(cè)技術(shù)[J].計(jì)算機(jī)測(cè)量與控制,2010,18(2):292-

45、298 [6]莫建文,范楷,張順嵐.基于擴(kuò)散性搜索區(qū)域的車(chē)道線檢測(cè)與跟蹤算法[J].桂林電子科技大學(xué)學(xué)報(bào),2011,31(6):464-468 [7]王曉云,王永忠.基于線性雙曲線模型的車(chē)道線檢測(cè)算法[J].杭州電子科技大學(xué)學(xué)報(bào),2010,30(6):64-67 [8]徐巖,雷濤.基于形態(tài)學(xué)方法的車(chē)道線檢測(cè)算法研究[J].鐵道學(xué)報(bào),2009,31(1):107-110 [9]秦開(kāi)懷,王海潁,鄭輯濤.一種基于Hough變換的圓和矩形的快速檢測(cè)方法[J].中國(guó)圖像圖形學(xué)報(bào),2010,15(1):110-115 [10]段汝嬌,趙偉,黃松嶺,稱建業(yè).一種基于改進(jìn)Hough變換的直線快速檢測(cè)

46、算法[J].儀器儀表學(xué)報(bào),2010,31(12):2774-2780 [11]李若皓,丁冬花.一種基于掃描線的車(chē)道線識(shí)別算法[J].微計(jì)算機(jī)信息,2008,24(6):244-246 [12]劉富強(qiáng),張姍姍,朱文紅,李志鵬.一種基于視覺(jué)的車(chē)道線檢測(cè)與跟蹤算法[J],2010,38(2):223-229 [13]黃永林,葉玉堂,陳鎮(zhèn)龍,喬鬧生.一種新的快速Hough變換圓檢測(cè)方法[J],2010,24(9):837-841 [14]陳洪波,王強(qiáng),徐曉蓉,陳真誠(chéng),湯井田.用改進(jìn)的Hough變換檢測(cè)交通標(biāo)志圖像的直線特征[J],2009,17(5):1111-1118 [15]K ast

47、rinaki V , Zervakis M , K alait zakis K . A survey of video pr oces sing t echniques f or t raf fi c appli cat ions [J] .Image and programming f or V is ion Com put ing, 2003, 21( 1) : 359. [16]Lee J W. A machin e vi sion s yst em f or lane depart u re det ect ion [J] . C om put er V ision Image U

48、 nderst , 2002, 86 [17]Isard M A , Blake. Condensat ion con diti on al den sit y propagat ion f or vi sual track ing [J] . Int ern at ional Journal of Computer Vision,1998,29(1):5 [18]Adrian Kaehler, Dr. Gary Rost Bradski.Learnint OpenCV[M].ORELILY,2008 [19]D.Pomerleau,RALPH:Rapidly Adapting La

49、teral Position Handler,Proc.IEEE Symposium on Intelligent Vehicles,Detroit,USA,1995:506-511 [20]M.Bertozzi and A.Broggi.GOLD:A Parallel Real Time Stereo Vision System for Generic Obstacle and Lane Detection,IEEE Trans.On Image Proc.1998,7(1):62-81 [21]You Feng.Intelligent vehicle automatically cha

50、nge the way and automatic control method of overtaking[D].JiLin university.2005:44-46 [22]Guan xin.High-speed car lane departure warning system algorithms.Jilin university Phd.paper.2004:12-23 致謝 本論文的工作實(shí)在景文博老師的悉心指導(dǎo)下完成的。景老師嚴(yán)謹(jǐn)?shù)膶W(xué)風(fēng)、教書(shū)育人的敬業(yè)精神和對(duì)事業(yè)的執(zhí)著追求,對(duì)我影響至深,是我受益匪淺。在算法的研究過(guò)程中,景老師給了我特別大的幫助,

51、如算法的選擇、圖像的選取和相關(guān)的參考資料等,節(jié)省了我很多時(shí)間,也讓我的理論知識(shí)得到了極大的提高。在此。我向景老師表達(dá)我最誠(chéng)摯的感謝和致意! 同時(shí),也感謝Debian Linux和OpenCV社區(qū)給我提供的幫助,對(duì)于OpenCV編程環(huán)境的搭建以及OpenCV在Linux操作系統(tǒng)上的應(yīng)用,他們給我提供了許多寶貴的意見(jiàn),在此,為他們樂(lè)于分享、樂(lè)于助人的精神獻(xiàn)上我深深地感謝。 當(dāng)然,也要感謝學(xué)校提供給我們的便利的學(xué)習(xí)條件,特別是圖書(shū)館提供給我們的便利的查閱資料的條件,讓我接觸到了許多有用的資料。 最后,感謝我的朋友們,在我迷惑不解時(shí)和我討論問(wèn)題幫我找到思路,謝謝他們的支持和幫助! 附錄1

52、 車(chē)道線識(shí)別程序源代碼,編譯要求:Linux Kernel2.6或以上,Glibc2.13或以上,OpenCV2.1或以上,Gcc4.7或以上版本。 #include #include #include #include #include #include #define RED cvScalar(0,0,255,0) #define GREEN cvScalar(0,255,0,0) #define BLUE cvScalar

53、(255,0,0,0) #define ROI cvRect(0,(int)src->height / 3,src->width,src->height) #define LOW_THRESH 80 #define HIGH_THRESH 255 #define MAXDISTANCE 10 //img為加載的源圖像,src為處理過(guò)程中所用的灰度圖像 //temp為臨時(shí)需要時(shí)的中轉(zhuǎn)圖像,out為最后輸出的三通道圖像 IplImage *img,*src,*temp,*out; CvMemStorage *storage; CvSeq *lines; CvSeq *con

54、tours; typedef struct { float a; float b; float c; int is_vertical; }Line; Line *get_tangent(CvSeq *seq,int n); Line get_line_func(CvPoint p1,CvPoint p2); CvPoint *get_join(CvPoint *p1,Line l1,CvPoint *p2,Line l2); CvPoint get_center(CvPoint p1,CvPoint p2); double points_distance(CvP

55、oint p1,CvPoint p2); int is_ellipse(CvSeq *); int main(int argc,char *argv[]) { //圖像的加載過(guò)程 if (argc != 2) { puts("Usage : ./mark filename"); exit(1); } if ((img = cvLoadImage(argv[1],CV_LOAD_IMAGE_UNCHANGED)) == NULL) { printf("can not load image %s.\n",argv[1]); exit(1);

56、 } src = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1); temp = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1); out = cvCreateImage(cvGetSize(img),img->depth,3); if (img->nChannels >= 3) { cvCvtColor(img,src,CV_RGB2GRAY); cvCopy(img,out,NULL); } else { cvCopy(img,src,0); cvC

57、vtColor(img,out,CV_GRAY2RGB); } storage = cvCreateMemStorage(0); //設(shè)置ROI cvSetImageROI(src,ROI); //濾波 cvSmooth(src,src,CV_MEDIAN,5,5,0,0); cvSmooth(src,src,CV_GAUSSIAN,5,5,0,0); //大津法閾值分割 cvThreshold(src,src,LOW_THRESH,HIGH_THRESH,CV_THRESH_OTSU); //邊緣檢測(cè) cvSetImageROI(temp,ROI);

58、 cvCanny(src,temp,LOW_THRESH,HIGH_THRESH,3); cvResetImageROI(src); cvResetImageROI(temp); cvCopy(temp,src,0); cvSetImageROI(src,ROI); //hough直線檢測(cè) lines=cvHoughLines2(src,storage,CV_HOUGH_PROBABILISTIC,0.5,CV_PI / 180,5,10,5); //繪制檢測(cè)到的直線 int i; cvSetImageROI(out,ROI); for (i = 0;i

59、< lines->total;i++) { CvPoint *endpoints = (CvPoint *)cvGetSeqElem(lines,i); cvLine(out,endpoints[0],endpoints[1],RED,2,8,0); } //邊緣提取 int sum_of_area = 0; sum_of_area=cvFindContours(src,storage,&contours,sizeof(CvContour),CV_RETR_EXTERNAL,CV_CHAIN_APPROX_SIMPLE,cvPoint(0,0)); for (

60、i = 0;i < sum_of_area;contours = contours->h_next,i++) { if (contours->total <= 50) continue; if (is_ellipse(contours)) { puts("OK"); cvDrawContours(out,contours,BLUE,GREEN,LOW_THRESH,2,8,cvPoint(0,0)); } } cvResetImageROI(out); cvRectangle(out,cvPoint(0,(int)out->hei

61、ght / 3),cvPoint(out->width,out->height),GREEN,2,8,0); cvNamedWindow("IMG",0); cvNamedWindow("OUT",0); cvShowImage("IMG",img); cvShowImage("OUT",out); cvWaitKey(0); return 0; } Line *get_tangent(CvSeq *seq,int n) { Line *result = (Line *)malloc(sizeof(Line)); if (n >= seq->total |

62、| n < 4) return (Line *)NULL; CvPoint *p = (CvPoint *)cvGetSeqElem(seq,n); double sum_of_xy = 0.0,sum_of_x = 0.0,sum_of_y = 0.0,sum_of_x2 = 0.0; int i; for (i = n - 4;i <= n + 4;i++) { CvPoint *temp = (CvPoint *)cvGetSeqElem(seq,i); sum_of_xy += (double)(temp->x * temp->y); su

63、m_of_x += (double)temp->x; sum_of_y += (double)temp->y; sum_of_x2 += (double)(temp->x * temp->x); } #ifndef SIZEOFTANGENTAREA #define SIZEOFTANGENTAREA 9 result->a = (SIZEOFTANGENTAREA * sum_of_xy - sum_of_x * sum_of_y) / (SIZEOFTANGENTAREA * sum_of_x2 - sum_of_x * sum_of_x); result->

64、c = sum_of_y / SIZEOFTANGENTAREA - result->a * sum_of_x / SIZEOFTANGENTAREA; result->b = -1.0; result->is_vertical = 0; #endif return result; } Line get_line_func(CvPoint p1,CvPoint p2) { Line result; if (p1.x == p2.x) result.is_vertical = 1; else { result.a = p2.y - p1.y;

65、 result.b = p1.x - p2.x; result.c = -(result.a * p1.x + result.b * p1.y); result.is_vertical = 0; } return result; } CvPoint *get_join(CvPoint *p1,Line l1,CvPoint *p2,Line l2) { CvPoint *p = (CvPoint *)malloc(sizeof(CvPoint)); if (l1.is_vertical != 1 && l2.is_vertical != 1) {

66、 if (fabs(l1.a / l1.b - l2.a / l2.b) >= 0.000001) { p->x = (l1.b * l2.c - l2.b * l1.c) / (l2.b * l1.a - l1.b * l2.a); p->y = (l1.a * l2.c - l1.c * l2.a) / (l1.b * l2.a - l1.a * l2.b); return p; } else return NULL; } else if (l1.is_vertical && l2.is_vertical != 1) { p->x = p1->x; p->y = p1->x * l2.a / (-l2.b) + l2.c / (-l2.b); return p; } else if (l2.is_vertical && l1.is_vertical != 1) { p->x = p2->x; p->y = p2->x * l1.a / (-l1.

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!