<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > DIY你的體感游戲:人體動(dòng)作識別系統的設計,提供軟硬件實(shí)現方案

DIY你的體感游戲:人體動(dòng)作識別系統的設計,提供軟硬件實(shí)現方案

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

本文引用地址:http://dyxdggzs.com/article/201706/348731.htm

一 項目設計摘要

人體特征和是非常熱門(mén)的領(lǐng)域,相關(guān)的算法和實(shí)現方案也層出不窮。依賴(lài)于豐富的內部資源,可以實(shí)現高速的設計和數據處理。為了給人們的生活和娛樂(lè )帶來(lái)更多的樂(lè )趣,我們的設計靈感來(lái)源于一款PC游戲,將人體和個(gè)人電腦游戲結合起來(lái),通過(guò)對人體動(dòng)作的判斷,控制游戲中相應物體的動(dòng)作,這類(lèi)似于無(wú)線(xiàn)控制,但是也不盡相同,這將是一個(gè)非常有趣并且吸引人的項目。本項目使用 OpenSPARC評估平臺,首先通過(guò)VGA解碼芯片,將PC機中的視頻流數據解碼出R、G、B信號值和場(chǎng)、行信號。然后使用OV7670,攝取人體的手部動(dòng)作,運用一定的算法,對攝像頭數據進(jìn)行處理,判定此時(shí)的人體動(dòng)作,然后將其與RGB分量信號進(jìn)行疊加,通過(guò)配置DVI接口芯片,將疊加后的圖像送至顯示器顯示。在正確檢測出人體動(dòng)作的前提下,將向PC機發(fā)出相應的控制信號,用來(lái)控制PC機中游戲的動(dòng)作。

二 系統的原理

本設計項目為人體,設計的重點(diǎn)在于攝像頭數據的獲取、人體動(dòng)作的正確識別、圖像的疊加、圖像的顯示以及控制信號的傳輸。本項目使用Digilent公司提供的 OpenSPARC評估板,板上含有 XC5VLX110T ,2個(gè)Xilinx XCF32P Platform Flash PROMs(每個(gè)32 Mbyte),用于存儲大型設計的配置信息;64位寬256Mbyte DDR2小型DIMM(SODIMM),兼容EDK 附帶的IP及驅動(dòng)程序;板載32位ZBT同步SRAM 和Intel P30 StrataFlash;可編程系統時(shí)鐘發(fā)生器,RS-232接口和許多其他I/O設備與接口等。評估板上的眾多資源為本項目的設計和開(kāi)發(fā)帶來(lái)了極大的便利。整個(gè)系統的框圖如下圖1所示。

圖1 系統的整體框圖

下面簡(jiǎn)單介紹一下各部分的原理

  1. 數字視頻流的解碼

在Virtex-5 OpenSPARC評估板上,帶有視頻解碼芯片AD9980,該芯片是一個(gè)8bit,95MSPS,帶有模擬接口,專(zhuān)門(mén)用于捕捉YPBPR視頻和RGB圖像信號的視頻解碼芯片,它的圖像分辨率最高可到達1024x768,此時(shí)的刷新頻率為85Hz。本次設計視頻流的輸入格式為640x480,刷新頻率為60Hz。AD9980芯片采用IIC總線(xiàn),通過(guò)配置部分寄存器,設置輸入視頻的格式,可以從輸入的視頻流中分離出RGB 8bit分量和場(chǎng)行信號。

  1. 攝像頭數據的獲取

為了能準確的獲取圖像信號,本設計采用OV7670,其帶有標準的SCCB接口,同時(shí)兼容IIC總線(xiàn)接口,因此可以在程序設計上,可以采用通用的IIC配置程序,簡(jiǎn)化設計,減少設計量。OV7670支持VGA、CIF和從CIF到40x30的圖像尺寸。OV7670輸出為8bit的圖像數據,通過(guò)選擇輸出圖像的格式,8bit的數據代表了不同的RGB分量。同時(shí)OV7670還能直接輸出場(chǎng)行信號,但與標準的VGA場(chǎng)行信號不盡相同。對于OV7670的使用,重點(diǎn)在于寄存器的設置和時(shí)鐘信號的選擇。

  1. 數據的緩存

OV7670輸出的數字圖像信號,在進(jìn)行處理之前,還必須進(jìn)行必要的緩沖,這是因為選擇不同的數據格式,8bit的數據代表了不同的RGB分量,不能直接同AD9980解碼后的RGB分量進(jìn)行疊加,另外OV7670輸出的場(chǎng)行信號也與標準的場(chǎng)行信號存在差異。在Virtex-5 XC5VLX110T FPGA中含有豐富的塊RAM,將其配置成FIFO,非常適合于大量高速數據的緩沖處理。

  1. 動(dòng)作的識別

人體動(dòng)作的識別是本次設計的重中之重,也是最為困難的地方。為了能夠準確的判斷出人體的動(dòng)作,需要非常精密的算法。本項目類(lèi)似于運動(dòng)物體檢測,有關(guān)的算法還正在研究之中。

  1. 圖像的疊加

圖像的疊加原理,類(lèi)似于字母的疊加,這部分的設計不是很難,只需要將AD9980和OV7670解碼出來(lái)的RGB顏色分量疊加在一起即可,但是要做到視頻圖像畫(huà)面的穩定,不出現畫(huà)面的跳動(dòng)、串幀,需要仔細研究VGA時(shí)序。

  1. 圖像的顯示

在Virtex-5 OpenSPARC評估板上,帶有DVI傳輸芯片CH7301,它的輸入為RGB分量、場(chǎng)行信號和時(shí)鐘信號。輸入圖像的格式可選,CH7301帶有IIC總線(xiàn)接口,最重要的也是相關(guān)寄存器的合理配置。如果要得到VGA信號,可以使用DVI轉VGA接頭,將DVI信號轉換成VGA信號輸出。

  1. 控制信號的傳輸

當已經(jīng)準確的判斷出了人體的動(dòng)作時(shí),FPGA將根據此時(shí)的動(dòng)作發(fā)出相應的控制信號,傳遞個(gè)PC機。對于控制信號的傳輸可以采用RS-232接口,模擬鍵盤(pán),此時(shí)需要編寫(xiě)串口模擬鍵盤(pán)程序。不同的控制信號對應于不同的動(dòng)作,PC機接收控制信號,控制游戲發(fā)生相應的動(dòng)作。

三 系統的軟件設計

系統在開(kāi)始時(shí),首先獲取PC機的視頻流數據,然后通過(guò)攝像頭得到人體動(dòng)作的圖像數據,在數據經(jīng)過(guò)緩沖處理、識別之后,將于解碼后的RGB分量相互疊加,最后通過(guò)DVI接口將視頻數據輸出至顯示器,同時(shí)FPGA將控制信號傳送給PC機,達到控制PC機中游戲的目的。系統的軟件流程如下圖2所示。

圖2 系統軟件流程圖



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>