本發(fā)明涉及I/O設備控制和多操作系統(tǒng)領域,尤其是涉及一種基于機器視覺的跨操作系統(tǒng)的I/O設備智能控制。
背景技術:
:目前被廣泛使用的兩個操作系統(tǒng)是linux操作系統(tǒng)和windows操作系統(tǒng),windows操作系統(tǒng)因其友好簡單的操作界面和優(yōu)美的UI設計成為本世紀最為成功的軟件商品,已經被社會廣泛的接收和認同,同時windws操作系統(tǒng)因其固有的缺點,例如硬盤碎片化的管理方式,低效的內存管理方式等,使其在注重穩(wěn)定性和實效性的工程中被使用的較少。面對windows操作系統(tǒng)面臨的問題,同一年代的linux操作系統(tǒng)對于windows操作系統(tǒng)進行完美的補充。Linux操作系統(tǒng)最大的優(yōu)勢是開源不收取費用代碼靠各個組織進行維護,降低了產品開發(fā)的成本。同時linux因其出色的內存管理方式能夠有效地抵御病毒對系統(tǒng)的侵害,保證了系統(tǒng)長時間運行的穩(wěn)定性。因此linux占有了嵌入式市場大部分的份額。因此針對linux嵌入式開發(fā)的硬件工程師,常常需要同時使用windows和linux兩個操作系統(tǒng)進行項目的開發(fā)。除了使用兩臺分別安裝linux和windows操作系統(tǒng)的獨立主機進行開發(fā)外,還可以選擇使用虛擬機作為代替的解決方案。目前比較常用的虛擬機有Vmware、VirtualBox和VirtualPC,虛擬機允許在一臺電腦上模擬出若干臺機器,這些虛擬機如同真實機器一樣各自擁有自己獨立的操作系統(tǒng)。虛擬機擁有仿真程序高、資源共享方便、系統(tǒng)可重建等優(yōu)點,但是因為虛擬機建立在主機之上文件很容易受到損壞造成開發(fā)過程中不必要的損失;虛擬機同時需要額外占用主機的系統(tǒng)資源造成主機整體運行效率降低,面對較大工程文件時會增加軟件的編譯讀寫時間。目前,跨主機鼠標鍵盤操控產品主要有微軟的“無界鼠標”和開源的“Synergy”。無界鼠標只能夠實現(xiàn)windows平臺下多機器共享一套鼠標和鍵盤的方式,并且可以實現(xiàn)不同機器間文件的拖拽?!癝ynergy”系統(tǒng)其優(yōu)勢體現(xiàn)在能夠實現(xiàn)windows、Mac和linux操作系統(tǒng)下的互聯(lián)而不僅僅局限于windows平臺,但因其跨平臺的特性導致其無法進行文件拖拽只能夠實現(xiàn)文本文檔和照片的復制功能。無論微軟的“無界鼠標”還是“Synergy”都要求所有機器都在一個局域網(wǎng)之內,通過局域網(wǎng)進行信號的傳輸和解析從而達到一套鼠標鍵盤控制多臺機器的目的。這兩款產品都是根據(jù)控制局域網(wǎng)和鼠標硬件接口協(xié)議的方式實現(xiàn),實現(xiàn)的方式都是在多個目標主機上安裝相應的軟件。此種方式如果脫離局域網(wǎng)都無法實現(xiàn),同時軟件的安裝和設置也會耗費用戶的大部分精力。技術實現(xiàn)要素:本發(fā)明所要解決的技術問題是針對上述現(xiàn)有技術存在的不足,而提供一種快速精確進行設備切換的多設備切換控制裝置及多設備控制系統(tǒng)。為解決上述技術問題,本發(fā)明采用的技術方案是:一種多設備切換控制裝置,包括一控制器、與控制器相連的輸入設備,在所述控制器上設置有與多個輸出設備連接的輸入設備接口,其特征在于:在所述控制器上還連接有一圖像采集裝置,所述控制器根據(jù)所述圖像采集裝置獲取的圖像信息將所述輸入設備與多個輸出設備中的一個耦合控制。所述控制器包括圖像處理分析模塊和硬件驅動模塊,所述圖像處理分析模塊對所述視頻采集裝置獲取的圖像信息進行處理得到所述硬件驅動模塊的輸入信號,所述硬件驅動模塊根據(jù)輸入信號控制所述輸入設備與多個輸出設備中的一個耦合。舒適輸入設備為鍵盤和或鼠標,所述輸出設備為主機。所述視頻采集裝置為單目攝像頭。所述圖像處理分析模塊對圖像信息的處理方法是:步驟一、圖像處理模塊接收到圖像信息,通過從動態(tài)的圖像中剔除掉背景圖像,從而提取分割出運動區(qū)域;步驟二、在步驟一剔除掉背景圖像后,使用基于Haar特征的AdaBoost分類器方法進行人體頭部檢測;步驟三、使用基于ASM模型的頭姿態(tài)估計方法,計算出頭部的轉向角度。采用背景減除法剔除背景圖像,背景減除法將圖像分成前景圖像和背景圖像,使用|I(x,y,t)-B(x,y,t)|>T(x,y,t)公式來估計當前像素點I(x,y,t)是否屬于前景點,如果滿足上述公式則當前坐標屬于前景點,公式中B(x,y,t)是背景估計模型,T(x,y,t)為估計閾值,使用混合高斯背景模型作為對B(x,y,t)的估計:P(μ,σ)=12πσexp(-(f(x,y,t)-μ)22σ2)]]>其中σ為背景估計模型的方差,μ為背景估計模型的期望均值,f(x,y,t)為背景估計模型的像素值。選擇3個高斯模型來描述每個像素顏色值的分布,及遵守如下概率分布:P(X)=Σi=13wi12πσiexp(-(X-μi)22σi2)]]>其中μi表示高斯分量的均值,σi表示高斯分量的方差,wi表示第i個高斯模型成分的權重,定義wi/σi為適合度,根據(jù)適合度按照從大到小對3個高斯分布排序,取前C個分布來表示背景圖像的分布模型,其中TBG表示背景模型所占的最小比例閾值;從C中根據(jù)下式進行估計:|X(x,y,t)-ui(x,y,t-1)|<=3σi(x,y,t-1)找到能夠匹配的高斯模型,則認為此點是背景像素;否則認為是前景像素;判定完像素點后需要對混合高斯模型的參數(shù)進行更新,如果像素點(x,y)判定為背景像素時,需要更新與該像素點(x,y)匹配的高斯分量參數(shù),更新方程:ui(x,y,t)=(1-α)×ui(x,y,t-1)+α×I(x,y,t)σi2(x,y,t)=(1-α)×σi2(x,y,t-1)+α×(I(x,y,t)-σi2(x,y,t))2]]>當像素點被判別為前景像素點時就要刪除當前高斯模型分量重權重最小的那個,并添加新的高斯分量,新的高斯分量是以當前像素的顏色值為均值,協(xié)方差由初始值確定;最后需要更新各個高斯分量的權重,公式如下:wi(x,y,t)=(1-β)×wi(x,y,t-1)+βi為匹配的分布wi(x,y,t)=(1-β)×wi(x,y,t-1)其他其中wi表示第i個高斯模型成分的權重,β為上一時刻權重與這一時刻的權重占比率。進行人體頭部檢測的具體方法是:(a)給定一系列訓練樣本(x1,y1),(x2,y2),…(xn,yn),其中yi=0表示其為非人體頭部的負樣本,yi=1表示其為人體頭部的正樣本,n為訓練樣本總數(shù)量,其中正樣本總數(shù)目為l,負樣本數(shù)目為m;(b)初始化權重;(c)t=1,…T,歸一化權重對每個特征f(k),訓練一個弱分類器h(k);并計算所有弱分類器的加權錯誤率(d)選取擁有最小錯誤率的最佳的弱分類器;(e)按照這個最佳弱分類器,調整權重;(f)最后的強分類器為:C(x)=1Σt=1Tatht(x)>=0.5Σt=1Tat0Σt=1Tatht(x)<0.5Σt=1Tat]]>其中ht(x)為弱分類器,at為各個弱分類器的權重。步驟三頭部姿態(tài)估計的具體方法是:對坐標信息進行統(tǒng)一化處理:使用Procrustes方法:1)所有的樣本與原點對齊;2)從樣本中隨意選擇一個作為參考樣本,并使其他的樣本與之對齊;3)計算變換后所有樣本的平均值4)對進行平移、旋轉等操作使其5)將所有樣本與對齊;6)如果則算法停止,否則返回步驟二;根據(jù)規(guī)格化的樣本計算每幅圖像中嘴位置的梯度值,按照從小到大排序,得到最小和最大的梯度值ψmin、ψmax;使用羅伯特邊緣檢測算子定位嘴的坐標:首先對圖像中嘴的位置進行粗選,滿足如下兩個條件的位置入選為嘴坐標,入選的嘴坐標點灰度設置為1,其余設置為0,兩個條件為:1)當(x,y)處的梯度值<1.2*ψmax;2)當(x,y)處的梯度值>0.8ψmin;進行如下的搜索算法完成嘴的精確定位:1)使用8*8或者16*16模板對照片每行進行搜索;2)如果該點為1則將其作為模板的中心,計數(shù)器加1返回步驟一;3)如果計數(shù)大于閾值則將搜索到的點保留否則去掉;4)直到搜索結束;過濾完毛刺點后,將相對分散的嘴位置坐標集中起來用一點表示,步驟如下:1)將8*8或者16*16模板為中心點搜索圖中每個點;2)如果遇到1則記錄該點坐標,并將其作為模板的中心并返回1);3)求得所有點的中心;4)直到所有點搜索結束;根據(jù)上面兩個步驟將人臉中嘴的位置定位出來后,計算頭的朝向角度:α=arctan(Pmouth.yPmouth.x)]]>其中Pmouth為嘴在圖像中的坐標,其中圖像的原點設置為圖像中心,計算出來的角度帶有正負號,如果結果為正則表示用戶在向右側轉向,如果結果為負則表示用戶在向左側轉向。本發(fā)明克服現(xiàn)有“無界鼠標”、“Synergy”和虛擬機工作方式上的缺點,提供一種以機器視覺為基礎跨平臺的I/O設備智能控制系統(tǒng),解決了多機器多操作系統(tǒng)下鍵盤和鼠標等輸入設備的歸一化控制,通過使用安裝在屏幕前方的攝像頭捕捉用戶頭部的姿態(tài),同時通過姿態(tài)算法和跟蹤算法辨析出頭部的朝向從而實現(xiàn)對多個屏幕的有效輸入控制。本發(fā)明的技術解決方案:多操作系統(tǒng)環(huán)境下I/O設備的視覺智能控制系統(tǒng),包含通用USB鼠標、通用USB鍵盤、分別安裝windows和linux操作系統(tǒng)的兩臺主機、單目高清攝像頭、視頻圖像處理分析模塊、硬件驅動模塊;將兩臺主機的鼠標的USB接口和鍵盤的USB接口與硬件驅動模塊相連,用于接收用戶發(fā)送出的鼠標和鍵盤指令,USB鍵盤和USB鼠標同時也與硬件驅動模塊相連,視頻圖像處理分析模塊接收單目高清攝像頭的實時圖像數(shù)據(jù),經過圖像的分析判和別后將信號輸送給硬件驅動模塊,硬件驅動模塊根據(jù)分析判別數(shù)據(jù)使能相應的鼠標和鍵盤的控制通道完成對平臺的操作。用戶將高清單目攝像頭放置于兩臺屏幕的中間處,并且保證攝像頭能夠拍攝到用戶的頭部。通過攝像頭實時采集到用戶圖像信息對用戶頭部進行實時的跟蹤,為了提高系統(tǒng)的時效性同時為了減少硬件模塊的性能開支,在選擇跟蹤算法時選擇使時需要考慮算法復雜度,圖像預處理階段主要是將用戶頭部圖像從背景圖像中剝離出,此階段使用混合高斯模型。將用戶頭部信息提取出后使用AdaBoost機器學習方法和Haar標定參數(shù)來完成人頭的檢測。根據(jù)檢測到的人頭輪廓和特征參數(shù)再使用ASM模型進行人頭姿態(tài)估計,從而最終獲得頭部轉動角度等信息。此時獲得的頭部姿態(tài)數(shù)據(jù)就是視頻圖像處理分析模塊對于硬件驅動模塊的輸出,硬件驅動模塊獲得數(shù)據(jù)后將數(shù)據(jù)流推送給對應的主機鼠標和鍵盤的USB接口。文件系統(tǒng)方面:為了能夠在windows和linux操作系統(tǒng)之間進行文件的交互,需要在linux平臺上搭建基于SMB協(xié)議的Samba服務器。因為SMB協(xié)議因其構架在NetBIOS通信協(xié)議上因此可以允許linux與windows完成信息相互傳遞。發(fā)明的優(yōu)點:本發(fā)明使得多操作系統(tǒng)協(xié)同開發(fā)時工作效率提高,克服了硬件工程師頻繁更換輸入設備的缺點。特別是因為加入了機器視覺和模式識別的內容使得跨平臺的操作成為可能;同時發(fā)明將鼠標和鍵盤等輸入設備的硬件驅動與視頻處理模塊集成于一體,提高了用戶友好度完成了系統(tǒng)的優(yōu)化與改造;嵌入式設備的圖像處理與識別算法執(zhí)行效率的改進與優(yōu)化保障了為此智能設備的實時性;同時Samba服務器的引入,使得windows和linux操作系統(tǒng)下文件之間快速的交互成為可能。附圖說明圖1是本發(fā)明控制系統(tǒng)連接示意圖;圖2是通過服務器構建的控制系統(tǒng)連接示意圖;圖3是本發(fā)明控制系統(tǒng)控制方法流程圖;圖4為人臉朝向示意圖。具體實施方式下面結附圖,對本發(fā)明作詳細說明:(1)首先要將IO智能控制硬件即單目高清攝像頭安裝在正確合適的位置,用戶可以將攝像頭安裝在兩個屏幕之間并同時確保在工作時攝像頭鏡頭對準使用者的頭部位置。將I/O智能控制硬件預留出的單目高清攝像頭的視頻流USB接口與工作主機相連,從主機屏幕中可以清晰看到攝像頭所拍攝的畫面從而方便用戶調整攝像頭的拍攝角度。(2)確定好I/O智能控制硬件的擺放位置和角度后,將鼠標和鍵盤與I/O智能控制硬件的鼠標輸入接口和鍵盤輸入接口相連。(3)分別把主機1與主機2的USB接口與I/O智能控制硬件對應的主機輸入接口相連。(4)如果用戶需要實現(xiàn)兩臺主機文件的共享,將兩臺主機分別連接到同一個局域網(wǎng)中,并在linux主機上建立Samba服務器,如圖2所示。(5)在用戶使用兩臺不同操作系統(tǒng)工作時,高清攝像頭捕捉用戶頭部姿態(tài)并通過視頻圖像處理分析模塊判別出用戶在看哪一個主機的屏幕,同時通過硬件驅動模塊使能鼠標和鍵盤對這臺主機的控制,使得對于另一臺主機的下達的鼠標和鍵盤命令失效。圖像處理分析模塊對圖像的處理步驟為:步驟一、圖像處理模塊接收到圖像信息,通過從動態(tài)的圖像中剔除掉背景圖像,從而提取分割出運動區(qū)域,本發(fā)明基于背景減除法同時使用混合高斯模型來對背景建模以提高魯棒性。背景減除法將圖像分成前景圖像和背景圖像,使用|I(x,y,t)-B(x,y,t)|>T(x,y,t)公式來估計當前像素點I(x,y,t)是否屬于前景點,如果滿足上述公式則當前坐標屬于前景點,公式中B(x,y,t)是背景估計模型,T(x,y,t)為估計閾值。本發(fā)明使用混合高斯背景模型作為對B(x,y,t)的估計。混合高斯模型默認背景像素符合高斯分布即:每個像素都用多個高斯模型來建模,為了在滿足性能的基礎上減少計算量,選擇3個高斯模型來描述每個像素顏色值的分布,及遵守如下概率分布:其中μi表示高斯分量的均值,σi表示高斯分量的方差,wi表示第i個高斯模型成分的權重,定義wi/σi為適合度。根據(jù)適合度按照從大到小對3個高斯分布排序,取前C個分布來表示背景圖像的分布模型,其中TBG表示背景模型所占的最小比例閾值。從C中從高到低計根據(jù):|X(x,y,t)-ui(x,y,t-1)|<=3σi(x,y,t-1)找到能夠匹配的高斯模型,則認為此點是背景像素;否則認為是前景像素。判定完像素點后需要對混合高斯模型的參數(shù)進行更新,如果像素點(x,y)判定為背景像素時,需要更新與該像素點(x,y)匹配的高斯分量參數(shù),更新方程:ui(x,y,t)=(1-α)×ui(x,y,t-1)+α×I(x,y,t)σi2(x,y,t)=(1-α)×σi2(x,y,t-1)+α×(I(x,y,t)-σi2(x,y,t))2]]>當像素點被判別為前景像素點時就要刪除當前高斯模型分量重權重最小的那個,并添加新的高斯分量,新的高斯分量是以當前像素的顏色值為均值,協(xié)方差由初始值確定。最后需要更新各個高斯分量的權重,公式如下:wi(x,y,t)=(1-β)×wi(x,y,t-1)+βi為匹配的分布wi(x,y,t)=(1-β)×wi(x,y,t-1)其他其中wi表示第i個高斯模型成分的權重,β為上一時刻權重與這一時刻的權重占比率。步驟二、人頭檢測階段。在從步驟一剔除掉背景圖像后,使用基于Haar特征的AdaBoost分類器方法進行人體頭部檢測。Haar特征對于邊緣、線段等簡單的圖形結構比較敏感,Haar特征值為白色區(qū)域像素值總和減去黑色矩陣區(qū)域內像素值總和,訓練時每一個Haar特征從樣本的左上角開始遍歷。為了減少計算量使用積分圖模型來計算Haar特征值,積分圖上任意一點(x,y)的值是以點(0,0)與(x,y)形成矩形框內所有像素點之和。Haar特征的計算表明,只要先遍歷一遍圖像,就可以計算出整副圖像的積分圖,從而達到簡化計算量的目的。此處訓練樣本使用MUCT人頭數(shù)據(jù)庫作為正樣本,同時選取3400張同樣像素大小的負樣本照片作為訓練素材?;贖aar特征的AdaBoost算法實現(xiàn):(a)給定一系列訓練樣本(x1,y1),(x2,y2),…(xn,yn),其中yi=0表示其為負樣本(非人體頭部),yi=1表示其為正樣本(人體頭部)。n為訓練樣本總數(shù)量,其中正樣本總數(shù)目為l,負樣本數(shù)目為m。(b)初始化權重(c)t=1,…T,歸一化權重對每個特征f(k),訓練一個弱分類器h(k);并計算所有弱分類器的加權錯誤率(d)選取擁有最小錯誤率的最佳的弱分類器(e)按照這個最佳弱分類器,調整權重(f)最后的強分類器為:C(x)=1Σt=1Tatht(x)>=0.5Σt=1Tat0Σt=1Tatht(x)<0.5Σt=1Tat]]>其中ht(x)為弱分類器,at為各個弱分類器的權重。步驟三、頭部姿態(tài)估計階段。此階段使用基于ASM模型的頭姿態(tài)估計方法。ASM模型基本思想是通過訓練樣本獲得的訓練圖像樣本特征點的分布統(tǒng)計信息來對目標區(qū)域進行有效的識別。通過現(xiàn)有的人臉數(shù)據(jù)庫計算出人臉中眼睛區(qū)域進的特定閾值,將此閾值與羅伯特邊緣檢測算子進行比較從而確定該區(qū)域是否為嘴。最后根據(jù)計算得到的圖像中嘴的坐標信息計算出頭部的轉向角度。在建立ASM模型的過程中需要使用大量的人臉模型并人為的標定出嘴的區(qū)域。為此選定使用MUCT數(shù)據(jù)庫提供特的人臉模型作為訓練對象,因MUCT數(shù)據(jù)庫擁有圖像特征點接口函數(shù)不需要對每幅圖像人為標定,大大減少了工作量。為了減少樣本中特征點位置不同和人頭姿態(tài)不同所造成的影響,需要對坐標信息進行統(tǒng)一化處理。在本發(fā)明中使用Procrustes方法:1)所有的樣本與原點對齊。2)從樣本中隨意選擇一個作為參考樣本,并使其他的樣本與之對齊。3)計算變換后所有樣本的平均值4)對進行平移、旋轉等操作使其5)將所有樣本與對齊。6)如果則算法停止,否則返回步驟二。最后根據(jù)規(guī)格化的樣本計算每幅圖像中嘴位置的梯度值,按照從小到大排序,得到最小和最大的梯度值ψmin、ψmax。使用羅伯特邊緣檢測算子定位嘴的坐標。首先對圖像中嘴的位置進行粗選,滿足如下兩個條件的位置入選為嘴坐標1)當(x,y)處的梯度值<1.2*ψmax。2)當(x,y)處的梯度值>0.8ψmin。入選的嘴坐標點灰度設置為1,其余設置為0。粗選之后會有一些噪聲點影響實際的嘴位置,進行如下的搜索算法完成嘴的精確定位:1)使用8*8或者16*16模板對照片每行進行搜索。2)如果該點為1則將其作為模板的中心,計數(shù)器加1返回步驟一。3)如果計數(shù)大于閾值則將搜索到的點保留否則去掉。4)直到搜索結束。過濾完毛刺點后,需要將相對分散的嘴位置坐標集中起來用一點表示,步驟如下:1)將8*8或者16*16模板為中心點搜索圖中每個點。2)如果遇到1則記錄該點坐標,并將其作為模板的中心并返回1)。3)求得所有點的中心。4)知道所有點搜索結束。根據(jù)上面兩個步驟將人臉中嘴的位置定位出來后,根據(jù)圖4所示計算頭的朝向角度。其中Pmouth為嘴在圖像中的坐標,其中圖像的原點設置為圖像中心,計算出來的角度帶有正負號,如果結果為正則表示用戶在向右側轉向,如果結果為負則表示用戶在向左側轉向。當前第1頁1 2 3