在移動終端進行實時圖像識別的方法及該移動終端的制作方法
【專利摘要】本發(fā)明公開了在移動終端進行實時圖像識別的方法及該移動終端,其中,該方法包括:用移動終端攝像頭實時進行數(shù)據(jù)采集,獲取視頻幀;對視頻幀進行運動估計,確定出視頻幀運動狀態(tài);判斷視頻幀運動狀態(tài)是否為運動到靜止,如果是,則確定為清晰幀圖像,將清晰幀圖像上傳到云端服務器;接收云端服務器反饋的識別結果,顯示識別結果。本發(fā)明方案能夠節(jié)省流量,有效反饋識別結果。
【專利說明】在移動終端進行實時圖像識別的方法及該移動終端
【技術領域】
[0001] 本發(fā)明涉及圖像處理和識別技術,尤其涉及在移動終端進行實時圖像識別的方法 及該移動終端。
【背景技術】
[0002] 在移動終端進行實時圖像識別的方案包括:用移動終端攝像頭獲取關于目標的視 頻幀,發(fā)送給云端服務器;云端服務器對接收的視頻幀進行識別,確定出對應的描述信息, 反饋給移動終端進行顯示。
[0003] 舉例說明:可以對圖書封面、CD封面、電影海報、條形碼、二維碼、商品Logo等各種 物體進行數(shù)據(jù)采集;云端服務器接收視頻幀后,將反饋相關描述信息,描述信息包括關于相 關物品的購買情況、評論信息等。采用這種方式,可以即拍即得,非??旖?。
[0004] 現(xiàn)有移動終端進行數(shù)據(jù)采集及發(fā)送的方式主要有兩種,下面分別進行具體說明:
[0005] 方式一:
[0006] 用移動終端攝像頭對準目標進行拍照,將得到的視頻幀發(fā)送給云端服務器。
[0007] 該方式存在以下缺陷:需要對準后手動進行操作,不方便。并且,如果沒有對準,或 者出現(xiàn)晃動,云端服務器將無法進行圖像識別,進而移動終端不能成功獲取關于目標的描 述信息。
[0008] 方式二:
[0009] 不需要進行拍照,而是采用實時對攝像頭捕獲的整副畫面進行數(shù)據(jù)采集,將采集 的圖像數(shù)據(jù)發(fā)送給云端服務器。
[0010] 該方法雖然無需人為進行拍攝,方便了操作,但同時存在以下缺陷:由于實時將采 集的視頻幀發(fā)送給云端服務器,其流量較大;并且,采集的有些數(shù)據(jù)幀不清晰,云端服務器 無法識別,不能有效反饋識別結果。
[0011] 可見,現(xiàn)有在移動終端進行實時圖像識別的方法,存在消耗流量大、不能有效反饋 識別結果的缺陷。
【發(fā)明內(nèi)容】
[0012] 本發(fā)明提供了一種在移動終端進行實時圖像識別的方法,該方法能夠節(jié)省流量, 有效反饋識別結果。
[0013] 本發(fā)明提供了一種進行實時圖像識別的移動終端,該移動終端能夠節(jié)省流量,有 效反饋識別結果。
[0014] -種在移動終端進行實時圖像識別的方法,該方法包括:
[0015] 用移動終端攝像頭實時進行數(shù)據(jù)采集,獲取視頻幀;
[0016] 對視頻幀進行運動估計,確定出視頻幀運動狀態(tài);
[0017] 判斷視頻幀運動狀態(tài)是否為運動到靜止,如果是,則確定為清晰幀圖像,將清晰幀 圖像上傳到云端服務器;
[0018] 接收云端服務器反饋的識別結果,顯示識別結果。
[0019] 一種進行實時圖像識別的移動終端,該移動終端包括數(shù)據(jù)采集單元、運動估計單 元、清晰幀判斷單元和識別結果顯示單元;
[0020] 所述數(shù)據(jù)采集單元,用移動終端攝像頭實時進行數(shù)據(jù)采集,獲取視頻幀,發(fā)送給所 述運動估計單元;
[0021] 所述運動估計單元,對視頻幀進行運動估計,確定出視頻幀運動狀態(tài),發(fā)送給所述 清晰幀判斷單元;
[0022] 所述清晰幀判斷單元,判斷視頻幀運動狀態(tài)是否為運動到靜止,如果是,則確定為 清晰幀圖像,將清晰幀圖像上傳到云端服務器;
[0023] 所述識別結果顯示單元,接收云端服務器反饋的識別結果,顯示識別結果。
[0024] 從上述方案可以看出,本發(fā)明中,對采集到的視頻幀進行運動估計,確定視頻幀運 動狀態(tài);在判斷出視頻幀運動狀態(tài)為運動到靜止時,確定為清晰幀圖像,將清晰幀圖像上傳 到云端服務器。本發(fā)明采用攝像頭主動采集數(shù)據(jù)的方式,無需用戶手動進行拍照,簡便了操 作;并且,只將清晰幀圖像發(fā)送給云端服務器,而不是實時將采集的視頻幀發(fā)送給云端服務 器,節(jié)省了流量;由于云端服務器基于清晰幀圖像反饋識別結果,使識別結果更加有效。
【專利附圖】
【附圖說明】
[0025] 圖1為本發(fā)明在移動終端進行實時圖像識別的方法示意性流程圖;
[0026] 圖2為本發(fā)明在移動終端進行實時圖像識別的方法流程圖實例;
[0027] 圖3為本發(fā)明進行運動估計方法流程圖實例;
[0028] 圖4為本發(fā)明進行數(shù)據(jù)塊匹配的示意圖實例;
[0029] 圖5為本發(fā)明進行實時圖像識別的移動終端結構示意圖。
【具體實施方式】
[0030] 為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,下面結合實施例和附圖,對本 發(fā)明進一步詳細說明。
[0031] 發(fā)明人在進行本發(fā)明的過程中發(fā)現(xiàn),在進行數(shù)據(jù)采集的過程中,實際應用時,用戶 先打開攝像頭,然后移至對準目標,攝像頭進行數(shù)據(jù)采集,這是一個由運動到靜止的過程。 基于此,本發(fā)明對采集的視頻幀的運動狀態(tài)進行判斷,當獲知視頻幀運動狀態(tài)為運動到靜 止時,確定為清晰幀圖像,將清晰幀圖像上傳到云端服務器;這樣,只將清晰幀圖像發(fā)送給 云端服務器,節(jié)省了流量;且由于云端服務器基于清晰幀圖像反饋識別結果,使識別結果更 加有效。
[0032] 參見圖1,為本發(fā)明在移動終端進行實時圖像識別的方法示意性流程圖,其包括以 下步驟:
[0033] 步驟101,用移動終端攝像頭實時進行數(shù)據(jù)采集,獲取視頻幀。
[0034] 步驟102,對視頻幀進行運動估計,確定出視頻幀運動狀態(tài)。
[0035] 移動攝像頭對畫面進行逐幀采集,對實時獲取的某一視頻幀進行運動估計,以確 定出該某一視頻幀的運動狀態(tài)。
[0036] 運動估計的英文名稱是(Motion Estimation),多運用在視頻編碼技術中。本發(fā) 明將運動估計應用到對移動終端攝像頭采集的視頻幀進行處理,以確定出視頻幀的運動狀 態(tài)。具體地,可采用運動矢量確定視頻幀運動狀態(tài),包括:計算出視頻幀與其上一視頻幀之 間的運動矢量,運動矢量包含運動幅度和運動方向;由運動矢量確定出視頻幀運動狀態(tài)。
[0037] 采用運動估計計算出視頻幀與其到上一視頻幀之間的運動矢量,具體可采用如下 方式:
[0038] 獲取上一視頻幀的中心區(qū)域像素;
[0039] 以視頻幀的中心區(qū)域為起點,在其周圍搜索出與上一視頻幀中心區(qū)域像素相似的 區(qū)域,確定出匹配塊;
[0040] 將視頻幀的中心區(qū)域與匹配塊之間的位置矢量作為運動矢量。
[0041] 運動狀態(tài)包括運動、靜止、運動到靜止、靜止到運動,由運動矢量確定出視頻巾貞運 動狀態(tài)的方式有多種,可根據(jù)實際需要設置,下面進行實例說明。由運動矢量確定出視頻幀 運動狀態(tài)包括:
[0042] 讀取存儲的背景運動狀態(tài);如果背景運動狀態(tài)為靜止,且從當前幀開始連續(xù)N幀 運動幅度都大于第一運動閾值,N為自然數(shù),當前幀為第1幀,則第1至N+1幀的運動狀態(tài) 為靜止,背景運動狀態(tài)仍為靜止,將第N+1幀運動狀態(tài)確定為靜止到運動,并將背景運動狀 態(tài)修改為運動;如果背景運動狀態(tài)為靜止,且當前幀運動幅度小于第一運動閾值,則當前幀 運動狀態(tài)仍為靜止,背景運動狀態(tài)仍為靜止;
[0043] 如果背景運動狀態(tài)為運動,且從當前幀開始連續(xù)N幀運動幅度都小于第二運動閾 值,N為自然數(shù),當前巾貞為第1巾貞,則第1至N+1巾貞的運動狀態(tài)為運動,背景運動狀態(tài)仍為運 動,將第N+1
[0044] 幀運動狀態(tài)確定為運動到靜止,并將背景運動狀態(tài)修改為靜止;如果背景運動狀 態(tài)為運動,且當前幀運動幅度大于第二運動閾值,則當前幀運動狀態(tài)仍為運動,背景運動狀 態(tài)仍為運動。
[0045] 進一步地,確定出背景運動狀態(tài)為靜止,且當前幀運動幅度小于第一運動閾值之 后,該方法還包括:
[0046] 判斷運動幅度是否大于第三運動閾值,如果是,則當前幀運動為微運動,背景運動 狀態(tài)仍然為靜止,如果從當前幀開始連續(xù)Μ幀的運動都是相同方向上的微運動,當前幀為 第1幀,則將第Μ幀的運動狀態(tài)確定為靜止到運動,并將背景運動狀態(tài)修改為運動,Μ為自 然數(shù)。
[0047] 背景運動狀態(tài)為靜止的情況下,如果由運動幅度獲知上一視頻幀之后有連續(xù)兩幀 的運動幅度都大于S1,且由運動方向獲知所述連續(xù)兩幀的方向相反,則判斷為抖動情形,將 所述連續(xù)兩幀的運動狀態(tài)仍確定為靜止;
[0048] 如果由運動幅度獲知上一視頻幀之后有連續(xù)兩幀的運動幅度都大于S1,且由運動 方向獲知所述連續(xù)兩幀的方向相同,則將連續(xù)兩幀中最近一幀確定為靜止到運動狀態(tài)。
[0049] 步驟103,判斷視頻幀運動狀態(tài)是否為運動到靜止,如果是,則確定為清晰幀圖像, 將清晰幀圖像上傳到云端服務器。
[0050] 如果判斷視頻幀運動狀態(tài)不為運動到靜止,則不向云端服務器上傳數(shù)據(jù)幀。
[0051] 進一步地,為了提高判斷清晰幀的準確性,在確定出視頻幀運動狀態(tài)為運動到靜 止之后,還可以進行角點檢測:
[0052] 計算出視頻幀的角點特征數(shù)目;
[0053] 判斷角點特征數(shù)目是否大于角點數(shù)目閾值,如果是,則確定為清晰幀圖像;否則, 確定為模糊幀圖像。
[0054] 通常地,判斷出視頻幀運動狀態(tài)為運動到靜止時,確定為清晰幀圖像,將清晰幀圖 像上傳到云端服務器。在某些應用環(huán)境下,也可以基于多幀連續(xù)視頻幀的運動狀態(tài)都為靜 止,來自確定出上傳清晰幀圖像的時機;具體地,假設當前幀為第1幀,如果判斷出第1幀 至第N+1幀都為靜止狀態(tài),則確定出第N+1幀為清晰幀,將清晰幀圖像上傳到云端服務器; N為自然數(shù)。步驟104,接收云端服務器反饋的識別結果,顯示識別結果。
[0055] 云端服務器接收視頻幀后,將反饋相關描述信息,包括關于相關物品的購買情況、 評論息等。
[0056] 本發(fā)明中,對采集到的視頻幀進行運動估計,確定視頻幀運動狀態(tài);在判斷出視頻 幀運動狀態(tài)為運動到靜止時,確定為清晰幀圖像,將清晰幀圖像上傳到云端服務器。本發(fā)明 采用攝像頭主動采集數(shù)據(jù)的方式,無需用戶手動進行拍照,簡便了操作;并且,只將清晰幀 圖像發(fā)送給云端服務器,而不是實時將采集的視頻幀發(fā)送給云端服務器,節(jié)省了流量;由于 云端服務器基于清晰幀圖像反饋識別結果,使識別結果更加有效。
[0057] 下面通過圖2,對本發(fā)明在移動終端進行實時圖像識別的方法進行實例說明,其包 括以下步驟:
[0058] 步驟201,用移動終端攝像頭實時進行數(shù)據(jù)采集,獲取視頻幀。
[0059] 步驟202,對視頻巾貞進行運動估計,確定出視頻巾貞運動狀態(tài)。
[0060] 為了方便說明,將進行運動估計的視頻幀稱為待處理視頻幀。
[0061] 本發(fā)明中,將現(xiàn)有用于視頻編碼的運動估計思想移植到移動終端攝像頭對圖像的 處理,視頻與移動終端攝像頭的圖像序列均有共同的連續(xù)圖像相關性,因此運動估計算法 是可以通用的。但是,二者又有不同點,比如移動終端攝像頭獲取的圖像分辨率往往較低, 并且在用戶實際使用的時候移動終端不會有太大運動幅度的運動;更主要的是,視頻編碼 中采用針對全局的運動估計算法,這種計算方式非常慢,即使在PC上也往往不能達到實時 的效果。因此,針對兩者的不同,本發(fā)明對應用于視頻編碼的運動估計算法進行改進,使其 在各種移動終端上也能達到非常高效的性能,同時消耗較少的CPU資源,甚至使消耗的CPU 資源基本可以忽略不計。參見圖3,為本發(fā)明進行運動估計方法流程圖實例,其包括以下步 驟:
[0062] 步驟301,獲取待處理視頻幀的中心區(qū)域像素,并存儲。
[0063] 步驟302,獲取待處理視頻幀的上一視頻幀的中心區(qū)域像素。
[0064] 移動終端每次采集視頻幀后,都將存儲該視頻幀的中心區(qū)域像素;具體地,存儲中 心區(qū)域的像素灰度值。本步驟中,提取存儲的與待處理視頻幀緊鄰的上一視頻幀的中心區(qū) 域像素灰度值。
[0065] 步驟303,以待處理視頻幀的中心區(qū)域為起點,在其周圍搜索出與上一視頻幀中心 區(qū)域像素相似的區(qū)域,確定出匹配塊。
[0066] 下面結合圖4對確定匹配塊的方法進行詳細說明。圖中,上一視頻幀中標有網(wǎng)格 的方形區(qū)域為上一視頻幀中心區(qū)域,待處理視頻幀中的虛線區(qū)域為待處理視頻幀中心區(qū) 域,對虛線框周圍的一個有限鄰域內(nèi)采用由里到外的方式進行搜索,找到與上一視頻幀中 心區(qū)域像素灰度值相似的區(qū)域,該區(qū)域稱為匹配塊,待處理視頻幀中標有網(wǎng)格的方形區(qū)域 便為搜素出的匹配塊。
[0067] 本實例中,將上一視頻幀的中心區(qū)域(X,y)像素灰度表示為I (X,y),將待處理視 頻幀中用于與上一視頻幀中心區(qū)域進行匹配的搜索塊表示為I'(x,y),將兩者之間差的平 方和作為塊相似度的指標,假設塊大小為N乘以N個像素,則誤差平方和S為:
[0068]
【權利要求】
1. 一種在移動終端進行實時圖像識別的方法,其特征在于,該方法包括: 用移動終端攝像頭實時進行數(shù)據(jù)采集,獲取視頻幀; 對視頻巾貞進行運動估計,確定出視頻巾貞運動狀態(tài); 判斷視頻幀運動狀態(tài)是否為運動到靜止,如果是,則確定為清晰幀圖像,將清晰幀圖像 上傳到云端服務器; 接收云端服務器反饋的識別結果,顯示識別結果。
2. 如權利要求1所述的方法,其特征在于,所述對視頻幀進行運動估計,確定出視頻幀 運動狀態(tài),包括: 計算出視頻幀與其上一視頻幀之間的運動矢量,運動矢量包含運動幅度和運動方向; 由運動矢量確定出視頻幀運動狀態(tài)。
3. 如權利要求2所述的方法,其特征在于,所述由運動矢量確定出視頻幀運動狀態(tài)包 括: 讀取存儲的背景運動狀態(tài); 如果背景運動狀態(tài)為靜止,且從當前幀開始連續(xù)N幀運動幅度都大于第一運動閾值,N 為自然數(shù),當前巾貞為第1巾貞,則第1至第N+1巾貞的運動狀態(tài)為靜止,背景運動狀態(tài)仍為靜止, 將第N+1幀運動狀態(tài)確定為靜止到運動,并將背景運動狀態(tài)修改為運動; 如果背景運動狀態(tài)為運動,且從當前幀開始連續(xù)N幀運動幅度都小于第二運動閾值,N 為自然數(shù),當前巾貞為第1巾貞,則第1至N+1巾貞的運動狀態(tài)為運動,背景運動狀態(tài)仍為運動,將 第N+1幀運動狀態(tài)確定為運動到靜止,并將背景運動狀態(tài)修改為靜止。
4. 如權利要求3所述的方法,其特征在于,確定出背景運動狀態(tài)為靜止,且當前幀運動 幅度小于第一運動閾值之后,該方法還包括: 判斷運動幅度是否大于第三運動閾值,如果是,則當前幀運動為微運動,背景運動狀態(tài) 仍然為靜止,如果從當前幀開始連續(xù)Μ幀的運動都是相同方向上的微運動,當前幀為第1 幀,則將第Μ幀的運動狀態(tài)確定為靜止到運動,并將背景運動狀態(tài)修改為運動,Μ為自然數(shù)。
5. 如權利要求3所述的方法,其特征在于,所述確定出背景運動狀態(tài)為靜止之后,該方 法包括: 如果由運動幅度獲知上一視頻幀之后連續(xù)兩幀的運動幅度都大于第一運動閾值,且由 運動方向獲知所述連續(xù)兩幀的方向相反,則判定為抖動情形,將所述連續(xù)兩幀的運動狀態(tài) 仍確定為靜止,背景運動狀態(tài)仍為靜止。
6. 如權利要求2所述的方法,其特征在于,所述計算出視頻幀與其到上一視頻幀之間 的運動矢量包括: 獲取上一視頻幀的中心區(qū)域像素; 以視頻幀的中心區(qū)域為起點,在其周圍搜索出與上一視頻幀中心區(qū)域像素相似的區(qū) 域,確定出匹配塊; 將視頻幀的中心區(qū)域與匹配塊之間的位置矢量作為運動矢量。
7. 如權利要求1至6中任一項所述的方法,其特征在于,在確定出視頻幀運動狀態(tài)為運 動到靜止之后,該方法還包括: 計算出視頻幀的角點特征數(shù)目; 判斷角點特征數(shù)目是否大于角點數(shù)目閾值,如果是,則確定為清晰幀圖像;否則,確定 為模糊幀圖像。
8. -種進行實時圖像識別的移動終端,其特征在于,該移動終端包括數(shù)據(jù)采集單元、運 動估計單元、清晰巾貞判斷單元和識別結果顯示單元; 所述數(shù)據(jù)采集單元,用移動終端攝像頭實時進行數(shù)據(jù)采集,獲取視頻幀,發(fā)送給所述運 動估計單元; 所述運動估計單元,對視頻幀進行運動估計,確定出視頻幀運動狀態(tài),發(fā)送給所述清晰 中貞判斷單元; 所述清晰幀判斷單元,判斷視頻幀運動狀態(tài)是否為運動到靜止,如果是,則確定為清晰 幀圖像,將清晰幀圖像上傳到云端服務器; 所述識別結果顯示單元,接收云端服務器反饋的識別結果,顯示識別結果。
9. 如權利要求8所述的移動終端,其特征在于,所述運動估計單元包括運動矢量計算 子單元和狀態(tài)確定子單元; 所述運動矢量計算子單元,計算出視頻幀與其上一視頻幀之間的運動矢量,發(fā)送給所 述狀態(tài)確定子單元;運動矢量包含運動幅度和運動方向; 所述狀態(tài)確定子單元,由運動矢量確定出視頻幀運動狀態(tài)。
10. 如權利要求9所述的移動終端,其特征在于,所述狀態(tài)確定子單元包括狀態(tài)確定模 塊,讀取存儲的背景運動狀態(tài);如果背景運動狀態(tài)為靜止,且從當前幀開始連續(xù)N幀運動幅 度都大于第一運動閾值,N為自然數(shù),當前幀為第1幀,則第1至N+1幀的運動狀態(tài)為靜止, 背景運動狀態(tài)仍為靜止,將第N+1幀運動狀態(tài)確定為靜止到運動,并將背景運動狀態(tài)修改 為運動; 如果背景運動狀態(tài)為運動,且從當前幀開始連續(xù)N幀運動幅度都小于第二運動閾值,N 為自然數(shù),當前巾貞為第1巾貞,則第1至N+1巾貞的運動狀態(tài)為運動,背景運動狀態(tài)仍為運動,將 第N+1幀運動狀態(tài)確定為運動到靜止,并將背景運動狀態(tài)修改為靜止。
11. 如權利要求10所述的移動終端,其特征在于,所述狀態(tài)確定模塊,確定出背景運動 狀態(tài)為靜止,且當前幀運動幅度小于第一運動閾值之后,還判斷運動幅度是否大于第三運 動閾值,如果是,則當前幀運動為微運動,背景運動狀態(tài)仍然為靜止,如果從當前幀開始連 續(xù)Μ幀的運動都是相同方向上的微運動,當前幀為第1幀,則將第Μ幀的運動狀態(tài)確定為靜 止到運動,并將背景運動狀態(tài)修改為運動,Μ為自然數(shù)。
12. 如權利要求9述的移動終端,其特征在于,所述運動矢量計算單元包括運動矢量確 定模塊,獲取上一視頻幀的中心區(qū)域像素;以視頻幀的中心區(qū)域為起點,在其周圍搜索出與 上一視頻幀中心區(qū)域像素相似的區(qū)域,確定出匹配塊;將視頻幀的中心區(qū)域與匹配塊之間 的位置矢量作為運動矢量。
13. 權利要求8至12中任一項所述的移動終端,其特征在于,所述清晰幀判斷單元包括 運動到靜止確定模塊和角點檢測模塊; 所述運動到靜止確定模塊,判斷視頻幀運動狀態(tài)是否為運動到靜止,如果是,則向所述 角點檢測模塊發(fā)送啟動指令; 所述角點檢測模塊,接收來自所述運動到靜止確定模塊的啟動指令,計算出視頻幀的 角點特征數(shù)目;判斷角點特征數(shù)目是否大于角點數(shù)目閾值,如果是,則確定為清晰幀圖像, 將清晰幀圖像上傳到云端服務器;否則,確定為模糊幀圖像。
【文檔編號】H04N19/56GK104144345SQ201310428930
【公開日】2014年11月12日 申請日期:2013年9月18日 優(yōu)先權日:2013年9月18日
【發(fā)明者】劉驍, 丁劍, 劉海龍, 陳波 申請人:騰訊科技(深圳)有限公司