<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 最牛汽車環(huán)視系統(tǒng)設(shè)計,實現(xiàn)360度無死角的安全駕駛

          最牛汽車環(huán)視系統(tǒng)設(shè)計,實現(xiàn)360度無死角的安全駕駛

          作者: 時間:2015-09-02 來源:網(wǎng)絡(luò) 收藏

            一. 項目概述

          本文引用地址:http://www.ex-cimer.com/article/279621.htm

            隨著當(dāng)前國民經(jīng)濟(jì)的快速發(fā)展和人民生活水平的提高,越來越多的家庭擁有汽車作為代步工具,如何安全便捷地泊好車成為了眾多駕駛者共同面對的難題。

            傳統(tǒng)的泊車系統(tǒng)主要通過三種手段使司機(jī)能夠看到汽車后方情況,這些手段分別是倒后鏡、倒車?yán)走_(dá)和倒車攝像頭。然而,這三種手段都存在車側(cè)面這個盲區(qū)。對于一些較復(fù)雜路段,司機(jī)只能看到前后方向,而車體兩側(cè)則容易被路邊異物刮傷。

            因此,對汽車360°環(huán)視系統(tǒng)進(jìn)行研究和開發(fā)具有很高的前景性和應(yīng)用性。本項目采用 Spartan 6 進(jìn)行算法的開發(fā)及系統(tǒng)控制。

            二.系統(tǒng)功能描述

            2.1 系統(tǒng)功能

            根據(jù)本項目的設(shè)計目標(biāo),本設(shè)計需要完成的功能有:

            采集車的前方后方共四個攝像機(jī)的圖像信息

            將四個攝像機(jī)得到的視頻信息通過視頻處理技術(shù),拼接成一幅360度環(huán)視圖像

            360度環(huán)視圖像需要有連貫性, 不能感覺到有明顯拼接跡象

            2.2 時間性能

            根據(jù)本項目的設(shè)計目標(biāo),汽車環(huán)視系統(tǒng)應(yīng)該能夠?qū)B續(xù)視頻幀圖像進(jìn)行實時處理, 以保證汽車駕駛的安全性。

            三. 方案設(shè)計

            3.1 系統(tǒng)工作原理

            3.1.1 理論分析

            為了達(dá)到360°全景的目標(biāo),每個攝像頭必須具有90°以上的視角,因此設(shè)計中我們采用了視角達(dá)170度的廣角魚眼鏡頭。

            使用中因為鏡頭視角足夠大,不同攝像頭的影像就會存在部分重疊現(xiàn)象,這樣只要合理配置攝像頭的位置,同時對重疊部分進(jìn)行合理拼接,就可以從4個攝像頭的影像恢復(fù)出360度視角的環(huán)視影像。

            3.1.2 系統(tǒng)整體結(jié)構(gòu)

            本系統(tǒng)采用 Spartan 6 進(jìn)行系統(tǒng)控制及圖像處理算法的開發(fā),根據(jù)系統(tǒng)功能需求和性能要求的分析,可得到其系統(tǒng)框圖如下所示:

            

          系統(tǒng)框圖

           

            系統(tǒng)框圖

            由圖可見,本系統(tǒng)主要由3部分組成,分別為攝像頭(4個),信號處理和顯示等。由攝像頭采集的視頻信號經(jīng)過采樣后送到信號處理部分進(jìn)行圖像處理和拼接,最后送到VGA液晶顯示器顯示。

            3.2 系統(tǒng)方案實現(xiàn)

            3.2.1 系統(tǒng)硬件設(shè)計

            系統(tǒng)硬件設(shè)計如下圖所示:

            

           

            攝像頭采集圖像信號后送到ADV7184進(jìn)行PAL信號解碼,解碼后的數(shù)字信號送到Spartan-6 進(jìn)行各種圖像處理,完成以后再將RGB信號送到ADV7123進(jìn)行VGA格式視頻輸出。

            ADV7184是一款集成式視頻解碼器,能夠自動檢測與全球NTSC、PAL和SECAM標(biāo)準(zhǔn)兼容的標(biāo)準(zhǔn)模擬基帶電視信號,并將其轉(zhuǎn)換為與16位或8位CCIR 601/CCIR 656兼容的4:2:2分量視頻數(shù)據(jù)。

            Spartan – 6是本系統(tǒng)的核心器件,其具有如下特點(diǎn):

            • 專用于低成本設(shè)計

            • 極低的靜態(tài)與動態(tài)功耗

            • 多電壓、多標(biāo)準(zhǔn) SelectIO™ 接口 bank

            • 高效率 DSP48A1 Slice

            • 高性能算術(shù)與信號處理

            • 快速 18 x 18 乘法器和 48 位累加器

            • 流水線與級聯(lián)功能

            • 用于協(xié)助濾波器應(yīng)用的預(yù)加法器

            • 集成存儲器控制器模塊

            • 針對以流水線應(yīng)用而設(shè)計的 LUT,具有雙觸發(fā)器

            • 具有各種粒度的 Block RAM

            • 低噪聲,高靈活度的時鐘控制

            ADV7123是一款高速數(shù)模轉(zhuǎn)換器,內(nèi)置三個高速、10位、帶互補(bǔ)輸出的視頻數(shù)模轉(zhuǎn)換器、一個標(biāo)準(zhǔn)TTL輸入接口以及一個高阻抗、模擬輸出電流源,用于驅(qū)動VGA輸出。其具有以下特點(diǎn):

            吞吐量:330 MSPS

            三通道、10位數(shù)模轉(zhuǎn)換器

            無雜散動態(tài)范圍(SFDR)

            RS-343A/RS-170兼容輸出

            互補(bǔ)輸出

            DAC輸出電流范圍:2 mA至26 mA

            TTL兼容輸入

            3.2.2 系統(tǒng)軟件設(shè)計

            

           

            如圖所示,本環(huán)視系統(tǒng)工作分為8步,其中,YCrCb到RGB制式轉(zhuǎn)換、圖像去噪、形狀校正、圖像裁切和拼接都由FPGA完成。

            在ADV7184解碼完畢后輸出YCrCb信號,為了方便后續(xù)處理過程,將其轉(zhuǎn)換為RGB格式。YCrCb與RGB制的轉(zhuǎn)換如下:

            由于攝像頭(如CCD等)在成像時或多或少會引入噪聲,尤其景物亮度不足時噪聲很明顯,這將影響后續(xù)的處理工作。因此,需要對轉(zhuǎn)換好的信號進(jìn)行去噪。

            由于采用魚眼鏡頭,邊緣處的部位會發(fā)生變形,因此,要進(jìn)行形狀校正。

            在進(jìn)行完前述的幾步處理后,接下來就可以對圖像進(jìn)行裁切和拼接了。圖像拼接的辦法有很多,這里可以采用先計算出每個鏡頭需要的形狀,然后按計算結(jié)果進(jìn)行裁切和拼接。

          攝像頭相關(guān)文章:攝像頭原理


          關(guān)鍵詞: Xilinx FPGA

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();