一種基于單目攝像頭的手勢凸包檢測與掌心定位方法
【技術領域】
[0001] 本發明涉及計算機視覺與圖像處理領域,具體涉及一種基于單目攝像頭的手勢凸 包檢測與掌心定位方法。
【背景技術】
[0002] 隨著計算機技術的飛速發展,以觸摸、語音、手勢、體感等為主的新型交互方式已 經成為近些年來研究的必然趨勢之一,使得以人為中心的人機交互技術具有廣泛的應用前 景。眾所周知,手勢是一種能夠直觀、形象表達計算機指令的方式。由于手勢的復雜性、多 樣性和不確定性的特點,使得手勢識別成為了人機交互領域的一個富有挑戰性的研究課 題。目前,關于手勢檢測與識別相關技術的研究成為了數字圖像處理、人工智能、計算機視 覺、模式識別等相關領域的一個重要研究方向,對構建智能的人機交互方式發揮著重要的 作用。但考慮到手勢的多變性、多樣性、多義性和時空差異性等特性,加之光照、溫度等外界 因素的干擾,基于視覺的手勢識別在技術上還存在很多困難問題,主要包括:識別率、魯棒 性、實時性、穩定性、實用性等。同時,在真實環境中進行手勢識別系統的調試實驗,常常會 遇到背景環境復雜且不確定、環境光照條件不確定、圖像空間信息的變化、不精確手勢的變 化等問題。
[0003] 目前,手勢凸包檢測與掌心定位技術在國內還沒有進行較為深入細致的研究,因 此,有關基于單目攝像頭的手勢凸包檢測與掌心定位方法也較為欠缺。
【發明內容】
[0004] 本發明所要解決的技術問題在于針對國內現有相關技術中的缺陷,提供一種基于 單目攝像頭的手勢凸包檢測與掌心定位方法,能夠準確地實現手勢掌心位置的定位,達到 提高手勢識別系統的穩定性、實用性和準確性的目的,為掌心實時定位跟蹤與手勢識別提 供了一種有效的研究方法。
[0005] 為解決上述技術問題,本發明采用以下技術方案:
[0006] 一種基于單目攝像頭的手勢凸包檢測與掌心定位方法,其特征在于包括如下步 驟:
[0007] 步驟Sl :通過單目攝像頭采集手勢圖像數據或通過導入視頻文件獲得手勢圖像 數據;
[0008] 步驟S2 :通過圖像去噪、數學形態學等方法對所述圖像數據進行處理;
[0009] 步驟S3 :手勢運動、膚色檢測與分割:通過兩幀幀間差法進行運動檢測與分割,并 實現基于HSV彩色空間模型的膚色檢測與分割;
[0010] 步驟S4 :手勢輪廓跟蹤檢測:先通過數學形態學處理分割出來的手勢圖像,獲得 邊緣輪廓信息完整的手勢圖像,然后采用Square Tracing算法進行手勢圖像輪廓跟蹤檢 測;
[0011] 步驟S5 :手勢輪廓凸包檢測:通過卷包裹法對手勢輪廓圖像進行凸包檢測;
[0012] 步驟S6:手勢掌心定位步驟:先對手勢輪廓凸包進行凸缺陷檢測,得出其凸缺陷 深度點作為三角形增量法的點集,然后實現基于三角形增量法的手勢掌心定位。
[0013] 上述技術方案中,步驟S4使用Square Tracing算法進行手勢圖像輪廓跟蹤檢測 時的具體執行步驟如下:
[0014] 步驟S41 :尋找一個輪廓跟蹤起始點,對于二值圖像的像素網格圖,白色像素點表 示背景像素點,黑色像素點表示待提取輪廓邊界的物體,為確定輪廓跟蹤檢測的起始點,從 像素網格圖的左下角或最左邊的列逐行或從圖像最左端到最右端的向上進行像素的掃描, 直到遇到第一個黑色像素點,把它定為輪廓跟蹤檢測的起始點;
[0015] 步驟S42 :假設一只瓢蟲站在黑色像素的所述起始點上,要有效地進行輪廓跟蹤 檢測,必須遵守兩個原則:一是當它發現自己所處的像素點為黑色像素,則向左轉繼續檢 測,同時標記該像素的位置;二是當它發現自己所處的像素點為白色像素,則向右轉繼續檢 測;
[0016] 步驟S43 :按步驟S42的輪廓跟蹤檢測原則對二值圖像進行掃描,直到瓢蟲回到起 始點,檢測出來的黑色像素點就是目標物體的輪廓邊界,從而完成圖像輪廓檢測操作。
[0017] 上述技術方案中,步驟S5卷包裹法的具體執行步驟如下:
[0018] 步驟S51 :選擇點集中最下面的點,如果有多個,則選擇最下面的點中最左邊的一 個,所選擇的點就是凸包的第一個點;
[0019] 步驟S52 :以水平向右的方向作為初始射線方向,逆時針旋轉,選擇第一條在初始 射線之上的射線作為當前射線,當前射線經過凸包的第二個點;
[0020] 步驟S53 :以當前射線為基準,繼續逆時針旋轉找到最靠近該射線的一條射線,從 而找到凸包的另一個點。把這條射線作為當前射線,這個過程一直繼續,直至回到第一個 點。
[0021] 上述技術方案中,步驟S6中使用三角形增量法實現手勢掌心定位時的具體執行 步驟為:
[0022] 步驟S61 :將對手勢輪廓凸包進行凸缺陷檢測得到的凸缺陷深度點作為三角形增 量法的點集,并在這個點集中任意選擇兩點PjP P P然后以PjP P j為端點,P JP P j的中心 為圓心,構造一個圓,如果這個圓包括所有的點,那么它就是最小的圓,中點也就是最小圓 的圓心;否則選擇圓外的一點P k;
[0023] 步驟S62 :如果P1,Pj,Pk這三個點形成的三角形是直角三角形或者鈍角三角形,那 么該直角或者鈍角所對應的兩點為P1, ,然后再次重新構造一個以新?#,為直徑的圓,重 復步驟S61 ;否則,這三個點形成一個銳角三角形,構造一個外接圓,如果這個圓包含所有 的點,跳轉到步驟S64,否則進入步驟S63 ;
[0024] 步驟S63 :選擇一些不在圓內的點P1,設點Q為(P1, Pj, P1J中離?:最遠的點,連接 并延長點P1和點Q,將平面分成兩個半平面,設點R為{P i,Pp PJ中與P1不在一個半平面中 的點,得到P1, Q,R三點,返回到步驟S61,循環執行;
[0025] 步驟S64 :經過步驟S61、步驟S62和步驟S63得到的最小包圍圓可以由兩點或者 三點確定,為了進一步地確定手勢掌心的位置,分為以下兩種情況:
[0026] 1)由兩點確定的最小包圍圓
[0027] 假設圓周上的兩點A、B位于圓的一條直徑的兩端,設A、B兩點的坐標分別為 (Xl,yi)、(x2, y2),由平面幾何的知識得,所求的最小包圍圓的方程為:
[0028]
[0029] 最小包圍圓的圓心0坐標為
,也即手勢掌心的位置坐標;
[0030] 2)由三點確定的最小包圍圓
[0031] 假設圓周通過A、B、C三點,設A、B、C三點的坐標分別為(Xl,yi)、(x 2,y2),(x3,y3), 由平面幾何的知識可設所求的最小包圍圓的方程為:
[0032] (x-a)2+(y-b)2= R2
[0033] 假設直線a經過A、C兩點,直線b經過C、D兩點,直線c是直線a的中垂線,直線 d是直線b的中垂線,直線c是直線d相交于點〇,即〇為最小包圍圓的圓心;則有
[0034] 直線a的方程為:
[0035] ya= ka (X-X1)+Y1
[0036] 直線b的方程為:
[0037]
[0038]
[0039] 根據直線a的方程和直線b的方程可得:[0040] 直線c的方程為:
[0041]
[0042]
[0043]
[0044] 最后,聯立直線c和直線d的方程,可以求得最小包圍圓的圓心0坐標,即手勢掌 心的位置坐標;最終完成基于三角形增量法的手勢掌心定位。
[0045] 由此,本發明提供一種基于單目攝像頭的手勢凸包檢測與掌心定位方法,該方法 從手勢的多變性以及易受光照因素干擾問題入手,運用凸包算法進行手勢輪廓凸包檢測和 手勢凸包的凸缺陷檢測,并在此基礎上,提供一種基于三角形增量法的手勢掌心定位方法, 準確地實現手勢掌心位置的定位,達到提高手勢識別系統的穩定性、實用性和準確性的目 的,為掌心實時定位跟蹤與手勢識別提供了一種有效的研究方法。相對于現有技術,本發明 產生的有益效果是:
[0046] 1)本發明采用單目攝像頭獲取手勢圖像的RGB圖像數據,提供一種基于Square Tracing算法的手勢圖像輪廓跟蹤檢測方法,實現手勢輪廓跟蹤檢測與分割定位,克服傳統 基于視覺的手勢輪廓跟蹤檢測與分割方法易受光照變化影響的不足。
[0047] 2)本發明采用卷包裹法檢測出手勢輪廓凸包,得到手勢凸包區域的凸缺陷深度 點,并提供一種基于三角形增量法的手勢掌心實時定位方法,把凸缺陷深度點作為三角形 增量法中的點集,可以準確、有效地確定出手勢掌心的位置,為手勢識別、人機交互等相關 研究奠定了良好的理論基礎和技術基礎。
[0048] 3)本發明方法不僅可以豐富手勢識別方向的學術研究成果,而且將有效地提高現 有手勢識別系統的穩定性、實用性和準確性,具有十分顯著的學術價值和廣闊的應用前景。
【附圖說明】
[0049] 圖1是本發明的基于單目攝像頭的手勢凸包檢測與掌心定位方法流程框圖