本發(fā)明涉及移動終端數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種確定移動終端應用場景的方法、裝置和移動終端。
背景技術(shù):
隨著移動互聯(lián)網(wǎng)行業(yè)的發(fā)展和智能移動終端的不斷進化,現(xiàn)在主流的移動終端,特別是智能手機上都搭載了很多類型的傳感器,比如加速度、陀螺儀(角速度)、重力、磁場傳感器,以及溫度、氣壓傳感器等。
移動終端的應用場景指的是,移動終端在什么樣的場景及姿態(tài)下被用戶使用。應用場景可以是靜止、步行、跑步、乘車、開車等運動狀態(tài),也可以是單手持握、雙手持握等手持狀態(tài)。
移動終端的傳感器所提供的數(shù)據(jù)和該移動終端的應用場景具有很強的相關(guān)性。分析傳感器數(shù)據(jù),識別移動終端應用場景是為用戶提供個性化服務(wù)的基礎(chǔ)。例如,移動終端的運動狀態(tài)還可以用于預測用戶在特定場景下的行為,并進一步實現(xiàn)消息的定制化精準推送;移動終端的手持狀態(tài)可以用于分析用戶的使用習慣,從而幫助開發(fā)者優(yōu)化界面和功能設(shè)計,使其更符合用戶需求;等等。
技術(shù)實現(xiàn)要素:
為此,本發(fā)明提供一種確定移動終端應用場景的方法、裝置和移動終端,以解決或至少緩解上面存在的問題。
根據(jù)本發(fā)明的一個方面,提供一種確定移動終端應用場景的方法,在移動終端中執(zhí)行,移動終端中駐留有一個或多個傳感器,傳感器適于采集移動終端的狀態(tài)數(shù)據(jù),該方法包括:按照預定頻率獲取預定時長內(nèi)的多條狀態(tài)數(shù)據(jù);根據(jù)獲取到的多條狀態(tài)數(shù)據(jù)確定移動終端的狀態(tài)特征信息;根據(jù)狀態(tài)特征信息,采用分類器確定移動終端的應用場景。
可選地,在根據(jù)本發(fā)明的確定移動終端應用場景的方法中,狀態(tài)數(shù)據(jù)包括重力數(shù)據(jù)、磁場數(shù)據(jù)和加速度數(shù)據(jù)。
可選地,在根據(jù)本發(fā)明的確定移動終端應用場景的方法中,應用場景包括運動場景,所述運動場景包括靜止、步行、跑步。
可選地,在根據(jù)本發(fā)明的確定移動終端應用場景的方法中,根據(jù)多條狀態(tài)數(shù)據(jù)確定移動終端的狀態(tài)特征信息的步驟包括:根據(jù)重力數(shù)據(jù)和磁場數(shù)據(jù)確定旋轉(zhuǎn)矩陣,旋轉(zhuǎn)矩陣適于將機身坐標轉(zhuǎn)化為世界坐標;根據(jù)旋轉(zhuǎn)矩陣,將每一條加速度數(shù)據(jù)由機身坐標轉(zhuǎn)化為世界坐標;根據(jù)多條世界坐標系下的加速度數(shù)據(jù)確定移動終端的狀態(tài)特征信息。
可選地,在根據(jù)本發(fā)明的確定移動終端應用場景的方法中,狀態(tài)特征信息包括以下信息項目的一種或多種:加速度在世界坐標系的x、y、z軸上的:最大值、最小值、均值、方差、最大值與最小值之差;單次增加最大值、單次減小最大值,其中,所述單次增加最大值為時間上相鄰的兩個加速度值中后項與前項之差的最大值,所述單次減小最大值為時間上相鄰的兩個加速度值中前項與后項之差的最大值;頻域上的預定數(shù)量個振幅最大的頻率分量的振幅、頻率。
可選地,在根據(jù)本發(fā)明的確定移動終端應用場景的方法中,應用場景還包括手持場景,所述手持場景包括左手單手豎屏、右手單手豎屏、雙手豎屏、左手單手橫屏、右手單手橫屏、雙手橫屏。
可選地,在根據(jù)本發(fā)明的確定移動終端應用場景的方法中,根據(jù)多條狀態(tài)數(shù)據(jù)確定移動終端的狀態(tài)特征信息的步驟包括:根據(jù)重力數(shù)據(jù)和磁場數(shù)據(jù)確定旋轉(zhuǎn)矩陣,旋轉(zhuǎn)矩陣適于將機身坐標轉(zhuǎn)化為世界坐標;根據(jù)旋轉(zhuǎn)矩陣確定移動終端的狀態(tài)特征信息。
可選地,在根據(jù)本發(fā)明的確定移動終端應用場景的方法中,狀態(tài)特征信息包括以下信息項目的一種或多種:移動設(shè)備相對于世界坐標系的x、y、z軸的旋轉(zhuǎn)角度。
可選地,在根據(jù)本發(fā)明的確定移動終端應用場景的方法中,在根據(jù)獲取到的多條狀態(tài)數(shù)據(jù)確定移動終端的狀態(tài)特征信息的步驟之后,還包括:將狀態(tài)特征信息所包括的每個信息項目的取值標準化為0到1之間。
可選地,在根據(jù)本發(fā)明的確定移動終端應用場景的方法中,分類器按照以下方法訓練:獲取多個應用場景下的多條狀態(tài)特征信息;將狀態(tài)特征信息和其對應的應用場景作為訓練樣本訓練分類模型,將分類模型的訓練結(jié)果作為分類器,其中,分類器的輸入為狀態(tài)特征信息,輸出為應用場景。
可選地,在根據(jù)本發(fā)明的確定移動終端應用場景的方法中,分類模型為隨機森林模型。
根據(jù)本發(fā)明的一個方面,提供一種確定移動終端應用場景的裝置,駐留于移動終端中,其被配置為適于使移動終端執(zhí)行如上所述的確定移動終端應用場景的方法。
根據(jù)本發(fā)明的一個方面,提供一種移動終端,包括:一個或多個傳感器,適于采集移動終端的狀態(tài)數(shù)據(jù);至少一個處理器,適于執(zhí)行程序指令;和存儲有程序指令的存儲器,程序指令被配置為由所述至少一個處理器執(zhí)行,程序指令包括用于執(zhí)行如上所述的方法的指令。
可選地,在根據(jù)本發(fā)明的移動終端中,狀態(tài)數(shù)據(jù)包括重力數(shù)據(jù)、磁場數(shù)據(jù)、加速度數(shù)據(jù),傳感器包括:重力傳感器,適于采集移動終端的重力數(shù)據(jù);磁場傳感器,適于采集移動終端的磁場數(shù)據(jù);加速度傳感器,適于采集移動終端的加速度數(shù)據(jù)。
根據(jù)本發(fā)明的一個方面,提供一種存儲有程序指令的可讀存儲介質(zhì),當該可讀存儲介質(zhì)中存儲的程序指令被移動終端讀取時,使得該移動終端執(zhí)行如上所述的確定移動終端應用場景的方法。
根據(jù)本發(fā)明的技術(shù)方案,首先,按照預定頻率獲取預定時長內(nèi)的多條狀態(tài)數(shù)據(jù),將預定頻率設(shè)置為較小的數(shù)值,從而降低對傳感器數(shù)據(jù)訂閱的需求,降低耗電量;另外,將預定時長設(shè)置為一個較小的數(shù)值,從而在保證確定移動終端應用場景的準確率的同時降低延時,增加響應的靈敏度。
隨后,根據(jù)獲取到的多條狀態(tài)數(shù)據(jù)來確定移動終端的狀態(tài)特征信息。針對不同的應用場景,狀態(tài)特征信息所包括的信息項目、以及狀態(tài)特征信息的確定方法不同。針對運動場景,先確定旋轉(zhuǎn)矩陣,再根據(jù)旋轉(zhuǎn)矩陣將加速度數(shù)據(jù)由機身坐標轉(zhuǎn)化為世界坐標,并根據(jù)多條世界坐標系下的加速度數(shù)據(jù)確定狀態(tài)特征信息,這樣,可以消除在機身坐標系下由于機身姿態(tài)不同對運動狀態(tài)分析結(jié)果所帶來的影響。針對手持場景,先確定旋轉(zhuǎn)矩陣,再根據(jù)旋轉(zhuǎn)矩陣確定狀態(tài)特征信息,這樣,可以確定移動終端相對于世界坐標系的三個坐標軸的旋轉(zhuǎn)角度,并根據(jù)旋轉(zhuǎn)角度來識別出不同的手持場景。
最后,根據(jù)狀態(tài)特征信息,采用分類器確定移動終端的應用場景。分類器是根據(jù)訓練樣本訓練得出,每一個訓練樣本包括狀態(tài)特征信息和其對應的應用場景。分類器的訓練例如可以采用隨機森林算法,在保證較快的訓練速度的同時,也可以達到較好的分類效果,對訓練樣本集的適應性強,具有良好的抗噪能力,不易陷入過擬合。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
為了實現(xiàn)上述以及相關(guān)目的,本文結(jié)合下面的描述和附圖來描述某些說明性方面,這些方面指示了可以實踐本文所公開的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護的主題的范圍內(nèi)。通過結(jié)合附圖閱讀下面的詳細描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯。遍及本公開,相同的附圖標記通常指代相同的部件或元素。
圖1示出了根據(jù)本發(fā)明一個實施例的移動終端100的結(jié)構(gòu)圖;
圖2示出了根據(jù)本發(fā)明一個實施例的確定移動終端應用場景的方法200的流程圖;
圖3示出了根據(jù)本發(fā)明一個實施例的機身坐標系的示意圖;
圖4示出了根據(jù)本發(fā)明一個實施例的世界坐標系的示意圖;
圖5示出了根據(jù)本發(fā)明一個實施例的預定時長內(nèi)的多條世界坐標系下的加速度數(shù)據(jù)的示意圖;
圖6示出了根據(jù)本發(fā)明一個實施例的頻域曲線的示意圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
圖1示出了根據(jù)本發(fā)明一個實施例的移動終端100的結(jié)構(gòu)圖。如圖1所示,移動終端100可以包括存儲器接口102、一個或多個數(shù)據(jù)處理器、圖像處理器和/或中央處理單元104,以及外圍接口106。
存儲器接口102、一個或多個處理器104和/或外圍接口106既可以是分立元件,也可以集成在一個或多個集成電路中。在移動終端100中,各種元件可以通過一條或多條通信總線或信號線來耦合。傳感器、設(shè)備和子系統(tǒng)可以耦合到外圍接口106,以便幫助實現(xiàn)多種功能。
例如,加速度傳感器110、磁場傳感器112和重力傳感器114可以耦合到外圍接口106,加速度傳感器110可以采集在機身坐標系的三個坐標軸方向上的加速度數(shù)據(jù),磁場傳感器112可以采集在機身坐標系的三個坐標軸方向上的磁場數(shù)據(jù)(磁感應強度),重力傳感器114可以采集在機身坐標系的三個坐標軸上的重力數(shù)據(jù),以上傳感器可以方便實現(xiàn)計步、定向、橫豎屏智能切換等功能。其他傳感器116同樣可以與外圍接口106相連,例如定位系統(tǒng)(例如gps接收機)、溫度傳感器、生物測定傳感器或其他感測設(shè)備,由此可以幫助實施相關(guān)的功能。
相機子系統(tǒng)120和光學傳感器122可以用于方便諸如記錄照片和視頻剪輯的相機功能的實現(xiàn),其中所述相機子系統(tǒng)和光學傳感器例如可以是電荷耦合器件(ccd)或互補金屬氧化物半導體(cmos)光學傳感器。可以通過一個或多個無線通信子系統(tǒng)124來幫助實現(xiàn)通信功能,其中無線通信子系統(tǒng)可以包括射頻接收機和發(fā)射機和/或光(例如紅外)接收機和發(fā)射機。無線通信子系統(tǒng)124的特定設(shè)計和實施方式可以取決于移動終端100所支持的一個或多個通信網(wǎng)絡(luò)。例如,移動終端100可以包括被設(shè)計成支持lte、3g、gsm網(wǎng)絡(luò)、gprs網(wǎng)絡(luò)、edge網(wǎng)絡(luò)、wi-fi或wimax網(wǎng)絡(luò)以及blueboothtm網(wǎng)絡(luò)的通信子系統(tǒng)124。
音頻子系統(tǒng)126可以與揚聲器128以及麥克風130相耦合,以便幫助實施啟用語音的功能,例如語音識別、語音復制、數(shù)字記錄和電話功能。i/o子系統(tǒng)140可以包括觸摸屏控制器142和/或一個或多個其他輸入控制器144。觸摸屏控制器142可以耦合到觸摸屏146。舉例來說,該觸摸屏146和觸摸屏控制器142可以使用多種觸摸感測技術(shù)中的任何一種來檢測與之進行的接觸和移動或是暫停,其中感測技術(shù)包括但不局限于電容性、電阻性、紅外和表面聲波技術(shù)。一個或多個其他輸入控制器144可以耦合到其他輸入/控制設(shè)備148,例如一個或多個按鈕、搖桿開關(guān)、拇指旋輪、紅外端口、usb端口、和/或指示筆之類的指點設(shè)備。所述一個或多個按鈕(未顯示)可以包括用于控制揚聲器128和/或麥克風130音量的向上/向下按鈕。
存儲器接口102可以與存儲器150相耦合。該存儲器150可以包括內(nèi)部存儲器和外部存儲器,內(nèi)部存儲器例如可以是靜態(tài)隨機存取存儲器(sram)、非易失性存儲器(nvram)等,但不限于此;外部存儲器例如可以是硬盤、可移動硬盤、u盤等,但不限于此。存儲器150可以存儲程序指令,程序指令例如可以包括操作系統(tǒng)152和應用154。操作系統(tǒng)152例如可以是android、ios、windowsphone等,其包括用于處理基本系統(tǒng)服務(wù)以及執(zhí)行依賴于硬件的任務(wù)的程序指令。存儲器150還可以存儲應用154,應用154可以包括用于實現(xiàn)各種用戶期望的功能的程序指令。應用154可以是獨立于操作系統(tǒng)提供的,也可以是操作系統(tǒng)自帶的。另外,應用154被安裝到移動終端100中時,也可以向操作系統(tǒng)添加驅(qū)動模塊。在移動設(shè)備運行時,會從存儲器150中加載操作系統(tǒng)152,并且由處理器104執(zhí)行。應用154在運行時,也會從存儲器150中加載,并由處理器104執(zhí)行。應用154運行在操作系統(tǒng)之上,利用操作系統(tǒng)以及底層硬件提供的接口實現(xiàn)各種用戶期望的功能,如即時通信、網(wǎng)頁瀏覽、圖片管理、運動休閑等。在上述各種應用154中,其中的一種應用為根據(jù)本發(fā)明的確定移動終端應用場景的裝置160,其可以指示處理器104執(zhí)行確定移動終端應用場景的方法200,獲取移動終端傳感器所采集到的狀態(tài)數(shù)據(jù),并據(jù)此確定移動終端當前所處的應用場景,從而為向用戶提供個性化服務(wù)打下基礎(chǔ)。根據(jù)一種實施例,應用場景包括運動場景和手持場景,其中,運動場景包括靜止、步行、跑步;手持場景包括左手單手豎屏、右手單手豎屏、雙手豎屏、左手單手橫屏、右手單手橫屏、雙手橫屏。
圖2示出了根據(jù)本發(fā)明一個實施例的確定移動終端應用場景的方法200的流程圖。方法200適于在駐留有確定移動終端應用場景的裝置160的移動終端中執(zhí)行。
如圖2所示,方法200始于步驟s210。
在步驟s210中,按照預定頻率獲取預定時長內(nèi)的多條狀態(tài)數(shù)據(jù)。根據(jù)一種實施例,狀態(tài)數(shù)據(jù)包括重力數(shù)據(jù)(由重力傳感器114采集)、磁場數(shù)據(jù)(由磁場傳感器112采集)和加速度數(shù)據(jù)(由加速度傳感器110采集)。當然,狀態(tài)數(shù)據(jù)還可以包括其他數(shù)據(jù)項目,例如角速度數(shù)據(jù)(由陀螺儀采集)、氣壓數(shù)據(jù)(由氣壓傳感器采集)、位置數(shù)據(jù)(由gps定位芯片采集)、時間數(shù)據(jù)(通過手機系統(tǒng)時間獲取)等,本發(fā)明對狀態(tài)數(shù)據(jù)所包括的具體數(shù)據(jù)項目不做限制。
應當指出,重力數(shù)據(jù)、磁場數(shù)據(jù)、加速度數(shù)據(jù)均基于機身坐標系,機身坐標系的示意圖如圖3所示,機身坐標系的原點為移動終端的中心,x軸水平指向右;y軸垂直指向上;z軸分別垂直與x軸、y軸,并指向屏幕之外。
應當指出,預定頻率以及預定時長的值可以由本領(lǐng)域技術(shù)人員根據(jù)實際情況自行設(shè)置。優(yōu)選地,將預定頻率設(shè)置為較小的數(shù)值,從而降低對傳感器數(shù)據(jù)訂閱的需求,降低耗電量;同時,將預定時長也設(shè)置為一個較小的數(shù)值,從而在保證確定移動終端應用場景的準確率的同時降低延時,增加響應的靈敏度。例如,可以將預定頻率設(shè)置為20hz(即獲取傳感器采集到的狀態(tài)數(shù)據(jù)的間隔時間為50ms),預定時長設(shè)置為6400ms,那么步驟s210相當于以50ms的時間間隔獲取128(即6400除以50)條狀態(tài)數(shù)據(jù),隨后,根據(jù)獲取到的這128條狀態(tài)數(shù)據(jù)來確定移動終端的應用場景。
步驟s210的執(zhí)行結(jié)果是獲取到多條狀態(tài)數(shù)據(jù)。例如,在預定頻率為20hz、預定時長為6400ms時,獲取到的128條狀態(tài)數(shù)據(jù)d0~d127如下表1所示:
表1.狀態(tài)數(shù)據(jù)示例
表1中,每一列對應于一條狀態(tài)數(shù)據(jù),每一條狀態(tài)數(shù)據(jù)包括重力數(shù)據(jù)、磁場數(shù)據(jù)、加速度數(shù)據(jù)以及本領(lǐng)域技術(shù)人員設(shè)置獲取的其他數(shù)據(jù)。
隨后,在步驟s220中,根據(jù)獲取到的多條狀態(tài)數(shù)據(jù)確定移動終端的狀態(tài)特征信息。
應當指出,狀態(tài)特征信息的確定方法、以及狀態(tài)特征信息中所包括的信息項目根據(jù)所要確定的移動終端應用場景的類別不同。以下針對應用場景為運動場景和手持場景,分別詳述步驟s220的實施過程:
1、應用場景為運動場景
根據(jù)一種實施例,移動終端應用場景包括諸如靜止、步行、跑步、乘車等運動場景。為了確定移動終端所處的運動場景,步驟s220可以進一步按照以下步驟s221~s223執(zhí)行:
步驟s221:根據(jù)重力數(shù)據(jù)和磁場數(shù)據(jù)確定旋轉(zhuǎn)矩陣,旋轉(zhuǎn)矩陣適于將機身坐標轉(zhuǎn)化為世界坐標。世界坐標系的示意圖如圖4所示,世界坐標系的原點為本初子午線和赤道的交點,x軸指向正東方向,y軸指向正北方向,z軸指向地面正上方。
根據(jù)一種實施例,旋轉(zhuǎn)矩陣可以采用andoridsensormanager類中的getrotationmatrix方法求得,示例代碼如下:
float[]rotate=newfloat[16];//定義大小為4*4的旋轉(zhuǎn)矩陣rotate
sensormanager.getrotationmatrix(rotate,i,sd.gravity,sd.magnetic);//根據(jù)重力數(shù)據(jù)和磁場數(shù)據(jù)確定旋轉(zhuǎn)矩陣
步驟s222:根據(jù)旋轉(zhuǎn)矩陣,將每一條加速度數(shù)據(jù)由機身坐標轉(zhuǎn)化為世界坐標。根據(jù)一種實施例,將旋轉(zhuǎn)矩陣的逆矩陣與加速度數(shù)據(jù)相乘,即可將加速度數(shù)據(jù)由機身坐標轉(zhuǎn)化為世界坐標。應當指出,重力數(shù)據(jù)、磁場數(shù)據(jù)、加速度數(shù)據(jù)一般為三維向量,向量的每一維對應于機身坐標系的一個坐標軸。但是,為了方便后續(xù)采用opengl進行矩陣計算,優(yōu)選地,將重力數(shù)據(jù)、磁場數(shù)據(jù)、加速度數(shù)據(jù)擴展為四維向量,第四維用例如可以用數(shù)值0填充。步驟s222的示例代碼如下:
float[]relativeacc=newfloat[4];//定義四維向量relativeacc,用于存儲機身坐標系下的加速度數(shù)據(jù)
float[]earthacc=newfloat[4];//定義四維向量earthacc,用于存儲世界坐標系下的加速度數(shù)據(jù)
float[]inv=newfloat[16];//定義4*4的矩陣inv,用于存儲旋轉(zhuǎn)矩陣rotate的逆矩陣
system.arraycopy(sd.accelerate,0,relativeacc,0,3);//將加速度傳感器采集到的三維數(shù)據(jù)復制到relativeacc向量的前三個元素relativeacc[0]~relativeacc[2]
relativeacc[3]=0;//將relativeacc向量的第四個元素的值設(shè)置為0
android.opengl.matrix.invertm(inv,0,rotate,0);//計算旋轉(zhuǎn)矩陣rotate的逆矩陣inv
android.opengl.matrix.multiplymv(earthacc,0,inv,0,relativeacc,0);//將矩陣inv與向量relativeacc相乘,得到earthacc
經(jīng)過步驟s222,可以得到多條世界坐標系下的加速度數(shù)據(jù),每一條加速度數(shù)據(jù)包括x、y、z軸上的加速度信息。圖5是預定時長內(nèi)的多條世界坐標系下的加速度數(shù)據(jù)的一個示例。如圖5中的三條曲線分別為世界坐標系的x、y、z軸上的加速度數(shù)據(jù),即曲線1為世界坐標系的x軸上的加速度數(shù)據(jù)匯聚而成,曲線2為世界坐標系的y軸上的加速度數(shù)據(jù)匯聚而成,曲線3為世界坐標系的z軸上的加速度數(shù)據(jù)匯聚而成。
通過將加速度數(shù)據(jù)由機身坐標轉(zhuǎn)化世界坐標,可以消除在機身坐標系下由于機身姿態(tài)(機身姿態(tài)例如可以是拿在手中正常使用、拿在手中隨手臂自然擺動、放在上衣口袋、裝在褲兜、放在隨身包中等)不同對運動狀態(tài)分析結(jié)果所帶來的影響,使得運動場景的識別更加準確。
步驟s223:根據(jù)多條世界坐標系下的加速度數(shù)據(jù)確定移動終端的狀態(tài)特征信息。根據(jù)一種實施例,狀態(tài)特征信息包括以下信息項目中的一種或多種:
加速度在世界坐標系的x、y、z軸上的:
1)最大值
某個坐標軸上有n個加速度數(shù)據(jù)分別為p(0)~p(n-1),n為預定時長中獲取到的狀態(tài)數(shù)據(jù)的數(shù)目,則最大值為max(p(i)),其中,0≤i≤n-1。
2)最小值
某個坐標軸上有n個加速度數(shù)據(jù)分別為p(0)~p(n-1),n為預定時長中獲取到的狀態(tài)數(shù)據(jù)的數(shù)目,則最大值為min(p(i)),其中,0≤i≤n-1。
3)均值
某個坐標軸上有n個加速度數(shù)據(jù)分別為p(0)~p(n-1),n為預定時長中獲取到的狀態(tài)數(shù)據(jù)的數(shù)目,則均值為
4)方差
某個坐標軸上有n個加速度數(shù)據(jù)分別為p(0)~p(n-1),n為預定時長中獲取到的狀態(tài)數(shù)據(jù)的數(shù)目,則均值為
5)最大值與最小值之差
某個坐標軸上有n個加速度數(shù)據(jù)分別為p(0)~p(n-1),n為預定時長中獲取到的狀態(tài)數(shù)據(jù)的數(shù)目,則最大值與最小值之差為max(p(i))-min(p(i)),其中,0≤i≤n-1。
6)單次增加最大值
某個坐標軸上有n個加速度數(shù)據(jù)分別為p(0)~p(n-1),n為預定時長中獲取到的狀態(tài)數(shù)據(jù)的數(shù)目,則單次增加最大值為max(p(i)-p(i-1)),其中,1≤i≤n-1。
7)單次減小最大值
某個坐標軸上有n個加速度數(shù)據(jù)分別為p(0)~p(n-1),n為預定時長中獲取到的狀態(tài)數(shù)據(jù)的數(shù)目,則單次減小最大值為max(p(i)-p(i+1)),其中,0≤i≤n-2。
8)頻域上預定數(shù)量個振幅最大的頻率分量的振幅、頻率
將由某個坐標軸上的n個加速度數(shù)據(jù)所構(gòu)成的時域曲線(例如圖5中的曲線1或曲線2或曲線3)進行傅立葉變換,將其轉(zhuǎn)化為頻域曲線,取頻域中預定數(shù)量個振幅最大的頻率分量的振幅、頻率作為狀態(tài)特征信息。預定數(shù)量可以由本領(lǐng)域技術(shù)人員自行設(shè)置,例如,可以將預定數(shù)量設(shè)置為3,那么,取頻域中的3個振幅最大的頻率分量的振幅和頻率作為狀態(tài)特征信息。
圖6是一個頻域曲線的示意圖。圖6中,橫坐標為頻率分量編號,縱坐標為振幅,圖中的每一條豎線代表一個頻率分量,豎線的長度越長,表示該頻率分量的振幅越大。當預定數(shù)量為3時,需要取3個振幅最大的頻率分量的振幅、頻率作為狀態(tài)特征信息。顯然,圖6中,編號為4、7、5的頻率分量是三個振幅最大的頻率分量,將三個頻率分量的振幅和頻率作為狀態(tài)特征信息,其中,頻率分量的振幅即為該頻率分量所對應的豎線的頂端的縱坐標,頻率分量的頻率可以按照公式f=index*(δf/n)計算,其中,f為頻率分量的頻率,index為頻率分量編號,δf為預定頻率,n為預定時長內(nèi)獲取到的狀態(tài)數(shù)據(jù)的數(shù)目,即n=預定時長/預定頻率。
如果狀態(tài)特征信息包括以上列出的所有信息項目,且預定數(shù)量設(shè)置為3,則狀態(tài)特征信息將是一個39維向量(每一個坐標軸包括13維信息)。
2、應用場景為手持場景
根據(jù)一種實施例,移動終端應用場景包括諸如左手單手豎屏、右手單手豎屏、雙手豎屏、左手單手橫屏、右手單手橫屏、雙手橫屏等手持場景。為了確定移動終端所處的手持場景,步驟s220可以進一步按照以下步驟s224~s225執(zhí)行:
步驟s224:根據(jù)重力數(shù)據(jù)和磁場數(shù)據(jù)確定旋轉(zhuǎn)矩陣,旋轉(zhuǎn)矩陣適于將機身坐標轉(zhuǎn)化為世界坐標。步驟s224的實施過程與前述步驟s221相同,此處不再贅述。
步驟s225:根據(jù)旋轉(zhuǎn)矩陣確定移動終端的狀態(tài)特征信息。根據(jù)一種實施例,狀態(tài)特征信息包括以下信息項目的一種或多種:移動設(shè)備相對于世界坐標系的x、y、z軸的旋轉(zhuǎn)角度。旋轉(zhuǎn)角度可以采用andoridsensormanager類中的getorientation方法求得,示例代碼如下:
sensormanager.getorientation(rotate,currorientation);//currorientation用于存儲移動設(shè)備相對于世界坐標系的x、y、z軸的旋轉(zhuǎn)角度
如果狀態(tài)特征信息包括所有三個坐標軸的旋轉(zhuǎn)角度,則狀態(tài)特征信息是一個3維向量。
根據(jù)一種實施例,在確定了狀態(tài)特征信息之后,將狀態(tài)特征信息所包括的每個信息項目的取值標準化為0到1之間。
隨后,在步驟s230中,根據(jù)狀態(tài)特征信息,采用分類器確定移動終端的應用場景。即,將狀態(tài)特征信息輸入分類器,分類器可以返回該狀態(tài)特征信息所對應的應用場景。根據(jù)一種實施例,分類器按照以下方法訓練:獲取多個應用場景下的多條狀態(tài)特征信息;將狀態(tài)特征信息和其對應的應用場景作為訓練樣本訓練分類模型,將分類模型的訓練結(jié)果作為分類器,其中,分類器的輸入為狀態(tài)特征信息,輸出為應用場景。
根據(jù)一種實施例,獲取某個應用場景下的狀態(tài)特征信息可以采用以下方法:首先,測試者選擇一種應用場景,隨后,測試者隨身攜帶移動終端進行該應用場景所指示的動作,在測試者實施該應用場景所指示的動作時,移動終端上的傳感器可以采集狀態(tài)數(shù)據(jù),對狀態(tài)數(shù)據(jù)進行如前述步驟s220所述的處理,則可將傳感器采集到的狀態(tài)數(shù)據(jù)轉(zhuǎn)化為狀態(tài)特征信息。這樣,便得到了該應用場景下的狀態(tài)特征信息。將該方法重復多次,即可得到多個應用場景下的多條狀態(tài)特征信息。
應當指出,確定不同類別的移動終端應用場景所采用的分類器不一定相同,具體是否相同取決于這兩個類別所采用的狀態(tài)特征信息是否相同。例如,如前述步驟s220所述,運動場景類別和手持場景類別的狀態(tài)特征信息所包括的信息項目不同,因此,確定移動終端的運動場景和手持場景需要采用不同的分類器。用于確定移動終端運動場景的分類器需要以狀態(tài)特征信息及其對應的運動場景作為訓練樣本訓練得出;用于確定移動終端手持場景的分類器需要以狀態(tài)特征信息及其對應的手持場景作為訓練樣本訓練得出。
根據(jù)一種實施例,分類器的訓練例如可以采用隨機森林算法(即分類模型為隨機森林模型),在保證較快的訓練速度的同時,也可以達到較好的分類效果,對訓練樣本集的適應性強,具有良好的抗噪能力,不易陷入過擬合。此外,在android系統(tǒng)中采用隨機森林算法訓練分類器時,可以采用一些特別的設(shè)置來進一步提高訓練速度。例如,采用單精度浮點數(shù),降低存儲空間的需求和計算復雜度;使用sparsearray來提高性能,等等。
以上所詳述的步驟s210~s230即構(gòu)成了確定移動終端應用場景的方法200。另外,應當指出,根據(jù)一種實施例,方法200可以在后臺不斷地執(zhí)行,當用戶請求獲取移動終端應用場景的時候可以實時反饋給用戶。例如,在內(nèi)存中設(shè)置一個變量s用戶存儲移動終端當前的應用場景。在t0時刻開始以預定頻率獲取狀態(tài)數(shù)據(jù),經(jīng)過預定時長后,到達t1時刻,在t1時刻可以根據(jù)t0~t1時間段獲取到的狀態(tài)數(shù)據(jù)確定出移動終端應用場景s;從t1時刻起,經(jīng)過預定時長后到達t2時刻,在t2時刻可以根據(jù)t1~t2時間段獲取到的狀態(tài)數(shù)據(jù)確定出移動終端應用場景,并用本次確定出的應用場景去更新變量s;以此類推,每隔預定時長,移動終端應用場景s就會被更新一次。當用戶請求獲取移動終端應用場景的時候,可以實時讀取變量s的值,并將該值返回給用戶。根據(jù)另一種實施例,方法200也可以是基于用戶請求而執(zhí)行的,即當用戶請求獲取移動終端應用場景時,觸發(fā)確定移動終端應用場景的裝置160開始以預定頻率獲取狀態(tài)數(shù)據(jù),經(jīng)過預定時長之后,才可以向用戶返回移動終端應用場景。此外,根據(jù)又一種實施例,方法200也可以在用戶使用裝置160所對應的應用的時候執(zhí)行,還可以在用戶設(shè)置的時間段內(nèi)執(zhí)行,本發(fā)明對方法200的執(zhí)行時間以及執(zhí)行方式不做限制。
a7:a6所述的方法,其中,所述根據(jù)所述多條狀態(tài)數(shù)據(jù)確定移動終端的狀態(tài)特征信息的步驟包括:根據(jù)所述重力數(shù)據(jù)和磁場數(shù)據(jù)確定旋轉(zhuǎn)矩陣,所述旋轉(zhuǎn)矩陣適于將機身坐標轉(zhuǎn)化為世界坐標;根據(jù)所述旋轉(zhuǎn)矩陣確定移動終端的狀態(tài)特征信息。
a8:a7所述的方法,其中,所述狀態(tài)特征信息包括以下信息項目的一種或多種:移動設(shè)備相對于世界坐標系的x、y、z軸的旋轉(zhuǎn)角度。
a9:a1-8中任一項所述的方法,其中,在所述根據(jù)獲取到的所述多條狀態(tài)數(shù)據(jù)確定移動終端的狀態(tài)特征信息的步驟之后,還包括:將狀態(tài)特征信息所包括的每個信息項目的取值標準化為0到1之間。
a10:a1-9中任一項所述的方法,其中,所述分類器按照以下方法訓練:獲取多個應用場景下的多條狀態(tài)特征信息;將狀態(tài)特征信息和其對應的應用場景作為訓練樣本訓練分類模型,將分類模型的訓練結(jié)果作為分類器,其中,所述分類器的輸入為狀態(tài)特征信息,輸出為應用場景。
a11:a10所述的方法,其中,所述分類模型為隨機森林模型。
這里描述的各種技術(shù)可結(jié)合硬件或軟件,或者它們的組合一起實現(xiàn)。從而,本發(fā)明的方法和設(shè)備,或者本發(fā)明的方法和設(shè)備的某些方面或部分可采取嵌入有形媒介,例如可移動硬盤、u盤、軟盤、cd-rom或者其它任意機器可讀的存儲介質(zhì)中的程序代碼(即指令)的形式,其中當程序被載入諸如計算機之類的機器,并被所述機器執(zhí)行時,所述機器變成實踐本發(fā)明的設(shè)備。
在程序代碼在可編程計算機上執(zhí)行的情況下,移動終端一般包括處理器、處理器可讀的存儲介質(zhì)(包括易失性和非易失性存儲器和/或存儲元件),至少一個輸入裝置,和至少一個輸出裝置。其中,存儲器被配置用于存儲程序代碼;處理器被配置用于根據(jù)該存儲器中存儲的所述程序代碼中的指令,執(zhí)行本發(fā)明的游戲?qū)ο蠊芾矸椒ā?/p>
以示例而非限制的方式,可讀介質(zhì)包括可讀存儲介質(zhì)和通信介質(zhì)??勺x存儲介質(zhì)存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息。通信介質(zhì)一般以諸如載波或其它傳輸機制等已調(diào)制數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并且包括任何信息傳遞介質(zhì)。以上的任一種的組合也包括在可讀介質(zhì)的范圍之內(nèi)。
在此處所提供的說明書中,算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與本發(fā)明的示例一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下被實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員應當理解在本文所公開的示例中的設(shè)備的模塊或單元或組件可以布置在如該實施例中所描述的設(shè)備中,或者可替換地可以定位在與該示例中的設(shè)備不同的一個或多個設(shè)備中。前述示例中的模塊可以組合為一個模塊或者此外可以分成多個子模塊。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
此外,所述實施例中的一些在此被描述成可以由計算機系統(tǒng)的處理器或者由執(zhí)行所述功能的其它裝置實施的方法或方法元素的組合。因此,具有用于實施所述方法或方法元素的必要指令的處理器形成用于實施該方法或方法元素的裝置。此外,裝置實施例的在此所述的元素是如下裝置的例子:該裝置用于實施由為了實施該發(fā)明的目的的元素所執(zhí)行的功能。
如在此所使用的那樣,除非另行規(guī)定,使用序數(shù)詞“第一”、“第二”、“第三”等等來描述普通對象僅僅表示涉及類似對象的不同實例,并且并不意圖暗示這樣被描述的對象必須具有時間上、空間上、排序方面或者以任意其它方式的給定順序。
盡管根據(jù)有限數(shù)量的實施例描述了本發(fā)明,但是受益于上面的描述,本技術(shù)領(lǐng)域內(nèi)的技術(shù)人員明白,在由此描述的本發(fā)明的范圍內(nèi),可以設(shè)想其它實施例。此外,應當注意,本說明書中使用的語言主要是為了可讀性和教導的目的而選擇的,而不是為了解釋或者限定本發(fā)明的主題而選擇的。因此,在不偏離所附權(quán)利要求書的范圍和精神的情況下,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說許多修改和變更都是顯而易見的。對于本發(fā)明的范圍,對本發(fā)明所做的公開是說明性的而非限制性的,本發(fā)明的范圍由所附權(quán)利要求書限定。