一種實時判別攝像機光軸的方法
【技術領域】
[0001] 本發明涉及一種實時判別攝像機光軸的方法,尤其涉及一種用于實時判別機器視 覺中物體相對位姿的方法,屬于機器視覺領域。
【背景技術】
[0002] 隨著科技的發展,人機交互的需求變得越來越多,在電子游戲中加入人機交互會 使得游戲更加逼真,從而贏得市場。在模擬射擊游戲當中,我們需要實時計算出虛擬槍打在 屏幕上的坐標點,這時必須知道虛擬槍和屏幕的相對位置。
[0003] 傳統方法是利用激光定位,即開槍射擊時打出激光,求出激光的位置即可得到虛 擬槍的射擊位置。這種方法存在以下缺點:激光在強光背景下效果很不理想,且容易被LED 屏吸收,第二點是激光器對人眼安全存在隱患。另外的一種方法是固定虛擬槍在一個底盤 上,計算出虛擬槍的水平和俯仰角度,加上屏幕與虛擬槍的距離已知,便可求出虛擬槍的射 擊位置。缺點是機械精度要求高且用戶體驗不好。
[0004] 另外一種做法是在游戲的顯示屏上安置LED作為特征點來判斷二者的相對位姿。 當均勻地安置LED時,如何在虛擬槍和屏幕的相對位姿發生變化時區分各個LED成為亟需 解決的問題。
【發明內容】
[0005] 本發明公開的一種實時判別攝像機光軸的方法,要解決的技術問題是利用游戲的 顯示屏上安置的LED與計算虛擬槍映射的位置關系,實現判別機器視覺中物體相對位姿, 且本發明判別速度快、結果精度高、受外界干擾小。
[0006] 本發明的目的是通過下述技術方案實現的。
[0007] 本發明公開的一種實時判別攝像機光軸的方法,包括如下步驟:
[0008] 步驟一:在游戲顯示屏幕上安裝LED閃爍,所述的安裝LED閃爍的數量根據視場大 小而定。虛擬槍內置用于實時采集屏幕上安裝LED閃爍圖像的高速相機,并對采集屏幕上 安裝LED閃爍圖像進行去除背景光處理,所述的去除背景光方法優選幀間差分法。
[0009] 步驟二:根據虛擬槍實時采集游戲屏幕上LED閃爍的點數和LED閃爍的奇偶性建 立采集LED閃爍位置與游戲顯示屏幕LED閃爍實際位置的映射關系,實現實時判別機器視 覺中物體相對位姿。
[0010] 所述的步驟二具體實現方法為:
[0011] 步驟2. 1:定義采集游戲屏幕上LED閃爍圖像次數為奇數時為奇數幀,采集游戲屏 幕上LED閃爍圖像次數為偶數時為偶數幀。
[0012] 步驟2. 2 :給游戲屏幕上LED閃爍編號,按順時針順序編為LED閃爍ULED閃爍2、 LED閃爍3、LED閃爍4、LED閃爍5、LED閃爍6,定義LED閃爍1、LED閃爍2、LED閃爍6為 奇場,LED閃爍3、LED閃爍4、LED閃爍5為偶場。
[0013] 步驟2. 3 :LED閃爍點亮時,設置其值為正;LED閃爍熄滅時,設置其值為0。
[0014] 步驟2. 4 :奇數幀時,給LED閃爍ULED閃爍2、LED閃爍6通電點亮,偶數幀時,給 LED閃爍3、LED閃爍4、LED閃爍5通電點亮。
[0015] 步驟2. 5 :判斷虛擬槍實時采集的LED閃爍對應的編號是LED閃爍I、LED閃爍2、 LED閃爍6組中的一個,或是LED閃爍3、LED閃爍4、LED閃爍5中的一個。
[0016] 步驟2. 5具體判斷方法為:當采集游戲屏幕上LED閃爍奇數幀圖像閃爍時,利用步 驟一中的幀間差分法實現當前幀減去上一幀,提取LED閃爍的值和位置,當前LED值為正則 判斷是LED閃爍1、LED閃爍2、LED閃爍6組中的一個。若LED值為負則判斷是LED閃爍 3、LED閃爍4、LED閃爍5組中的一個。當采集游戲屏幕上LED閃爍偶數幀圖像閃爍時,利 用步驟一中的幀間差分法實現當前幀減去上一幀,提取LED閃爍的值和位置,當前LED值為 正則判斷是LED閃爍3、LED閃爍4、LED閃爍5中的一個。若LED值為負則判斷是LED閃爍 1、LED閃爍2、LED閃爍6中的一個。
[0017] 步驟2. 6 :根據步驟2. 5判斷結果,結合LED閃爍I、LED閃爍2、LED閃爍3、LED閃 爍4、LED閃爍5、LED閃爍6的實際幾何關系判斷建立采集LED閃爍位置與游戲顯示屏幕 LED閃爍實際位置的映射關系。
[0018] 步驟2. 6具體判斷方法為:
[0019] 步驟2. 6. 1:若獲取LED閃爍的個數少于四個,則判斷虛擬槍指向了屏幕外。
[0020] 步驟2. 6. 2 :若獲取LED閃爍的個數為四個,利用步驟2. 5判斷其中有三個LED閃 爍為奇場LED閃爍,另一個為偶場LED閃爍的一個,定義為參考點;或者其中有三個LED閃 爍為偶場LED閃爍,另一個為奇場LED閃爍的一個,定義為參考點。
[0021] 首先,求取攝像機采集的同組三個LED閃爍兩兩之間的距離,取最小的距離為a, 再求取另外一個LED閃爍分別到該組三個LED閃爍之間的距離,取最大距離為b。如果b < 2a,則判斷出獲取的四個LED閃爍映射的實際四個LED閃爍位置組成長方形,如果b> 2a,獲取的四個LED閃爍映射無效。
[0022] 定義參考點坐標為(x3,y3),定義與參考點距離最遠的為其對角上的LED閃爍坐標 為(11,71),定義另外兩個1^閃爍坐標為(1 2,72)和(14,74),通過(11,7 1)和(13,73)的直 線方程為:
[0026] 由于實際屏幕上對應的LED閃爍坐標值是已知的,即實現建立采集LED閃爍位置 與游戲顯示屏幕LED閃爍實際位置的映射關系。
[0027] 步驟2. 6. 3:若獲取LED閃爍的個數為五個,利用步驟2. 5判斷其中有三個LED閃 爍為奇場LED閃爍,另外兩個為偶場LED閃爍的兩個;或者其中有三個LED閃爍為偶場LED 閃爍,另外兩個為奇場LED閃爍的兩個。
[0028] 分別求取兩個LED閃爍到另外三個同一組的LED閃爍距離之和,取為cl和c2,取 cl、c2兩者較小的值對應的LED閃爍與另外三個同一組的LED閃爍構成四邊形,定義取cl、 c2兩者較小的值對應的LED閃爍為參考點。
[0029] 定義參考點坐標為(x3,y3),定義與參考點距離最遠的為其對角上的LED閃爍坐標 為(11,71),定義另外兩個1^閃爍坐標為(1 2,72)和(14,74),通過(11,7 1)和(13,73)的直 線方程為:
[0033] 由于實際屏幕上對應的LED閃爍坐標值是已知的,即實現建立采集LED閃爍位置 與游戲顯示屏幕LED閃爍實際位置的映射關系。
[0034] 步驟2. 6. 4 :若獲取LED閃爍的個數為六個,利用步驟2. 5判斷其中有三個LED閃 爍為奇場LED閃爍,另外三個為偶場LED閃爍。
[0035] 分別求取奇場三個LED閃爍到另外一組三個LED閃爍距離之和,取為dl、d2和d3, dl、d2和d3中最小者對應的LED閃爍為LED閃爍2,偶場LED閃爍距離LED閃爍2最遠的 為LED閃爍4 ;再分別求取偶場三個LED閃爍到另外一組三個LED閃爍距離之和,取為el、 e2和e3,el、e2和e3中最小者對應的LED閃爍為LED閃爍5,偶場LED閃爍距離LED閃爍 5最遠的為LED閃爍1。奇場余下的為LED閃爍6,偶場余下的LED閃爍3。
[0036] 取LED閃爍1、LED閃爍3、LED閃爍4、LED閃爍6構成四邊形,由于實際屏幕上對 應的LED閃爍坐標值是已知的,即實現建立采集LED閃爍位置與游戲顯示屏幕LED閃爍實 際位置的映射關系。
[0037] 步驟2. 6. 5 :根據步驟2. 6. 2、步驟2. 6. 3、步驟2. 6. 4即可建立采集LED閃爍位置 與游戲顯示屏幕LED閃爍實際位置的映射關系。所述的采集LED閃爍位置與游戲顯示屏幕 LED閃爍實際位置的映射關系用于步驟2. 7實現判別機器視覺中物體相對位姿的方法。
[0038] 步驟2. 7:已知四個點在屏幕上的坐標位置以及在攝像機上成像的坐標位置,可 以求出攝像機坐標轉換成相應屏幕上坐標的變換矩陣,定義攝像機主點即為其光軸,因此 可以求得其在屏幕上的坐標位置。利用高速攝像機可以達到實時性。
[0039] 由步驟2. 6已求取構成四邊形的四個LED閃爍在攝像機成像平面上的坐標值統 一記為(X1,Y1),(x2,y2),(x3,y3),(x4,y4),且該四個LED閃爍在實際屏幕上的坐標已知,為 (X1J1), (X2,Y2),(X3,Y3),(X4,Y4)。已知(Xl,yi)和(X^Y1)(i= 1,2,3,4) 一一對應,利用 投影變換,求出其變換矩陣H。
[0040] 變換矩陣H與攝像機主點坐標相乘,即得到虛擬