精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何通過計算機視覺去識別車道線

深度學習實戰 ? 2018-01-15 10:03 ? 次閱讀

因為種種原因導致上個月沒有更新推文,所以特此發此推文表示歉意。

今天介紹的是如何通過計算機視覺去識別車道線,其實現在也有各種方法去識別車道線了。這次是基于Matlab的實現,過幾天會更新Python版本的實現,雖然用的語言不一樣,但是原理都是一樣的。

預處理

攝像機獲得的視頻圖像,由于受到周圍環境的影響,存在著很多無用信息和各種各樣的噪聲干擾。為了準確的檢測到道路線必須對圖像進行預處理。首先,通過灰度化處理將原始彩色圖像轉換為灰色圖像,然后采用大小為5*5的模板進行高斯濾波平滑處理,減小噪聲干擾。高斯濾波的具體操作是:用一個模板(或稱卷積、掩模)掃描圖像中的每一個像素,用模板確定的鄰域內像素的加權平均灰度值去替代模板中心像素點的值。

若使用3×3模板,則計算公式如下

g(x,y)={f(x-1,y-1)+f(x-1,y+1)+f(x+1,y-1)+f(x+1,y+1)+[f(x-1,y)+f(x,y- 1)+f(x+1,y)+f(x,y+1)]*2+f(x,y)*4}/16;

其中,f(x,y)為圖像中(x,y)點的灰度值,g(x,y)為該點經過高斯濾波后的值

由于天空并不存在車道的感興趣區域,所以對圖片進行了劃分,將感興趣區域劃為一個三角形區域。如圖1。

圖一

預處理代碼如下:

%讀入RGB圖片

I=imread('IMG00061.jpg');

%把RGB圖轉換為灰度圖

I=rgb2gray(I);

%高斯濾波平滑處理

sigma = 1;

gausFilter =fspecial('gaussian', [5,5], sigma);

gaus= imfilter(I, gausFilter,'replicate');

%得到圖片的寬和高

[h, w]=size(I);

%k是直線的斜率

%找出圖片的感興趣區域

k = 1.3;

for y=1:h

for x=1:w

if y < x*k + h-k*w || y < -k*x +h

I(y, x) = 0;

end

end

end

邊緣檢測

由于車道線的灰度比路面更加明亮,以此可以用邊緣檢測的方法把車道的邊緣檢測出來。在邊緣檢測中,我用了‘Sobel’算子。在技術上,它是一離散性差分算子,用來運算圖像亮度函數的灰度之近似值。在圖像的任何一點使用此算子,將會產生對應的灰度矢量或是其法矢量

Sobel卷積因子為:

該算子包含兩組3x3的矩陣,分別為橫向及縱向,將之與圖像作平面卷積,即可分別得出橫向及縱向的亮度差分近似值。如果以A代表原始圖像,Gx及Gy分別代表經橫向及縱向邊緣檢測的圖像灰度值,其公式如下:

如何通過計算機視覺去識別車道線

圖像的每一個像素的橫向及縱向灰度值通過以下公式結合,來計算該點灰度的大小:

通常,為了提高效率使用不開平方的近似值:

所得到的結果如圖2:

圖2

霍夫變換直線檢測

有了邊緣檢測的二值圖后可以對圖像進行霍夫變換,霍夫變換是圖像變換中的經典手段之一,主要用來從圖像中分離出具有某種相同特征的幾何形狀(如,直線,圓等)。霍夫變換的原理是將特定圖形上的點變換到一組參數空間上,根據參數空間點的累計結果找到一個極大值對應的解,那么這個解就對應著要尋找的幾何形狀的參數(比如說直線,那么就會得到直線的斜率k與常數b,圓就會得到圓心與半徑等等)。經過霍夫變換后可得到如圖3關于ρ和θ的圖。

圖3

圖中最亮的幾個點則為峰值,峰值中極有可能存在直線。可以選出一組候選的峰值,然后決定線的起始點和終點。函數houghlines用默認的語法執行這個任務:

lines = houghlines(f, theta,rho, peaks)

或者使用完整的語法形式:

lines = houghlines(...,'FillGap', val1, 'MinLength', val2)

其中,theta和rho是來自函數hough的輸出,peaks是函數houghpeaks的輸出。

效果

為了美觀和效果,我對檢測出來的線段進行了延長處理,效果如下圖4。

圖4

完整代碼如下:

clear

close all

%讀入RGB圖片

I=imread('IMG00061.jpg');

%把RGB圖轉換為灰度圖

I=rgb2gray(I);

%高斯濾波平滑處理

sigma = 1;

gausFilter = fspecial('gaussian', [5,5], sigma);

gaus= imfilter(I, gausFilter, 'replicate');

%得到圖片的寬和高

[h, w]=size(I);

%k是直線的斜率

%切圖,找出圖片的感興趣區域

k = 1.3;

for y=1:h

for x=1:w

if y < x*k + h-k*w || y < -k*x + h

I(y, x) = 0;

end

end

end

imshow(I)

%用Sobel算子做邊緣檢測

BW = edge(I,'sobel');

%霍夫變換

[H,T,R] = hough(BW);

imshow(H,[],'XData',T,'YData',R, 'InitialMagnification','fit');

xlabel(' heta'), ylabel(' ho');

axis on, axis normal, hold on;

%找出霍夫變換的峰值

P = houghpeaks(H,2);

%用霍夫變換檢測和連接線

lines = houghlines(BW,T,R,P);

figure;

imshow(I); hold on

%畫線

for k = 1:length(lines)

p1 = lines(k).point1;

p2 = lines(k).point2;

syms slope b

[b, slope] = solve(slope*p1(1)-p1(2)+b, slope*p2(1)-p2(2)+b);

plot([(h-b)/slope, (0.4*h-b)/slope], [h, 0.4*h], 'g-', 'LineWidth',3);

end

代碼中用到的圖片:

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • matlab
    +關注

    關注

    182

    文章

    2963

    瀏覽量

    230155
  • 代碼
    +關注

    關注

    30

    文章

    4748

    瀏覽量

    68351
  • 計算機視覺
    +關注

    關注

    8

    文章

    1696

    瀏覽量

    45927

原文標題:項目實戰 | 車道線檢測與定位

文章出處:【微信號:gh_a204797f977b,微信公眾號:深度學習實戰】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    什么是計算機視覺計算機視覺的三種方法

    計算機視覺是指通過計算機賦予人類視覺這一技術目標,從而賦能裝配檢查到駕駛輔助和機器人等應用。
    的頭像 發表于 11-16 16:38 ?4470次閱讀
    什么是<b class='flag-5'>計算機</b><b class='flag-5'>視覺</b>?<b class='flag-5'>計算機</b><b class='flag-5'>視覺</b>的三種方法

    基于OpenCV的計算機視覺技術實現

    基于OpenCV的計算機視覺技術實現OpencV是用來實現計算機視覺相關技術的開放源碼工作庫,是計算機
    發表于 11-23 21:06 ?0次下載
    基于OpenCV的<b class='flag-5'>計算機</b><b class='flag-5'>視覺</b>技術實現

    單目視覺車道識別算法及其ARM實現

    單目視覺車道識別算法及其ARM實現
    發表于 09-24 11:38 ?6次下載
    單目<b class='flag-5'>視覺</b><b class='flag-5'>車道</b><b class='flag-5'>線</b><b class='flag-5'>識別</b>算法及其ARM實現

    AI新聞:計算機視覺和模式識別會議

    了解和注冊計算機視覺和模式識別會議(CVPR 2018)!
    的頭像 發表于 11-05 06:14 ?3054次閱讀

    計算機視覺與機器視覺區別

     “計算機視覺”,是指用計算機實現人的視覺功能,對客觀世界的三維場景的感知、識別和理解。計算機
    的頭像 發表于 12-08 09:27 ?1.2w次閱讀

    計算機視覺常用算法_計算機視覺有哪些分類

    本文主要介紹了計算機視覺常用算法及計算機視覺的分類。
    的頭像 發表于 07-30 17:34 ?1.4w次閱讀

    剖析計算機視覺識別簡史

    最近,物體識別已經成為計算機視覺和 AI 最令人激動的領域之一。即時地識別出場景中所有的物體的能力似乎已經不再是秘密。隨著卷積神經網絡架構的發展,以及大型訓練數據集和高級
    的頭像 發表于 04-30 10:14 ?2724次閱讀
    剖析<b class='flag-5'>計算機</b><b class='flag-5'>視覺</b><b class='flag-5'>識別</b>簡史

    基于計算機視覺的客機艙門識別與定位方法

    基于計算機視覺的客機艙門識別與定位方法
    發表于 06-22 16:37 ?42次下載

    模式識別計算機視覺手冊

    模式識別計算機視覺手冊免費下載。
    發表于 06-24 10:02 ?3次下載

    計算機視覺識別是如何工作的?

    計算機視覺識別是一種人工智能技術,旨在使計算機系統從數字圖像、視頻等視覺信息中識別和提取有意義信
    的頭像 發表于 02-09 13:41 ?3602次閱讀

    計算機視覺中手語識別研究

    計算機視覺中手語識別研究 手語識別的目的就是通過計算機提供一種有效的、準確的機制將聾啞人常用的手
    的頭像 發表于 04-14 16:11 ?1134次閱讀

    計算機視覺是什么 計算機視覺歷史及發展趨勢

    正像其它學科一樣,一個大量人員研究了多年的學科,卻很難給出一個嚴格的定義,模式識別如此,目前火熱的人工智能如此,計算機視覺亦如此。與計算機視覺
    發表于 07-20 15:41 ?2次下載

    機器視覺計算機視覺的區別

    機器視覺計算機視覺的區別 機器視覺計算機視覺是兩個相關但不同的概念。雖然許多人使用這兩個術語
    的頭像 發表于 08-09 16:51 ?1940次閱讀

    人工智能計算機視覺方向是什么

    ”并作出決策。 計算機視覺是人工智能領域的一大分支,是以計算機和數字圖像處理技術為手段,通過視覺信息的處理和分析來實現人工智能的各類應用。
    的頭像 發表于 08-15 16:06 ?1608次閱讀

    計算機視覺屬于人工智能嗎

    屬于,計算機視覺是人工智能領域的一個重要分支。 引言 計算機視覺是一門研究如何使計算機具有視覺
    的頭像 發表于 07-09 09:11 ?1147次閱讀