專利名稱:基于攝像頭投影儀技術(shù)的交互系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計算機技術(shù)領(lǐng)域的系統(tǒng),具體是一種基于攝像頭投影儀技 術(shù)的交互系統(tǒng)。
背景技術(shù):
虛擬現(xiàn)實技術(shù),是將模擬環(huán)境、視景系統(tǒng)和仿真系統(tǒng)合三為一,并利用頭 盔顯示器、圖形眼鏡、數(shù)據(jù)服、立體聲耳機、數(shù)據(jù)手套及腳踏板等傳感裝置。 把操作者與計算機生成的三維虛擬環(huán)境連結(jié)在一起,操作者通過傳感器裝置與
虛擬環(huán)境交互作用,可獲得視覺、聽覺、觸覺等多種感知,并按照自己的意愿 去改變"不隨心"的虛擬環(huán)境,利用這種虛擬現(xiàn)實技術(shù)進行建筑、機械、兵器 等設(shè)計修改,實施技術(shù)操作訓練和軍事演習活動要容易得多,也便宜得多。隨 著計算機圖形硬件的飛速發(fā)展,實時渲染的畫質(zhì)越來越高。比如水面渲染,主 要分為兩大類, 一類是在時域中進行的, 一類是在頻域中進行。前者主要有用 柏林噪聲加在一系列球面波上,并用這些結(jié)果對平面法向量進行干擾來產(chǎn)生最 后的渲染結(jié)果。這樣做法比較便捷,使得不需對網(wǎng)格進行變形就能夠得到一定 的效果,但這樣簡化的結(jié)果是水不夠逼真,且不是三維的。傅里葉和Reeves等 人對這個模型進行了大量的改進,水面節(jié)點的位置也開始變化,而不再是僅僅 改變表面法向量,他們是通過快速傅里葉變換在頻域中對網(wǎng)格點進行一定噪聲 的干擾,再用逆快速傅里葉變化回到時域中,這樣來產(chǎn)生水波紋。Thon等人在 2000年將水的主體用一些擺線的疊加來表示,水的細節(jié)用三維的擾動來添加上 去。在水面實時渲染的研究中,實時的水模擬一般是在是時域中直接進行,由 于計算機對于FFT (快速傅立葉變換)計算的消耗還是很大。所以這些方法很少 實時。比如Schineider等人使用OpenGL (—個三維圖形開發(fā)包)在頂點程序中 組合兩組八個梯度噪聲干擾高度數(shù)據(jù)來生成水面網(wǎng)格,能夠?qū)崟r交互。
作為虛擬現(xiàn)實中一種新穎的交互方式,同時伴隨著設(shè)備成本的降低,攝像
頭投影儀技術(shù)在近幾年發(fā)展得很快。通過投影儀成像可有效地擴大人機交互的 空間范圍。攝像頭投影儀技術(shù)主要通過攝像頭來對投影圖像進行定位、跟蹤和 標定,將許多虛擬現(xiàn)實與增強現(xiàn)實中的關(guān)鍵技術(shù)運用到交互系統(tǒng)中。目前為止, 對攝像頭投影儀技術(shù)的研究與開發(fā)主要集中在投影圖像的校正(包括幾何校正 與光學校正)、多投影儀的校準與協(xié)同工作等領(lǐng)域。通過結(jié)合計算機視覺中的物 體跟蹤技術(shù),攝像頭投影儀技術(shù)同樣可實現(xiàn)對前景物體的監(jiān)控、識別與跟蹤。
經(jīng)對現(xiàn)有技術(shù)的文獻檢索發(fā)現(xiàn),J. Rekimoto等人在《Perc印tual User Interfaces(知覺用戶界面)》(97年30-32頁)上發(fā)表的"Perc印tual surfaces: Towards a human and object sensitive interactive display" (感知表面 一種人物感知交互顯示),該文中提出 一種用投影儀和紅外攝像機來捕捉人物 動作來進行交互的系統(tǒng),系統(tǒng)結(jié)構(gòu)為投影儀將畫面投影到一面普通的墻面上, 在墻后面有一臺紅外攝影機,用這臺紅外攝像機來捕捉人們在墻前面的動作, 然后將識別結(jié)果會發(fā)應(yīng)在投在墻上的畫面上,其不足在于l.使用了昂貴的紅 外攝像機,成本高;2.因為依賴紅外識別,算法簡陋,所以識別目標局限,只 能識別有一定溫度的物體,用其他道具就不能識別了。
發(fā)明內(nèi)容
本發(fā)明針對現(xiàn)有技術(shù)的不足,提供一種基于攝像頭投影儀技術(shù)的交互系統(tǒng), 使其改進了傳統(tǒng)人機交互模式,利用計算機視覺和圖形技術(shù)實現(xiàn)了一種更加自 然的人機交互方式,并將其應(yīng)用到藝術(shù)品、商業(yè)產(chǎn)品、及娛樂的交互展示中去。 本發(fā)明使用了普通的攝像頭,大大降低了成本了,用分析拍攝的圖像來進行交 互物體識別的,這樣識別范圍就不局限于有溫度的物體,也可以是其他道具, 在節(jié)約成本的同時,大大提高了系統(tǒng)的適用范圍。
本發(fā)明是通過以下技術(shù)方案實現(xiàn)的。本發(fā)明包括攝像頭、投影儀、計算 機、交互識別模塊、渲染模塊。交互識別模塊和渲染模塊都安裝在計算機上。 所述投影儀將渲染的畫面投影到設(shè)定區(qū)域上。所述攝像頭捕捉固定場景,這里 固定場景指的是包含投影儀投射出來畫面在內(nèi)的一塊區(qū)域,攝像頭拍攝到這塊 區(qū)域后,首先會在拍攝的圖像中,識別出投影畫面的區(qū)域,然后再由交互識別 模塊進一步分析。所述交互識別模塊分析出當前人的位置和動作信息之后向渲 染模塊發(fā)送消息。所述渲染模塊對交互識別模塊輸入的消息做出響應(yīng),完成相
應(yīng)的動畫生成與實時繪制。渲染模塊、交互識別模塊通信通過進程間通信實現(xiàn)。
所述交互識別模塊,借鑒了目前廣泛用于交通監(jiān)控中的"背景消除"技術(shù)。 交互識別模塊啟動時需要先捕捉一幀背景圖像作為參考幀,之后的每幀圖像與 參考幀進行圖像差運算,獲得差圖像。通過圖像二值化運算將差圖像轉(zhuǎn)換為二 值圖像。由于攝像頭捕捉圖像本身存在噪聲的影響,差圖像中的區(qū)域會出現(xiàn)空 洞。這里需要對二值差圖像再進行閉運算,以填補這些空洞。由于背景圖像事 實上一直在發(fā)生變化(比如背景圖像中包含圖形動畫等實時變化的元素),單純 采用二值差圖像提取前景物體往往會錯誤地將這些發(fā)生變化的背景圖像元素歸 類為前景物體。為了區(qū)分背景元素和前景物體(人),需要利用兩者之間在尺寸 上的差別對它們進行區(qū)分。
本發(fā)明采用連通區(qū)域檢測的方法,將二值差圖像中的連通區(qū)域全部提取出 來,計算其覆蓋面積,利用事先設(shè)定的面積閾值對其進行過濾,可以將背景中 面積較小(面積小于整幅圖像面積0.5%)的背景元素過濾掉。通過對剩下的連 通區(qū)域計算中心點的方法,確定前景物體分別所在的位置,再以坐標點的形式 發(fā)送給渲染模塊,做出相應(yīng)的動畫響應(yīng)和實時繪制。
所述渲染模塊,包括幾何變換模塊、資源管理器模塊、特效庫模塊、光 照和紋理模塊以及底層渲染抽象層,這幾個模塊分工合作一起作為整個渲染管 道的一個個節(jié)點,其中
所述資源管理器模塊統(tǒng)一加載和釋放在渲染過程中用到的資源包括幾何 數(shù)據(jù)、紋理數(shù)據(jù)、材質(zhì)數(shù)據(jù),幾何變換模塊和光照和紋理模塊會給資源管理器 模塊提供一些資源需求的信息,然后資源管理器模塊就按照最近最少使用和預(yù) 取的策略進行管理;
所述幾何變換模塊資源加載到資源管理器模塊之后,幾何變換模塊會首 先去資源管理器模塊申請模型幾何數(shù)據(jù)包括三角片、四邊形片數(shù)據(jù),并把申請 到數(shù)據(jù)按照自己的格式組織成符合這個渲染器能識別的自定義的模型數(shù)據(jù),包 括頂點位置、頂點法向量、頂點紋理坐標,轉(zhuǎn)換好格式之后就是進行三個坐標 系變換,首先是將模型坐標轉(zhuǎn)換到用戶定義的世界坐標系,其中包括平移、旋 轉(zhuǎn)、縮放,這些數(shù)據(jù)通過輸入設(shè)備進行輸入,接下來根據(jù)用戶輸入的攝像機位 置,將幾何數(shù)據(jù)轉(zhuǎn)換到攝像機空間,再將幾何數(shù)據(jù)進行透視變換轉(zhuǎn)換到標準的
裁剪空間;
所述光照和紋理模塊對經(jīng)過資源管理器模塊的加載和幾何變換模塊處理 過的數(shù)據(jù)進行渲染,根據(jù)用戶設(shè)定的要求,光照和紋理模塊進行各種技術(shù)和各 種精度的全局光照計算,支持以下渲染技術(shù)最簡單的光線跟蹤,利用光子樹 來求解蒙特卡羅積分來進行的光子跟蹤,根據(jù)用戶提出的圖像誤差要求,對渲 染的視頻進行bilateral (考慮多種因素一起作用影響的濾波方式)的視頻濾波, 從而達到運動模糊、景深、抗鋸齒效果,如果誤差過大,對一些像素點進行重 采樣;
所述特效庫模塊用各種硬件特性來實現(xiàn)光照和紋理模塊中要用的算法, 這個模塊里面有一些包裝好的技術(shù),每個技術(shù)里面又是一些圖形處理單元的渲
染過程,這樣將一些渲染流程的技術(shù)封裝起來,并且用圖形處理單元硬件進行
加速;
所述渲染抽象層是最具體細節(jié)的實現(xiàn)層,該子模塊是實現(xiàn)一個抽象的接
口,底層的實現(xiàn)就用OpenGL或者Direct3D實現(xiàn),這個子模塊提供了大量的渲 染和系統(tǒng)的接口給上面的光照和紋理模塊以及特效庫模塊來調(diào)用。
在本發(fā)明系統(tǒng)中,交互識別模塊是用來識別輸入的動作,而渲染內(nèi)容是任 何可以用投影儀投射出來的一個場景,可以根據(jù)各種不同的實際應(yīng)用需求來設(shè) 計。渲染模塊接收來自交互識別模塊輸入的動作模式,然后就可以用程序控制 做出相應(yīng)的響應(yīng),而這些響應(yīng)又可以被交互識別模塊捕獲。這樣,交互識別模 塊和渲染模塊緊密地聯(lián)系起來,可以應(yīng)用在不同的場合中,達到各種不同的交 互應(yīng)用。
在一個對公眾開放的展覽館、博物館又或者是圖書館中。用本發(fā)明系統(tǒng)將 需要交互的內(nèi)容從天花板上直接投影到地面上。系統(tǒng)運行時,參觀者可以去用 手、腳、整個身體甚至是其他任何物體和地面的畫面交互,畫面會實時地在參 觀者的交互位置做出相應(yīng)的響應(yīng)。這樣系統(tǒng)的優(yōu)點就是交互的自然性,這些內(nèi) 容明明是虛幻的,可是人們卻可以自然地去觸弄。有了這樣的系統(tǒng)就可以將一 些藝術(shù)作品、產(chǎn)品、游戲等以娛樂生動有趣的方式展示給人們。在實際應(yīng)用中, 本發(fā)明對各類圖形圖像的交互內(nèi)容都普遍適用。
本發(fā)明采用投影儀和攝像頭技術(shù),首先用投影儀投射出畫面,同時用一個
普通攝像頭拍攝包括投影畫面在內(nèi)的一個區(qū)域,當人或者其他一些交互物體進 入這個畫面區(qū)域的時候,通過分析計算攝像頭捕捉到圖像,可以識別出人或者 物體的位置和運動,作為交互的輸入。交互識別模塊則要準確快速定位當前圖 像中前景物體(人)的位置,并同渲染模塊通信完成交互響應(yīng)。渲染模塊要根 據(jù)交互輸入?yún)?shù),實時進行真實感或風格化的圖形動畫及渲染。
本發(fā)明主要是通過圖像技術(shù)對交互位置和動作行為進行識別,并根據(jù)響應(yīng) 邏輯進行實時圖形動畫和繪制,實現(xiàn)沉浸式的自然人機交互。適用于各類圖形 圖像的交互內(nèi)容。本發(fā)明可以應(yīng)用在博物館、展覽館、展示會、產(chǎn)品發(fā)布會、 游戲娛樂等場所,用計算機視覺技術(shù)可以以更加生動有趣的交互方式提供給人 們對新事物的認識,以及沉浸式的自然人機交互。此外,還可在未來的互動電 視、電影等領(lǐng)域得到相當?shù)膽?yīng)用。
圖l為本發(fā)明渲染模塊框圖
圖2是本發(fā)明的一個具體實施交互裝置的系統(tǒng)硬件結(jié)構(gòu)圖。 圖3是所述渲染模塊提供的可交互水面渲染的網(wǎng)格示意圖。 圖4是可交互水面渲染的水面單元格描述。
圖中水面網(wǎng)格中的一個局部9個頂點的放大示意圖,00, 01…22是這個 網(wǎng)格9個頂點按照行列的示意標記。A, B…H是8個三角片。 圖5是動畫序列實施例。
圖6是視覺算法中,對于背景圖像和當前圖像差圖像的R通道圖。 圖7是視覺算法中,對于背景圖像和當前圖像差圖像的G通道圖。 圖8是視覺算法中,對于背景圖像和當前圖像差圖像的B通道圖。 圖9是背景和攝像頭圖像的差圖像。
具體實施例方式
下面結(jié)合附圖對本發(fā)明的實施例作詳細說明本實施例在以本發(fā)明技術(shù)方案 為前提下進行實施,給出了詳細的實施方式和具體的操作過程,但本發(fā)明的保 護范圍不限于下述的實施例。
如圖2所示,本實施例系統(tǒng)包括一臺個人計算機、 一臺投影儀、 一個普通攝 像頭。交互識別模塊、渲染模塊在計算機中運行,其中交互識別模塊會控制圖
中的攝像頭獲取圖像,再分析然后用渲染模塊控制投影儀輸出畫面。攝像頭插 在電腦的USB 口上,投影儀接在同一臺機器顯卡上的DVI接口上。攝像頭拍攝 范圍覆蓋投影儀的投射范圍,獲取投影儀及系統(tǒng)用戶的交互影像。
如圖1所示,所述渲染模塊是一個渲染引擎,他為用戶提供了比較強大便 捷的渲染功能。對于輸入的各種場景能夠以各種渲染技術(shù)進行高質(zhì)量的渲染, 通過GPU硬件的加速,用戶可以很方便地通過寫自己的著色程序來實現(xiàn)自己的 光照、陰影算法。除了通用的渲染流程,渲染模塊還支持一些特效的渲染,比 如物理水面、云、火焰和地形的渲染。這個模塊包括幾何變換模塊、資源管 理器模塊、特效庫模塊、光照和紋理模塊和渲染抽象層,這幾個子模塊分工合 作一起作為整個渲染管道的一個個節(jié)點。
資源管理器模塊用戶數(shù)據(jù)一般是一些三維場景的模型數(shù)據(jù),包括Maya (Autodesk公司開發(fā)著名三維建模渲染軟件)模型數(shù)據(jù)、3ds MAX (Autodesk 公司開發(fā)著名三維建模渲染軟件)模型數(shù)據(jù),這些數(shù)據(jù)有幾何數(shù)據(jù)、紋理數(shù)據(jù)、 材質(zhì)數(shù)據(jù)。當這些數(shù)據(jù)進來的時候,首先統(tǒng)一加載到資源管理器模塊,這樣以 后在整個渲染過程中可以進行統(tǒng)一管理,對于大的資源在資源管理器模塊中進 行加載、釋放、預(yù)加載等算法策略, 一些最近最長沒有用的資源會被釋放掉, 另一個方面在光照和紋理模塊算法中可以計算出將要用到的資源,這個時候光 照和紋理模塊就會把這些信息告訴資源管理器模塊,資源管理器模塊進行預(yù)加 載,從而提高了性能??傊阡秩具^程中用到的資源包括幾何數(shù)據(jù)、紋理數(shù) 據(jù)、材質(zhì)數(shù)據(jù)等都會由資源管理器統(tǒng)一加載和釋放,幾何變換模塊以及光照和 紋理模塊會給資源管理器模塊提供一些資源需求的信息,然后資源管理器模塊 就按照最近最少使用和預(yù)取的策略進行管理。
幾何變換模塊資源加載到資源管理器模塊之后,幾何變換模塊會首先去 資源管理器模塊申請模型幾何數(shù)據(jù)包括三角片、四邊形片等數(shù)據(jù)。并把申請到 數(shù)據(jù)按照自己的格式組織成符合這個渲染器能識別的自定義的模型數(shù)據(jù),包括 頂點位置、頂點法向量、頂點紋理坐標等。轉(zhuǎn)換好格式之后進行三個坐標系變 換,首先是將模型坐標轉(zhuǎn)換到用戶定義的世界坐標系,其中包括平移、旋轉(zhuǎn)、 縮放,這些數(shù)據(jù)都可以通過鼠標鍵盤等輸入設(shè)備進行輸入,方便用戶控制。然 后接下來是根據(jù)用戶輸入的攝像機位置,將幾何數(shù)據(jù)轉(zhuǎn)換到攝像機空間,最后
再將幾何數(shù)據(jù)進行透視變換轉(zhuǎn)換到標準的裁剪空間。
光照和紋理模塊經(jīng)資源管理器模塊的加載和幾何變換模塊數(shù)據(jù)的預(yù)處理, 處理好的數(shù)據(jù)會送到光照和紋理模塊進行渲染。根據(jù)用戶設(shè)定的要求,這個模 塊可以進行各種技術(shù)和各種精度的全局光照計算,支持以下一些渲染技術(shù)最 簡單的光線跟蹤、利用光子樹來求解蒙特卡羅積分來進行的光子跟蹤(支持直 接光、間接光、鏡面效果、散焦效果,可以設(shè)置采樣精度,光源可以是面光源、 點光源,使用高程動態(tài)光的環(huán)境光)、根據(jù)用戶提出的圖像誤差要求,可以對渲
染的視頻進行bilateral (考慮多種因素一起作用影響的濾波方式)的視頻濾波 從而達到運動模糊、景深、抗鋸齒等效果,如果誤差過大,還可以對一些像素 點進行重采樣。這一個子模塊是系統(tǒng)最核心也是最重要的模塊。
特效庫模塊光照和紋理模塊的技術(shù)實現(xiàn)需要特效庫模塊的加速實現(xiàn)。光
照算法需要大量的計算,在設(shè)計的時候就專門設(shè)計了一個特效庫模塊,這個模 塊里面有一些包裝好的技術(shù),每個技術(shù)里面又是一些用圖形處理單元渲染的渲 染流程,這樣就可以把一些渲染流程的技術(shù)封裝起來,并且用圖形處理單元硬 件進行加速。這個模塊總的來說就是用各種硬件特性來實現(xiàn)光照和紋理模塊中
要用的算法。充分利用了最新的DirectXlO (微軟公司開發(fā)的一種高性能三維圖 形開發(fā)包)顯卡的多處理單元的并行特性,以及英特爾多核處理器的多線程、 sse2/sse3 (擴展多媒體指令集)多媒體擴展指令的技術(shù)。
渲染抽象層是最具體細節(jié)的實現(xiàn)層。渲染模塊在設(shè)計的時候考慮了跨平 臺、跨渲染程序庫的可能性,所以這一個子模塊就是實現(xiàn)一個抽象的接口,底 層的實現(xiàn)就用OpenGL (—種高性能三維圖形開發(fā)包)或者Direct3D (微軟公司 開發(fā)的一種高性能三維圖形開發(fā)包)實現(xiàn),這個子模塊提供了大量的渲染和系 統(tǒng)的接口給上面的光照渲染層和特效庫模塊來調(diào)用。
對于一般的渲染就按照框圖的順序從上往下進行數(shù)據(jù)的處理和流動,當需 要表現(xiàn)某種特定效果的時候,會在觀察投影變化步驟之后,從特效庫模塊里面 拿到需要特效的著色程序集,然后著色程序集就會根據(jù)預(yù)定特效的渲染流程直 接在GPU上進行渲染。每一種特效都有自己的專門的渲染流程,這樣特效著色程 序集就可以比較靈活地加入新特效的算法。其中的資源管理器是一個相對獨立 的一個模塊,用來組織系統(tǒng)渲染資源的加載、釋放和使用,比如紋理、頂點緩
沖區(qū)、著色程序緩沖區(qū)等。這樣做的好處是將計算和數(shù)據(jù)比較好的分開來,方 便管理,增加可擴展性。渲染抽象層就是在底層對各種輸入的渲染數(shù)據(jù)進行提 交給硬件前的數(shù)據(jù)處理,模塊接口的設(shè)計具有抽象性,既可以用Direct3D,也 可以用OpenGL,具體API無關(guān)性,具有一定的跨平臺能力。
本實施例是集數(shù)字技術(shù)、數(shù)字藝術(shù)與中國傳統(tǒng)繪畫藝術(shù)于一體的交互展示作 品。在一個開放空間,提供觀賞者與水墨作品之間自然而靈動的交互。地面上 投影一幅水墨荷塘,魚兒不再是靜止在紙面上,而是在荷間自由悠游。參觀者 走進畫面,會發(fā)現(xiàn)腳下水波蕩漾,魚群驚散,荷葉漂??;沉睡的荷花被游人驚 醒,緩緩開放;當參觀者離開, 一切又漸漸平息,恢復原樣;池塘中不時有山 巖上的滴水,在水面濺起微波。 一幅靈動的水墨, 一個寫意的自然, 一份喧鬧 中的寧靜, 一種傳統(tǒng)與時尚的意趣盎然。安裝于上方的投影儀將水墨畫垂直投 影到地面上。這樣人們參觀的時候就可以去用手、腳、整個身體甚至是其他任 何物體和地面的畫面交互,后臺程序跟蹤并定位參觀者,并激發(fā)繪制程序做出 相應(yīng)的響應(yīng),比如魚群逃散,水波蕩漾,荷葉飄蕩等。
所述交互識別模塊安裝在一臺HP個人計算機上,通過對攝像頭拍攝到的內(nèi) 容進行分析,將分析結(jié)果的消息事件通過進程間通信發(fā)送給渲染模塊,然后渲 染模塊會實時繪制出新的響應(yīng)畫面。
所述交互識別模塊使用攝像頭來進行運動物體的檢測,主要采用背景幀作 差來識別交互的輸入模式。這種技術(shù)也在視頻跟蹤和交通監(jiān)控中應(yīng)用。
由于畫面中動態(tài)圖形對象的運動會對識別造成干擾,交互識別模塊首先選 取沒有動態(tài)圖形對象的渲染畫面作為背景幀。攝像頭將每次監(jiān)控拍攝到畫面同 之前拍攝的背景圖像之間作差,如果超過一定的閥值才認為是可能有物體在交 互。因為不同的背景的顏色特征,本實施例在對兩幅圖作差的時候,分別對彩 色圖像的RGB三個通道分別進行作差,結(jié)果再加權(quán)起來。R,G,B三個通道的灰度 直方圖如圖6,圖7和圖8所示。圖9是背景和攝像頭圖像在RGB三個通道的差 圖像的加權(quán)平均結(jié)果。如果將灰度值比較大的通道的權(quán)值設(shè)大一些,使得背景 和前景的區(qū)分度能夠比較大一些,識別效果會更好。
差圖像二值化之后,由于各種噪聲、光線環(huán)境變化、小物體目標的影響, 交互識別模塊需要對差圖像進行膨脹,使得原先有空洞的連通區(qū)域去掉空心, 再進行腐蝕來消除小斑塊。最后得到一些大塊的連通區(qū)域,這些區(qū)域就是在背 景上增加的交互動作。識別出這些大塊的區(qū)域之后,再在這些連通塊中計算出 質(zhì)心附近的若干點作為輸入消息發(fā)給渲染模塊,當渲染模塊接收到交互的輸入 之后,會在輸入點周圍的區(qū)域產(chǎn)生動畫響應(yīng)。
所述渲染模塊也安裝在同一臺在計算機上,顯卡是Geforce7900,最后的顯 示通過一臺安裝在天花板上的MITSUBISHI LX390投影儀從上往下地把畫面地投 影到地面上。投影儀旁邊還安裝了一個Logitech QuickCam攝像頭,也是從上 往下拍攝整個投影畫面所在區(qū)域。
所述渲染模塊渲染一個場景除了每一部分單獨的渲染技術(shù),還涉及到整個 場景的渲染組織問題。在整個場景的實時渲染中,本實施例充分利用了現(xiàn)代圖 形硬件的特性進行優(yōu)化渲染,結(jié)合現(xiàn)代圖形引擎技術(shù)進行組織渲染。
以下結(jié)合就水墨風格的"水,魚,荷"等內(nèi)容實現(xiàn)動畫和交互為例,說明 整個系統(tǒng)實現(xiàn)交互的過程,該系統(tǒng)采用0++、 OpenGL、 CG語言在微軟WindowsXP 系統(tǒng)上實現(xiàn)。
所述渲染模塊提供可交互水面渲染,可實現(xiàn)交互觸發(fā)的真實感水面的實時 動態(tài)繪制。水面建模采用平面網(wǎng)格表示,網(wǎng)格大小為64X64,長和寬都是75。 每一個網(wǎng)格上的水面節(jié)點用空間位置、空間法向量、相位、速度四個量來描述。 如圖3所示,網(wǎng)格的中心放在坐標原點(O,O,O),網(wǎng)格面在XOZ平面上。初始 化時,每一個節(jié)點的Vertex值為(n/GridSizeX+75-38. 5, 0, (1-m/GridSizeY) * 75-38. 5) , Normal的初始值為(0, 1, O)指向y正方向,Position的初始值為0, Velocity的值為0。初始網(wǎng)格是靜止的。水波的蕩漾體現(xiàn)在網(wǎng)格節(jié)點的運動上, 為了達到實時效果,本實施例的每一個網(wǎng)格節(jié)點只有y方向的上下移動,沒有 水平移動,和水波交疊和破碎的情況,實驗結(jié)果這樣的視覺效果也還是很不錯 的。水波具有傳遞和干涉等現(xiàn)象,當水波位置比較高的時候,接下來一定是變 低,然后把能量往周圍區(qū)域擴散,每一個節(jié)點的變化由他本身上一幀狀態(tài)以及 周圍節(jié)點的狀態(tài)共同影響,同是伴隨能量的衰減。按照這個思想,水節(jié)點網(wǎng)格 計算采用一個遞推公式來進行計算(參考圖4)。視頻的每一幀都要對所有網(wǎng)格節(jié) 點重復計算以上步驟。有了網(wǎng)格上每一個節(jié)點的坐標位置和法向量之后就可以 進行渲染了。
本實施例渲染在nVidia的Geforce7900GS顯卡的頂點渲染器和像素渲染器 中進行。在像素渲染器中,對三角片中每一個片斷進行渲染,最后水面的每一 點的最后顏色由水底的折射光、環(huán)境的反射光、環(huán)境光、光源反射光混合而成。 對于水底折射光的計算,本實施例根據(jù)頂點的坐標位置、法向量、水池深度以 及視點的位置可以很容易求出折射光線和水底的交點,然后用這個交點坐標轉(zhuǎn) 換到池底的紋理空間,采樣池底水墨畫的顏色值最為結(jié)果。
所述渲染模塊采用立方體環(huán)境映射技術(shù)計算環(huán)境光反射光。
所述渲染模塊提供圖形對象的紋理動畫的實現(xiàn)。如圖5是應(yīng)用實施例中采 用的某一圖形對象的一系列動作分解圖片進行單體動作的動畫,將結(jié)果混合到 渲染場景中,實現(xiàn)動畫繪制和交互響應(yīng)。
所述渲染模塊提供圖形對象的狀態(tài)管理,實現(xiàn)復雜的動畫及交互響應(yīng)。應(yīng) 用實施例中圖形對象的運動規(guī)律和動作間的切換是非常復雜的。本系統(tǒng)對畫面 中每個圖形對象的動作提供了多種狀態(tài)管理。系統(tǒng)會根據(jù)交互輸入?yún)?shù)和圖形 對象的當前狀態(tài)(包括速度、方向、姿態(tài)等),來決定下一個狀態(tài)圖形對象的狀 態(tài)以及兩個狀態(tài)之間的切換序列,保證兩狀態(tài)之間運動序列的光滑拼接。
本實施例用計算機視覺和圖形技術(shù)實現(xiàn)了一種更加自然的人機交互方式, 在節(jié)約成本的同時,大大提高了系統(tǒng)的適用范圍。
權(quán)利要求
1、一種基于攝像頭投影儀技術(shù)的交互系統(tǒng),包括攝像頭、投影儀、計算機、交互識別模塊、渲染模塊,其特征在于,所述交互識別模塊和渲染模塊都安裝在計算機上,所述投影儀將渲染的畫面投影到設(shè)定區(qū)域上,所述攝像頭捕捉固定場景,這里固定場景指的是包含投影儀投射出來畫面在內(nèi)的一塊區(qū)域,攝像頭拍攝到這塊區(qū)域后,會在拍攝的圖像中識別出投影畫面的區(qū)域,然后再由交互識別模塊進一步分析,所述交互識別模塊分析出當前人的位置和動作信息之后向渲染模塊發(fā)送消息,所述渲染模塊對交互識別模塊輸入的消息做出響應(yīng),完成相應(yīng)的動畫生成與實時繪制,渲染模塊、交互識別模塊通信通過進程間通信實現(xiàn)。
2、 根據(jù)權(quán)利要求1所述的基于攝像頭投影儀技術(shù)的交互系統(tǒng),其特征是, 所述交互識別模塊,其啟動時先捕捉一幀背景圖像作為參考幀,之后的每幀圖 像與參考幀進行圖像差運算,獲得差圖像,通過圖像二值化運算將差圖像轉(zhuǎn)換 為二值圖像,對二值差圖像再進行閉運算,利用背景元素和前景物體之間在尺 寸上的差別對背景元素和前景物體進行區(qū)分。
3、 根據(jù)權(quán)利要求1或2所述的基于攝像頭投影儀技術(shù)的交互系統(tǒng),其特征是,所述交互識別模塊,將二值差圖像中的連通區(qū)域全部提取出來,計算其覆 蓋面積,利用事先設(shè)定的面積閾值對其進行過濾,將背景中面積小的背景元素 過濾掉,通過對剩下的連通區(qū)域計算中心點的方法,確定前景物體分別所在的 位置,再以坐標點的形式發(fā)送給渲染模塊,做出相應(yīng)的動畫響應(yīng)和實時繪制。
4、 根據(jù)權(quán)利要求3所述的基于攝像頭投影儀技術(shù)的交互系統(tǒng),其特征是, 所述背景中面積小的背景元素,是指背景中面積小于整幅圖像面積0.5%的背景 元素。
5、 根據(jù)權(quán)利要求1所述的基于攝像頭投影儀技術(shù)的交互系統(tǒng),其特征是, 所述交互識別模塊是用來識別輸入的動作,而渲染內(nèi)容是用投影儀投射出來的 一個場景,渲染模塊接收來自交互識別模塊輸入的動作模式,然后用程序控制 做出相應(yīng)的響應(yīng),而這些響應(yīng)被交互識別模塊捕獲,這樣,交互識別模塊和渲 染模塊緊密地聯(lián)系起來。
6、根據(jù)權(quán)利要求1所述的基于攝像頭投影儀技術(shù)的交互系統(tǒng),其特征是, 所述渲染模塊,包括幾何變換模塊、資源管理器模塊、特效庫模塊、光照和 紋理模塊以及底層渲染抽象層,這幾個模塊分工合作一起作為整個渲染管道的一個個節(jié)點,其中所述資源管理器模塊統(tǒng)一加載和釋放在渲染過程中用到的資源包括幾何數(shù) 據(jù)、紋理數(shù)據(jù)、材質(zhì)數(shù)據(jù),資源管理器模塊接受幾何變換模塊和光照和紋理模 塊提供的資源需求信息,并按照最近最少使用和預(yù)取的策略進行管理;所述幾何變換模塊,在資源加載到資源管理器模塊之后,首先向資源管理 器模塊申請模型幾何數(shù)據(jù)包括三角片、四邊形片數(shù)據(jù),并把申請到的數(shù)據(jù)按照 自己的格式組織成符合這個渲染器能識別的自定義的模型數(shù)據(jù),包括頂點位置、 頂點法向量、頂點紋理坐標,轉(zhuǎn)換好格式之后進行三個坐標系變換,即將模型 坐標轉(zhuǎn)換到用戶定義的世界坐標系,其中包括平移、旋轉(zhuǎn)、縮放,這些數(shù)據(jù)通 過輸入設(shè)備進行輸入,然后根據(jù)用戶輸入的攝像機位置,將幾何數(shù)據(jù)轉(zhuǎn)換到攝 像機空間,再將幾何數(shù)據(jù)進行透視變換轉(zhuǎn)換到標準的裁剪空間;所述光照和紋理模塊,對經(jīng)過資源管理器模塊的加載和幾何變換模塊處理 過的數(shù)據(jù)進行渲染,根據(jù)用戶設(shè)定的要求,光照和紋理模塊進行各種技術(shù)和各 種精度的全局光照計算,支持以下渲染技術(shù)最簡單的光線跟蹤,利用光子樹 來求解蒙特卡羅積分來進行的光子跟蹤,根據(jù)用戶提出的圖像誤差要求,對渲 染的視頻進行bilateral的視頻濾波,從而達到運動模糊、景深、抗鋸齒效果, 如果誤差過大,對一些像素點進行重采樣;所述特效庫模塊,用各種硬件特性來實現(xiàn)光照和紋理模塊中所用的算法, 這個模塊里面有包裝好的技術(shù),每個技術(shù)里面又是一些圖形處理單元的渲染過程,這樣將一些渲染流程的技術(shù)封裝起來,且用圖形處理單元硬件進行加速;所述渲染抽象層是最具體細節(jié)的實現(xiàn)層,該子模塊是實現(xiàn)一個抽象的接口, 底層的實現(xiàn)用三維圖形開發(fā)包0penGL或者Direct3D實現(xiàn),這個子模塊提供了 大量的渲染和系統(tǒng)的接口給所述的光照和紋理模塊以及特效庫模塊調(diào)用。
全文摘要
一種計算機技術(shù)領(lǐng)域的基于攝像頭投影儀技術(shù)的交互系統(tǒng),包括攝像頭、投影儀、計算機、交互識別模塊、渲染模塊。所述投影儀將渲染的畫面投影到設(shè)定區(qū)域上。所述攝像頭捕捉固定場景,這里固定場景指的是包含投影儀投射出來畫面在內(nèi)的一塊區(qū)域,攝像頭拍攝到這塊區(qū)域后,在拍攝的圖像中識別出投影畫面的區(qū)域,然后再由交互識別模塊進一步分析。所述交互識別模塊分析出當前人的位置和動作信息之后向渲染模塊發(fā)送消息。所述渲染模塊對交互識別模塊輸入的消息做出響應(yīng),完成相應(yīng)的動畫生成與實時繪制。本發(fā)明用計算機視覺和圖形技術(shù)實現(xiàn)了一種更加自然的人機交互方式,在節(jié)約成本的同時,大大提高了系統(tǒng)的適用范圍。
文檔編號G06F3/01GK101183276SQ200710172158
公開日2008年5月21日 申請日期2007年12月13日 優(yōu)先權(quán)日2007年12月13日
發(fā)明者輝 張, 楊旭波, 肖雙九, 明 金 申請人:上海交通大學