《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 線性CCD圖像處理與識(shí)別算法研究
線性CCD圖像處理與識(shí)別算法研究
2015年微型機(jī)與應(yīng)用第8期
廖偉權(quán),劉海剛,項(xiàng)華珍,梁焯斌,范智暉
(五邑大學(xué) 信息工程學(xué)院,廣東 江門(mén) 529020)(五邑大學(xué) 信息工程學(xué)院,廣東 江門(mén) 529020)
摘要: 介紹了基于線性CCD傳感器的智能小車(chē)整體框架、圖像采集和處理以及路徑識(shí)別控制算法。智能小車(chē)控制系統(tǒng)中選擇線性CCD傳感器進(jìn)行路徑識(shí)別,對(duì)采集的像素點(diǎn)進(jìn)行中值濾波、二值化等處理,提取賽道兩邊的黑色邊緣,取其中心位置作為小車(chē)的引導(dǎo)方向,控制舵機(jī)的轉(zhuǎn)向,使得小車(chē)能夠穩(wěn)定、可靠地高速行駛。
Abstract:
Key words :

  摘  要: 介紹了基于線性CCD傳感器的智能小車(chē)整體框架、圖像采集和處理以及路徑識(shí)別控制算法。智能小車(chē)控制系統(tǒng)中選擇線性CCD傳感器進(jìn)行路徑識(shí)別,對(duì)采集的像素點(diǎn)進(jìn)行中值濾波、二值化等處理,提取賽道兩邊的黑色邊緣,取其中心位置作為小車(chē)的引導(dǎo)方向,控制舵機(jī)的轉(zhuǎn)向,使得小車(chē)能夠穩(wěn)定、可靠地高速行駛。
  關(guān)鍵詞: 線性CCD;數(shù)據(jù)采集;中值濾波;動(dòng)態(tài)閾值人字形彎道識(shí)別
0 引言
  在全國(guó)大學(xué)生“飛思卡爾”杯智能汽車(chē)競(jìng)賽光電組的技術(shù)要點(diǎn)中,線性CCD圖像處理和路徑識(shí)別這兩個(gè)環(huán)節(jié)尤其重要,其決定著小車(chē)能否安全可靠快速運(yùn)行[1]。根據(jù)比賽規(guī)則和以往的比賽經(jīng)驗(yàn),小車(chē)能否以最短的時(shí)間完成比賽,確保不沖出賽道,都與小車(chē)的速度和路徑識(shí)別有著密切的關(guān)系。因此,路徑的識(shí)別和處理是整個(gè)比賽的關(guān)鍵,它能夠有效地控制智能小車(chē)在不同的路段該如何選擇合理、高效的速度完整地去完成比賽,從而可以提高整場(chǎng)比賽中的平均速度。
  基于線性CCD傳感器的智能小車(chē)控制系統(tǒng)結(jié)構(gòu)如圖1所示。該系統(tǒng)中執(zhí)行機(jī)構(gòu)是舵機(jī)和電機(jī),感應(yīng)機(jī)構(gòu)是線性CCD傳感器。路徑識(shí)別是實(shí)現(xiàn)智能小車(chē)沿賽道自主運(yùn)行的信息基礎(chǔ),獲得范圍廣而精確的路徑信息是提高智能小車(chē)運(yùn)行速度的關(guān)鍵[2]。
1 圖像采集
  一般的圖像CCD傳感器有模擬的和數(shù)字的,線性CCD傳感器(TSL1401CL)輸出的信號(hào)是模擬的。圖像CCD傳感器要處理的數(shù)據(jù)量比較大,使用硬件二值化比較好[3]。但對(duì)于線性CCD傳感器來(lái)說(shuō),數(shù)據(jù)量的處理沒(méi)有圖像CCD傳感器大,硬件二值化的優(yōu)勢(shì)并不明顯,所以直接采集模擬信號(hào)。采用固定曝光時(shí)間,整個(gè)函數(shù)運(yùn)行一遍的周期是10 ms,響應(yīng)時(shí)間充足,圖像穩(wěn)定。

Image 001.png

  在實(shí)際應(yīng)用中采用拉普蘭德的開(kāi)源程序代碼,再根據(jù)單片機(jī)的特性進(jìn)行修改,縮短采集時(shí)間,提高響應(yīng)速度,使采集的圖像穩(wěn)定下來(lái)是最重要的。
2 圖像處理
  線性CCD有中值濾波法、二值化處理法、邊緣增強(qiáng)法等圖像處理方法。由于邊緣增強(qiáng)法的目的在于突出賽道的邊緣信息,增強(qiáng)路徑的識(shí)別,經(jīng)邊緣增強(qiáng)后的圖像能更清晰地顯示出路徑的邊界[4]。但是經(jīng)過(guò)實(shí)踐,對(duì)于飛思卡爾智能車(chē)競(jìng)賽黑白明顯的賽道而言,邊緣增強(qiáng)法的效果并不十分明顯,所以舍棄了該方法。
  2.1 中值濾波法
  采集回來(lái)的數(shù)據(jù)可能上下波動(dòng),不夠穩(wěn)定,這時(shí)就需要調(diào)用中值濾波函數(shù)。中值濾波是一種非線性數(shù)字濾波器技術(shù),用于去除圖像中的噪聲。其設(shè)計(jì)思想就是檢查采集像素點(diǎn)的值,并判斷它是否代表了信號(hào)。從第一個(gè)像素點(diǎn)開(kāi)始,將其數(shù)值和相鄰的兩個(gè)像素點(diǎn)的數(shù)值進(jìn)行排序,3個(gè)像素點(diǎn)中數(shù)值為中值的像素點(diǎn)作為代表信號(hào)并輸出。然后,丟棄最早的值,取得新的采樣,重復(fù)上面的計(jì)算過(guò)程到127個(gè)點(diǎn)為止[5]。
  中值濾波程序如下:
  short get_mid(short a,short b,short c)
  //get_mid取中間值b
  {
  short x=0;
  if(a>b){x=b;b=a;a=x;}
  if(b>c){x=c;c=b;b=x;}
  if(a>b){x=b;b=a;a=x;}
  return b;//經(jīng)過(guò)以上比較賦值,將中間值賦給b,
  返回給中間像素點(diǎn)gPixel[i]
  }
  for(i=1;i<128;i++)//對(duì)128個(gè)點(diǎn)進(jìn)行平滑處理輸出
  {
  gPixel[i]=get_mid(gPixel[i-1],gPixel[i],gPixel[i+1]);
  //gPixel[i]代表采集回來(lái)的像數(shù)點(diǎn)數(shù)值
  }
  2.2 二值化處理
  圖像的二值化處理就是將圖像上點(diǎn)的灰度值置為0或255(在程序設(shè)計(jì)中置為0和1)的灰度值[6]。二值化的目的就是將所有灰度大于或等于閾值的像素判定為白色,否則像素點(diǎn)為黑色,這樣明確地分出黑白兩種顏色,小車(chē)就能準(zhǔn)確地轉(zhuǎn)彎。閾值的選取有很多種方法,常用的有動(dòng)態(tài)閾值和試驗(yàn)確定法[7]。對(duì)圖像進(jìn)行二值化分割,選取恰當(dāng)?shù)拈撝党闪藴?zhǔn)確劃分的關(guān)鍵。事實(shí)驗(yàn)證,靜態(tài)閾值已經(jīng)不能滿足整幅賽道,所以采用動(dòng)態(tài)閾值算法[8]。由于四輪智能小車(chē)存在轉(zhuǎn)彎不靈活的特點(diǎn),在賽道上跑時(shí)很容易丟線,所用的動(dòng)態(tài)閾值要在丟線時(shí)調(diào)用上一個(gè)閾值(T_old)(T_old是上一次計(jì)算正確的閾值保留下來(lái)賦予的值T_last)。
  軟件二值化的動(dòng)態(tài)閾值算法如下:
  (1)找出一組數(shù)據(jù)128個(gè)像素點(diǎn)的最大值(max)和最小值min。
  (2)判斷最大值(max)和最小值(min)的偏差是否大于全黑時(shí)的偏差(all_black_Difference_value),若大于全黑時(shí)的偏差,就繼續(xù)下面步驟,否則不計(jì)算下一步驟,用上一次的閾值。全黑時(shí)的偏差指的是全黑(丟線)情況下的最大值與最小值的偏差(是給定的一個(gè)值),由經(jīng)驗(yàn)得知丟線情況下的閾值是不正確的,要用上一次的閾值T_old。
  (3)為全局閾值T選擇一個(gè)初始估計(jì)值:30VYA3A0JV09[KF6`KILR0Z.jpg
  (4)二值化處理圖像,并產(chǎn)生兩組數(shù)組:sum_h為灰度值大于T的所有像素組成,sum_l由所有小于等于T的像素組成。
  (5)對(duì)sum_h和sum_l的像素分別計(jì)算平均弧度值(均值)max_ave和min_ave。
  (6)產(chǎn)生最終的閾值T_last,再給T_old賦值:T_old=T_last(T_old丟線時(shí)調(diào)用)。
  A1(PYA`4R8TAVDOM{0Y][AG.png

3 賽道識(shí)別
  3.1 一般賽道的識(shí)別
  普通賽道類(lèi)型包括:直道、十字路口、小S彎以及不同曲率的彎道。因此,對(duì)不同的彎道識(shí)別及數(shù)據(jù)處理是成功與否的關(guān)鍵。采用了一次元函數(shù)動(dòng)態(tài)Kp的算法來(lái)處理不同曲率的彎道。主要公式為:
  Error=Left_black-(128-Right_black)(2)
  Kp=0.05×|Error|(3)
  其中,Error為實(shí)際中心位置與測(cè)量中心值的偏差。通過(guò)經(jīng)驗(yàn)得知,Error等于左邊黑點(diǎn)減128與右邊黑點(diǎn)的差值。當(dāng)Error為負(fù)數(shù)時(shí)舵機(jī)向左轉(zhuǎn)彎,為正數(shù)時(shí)舵機(jī)向右轉(zhuǎn)彎,從而控制速度的變化。Error偏差在得出第一個(gè)黑點(diǎn)前還需要判斷其是否為噪點(diǎn)。當(dāng)全黑時(shí)設(shè)定了一個(gè)最低速度,偏差為0時(shí)也限制了它的最高速度,防止智能小車(chē)由于速度過(guò)高,造成擺尾或沖出賽道等問(wèn)題。
  在直道,偏差(Error)會(huì)變得很小,絕對(duì)值小于10,控制舵機(jī)直行,不轉(zhuǎn)彎。
  十字路口都是與270°的彎道連接在一起的。由于十字路口沒(méi)有兩端的黑色引導(dǎo)線,通過(guò)CCD采集的數(shù)據(jù)分析,計(jì)算進(jìn)入前的3次偏差位置,求出它的斜率,再通過(guò)斜率計(jì)算出智能小車(chē)在十字路口上舵機(jī)轉(zhuǎn)彎大小,從而保證小車(chē)順利通過(guò)十字路口。
  緊跟著就進(jìn)入270°的彎道。為了防止舵機(jī)誤判,當(dāng)上一個(gè)偏差與本次的偏差超過(guò)某一個(gè)值時(shí),保持上一次的偏差,這樣就能順利平滑通過(guò)彎道了[9]。
  從CCD采集回來(lái)小S彎道的數(shù)據(jù)來(lái)看,由于小S彎道的位置偏差較小,而且采用一次元函數(shù)動(dòng)態(tài)Kp的方法來(lái)控制舵機(jī)轉(zhuǎn)彎,Kp的值可以通過(guò)這些小偏差的改變而改變,即Kp=0.05×偏差。因此,可以保證智能車(chē)以較高的速度完美通過(guò)小S彎道。
  3.2 特殊賽道的識(shí)別
  為了增加行駛難度,增加了人字彎道識(shí)別,如圖2所示。本設(shè)計(jì)選擇了讓智能小車(chē)直接大拐角掉頭。當(dāng)檢測(cè)到斑馬線時(shí),給舵機(jī)一個(gè)大轉(zhuǎn)角,讓小車(chē)直接駛過(guò)。然而當(dāng)小車(chē)高速行駛時(shí),處理不好速度與CCD檢測(cè)前瞻(CCD掃描的地方與車(chē)身間的距離)的關(guān)系,小車(chē)很容易沖出賽道。本設(shè)計(jì)在智能小車(chē)上安裝了兩個(gè)CCD,一個(gè)前瞻在50 cm,一個(gè)前瞻在40 cm。
  圖2中,兩條平行線分別為兩個(gè)CCD拍攝圖像的位置。其中,車(chē)子前瞻較近的CCD掃描的圖像是在直道運(yùn)行,得到的數(shù)據(jù)是左右黑線都存在;前瞻較遠(yuǎn)的CCD掃描的賽道圖像,得到的數(shù)據(jù)是左邊的黑線相差不大,但右邊黑線與較近CCD相比卻突然丟失,據(jù)此判斷此時(shí)應(yīng)該右轉(zhuǎn)。

Image 002.png

  人字形判斷程序段如下:
  Error=Left_black-(128-Right_black)
  |Error|<10//判斷較近的CCD是否檢測(cè)到黑線,
  并計(jì)算出是否在直到上,在中線時(shí)偏差(Error)小于15,在實(shí)際情況中這個(gè)值小于10就認(rèn)為是直道
  |Left_black_near-Left_black_far|<8//判斷近的CCD左邊
  黑線和較遠(yuǎn)CCD左邊黑線是不是偏差小于8(在直道上兩個(gè)CCD的左黑線像素點(diǎn)相差小于8)
  |Right_black_near-Right_black_far|>30//判斷近的CCD
  右邊黑線和較遠(yuǎn)CCD右邊黑線是不是偏差大于一定范圍(較遠(yuǎn)CCD丟線,較近的還在直道上,所以兩個(gè)CCD的右黑線像素點(diǎn)相差大于30)
  當(dāng)同時(shí)滿足以上3個(gè)條件時(shí),判別出人字彎道后,就向右轉(zhuǎn)彎,使小車(chē)控制舵機(jī)進(jìn)行較大角度的轉(zhuǎn)彎,等到小車(chē)回到直道后,再給與舵機(jī)中值,從而使小車(chē)快速、穩(wěn)定通過(guò)人字彎。左拐彎與之相反。
  結(jié)合兩個(gè)CCD信息去識(shí)別可以準(zhǔn)確判別出人字彎道。經(jīng)過(guò)實(shí)踐驗(yàn)證,采用此方法誤判的概率非常小,只有在智能小車(chē)軌跡異常偏離賽道中心時(shí)才會(huì)出現(xiàn)誤判。
4 結(jié)論
  通過(guò)對(duì)線性CCD圖像處理與識(shí)別算法進(jìn)行研究,將理論知識(shí)與實(shí)際情況相結(jié)合,對(duì)采集的圖像進(jìn)行中值濾波、二值化動(dòng)態(tài)閾值處理,再根據(jù)小車(chē)的實(shí)際情況進(jìn)行改善,設(shè)計(jì)了一次元函數(shù)動(dòng)態(tài)Kp的算法,對(duì)直道、十字路口、小S彎以及不同曲率的彎道進(jìn)行辨識(shí),并對(duì)人字形賽道特殊判斷識(shí)別,從而使小車(chē)能夠沿規(guī)定賽道穩(wěn)定、可靠、快速地運(yùn)行。
  參考文獻(xiàn)
  [1] 劉嘉豪,劉海剛,張建偉,等.智能車(chē)圖像處理與識(shí)別算法研究[J].工業(yè)控制計(jì)算機(jī),2014,27(8):19-22.
  [2] 卓晴,黃開(kāi)勝,邵貝貝,等.學(xué)做智能車(chē):挑戰(zhàn)“飛思卡爾”杯[M].北京:北京航空航天大學(xué)出版社,2007.
  [3] 劉祖臣.基于CMOS數(shù)字?jǐn)z像頭的硬件二值化方案[J].電子科技,2014,27(7):99-102.
  [4] 周磊,任國(guó)全,肖浩,等.結(jié)構(gòu)化道路車(chē)道線快速檢測(cè)的一種改進(jìn)算法[J].計(jì)算機(jī)仿真,2012,29(4):362-366.
  [5] 張毛女,柳薇.一種基于邊緣檢測(cè)的改進(jìn)的中值濾波去噪方法[J].計(jì)算機(jī)與現(xiàn)代化,2011,29(3):63-65,73.
  [6] 李俊,王軍輝,譚秋林,等.基于MC9S12XS128控制器的智能車(chē)圖像處理技術(shù)研究[J].化工自動(dòng)化及儀表,2012,39(2):190-193.
  [7] 季聰,王思明,漢鵬武.智能車(chē)路徑識(shí)別與控制研究[J].電視技術(shù),2013,37(9):192-195,209.
  [8] 常江.基于視覺(jué)導(dǎo)航的智能車(chē)測(cè)控系統(tǒng)關(guān)鍵技術(shù)研究[D].天津:河北工業(yè)大學(xué),2010.
  [9] 邱迎.道路自動(dòng)識(shí)別與控制的智能車(chē)系統(tǒng)的研究[D].重慶:重慶大學(xué),2010.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 天天爱添天天爱添天天爱添 | 久久不卡免费视频 | 婷婷色婷婷 | 亚洲国产精品一区二区久 | 污视在线看| 99r在线精品| 日韩精品手机在线 | 中国护士一级毛片免费版本 | qvod激情视频在线观看 | 一区二区三区在线播放 | 老司机免费福利午夜入口ae58 | 欧美一级做性受 | 一级小视频 | 国产麻豆视频 | 亚洲欧美综合另类 | 岛国在线播放v片免费 | 激情视频网站 | 五月欧美 | 精品在线视频播放 | 在线观看一区二区精品视频 | 美女网站全黄 | 国产成人亚综合91精品首页 | 在线视频一区二区三区四区 | xxx性欧美人 | 国产午夜视频在永久在线观看 | 国产一区2区3区 | 成人小视频在线 | 狠狠操天天操夜夜操 | 色吧在线视频在线观看 | 四月激情网 | 久久精品国产免费一区 | 亚洲成人三级 | 成人久久网站 | 欧美成人三级一区二区在线观看 | 香蕉久久夜色精品国产小优 | 成人人观看的免费毛片 | 欧美人与物videos另类3d | 亚洲国产七七久久桃花 | 色多网站免费视频 | 欧美亚洲性色影视在线 | 永久福利盒子日韩日韩免费看 |