




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、江蘇大學(xué)學(xué)位論文J I A N G S U U N I V E R S I T Y基于Kinect視頻播放軟件開發(fā)Development of Video Playback Software based on Kinect所屬學(xué)院: 計算機(jī)與通信工程學(xué)院專業(yè)班級: 計算機(jī)1202_姓 名: 譚毓江_ 學(xué) 號: 3120602049_ 指導(dǎo)老師姓名: 楊 洋_ 指導(dǎo)老師職務(wù):_講 師_2016年 5 月39基于Kinect視頻播放軟件開發(fā)專業(yè)班級:計算機(jī)1202 學(xué)生姓名:譚毓江指導(dǎo)教師:楊洋 職稱:講師摘要 如今的視頻播放器基本上都是鼠標(biāo)控制。但是,如果我們讓你可以手勢控制、語音控制與播放器進(jìn)
2、行交互,還有智能控制,是不是會是另一番景象,是不是會讓你感覺到更貼切、更舒適。鼠標(biāo)與計算機(jī)交互已經(jīng)很多年,也是市場上的主要交互方式之一。但是,隨這人們生活條件越來越好,享受的要求和境界也越來越高。未來,人體和語音與機(jī)器直接的交流將是一片新的天地。在未來,讓機(jī)器讀懂你的動作,明白你干什么,代替你去做將是一種必然的趨勢。其實,在如今,智能控制已經(jīng)悄悄走進(jìn)我們的生活,例如微軟的體感游戲機(jī)等。同時,人與機(jī)器交互的算法與識別度也越來越好,在未來,智能化的控制將包圍我們的生活,隨處可見。本課題主要實現(xiàn)的內(nèi)容是基于Kinect實現(xiàn)的視頻播放器。主要包括手勢識別、語音識別、基本控制、智能識別和小手按壓五個板塊
3、。其中前三個板塊包括的是播放器的基本功能的實現(xiàn),包括播放、暫停、停止、播放列表、打開文件、音量控制、進(jìn)度條和視頻切換等功能。而智能控制主要包括的是打電話時候播放器自動暫停、打電話結(jié)束播放器自動播放、人離開時播放器自動暫停和人回來時播放器自動播放。而小手按壓功能主要就是控制KinectTileButton,包括暫停、停止和播放三個功能的控制。關(guān)鍵字:手勢識別 語音識別 播放器 Kinect 智能控制 小手按壓 Development of Video Playback Software based on KinectAbstract Video players are basically mou
4、se control. However, if we allow you to gesture control, voice control and interaction with the player, as well as intelligent control, it will not be another scene, it will make you feel more appropriate, more comfortable. Mouse and computer interaction has been many years, but also one of the main
5、 ways of interaction in the market. However, with the people's living conditions are getting better and better, enjoy the requirements and the realm is also getting higher and higher. In the future, the human body and the machine direct exchange will be a new world. In the future, let the machin
6、e can understand your actions, understand what you do, instead of you to do will be an inevitable trend. In fact, in today, intelligent control has quietly occupied the market, such as Microsoft's somatosensory game machine, At the same time, human and machine interaction algorithm and recogniti
7、on is also getting better and better, in the future, intelligent control will surround our life, can be seen everywhere. In the future, we can use the eyes and machines to communicate, let it read your mind, instead of you to do what you want to do. The equivalent, you are the master of the machine,
8、 you ask it to do what it does. Perhaps, now you think everything is so incredible, but all this has been quietly coming. We should do more research in this area, which will be the future trend. A new experience, a fashion is about to come, and that is exciting and intelligent interaction.The main c
9、ontent of this paper is based on Kinect to achieve realization of the video player. The first three sections include the player is to achieve the basic functions, including play, pause, stop, play list, open the file, volume control, progress bar and video switching functions. The intelligent contro
10、l including the player automatically pauses when a call, end a call automatically play the player, when people leave the player automatically pauses and people come back when the player automatically play. The main function of a small hand press is controlled KinectTileButton, including pause, stop
11、and control playback of three features.Keywords: Gesture recognition Voice recognition Kinect Intelligent player Controls a hand press目錄第一章、緒論11.1本課題研究的背景和意義11.2 Kinect現(xiàn)狀21.3 可行性分析31.4 本文內(nèi)容與結(jié)構(gòu)4第二章、認(rèn)識Kinect42.1 Kinect的硬件組成42.2 Kinect相關(guān)的技術(shù)規(guī)格72.3 Kinect工作原理8第三章、系統(tǒng)需求設(shè)計及分析103.1需求分析103.2總體設(shè)計方案123.3軟件面向的對象
12、153.4軟件功能163.5 運(yùn)行環(huán)境173.6 開發(fā)環(huán)境173.7 相關(guān)技術(shù)183.8 軟件各模塊設(shè)計18第四章、系統(tǒng)分析194.1 設(shè)計播放器194.2 語音識別204.3 手勢識別214.4 智能控制224.5 小手按壓功能224.6圖像顯示23第五章、系統(tǒng)展示235.1 情況說明235.2 整體效果展示245.3 語音識別效果展示245.4 手勢識別效果展示285.5 智能控制效果展示325.6 KinectTileButton小手按壓展示34第六章、總結(jié)與展望35致謝37參考文獻(xiàn)38第一章、緒論1.1本課題研究的背景和意義人機(jī)交互(Human-Computer Interaction
13、)是指計算機(jī)輸入和輸出設(shè)備,以有效的方式實現(xiàn)人和計算機(jī)對話交流以達(dá)到一定操作的技術(shù)。隨著計算機(jī)的普及以及計算機(jī)技術(shù)的飛速發(fā)展,人機(jī)交互早已成為人們生活或工作中重要的一部分。近年來,隨著語音識別與處理、手勢識別與處理、人工智能等新技術(shù)的不斷涌入與發(fā)展,人機(jī)交互已經(jīng)發(fā)生了很大的變化,慢慢的貼近了人們的生活,成為人們生活的一個部分。同時,在這種趨勢下,人們對語音識別、手勢識別以及人工智能的認(rèn)識上了一個新的臺階?;蛟S未來智能化將更加深入人心,在未來,將是一個人工智能的社會;在未來,或許你操作電腦用的不在是鼠標(biāo),你的一個眼神,一次微妙的動作,或者是說的每一句話,電腦都會給你識別,然后做出相應(yīng)的響應(yīng)?;蛟S
14、在今天,你依然不相信,但是事實證明人工智能已經(jīng)走進(jìn)了我們的生活。我曾經(jīng)這樣想過,或許未來我們生活的方方面面都將智能化。但是如果這樣的話會有很多的弊端,這些弊端不言而喻。如今,雖然計算機(jī)的發(fā)展日新月異,但是人機(jī)交互的發(fā)展相對來說還是比較緩慢的。在目前,按鍵和鍵盤依然是主流的輸入方式,但卻不在是唯一的輸入方式?,F(xiàn)在我們可以使用語音控制、手勢控制等。比如,我本次的畢業(yè)設(shè)計就是基于Kinect的視頻軟件開發(fā),實現(xiàn)了語音控制和手勢控制播放器的基本功能。雖然,或許這就是一個不值得一提的事,但是我想說的是它足以證明智能控制已經(jīng)到來。以前,因為人機(jī)交互的困難性,PC的普及受到了很大的限制。后來,隨著圖像界面的
15、出現(xiàn),大大的改善了人機(jī)交互。該模式的出現(xiàn),使得人們使用計算機(jī)相對比較容易,有力的推動了PC的普及。近年,智能手機(jī)的普及也與人機(jī)交互技術(shù)的發(fā)展密切相關(guān)。是值得注意的事,人機(jī)交互友好的設(shè)備,市場的響應(yīng)效果會比較好。例如,蘋果就是一款以人們體驗為中心的一款產(chǎn)品,它的影響不言而喻。手勢交互式和語音新型人機(jī)交互是研究中重要的交互方式。手勢控制和語音控制交互是自然的、非接觸性的交互,更符合人與人的自然交互行為,更貼切、方便我們的生活。因此,手勢控制與語音控制交互是未來人機(jī)交互的發(fā)展趨勢。手勢控制與語音交互可以更方便我們的生活,或許未來對于動作識別我們可以有更透徹的理解、更貼切的識別。讀懂你的心,當(dāng)然如果這
16、樣會相當(dāng)可怕,但我相信,在未來我們會慢慢靠近,會實現(xiàn)人與機(jī)器心靈的交流,人與機(jī)器能實現(xiàn)無阻礙溝通,相互的理解?;蛟S很遙遠(yuǎn),也或許近在咫尺。但是,無論如何,一定會到來。1.2 Kinect現(xiàn)狀1.2.1 Kinect國內(nèi)現(xiàn)狀國內(nèi)主要包括人體動作捕捉、人體動作識別和人體動作識別方面的研究。就人體動作捕捉而言,段世梅、孫倩、陳彥明這些專家曾經(jīng)就做過這樣一個實現(xiàn),那是基于慣性傳感器的。就是,我們借助于慣性傳感器,將他綁定在人的身上,這樣我們就可以通過慣性傳感器獲得人的動作信息,我們對這些信息進(jìn)行過濾處理,然后我們用電腦去處理、模擬人的動作信息,從而實現(xiàn)捕捉人的動作。但是,這個有很明顯的弊端,就是需要綁
17、定一個慣性傳感器在人的身上才能捕捉到人的動作信息,這樣在很多方面都會受到限制。其實在人體動作捕捉方面,我們國家在很多方面也取得了實際性的效果,人體動作捕捉在實際應(yīng)用中也取得了一定的效果。例如山東大學(xué)尹建芹等人曾經(jīng)就機(jī)器人智能服務(wù)提出意見,并且提出了一個家庭服務(wù)動作捕捉的算法,當(dāng)然,一旦這個算法取得成功,我們將在人工智能方面取得一個質(zhì)的飛躍,他的這個算法,主要就是由背景建模、陰影消除來實現(xiàn)將人體分割出來加以識別。還有就是,在2000年的時候,我們?nèi)梭w捕捉方面對國家對在奧運(yùn)會上綻放光彩也做出了一定的貢獻(xiàn),因為在訓(xùn)練的時候,我們就用到了人體動作捕捉來進(jìn)行方方面面的判斷,這樣在訓(xùn)練中就有一種實戰(zhàn)的感覺
18、在里面,特別是對跳水等方面的影響最為顯著。模擬仿真,人體動作識別或許會是未來的一個方向,即驚奇又后怕。1.2.2 Kinect國外現(xiàn)狀 體感游戲、語音控制在國外的研究人員都比較多,同時在國外也有一些熱心人士建立起了使用Kinect的框架,例如OPENNI等軟件框架。還有就是微軟發(fā)布了官方的驅(qū)動程序和SDK,這對開發(fā)人員來說無疑是一個福音,是人們在人機(jī)交互上面又有了一個新的突破,我們的開發(fā)難度也降低了很多。利用SDK,有學(xué)者提出了基于模型的人體骨骼修正和標(biāo)記方法,很好的解決了在獲取人體動作中被遮擋的問題,使得獲取人體動作更加的容易。此外,微軟劍橋研究院有人提出了三維重建和交互系統(tǒng),這個主要是通過
19、攝像頭對獲取到的事物信息進(jìn)行三維重建,然后操作者可以在這個重建的虛擬的三維空間實現(xiàn)交互,也就是,你可以在這個虛擬的三維空間里面做你想做的動作,還能模擬出相應(yīng)的響應(yīng)。就游戲方面而言,主要就是微軟的XBOX游戲機(jī)。1.3 可行性分析可行性分析也稱可行性研究。它的作用是避免盲目投資,減少不必要的損失??尚行匝芯恳话銖囊韵聨讉€方面去考慮:(1):技術(shù)上的可行性基于Kinect的視頻播放軟件開發(fā)需要用到的技術(shù)為:C#、XAML、SDK。其中我主要掌握的是C+,和C#相通。(2)經(jīng)濟(jì)上的可行性本軟件開發(fā)大約需要半個月的事件,需要的費用大致如下:房屋和設(shè)施:¥3000元設(shè)備:¥1000元研究(需求分析和設(shè)計
20、):¥1000元開發(fā)與測試:¥1500元檢查費用和技術(shù)管理型費用:¥1000元非一次性費用以月為例:人員工資和獎金:¥5000元其他支出:¥2000元(3)管理上的可行性 管理上,我們要求我們的軟件是容易管理的,管理起來是輕松的。同時我們的管理應(yīng)該是可行的,不能不切實際。當(dāng)然,我們的管理也要考慮成本,也要看是不是有必要。關(guān)于我本次的基于Kinect的視頻播放軟件,是不需要去管理的。只需要簡單的維護(hù)就好。(4)開發(fā)環(huán)境的可行性 開發(fā)一個好的軟件,我們需要一個好的壞境。比如安靜的環(huán)境,務(wù)實的領(lǐng)導(dǎo)等方面。我們需要一個讓我專心去開發(fā)的環(huán)境,物質(zhì)、環(huán)境等外界因素所干擾。(5) 法律可行性本課題不涉及盜版
21、和違法問題。1.4 本文內(nèi)容與結(jié)構(gòu) 本次課題是實現(xiàn)基于Kinect的視頻播放軟件開發(fā),顧名思義,也就是用Kinect實現(xiàn)手勢和語音控制播放器的基本功能。其中播放器的實現(xiàn)是用WPF控件MediaElement。后面我們會重點講到播放器基本功能的實現(xiàn)、語音控制與手勢控制播放器和智能控制,當(dāng)然還有一個意外的功能,就是KinectTilebutton自帶的小手按壓功能。第二章、認(rèn)識Kinect2.1 Kinect的硬件組成圖2.1 拆解后的Kinect如圖2.1所示,就是Kinect復(fù)雜的內(nèi)部結(jié)構(gòu)。Kinect的組件主要包括以下這些:a外殼、底座及不同類型的螺絲;bMoving Touch傳動馬達(dá)電機(jī)
22、(用于仰角控制);c散熱風(fēng)扇;d彩色攝像頭;e紅外攝像頭;f紅外投影機(jī);g麥克風(fēng)陣列(4個);h3塊主板;i14種關(guān)鍵芯片。2.1.1 Kinect的“心臟”PS1080 SoC圖2.2 PrimeSense推薦的設(shè)計2.1.2 Kinect的“三只眼”投影儀和兩個攝像頭Kinect有三只不對稱的“眼睛”,從左向右分別是紅外投影機(jī)、彩色攝像頭和紅外攝線頭,如圖2.3所示。圖2.3 Kinect的“三只眼”在圖2.4中,從左向右,分別是Microsoft / X853750001 / VCA379C7130紅外攝像頭、VNA38209015彩色攝像頭、OG12 / 0956 / D306 / J
23、G05A紅外投影機(jī)。圖2.4 Kinect的“三只眼睛”2.2 Kinect相關(guān)的技術(shù)規(guī)格Kinect傳感器的有效追蹤范圍如表2-1、表2-2所示。表2-1 Kinect for Xbox360 傳感器傳感器特性有效視距 /m色彩和深度1.23.5骨骼跟蹤1.23.5表2-2 Kinect for Windows 傳感器傳感器特性有效視距 /m色彩和深度默認(rèn)模式(0.84.0),近景模式(0.43.5)骨骼跟蹤默認(rèn)模式(0.84.0),近景模式(0.43.5)Kinect for Xbox 360的有效視野范圍為0.83.5m。推薦最佳距離應(yīng)該是2.26m(一個玩家)和2.5m(二個玩家)。K
24、inect傳感器陣列規(guī)格如表2-3所示。表2-3 Kinect傳感器陣列規(guī)格傳感器特性規(guī)格范圍可視角度43°垂直方向和57°水平方向有效視野范圍機(jī)械化傾斜范圍(垂直方向)±28°幀率(深度和彩色圖像數(shù)據(jù)流)30幀每秒(FPS)深度圖像(默認(rèn))QVGA(320×240)彩色圖像(默認(rèn))VGA(640×480)音頻格式16kHz, 16bit單聲道(PCM)音頻輸入特性4個帶有24bit的數(shù)字模擬信號(ADC)和消除和處理噪聲的麥克風(fēng)陣列2.3 Kinect工作原理前面我們已經(jīng)對Kinect的硬件設(shè)備做了詳細(xì)的介紹,通過對Kinetic的
25、硬件詳細(xì)介紹,我相信你對Kinect有了至少有了一定的認(rèn)識,對它不再那么陌生,因而他也不再那么神秘。下面,我們將對Kinect在功能方面的設(shè)計做一些詳細(xì)的講解,比如工作原理,包含的功能等。2.3.1 Kinect for Xbox360的產(chǎn)品設(shè)計Kinect其實就是一個傳感器,它在本質(zhì)上和輸入設(shè)備類似,你可以理解為它就是一個輸入設(shè)備。它的成功在于抓住了時代的需求,抓住了人們的心理,其實人們對智能人際交互式非常的認(rèn)可和渴望的,因為它可以提高我們的體感,更貼切我們的生活。同時,對于一個新鮮事物,難免我們都會有很強(qiáng)的好奇心。當(dāng)然,它還有一方面的優(yōu)勢,就是價格,我們普通人基本上都是能夠接受的,不然它也
26、普及不起來,將來也不會普及。和傳統(tǒng)的攝像同相比,語音識別、手勢識別和人臉識別等成了它顯著的優(yōu)勢,使得它能夠有一席之地,并且在將來或許在某一個方面一方獨大。最初設(shè)計Kinect的目的是為了嵌入Xbox游戲機(jī)中的娛樂中心,為Xbox 360添磚加瓦,使其更有競爭力,捕獲用戶的心。這對索里PS3等是一次強(qiáng)力的沖擊,微軟想通過這種極佳的人際交互體驗來占領(lǐng)更大的市場,吸引更多的用戶,當(dāng)然微軟還在其它的一些體驗中做了很大的努力。例如,Kinect是可以嵌入電視機(jī)屏幕的,可以通過語音和手勢去控制電視機(jī),但是不是到通過表情去控制是不是已經(jīng)實現(xiàn)了。即使是這樣,用戶的體驗也變得好了許多,同時基于Kinect社區(qū)用
27、戶之間還可以進(jìn)行視頻通訊,是不是很神奇。但是,這一切近在眼前。Kinect對微軟而言有很大的意義,不僅是使得Xbox 360游戲機(jī)更深入人心,同時也是對自己不斷創(chuàng)新理論的一個見證。同時,在未來,Kinect會漸漸走進(jìn)人們的生活。對于微軟來說,將會有更大的市場等待著他們?!澳憔褪强刂破鳌?,顧名思義,就是你的一個眼神、揮一揮手就能實現(xiàn)人機(jī)交互,在未來,或許你的表情的深意都能識別出來,多么激動人心的宣言啊。通過Kinect,我們可以用動作去玩游戲了,沒錯,不是鼠標(biāo)鍵盤。人和游戲?qū)崿F(xiàn)共生,就感覺在一起一樣,在一個世界一樣。2.3.2基于“管道”的系統(tǒng)架構(gòu)主要包括骨骼跟蹤、動作識別、人臉識別和語音識別幾
28、個方面,具體解釋如下:(1)骨骼跟蹤骨骼跟蹤是手勢識別的基礎(chǔ),我們可以根據(jù)跟蹤到的骨骼流獲取的關(guān)節(jié)信息加以處理,從而實現(xiàn)相應(yīng)的控制技術(shù)。手勢控制就是這樣實現(xiàn)的,不信你可以看我后面手勢識別的實現(xiàn)。(2)動作識別動作識別,顧名思義,就是識別你的動作了。通過識別到的動作,我們可以做很多事情,可以和相應(yīng)的事件去綁定,這樣就可以實現(xiàn)愉悅的人機(jī)交互來了。當(dāng)然動作識別主要包括二個方面,那就是:靜態(tài)動作和動態(tài)動作(3)人臉識別人臉識別和動作識別比較相似,都是基于Kinect骨骼流的。你可以理解為,你人在攝像頭的捕捉范圍內(nèi)的時候,Kinect可以根據(jù)獲取到的骨骼信息和數(shù)據(jù)庫中的相匹配來判斷你是誰。當(dāng)然,如果數(shù)據(jù)
29、庫中沒有事不能識別的額。(4)語音識別語音識別是基于Kinect麥克風(fēng)捕獲的音頻數(shù)據(jù)流來實現(xiàn)的。當(dāng)然,音頻數(shù)據(jù)流是通過處理的,過濾掉了環(huán)境噪聲,環(huán)境噪聲的過濾主要采用的是音頻增強(qiáng)效果算法來實現(xiàn)的。同時,kinect還包含回波抑制和噪聲消除算法,同時還可以通過波束成形技術(shù)根據(jù)響應(yīng)時間確定音頻的位置。這樣我們就可以通過Kinect捕捉到的音頻數(shù)據(jù)流對應(yīng)相應(yīng)的動作,就可以實現(xiàn)語音識別了。第三章、系統(tǒng)需求設(shè)計及分析3.1需求分析3.1.1系統(tǒng)功能需求分析人工智能已經(jīng)漸漸走進(jìn)我們的生活,或許在你的身邊或多或少你都接觸過一些。在未來,隨著人們生活水平的提高,隨著經(jīng)濟(jì)的發(fā)展,人們將更注重于體感方面。人與機(jī)器
30、的動作、語音交互在未來將會是一個大的方向。而我這次畢業(yè)設(shè)計做的就是語音識別、手勢識別和智能控制方面的,沒錯,它的名字就是“基于Kinect的視頻軟件開發(fā)”。通過調(diào)研和討論得到系統(tǒng)的初步實現(xiàn)方案,主要包括基本功能實現(xiàn)、語音控制、手勢控制、智能控制和小手按壓幾個方面。根據(jù)以上內(nèi)容分析,得到的初步需求方案如下:(1) 基本功能的實現(xiàn),包括播放器的播放、停止、暫停、打開文件、音量控制、進(jìn)度條和播放列表。(2) 語音控制播放器的各個功能,包括暫停、停止、音量加減、前進(jìn)、后退、上一個和下一個。(3) 手勢控制播放器的各個功能,包括暫停、停止、音量加減、前進(jìn)、后退、上一個和下一個。(4) 實現(xiàn)智能控制,包括
31、人離開時播放器自動暫停,人回來時播放器自動播放;打電話時播放器自動暫停,電話結(jié)束后播放器繼續(xù)播放。(5) KinectTileButton小手按壓功能的實現(xiàn),也就是按壓會產(chǎn)生相應(yīng)的響應(yīng)。3.1.2 系統(tǒng)性能需求分析1.界面友好性要求播放器軟件提供統(tǒng)一的操作界面和方式。要求操作界面美觀大方、布局合理、功能完善,功能清晰明了。 2.可管理性要求播放器軟件涉及的東西比較多,但是我們應(yīng)該做出簡單明了。讓軟件中的所需要的東西易于管理3.軟件可擴(kuò)充性要求播放器軟件預(yù)留接口,以便添加功能使用。這樣我們?nèi)缛粜枰砑右粋€功能,就不用大費周章的去修改整個軟件,那樣會顯得比較麻煩,也比較耗時,同時也沒有必要。3.1
32、.3 用例建模為了方便用戶的使用,我在下面給出整個軟件的用例圖,主要是用戶的一些操作,如何去操作。圖3.1 總體用例圖3.2總體設(shè)計方案本次畢業(yè)設(shè)計主要包括以下六個部分:1.實現(xiàn)播放器的基本功能。2.手勢控制播放器的各個功能。3.語音控制播放器的各個功能。4.智能控制5.小手按壓功能 6.圖像顯示。第一個功能的實現(xiàn),是在VS2013下創(chuàng)建一個WPF工程,然后我們會在WPF組件中拖動一個MediaElement控件到界面中,然后拖動一些button實現(xiàn)相應(yīng)的功能。MediaElement實現(xiàn)的基本功能見圖3.2.圖3.2 視頻播放器實現(xiàn)的基本功能圖第二個功能的實現(xiàn)是基于Kinect獲取的骨骼信息
33、來判斷的,在本次畢業(yè)設(shè)計中共實現(xiàn)了九個手勢。最終實現(xiàn)結(jié)果表明:該系統(tǒng)可以實時的識別這些手勢,該手勢識別的系統(tǒng)框圖如下所示,見圖3.3.圖3.3 手勢識別基本流程圖第三個功能的實現(xiàn)是依賴于Kinect的語音識別,本次畢業(yè)設(shè)計設(shè)計了九個識別的語音,分別對應(yīng)播放器相應(yīng)功能的控制,Kinect語音識別的系統(tǒng)框圖如下所示,見圖3.4.圖3.4 語音識別流程圖第四個功能智能控制借助于骨骼流和語音識別,在下面我們會逐個講解第五個功能就是小手按壓功能,我們只需把手在KinectTileButton上按壓,相應(yīng)的功能就觸發(fā)了,然后就實現(xiàn)了相應(yīng)的相依,具體下面會詳細(xì)講解。第六個功能圖像顯示是指Kinect設(shè)備獲取
34、到的圖像信息,經(jīng)過處理后顯示在界面上,主要是通過ColorImageFrame去實現(xiàn),具體見第四章3.3軟件面向的對象(1)喜歡看電視的用戶 因為本次畢業(yè)設(shè)計實現(xiàn)了播放器的基本功能,支持各種格式的視頻。所以即使你不是一個喜歡用語音或手勢去控制視頻播放的人。在這里,也能滿足你對視頻的需求,也能讓你在視頻中陶醉。(2) 懶惰的人們 或許很久以前你就在想,要是我能躺在床上看電視,還能自如的控制視頻播放器的各個功能該多好啊。要是我睡著了,電腦就自動關(guān)閉了那就更好了?;蛟S在以前,你的這些想法可能只是空想,但是現(xiàn)在不一樣了,這種時代或許近在咫尺。而我本次的畢業(yè)設(shè)計,你揮一揮手播放器都會和你互動。如若你想出
35、去玩什么的,直接走就好了,播放器知道你走了,就會停止的,等你回來就接著播放,是不是感覺不可思議。(3)喜歡用言語去控制機(jī)器的人想不想體驗一把做主人的感覺,也就是我叫它做什么它就做什么。沒錯,在這里就是你的王國,你可以語音控制視頻播放啦。當(dāng)然,如果你想語音控制其它事務(wù),大同小異。所以,更好的體驗,神奇的控制,盡在這里。3.4軟件功能3.4.1 鼠標(biāo)控制播放器 鼠標(biāo)控制播放器的播放、暫停、停止、播放列表、聲音和打開文件。3.4.2 語音控制播放器 語音控制播放器的播放、暫停、停止、播放列表、聲音、上一個和下一個。對應(yīng)關(guān)系如下:(1) Forward:快進(jìn)(2) Back:后退(3) Pause:暫
36、停 (4) Stop:停止(5) Voice up:音量加(6) Voice down:音量減(7) Next:下一個(8) Last:上一個3.4.3 手勢控制播放器語音控制播放器的播放、暫停、停止、播放列表、聲音、上一個和下一個。對應(yīng)關(guān)系如下:(9) 雙手豎直上舉:Stop(10) 左手上舉,右手自然下垂:Pause(11) 二手與肩水平:Play(12) 右手上舉,左手自然下垂:Voice up(13) 右手下垂,左手自然下垂:Voice down(14) 左手水平與肩,右手自然下垂:Back(15) 右手水平與肩,左手自然下垂:Forward(16) 左手斜向下,右手自然下垂:next
37、(17) 左手斜上舉,右手自然下垂:last3.4.4 智能控制在本次畢業(yè)設(shè)計中,實現(xiàn)了部分功能的智能控制。包括打電話的時候播放器自動暫停,這是根據(jù)聲音達(dá)到一定的程度來判斷實現(xiàn)的;人離開時播放器自動暫停,這是根據(jù)骨骼信息來的,就是我們在一段時間內(nèi)沒有檢測到骨骼信息就代表沒人,在本次畢業(yè)設(shè)計中,設(shè)定的時間為3秒,也就是3秒內(nèi)一直檢測不到骨骼信息就判斷為沒人在觀看視頻,就自動暫停;人回到座位時,播放器自動播放,在這里我們只是在人回到座位的時候進(jìn)行自動播放,一直在座位上是不會影響你的操作的。也就是骨骼信息從無到有,才會有這個操作。3.5 運(yùn)行環(huán)境要使用 Kinect for Windows 傳感器,
38、您需要一臺安裝了以下軟件的 PC,Microsoft Windows 7、Windows 8、Microsoft Windows Embedded Standard 7 或 Windows Embedded POSReady 7。32 位 (x86) 或 64 位 (x64) 處理器。雙核 2.66 GHz 或更快的處理器。專用的 USB 2.0 總線。2 GB RAM。3.6 開發(fā)環(huán)境操作系統(tǒng):Windows 8 專業(yè)版集成開發(fā)環(huán)境:Visual Studio 2010、Visual Studio 20133.7 相關(guān)技術(shù)3.7.1 C#C#語言是一種完全面向?qū)ο蟮恼Z言。相比與C+,去掉了指
39、針,內(nèi)存也有一套自己的管理機(jī)制,實現(xiàn)了內(nèi)存的自我管理,為開發(fā)人員省去了不少事,同時開發(fā)難度較C+而言也降低了很多。同時C#也封裝了很多的API,我們可以拿來直接調(diào)用,開發(fā)效率較C+而言也提高不少。但是,它也有自己的缺陷,比如速度較C+而言慢了些等。3.7.2 WPF工程WPF(原來代號為“Avalon”),它是微軟全新的圖形界面引擎,為各種應(yīng)用提供統(tǒng)一的界面技術(shù)。WPF為用戶圖形界面開發(fā)提供了大力支持,在WPF工程中我們在XAML的組件中可以看到很多可以拖動的按鈕,同時有很多按鈕還包含了很多API供開發(fā)人員調(diào)用,這大大減小了開發(fā)的難度,提高了開發(fā)速度。同時,借助于XAML我們可以寫出特別優(yōu)美的
40、圖形界面,點擊相應(yīng)的按鈕觸發(fā)相應(yīng)的事件以實現(xiàn)相應(yīng)的功能。另外,觸發(fā)事件的代碼是用C#語言寫的,其實和C+很相似。3.8 軟件各模塊設(shè)計3.8.1 初始化窗口完成窗口初始化和相關(guān)變量的定義。3.8.2 注冊Kinect變化事件 檢測Kinect設(shè)備是否正常連接上,如果正常連接上。我們打開骨骼流和語音流,以便于實現(xiàn)后面的語音控制和手勢識別。然后對應(yīng)相應(yīng)的功能,實現(xiàn)相應(yīng)的響應(yīng)。3.8.3 播放器的設(shè)計播放器的設(shè)計就是從WPF組件中拖動一個MediaElement,然后拖動一些按鈕實現(xiàn)相應(yīng)的功能,包括暫停、播放、停止、打開文件、音量控制、視頻進(jìn)度條和播放列表。播放列表用到的是ListView,也就是讀
41、取視頻信息,顯示到ListView上。其中暫停、播放和停止分別使用了MediaElement的pause、play和stop三個API。打開文件可以支持各種類型的視頻文件和音頻文件;當(dāng)然,需要什么類型只是簡單的添加一下支持就好了,其中主要是通過獲取地址來實現(xiàn)的。音量控制主要就是拖動一個slider和voice綁定就好了。視頻進(jìn)度條的控制,我是根據(jù)slider的value和視頻播放進(jìn)度同步實現(xiàn)的,這里首先我們應(yīng)該把視頻播放的總長度設(shè)置為1,然后和視頻進(jìn)度條同步;因為這里涉及到實時監(jiān)測,所以我贏了一個定時器,也就是把對應(yīng)關(guān)系放在一個定時器中,實時監(jiān)測并做出相應(yīng)的響應(yīng)操作。第四章、系統(tǒng)分析4.1 設(shè)
42、計播放器4.1.1 播放器的基本功能的實現(xiàn) 和我們常用的播放器一樣,我本次設(shè)計的播放器實現(xiàn)的功能差不多。主要就是播放、暫停、停止、音量控制、進(jìn)度條和播放列表。這些功能的實現(xiàn)很多都是依賴于MediaElement的API,比如播放、暫停和停止等。音量控制,我們只需要用一個Slider和MediaElement音量進(jìn)行綁定,同時我們可以進(jìn)行高亮設(shè)置。進(jìn)度條的實現(xiàn),需要我們和視頻的position進(jìn)行綁定,我是通過一個定時器來實時改變滑塊的位置來實現(xiàn)的,同時給出相應(yīng)的高亮,而打開文件是通過設(shè)置source來實現(xiàn)的。到目前位置,基本功能基本全部實現(xiàn)。其中播放列表和打開文件下面我們單獨詳細(xì)介紹。4.1.
43、2 設(shè)計播放列表本來剛開始是沒打算做播放列表的,一方面不知道如何下手,另一個就是本次沒有要求,再就是以為不需要,所以就沒做。但是,后來我發(fā)現(xiàn),我需要一個播放列表,因為本次畢業(yè)設(shè)計設(shè)計到上一個、下一個。在做播放列表的時候也遇到了難題,就是如何下手。后來,我就想到了用路徑去實現(xiàn),同時借助于List去實現(xiàn)的,這樣總體來說還是比較簡單的就實現(xiàn)了。詳情請見后面的代碼。最終,是把目錄顯示到ListView中的。其中設(shè)置點擊播放列表中的視頻后是通過設(shè)置MediaElement的source來實現(xiàn)的,根據(jù)Uri傳遞給source來實現(xiàn)。4.1.3 打開文件打開文件設(shè)計到能打開什么文件,支持寫什么格式,如何加載
44、到播放器中等問題。首先格式支持我們可以通過OpenFileDialog的Filter來實現(xiàn),需要支持什么格式你就在這個中添加什么格式就可以了,同時我們通過MediaElement的source來實現(xiàn),是通過Uri將視頻地址傳遞給source的,同時設(shè)置播放器能夠播放這個文件。這樣我們在打開文件以后就點擊播放就可以播放了。4.2 語音識別語音識別對于我來說,剛開始就是一片空白。因為我也是剛接觸到Kinect,我無從下手。后來,我在Developer Toolkit Browser v1.8.0 (Kinect for Windows)找了一個例子,那就是:SpeechBasics-WPF,我借助
45、這個例子就做出了語音識別。語音識別是通過一個SpeechGrammar.xml中書寫語法,并將SpeechGrammar.xml添加到Resources.resx中,然后在MainWindow.xaml.cs打開語音流。其中,在SpeechGrammar.xml中我們可以實現(xiàn)模糊識別,也就是可以實現(xiàn)多句話中的每一句都對應(yīng)同一個功能。這個功能的實現(xiàn)主要是基于Kinect捕捉到的語音,根據(jù)捕捉到的語音去對應(yīng)相應(yīng)的功能響應(yīng)。用switch case語句去對應(yīng)相應(yīng)的響應(yīng),同時命中還會有高亮顯示在相應(yīng)的詞匯上。當(dāng)然在其中,我也遇到了很多問題。例如,播放列表的上一個、下一個語音識別以后如何去改變,也就是L
46、istView如何做出相應(yīng)的變化。問了很多人,但是還是沒解決,后來我是用的改變ListView的SelectedIndex來實現(xiàn)的,同時實現(xiàn)了循環(huán)。核心代碼如下:string files = Directory.GetFiles(pathMedia);int index = this.listView1.SelectedIndex + 1;if (index < this.listView1.Items.Count)this.listView1.SelectedIndex += 1;this.mediaElement.Source = new Uri(filesindex);/沒有到最后
47、一個視頻的情況else/到了最后一個視頻的情況,那么他的下一個就是第一個視頻this.listView1.SelectedIndex = 0;this.mediaElement.Source = new Uri(files0);progress.Value = 0;/設(shè)置進(jìn)度條的值為0playBtn.IsEnabled = true;/設(shè)置是播放器能夠播放4.3 手勢識別 手勢識別是基于Kinect骨骼流的,我們可以根據(jù)手部的變化來設(shè)計用戶想要干什么,當(dāng)然設(shè)計應(yīng)該合理化,也就是機(jī)器讀懂你的手勢,翻譯成相應(yīng)的響應(yīng)啦,機(jī)器聽不聽話,就取決于你的代碼了。手勢識別的關(guān)鍵就在于設(shè)計手勢,如何設(shè)計,給多大
48、的誤差范圍。這一點很重要,如果不給出一定的誤差范圍,那么你的操作基本上不會命中,也很難操作。但是誤差范圍太大,又容易與其他的動作發(fā)生沖突,不要讓二個動作有交集。手勢識別我是通過骨骼流來實現(xiàn)的,通過識別的骨骼信息可以知道目前用的是什么手勢,如果有對應(yīng)的功能手勢,則做出相應(yīng)的響應(yīng),若沒有,就拉倒了。我把手勢都寫在了GestureChecker.cs中,如果需要可以看附件。在其中主要用到的就是左手腕、右手腕、左肩、右肩、左肘、右肘、頭、腰等。在手勢識別中,為了避免你一個不經(jīng)意的動作讓播放器產(chǎn)生了響應(yīng),比如:“你看的正帶勁播放器突然暫停了”是不是很掃興。所以,我們需要判斷用戶是不是的手勢是不是真的想要
49、控制播放器,那么如何去實現(xiàn)呢?沒錯,就是用計數(shù)器來進(jìn)行,加入你同一個動作持續(xù)了3秒,我們就認(rèn)定你是想控制播放器的,響應(yīng)的響應(yīng)就觸發(fā)啦。其中值得注意的是手勢識別中,我們要對各個節(jié)點是否在同一條直線上進(jìn)行判斷,這里建議給一定的誤差范圍,這樣就更容易識別和理解手勢了。同時誤差范圍可以用斜率來實現(xiàn)。4.4 智能控制智能控制主要做了二部分,一部分就是打電話時播放器自動暫停,另一部分就是人離開時播放器自動暫停,回到座位時播放器自動停止。同時需要說明的是,打電話自動暫停借助的是聲音的大??;人的離開與否,是否回到座位時根據(jù)骨骼信息來判斷的。同時子啊智能控制的時候我們應(yīng)該特別注意波動問題,就是應(yīng)該防止播放器時而
50、播放時而暫停的情況,對于這種情況我們可以設(shè)置計數(shù)器來解決,1秒24幀,我設(shè)計的是3秒。同時我還添加了一個flag標(biāo)志進(jìn)行控制,只有在同時滿足二個條件時才會觸發(fā)相應(yīng)的效果。打電話自動暫停是當(dāng)聲音達(dá)到一定程度來實現(xiàn)的,核心代碼如下:if (sensor.AudioSource.SoundSourceAngleConfidence > 0.99)mediaElement.Pause();playBtn.Content = "Play"mediaElement.ToolTip = "Click to Play"人離開時播放器就自動暫停,人回到座位播放器就自
51、動播放,這是通過骨骼信息來實現(xiàn)的,具體依據(jù)如下:skel.TrackingState != SkeletonTrackingState.Tracked/表示人離開座位。skel.TrackingState != SkeletonTrackingState.Tracked/表示人在座位上。對應(yīng)的操作在這里不做說明,代碼見附件。4.5 小手按壓功能小手按壓功能是針對于KinectTilebutton來說的,這個是有微軟自己封裝的,我們只需包裝起來調(diào)用即可,通過控制小手可以對KinectTileButton按壓,然后播放器就能做出相應(yīng)的響應(yīng)。當(dāng)然即使你不用,如果你用小手就總會有一個小手懸浮在界面中以
52、便你調(diào)節(jié)位置使用。主要實現(xiàn)方式如下:1. 在MainWindow.xaml中用<k:KinectRegion Grid.Row="1" x:Name="kinectRegion">和 </k:KinectRegion>將Grid包圍在其中。2. 在MainWindow.xaml.cs的MainWindow中添加BindingOperations.SetBinding(this.kinectReginKinectRegion.KinectSensorProperty, regionSensorBinding);4.6圖像顯示圖像顯示
53、是基于Kinect的,我們主要通過ColorImageFrame來實現(xiàn),當(dāng)它不為空的時候,做如下操作:colorFrame.CopyPixelDataTo(this.colorPixels); / Write the pixel data into our bitmapthis.colorBitmap.WritePixels(new Int32Rect(0, 0, this.colorBitmap.PixelWidth, this.colorBitmap.PixelHeight),this.colorPixels,this.colorBitmap.PixelWidth * sizeof(int
54、),0);這樣就可以在界面中看到Kinect獲取到的圖像信息了。獲取圖像信息有助于我們智能控制判斷人是不是離開或者回來。其實就是給自己一個心理安慰。第五章、系統(tǒng)展示5.1 情況說明由于本畢業(yè)設(shè)計實現(xiàn)的功能比較多,所以這里給出部分截圖。核心功能的實現(xiàn)給出一個展示,包括語音識別、手勢識別和智能控制和按壓功能。5.2 整體效果展示圖5.1 整體效果展示5.3 語音識別效果展示5.3.1 語音控制播放器播放圖5.2 語音控制播放如圖5.2,當(dāng)我們說play的時候,在界面的最上端play會高亮,表示識別了play。同時播放器如若是暫停的就開始播放,如若是播放狀態(tài)就什么都不做。play和pause想對應(yīng),
55、效果是一樣的,所以我們在這里只做play的展示,pause同理。5.3.2 語音控制播放器停止圖5.3 語音控制停止如圖5.3是語音控制停止的截圖。當(dāng)我們說stop被Kineet識別以后,界面上端的stop會高亮顯示,同時播放器做出stop響應(yīng)。5.3.3 語音控制播放器進(jìn)度條圖5.4 語音控制進(jìn)度條如圖5.4是語音控制進(jìn)度條的截圖。當(dāng)我們說Forward被kinect識別以后,界面最上端的forward會高亮顯示,同時播放器快進(jìn),具體快進(jìn)多少根據(jù)你的設(shè)置來實現(xiàn),同時進(jìn)度條也會做出相應(yīng)的改變。Back和Forward相對應(yīng),表示的是后退,與Forward同理,在這里不做進(jìn)一步的展示。5.3.4
56、 語音控制播放器上一個、下一個圖5.5 語音控制上一個、下一個如圖5.5,是語音控制上一個的截圖。下一個控制原理和上一個的控制原理一樣,在這里我們給出上一個的截圖作為展示。當(dāng)我們說last并被kinect識別后,界面最上端的last會高亮顯示,next表示下一個,原理一樣。同時在播放列表中指定的位置會發(fā)生改變,也就是指向上一個,如果在你說last的時候已經(jīng)到了播放列表中的最上面一個,那么你的上一個就會是最后一個視頻,這里我們按循環(huán)控制來實現(xiàn)的。然后就是界面上這個樣子了,你點擊play播放器就可以播放了。5.3.5 語音控制播放器音量圖5.6 語音控制播放器音量如圖5.6是語音控制播放器音量的截圖。因為音量加和音量減想對應(yīng),這里我們以音量加為例。首先,當(dāng)我們說voice up并被kinect識別以后,voice up會高亮顯示,同時音量控制進(jìn)度條會做出相應(yīng)的改變,改變的多少可以進(jìn)行設(shè)置。5.4 手勢識別效果展示5.4.1 手勢控制播放器暫停圖5.7 手勢控制播放器暫停如圖5.7,手勢控制播放器暫停。正如右上角深度圖像所示,左手上舉,右手自然下垂。Kinect識別以后,播放器暫停。5.4.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政積分制管理暫行辦法
- 西安市門頭牌匾管理暫行辦法
- 衡陽市重點水域管理辦法
- 西豐縣農(nóng)村環(huán)境管理辦法
- 觀山湖區(qū)停車場管理辦法
- 設(shè)備檢修后清理管理辦法
- 課件庫管理辦法心得體會
- 財政性資金指標(biāo)管理辦法
- 貴州人口生育與管理辦法
- 貴州省露天煤礦管理辦法
- 江河治理與防洪工程課件
- 成都某污水處理廠施工組織設(shè)計
- 廣告制作交貨進(jìn)度計劃及保障措施
- 網(wǎng)絡(luò)安全知識培訓(xùn)資料
- 2025年下半年中小學(xué)教師資格考試題庫帶答案
- 2025年中職基礎(chǔ)會計試題
- 2025年江蘇省南京市中考道德與法治試卷(含解析)
- 同業(yè)培訓(xùn)課件
- 中試平臺運(yùn)營管理制度
- 2025至2030中國生物反饋儀行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報告
- 【公開課】牛頓第二定律+課件+-2024-2025學(xué)年高一上學(xué)期物理人教版(2019)必修第一冊+
評論
0/150
提交評論