第四章 手部追蹤
4.4 狀態偵測
35
圖27、 LBP 數值 XOR 誤差表範例
演算法會依序將目前 LBP 影像的特徵點為中心建立樣板區塊,並依序從樣 板區塊中計算他們的 LBP 數值,透過查詢 XOR 誤差表中漢明距離為 0 的數值,
在搜尋區域內以直接定址表來取出與樣板區塊中所包含的每一個 LBP 數值的所 有可能對應位置對應的 LBP 數值位置,並於計算基準點後,在投票暫存器內投 票。
當樣板區塊內的數值皆完成投票動作後,檢查投票暫存器中,是否有基準點 的得票量超過本論文所設定的門檻值。若暫存器內的得票量都沒有超過門檻值,
則將漢明距離放寬加 1,重新再做投票,並將新的得票量再加入投票暫存器;若 暫存器內有一個點的數值超過門檻值,則將該點輸出做為匹配點;若暫存器內有 多個點超過門檻值,則使用 SAD 來做篩選,將輸出最小誤差者做為匹配點。
假設(𝑥1, 𝑦1)為在當前畫面中的一個特徵點位置,而(𝑥2, 𝑦2)為此特徵點在上 一畫面經上述區塊比對所得到的最佳對應點位置,則此特徵點的相對移動向量 (𝑢, 𝑣)即為𝑢 = 𝑥1− 𝑥2和𝑣 = 𝑦1− 𝑦2。
36
到重疊狀態,其位置逐漸逼近,必定發生接近狀態。
圖28、 物件間的位置變化狀態
每個物件具有各自的矩形輪廓描述,通常包含 4 項訊息 𝑥, 𝑦, 𝑤, ,其中 x 與 y 為此物件的左上角座標,而 w 與 h 為此物件的寬度與高度。為了追蹤的目 的,本論文定義三種矩形輪廓符號:𝑅𝑡𝑖指在 t 時刻之第 i 個物件的矩形輪廓,𝑂𝑡為 在 t 時刻之追蹤物件的矩形輪廓,而𝐶𝑡為在 t 時刻之非追蹤物件的矩形輪廓。為 了表示上的方便,假如 R 代表一個物件的矩形輪廓,則其中的 4 項訊息分別表 示為 R.x、R.y、R.w 和 R.h。
在追蹤過程中,本論文常將當前影像中的物件,逐一計算第 i 個物件矩形輪 廓𝑅𝑡𝑖與前一時刻的追蹤物件矩形輪廓𝑂𝑡−1的疊合比例𝐵𝑖。本論文定義𝐴𝑟𝑒𝑎(𝑂𝑡−1) 為 t-1 時刻的追蹤物件的矩形面積,𝐴𝑟𝑒𝑎(𝑅𝑡𝑖)為在 t 時刻之第 i 個物件的矩形面
積,𝑋𝑙𝑒𝑓𝑡、𝑋𝑟𝑖𝑔 𝑡、𝑌𝑡𝑜𝑝和𝑌𝑏𝑜𝑡𝑡𝑜𝑚分別為第 i 個物件與 t-1 時刻追蹤物件之交集矩
形的最左、最右、最上和最下的位置數值,也就是 𝑋𝑙𝑒𝑓𝑡 = 𝑚𝑎𝑥 𝑂𝑡−1. 𝑥, 𝑅𝑡𝑖. 𝑥
𝑌𝑡𝑜𝑝 = 𝑚𝑎𝑥 𝑂𝑡−1. 𝑦, 𝑅𝑡𝑖. 𝑦
𝑋𝑟𝑖𝑔 𝑡 = 𝑚𝑖𝑛 𝑂𝑡−1. 𝑥 + 𝑂𝑡−1. 𝑤, 𝑅𝑡𝑖. 𝑥 + 𝑅𝑡𝑖. 𝑤 𝑌𝑏𝑜𝑡𝑡𝑜𝑚 = 𝑚𝑖𝑛 𝑂𝑡−1. 𝑦 + 𝑂𝑡−1. , 𝑅𝑡𝑖. 𝑦 + 𝑅𝑡𝑖.
假如𝑋𝑙𝑒𝑓𝑡 > 𝑋𝑟𝑖𝑔 𝑡或者𝑌𝑡𝑜𝑝 > 𝑌𝑏𝑜𝑡𝑡𝑜𝑚,代表此交集矩形為空集合,即𝑅𝑡𝑖與𝑂𝑡−1沒 有相交。當𝑅𝑡𝑖與𝑂𝑡−1有相交時,它們的疊合比例𝐵𝑖計算方式為
𝐵𝑖 = 𝑋𝑟𝑖𝑔 𝑡− 𝑋𝑙𝑒𝑓𝑡 × (𝑌𝑏𝑜𝑡𝑡𝑜𝑚 − 𝑌𝑡𝑜𝑝) 𝑚𝑎𝑥 𝐴𝑟𝑒𝑎(𝑅𝑡𝑖), 𝐴𝑟𝑒𝑎(𝑂𝑡−1)
在所有物件中,本論文選擇具有最高疊合比例的物件𝑖∗為當前時刻的追蹤物件,
也就是
𝑖∗ = arg max
𝑖 𝐵𝑖
37
在得到𝑖∗之後,則以第𝑖∗個物件的矩形輪廓來產生第 t 時刻的追蹤物件矩形輪廓,
即𝑂𝑡=𝑅𝑡𝑖∗。另外,每一個非𝑖∗的物件矩形輪廓均可作為非追蹤物件的矩形輪廓𝐶𝑡。 本論文設計一種檢測方法,根據物件輪廓𝑅𝑡𝑖的大小,來建立其檢測範圍𝐷𝑡𝑖,用作 檢查物件間是否接近的判斷依據,其範圍如下式:
𝐷𝑡𝑖. = (𝑅𝑡𝑖. 𝑥 −𝑅𝑡𝑖. 𝑤
2 , 𝑅𝑡𝑖. 𝑦 −𝑅𝑡𝑖.
2 , 2 × 𝑅𝑡𝑖. 𝑤, 2 × 𝑅𝑡𝑖. )
檢測範圍建立後,便可藉由判斷追蹤物件的檢測範圍𝐷𝑡𝑖∗與非追蹤物件的檢測範 圍𝐷𝑡𝑖是否有發生重疊,來判斷物件間的狀態,下面將逐一介紹各種狀態的判斷方 法。
A. 分離狀態
當追蹤物件的檢測範圍𝐷𝑡𝑖∗與一個非追蹤物件的檢測範圍𝐷𝑡𝑖互不相交,即 𝐵𝑖∗,𝑖 = 0,表示該追蹤物件與非追蹤物件為分離狀態,追蹤物件與該非追蹤物件 間保持著一定的距離。
B. 接近狀態
當追蹤物件的檢測範圍𝐷𝑡𝑖∗與一個非追蹤物件的檢測範圍𝐷𝑡𝑖發生疊合,即 𝐵𝑖∗,𝑖 > 0的程度,此時則判斷為接近狀態,將如下圖 29 所示:
圖29、 物件間所定義的範圍示意
系統對其接近的非追蹤物件範圍𝐶𝑡來建立分離模板,紀錄非追蹤物件上的紋
38
理資訊,可用與兩者發生重疊時進行特徵點分離之用;本論文設計一種警戒範圍 𝐴𝑡,用於紀錄接近狀態中追蹤物件矩形輪廓𝑂𝑡與非追蹤物件矩形輪廓𝐶𝑡的於 t 時 刻整體範圍,也就是:
𝐴𝑙𝑒𝑓𝑡 = 𝑚𝑖𝑛 𝑂𝑡. 𝑥, 𝐶𝑡. 𝑥 𝐴𝑡𝑜𝑝 = 𝑚𝑖𝑛 𝑂𝑡. 𝑦, 𝐶𝑡. 𝑦
𝐴𝑟𝑖𝑔 𝑡 = 𝑚𝑎𝑥 𝑂𝑡. 𝑥 + 𝑂𝑡. 𝑤, 𝐶𝑡. 𝑥 + 𝐶𝑡. 𝑤 𝐴𝑏𝑜𝑡𝑡𝑜𝑚 = 𝑚𝑎𝑥 𝑂𝑡. 𝑦 + 𝑂𝑡. , 𝐶𝑡. 𝑦 + 𝐶𝑡.
由於𝐴𝑙𝑒𝑓𝑡、𝐴𝑡𝑜𝑝、𝐴𝑟𝑖𝑔 𝑡、𝐴𝑏𝑜𝑡𝑡𝑜𝑚分別為警戒範圍的左邊、上邊、右邊以及下邊
的 座 標 數 值 , 所 以 警 戒 範 圍 𝐴𝑡 的 矩 形 輪 廓 表 示 為 (𝐴𝑙𝑒𝑓𝑡, A𝑡𝑜𝑝, 𝐴𝑟𝑖𝑔 𝑡− 𝐴𝑙𝑒𝑓𝑡, 𝐴𝑏𝑜𝑡𝑡𝑜𝑚 − 𝐴𝑡𝑜𝑝)。警戒範圍會根據狀態的不同,所記錄 的範圍也不相同,當狀態由接近轉換為遠離時,兩物件間就不再需要警戒範圍;
當狀態由接近轉換為重疊時,即 t-1 時刻的追蹤物件𝑂𝑡−1與某一非追蹤物件𝐶𝑡−1 於 t 時刻發生了重疊,共同形成了一個重疊物件。在重疊狀態時,重疊物件由於 與前一刻的追蹤物件𝑂𝑡−1有相當高的疊合比例,將被選為此時刻的追蹤物件,然 後記錄其矩形輪廓為𝑂𝑡以及警戒範圍𝐴𝑡。
C. 重疊狀態
重疊的判斷是依據 t 時刻追蹤物件𝑂𝑡的矩形面積𝐴𝑟𝑒𝑎(𝑂𝑡)與 t-1 時刻警戒範 圍𝐴𝑡−1的矩形面積𝐴𝑟𝑒𝑎(𝐴𝑡−1)之間的比例 OA 來做為判斷依據:
𝑂𝐴 = 𝐴𝑟𝑒𝑎𝑂𝑡 𝐴𝑟𝑒𝑎𝐴𝑡−1
由於警戒範圍的設計是用於紀錄追蹤物件與非追蹤物件間共同輪廓,則當重疊發 生時,追蹤物件的面積就是重疊物件的面積,因此與警戒範圍面積有極高的重疊 比例 OA;反之,若沒有發生重疊的情況,則追蹤物件的矩形面積將小於紀錄追 蹤物件與非追蹤物件的警戒範圍之面積。本論文這裡使用 0.7 來做為 OA 的門檻 參考值,若 OA 高於或等於 0.7 時,則判斷為重疊狀態。下圖 30 為狀態偵測的
39
演算流程:
圖30、 狀態偵測流程圖