基于OMAP3530平臺的車(chē)道線(xiàn)識別檢測的實(shí)現

發(fā)布時(shí)間:2015-11-10 11:11    發(fā)布者:designapp
關(guān)鍵詞: OMAP3530 , ARM , OV7670
  引言
  本文采用ARM+DSP雙核架構的OMAP3530系列的處理器,道路圖像處理部分由支持浮點(diǎn)運算的DSP核來(lái)完成,圖像采集工作和系統的控制工作由ARM核來(lái)完成,這樣的作業(yè)分配提高了系統的實(shí)時(shí)性、集成性和可靠性。
  車(chē)道線(xiàn)識別算法研究
  本文提出的車(chē)道線(xiàn)識別算法的流程如下圖1所示,首先通過(guò)OV7670攝像頭捕獲道路圖像,然后按照流程圖中的步驟處理圖像,最后得到清晰的車(chē)道標志線(xiàn),為以后智能車(chē)輛路徑規劃和避障提供支持。
  道路圖像灰度化
  圖像灰度變換是對圖像像素進(jìn)行拉伸,從而擴大圖像的灰度級范圍,進(jìn)一步擴展圖像的對比度、增加圖像的動(dòng)態(tài)范圍、使圖像更加清晰、特征更加明顯,是圖像增強的有效手段。我們采集到的道路圖像是彩色圖像,顏色模型采用RGB模型。由于人眼對顏色的敏感度不同,等量的紅、藍、綠混合不能得到對應亮度相同的灰度值,大量的實(shí)驗數據表明,當使用0.3份紅色、0.59份綠色、0.11份藍色混合后可以得到最合理的灰度圖像,即如公式(1)所示:
  灰度值=0.3R+0.59G+0.11B(1)
  根據公式(1)就可以算出當前像素對應的灰度值,將其作為圖像中彩色像素對應的灰度值。
  道路圖像濾波
  原始圖像都或多或少的存在噪聲干擾,噪聲影響了后續圖像的分析。這就要求在分析圖像之前對圖像進(jìn)行濾波,去除噪聲和假輪廓,圖像濾波的過(guò)程就是讓圖像的低頻成分通過(guò),阻止屬于高頻部分中的噪聲信號,也就是平時(shí)所說(shuō)的低通濾波。但是在圖像平滑過(guò)程中也阻止了高頻部分的圖像邊緣,使得圖像邊緣模糊化。所以應找到能消除噪聲,同時(shí)盡量保持圖像細節,邊緣輪廓的算法,又要保證智能車(chē)輛視覺(jué)導航系統對實(shí)時(shí)性的要求。中值濾波能夠在抑制高頻信號中的隨機噪聲的同時(shí)不使邊緣模糊,可以抑制隨機的點(diǎn)狀噪聲,抑制持續期小于1/2窗口的脈沖信號,但不影響斜坡信號和階躍信號,能夠削弱三角信號中的頂部峰值信號,因而受到歡迎,它屬于非線(xiàn)性濾波。
  中值濾波是將鄰域中的像素按灰度級排序,取其中間值為輸出像素。中值計算過(guò)程中使用到的像素數和鄰域的空間范圍影響到中值濾波的效果。本文采用3×3方形中值濾波模板對圖像進(jìn)行預處理既能取得較好的濾波效果,又能節省運算時(shí)間。
  圖像邊緣增強
  在車(chē)輛視覺(jué)導航系統中,道路邊緣信息可以提供路徑保持和路徑跟蹤的位置信息,是實(shí)現車(chē)輛自主導航功能不可或缺的。邊緣增強的目的在于突出道路的邊緣信息,以利于道路車(chē)道線(xiàn)的識別,有助于克服道路光照不均的影響。我們對濾波后的圖像從水平和垂直兩個(gè)方向進(jìn)行邊緣增強,可以得到非常好的效果。
  圖像邊緣檢測
  在圖像的多目標檢測和識別技術(shù)中,邊緣檢測作為一種預處理算法在機器視覺(jué)技術(shù)中占有重要地位。邊緣檢測的算法很多,參考各種算法的優(yōu)缺點(diǎn),并結合道路檢測的復雜性,我們這里選用Sobel算子。
  Sobel邊緣算子是一種一階差分算子。它可以有效地消除道路圖像中的大部分無(wú)用信息。它可以有效的抑制圖像中的噪聲,它的計算量比較小,容易實(shí)現,對于實(shí)時(shí)性要求比較高的系統,該算法有很大的優(yōu)勢。
  車(chē)道標志線(xiàn)提取
  本文重點(diǎn)討論道路區域車(chē)道線(xiàn)的提取。日常生活中最常見(jiàn)的路面邊界是直線(xiàn),車(chē)輛主要也是在直線(xiàn)路面上行駛的。平時(shí)見(jiàn)到的直線(xiàn)路面邊界是成一定角度的兩條直線(xiàn),根據三維空間點(diǎn)投影到二維平面的特點(diǎn),直線(xiàn)路面邊界在二維平面上形成兩條相交的直線(xiàn),直線(xiàn)路面邊緣提取算法如下:
  (1)根據二維直線(xiàn)路面的實(shí)際情況,建立X-Y坐標系,并給出恰當的路面邊緣解析方程。
  (2)根據圖像的特點(diǎn),取一組合理的ρ、θ范圍和步長(cháng),設置累加器為零。將圖像的解析方程轉化成極坐標下的形式,即ρ=xcosθ+ysinθ,如圖2所示,ρ為原點(diǎn)到直線(xiàn)垂直距離,θ為X軸與垂線(xiàn)之間的夾角。
  (3)對梯度圖上超過(guò)門(mén)限值的每個(gè)點(diǎn)作Hough變換,并對相應的累加器加1.
  (4)找出累加器A(ρ,θ)上的極大值ρM、θM.通過(guò)這兩個(gè)值可以找出圖像中極有可能的邊界。
  (5)去除干擾。根據三維物體在攝像機上成像的特點(diǎn),三維空間中平行的路面邊緣在二維平面形成兩條成一定角度的相交直線(xiàn),如圖3中虛線(xiàn)所示。但由于路面噪聲的影響,在累加器A(ρ,θ)上的極大值ρM、θM周?chē)嬖诙鄠(gè)較大值,它們在X-Y軸上對應的直線(xiàn)如圖3中兩條實(shí)線(xiàn)所示,顯然這不是要求的邊緣,所以將累加器ρM、θM周?chē)c(diǎn)置0.
  (6)找出累加器A(ρ,θ)上次大值ρM、θM.A(ρ,θ)上的次大值對應圖像中路面的另一條邊界。
  (7)得到相應的X-Y上對應直線(xiàn)方程。進(jìn)一步可以得到:b=-ρ/sinθ,k=ctgθ通過(guò)這兩個(gè)方程式得到ρ、θ值之后,可以求得相應的k、b值。
  由于圖像的連續性,圖像序列中車(chē)道線(xiàn)的位置不會(huì )發(fā)生突變,我們在識別一幀圖像的車(chē)道線(xiàn)時(shí)是以上一幀的識別結果為依據,動(dòng)態(tài)地規劃搜索區域,動(dòng)態(tài)地規劃Hough變化的ρ和θ值,這樣就減少了計算量,提高了算法的實(shí)時(shí)性,也可提高可靠性。
                               
                  系統硬件設計
  本文選取ICETEK-OMAP3530-Mini開(kāi)發(fā)板為實(shí)驗平臺,該開(kāi)發(fā)板是由北京瑞泰創(chuàng )新科技有限責任公司與美國德州儀器公司合作推出,是一個(gè)開(kāi)放的OMAP3530的硬件平臺,它是以TI最新的、高性能的ARM CortexA8處理器OMAP3530為核心,以DSP64x+內核作為強勁的輔助圖像處理,優(yōu)化硬件2D/3D加速器,形成一個(gè)精簡(jiǎn)完備的計算機系統。
  選用CMOS攝像頭OV7670.OV7670是Omnivision公司生產(chǎn)的一款30萬(wàn)像素的彩色圖像傳感器芯片,體積小、工作電壓低,提供單片VGA攝像頭和影像處理器的所有功能。其特點(diǎn)有:靈敏度高,適合低亮度下使用;標準串行攝像頭控制總線(xiàn)(SCCB),兼容IIC接口;自動(dòng)曝光控制;自動(dòng)增益控制;自動(dòng)白平衡;自動(dòng)消除燈光條紋;自動(dòng)黑電平校準;圖像格式可以是原始RGB、RGB(4:2:2)、RGB565/555/444、YUV(4:2:2)、YCbCr(4:2:2)。OV7670與ICETEK-OMAP3530-Mini板通過(guò)USB接口連接在一起。
  系統軟件設計
  OMAP3530是一款雙核微處理器,由ARM核和DSP核兩部分組成,二者之間軟件的編程和運行都是相互獨立的,通過(guò)DSP/BIOS Link完成雙核之間的通信。ARM端采用嵌入式Linux操作系統,動(dòng)態(tài)創(chuàng )建、控制和刪除DSP節點(diǎn),實(shí)現數據的高效傳輸。DSP端采用DSP/BIOS實(shí)時(shí)操作系統,支持eXPressDSP實(shí)時(shí)軟件技術(shù),由DSP/BIOS實(shí)時(shí)內核、可重構的DSP算法和第三方軟件模塊組成。
  由系統結構可見(jiàn),軟件設計主要包括:ARM端引導程序和Linux系統的移植;捕獲道路圖像程序。
  ARM端引導程序和Linux系統的移植
  為便于項目的開(kāi)發(fā)和調試,ICETEK-OMAP3530-Mini板采用SD卡啟動(dòng),本系統中使用的X-Loader的版本是x-loader1.4.2,U-boot的版本是Uboot-2009.01,Linux內核的版本是Linux-2.6.28,Busybox的版本是busybox-1.12.2,該過(guò)程的主要步驟如下:
  (1)在開(kāi)發(fā)主機Linux PC里安裝交叉編譯工具;
  (2)交叉編譯X-Loader,生成鏡像文件x-load.bin.ift,然后轉化為SD卡啟動(dòng)用程序MLO;
  (3)交叉編譯U-boot,生成u-boot.bin和mkimage工具;
  (4)驅動(dòng)配置并交叉編譯內核,生成內核鏡像文件uImage;
  (5)利用Busybox制作文件系統;
  (6)將上述生成的二進(jìn)制文件復制到SD.
  捕獲道路圖像
  Linux系統對視頻設備的操作提供了兩套API,分別是Video 4 Linux(簡(jiǎn)稱(chēng)V4L)和Video 4 Linux 2(簡(jiǎn)稱(chēng)V4L2)。早期開(kāi)發(fā)的V4L存在很多缺陷,Bill Dirks等人對其進(jìn)行了重新設計,更名為V4L2,相比于V4L有很好的擴展性和靈活性,并且支持更多的硬件設備。這兩套API不兼容,本文采用V4L2進(jìn)行USB攝像頭視頻編程。
  利用V4L2提供的接口,我們可以編寫(xiě)出具有視頻采集功能的測試代碼。下面就主要的環(huán)節做一些說(shuō)明。
  (1)打開(kāi)視頻設備
  cameraFd=open(“/dev/video0”, O_RDWR, O);
  (2)查詢(xún)設備屬性
  通過(guò)調用ioctl函數和接口命令VIDIOC_QUERYCAP,查詢(xún)攝像頭的信息,見(jiàn)程序段1.
  ———————————————————————
  if (ioctl(fd, VIDIOC_QUERYCAP, == -1) {
  …
  } else {…
  if ((cap.capabilities V4L2_CAP_VIDEO_CAPTURE) == V4L2_CAP_VIDEO_ CAPTURE) {
  …}
  if ((cap.capabilities V4L2_CAP_STREAMING) == V4L2_CAP_STREAMING) {
  …} }
  while(ioctl(fd,VIDIOC_ENUM_FMT, {…}
  ———————————————————————
  程序段1查詢(xún)攝像頭屬性
  (3)設置像素格式
  一般的USB攝像頭都會(huì )支持YUV,可能還會(huì )支持其他更多的格式。通過(guò)上一步對攝像頭所支持像素格式的查詢(xún),下面利用ioctl函數對格式進(jìn)行設置,見(jiàn)程序段2.———————————————————————
  fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
  fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
  fmt.fmt.pix.height = IMAGEHEIGHT;
  fmt.fmt.pix.width = IMAGEWIDTH;
  fmt.fmt.pix.field = V4L2_FIELD_INTERLACED;
  ioctl(fd, VIDIOC_S_FMT,
  ———————————————————————
                               
                  程序段2設置像素格式
  (4)申請緩存區,并獲取每個(gè)緩存的信息
  V4l2捕獲的數據,是存放在內核空間里的,用戶(hù)不能直接訪(fǎng)問(wèn)該段內存,必須通過(guò)某些方法來(lái)轉換地址。這里我們采用mmap映射方式,相關(guān)代碼見(jiàn)程序段3.
  


  圖1車(chē)道線(xiàn)識別算法流程圖
  


  圖2路面邊緣示意圖
  


  圖3干擾直線(xiàn)
  ———————————————————————
  req.count=4;
  req.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;
  req.memory=V4L2_MEMORY_MMAP;
  ioctl(fd,VIDIOC_REQBUFS,
  ———————————————————————
  程序段3映射內核空間到用戶(hù)空間
  (5)開(kāi)始采集視頻
  type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
  ioctl (fd, VIDIOC_STREAMON,
  (6)取出緩沖區中已經(jīng)采樣的緩存
  ioctl(fd,VIDIOC_DQBUF,
  (7)停止采集和關(guān)閉設備
  int close_v4l2(void)
  { ioctl(fd, VIDIOC_STREAMOFF,
  …}
  實(shí)驗測試
  本文設計的視頻圖像采集模塊及測試演示系統實(shí)物圖如圖4所示。
  在學(xué)校外的新蘭路上采集到了回旋曲線(xiàn)、拋物線(xiàn)、直線(xiàn)三種結構化道路圖像,對采集到的三種道路圖像應用車(chē)道線(xiàn)識別算法處理,提取出車(chē)道標志線(xiàn),效果圖如5所示。從效果圖中可以看出該算法基本上對由光照的強弱、對陰影區域和對道路的質(zhì)量等造成的問(wèn)題影響不大,表現出很好的識別效果。
  


  圖4視頻圖像采集演示系統
  


  圖5三種結構化道路車(chē)道線(xiàn)提取效果圖
                               
                  (一)識別效果分析此分析的實(shí)驗是在MATLAB上進(jìn)行的。測試評估是通過(guò)本文的識別算法的效果與人工掃描獲得的圖像真實(shí)值進(jìn)行比較得出算法的各項指標。判斷識別正確與否的原則是:
  (1)當識別的結果與實(shí)際值誤差在0.5m之內,并且角度變化在8°之內的目標認為是正確識別,否則認為是誤識別。
  (2)真實(shí)值中存在而系統沒(méi)有識別出來(lái)的認為是漏檢,誤檢和漏檢都認為是錯誤識別。
  (3)真實(shí)值中沒(méi)有,但是系統識別出來(lái)的車(chē)道線(xiàn)算是誤識別。
  根據本文提出的車(chē)道線(xiàn)識別算法,分別選取了上述三種結構化道路場(chǎng)景的500幀圖像進(jìn)行測試,識別率對照表如下所示。
  (二)響應速度分析
  運行MATLAB軟件需要耗費很多的系統資源,使得算法在其下的運行速度比較慢,所以不適合用MATLAB進(jìn)行算法的響應速度測試。本文提出的算法先用C語(yǔ)言實(shí)現,然后在Linux環(huán)境下使用gettimeofday()函數來(lái)計算運行時(shí)間。本文算法在Ubuntu Linux平臺上的處理時(shí)間平均約為27.8ms.
  本文提出的車(chē)道線(xiàn)識別算法在識別能力和響應速度上都比以往的算法有所提高,能夠滿(mǎn)足實(shí)際應用的需要,但性能還需要進(jìn)一步的優(yōu)化。
  結束語(yǔ)
  基于達芬奇技術(shù)的OMAP3530實(shí)現了車(chē)道線(xiàn)識別檢測的功能。ARM核控制OV7670攝像頭捕獲到道路圖像,然后經(jīng)由DSP/BIOS Link傳輸到DSP核,由DSP核完成車(chē)道線(xiàn)的識別檢測,最后提取到清晰的車(chē)道標志線(xiàn)。試驗結果表明,本算法可以保證車(chē)道線(xiàn)識別的準確性、實(shí)時(shí)性和魯棒性,能夠滿(mǎn)足實(shí)際需要。
  表1兩種算法識別率對照表
  

                               
               
本文地址:http://selenalain.com/thread-155803-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页