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