欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于Zynq軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng)的制作方法

文檔序號(hào):10921287閱讀:497來源:國知局
一種基于Zynq軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng)的制作方法
【專利摘要】本專利公開了一種基于Zynq軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng),包括Zynq主處理器、USB攝像頭、USB控制芯片、DDR3SDRAM、SD卡、SDRAM和VGA顯示器,主要用于實(shí)現(xiàn)增強(qiáng)現(xiàn)實(shí)系統(tǒng)的處理與顯示。技術(shù)方案如下:Zynq主處理器包括處理器系統(tǒng)和FPGA,處理器系統(tǒng)導(dǎo)入標(biāo)識(shí)圖像和計(jì)算USB攝像頭內(nèi)參數(shù);FPGA對(duì)USB攝像頭采集的圖像進(jìn)行預(yù)處理;然后把預(yù)處理結(jié)果通過AXI總線傳輸回處理器系統(tǒng),計(jì)算攝像頭的外參數(shù),并把虛擬圖像與真實(shí)圖像進(jìn)行實(shí)時(shí)融合,在VGA顯示器上進(jìn)行顯示。本專利具有以下有益效果:處理速度較快、實(shí)時(shí)性較好、處理能力較強(qiáng)、增強(qiáng)用戶體驗(yàn)、能降低系統(tǒng)功耗、具有通用性。
【專利說明】
一種基于Zynq軟硬件協(xié)同處理的増強(qiáng)現(xiàn)實(shí)系統(tǒng)
技術(shù)領(lǐng)域
[0001]本專利涉及計(jì)算機(jī)增強(qiáng)現(xiàn)實(shí)領(lǐng)域,特別涉及一種基于Zynq軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng)。
【背景技術(shù)】
[0002]增強(qiáng)現(xiàn)實(shí)(augmented reality,AR)技術(shù)是一種真實(shí)世界信息和虛擬世界信息“無縫”集成的新技術(shù),是把原本在現(xiàn)實(shí)世界的一定時(shí)間空間范圍內(nèi)很難體驗(yàn)到的視覺信息和聲音等,通過將計(jì)算機(jī)產(chǎn)生的圖形、文字和注釋等虛擬三維信息無縫自然地疊加融合到用戶所看到的真實(shí)世界場(chǎng)景中,從而擴(kuò)展人類認(rèn)知和感知世界的能力。
[0003]傳統(tǒng)的嵌入式增強(qiáng)現(xiàn)實(shí)處理系統(tǒng)的架構(gòu)如下:攝像頭采集真實(shí)世界圖像,ARM處理器對(duì)真實(shí)世界圖像進(jìn)行預(yù)處理,然后進(jìn)行標(biāo)識(shí)識(shí)別、三維注冊(cè)和虛實(shí)融合,最后將渲染后的圖像傳送到顯示器進(jìn)行實(shí)時(shí)顯示。由于ARM處理器是串行執(zhí)行處理程序的,對(duì)灰度化和邊緣檢測(cè)等步驟處理速度較慢,不容易做到實(shí)時(shí)處理圖像,其實(shí)時(shí)性不好,處理能力較差,影響用戶體驗(yàn),且程序過大,系統(tǒng)功耗較大,只能適用于一定場(chǎng)合,不具有通用性。

【發(fā)明內(nèi)容】

[0004]本專利要解決的技術(shù)問題在于,針對(duì)現(xiàn)有技術(shù)的上述處理速度較慢、實(shí)時(shí)性不好、處理能力較差、影響用戶體驗(yàn)、系統(tǒng)功耗較大、不具有通用性的缺陷,提供一種處理速度較快、實(shí)時(shí)性較好、處理能力較強(qiáng)、增強(qiáng)用戶體驗(yàn)、能降低系統(tǒng)功耗、具有通用性的基于Zynq軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng)。
[0005]本專利解決其技術(shù)問題所采用的技術(shù)方案是:構(gòu)造一種基于Zynq軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng),所述Zynq主處理器包括處理器系統(tǒng)和FPGA,所述處理器系統(tǒng)和FPGA通過高速AXI總線連接,所述處理器系統(tǒng)包括ARM處理器和DDR3控制器,還包括四個(gè)AXI_HP接口、四個(gè)AXI_GP接口和一個(gè)AXI_ACP接口,所述FPGA包括SDRAM控制器IP內(nèi)核模塊、VGA控制器IP內(nèi)核模塊和圖像預(yù)處理IP內(nèi)核模塊,所述USB控制芯片與所述USB攝像頭連接,所述USB控制芯片還與所述ARM處理器連接,所述DDR3 SDRAM通過所述DDR3控制器與所述ARM處理器連接,所述DDR3控制器還通過DMA傳輸通道連接所述高速AXI總線,所述SD卡與所述ARM處理器連接,所述SDRAM控制器IP內(nèi)核模塊與所述SDRAM連接,所述SDRAM控制器IP內(nèi)核模塊還通過視頻直接存儲(chǔ)器傳輸通道連接所述高速AXI總線,所述圖像預(yù)處理IP內(nèi)核模塊的輸入端和輸出端均通過視頻直接存儲(chǔ)器傳輸通道連接所述高速AXI總線,所述VGA控制器IP內(nèi)核模塊與所述VGA顯示器連接,所述VGA控制器IP內(nèi)核模塊還通過視頻直接存儲(chǔ)器傳輸通道連接所述高速AXI總線。
[0006]本專利還涉及一種利用上述基于Zynq軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng)進(jìn)行增強(qiáng)現(xiàn)實(shí)的方法,包括如下步驟:
[0007]步驟1:在SD卡中存儲(chǔ)Linux系統(tǒng)啟動(dòng)所需的文件,將所述Zynq主處理器的啟動(dòng)方式設(shè)置為SD卡啟動(dòng),上電自啟動(dòng)Linux系統(tǒng),編寫并運(yùn)行圖像預(yù)處理IP內(nèi)核模塊的驅(qū)動(dòng)、VGA控制器IP內(nèi)核模塊的驅(qū)動(dòng)和SDRAM控制器IP內(nèi)核模塊的驅(qū)動(dòng)程序,根據(jù)Vivado軟件給定的對(duì)應(yīng)IP內(nèi)核模塊的物理地址,編寫用于對(duì)物理地址進(jìn)行操作的內(nèi)核驅(qū)動(dòng)程序,運(yùn)行基于OpenCV的用于交互和顯不的Qt顯控程序;
[0008]步驟2:使用所述USB攝像頭采集給定的棋盤格圖像,使用OpenCV的攝像頭標(biāo)定程序?qū)λ鯱SB攝像頭進(jìn)行標(biāo)定,計(jì)算得到所述USB攝像頭的內(nèi)參數(shù),在Qt顯控程序中選擇標(biāo)識(shí)圖像并導(dǎo)入所述DDR3 SDRAM中,計(jì)算所述標(biāo)識(shí)圖像的海明碼信息,并通過視頻直接存儲(chǔ)器傳輸通道存儲(chǔ)在所述SDRAM中。
[0009]步驟3:利用OpenCV集成的OpenGL生成與所述標(biāo)識(shí)圖像對(duì)應(yīng)的三維虛擬信息,并將其通過視頻直接存儲(chǔ)器傳輸通道傳送到所述SDRAM進(jìn)行存儲(chǔ);
[0010]步驟4:所述ARM處理器實(shí)時(shí)采集所述USB攝像頭中的原始圖像,并通過視頻直接存儲(chǔ)器傳輸通道將其傳輸?shù)剿鯢PGA進(jìn)行緩存;
[0011]步驟5:使用VivadoHLS軟件編寫圖像預(yù)處理IP內(nèi)核模塊,并對(duì)所述原始圖像進(jìn)行圖像預(yù)處理得到二次處理圖像;所述圖像預(yù)處理包括對(duì)圖像進(jìn)行灰度變換、利用閾值分割進(jìn)行二值化處理、輪廓檢測(cè)、對(duì)檢測(cè)出的輪廓進(jìn)行多邊形逼近,找到與所述標(biāo)識(shí)圖像相近的四邊形作為候選標(biāo)識(shí)區(qū)域,記錄所述候選標(biāo)識(shí)區(qū)域的角點(diǎn)位置;
[0012]步驟6:將所述二次處理圖像經(jīng)視頻直接存儲(chǔ)器傳輸通道傳回所述ARM處理器,在Linux系統(tǒng)下編寫基于集成OpenGL的OpenCV的增強(qiáng)現(xiàn)實(shí)處理程序,并恢復(fù)所述原始圖像中標(biāo)識(shí)的正視圖,識(shí)別步驟5所述候選標(biāo)識(shí)區(qū)域中的特殊標(biāo)識(shí),并對(duì)識(shí)別出特殊標(biāo)識(shí)的步驟5所述候選標(biāo)識(shí)區(qū)域進(jìn)行位姿估計(jì),得到USB攝像頭的外參數(shù);所述USB攝像頭的外參數(shù)包括旋轉(zhuǎn)矩陣和平移向量;
[0013]步驟7:針對(duì)識(shí)別出特殊標(biāo)識(shí)的步驟5所述候選標(biāo)識(shí)區(qū)域,利用視頻直接存儲(chǔ)器傳輸通道從所述SDRAM中導(dǎo)入對(duì)應(yīng)的三維虛擬信息,并根據(jù)步驟2所述USB攝像頭的內(nèi)參數(shù)和步驟6所述的外參數(shù),將對(duì)應(yīng)的虛擬三維信息與所述原始圖像進(jìn)行融合,得到虛實(shí)融合的圖像;
[0014]步驟8:將步驟7所述虛實(shí)融合的圖像通過視頻直接存儲(chǔ)器傳輸通道傳輸?shù)絍GA控制器IP內(nèi)核模塊,所述VGA控制器IP內(nèi)核模塊控制VGA顯示器進(jìn)行顯示。
[0015]在本專利所述的利用上述基于Zynq軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng)進(jìn)行增強(qiáng)現(xiàn)實(shí)的方法中,所述步驟5的具體步驟包括:
[0016]5-1)在Vivado HLS軟件中編寫圖像預(yù)處理IP內(nèi)核模塊程序,把所述FPGA中緩存的圖像轉(zhuǎn)換成Mat類型的圖像;
[0017]5-2)把Mat類型的圖像由三通道的彩色圖像轉(zhuǎn)換成單通道的灰度圖像;
[0018]5-3)利用閾值分割法對(duì)所述單通道的灰度圖像進(jìn)行二值化處理,得到二值化圖像;
[0019]5-4)對(duì)所述二值化圖像進(jìn)行輪廓檢測(cè),得到包含多邊形輪廓的圖像;
[0020]5-5)利用多邊形近似法對(duì)多邊形輪廓進(jìn)行多邊形逼近,排除不是四邊形的多邊形輪廓區(qū)域;
[0021]5-6)計(jì)算候選標(biāo)識(shí)區(qū)域的角點(diǎn)位置,并把角點(diǎn)位置保存在所述原始圖像的數(shù)據(jù)結(jié)尾,作為候選標(biāo)識(shí)位置數(shù)據(jù);
[0022]5-7)利用Vivado HLS軟件對(duì)程序圖像預(yù)處理IP內(nèi)核模塊程序進(jìn)行流水線優(yōu)化,對(duì)處理速度和占用的資源進(jìn)行優(yōu)化,產(chǎn)生RTL級(jí)代碼,并封裝成IP內(nèi)核模塊。
[0023]在本專利所述的利用上述基于Zynq軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng)進(jìn)行增強(qiáng)現(xiàn)實(shí)的方法中,所述步驟6的具體步驟包括:
[0024]6-1)將所述二次處理圖像通過視頻直接存儲(chǔ)器傳輸通道傳送回ARM處理器,對(duì)每一個(gè)候選標(biāo)識(shí)區(qū)域進(jìn)行透視變換,得到候選標(biāo)識(shí)區(qū)域的正方形視圖;
[0025]6-2)使用Otsu算法對(duì)所述候選標(biāo)識(shí)區(qū)域進(jìn)行二值化處理,去掉灰度像素,只留下黑白像素;
[0026]6-3)計(jì)算所述候選標(biāo)識(shí)區(qū)域的正方形視圖內(nèi)部區(qū)域的海明碼信息,并計(jì)算其與SDRAM中存儲(chǔ)的標(biāo)識(shí)圖像的海明碼信息的海明距離,把所述候選標(biāo)識(shí)區(qū)域依次順時(shí)針或逆時(shí)針旋轉(zhuǎn)90度,重復(fù)計(jì)算海明距離,若當(dāng)前最小的海明距離為0,則當(dāng)前候選標(biāo)識(shí)區(qū)域是一個(gè)正確的標(biāo)識(shí)區(qū)域;
[0027]6-4)找到所述正確的標(biāo)識(shí)區(qū)域后,調(diào)用OpenCV函數(shù)按亞像素精度查找角點(diǎn)位置;
[0028]6-5)根據(jù)所述USB攝像頭的內(nèi)參數(shù)和候選標(biāo)識(shí)區(qū)域的角點(diǎn)位置,調(diào)用OpenCV的函數(shù)計(jì)算所述USB攝像頭的外參數(shù)。
[0029]實(shí)施本專利的基于Zynq軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng)及方法,具有以下有益效果:由于使用Zynq主處理器、USB攝像頭、USB控制芯片、DDR3 SDRAM、SD卡、SDRAM和VGA顯示器,Zynq主處理器包括處理器系統(tǒng)和FPGA,處理器系統(tǒng)和FPGA通過高速AXI總線連接,處理器系統(tǒng)包括ARM處理器和DDR3控制器,F(xiàn)PGA集成了28nm低功耗可編程邏輯,內(nèi)部包含片上高速AXI總線,大大提高了處理速度,降低硬件設(shè)計(jì)復(fù)雜度,由于采用軟硬件協(xié)同處理,ARM處理器和FPGA分擔(dān)不同的處理任務(wù),協(xié)同工作,這樣就能提高系統(tǒng)處理效率,降低功耗,使系統(tǒng)的通用性更好,采用SDRAM保存需要識(shí)別的標(biāo)識(shí)圖像的海明碼信息和對(duì)應(yīng)的三維虛擬信息,在多標(biāo)識(shí)識(shí)別和虛實(shí)融合時(shí),其更加快捷迅速,用戶體驗(yàn)度更好,所以其處理速度較快、實(shí)時(shí)性較好、處理能力較強(qiáng)、增強(qiáng)用戶體驗(yàn)、能降低系統(tǒng)功耗、具有通用性。
【附圖說明】
[0030]為了更清楚地說明本專利實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本專利的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0031]圖1為本發(fā)明基于Zynq軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng)及方法一個(gè)實(shí)施例中的系統(tǒng)的軟硬件架構(gòu)框圖;
[0032]圖2為所述實(shí)施例中方法的流程圖;
[0033]圖3為所述實(shí)施例中在ARM處理器上運(yùn)行Linux操作系統(tǒng),實(shí)現(xiàn)各外設(shè)和硬件IP內(nèi)核模塊的驅(qū)動(dòng),利用Qt實(shí)現(xiàn)用于交互和顯示的圖形界面的具體流程圖;
[0034]圖4為所述實(shí)施例中使用VivadoHLS軟件編寫圖像預(yù)處理IP內(nèi)核模塊,并對(duì)原始圖像進(jìn)行圖像預(yù)處理得到二次處理圖像的具體流程圖;
[0035]圖5為所述實(shí)施例中計(jì)算USB攝像頭的外參數(shù)的具體流程圖。
【具體實(shí)施方式】
[0036]下面將結(jié)合本專利實(shí)施例中的附圖,對(duì)本專利實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本專利一部分實(shí)施例,而不是全部的實(shí)施例?;诒局髂抢镏械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本專利保護(hù)的范圍。
[0037]在本專利基于Zynq的軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng)及方法實(shí)施例中,其基于Zynq的軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng)的軟硬件架構(gòu)框圖如圖1所示。圖1中,該基于Zynq的軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng)包括Zynq主處理器、USB攝像頭、USB控制芯片、DDR3SDRAM、SD卡、SDRAM和VGA顯示器,本實(shí)施例中,Zynq主處理器選用的是XiIinx Zynq-7030-FBG484,本實(shí)施例中,該Zynq主處理器包括處理器系統(tǒng)和FPGA,上述處理器系統(tǒng)和FPGA通過高速AXI總線連接,該處理器系統(tǒng)包括ARM處理器和DDR3控制器,還包括四個(gè)AXI_HP接口、四個(gè)AXI_GP接口和一個(gè)AXI_ACP接口,AXI_HP接口用于提供直接存儲(chǔ)器訪問模式的高帶寬數(shù)據(jù)通路,AXI_GP接口與高速AXI總線連接,AXI_GP接口用于實(shí)現(xiàn)ARM處理器和FPGA控制命令的傳輸,AXI_ACP接口與高速AXI總線連接,AXI_ACP接口用于作為FPGA訪問ARM處理器的緩存的低延時(shí)通路。該FPGA包括SDRAM控制器IP內(nèi)核模塊、VGA控制器IP內(nèi)核模塊和圖像預(yù)處理IP內(nèi)核模塊。
[0038]本實(shí)例中USB控制芯片與USB攝像頭連接,USB控制芯片還與ARM處理器連接,本實(shí)施例中,USB驅(qū)動(dòng)芯片選用的是TI公司的TUSB1210,該USB驅(qū)動(dòng)芯片是一款支持OTG的USB驅(qū)動(dòng)芯片,全面支持USB2.0協(xié)議,支持全部USB設(shè)備。
[0039]本實(shí)施例中,所述DDR3 SDRAM通過所述DDR3控制器與所述ARM處理器連接,DDR3控制器用于控制DDR3 SDRAM存儲(chǔ)USB攝像頭采集的圖像,DDR3控制器還通過DMA傳輸通道連接高速AXI總線,這樣可加快硬盤讀寫速度,提高數(shù)據(jù)傳輸速率,值得一提的是,本實(shí)施例中,DDR3 SDRAM選用的是兩片MT41K128M16JT-125-K,數(shù)據(jù)總線位寬為32位,總?cè)萘繛?12MB,可以作為ARM處理器的內(nèi)存運(yùn)行Linux系統(tǒng)。
[0040]本實(shí)施例中,SD卡與ARM處理器連接、用于存儲(chǔ)Linux系統(tǒng)啟動(dòng)文件和需要識(shí)別的標(biāo)識(shí)圖像,本實(shí)施例中,SD卡選用的是金士頓的16GB的SD卡,文件系統(tǒng)為FAT32,存儲(chǔ)Linux啟動(dòng)文件,同時(shí)存儲(chǔ)要進(jìn)行識(shí)別的標(biāo)識(shí)圖像,在系統(tǒng)運(yùn)行時(shí),保存USB攝像頭標(biāo)定所得到的標(biāo)定數(shù)據(jù)。
[0041 ]本實(shí)施例中,SDRAM控制器IP內(nèi)核模塊與SDRAM連接,SDRAM控制器IP內(nèi)核模塊用于控制SDRAM存儲(chǔ)需要識(shí)別的標(biāo)識(shí)圖像的海明碼信息和對(duì)應(yīng)的三維虛擬信息,值得一提的是,本實(shí)施例中,SDRAM選用的是micron公司的MT48LC8M32B2TG,該SDRAM是一款32位的SDRAM,存儲(chǔ)容量為256M,該SDRAM作為標(biāo)識(shí)圖像和三維虛擬信息的緩存模塊。本實(shí)施例中,SDRAM控制器IP內(nèi)核模塊還通過視頻直接存儲(chǔ)器傳輸通道連接高速AXI總線。
[0042]本實(shí)施例中,圖像預(yù)處理IP內(nèi)核模塊的輸入端和輸出端均通過視頻直接存儲(chǔ)器傳輸通道連接高速AXI總線,圖像預(yù)處理IP內(nèi)核模塊用于對(duì)USB攝像頭采集的圖像依次進(jìn)行灰度變換、利用閾值進(jìn)行二值化處理、輪廓檢測(cè)并對(duì)檢測(cè)出的輪廓進(jìn)行多邊形逼近。值得一提的是,本實(shí)施例中,利用高級(jí)綜合工具Vivado HLS,無需編寫RTL級(jí)代碼,S卩可實(shí)現(xiàn)圖像預(yù)處理IP內(nèi)核模塊,這樣就縮短了開發(fā)周期,更利于維護(hù)和移植,靈活性較好。
[0043]本實(shí)施例中,VGA控制器IP內(nèi)核模塊與VGA顯示器連接,VGA控制器IP內(nèi)核模塊用于控制VGA顯示器對(duì)虛實(shí)融合后的圖像進(jìn)行顯示,VGA控制器IP內(nèi)核模塊還通過視頻直接存儲(chǔ)器傳輸通道連接高速AXI總線。本實(shí)施例中,VGA顯示器最高支持720p@60Hz的視頻格式。
[0044]本實(shí)施例中,F(xiàn)PGA集成了28nm低功耗可編程邏輯,內(nèi)部包含片上高速AXI總線,大大提高了處理速度,降低硬件設(shè)計(jì)復(fù)雜度,由于采用軟硬件協(xié)同處理,ARM處理器和FPGA分擔(dān)不同的處理任務(wù),協(xié)同工作,這樣就能提高系統(tǒng)處理效率,降低功耗,使系統(tǒng)的通用性更好,米用SD RAM保存需要識(shí)別的標(biāo)識(shí)圖像的海明碼彳目息和對(duì)應(yīng)的二維虛擬彳目息,在多標(biāo)識(shí)識(shí)別和虛實(shí)融合時(shí),其更加快捷迅速,用戶體驗(yàn)度更好,所以其處理速度較快、實(shí)時(shí)性較好、處理能力較強(qiáng)、增強(qiáng)用戶體驗(yàn)、能降低系統(tǒng)功耗、具有通用性。
[0045]本實(shí)施例中,內(nèi)核空間軟件包括:引導(dǎo)程序Bootloader、Linux內(nèi)核與驅(qū)動(dòng)、板級(jí)支持包與圖像預(yù)處理IP的驅(qū)動(dòng)、SDRAM控制器的驅(qū)動(dòng)和VGA控制器的驅(qū)動(dòng)。用戶空間軟件包括基于OpenCV的增強(qiáng)現(xiàn)實(shí)應(yīng)用程序和以Qt作為顯控界面。
[0046]本實(shí)施例還涉及一種實(shí)現(xiàn)上述基于Zynq的軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng)進(jìn)行增強(qiáng)現(xiàn)實(shí)的方法,該方法的流程圖如圖2所示。圖2中,該方法包括如下步驟:
[0047]步驟I在ARM處理器上運(yùn)行Linux操作系統(tǒng),實(shí)現(xiàn)各外設(shè)和硬件IP內(nèi)核模塊的驅(qū)動(dòng),利用Qt實(shí)現(xiàn)用于交互和顯示的圖形界面:本步驟中,細(xì)化后具體步驟流程圖如圖3所示,在SD卡中存儲(chǔ)Linux系統(tǒng)啟動(dòng)所需的文件,將Zynq主處理器的啟動(dòng)方式設(shè)置為SD卡啟動(dòng),上電自啟動(dòng)Linux系統(tǒng),編寫并運(yùn)行圖像預(yù)處理IP內(nèi)核模塊的驅(qū)動(dòng)、VGA控制器IP內(nèi)核模塊的驅(qū)動(dòng)和SDRAM控制器IP內(nèi)核模塊的驅(qū)動(dòng)程序,根據(jù)Vivado軟件給定的對(duì)應(yīng)IP內(nèi)核模塊的物理地址,編寫用于對(duì)物理地址進(jìn)行操作的內(nèi)核驅(qū)動(dòng)程序,實(shí)現(xiàn)對(duì)物理地址的操作,運(yùn)行基于OpenCV的Qt顯控程序,該Qt顯控程序用于交互和顯示。
[0048]步驟2利用USB攝像頭采集棋盤格圖像,在ARM處理器中對(duì)USB攝像頭進(jìn)行標(biāo)定,計(jì)算USB攝像頭的內(nèi)參數(shù),導(dǎo)入一個(gè)或多個(gè)標(biāo)識(shí)圖像并將其存儲(chǔ)到DDR3 SDRAM中,計(jì)算標(biāo)識(shí)圖像的海明碼信息并將其存儲(chǔ)到SDRAM中:本步驟中,使用所述USB攝像頭采集給定的棋盤格圖像,使用OpenCV的攝像頭標(biāo)定程序?qū)λ鯱SB攝像頭進(jìn)行標(biāo)定,計(jì)算得到所述USB攝像頭的內(nèi)參數(shù),在Qt顯控程序中選擇標(biāo)識(shí)圖像并導(dǎo)入所述DDR3 SDRAM中,計(jì)算所述標(biāo)識(shí)圖像的海明碼信息,并通過視頻直接存儲(chǔ)器傳輸通道存儲(chǔ)在所述SDRAM中。
[0049]步驟3利用OpenCV集成的OpenGL生成與標(biāo)識(shí)圖像對(duì)應(yīng)的三維虛擬信息,并將其通過視頻直接存儲(chǔ)器傳輸通道傳送到SDRAM進(jìn)行存儲(chǔ):本步驟中,利用OpenCV集成的OpenGL生成與標(biāo)識(shí)圖像對(duì)應(yīng)的三維虛擬信息,并將該三維虛擬信息通過視頻直接存儲(chǔ)器傳輸通道傳送到SDRAM進(jìn)行存儲(chǔ)。
[0050]步驟4ARM處理器實(shí)時(shí)采集USB攝像頭中的原始圖像,并通過視頻直接存儲(chǔ)器傳輸通道將其傳輸?shù)紽PGA進(jìn)行緩存:本步驟中,ARM處理器實(shí)時(shí)采集USB攝像頭中的原始圖像(SP采集的棋盤格圖像),并通過視頻直接存儲(chǔ)器傳輸通道將其傳輸?shù)紽PGA進(jìn)行緩存。
[0051]步驟5使用VivadoHLS軟件編寫圖像預(yù)處理IP內(nèi)核模塊,并對(duì)原始圖像進(jìn)行圖像預(yù)處理得到二次處理圖像:本步驟中,使用Vivado HLS軟件編寫圖像預(yù)處理IP內(nèi)核模塊,并對(duì)原始圖像進(jìn)行圖像預(yù)處理得到二次處理圖像,值得一提的是,圖像預(yù)處理包括對(duì)圖像進(jìn)行灰度變換、利用閾值分割進(jìn)行二值化處理、輪廓檢測(cè)、對(duì)檢測(cè)出的輪廓進(jìn)行多邊形逼近,找到與標(biāo)識(shí)圖像相近的四邊形作為候選標(biāo)識(shí)區(qū)域,記錄候選標(biāo)識(shí)區(qū)域的角點(diǎn)位置。
[0052]步驟6將二次處理圖像經(jīng)視頻直接存儲(chǔ)器傳輸通道傳回ARM處理器,在Linux系統(tǒng)下編寫基于集成OpenGL的OpenCV的增強(qiáng)現(xiàn)實(shí)處理程序,并恢復(fù)原始圖像中標(biāo)識(shí)的正視圖,識(shí)別步驟5所述候選標(biāo)識(shí)區(qū)域中的特殊標(biāo)識(shí),并對(duì)識(shí)別出特殊標(biāo)識(shí)的步驟5所述候選標(biāo)識(shí)區(qū)域進(jìn)行位姿估計(jì),得到USB攝像頭的外參數(shù):本步驟中,將二次處理圖像經(jīng)視頻直接存儲(chǔ)器傳輸通道傳回ARM處理器,在Linux系統(tǒng)下編寫基于集成OpenGL的OpenCV的增強(qiáng)現(xiàn)實(shí)處理程序,并恢復(fù)原始圖像中標(biāo)識(shí)的正視圖,識(shí)別步驟5所述候選標(biāo)識(shí)區(qū)域中的特殊標(biāo)識(shí),并對(duì)識(shí)別出特殊標(biāo)識(shí)的步驟5所述候選標(biāo)識(shí)區(qū)域進(jìn)行位姿估計(jì),得到USB攝像頭的外參數(shù)。本實(shí)施例中,USB攝像頭的外參數(shù)包括旋轉(zhuǎn)矩陣和平移向量。
[0053]步驟7針對(duì)識(shí)別出特殊標(biāo)識(shí)的步驟5所述候選標(biāo)識(shí)區(qū)域,從SDRAM中提取對(duì)應(yīng)的三維虛擬信息,并根據(jù)USB攝像頭的內(nèi)參數(shù)和外參數(shù),將對(duì)應(yīng)的虛擬三維信息與原始圖像進(jìn)行融合,得到虛實(shí)融合的圖像:本步驟中,針對(duì)識(shí)別出特殊標(biāo)識(shí)的步驟5所述候選標(biāo)識(shí)區(qū)域,利用視頻直接存儲(chǔ)器傳輸通道從所述SDRAM中導(dǎo)入與所述識(shí)別出特殊標(biāo)識(shí)的標(biāo)識(shí)圖像對(duì)應(yīng)的三維虛擬信息,并根據(jù)所述USB攝像頭的內(nèi)參數(shù)和外參數(shù),將對(duì)應(yīng)的虛擬三維信息與所述原始圖像進(jìn)行融合,得到虛實(shí)融合的圖像。
[0054]步驟8將步驟7所述的虛實(shí)融合的圖像通過視頻直接存儲(chǔ)器傳輸通道傳輸?shù)絍GA控制器IP內(nèi)核模塊,VGA控制器IP內(nèi)核模塊控制VGA顯示器進(jìn)行顯示:本步驟中,在Vivado中編寫VGA控制器IP內(nèi)核模塊的程序,將虛實(shí)融合的圖像通過視頻直接存儲(chǔ)器傳輸通道傳輸?shù)絍GA控制器IP內(nèi)核模塊,VGA控制器IP內(nèi)核模塊控制VGA顯示器進(jìn)行顯示。
[0055]本實(shí)施例首先利用ARM處理器運(yùn)行Linux系統(tǒng),采集USB攝像頭的原始圖像進(jìn)行緩存,并對(duì)USB攝像頭進(jìn)行標(biāo)定。然后利用FPGA使用Vivado HLS軟件編寫硬件加速圖像預(yù)處理IP內(nèi)核模塊的程序,檢測(cè)候選標(biāo)識(shí)位置。然后利用ARM處理器編寫基于OpenCV的增強(qiáng)現(xiàn)實(shí)程序,識(shí)別候選標(biāo)識(shí),完成三維注冊(cè),并進(jìn)行虛實(shí)融合。最后利用FPGA實(shí)現(xiàn)VGA控制器IP內(nèi)核模塊的驅(qū)動(dòng)程序,進(jìn)行實(shí)時(shí)顯示。本實(shí)施例利用ARM處理器+FPGA架構(gòu)進(jìn)行軟硬件聯(lián)合設(shè)計(jì),其顯著提高了圖像處理算法的實(shí)時(shí)性,降低了傳統(tǒng)硬件架構(gòu)的復(fù)雜程度和開發(fā)成本,用戶IP內(nèi)核模塊的設(shè)計(jì)與集成也更簡(jiǎn)捷靈活,其具有功耗低和性能高等特點(diǎn)。
[0056]對(duì)于本實(shí)施例而言,上述步驟5還可進(jìn)一步細(xì)化,其細(xì)化后的流程圖如圖4所示。圖4中,上述步驟5進(jìn)一步包括:
[0057]步驟5-1在VivadoHLS軟件中編寫圖像預(yù)處理IP內(nèi)核模塊程序,把FPGA中緩存的圖像轉(zhuǎn)換成Mat類型的圖像:本步驟中,在Vivado HLS軟件中編寫圖像預(yù)處理IP內(nèi)核模塊程序,Vivado HLS軟件中集成了類OpenCV的庫,把FPGA中緩存的圖像轉(zhuǎn)換成Mat類型的圖像。
[0058]步驟5-2把Mat類型的圖像由三通道的彩色圖像轉(zhuǎn)換成單通道的灰度圖像:本步驟中,把Mat類型的圖像由三通道的彩色圖像轉(zhuǎn)換成單通道的灰度圖像。
[0059]步驟5-3利用閾值分割法對(duì)單通道的灰度圖像進(jìn)行二值化處理,得到二值化圖像:本步驟中,利用閾值分割法對(duì)單通道的灰度圖像進(jìn)行二值化處理,得到二值化圖像。
[0060]步驟5-4對(duì)二值化圖像進(jìn)行輪廓檢測(cè),得到包含多邊形輪廓的圖像:本步驟中,對(duì)二值化圖像進(jìn)行輪廓檢測(cè),得到包含多邊形輪廓的圖像。
[0061]步驟5-5利用多邊形近似法對(duì)多邊形輪廓進(jìn)行多邊形逼近,排除不是四邊形的多邊形輪廓區(qū)域:本步驟中,利用多邊形近似法對(duì)多邊形輪廓進(jìn)行多邊形逼近,排除不是四邊形的多邊形輪廓區(qū)域。
[0062]步驟5-6計(jì)算候選標(biāo)識(shí)區(qū)域的角點(diǎn)位置,并把角點(diǎn)位置保存在原始圖像的數(shù)據(jù)結(jié)尾,作為候選標(biāo)識(shí)位置數(shù)據(jù):本步驟中,計(jì)算候選標(biāo)識(shí)區(qū)域的角點(diǎn)位置,并把角點(diǎn)位置保存在原始圖像的數(shù)據(jù)結(jié)尾,作為候選標(biāo)識(shí)位置數(shù)據(jù)。
[0063]步驟5-7利用VivadoHLS軟件對(duì)程序圖像預(yù)處理IP內(nèi)核模塊程序進(jìn)行流水線優(yōu)化,對(duì)處理速度和占用的資源進(jìn)行優(yōu)化,產(chǎn)生RTL級(jí)代碼,并封裝成IP內(nèi)核模塊:本步驟中,利用Vivado HLS軟件對(duì)程序圖像預(yù)處理IP內(nèi)核模塊程序進(jìn)行流水線優(yōu)化,即對(duì)圖像進(jìn)行灰度變換、利用閾值分割進(jìn)行二值化處理、輪廓檢測(cè)、對(duì)檢測(cè)出的輪廓進(jìn)行多邊形逼近等進(jìn)行流水線優(yōu)化,對(duì)處理速度和占用的資源進(jìn)行優(yōu)化,產(chǎn)生RTL級(jí)代碼,并封裝成IP內(nèi)核模塊。
[0064]對(duì)于本實(shí)施例而言,上述步驟6還可進(jìn)一步細(xì)化,其細(xì)化后的流程圖如圖5所示。圖5中,上述步驟6進(jìn)一步包括:
[0065]步驟6-1將二次處理圖像通過視頻直接存儲(chǔ)器傳輸通道傳送回ARM處理器,對(duì)每一個(gè)候選標(biāo)識(shí)區(qū)域進(jìn)行透視變換,得到候選標(biāo)識(shí)區(qū)域的正方形視圖:本實(shí)施例中,二次處理圖像包含候選標(biāo)識(shí)區(qū)域位置,本步驟中,將二次處理圖像通過視頻直接存儲(chǔ)器傳輸通道傳送回ARM處理器,對(duì)每一個(gè)候選標(biāo)識(shí)區(qū)域進(jìn)行透視變換,得到候選標(biāo)識(shí)區(qū)域的正方形視圖。
[0066]步驟6-2使用Otsu算法對(duì)候選標(biāo)識(shí)區(qū)域進(jìn)行二值化處理,去掉灰度像素,只留下黑白像素:本步驟中,使用Otsu算法對(duì)候選標(biāo)識(shí)區(qū)域進(jìn)行二值化處理,去掉灰度像素,只留下黑白像素。
[0067]步驟6-3計(jì)算候選標(biāo)識(shí)區(qū)域的正方形視圖內(nèi)部區(qū)域的海明碼信息,并計(jì)算其與SDRAM中存儲(chǔ)的標(biāo)識(shí)圖像的海明碼信息的海明距離,把候選標(biāo)識(shí)區(qū)域依次順時(shí)針或逆時(shí)針旋轉(zhuǎn)90度,重復(fù)計(jì)算海明距離,若當(dāng)前最小的海明距離為0,則當(dāng)前候選標(biāo)識(shí)區(qū)域是一個(gè)正確的標(biāo)識(shí)區(qū)域:本步驟中,計(jì)算候選標(biāo)識(shí)區(qū)域的正方形視圖內(nèi)部區(qū)域的海明碼信息,并計(jì)算其與SDRAM中存儲(chǔ)的標(biāo)識(shí)圖像的海明碼信息的海明距離,把候選標(biāo)識(shí)區(qū)域依次順時(shí)針或逆時(shí)針旋轉(zhuǎn)90度,重復(fù)計(jì)算海明距離,若當(dāng)前最小的海明距離為0,則當(dāng)前候選標(biāo)識(shí)區(qū)域是一個(gè)正確的標(biāo)識(shí)區(qū)域。
[0068]步驟6-4找到正確的標(biāo)識(shí)區(qū)域后,調(diào)用OpenCV函數(shù)按亞像素精度查找角點(diǎn)位置:本步驟中,找到正確的標(biāo)識(shí)區(qū)域后,調(diào)用OpenCV函數(shù)按亞像素精度查找角點(diǎn)位置,得到精確的角點(diǎn)位置。
[0069]步驟6-5根據(jù)USB攝像頭的內(nèi)參數(shù)和候選標(biāo)識(shí)區(qū)域的角點(diǎn)位置,調(diào)用OpenCV的函數(shù)計(jì)算USB攝像頭的外參數(shù):本步驟中,根據(jù)USB攝像頭的內(nèi)參數(shù)和候選標(biāo)識(shí)區(qū)域的角點(diǎn)位置,調(diào)用OpenCV的函數(shù)計(jì)算USB攝像頭的外參數(shù),USB攝像頭的外參數(shù)包括旋轉(zhuǎn)矩陣和平移向量。
[0070]總之,在本實(shí)施例中,本專利以ARM處理器為主,以FPGA為輔,構(gòu)建了一個(gè)軟硬件協(xié)處理的基于Zynq軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng),該基于Zynq軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng)按軟硬件結(jié)構(gòu)靈活劃分程序模塊,同時(shí)應(yīng)用片內(nèi)高速AXI總線,其能提高吞吐率,降低功耗,實(shí)時(shí)性較好,實(shí)時(shí)處理能力強(qiáng)。該基于Zynq軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng)可加快識(shí)別處理速度,進(jìn)而提高識(shí)別處理的識(shí)別精度和穩(wěn)定性,使用戶能夠及時(shí)并準(zhǔn)確地獲取與現(xiàn)實(shí)信息最匹配的預(yù)制虛擬信息,并實(shí)時(shí)的顯示在VGA顯示器上,進(jìn)一步提升用戶體驗(yàn)。
[0071]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本專利,凡在本專利的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本專利的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于Zynq的軟硬件協(xié)同處理的增強(qiáng)現(xiàn)實(shí)系統(tǒng),包括Zynq主處理器、USB攝像頭、USB控制芯片、DDR3SDRAM、SD卡、SDRAM和VGA顯示器,其特征在于: 所述Zynq主處理器包括處理器系統(tǒng)和FPGA,處理器系統(tǒng)和FPGA通過高速AXI總線連接,所述處理器系統(tǒng)包括ARM處理器和DDR3控制器,四個(gè)AXI_HP接口、四個(gè)AXI_GP接口和一個(gè)AXI_ACP接口,所述FPGA包括SDRAM控制器IP內(nèi)核模塊、VGA控制器IP內(nèi)核模塊和圖像預(yù)處理IP內(nèi)核模塊; 所述USB攝像頭與所述USB控制芯片連接,所述USB控制芯片與所述ARM處理器連接,所述DDR3SDRAM通過所述的DDR3控制器與所述ARM處理器連接,所述DDR3控制器還通過DMA傳輸通道連接所述高速AXI總線,所述SD卡與所述ARM處理器連接,所述SDRAM控制器IP內(nèi)核模塊與所述SDRAM連接,所述SDRAM控制器IP內(nèi)核模塊還通過視頻直接存儲(chǔ)器傳輸通道連接所述高速AXI總線,所述圖像預(yù)處理IP內(nèi)核模塊的輸入端和輸出端均通過視頻直接存儲(chǔ)器傳輸通道連接所述高速AXI總線,所述VGA控制器IP內(nèi)核模塊與所述VGA顯示器連接,所述VGA控制器IP內(nèi)核模塊還通過視頻直接存儲(chǔ)器傳輸通道連接所述高速AXI總線。
【文檔編號(hào)】H04N7/18GK205608814SQ201620319364
【公開日】2016年9月28日
【申請(qǐng)日】2016年4月15日
【發(fā)明人】祝清瑞, 湯心溢, 李爭(zhēng), 劉源, 王晨, 代具亭, 張昊
【申請(qǐng)人】中國科學(xué)院上海技術(shù)物理研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
孝义市| 遵义市| 玉门市| 札达县| 通城县| 西平县| 潮安县| 井冈山市| 贵港市| 广丰县| 商河县| 河东区| 秦安县| 肇东市| 江川县| 怀来县| 茂名市| 哈巴河县| 甘南县| 永宁县| 广丰县| 香港 | 大悟县| 休宁县| 城固县| 饶河县| 宁波市| 高尔夫| 永靖县| 京山县| 金溪县| 鲜城| 合肥市| 湟中县| 泽州县| 密山市| 门头沟区| 高密市| 寻乌县| 阿拉尔市| 通渭县|