国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【第十七屆智能車】智能車圖像處理(2)-賽道邊界的簡單提取和無元素循跡

這篇具有很好參考價值的文章主要介紹了【第十七屆智能車】智能車圖像處理(2)-賽道邊界的簡單提取和無元素循跡。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本博客使用的圖像是188*120的大津法二值化圖像。攝像頭安裝高度為25cm(離地),前瞻長度約1m。

智能車圖像處理的過程就是讀取輸入的圖像,經(jīng)過處理后向控制部分輸出一個偏差值,控制部分根據(jù)再這個偏差值輸出相應的控制量,對偏差進行修正,這就是最基本的循跡。

? 在得到二值化圖像后,我們?nèi)绾芜M行最基本的使用呢?

賽道邊界的簡單提取

? 二值化圖像中,在沒有反光、不均勻光照和場外雜物的影響時,賽道和藍布應當具有清晰的邊界。我使用的是二值化后的原始圖像,沒有進行圖像濾波等平滑毛刺處理,因為我在進行誤差計算的時候使用的是均值,這么做的好處是容許因邊界存在毛刺或者鋸齒造成的誤差而不會很大地影響最終計算的偏差值。誤差的具體計算方式后面再細講,這里先說邊界的尋找。一般情況下,循跡主要靠圖像遠端偏差進行誤差計算,這樣可以有提前量。賽道邊界不需要跟蹤到迂回彎道之后,跟蹤到迂回彎道之后不僅代碼編寫難度高很多,而且計算的偏差值意義不大。攝像頭的優(yōu)點是前瞻長,但是成也蕭何敗蕭何,前瞻過長也不是好事。賽道邊界需要分別保存在左右兩個數(shù)組中,這兩個數(shù)組最好是全局變量,以便后續(xù)循跡偏差計算和元素識別使用。

? 賽道邊界提取最簡單有效的辦法就是種子生長法。根據(jù)賽道近端一定是白色的特性(不是這樣的話車基本已經(jīng)出賽道了),首先找到圖像圖像最下方一行白色的中點,作為全圖搜索的seed;接著從近到遠(也就是圖像中的從下到上)開始分別向左和向右搜索黑白交界點,找到黑白交界點就分別保存在左右邊線數(shù)組中,并且根據(jù)(左邊+右邊)/2的方法計算該行中線橫坐標,保存至中線數(shù)組中,并且作為下一行的seed,繼續(xù)如上過程,直至全圖搜索完畢。如果在該行某一側(cè)沒有搜索到邊界,則給該側(cè)邊界數(shù)組的該行對應元素存入0或者187,標示為丟邊。這樣,整個過程就像是中線的種子從圖像下方生長至圖像上方,所以我給它起名種子生長法。這么做的好處就是,可以實現(xiàn)直道以及非迂回彎道的簡單中線跟蹤,且由于種子是根據(jù)最下方一行的白色賽道中點確定的,在小彎中的表現(xiàn)更加穩(wěn)定,因為如果直接默認從最下方的一行中點作為seed向上搜線的話,在小彎中車的視野中賽道很有可能只在圖像的一側(cè),一旦最下方的白色僅僅處于圖像中心的一側(cè),就會出現(xiàn)邊界掃描錯誤的情況,導致偏差計算出錯,車會直接往彎的反方向打舵機沖出賽道。而種子生長法就不會出現(xiàn)這樣的問題。

循跡偏差值的計算

? 關(guān)于循跡,其實有很多可以利用的參數(shù),也衍生出了很多方案,我也沒有接觸過那些高級的制導方法,只能簡單講一講自己接觸過的幾種方法了。

  1. 動態(tài)中線長度+每行平均偏差法

    ? 這里的“動態(tài)中線長度”指的是從下至上,中線的不截斷長度。這里的“截斷”,指的是手動設置一個截斷閾值,在掃描中線的時候,如果下一行與上一行的中線點像素橫坐標差值大于這個閾值,就認為中線發(fā)生了截斷,發(fā)生截斷后就停止向上搜索中線,并且記錄下已經(jīng)搜索到的中線長度,認為是“有效中線”。然后,就在這段“有效中線”內(nèi),每行與圖像中心坐標相減,再求取平均值,就得到了一個偏差值。之所以想到了這樣一個“動態(tài)中線長”的方法,是因為我考慮到近端圖像相較于遠端圖像更為穩(wěn)定,且在彎道處遠端沒有搜索到邊線的一段不應該納入計算。但是這種方法對于彎道和存在元素的地方適應性并不是很好,過彎軌跡并不是很理想,因為這種方法壓制了前瞻,在遠端出現(xiàn)變化需要做出響應時往往不能很及時地調(diào)整誤差。

  2. 動態(tài)中線長度+各行權(quán)值偏差法

    ? 這種方法是在第一種方法的基礎上,給每行都引入了一個偏差權(quán)值,這個偏差權(quán)值提前計算好存儲在一個數(shù)組內(nèi)(權(quán)值表)。在PID參數(shù)不變的情況下,調(diào)整這個權(quán)值表中各行的權(quán)值,可以微調(diào)過彎軌跡(算是變相起到了PID的作用hh)。當然,這個權(quán)值的計算也可以在寫程序的時候用一個函數(shù)計算,但我為了加快運算速度就把每行的權(quán)值打了一張表。這個表的獲取也可以用簡單的MATLAB程序?qū)崿F(xiàn)。測試當這個權(quán)值符合σ(0.5,1)時,效果較好(其實只要基本上符合中間大遠近小的規(guī)律就行了,這個測試的結(jié)果與我最后采用的一種方法得出的結(jié)果是一致的)。

  3. 動態(tài)中線長+最小二乘斜率法

    ? 這里引入了最小二乘法進行中線偏差的計算,擬合出一條直線,使之盡可能多地經(jīng)過中線上的點,接近曲線的形狀。這里的中線偏差通過計算出直線的斜率k來體現(xiàn)。在這種機制下,理想的偏差值應當是∞。下面給出最小二乘法擬合直線的公式:

    【第十七屆智能車】智能車圖像處理(2)-賽道邊界的簡單提取和無元素循跡

  4. 固定區(qū)域中線+每行平均偏差法

    在追求了很久的“動態(tài)”和“自適應”之后,發(fā)現(xiàn)那么多花里胡哨的穩(wěn)定性其實可能還不如固定的“呆”方法……

    ? 這個方法就是在圖像上選定兩條橫線,以這兩條橫線之間的中線為基準進行偏差計算,相當于第二種方法的某些行權(quán)值置為1,其他行都置為0。通過調(diào)整偏差計算的行數(shù),可以調(diào)整循跡前瞻和循跡軌跡,對于抖動的消除也有一定的輔助作用。采用這種方法可以較好地固定過彎軌跡。這種方法最極端的簡化版本就是使用單行循跡,只使用一行的邊界信息(龍邱的庫就是這樣的),也就是類似于CCD的原理,實測也是可行的,就是容易在彎道處因為前瞻超出了彎道外,存在一定程度的抖動,所以就不采用了(雖然但是,攝像頭不就是一個有很多行的線性CCD么hhh)。

中線與偏差的修正

彎道誤差修正

? 在以上的搜線邏輯中,在遇到邊界丟線的情況時,默認該行邊線在圖像的最左側(cè)或者最右側(cè),這樣在過彎的時候就存在一個問題:無論彎的大小,偏差值的大小都是近似的,即使在急彎誤差也非常小,使得過彎時舵機打角不足,從而導致過彎失敗。這時候就需要進行左右判別和偏差修正了。因為直道的寬度基本是固定的,所以可以先記錄下直道上圖像上各行的賽道寬,在過彎時進行左右彎的判別,判定完畢后,在已有的一側(cè)邊線上向左或者向右補上這一段賽道寬度,就可以補出另一側(cè)邊線,再利用補完后的邊線數(shù)組進行中線的計算,可以大大降低誤差。不過,這種方法對于攝像頭的安裝高度和安裝角度、前瞻距離以及攝像頭是否居中都有較高的要求。

左右彎道的判別

? 在以上修正中,需要先行判定左右彎道,如果判定不好的話,很容易在其他地方出現(xiàn)誤判,使得邊線修正異常觸發(fā),中線發(fā)生嚴重抖動。通過觀察彎道處的圖像可以發(fā)現(xiàn),彎道的特征是:指向的一側(cè)丟線較多,另一側(cè)丟線較少, 且圖像上方應當是黑色的,而且丟線較少的一側(cè)邊線橫坐標是呈現(xiàn)逐漸遞增或者遞減的,這個逐漸遞增或者遞減可以利用從下而上邊線斜率絕對值的逐漸遞減來進行判定,當然停止判定的邊界條件一定要找好,不然極其容易發(fā)生誤判,這個邊界條件是需要具體情況具體分析的,還是得自己慢慢摸索確定。根據(jù)這幾個特征編寫程序,可以有效判別彎道的左右,從而進行相應的中線修正。其實只要PID調(diào)整得夠好,這種修正也不是必要的,因為防止誤判的邊界條件最后加了很多依舊會在少數(shù)情況下發(fā)生誤判,所以最后我也棄用了這種方法。

偏差濾波

? 曾經(jīng)為了抑制車模運行過程中晃動使圖像抖動從而使得偏差抖動過大的情況,我也嘗試過對偏差進行濾波,使用的方法有均值濾波、加權(quán)平均遞推濾波等,但是最終效果并不是很理想,使用濾波后,車子就像喝了假酒一樣,過彎響應極其滯后(也有可能是因為圖像處理速度跟不上,當時并沒有調(diào)整過編譯器優(yōu)化),所以最終我還是放棄了偏差濾波,轉(zhuǎn)而采用使得偏差本身更加穩(wěn)定的方法計算誤差。因為使用濾波就注定要使用前幾幀的圖像信息,圖像處理至高50Hz,即使只采用前一幀的信息,延后量也達到了40ms,在2m/s的速度下這足夠使車沖出去8cm,這對于元素識別或者循跡已經(jīng)是很致命的影響了。當然也可能是我采用的濾波方法是我自己草草寫的,很不完備,如果大家對于誤差的平滑化有什么高見的話,歡迎在評論區(qū)一起交流!文章來源地址http://www.zghlxwxcb.cn/news/detail-411544.html

總結(jié)

  1. 利用二值化圖像的方法,首先就是將賽道邊界提取出來存入邊線數(shù)組內(nèi),使之成為可以直接參與運算的數(shù)據(jù)。
  2. 邊界的搜索可以使用種子生長法,對于彎道效果較好。
  3. 圖像的處理最終需要輸出一個循跡偏差,這個偏差可以有多種形式,也可以不止是一個參數(shù),甚至可以是一個數(shù)組甚至矩陣,但是最終反映到控制量上一定要穩(wěn)定且可靠。
  4. 循跡偏差計算我采用的是最簡單的固定區(qū)域平均偏差法,這種方法雖然看起來很笨,但是勝在穩(wěn)定高效。
  5. 理論上,偏差在彎道處是需要修正的,偏差也需要進行濾波處理,但是實測效果并不是很理想,所以暫時放棄了這個方案。

到了這里,關(guān)于【第十七屆智能車】智能車圖像處理(2)-賽道邊界的簡單提取和無元素循跡的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 第十七屆恩智浦杯室外ROS無人車競速賽仿真

    第十七屆恩智浦杯室外ROS無人車競速賽仿真

    ?學長說讓以考促學,用做過的比賽來檢驗ROS的學習效果,看我們能不能靈活運用。(′д`)ゞ 目錄 1.vscode準備工作 2.首先需要搭建gazebo仿真環(huán)境 3.launch文件打開gazebo仿真環(huán)境代碼集成主要包括兩大部分 ? ? ? ? 才做了一個開頭車還不會動,恩智浦杯的實物車出了點問題,

    2024年02月09日
    瀏覽(19)
  • 十七屆智能車智能視覺組

    十七屆智能車智能視覺組

    總結(jié)一下比賽過程,省二菜鳥,歡迎大佬指教 詳情見十七屆比賽細則第十七屆智能車競賽智能視覺組比賽細則_卓晴的博客-CSDN博客_智能視覺組,我這里簡單介紹一下。 任務流程可以概括為:小車在起點出掃描一張A4紙(A4紙上有坐標點進而獲得各個目標的位置)-掃描完后出

    2023年04月16日
    瀏覽(14)
  • Python遙感圖像處理應用篇(二十七):Python繪制遙感圖像各波段熱力圖(相關(guān)系數(shù)矩陣)(續(xù))

    Python遙感圖像處理應用篇(二十七):Python繪制遙感圖像各波段熱力圖(相關(guān)系數(shù)矩陣)(續(xù))

    續(xù)-https://soderayer.blog.csdn.net/article/details/125757807 上一篇中使用csv文件計算的相關(guān)系數(shù)熱力圖,本篇我們直接使用遙感圖像來計算圖像波段之間的相關(guān)系數(shù)。 實際上,目前已有的軟件,如ENVI就可以直接計算圖像波段之間的相關(guān)系數(shù),該工具計算的是合成波段之間的相關(guān)系數(shù)。如

    2023年04月17日
    瀏覽(28)
  • 數(shù)字圖像處理(實踐篇)二十七 Python-OpenCV 滑動條的使用

    數(shù)字圖像處理(實踐篇)二十七 Python-OpenCV 滑動條的使用

    目錄 1 涉及的函數(shù) 2 實踐 1 涉及的函數(shù) ⒈?setWindowProperty()用于設置GUI應用程序的屬性 參數(shù) : ①?

    2024年01月25日
    瀏覽(97)
  • (數(shù)字圖像處理MATLAB+Python)第十二章圖像編碼-第一、二節(jié):圖像編碼基本理論和無損編碼

    (數(shù)字圖像處理MATLAB+Python)第十二章圖像編碼-第一、二節(jié):圖像編碼基本理論和無損編碼

    圖像編碼 :一種將數(shù)字圖像轉(zhuǎn)換為壓縮表示形式的過程。它的目標是減少圖像數(shù)據(jù)的存儲空間,并在傳輸或存儲時減少帶寬和存儲需求、主要分為兩類 無損壓縮 :盡可能地保留原始圖像的所有信息,以實現(xiàn)無失真的壓縮。其中最常見的算法之一是無損JPEG(JPEG-LS)編碼,它

    2024年02月10日
    瀏覽(789)
  • (數(shù)字圖像處理MATLAB+Python)第十二章圖像編碼-第三、四節(jié):有損編碼和JPEG

    (數(shù)字圖像處理MATLAB+Python)第十二章圖像編碼-第三、四節(jié):有損編碼和JPEG

    A:概述 預測編碼 :是一種數(shù)據(jù)壓縮技術(shù),旨在通過利用數(shù)據(jù)中的 統(tǒng)計規(guī)律來減少存儲或傳輸所需的比特數(shù) 。它基于預測模型,根據(jù)已經(jīng)觀察到的數(shù)據(jù)來預測未來的數(shù)據(jù),并將預測誤差編碼和傳輸。預測編碼的過程通常包括以下幾個步驟 模型訓練 :首先,根據(jù)已有的數(shù)據(jù),

    2024年02月09日
    瀏覽(89)
  • 【Python入門系列】第十篇:Python圖像處理和計算機視覺

    圖像處理和計算機視覺是計算機科學中非常重要的領(lǐng)域之一。Python作為一種功能強大且易于學習的編程語言,提供了許多用于圖像處理和計算機視覺的庫和工具。本文將介紹一些常用的Python庫,并提供一些示例代碼。 Python中有幾個流行的圖像處理庫,其中最常用的是OpenCV和

    2024年02月12日
    瀏覽(43)
  • (數(shù)字圖像處理MATLAB+Python)第十一章圖像描述與分析-第五、六節(jié):邊界描述和矩描述

    (數(shù)字圖像處理MATLAB+Python)第十一章圖像描述與分析-第五、六節(jié):邊界描述和矩描述

    A:概述 邊界鏈碼 :是一種用于圖像處理和計算機視覺領(lǐng)域的技術(shù),主要用于 描述二進制圖像中物體的輪 廓。邊界鏈碼通過將輪廓轉(zhuǎn)化為一系列有序的連續(xù)像素點來表示。邊界鏈碼的基本思想是 從圖像中選擇一個起始點,然后按照一定的順序遍歷相鄰像素,將它們連接起來

    2024年02月10日
    瀏覽(95)
  • 智能文檔圖像處理技術(shù):解決大數(shù)據(jù)時代文檔圖像處理難題

    智能文檔圖像處理技術(shù):解決大數(shù)據(jù)時代文檔圖像處理難題

    智能文檔圖像處理技術(shù)是指利用計算機視覺和人工智能等技術(shù)對文檔圖像進行處理和分析,實現(xiàn)自動化識別、提取、分類和管理的技術(shù)。隨著人工智能時代的到來和各行業(yè)信息化進程的加速,越來越多的個人和企業(yè)用戶開始借助智能文檔圖像處理技術(shù)來提高工作效率,降低人

    2024年02月09日
    瀏覽(22)
  • 智能車圖像處理逆透視教程

    智能車圖像處理逆透視教程

    去畸變請參考: 圖像處理去畸變教程_LoseHu的博客-CSDN博客 去畸變+逆透視請參考: ?????????????????????智能車去畸變+逆透視教程_LoseHu的博客-CSDN博客 逆透視: 如下 對于初做車的同學,看見攝像頭圖像神奇的側(cè)視角難免會有些煩躁,我剛開始也是

    2024年02月06日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包