本發(fā)明屬于圖形處理技術(shù)領(lǐng)域,特別是涉及一種基于OpenGL ES的三維拍照方法和系統(tǒng)。
背景技術(shù):
目前手機(jī)拍照已經(jīng)成為主流,大部份人出門在外的拍照工具都只需要是一部手機(jī)便可以完成。如何讓手機(jī)拍照變得更有趣,更好玩,便成為了人們對于基礎(chǔ)拍照之外的需求。
目前人們多采用各種拍照軟件對照片進(jìn)行豐富美化,其中最常見的是在圖像中加入前景圖像;而現(xiàn)有的前景美化方式多采用將二維圖像和視頻圖像中的人物相結(jié)合,以達(dá)到圖像前景美化的目的,但是二維圖像較為死板,趣味性能低;并且現(xiàn)有的三維幾何體渲染手段速度慢使得渲染效率低。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述問題,本發(fā)明提出了一種基于OpenGL ES的三維拍照方法和系統(tǒng),將視頻中的人物結(jié)合虛擬三維物體一同出鏡,增加了拍照的趣味性,且響應(yīng)速度快,渲染效率高。
為達(dá)到上述目的,本發(fā)明采用的技術(shù)方案是:
一種基于OpenGL ES的三維拍照方法,包括步驟,
S01,利用建模軟件構(gòu)建三維模型幾何體,并將三維模型幾何體存入移動(dòng)設(shè)備的存儲(chǔ)器中;
S02,利用移動(dòng)設(shè)備的攝像頭獲取視頻圖像,并通過人臉識別與追蹤方法定位人臉位置,獲得視頻圖像數(shù)據(jù);
S03,由移動(dòng)設(shè)備的中央處理器解析三維模型幾何體,得到解析數(shù)據(jù);
S04,OpenGL ES利用解析數(shù)據(jù)繪制三維模型;
S05,使用OpenGL ES混合模式將視頻圖像數(shù)據(jù)和三維模型進(jìn)行混合,并最終渲染出帶有三維模型的最終場景;
S06,將最終場景通過移動(dòng)設(shè)備的顯示裝置展示給用戶。
進(jìn)一步的是,步驟S01中所述建模軟件為Maya建模軟件,該軟件為市面主流的三維建模軟件,通用性能強(qiáng);建模過程中,對所述三維模型幾何體進(jìn)行紋理貼圖,當(dāng)有動(dòng)畫時(shí)加上骨骼蒙皮動(dòng)畫,使三維模型幾何體更加形象逼真。
進(jìn)一步的是,步驟S02中人臉識別與追蹤方法過程為,分析攝像頭視頻圖像數(shù)據(jù),識別人臉并跟蹤人臉,得到關(guān)于人臉數(shù)據(jù),所述人臉數(shù)據(jù)包括眼睛位置數(shù)據(jù)、嘴巴位置數(shù)據(jù)和人臉的三維姿態(tài)數(shù)據(jù);視頻圖像和人臉數(shù)據(jù)結(jié)合為圖像數(shù)據(jù),為三維模型合成作準(zhǔn)備。
進(jìn)一步的是,步驟S03中所述解析數(shù)據(jù)包括頂點(diǎn)數(shù)據(jù)、索引數(shù)據(jù)、紋理坐標(biāo)和骨骼動(dòng)畫數(shù)據(jù)蒙皮權(quán)值,為OpenGL ES渲染提供基礎(chǔ)數(shù)據(jù)。
進(jìn)一步的是,步驟S04中用OpenGL ES繪制三維幾何體,包括步驟:
使用OpenGL ES的頂點(diǎn)數(shù)據(jù)上傳接口將頂點(diǎn)數(shù)據(jù)上傳到圖形處理器中以待渲染;
將索引數(shù)據(jù)上傳至圖形處理器,根據(jù)索引數(shù)據(jù)在頂點(diǎn)數(shù)據(jù)中找到相應(yīng)的頂點(diǎn)數(shù)據(jù)來組織成相應(yīng)的三維模型;由于三維模型的數(shù)據(jù)量通常比較巨大,此步驟主要用于節(jié)約數(shù)據(jù)量,加快技術(shù)速度;
將紋理坐標(biāo)上傳至圖形處理器,并使用紋理坐標(biāo)映射紋理圖像,得到帶紋理圖像的三維模型;此步驟使得三維模型的更加逼真;
如果三維模型帶有動(dòng)畫,則由骨骼蒙皮動(dòng)畫數(shù)據(jù)實(shí)時(shí)更新頂點(diǎn)數(shù)據(jù),循環(huán)以上步驟得到帶動(dòng)畫的三維模型;此步驟使得三維模型的更加逼真,實(shí)時(shí)更新三維模型。
進(jìn)一步的是,步驟S05中根據(jù)OpenGL ES混合來把圖像數(shù)據(jù)與三維幾何體進(jìn)行混合,包括步驟:設(shè)置OpenGL ES混合模式并開啟深度測試,用一層圖形渲染視頻圖像數(shù)據(jù),這個(gè)圖層是由4個(gè)頂點(diǎn)數(shù)據(jù)和4個(gè)紋理坐標(biāo)組成的圖元單位;再使用解析之后的三維模型數(shù)據(jù)渲染三維模型;具有多個(gè)網(wǎng)絡(luò)組成的三維模型,對每個(gè)網(wǎng)絡(luò)分別進(jìn)行渲染;然后使用Alpha混合方式渲染得到帶有三維模型的最終場景。
進(jìn)一步的是,S06后還包括步驟:根據(jù)視頻圖像數(shù)據(jù)實(shí)時(shí)調(diào)整三維幾何體的三維姿態(tài)。根據(jù)人臉位置來實(shí)時(shí)的調(diào)整整個(gè)三維模型的狀態(tài)。
進(jìn)一步的是,實(shí)時(shí)調(diào)整三維模型的三維姿態(tài)的過程包括步驟:將所述三維姿態(tài)數(shù)據(jù)生成變換矩陣;將變換矩陣和三維模型每個(gè)頂點(diǎn)進(jìn)行變換,得到三維模型的最終形態(tài);如果三維模型有動(dòng)畫,三維模型的最終形態(tài)再結(jié)合的骨骼蒙皮動(dòng)畫,得到實(shí)時(shí)調(diào)整后的帶有三維模型的最終場景。
另一方面,本發(fā)明還提供了一種基于OpenGL ES的三維拍照系統(tǒng),包括相互通訊連接的移動(dòng)設(shè)備和建模計(jì)算機(jī),所述移動(dòng)設(shè)備包括攝像頭、存儲(chǔ)器、圖形處理器、中央處理器和顯示裝備,所述攝像頭、存儲(chǔ)器、圖形處理器和顯示裝備分別連接至中央處理器。
采用本技術(shù)方案的有益效果:
本發(fā)明能夠?qū)⒅辈セ蚝笃谝曨l中的人物和虛擬的三維物體相互結(jié)合,使人物和三維物體一同出鏡,且相互之間具有較高的融合性,增加了拍照的趣味性;能夠?qū)崟r(shí)定位追蹤視頻中的圖像,且跟蹤精度高,響應(yīng)速度快;且本發(fā)明提出的方法計(jì)算響應(yīng)速度快,渲染效率高。
附圖說明
圖1為本發(fā)明的一種基于OpenGL ES的三維拍照方法流程示意圖;
圖2為本發(fā)明實(shí)施例中一種基于OpenGL ES的三維拍照系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對本發(fā)明作進(jìn)一步闡述。
在本實(shí)施例中,參見圖1所示,本發(fā)明提出了一種基于OpenGL ES的三維拍照方法,包括步驟S01-S06。
其中:
S01,利用建模軟件構(gòu)建三維模型幾何體,并將三維模型幾何體存入移動(dòng)設(shè)備的存儲(chǔ)器中。
步驟S01中所述建模軟件為Maya建模軟件,該軟件為市面主流的三維建模軟件,通用性能強(qiáng);步驟S01的建模過程中,對所述三維模型幾何體添加紋理貼圖,若有動(dòng)畫加上骨骼蒙皮動(dòng)畫,使三維模型幾何體更加形象逼真。
使用三維建模軟件來創(chuàng)建一個(gè)三維模型幾何體,可以帶動(dòng)畫,帶紋理,選擇相應(yīng)的尺寸比例,以便方便在程序中按相應(yīng)的大小渲染出來;在制作好模型之后,將其導(dǎo)出為FBX或DAE等通用三維交換格式。
這里的舉例說明一下具體模型的實(shí)現(xiàn)過程,使用市面上的主流三維建模軟件,如這里使用Maya來制作三維模型,首先打開Maya創(chuàng)建新的平面,這里三維建模人員創(chuàng)建頂點(diǎn)數(shù)據(jù)得到一個(gè)模型后再給模型貼上紋理圖后再進(jìn)行UV紋理坐標(biāo)的映射以便能正確的顯示紋理,最后使用插件導(dǎo)出所需要的數(shù)據(jù),包含單獨(dú)的紋理圖像。
S02,利用移動(dòng)設(shè)備的攝像頭獲取視頻圖像,并通過人臉識別與追蹤方法定位人臉位置,獲得視頻圖像數(shù)據(jù)。
步驟S02中人臉識別與追蹤方法過程為,分析攝像頭視頻圖像數(shù)據(jù),識別人臉并跟蹤人臉,得到關(guān)于人臉數(shù)據(jù),所述人臉數(shù)據(jù)包括眼睛位置數(shù)據(jù)、嘴巴位置數(shù)據(jù)和人臉的三維姿態(tài)數(shù)據(jù);視頻圖像和人臉數(shù)據(jù)結(jié)合為圖像數(shù)據(jù)。
使用移動(dòng)設(shè)備自帶的人臉識別與追蹤或者其它第三方人臉追蹤系統(tǒng)來進(jìn)行人臉的識別與定位,得到人臉在整個(gè)輸出畫面中的坐標(biāo)位置、3D姿態(tài)等人臉數(shù)據(jù),為后續(xù)的三維模型合成作準(zhǔn)備。
這里以在iPhone手機(jī)上舉例說明一下,首先使用系統(tǒng)提供的人臉檢測API,得到人臉?biāo)诘奈恢门c大小,根據(jù)實(shí)際情況系統(tǒng)會(huì)返回一個(gè)或者多個(gè)人臉在圖像中的位置信息角度等信息,系統(tǒng)通常會(huì)返回人臉在圖像中所占的矩形區(qū)域來標(biāo)識;再把這些跟人臉相關(guān)的數(shù)據(jù)拿到人臉追蹤系統(tǒng)中進(jìn)行追蹤,通過相應(yīng)的算法從幾萬張訓(xùn)練出來的人臉數(shù)據(jù)模型中得到66個(gè)或者更多的追蹤點(diǎn),以便得到人臉位置的實(shí)時(shí)追蹤效果,同時(shí)可評估出人臉的3D姿態(tài),如人臉yaw、roll和pitch角度信息等。
S03,由移動(dòng)設(shè)備的中央處理器解析三維模型幾何體,得到解析數(shù)據(jù);。
步驟S03中所述解析數(shù)據(jù)包括頂點(diǎn)數(shù)據(jù)、索引數(shù)據(jù)、紋理坐標(biāo)和骨骼動(dòng)畫數(shù)據(jù)蒙皮權(quán)值,為OpenGL ES渲染提供基礎(chǔ)數(shù)據(jù)。
這里以DAE格式為例來說明一下具體流程,DAE格式是標(biāo)準(zhǔn)的XML格式,其標(biāo)準(zhǔn)目前是由khronos在維護(hù),因?yàn)槭菢?biāo)準(zhǔn)的XML格式里面包括了頂點(diǎn)數(shù)據(jù)節(jié)點(diǎn)、動(dòng)畫數(shù)據(jù)節(jié)點(diǎn)、紋理坐標(biāo)節(jié)點(diǎn)、索引數(shù)據(jù)節(jié)點(diǎn)和骨骼動(dòng)畫數(shù)據(jù)節(jié)點(diǎn)等需要渲染的所有數(shù)據(jù),只需要寫程序把以上所提到的所有數(shù)據(jù)解析出來,便可以使用這些數(shù)據(jù)。
S04,OpenGL ES利用解析數(shù)據(jù)繪制三維模型。
步驟S04中用OpenGL ES技制三維幾何體,包括步驟:
使用OpenGL ES的頂點(diǎn)數(shù)據(jù)上傳接口將頂點(diǎn)數(shù)據(jù)上傳到圖形處理器中以待渲染;首先拿到頂點(diǎn)數(shù)據(jù),頂點(diǎn)數(shù)據(jù)即是一個(gè)三維模型的外在形態(tài)數(shù)據(jù),使用OpenGL ES的頂點(diǎn)數(shù)據(jù)上傳接口上傳到GPU上以待渲染,為了性能還可以使用VAO,VBO等直接把數(shù)據(jù)保存在GPU上,因?yàn)槭褂玫匿秩痉绞讲煌瑫r(shí)由于三維模型的數(shù)據(jù)量通常比較巨大,所以還要使用索引方式的渲染方式,所以還需要把索引數(shù)據(jù)上傳至GPU。
將索引數(shù)據(jù)上傳至圖形處理器,根據(jù)索引數(shù)據(jù)在頂點(diǎn)數(shù)據(jù)中找到相應(yīng)的頂點(diǎn)數(shù)據(jù)來組織成相應(yīng)的三維模型;由于三維模型的數(shù)據(jù)量通常比較巨大,此步驟主要用于節(jié)約數(shù)據(jù)量,加快渲染速度;索引數(shù)據(jù)即可以在頂點(diǎn)數(shù)據(jù)中找到相應(yīng)的頂點(diǎn)數(shù)據(jù)來組織成相應(yīng)的三維模型,主要是節(jié)約數(shù)據(jù)量;在有了頂點(diǎn)數(shù)據(jù)與索引數(shù)據(jù)之后,理論上已經(jīng)能夠渲染出三維模型了,只是這個(gè)時(shí)候三維模型的外觀可能不太好看,因?yàn)闆]有加入光照,沒有加入紋理,同時(shí)沒有加入動(dòng)畫。
將紋理坐標(biāo)和紋理圖像上傳至圖形處理器,并使用紋理坐標(biāo)映射紋理圖像,得到帶紋理圖像的三維模型;此步驟使得三維模型的更加逼真。
如果三維模型帶有動(dòng)畫,則由骨骼蒙皮動(dòng)畫數(shù)據(jù)實(shí)時(shí)更新頂點(diǎn)數(shù)據(jù),循環(huán)以上步驟得到帶動(dòng)畫的三維模型;此步驟使得三維模型的更加逼真,實(shí)時(shí)更新三維模型。為了三維模型更新逼真,還需要上傳紋理數(shù)據(jù)和紋理坐標(biāo),如有需要還需要時(shí)實(shí)的更新頂點(diǎn)數(shù)據(jù)以便得到動(dòng)畫,這里更新頂點(diǎn)數(shù)據(jù)來源為骨骼蒙皮動(dòng)畫數(shù)據(jù),為了簡單性暫時(shí)在GPU上運(yùn)行運(yùn)算,在得到運(yùn)算結(jié)果后直接提交至GPU。
具體的,紋理數(shù)據(jù)需要在導(dǎo)出DAE或者FBX時(shí),一同導(dǎo)出紋理圖片,這張紋理圖片用來給模型添加“皮膚”的功能,使其看上去更加逼真;首先把紋理圖片數(shù)據(jù)讀出并生成一張對應(yīng)Opengl ES中的紋理,即得到TextureId;然后用通常編寫shader的方式把TextureId與shader中的uniform一致變量相對應(yīng)并賦值,此時(shí)GPU已經(jīng)有了頂點(diǎn)數(shù)據(jù)、索引數(shù)據(jù)和紋理數(shù)據(jù),但是還缺少如何把紋理數(shù)據(jù)映射到模型上的數(shù)據(jù),即紋理坐標(biāo)數(shù)據(jù),因?yàn)橐呀?jīng)解析出了整個(gè)模型的紋理坐標(biāo)數(shù)據(jù),所以同樣的,把這部分紋理坐標(biāo)數(shù)據(jù)解析出來,并通過OpenGL ES相應(yīng)的上傳接口把數(shù)據(jù)上傳至GPU,當(dāng)完成這一系列動(dòng)作之后,只需要調(diào)用OpenGL ES相應(yīng)的渲染接口,并顯示到GLView上,便已經(jīng)能夠看到靜態(tài)的三維模型。
如果這個(gè)三維模型存在動(dòng)畫,那么也應(yīng)該要相應(yīng)把動(dòng)畫渲染出來,動(dòng)畫的原理為實(shí)時(shí)的更新頂點(diǎn)數(shù)據(jù),這部分動(dòng)畫更新的計(jì)算可以放在GPU上也可以放在CPU上,本實(shí)施例中放在CPU上來計(jì)算。
具體流程為,利用得到的動(dòng)畫數(shù)據(jù)、骨骼數(shù)據(jù)和蒙皮數(shù)據(jù)來插值計(jì)算最終的頂點(diǎn)數(shù)據(jù);如在時(shí)間T0和T1這兩個(gè)時(shí)間段上有動(dòng)畫存在,那么這兩個(gè)時(shí)間點(diǎn)上表示出來的動(dòng)畫數(shù)據(jù)會(huì)表明這個(gè)變換的存在,變換通常是以變換矩陣的方式存在,中間用線性插值或者四元數(shù)球面線性插值來完成,在得到相應(yīng)時(shí)間點(diǎn)對應(yīng)的變換矩陣后與骨骼數(shù)據(jù)相乘即可把骨骼形態(tài)轉(zhuǎn)換到T1這個(gè)時(shí)間上,因?yàn)槿S模型通常有多個(gè)節(jié)點(diǎn),如父節(jié)點(diǎn)和子節(jié)點(diǎn),為了讓子節(jié)點(diǎn)隨父節(jié)點(diǎn)的變換而變換,所以還需要級聯(lián)相乘子節(jié)點(diǎn)自身的矩陣,在得到了每個(gè)節(jié)點(diǎn)對應(yīng)于世界坐標(biāo)的變換矩陣后,還需要明白骨骼、關(guān)節(jié)其實(shí)是想像中存在的東西,其本質(zhì)是一個(gè)局部坐標(biāo)系。因?yàn)樽罱K頂點(diǎn)的所有變換都由骨骼來驅(qū)動(dòng),所以還需要把頂點(diǎn)從世界坐標(biāo)系變換到骨骼存在的局部坐標(biāo)系,這樣當(dāng)骨骼運(yùn)動(dòng)的時(shí)候便可帶動(dòng)所有影響的頂點(diǎn)一起運(yùn)動(dòng)。這里每個(gè)骨骼都包含了一個(gè)叫做偏移矩陣的數(shù)據(jù),只需要把頂點(diǎn)乘以這個(gè)偏移矩陣便可以把這個(gè)轉(zhuǎn)換完成,這里形成的頂點(diǎn)已經(jīng)可以實(shí)現(xiàn)動(dòng)畫效果,不過由于是“硬”轉(zhuǎn)換,所以關(guān)節(jié)之間的變換會(huì)產(chǎn)生“裂縫”,所以還需要引入蒙皮效果,蒙皮即權(quán)限,每個(gè)頂點(diǎn)可能會(huì)受到多個(gè)骨骼的影響,總權(quán)值為1,那么一個(gè)頂點(diǎn)受到多個(gè)骨骼影響,那么這樣關(guān)節(jié)的實(shí)現(xiàn)效果便是平滑的,即消失了“裂縫”,那么整體效果便出來了,這樣可以實(shí)現(xiàn)一些如眨眼,張閉嘴巴等功能,使三維模型跟隨人的面部動(dòng)畫而動(dòng)畫。
S05,使用OpenGL ES混合模式將視頻圖像數(shù)據(jù)和三維模型進(jìn)行混合,并最終渲染出帶有三維模型的最終場景。
步驟S05中根據(jù)OpenGL ES混合把視頻圖像數(shù)據(jù)與三維幾何體進(jìn)行混合,包括步驟:設(shè)置OpenGL ES混合模式并開啟深度測試,用一層圖形渲染視頻圖像數(shù)據(jù),這個(gè)圖層是由4個(gè)頂點(diǎn)數(shù)據(jù)和4個(gè)紋理坐標(biāo)組成的圖元單位;再使用解析之后的三維模型數(shù)據(jù)渲染三維模型;具有多個(gè)網(wǎng)絡(luò)組成的三維模型,對每個(gè)網(wǎng)絡(luò)分別進(jìn)行渲染;然后使用Alpha混合方式渲染得到帶有三維模型的最終場景。
設(shè)置好混合模式開啟深度測試等準(zhǔn)備,用一層圖形來渲染視頻輸入的視頻數(shù)據(jù)即整個(gè)圖像數(shù)據(jù),一切已經(jīng)裝備就緒,在渲染攝像頭給過來的整個(gè)視頻圖像時(shí)并不渲染三維模型;當(dāng)視頻圖像渲染完成,再來渲染三維渲染,由于三維模型有可能是由多個(gè)網(wǎng)格組成并且各頂點(diǎn)深度不一樣,所以這里必須要開啟深度測試,這里需要注意在渲染視頻圖像與渲染三維模型時(shí)深度緩沖區(qū)是否可寫的問題以免出來的效果不正確。混合使用基于Alpha的渲染模式便可輕松實(shí)現(xiàn)需要的效果。
S06,將最終場景通過移動(dòng)設(shè)備的顯示裝置展示給用戶。
作為上述實(shí)施例的優(yōu)化方案,S06后還包括步驟:根據(jù)視頻圖像數(shù)據(jù)實(shí)時(shí)調(diào)整三維幾何體的三維姿態(tài)。根據(jù)人臉位置來實(shí)時(shí)的調(diào)整整個(gè)三維模型的狀態(tài)。。
實(shí)時(shí)調(diào)整三維模型的三維姿態(tài)的過程包括步驟:將所述三維姿態(tài)數(shù)據(jù)生成變換矩陣;將變換矩陣和三維模型每個(gè)頂點(diǎn)進(jìn)行變換,得到三維模型的最終形態(tài);如果三維模型有動(dòng)畫,三維模型的最終形態(tài)再結(jié)合的骨骼蒙皮動(dòng)畫,得到實(shí)時(shí)調(diào)整后的帶有三維模型的最終場景。
具體的,利用S02中得到的人臉位置數(shù)據(jù)來實(shí)時(shí)的調(diào)整整個(gè)三維模型的狀態(tài),方法為在提交給GPU最終的頂點(diǎn)位置數(shù)據(jù)時(shí)加上一步人臉的三維姿態(tài)數(shù)據(jù),即添加一個(gè)矩陣乘法,把人臉三維姿態(tài)得到的模型視圖變換矩陣投影矩陣應(yīng)用上去,即把三維模型的頂點(diǎn)數(shù)據(jù)在頂點(diǎn)著色器中與三維姿態(tài)的最終變換相乘,這里的最終矩陣可以在CPU端用模型視圖矩陣與投影矩陣的相乘結(jié)果來表示。
這里需要注意保持?jǐn)?shù)據(jù)類型(列向量或行向量)一致,即矩陣左乘還是右乘;這樣將得到的最終矩陣數(shù)據(jù),再結(jié)合已經(jīng)被應(yīng)用上動(dòng)畫效果的頂點(diǎn)數(shù)據(jù)從而通過與最終矩陣相乘計(jì)算出最終的頂點(diǎn)位置,這里有一個(gè)細(xì)節(jié)需要注意的是三維模型有個(gè)能由多個(gè)網(wǎng)絡(luò)組成,他們之間存在偏移矩陣,通常還存在父子關(guān)系,所以也需要把每個(gè)網(wǎng)絡(luò)的最終矩陣通過級聯(lián)的方式計(jì)算處理,最終再乘上一開始提到的模型視圖矩陣投影矩陣,便得到最終包含三維模型的效果。
同時(shí)還可以在三維的基礎(chǔ)上添加2D的動(dòng)態(tài)渲染層,這樣便可以使內(nèi)容更加豐富。
為配合本發(fā)明方法的實(shí)現(xiàn),基于相同的發(fā)明構(gòu)思,如圖2所示,本發(fā)明還提供了一種基于OpenGL ES的三維拍照系統(tǒng),包括相互通訊連接的移動(dòng)設(shè)備和建模計(jì)算機(jī),所述移動(dòng)設(shè)備包括攝像頭、存儲(chǔ)器、圖形處理器、中央處理器和顯示裝備,所述攝像頭、存儲(chǔ)器、圖形處理器和顯示裝備分別連接至中央處理器。
以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點(diǎn)。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實(shí)施例的限制,上述實(shí)施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會(huì)有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi)。本發(fā)明要求保護(hù)范圍由所附的權(quán)利要求書及其等效物界定。