孔吉宏,丘恩華,呂毅松,羅茜,周鴻雁
(南方電網(wǎng)調(diào)峰調(diào)頻發(fā)電有限公司,廣東 廣州 510630)
隨著計(jì)算機(jī)技術(shù)的發(fā)展和5G 高速通信應(yīng)用的深入,虛擬現(xiàn)實(shí)(VR)技術(shù)成為了當(dāng)前的研究熱點(diǎn)之一。VR 技術(shù)可以借助一定的硬件環(huán)境,通過(guò)計(jì)算機(jī)生成可以給人體帶來(lái)感官刺激的虛擬環(huán)境,并在該環(huán)境下完成人機(jī)交互[1-11]。在VR 中,人體的視覺(jué)、聽(tīng)覺(jué)、力覺(jué)、觸覺(jué)均得到了完整的反饋,消除了人與計(jì)算機(jī)之間的隔閡,做到了真正的人機(jī)交互。對(duì)于電力系統(tǒng),從業(yè)人員經(jīng)常處于危險(xiǎn)作業(yè)環(huán)境下,相關(guān)人員只有具備足夠的專(zhuān)業(yè)技能、熟練的業(yè)務(wù)能力才能保證人身和設(shè)備的安全。目前,電力系統(tǒng)使用的培訓(xùn)環(huán)境大多是小型化、離散化的,與實(shí)際的生產(chǎn)環(huán)境存在差距。若引入VR 技術(shù),建立操作仿真平臺(tái),可以大幅度提升電力系統(tǒng)的培訓(xùn)水平。
基于以上背景,該文對(duì)虛擬現(xiàn)實(shí)技術(shù)中的軟硬件平臺(tái)搭建方法、手勢(shì)跟蹤識(shí)別算法進(jìn)行了研究。針對(duì)某水電站設(shè)計(jì)了一套安全操作仿真平臺(tái),通過(guò)虛擬環(huán)境模擬實(shí)際生產(chǎn)環(huán)境,提高從業(yè)人員的專(zhuān)業(yè)技能與實(shí)操能力[12-15]。
為了實(shí)現(xiàn)人體和水電站虛擬環(huán)境的交互,需要引入手部感知識(shí)別軟硬件系統(tǒng)。在此之前,應(yīng)先建立虛擬環(huán)境下的手部模型,提供手的姿態(tài)、位置以及動(dòng)作等信息。具體的屬性如表1 所示[16]。
表1 手部信息采集
手部模型的指尖方向向量、手掌方向和法向向量如圖1 所示。
圖1 手部模型示意圖
當(dāng)前的手部跟蹤算法主要有兩類(lèi):1)檢測(cè)前跟蹤(TBD);2)檢測(cè)后跟蹤(DBT)。相較于DBT,TBD 算法需要保留手部的全部采集信息,然后對(duì)數(shù)據(jù)進(jìn)行聯(lián)合處理。由于在進(jìn)行特征判決時(shí)基于多幀數(shù)據(jù)信息,因此TBD 算法具有更高的檢測(cè)成功率,但其數(shù)據(jù)處理負(fù)荷更大,對(duì)于硬件的要求更高。該文面向的應(yīng)用場(chǎng)景為電力生產(chǎn),對(duì)于算法的識(shí)別精度有較高的要求,因此采用了TBD 算法。首先進(jìn)行均值濾波:
其中,N是像素總量。均值濾波通過(guò)像素點(diǎn)(x,y)周?chē)腘個(gè)像素點(diǎn)構(gòu)成濾波窗口,用均值替代原有的像素值,對(duì)原始的手部關(guān)節(jié)運(yùn)動(dòng)軌跡進(jìn)行降噪,避免因?yàn)槎秳?dòng)而引起噪聲影響。經(jīng)過(guò)均值濾波后,手部骨骼節(jié)點(diǎn)的空間坐標(biāo)變?yōu)椋?/p>
濾波完成后,對(duì)幀特征進(jìn)行特征提取。首先定義手掌掌心坐標(biāo)p、指尖坐標(biāo)fi:
由此可以得到手勢(shì)序列的結(jié)構(gòu)特征以及指尖到掌心的歐式距離:
由于手勢(shì)識(shí)別是通過(guò)連續(xù)的幀進(jìn)行判別,因此可以借助連續(xù)序列來(lái)定義序列特征。對(duì)于式(3)和式(4)所定義的手部模型,當(dāng)i=1,2,…,5 時(shí),可以組成六元組Ti={p,f1,f2,f3,f4,f5}。利用該六元組的平均值、標(biāo)準(zhǔn)差和均方根作為序列特征:
除了結(jié)構(gòu)特征和序列特征,在手勢(shì)的動(dòng)態(tài)變化中,其空間特征也會(huì)發(fā)生改變。為了描述出這種改變,首先需要定義掌心到中指尖的向量為空間中的基向量:
根據(jù)基向量,可以得到手勢(shì)在空間中與x、y、z軸的夾角余弦值:
為了保證水電站安全操作仿真平臺(tái)功能的完整性,該文基于系統(tǒng)工程學(xué)的思想對(duì)平臺(tái)進(jìn)行需求分析,設(shè)計(jì)了圖2 所示的系統(tǒng)功能模塊。
圖2 仿真平臺(tái)功能模塊圖
從圖2 中可以看出,系統(tǒng)包括設(shè)備學(xué)習(xí)、設(shè)備拆裝、水電站虛擬漫游和培訓(xùn)內(nèi)容考試四類(lèi)。每個(gè)模塊的具體功能如下:
1)設(shè)備學(xué)習(xí)
電力系統(tǒng)的安全、穩(wěn)定運(yùn)行離不開(kāi)設(shè)備的平穩(wěn)運(yùn)轉(zhuǎn),建立水電站仿真操作平臺(tái)是為了讓全體運(yùn)維人員深入了解運(yùn)行設(shè)備。在水電站中,包含水輪機(jī)、發(fā)電機(jī)組、高壓斷路器、隔離開(kāi)關(guān)等多種設(shè)備。通過(guò)引入虛擬現(xiàn)實(shí)系統(tǒng)進(jìn)行設(shè)備虛擬化操作、巡視,學(xué)習(xí)設(shè)備的工作原理可以更優(yōu)地提升運(yùn)維人員的專(zhuān)業(yè)水平。
2)設(shè)備拆裝
該模塊可以為運(yùn)維人員提供虛擬化的實(shí)操環(huán)境。運(yùn)維人員通過(guò)對(duì)電力設(shè)備的拆裝,可以更細(xì)致地了解設(shè)備的內(nèi)部結(jié)構(gòu),深入學(xué)習(xí)電力設(shè)備的運(yùn)行機(jī)理,提升自身的技能水平。
3)水電站虛擬漫游
該模塊基于實(shí)際的水電站生產(chǎn)環(huán)境,采用虛擬現(xiàn)實(shí)技術(shù)構(gòu)建虛擬的站內(nèi)場(chǎng)景,對(duì)水電站進(jìn)行1∶1真實(shí)展現(xiàn)。運(yùn)維人員可以借助VR 設(shè)備,實(shí)現(xiàn)站內(nèi)的沉浸式虛擬漫游。在漫游過(guò)程中,運(yùn)維人員完成對(duì)站內(nèi)重要設(shè)備、關(guān)鍵節(jié)點(diǎn)的巡視。
4)培訓(xùn)內(nèi)容考試
該模塊可以基于上述的設(shè)備學(xué)習(xí)、設(shè)備拆裝、虛擬漫游等培訓(xùn)項(xiàng)目進(jìn)行考核鑒定。通過(guò)虛擬現(xiàn)實(shí)技術(shù)配置實(shí)操題目,運(yùn)維人員可以在虛擬環(huán)境中完成培訓(xùn)與考核。該模塊的引入實(shí)現(xiàn)了整個(gè)仿真平臺(tái)業(yè)務(wù)流程的閉環(huán)。
為了實(shí)現(xiàn)圖2 描述的安全仿真平臺(tái),需要借助VR 硬件,該文使用的是LED-CAVE。其可以通過(guò)手柄和數(shù)據(jù)手套上的70 多個(gè)傳感器記錄數(shù)據(jù),生成目標(biāo)的空間位置,借助雙目成像技術(shù)感知虛擬環(huán)境。LED-CAVE連接的PC作為軟硬件的結(jié)合點(diǎn),共有8臺(tái)高性能圖形工作站,其中1臺(tái)作為主控機(jī),另外7臺(tái)作為渲染集群機(jī)控制LED 主控設(shè)備進(jìn)行湖面呈現(xiàn),所有工作站均在局域網(wǎng)內(nèi),每臺(tái)機(jī)器的配置均如表2所示。
表2 計(jì)算機(jī)配置
從表2 可以看出,PC 上配置的軟件開(kāi)發(fā)工具為Unity 和MiddleVR。Unity 是一款用于大型游戲設(shè)計(jì)的專(zhuān)業(yè)軟件,可以通過(guò)物理模擬、法線貼圖、動(dòng)態(tài)陰影等資源完成場(chǎng)景渲染。在工作時(shí),Unity 通過(guò)可視化工作流完成場(chǎng)景布局、資源綁定,極大地提升了VR 開(kāi)發(fā)的效率。而MiddleVR 是一款專(zhuān)用VR 開(kāi)發(fā)插件,其支持LED-CAVE 交互設(shè)備并提供了全面的設(shè)備接口。通過(guò)書(shū)寫(xiě)配置文件,即可將軟硬件無(wú)縫結(jié)合,實(shí)現(xiàn)人與虛擬世界的交互。
在開(kāi)發(fā)的過(guò)程中,為了將MiddleVR 添加到Unity項(xiàng)目中,因此需要將其鏈接到MiddleVR 的通用部分,以驅(qū)動(dòng)攝像機(jī)和3D 節(jié)點(diǎn)的所有腳本及插件。在MiddleVR 安裝的數(shù)據(jù)文件夾中找到MiddleVR Unity,然后導(dǎo)入該數(shù)據(jù)包并添加MiddleVR 和Plugins兩個(gè)文件夾,具體的配置方法如圖3 所示。
圖3 UI交互配置圖
配置完成后,對(duì)編程環(huán)境進(jìn)行交互配置。首先創(chuàng)建交互腳本:
using Unity;
using MiddleVR_Unity;
隨后,借助MidlleVR 中的設(shè)備管理器MiddleVR.VRDeviceMgr 添加所有的輸入設(shè)備,并在設(shè)備管理器中配置添加多個(gè)Wand。添加完成后,如需訪問(wèn)他們的輸入數(shù)據(jù),則只需通過(guò)調(diào)用命令來(lái)檢索Wand:
vrWand myWand=
MiddleVR.VRDeviceMgr.GetWand("MyWand Name");
由于MiddleVR 和Unity 使用了不同的坐標(biāo)系,因此,當(dāng)用戶(hù)從MiddleVR 的添加輸入設(shè)備獲取3D坐標(biāo)(3D 矢量、四元數(shù)、矩陣)后,必須借助MVRTools.ToUnity(·)函數(shù)再將其轉(zhuǎn)換為Unity 坐標(biāo);當(dāng)用戶(hù)從Unity GameObject 獲取3D 坐標(biāo)并在MiddleVR 節(jié)點(diǎn)或跟蹤器上對(duì)其進(jìn)行設(shè)置時(shí),需要先借助SetPos itionVirtualWorld(·)函數(shù)從Unity 轉(zhuǎn)換為MiddleVR 坐標(biāo)系。
如圖4 所示,穿戴好動(dòng)作捕捉設(shè)備,進(jìn)入系統(tǒng)程序調(diào)試完成之后,利用設(shè)備操縱場(chǎng)景中的虛擬人物進(jìn)行動(dòng)作,可以給系統(tǒng)使用者帶來(lái)真實(shí)的體驗(yàn)感。
圖4 視界可達(dá)性與動(dòng)作舒適性驗(yàn)證
圖5 給出了虛擬手的操作示意圖。通過(guò)Unity 和MiddleVR 的交互接口完成虛擬手在場(chǎng)景中進(jìn)行事件、響應(yīng)操作,例如實(shí)現(xiàn)抓握、松手、五指動(dòng)作指令等。圖中給出了拾取/放置、拆卸/裝配等操作的仿真圖示。
圖5 設(shè)備操作虛擬操作示意
為了評(píng)估該仿真操作平臺(tái)在進(jìn)行設(shè)備操作時(shí)對(duì)于手部動(dòng)作的識(shí)別精度,該文征集了102 名參培學(xué)員,針對(duì)13 種手部動(dòng)作錄制了數(shù)據(jù)集。在該數(shù)據(jù)集中,每位參培學(xué)員針對(duì)同一動(dòng)作錄制10 次,共得到了13 260 個(gè)視頻序列,每個(gè)序列的分辨率為640×480,長(zhǎng)度1~2 s,幀率為每秒30 幀。
在分類(lèi)時(shí),文中使用支持向量機(jī)(SVM)算法,仿真使用的核函數(shù)為線性徑向基高斯函數(shù)。在仿真時(shí),使用60%的樣本數(shù)據(jù)作為訓(xùn)練集,其余40%的樣本數(shù)據(jù)作為測(cè)試集。完成上文所述的手部特征提取后,最終每個(gè)動(dòng)作的識(shí)別準(zhǔn)確度如表3 所示。
表3 該文算法的仿真結(jié)果
從表3 可以看出,該系統(tǒng)在進(jìn)行手部動(dòng)作識(shí)別時(shí),對(duì)大多數(shù)的手部動(dòng)作識(shí)別準(zhǔn)確度均在85%以上,平均識(shí)別準(zhǔn)確度達(dá)到了87.2%。但對(duì)于兩指捏、捏放這種相似動(dòng)作,容易產(chǎn)生識(shí)別混淆,故而平臺(tái)在該動(dòng)作的識(shí)別上仍有一定的優(yōu)化空間。
該文基于某水電站的實(shí)際生產(chǎn)環(huán)境,利用VR 設(shè)備、Unity、MiddleVR 等軟硬件平臺(tái)進(jìn)行虛擬化,并對(duì)手部的動(dòng)作跟蹤和識(shí)別方法進(jìn)行優(yōu)化。在虛擬化后的環(huán)境下,從業(yè)人員可以實(shí)現(xiàn)設(shè)備操作、設(shè)備拆裝、虛擬漫游等功能,電力從業(yè)人員在該系統(tǒng)中,可以通過(guò)視覺(jué)、聽(tīng)覺(jué)、觸覺(jué)等多種感官完成培訓(xùn),從而有效提升作業(yè)人員的培訓(xùn)體驗(yàn)和電力行業(yè)的培訓(xùn)水平。該文的研究?jī)?nèi)容符合電力培訓(xùn)的發(fā)展趨勢(shì),具有較強(qiáng)的應(yīng)用價(jià)值。