談虛擬攝像頭技術(shù)在監控系統中的應用
前言
本文引用地址:http://dyxdggzs.com/article/250091.htm網(wǎng)絡(luò )攝像頭簡(jiǎn)稱(chēng)WEBCAM,一般通過(guò)USB與電腦連接,或直接嵌入在筆記本電腦屏幕的上方,主要在網(wǎng)絡(luò )會(huì )議、即時(shí)通訊、IP電話(huà)等軟件中應用。虛擬攝像頭顧名思義,就是用軟件手段在計算機中模擬出一個(gè)網(wǎng)絡(luò )攝像頭硬件,它本身不具備視頻采集的功能,但可以將圖片、視頻文件或其它設備采集到的視頻做為虛擬攝像頭的輸出,并可加入各種個(gè)性化的特效。例如,在沒(méi)有真實(shí)網(wǎng)絡(luò )攝像頭情況下,也可以通過(guò)虛擬攝像頭軟件進(jìn)行視頻聊天,只不過(guò)對方看到的不是真實(shí)的視頻,而是一些預設的錄像或圖片。
目前網(wǎng)上的一些用虛擬攝像頭技術(shù)開(kāi)發(fā)的軟件,多被用來(lái)在網(wǎng)絡(luò )聊天軟件中欺騙對方。實(shí)際上,虛擬攝像頭有效克服了真實(shí)網(wǎng)絡(luò )攝像頭內容單一、依賴(lài)硬件的缺點(diǎn),使用領(lǐng)域非常寬廣。本文以?xún)蓚€(gè)虛擬攝像頭技術(shù)與監控系統結合使用的項目為例,具體分析系統的開(kāi)發(fā)思路和效果,希望能對虛擬攝像頭技術(shù)的推廣應用起到拋磚引玉的效果。 限于篇幅,本文重點(diǎn)在于分析設計思路,未有涉及太多技術(shù)細節,只對關(guān)鍵技術(shù)作簡(jiǎn)要的描述,具體實(shí)現方式感興趣的讀者可以通過(guò)網(wǎng)絡(luò )查找相關(guān)資料。
虛擬攝像頭驅動(dòng)開(kāi)發(fā)路線(xiàn)
虛擬攝像頭驅動(dòng)的開(kāi)發(fā)可以遵循以下3條路線(xiàn):
1.傳統的WDM驅動(dòng)的開(kāi)發(fā)模式,WDM是微軟為Windows2000及后續操作系統提供的通用驅動(dòng)程序模型,一個(gè)驅動(dòng)程序可以看作是一個(gè)運行在系統底層的DLL,采用WDM的方式開(kāi)發(fā)虛擬攝像頭需要從驅動(dòng)整體入手,在操作系統中虛擬出一個(gè)設備,需要開(kāi)發(fā)者具備豐富的計算機接口和Windows驅動(dòng)開(kāi)發(fā)經(jīng)驗。
2.基于DirectShow平臺的開(kāi)發(fā)模式,DirectShow是微軟推出的基于COM的流媒體處理開(kāi)發(fā)包,與DirectX開(kāi)發(fā)包一起發(fā)布,用DirectShow開(kāi)發(fā)虛擬攝像頭無(wú)需涉及驅動(dòng)程序編寫(xiě),體積小巧、安裝過(guò)程不會(huì )引起安全軟件和操作系統的警告,且視頻處理效率比WDM高。
3.利用DSF框架平臺開(kāi)發(fā),微軟DSF框架利用小端口驅動(dòng)把一個(gè)虛擬的USB設備控制器驅動(dòng)接在計算機上,涉及驅動(dòng)層面的內容DSF已經(jīng)做好了,開(kāi)發(fā)者只需按DSF接口標準開(kāi)發(fā)一個(gè)動(dòng)態(tài)鏈接庫用來(lái)模擬設備功能,再開(kāi)發(fā)一個(gè)腳本文件用于模擬設備的物理插拔動(dòng)作,一個(gè)虛擬設備就做好了。
上述3條開(kāi)發(fā)路線(xiàn)中,路線(xiàn)1、2對開(kāi)發(fā)者的要求較高,開(kāi)發(fā)時(shí)間也相對較長(cháng);方案3則相對簡(jiǎn)單,基本不需要與驅動(dòng)打交道,但利用DSF框架開(kāi)發(fā)的軟件,在客戶(hù)的機器上部署相對繁瑣,不利于商業(yè)推廣。剛入門(mén)的開(kāi)發(fā)者建議在網(wǎng)上搜索虛擬攝像頭的開(kāi)源代碼,以加快開(kāi)發(fā)進(jìn)度。
無(wú)論哪種方式開(kāi)發(fā)的虛擬攝像頭驅動(dòng),都必須有一個(gè)外部數據傳入的接口(建議做成COM形式方便調用)。其它軟件(如下文所述的數據轉發(fā)軟件)可以通過(guò)這個(gè)接口,傳入RGB格式的位圖數據,虛擬攝像頭將傳入的位圖作為拍攝到的影像,通過(guò)QQ、MSN、Netmetting等軟件顯示出來(lái)。RGB是一種工業(yè)標準的位圖數據存儲方式,每一幅位圖就是一幀,當每秒傳入25幅以上的位圖,虛擬攝像頭就會(huì )顯示出流暢的視頻了。
在醫療領(lǐng)域的應用
某醫院進(jìn)口的醫療設備,其所附帶的軟件,可以在記錄病人生理數據的同時(shí),具備同步錄像功能,但該軟件只有一個(gè)網(wǎng)絡(luò )攝像頭接口,無(wú)法實(shí)現一臺設備同時(shí)監管多個(gè)病床;且安裝軟件的電腦與病房相隔較遠,網(wǎng)絡(luò )攝像頭鞭長(cháng)莫及。另外在病房?jì)仍寻惭b了多個(gè)監控模擬攝像機,護士中心可使用聯(lián)網(wǎng)監控軟件,通過(guò)局域網(wǎng)連接到硬盤(pán)錄像機觀(guān)察到病房?jì)鹊那闆r。因此,為了有效提高這種昂貴的進(jìn)口設備利用率,使其軟件能與現有的監控設備結合,我們設計了如下的虛擬攝像頭技術(shù)方案:
目前國內主流的IP攝像機和硬盤(pán)錄像機均有SDK開(kāi)發(fā)包,這里以??低曄盗挟a(chǎn)品為例說(shuō)明開(kāi)發(fā)過(guò)程:開(kāi)發(fā)一個(gè)數據轉發(fā)軟件,先調用??档脑O備網(wǎng)絡(luò )SDK接收從IP攝像機或硬盤(pán)錄像機端傳來(lái)的壓縮視頻流,收到壓縮流后,立即調用播放庫SDK中的相應函數,對壓縮流進(jìn)行解壓,獲得YUV格式的圖像數據,再將YUV轉換為RGB格式(轉換算法在網(wǎng)上很多,選擇時(shí)需注意算法的效率),最后通過(guò)虛擬攝像頭的數據傳入接口,將圖像在醫療軟件上顯示出來(lái)。數據轉發(fā)軟件可以根據使用者的要求,自動(dòng)或手動(dòng)切換監控攝像機,將不同監控攝像機采集到圖像顯示在同一套軟件中。
作為進(jìn)一步完善,我們通過(guò)虛擬攝像頭實(shí)現了畫(huà)中畫(huà)功能,具體做法是:同時(shí)從2臺攝像機獲取壓縮流并解碼;將其中一臺攝像機的位圖數據按比例縮?。磩h減一部分像素),作為子畫(huà)面;將主畫(huà)面的位圖數據中一部分,更換為子畫(huà)面的位圖數據,形成畫(huà)中畫(huà),再傳入到虛擬攝像頭。這樣,在主畫(huà)面切換到某一病床時(shí),子畫(huà)面仍監控著(zhù)整個(gè)病房的總體情況,達到了全貌和細節同時(shí)兼顧的效果。
在視頻會(huì )議中的應用
某大型企業(yè)分支機構遍布全省,各地的營(yíng)業(yè)現場(chǎng)均安裝了視頻監控系統。該企業(yè)經(jīng)常通過(guò)視頻會(huì )議軟件組織全省范圍的會(huì )議。使用者希望通過(guò)視頻會(huì )議軟件,除了能看到參會(huì )者外,在會(huì )議討論過(guò)程中,還經(jīng)常需要將一些生產(chǎn)經(jīng)營(yíng)現場(chǎng)的畫(huà)面調出來(lái)顯示,供大家討論。由于視頻會(huì )議軟件具有網(wǎng)絡(luò )攝像頭接口,我們開(kāi)發(fā)了一套適用于視頻會(huì )議的虛擬攝像頭軟件:
滿(mǎn)足客戶(hù)需求的關(guān)鍵,是在上一章節的畫(huà)中畫(huà)功能基礎上,實(shí)現一個(gè)畫(huà)面是真實(shí)的網(wǎng)絡(luò )攝像頭采集到的圖像(一般是參會(huì )者),另一個(gè)畫(huà)面是視頻監控系統傳輸過(guò)來(lái)的圖像(一般是生產(chǎn)經(jīng)營(yíng)現場(chǎng)),相結合形成畫(huà)中畫(huà)后,通過(guò)虛擬攝像頭顯示出來(lái)。獲取真實(shí)網(wǎng)絡(luò )攝像頭采集到的圖像有WIA, DirectShow, VFW等幾種技術(shù),通常的手段是通過(guò)剪貼板從緩存中獲取圖像并轉換為位圖,但這種方式存在幀率低、不兼容多線(xiàn)程等問(wèn)題。經(jīng)研究,我們通過(guò)VFW的回調函數功能,獲取攝像頭采集到的位圖,可達到高幀率、低CPU占用的效果。
隨著(zhù)視頻會(huì )議功能的深入使用,用戶(hù)又提出了新的問(wèn)題:開(kāi)會(huì )期間,臨時(shí)需要將一些沒(méi)有安裝監控攝像機的場(chǎng)景,在視頻會(huì )議上展示出來(lái)。為此系統增加了智能手機設備的支持:在A(yíng)ndroid或IPhone手機上安裝專(zhuān)用的軟件,即可將手機攝像頭拍攝到的圖像,通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò )傳輸到電腦上,數據轉發(fā)軟件可以將收到的手機圖像轉換為RGB格式,并傳送給虛擬攝像頭。由此,視頻會(huì )議徹底擺脫了地域、環(huán)境和設備的限制。
攝像頭相關(guān)文章:攝像頭原理
評論