在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 雙目立體視覺攝像頭模塊開發(fā)搭建,含源代碼、電路圖

            雙目立體視覺攝像頭模塊開發(fā)搭建,含源代碼、電路圖

            作者: 時(shí)間:2017-06-08 來源:網(wǎng)絡(luò) 收藏

            本文引用地址:http://www.biyoush.com/article/201706/351008.htm

            作品摘要

            本作品為基于ATLYS 開發(fā)平臺(tái)、VmodCAM模塊開發(fā)設(shè)計(jì)的雙目系統(tǒng)。VmodCAM用于采集雙路的視覺信息,開發(fā)平臺(tái)負(fù)責(zé)完成視覺信息的處理及圖像的高速分析。采集到得左右兩路圖像信息通過分析處理,便可得到二維圖像上的深度信息。深度信息的體現(xiàn)本作品中設(shè)計(jì)了兩種方式,其一為視覺信息的立體顯示,經(jīng)過處理生成疊加的紅藍(lán)3D圖像,給人直觀上的立體感受。該設(shè)計(jì)方面可以應(yīng)用于的采集與顯示,定位為的采集與顯示系統(tǒng)。另一方面,通過在片上設(shè)計(jì)的高速圖像處理系統(tǒng),可以根據(jù)左右圖像的差距,計(jì)算出圖像的深度信息,也就是物體在環(huán)境中相對(duì)于的三維坐標(biāo)。該設(shè)計(jì)方面可以應(yīng)用到人機(jī)交互、機(jī)器視覺領(lǐng)域,作為機(jī)器對(duì)環(huán)境情況的認(rèn)知設(shè)備。

            FPGA開發(fā)板在本作品中的作用主要有:①配置攝像頭模塊,采集攝像頭數(shù)據(jù);②將圖像數(shù)據(jù)緩存在片外的DDR2中;③完成圖像的分析處理;④完成圖像的顯示及。

            設(shè)計(jì)目標(biāo)

            一方面,完成立體視覺實(shí)時(shí)采集與顯示系統(tǒng)的設(shè)計(jì),讓人戴上3D眼鏡后可以實(shí)時(shí)看到立體畫面;另一方面,實(shí)現(xiàn)物體三維空間定位。

            已實(shí)現(xiàn):基于紅藍(lán)3D眼鏡的立體視覺實(shí)時(shí)采集與顯示;紅外光點(diǎn)的三維空間定位。

            將實(shí)現(xiàn):基于偏振3D眼鏡的立體視覺實(shí)時(shí)采集與顯示;簡(jiǎn)單環(huán)境下的物體空間定位及環(huán)境三維重建,并開發(fā)成用于人機(jī)交互的設(shè)備。

            設(shè)計(jì)總概

            本設(shè)計(jì)為在FPGA片上完成的視頻、圖像采集與處理系統(tǒng),完成三維圖像的重建與數(shù)學(xué)建模。片上系統(tǒng)使用VHDL+Verilog聯(lián)合開發(fā),具有很高的數(shù)據(jù)處理速度。該設(shè)計(jì)的兩個(gè)方面目前已初步實(shí)現(xiàn),圖像的采集、處理過程均由片上系統(tǒng)完成,為該設(shè)計(jì)的進(jìn)一步優(yōu)化打下了很好的基礎(chǔ)。

            開發(fā)工具

            硬件方面:

            • Diglient ATLYS FPGA 開發(fā)板
            • Diglient VmodCAM 模塊
            • LCD 顯示器
            • 計(jì)算機(jī)

            軟件方面:

            • XILINX ISE
            • Digilent Adept
            • Processing

            背景

            根據(jù)有關(guān)科學(xué)統(tǒng)計(jì),人們通過視覺獲得的信息量約占獲得信息總量的70%。視覺信息中具有著很多有價(jià)值的信息量,但是由于視覺信息數(shù)據(jù)量大,處理過程復(fù)雜等因素,過去很長(zhǎng)一段時(shí)間中,視覺信息處理僅處于理論研究階段。

            過去20年間,隨著IT產(chǎn)業(yè)的飛速前進(jìn),軟硬件方面均發(fā)生的翻天覆地的變化,這讓許多復(fù)雜的視覺信息的處理的過程變得越來越可實(shí)現(xiàn)化。

            近幾年以來,視頻圖像處理方向上的工程應(yīng)用越來越多,并已走入大多數(shù)人的生活。比如:指紋識(shí)別、Kinect體感器等等。

            然而,目前的圖像處理過程的實(shí)現(xiàn)大多是基于軟件平臺(tái)的,如Intel開發(fā)的圖像處理庫(kù)OpenCV等。對(duì)于低速、簡(jiǎn)單的圖像處理,軟件尚能勝任,但高速、雜的圖像處理過程用軟件處理起來很難達(dá)到實(shí)時(shí)性。鑒于這方面的原因,我們決定采用FPGA的并行處理、流水線處理能力實(shí)現(xiàn)視覺信息的高速處理。

            通過FPGA做視覺信息處理的過程,不斷探索硬件圖像處理算法。同時(shí),圖像具有的很多方面特征用并行處理方式去完成將具有顯著優(yōu)勢(shì),這也將是未來圖像處理的一個(gè)重要發(fā)展方向。

            設(shè)計(jì)介紹

            第一部分:立體視頻采集與顯示

            • 系統(tǒng)組成:

            ?。?總體框圖:

            本系統(tǒng)由從硬件上看由三大部分構(gòu)成,分別是用于圖像采集的攝像頭模塊、實(shí)現(xiàn)圖像處理的FPGA開發(fā)板、進(jìn)行結(jié)果顯示的LCD顯示器。

            2.硬件組成部分:

            (1)攝像頭模塊:采用Digilent公司出品的VmodCAM攝像頭模塊。該模塊上搭載有兩個(gè)Micron公司的MT9D112 CMOS圖像傳感器(本系統(tǒng)中用到一個(gè))。該傳感器最高支持1600x900分辨率,采用IIC的配置協(xié)議,并且內(nèi)置PLL鎖相環(huán),能夠產(chǎn)生嚴(yán)格精準(zhǔn)相位的控制時(shí)鐘,達(dá)到高速高精度的目的。

            • 數(shù)據(jù)處理系統(tǒng):本硬件平臺(tái)的數(shù)據(jù)圖像處理,智能識(shí)別系統(tǒng)由FPGA開發(fā)板實(shí)現(xiàn)。本項(xiàng)目中使用的為Digilent公司的ATLYS FPGA 開發(fā)板。其上集成的FPGA 芯片為Xilinx 公司生產(chǎn)的Spartan-6 LX45。該開發(fā)板上集成有多個(gè)視頻輸入輸出接口(HDMI),適合做視頻處理。

            • 顯示模塊:我們采用液晶顯示器作為系統(tǒng)的顯示界面,達(dá)到可視化強(qiáng),便于實(shí)時(shí)的交互的效果。

            1. 片內(nèi)系統(tǒng)部分:

            (1)系統(tǒng)架構(gòu)

            (1)系統(tǒng)架構(gòu)

            (2)攝像頭模塊

            Input:

            D_I(7:0):8-bit數(shù)據(jù)輸入(data input),來自片外的攝像頭模塊,傳輸像素的值,通常兩個(gè)時(shí)鐘的數(shù)據(jù)(16bit)組成一個(gè)像素值;

            CLK:時(shí)鐘信號(hào),來自時(shí)鐘模塊Inst_SysCon的CAMCLK_O輸出;

            CLK_180:時(shí)鐘信號(hào),來自時(shí)鐘模塊Inst_SysCon的CAMCLK_180_O輸出(應(yīng)該為CLK信號(hào)的180度相差信號(hào),用來與CLK協(xié)調(diào)完成D_I(7:0)到D_O(15:0)的轉(zhuǎn)化,起到像素前后部分的標(biāo)志位作用);

            FV_I:幀有效信號(hào)(Frame Valid),也稱場(chǎng)同步信號(hào),來自攝像頭模塊,輸出一幀圖像期間,電平為高,幀與幀之間時(shí),電平拉低;(參見MT9D112_DS Page28 Figure18)

            LV_I:行有效信號(hào)(Line Valid),也稱行同步信號(hào),來自攝像頭模塊,輸出圖像的一行期間,電平為高,行與行之間時(shí),電平拉低;(參見MT9D112_DS Page28 Figure18)

            PCLK_I:信號(hào)來自CAM_PCLK_I經(jīng)過I/O緩沖器(IOBUF)后的輸出,邏輯上等價(jià)于CAM_PCLK_I;

            RST_I:模塊復(fù)位信號(hào),來自SysCon模塊的ASYNC_RST端口。

            Output:

            D_O(15:0):16-bit數(shù)據(jù)輸出信號(hào)(RGB565),由兩個(gè)8-bit的輸入數(shù)據(jù)組裝得到,代表一個(gè)像素的顏色值等,輸出給FBCtl圖像緩存控制模塊的DIA(15:0);

            DV_O:輸出給FBCtl圖像緩存控制模塊的ENA,作為使能信號(hào),每當(dāng)一個(gè)像素的16位數(shù)值配齊時(shí)置1;

            MCLK_O:輸出給攝像頭,作為其外部時(shí)鐘信號(hào)XCLK的輸入(6—54MHz);

            PCLK_O:輸出給FBCtl圖像緩存控制模塊的CLKA,來自于PCLK_I的緩沖,作為圖像存儲(chǔ)時(shí)的像素同步時(shí)鐘;

            PWDN_O:恒定為0,直接輸出給攝像頭的,起到power_up功能;

            RST_O:輸出給攝像頭,用作攝像頭復(fù)位(低有效);

            VDDEN_O:與Inst_camctlB的相同端口求與后輸出到攝像頭的VDDEN管腳,應(yīng)該是連到攝像頭,作為工作接通通電源的使能信號(hào);

            SCL:輸出到攝像頭的SCLK端口(FPGA→Camera),作為串行接口的時(shí)鐘輸入;

            SDA:輸出到攝像頭的SDATA端口(FPGA↔Camera),作為串行接口的信號(hào)傳輸。

            (3)圖像緩存控制模塊

            Input:

            ENC:來自VideoTimingCtl模塊的VDE_O端口,讀寫控制();

            RSTC_I:來自SysCon模塊的ASYNC_RST端口;

            CLKC:來自SysCon模塊的PCLK_O端口;

            //////////////////////////////////////////////////////////////////////////////

            ENB:來自CamCtlB模塊的DV_O端口,讀寫控制(1寫);

            RSTB_I:來自Inst_InputSync_FVB模塊的D_O端口取反與SysCon模塊的ASYNC_RST端口求或;

            CLKB:來自CamCtlB模塊的PCLK_O端口;

            /////////////////////////////////////////////////////////////////////////////

            ENA:來自CamCtlA模塊的DV_O端口,讀寫控制(1寫);

            RSTA_I:來自Inst_InputSync_FVA模塊的D_O端口取反與SysCon模塊的ASYNC_RST端口求或;

            CLKA:來自CamCtlA模塊的PCLK_O端口;

            /////////////////////////////////////////////////////////////////////////////

            ddr2clk_2x:來自SysCon模塊的DDR2CLK_2X_O端口;

            ddr2clk_2x_180:來自SysCon模塊的DDR2CLK_2X_180_O端口;

            pll_ce_0:來自SysCon模塊的PLL_CE_0_O端口;

            pll_ce_90:來自SysCon模塊的PLL_CE_90_O端口;

            pll_lock:來自SysCon模塊的PLL_LOCK端口;

            async_rst:來自SysCon模塊的ASYNC_RST端口;

            mcb_drp_clk:來自SysCon模塊的MCB_DRP_CLK_O端口;

            RD_MODE(1:0):來自SysCon模塊的MSEL_O(1:0)端口;

            DIB(15:0):來自Inst_camctlB模塊的D_O(15:0)端口;

            DIA(15:0):來自Inst_camctlA模塊的D_O(15:0)端口;

            Output:

            RDY_O:該信號(hào)取反后與SysCon模塊的ASYNC_RST信號(hào)求或后輸給VideoTimingCtl模塊的RST_I端口;

            mcb3_dram_ras_n:輸出給DDR2;

            mcb3_dram_cas_n:輸出給DDR2;

            mcb3_dram_we_n:輸出給DDR2;

            mcb3_dram_odt:輸出給DDR2;

            mcb3_dram_cke:輸出給DDR2;

            mcb3_dram_dm:輸出給DDR2;

            mcb3_dram_udm:輸出給DDR2;

            mcb3_dram_ck:輸出給DDR2;

            mcb3_dram_ck_n:輸出給DDR2;

            DOC(15:0):輸出給DVITransmitter模塊的BLUE_I/GREEN_I/RED_I,以RGB565的方式自高位向低位排列;

            mcb3_dram_a(12:0):輸出給DDR2;

            mcb3_dram_ba(2:0):輸出給DDR2;

            mcb3_dram_udqs:雙向端口,連接到DDR2;

            mcb3_dram_udqs_n:雙向端口,連接到DDR2;

            mcb3_rzq:雙向端口,連接到DDR2;

            mcb3_zio:雙向端口,連接到DDR2;

            mcb3_dram_dqs:雙向端口,連接到DDR2;

            mcb3_dram_dqs_n:雙向端口,連接到DDR2;

            mcb3_dram_dq(15:0):雙向端口,連接到DDR2;

            • 圖像處理實(shí)現(xiàn):

            第二部分:三維空間定位

            • 硬件組成:
            1. 攝像頭模塊:在攝像頭前加裝了兩個(gè)850nm的紅外濾光片,用來濾出紅外光點(diǎn)。

            1. 紅外光點(diǎn):

            1. LCD顯示器:用于光點(diǎn)識(shí)別的顯示。

            1. 光點(diǎn)檢測(cè)片上模塊

            模塊源代碼:

            module center(

            input pclk, // pixel clock

            input din, // 1-bit pixel value, come from BW image buffer

            input [11:0] Hcnt, // 0-1599 來自VideoTimmingCtl的HCNT_O

            input [10:0] Vcnt, // 0-899 來自VideoTimmingCtl的 VCNT_O

            output reg[11:0] center_h, // 0-1599,中點(diǎn)橫向坐標(biāo)

            output reg [10:0] center_v // 0-899,中點(diǎn)縱向坐標(biāo)

            );

            reg [20:0] num; //亮點(diǎn)區(qū)像素總數(shù)

            wire [19:0] h_num; //亮點(diǎn)區(qū)像素總數(shù)的一半

            reg [20:0] num_cnt; //亮點(diǎn)區(qū)像素總數(shù)計(jì)數(shù)

            reg [11:0] h_cnt; //中點(diǎn)橫向坐標(biāo)計(jì)數(shù)

            reg [10:0] v_cnt; //中點(diǎn)縱向坐標(biāo)計(jì)數(shù)

            reg [20:0] center_line_sum; //中間一行的有效像素橫坐標(biāo)和

            reg [20:0] center_line_sum_cnt; //中間一行的有效像素橫坐標(biāo)和計(jì)數(shù)

            reg [10:0] center_line_num; //中間一行的有效像素總數(shù)

            reg [10:0] center_line_num_cnt; //中間一行的有效像素總數(shù)計(jì)數(shù)

            assign h_num= num[20:1];

            //有效區(qū)間

            reg en;

            always@(*) begin

            if(Hcnt>0 Hcnt1599 Vcnt>0 Vcnt899)

            en= 1;

            else

            en= 0;

            end

            //亮點(diǎn)區(qū)像素總數(shù)計(jì)數(shù)

            always@(posedge pclk) begin

            if(Hcnt==1 Vcnt==0) //掃描到像素點(diǎn)(1,0)處時(shí)

            begin

            num_cnt= 0;

            end

            else

            if(din==1 en==1) num_cnt= num_cnt+1;

            else num_cnt= num_cnt;

            end

            //中點(diǎn)縱坐標(biāo)計(jì)數(shù)

            always@(posedge pclk) begin

            if(num_cnth_num) v_cnt= Vcnt;

            else v_cnt= v_cnt;

            end

            //中間一行有效像素橫坐標(biāo)和

            always@(posedge pclk) begin

            if(Hcnt==1 Vcnt==0) //掃描到像素點(diǎn)(1,0)處時(shí)

            begin

            center_line_sum_cnt= 0;

            end

            else

            if(Vcnt==center_v en==1 din==1)

            center_line_sum_cnt= center_line_sum_cnt + Hcnt;

            else

            center_line_sum_cnt= center_line_sum_cnt;

            end

            //中間一行的有效像素總數(shù)

            always@(posedge pclk) begin

            if(Hcnt==1 Vcnt==0) //掃描到像素點(diǎn)(1,0)處時(shí)

            begin

            center_line_num_cnt= 0;

            end

            else

            if(Vcnt==center_v en==1 din==1)

            center_line_num_cnt= center_line_num_cnt + 1;

            else

            center_line_num_cnt= center_line_num_cnt;

            end

            //除法器

            wire rfd;

            wire [10:0] fractional;

            wire [20:0] quotient;

            div Divider (

            .rfd(rfd),

            .clk(pclk),

            .dividend(center_line_sum),

            .quotient(quotient),

            .divisor(center_line_num),

            .fractional(fractional)

            );

            //一幀結(jié)尾賦值

            always@(posedge pclk) begin

            if(Hcnt==1598 Vcnt==899)//掃描到像素點(diǎn)(1598,899)處時(shí)

            begin

            num= num_cnt;

            center_v= v_cnt;

            center_h= quotient[11:0];

            center_line_sum= center_line_sum_cnt;

            center_line_num= center_line_num_cnt;

            end

            end

            endmodule

            • 軟件部分:

            PC上在Processing環(huán)境中開發(fā)了一個(gè)3D動(dòng)畫界面,通過立方體模擬紅外光點(diǎn)的三維位置。該程序接收從開發(fā)板經(jīng)由UART協(xié)議發(fā)來的光點(diǎn)坐標(biāo),并將結(jié)果顯示在窗口中。



            評(píng)論


            相關(guān)推薦

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

            關(guān)閉