宋麗銘 陳虹云 徐歡瀟 胡瑞成 李佳雯
摘? 要:隨著人機(jī)交互技術(shù)的不斷發(fā)展,人與機(jī)器智能交流也受到越來越多專家學(xué)者的關(guān)注。如今,手勢識(shí)別作為當(dāng)前人機(jī)交互的主要方式之一,已經(jīng)廣泛應(yīng)用于圖像處理和虛擬現(xiàn)實(shí)等領(lǐng)域。文章打破以往會(huì)議中使用鼠標(biāo)或者翻頁筆進(jìn)行會(huì)議控制的局限性,并基于手勢識(shí)別的優(yōu)越性設(shè)計(jì)出根據(jù)會(huì)議演講者的實(shí)時(shí)手勢操作對(duì)PowerPoint進(jìn)行實(shí)時(shí)控制的會(huì)議控制系統(tǒng)。
關(guān)鍵詞:畫面捕捉;手勢識(shí)別;會(huì)議控制
中圖分類號(hào):TP391? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2096-4706(2022)01-0079-04
Abstract: With the continuous development of human-computer interaction technology, more and more experts and scholars pay attention to the intelligent communication between human and machine. Nowadays, as one of the main ways of human-computer interaction, gesture recognition has been widely used in the fields of image processing and virtual reality. This paper breaks the limitations of using mouse or page turning pen for conference control in previous meetings, and designs a conference control system for real-time control of PowerPoint according to the real-time gesture operation of conference speakers based on the advantages of gesture recognition.
Keywords: picture capture; gesture recognition; conference control
0? 引? 言
人機(jī)交互一般是指人通過計(jì)算機(jī)設(shè)備能過與計(jì)算機(jī)相互交流的過程。以往人們是采用鍵盤、鼠標(biāo)或者翻頁筆來實(shí)現(xiàn)人機(jī)交互。隨著計(jì)算機(jī)硬件的不斷升級(jí)和計(jì)算機(jī)技術(shù)的不斷提高,人機(jī)交互的方式變得多種多樣,例如:可穿戴式設(shè)備、手勢識(shí)別、聲音識(shí)別和人臉識(shí)別等等。在人機(jī)交互領(lǐng)域里,使用計(jì)算機(jī)硬件來實(shí)現(xiàn)人機(jī)交互已經(jīng)不再流行,取而代之的是人體自然感應(yīng),人體自然感應(yīng)的使用變得越來越普遍。手勢識(shí)別是當(dāng)前人機(jī)交互的主要方式之一。
在以往的會(huì)議中,通常是匯報(bào)者使用PowerPoint進(jìn)行展示并配合以相應(yīng)的解說,結(jié)束后參會(huì)人員再分別發(fā)表各自意見。在演講中對(duì)PowerPoint進(jìn)行展示的時(shí)候,通常有重點(diǎn)部分和非重點(diǎn)部分。因此,對(duì)于每一頁的停留,翻頁就成了控制會(huì)議進(jìn)度的主要方式。因?yàn)槭謩荻喾N多樣、靈活多變,及時(shí)從未使用過手勢識(shí)別的使用者也很容易上手,從而降低了用戶使用新產(chǎn)品難度,節(jié)約了大量的時(shí)間成本。手勢識(shí)別作為當(dāng)前社會(huì)比較熱門的一個(gè)研究方向,手勢識(shí)別還有一個(gè)好處是可以是人機(jī)交互更為自然,可以增加會(huì)議的趣味性。
經(jīng)調(diào)研,會(huì)議室的人一般都在十人左右,為了解決每個(gè)人都能參與到會(huì)議系統(tǒng)的控制中的問題,本文結(jié)合手勢識(shí)別的優(yōu)越性設(shè)計(jì)出基于手勢識(shí)別的會(huì)議控制系統(tǒng)。
本系統(tǒng)可以通過手勢識(shí)別實(shí)現(xiàn)以會(huì)議為背景,對(duì)于PowerPoint的打開,關(guān)閉,放大,縮小以及向上翻頁和向下翻頁。當(dāng)會(huì)議系統(tǒng)打開時(shí),通過連接攝像頭,可以捕捉手勢畫面并傳到后臺(tái)進(jìn)行識(shí)別,然后發(fā)出相應(yīng)指令。最后,屏幕上的PowerPoint頁面即可執(zhí)行相應(yīng)指令,本文中的系統(tǒng)識(shí)別率高達(dá)百分之九十,目測達(dá)到了預(yù)期的效果。
1? 系統(tǒng)設(shè)計(jì)
本文對(duì)很多家中小型公司以及中小學(xué)進(jìn)行了會(huì)議控制系統(tǒng)使用需求的調(diào)研。本文所闡述的系統(tǒng)主要運(yùn)用的是opency、python以及圖像處理的相關(guān)技術(shù),需要用到的庫有cv2,numpy,copy,math等。
本系統(tǒng)的運(yùn)行環(huán)境是:使用軟件為pycharm,電腦系統(tǒng)為Windows 10。本系統(tǒng)在臺(tái)式機(jī)和筆記本上均可以運(yùn)行,為了系統(tǒng)運(yùn)行的穩(wěn)定性,建議使用臺(tái)式電腦,攝像頭另備,只需常規(guī)攝像頭連接電腦即可,打開pycharm運(yùn)行代碼即可自動(dòng)連接攝像頭進(jìn)行識(shí)別。
系統(tǒng)主要需要突破兩大難點(diǎn)是定義攝像頭和捕捉圖像。本系統(tǒng)主要分為三大模塊,分別是會(huì)議準(zhǔn)備模塊、系統(tǒng)操作模塊和會(huì)議結(jié)束模塊。在系統(tǒng)操作模塊中包含PowerPoint的頁面放大和縮小以及向上和向下翻頁。會(huì)議控制系統(tǒng)框架圖如圖1所示。
2? 功能設(shè)計(jì)與實(shí)現(xiàn)
2.1? 會(huì)議控制系統(tǒng)手勢錄入
手勢輸入模型會(huì)對(duì)手勢是否定義進(jìn)行有效的判斷。如果系統(tǒng)沒有預(yù)先錄入手勢,則不能實(shí)現(xiàn)相應(yīng)的人機(jī)交互功能。因此,會(huì)議控制系統(tǒng)在使用前需要預(yù)先進(jìn)行手勢錄入。將會(huì)議所要使用的手勢錄入系統(tǒng)同并生成相應(yīng)的指令。本文所寫的系統(tǒng)主要針對(duì)的是會(huì)議系統(tǒng)中PPT的操作,對(duì)會(huì)議中所要用到的放大頁面,縮小頁面,翻頁等功能指令進(jìn)行對(duì)比,運(yùn)用的代碼也是當(dāng)前比較流行的python。
目前的手勢識(shí)別技術(shù)主要包含數(shù)據(jù)處理、手勢分析和識(shí)別處理三個(gè)部分。數(shù)據(jù)處理主要是通過使用API技術(shù)截取當(dāng)前頁面下的一個(gè)矩形區(qū)域,在該矩形區(qū)域內(nèi),錄制所要用到的手勢指令,該區(qū)域就是手勢識(shí)別的區(qū)域,形成該矩形區(qū)域的主要目的在于避免去識(shí)別一些不需要的東西,能夠?qū)⑺R(shí)別的手勢更加突出顯示。然后,系統(tǒng)再監(jiān)測該區(qū)域是否有手勢指令。如果檢測到對(duì)應(yīng)的手勢指令,則將該手勢指令從當(dāng)前矩形區(qū)域中分離出來,這就是手勢分析,分析得當(dāng),則再對(duì)該手勢進(jìn)行相應(yīng)的指令檢測,并選用特定的手勢進(jìn)行對(duì)比,得出應(yīng)有的指令,最后對(duì)系統(tǒng)進(jìn)行對(duì)應(yīng)操作,這就是識(shí)別處理部分。手勢識(shí)別流程如圖2所示。
系統(tǒng)在獲得手勢輪廓后,繪制出手勢輪廓圖,再對(duì)手勢的二值圖進(jìn)行判斷。判斷采用特征法,先用API獲取手部輪廓計(jì)算手勢凹凸包,得到手部剛好包圍起來的凸多邊形,最后使用imshow得到大致的效果圖樣式。如圖3所示,在用戶握拳之后,系統(tǒng)可以的到效果樣式4。
2.2? 會(huì)議控制系統(tǒng)手勢實(shí)現(xiàn)
該P(yáng)owerPoint控制程序,包括四個(gè)命令:播放PowerPoint(全屏),退出全屏,下一頁,上一頁。
在控制程序中可設(shè)置了一個(gè)“開關(guān)”:連續(xù)檢測到手掌5幀就打開開關(guān),即可進(jìn)一步接受其他的命令。用戶可以預(yù)先并且設(shè)置時(shí)間,如果打開開關(guān)超過5秒鐘就會(huì)自動(dòng)關(guān)閉。這里設(shè)置為5秒鐘是因?yàn)檠葜v者一般一個(gè)命令時(shí)間很快,關(guān)閉命令開關(guān)避免界面中其他干擾。
命令執(zhí)行:PowerPoint的這三個(gè)模塊可以通過簡單的模擬鍵盤發(fā)送消息,“F5”,“ESC”,“→”,“←”,這個(gè)可以通過發(fā)送消息函數(shù)(定義一個(gè)函數(shù))就可以了,當(dāng)執(zhí)行了這個(gè)命令以后就立馬關(guān)閉命令開關(guān),防止比如你移動(dòng)手的時(shí)候會(huì)出現(xiàn)連續(xù)發(fā)送消息造成錯(cuò)誤。
2.2.1? PowerPoint啟動(dòng)模塊
播放PowerPoint命令:如果已經(jīng)打開了命令開關(guān)并且沒有超過5秒鐘,手掌→拳頭→手掌。
首先,系統(tǒng)會(huì)對(duì)攝像頭中捕捉到的畫面進(jìn)行識(shí)別,當(dāng)在攝像頭中檢測到拳頭并且沒有超過20幀(這里設(shè)置成20幀是為退出全屏命令用的),忽然變成了手掌,可以認(rèn)為:拳頭變成手掌,手掌打開就是打開PowerPoint的命令。
此時(shí)電腦中的PowerPoint會(huì)進(jìn)行縮放全屏,會(huì)將整個(gè)頁面呈現(xiàn)到桌面上,接下來便可以進(jìn)行其他指令。此時(shí),電腦的攝像頭捕捉到的畫面是握著的拳頭,時(shí)間沒有超過20幀,如圖4所示。
在沒有超過20幀的前提下,拳頭變成了伸開的手掌,由拳頭變成手掌,意味著要將PowerPoint頁面放大,而此時(shí)畫面中所呈現(xiàn)出來的畫面就是PowerPoint全屏畫面,如圖5所示。
辨別“開關(guān)”手勢代碼為:
輸入:系統(tǒng)開始識(shí)別第一個(gè)手勢
輸出:對(duì)應(yīng)手勢和位置或者識(shí)別失敗
(1) global fist, palm, FIST, PALM
(2) fists = fist.detectMultiScale(img, 1.3, 5)
(3) if len(fists) > 0:
(4)? ? ? return FIST, fists[0]
(5) palms = palm.detectMultiScale(img, 1.3, 5)
(6) if len(palms) > 0:
(7)? ? ? return PALM, palms[0]
(8) return -1, -1
第(3)~(7)步,如果圖像包含一個(gè)拳頭,則返回FIST(0)和拳頭的位置。如果圖像包含一個(gè)手掌,則返回PALM(1)和手掌的位置。第(8)步識(shí)別失敗。
識(shí)別“開始”手勢具體代碼為:
(1)global FIST, PALM
(2)? ? for i in range(len(seqs) - 1, 0, -1):
(3)? ? ? ? if seqs[i] == PALM:
(4)? ? ? ? ? ? for j in range(i):
(5)? ? ? ? ? ? ? if seqs[j] == FIST:
(6)? ? ? ? ? ? ? ? ? ? return True
(7)? ? ? ? ? ? break
第(2)~(6)步,舉起拳頭之后,張開手掌,表示“開始”手勢。
2.2.2? PowerPoint關(guān)閉模塊
退出PowerPoint全屏:打開命令以后,一直是拳頭超過20幀就可以認(rèn)為是關(guān)閉PowerPoint命令。如圖3所示,該系統(tǒng)捕捉到的手勢畫面是拳頭,手掌呈現(xiàn)握住狀態(tài)。
如圖6所示,當(dāng)攝像頭捕捉到的拳頭畫面超過20幀,PowerPoint的畫面由全屏變?yōu)榇翱?,即退出?/p>
識(shí)別“關(guān)閉”手勢具體代碼設(shè)計(jì)為:
(1) global exit_fist_len, FIST, PALM
(2)off_count = 5
(3)win_width = exit_fist_len + off_count
(4)cur_fist_cnt = 0
(5)for i in range(min(win_width, len(seqs))):
(6)? ? if seqs[i] == FIST:
(7)? ? ? ?cur_fist_cnt += 1
(8)if cur_fist_cnt >= exit_fist_len:
(9)? ? return True
(10)for i in range(win_width, len(seqs)):
(11)? ?if seqs[i] == FIST:
(12)? ? ? ? cur_fist_cnt += 1
(13)? ?if i - win_width >= 0 and seqs[i - win_width] == FIST:
(14)? ? ? ? cur_fist_cnt -= 1
(15)? ? if cur_fist_cnt >= exit_fist_len:
(16)? ? ? ? return True
第(5)~(9)步,在運(yùn)行過程中,如果[exit_fist_len+off_count]幀包含[exit_fist_len]拳頭,這是退出手勢。理想情況下,如果每一幀連續(xù)[exit_fist_len]幀的幀都包含拳頭,那就是退出手勢。
2.2.3? PowerPoint翻頁模塊:
向上翻頁命令:剛開始張開手掌打開命令以后,程序會(huì)自動(dòng)計(jì)算手掌的中心位置,如果手掌移動(dòng),會(huì)實(shí)時(shí)檢測手掌的中心位置,如果手掌的中心位置偏移超過一定的閾值,就可以做向下翻頁或者向上翻頁的命令。
如圖7所示,假設(shè)攝像頭捕捉到的畫面是一只張開的手掌,系統(tǒng)記錄現(xiàn)在手掌在畫面中的位置。
如圖8所示,攝像頭捕捉到的畫面是一只張開的手掌,系統(tǒng)記錄現(xiàn)在識(shí)別框中手掌在屏幕中的位置,并與上一張圖中手掌在屏幕中識(shí)別框的位置進(jìn)行對(duì)比,可見手掌從第一張圖到第二張圖的位置發(fā)生了變動(dòng),向右移動(dòng),此時(shí)PowerPoint從第一頁進(jìn)行到了第二頁,即為翻頁。
識(shí)別“翻頁”手勢具體代碼設(shè)計(jì)如下。
(1)omx = open_pos[0] + open_pos[2] / 2
(2)omy = open_pos[1] + open_pos[3] / 2
(3)cmx = cur_pos[0] + cur_pos[2] / 2
(4)cmy = cur_pos[1] + cur_pos[3] / 2
(5)thr = (open_pos[2] + open_pos[3] + cur_pos[2] + cur_pos[3]) / 4
(6)if abs(cmx - omx) > thr:
(7)return True, cmx > omx
(8)return False, 0
(9) else:
(10) start_seq = 0def draw_fist_palm(img, fop, pos):
第(1)~(2)步計(jì)算手掌中心的原始位置,第(3)~(4)步計(jì)算手掌中心的當(dāng)前位置,第(5)步計(jì)算手掌大小平均值,第(6)~(10)步,判斷移動(dòng)的X個(gè)偏移量是否大于手掌的大小,如果手掌的中心位置偏移超過一定的閾值,就可以做向下翻頁或者向上翻頁的命令。
3? 結(jié)? 論
手勢識(shí)別作為該系統(tǒng)中的主要技術(shù),在當(dāng)前國內(nèi)的各大高校和公司中所使用的技術(shù)仍然很不成熟。本文所寫的很多代碼以及功能在其他很多設(shè)備中都是得以常見的功能,但對(duì)于會(huì)議控制系統(tǒng)中的手勢指令,該系統(tǒng)的想法和功能都是比較新穎的。本系統(tǒng)可以解決了會(huì)議中需要借助于鼠標(biāo)或者翻頁筆才能實(shí)現(xiàn)會(huì)議控制的局限性,便于在多人會(huì)議中會(huì)議系統(tǒng)的控制以及各抒己見,提高了會(huì)議中各位員工的交互。同時(shí)也可以減少以往會(huì)議控制中無趣性,對(duì)會(huì)議展示有了很大的提升。
參考文獻(xiàn):
[1] MOSCHETTI A,F(xiàn)IORINI L,ESPOSITO D,et al. Recognition of Daily Gestures with Wearable Inertial Rings and Bracelets [J].Sensors,2016,16:1341.
[2] NISHIHARA H K,HSU S P,KAEHLER A,et al. Hand-gesture recognition method:US20090103780A1 [P].2009-04-23.
[3] 肖茜,楊平,徐立波.一種基于MEMS慣性傳感器的手勢識(shí)別方法 [J].傳感技術(shù)學(xué)報(bào),2013,26(5):611-615.
[4] 任海兵,祝遠(yuǎn)新,徐光祐,等.連續(xù)動(dòng)態(tài)手勢的時(shí)空表觀建模及識(shí)別 [J].計(jì)算機(jī)學(xué)報(bào),2000(8):824-828.
[5] YANG Q F,TANG H,ZHAO X B. Dolphin:Ultrasonic-Based Gesture Recognition on Smartphone Platform [C]//2014 IEEE 17th International Conference on Computational Science and Engineering.IEEE:Chengdu,2014:1461-1468.
作者簡介:宋麗銘(1999—),女,漢族,江蘇泰州人,本科在讀;研究方向:軟件開發(fā);通訊作者:陳虹云(1993—),女,漢族,江蘇南通人,講師,碩士,研究方向:信息安全、計(jì)算機(jī)技術(shù)。