本公開總體上涉及視頻處理,并且更具體地涉及視頻中的移動對象檢測。
背景技術:
檢測視頻中的諸如人物、汽車等移動對象在諸如智能視頻監(jiān)控、交通監(jiān)控、車輛導航和人機交互等視頻分析中起重要作用。在視頻分析過程中,移動對象檢測的結果可以被輸入到如對象識別、對象跟蹤、行為分析等模塊中用于進一步處理。因此,移動對象檢測的高性能是成功視頻分析的關鍵。
在移動對象檢測中,背景的檢測是一個基本問題。在很多用于視頻中的移動對象檢測的傳統(tǒng)方法中,由于改變的背景,檢測精度受到限制。更具體地,如果視頻場景的背景包括水波紋或晃動的樹,則移動對象的檢測容易出錯。此外,背景中的照明變化、相機運動和/或其他類型的噪聲也可能對移動對象檢測產生負面影響。由于背景的變化,在傳統(tǒng)解決方案中,背景的多個部分可能被分類為移動對象,而前景的多個部分可能被歸類為背景。
技術實現(xiàn)要素:
總體上,本發(fā)明的實施例提供了一種用于視頻中的移動對象檢測的解決方案。
在一個方面,本發(fā)明的一個實施例提供了一種計算機實現(xiàn)的方法。該方法包括:以非線性方式將視頻中的多個幀從初始圖像空間轉換到高維度圖像空間;在高維度圖像空間中對多個幀的背景建模;以及基于高維度圖像空間中的多個幀的背景的建模來檢測多個幀中的移動對象。
在另一方面,本發(fā)明的一個實施例提供一種計算機實現(xiàn)的裝置。該裝置包括:被配置為以非線性方式將視頻中的多個幀從初始圖像空間轉換到高維度圖像空間的圖像轉換器;被配置為在高維度圖像空間中對多個幀的背景建模的建模器;以及被配置為基于高維度圖像空間中的多個幀的背景的建模來檢測多個幀中的移動對象的移動對象檢測器。
通過以下描述,應當理解,根據(jù)本發(fā)明的示例實施例,視頻中的幀可以被轉換到非常高維度的圖像空間中。通過使用更強大的用于描述諸如改變的背景、照明變化、相機運動、噪聲等復雜因素的非線性模型,本發(fā)明的實施例對于在復雜的情況下檢測移動對象更加魯棒和準確。此外,本發(fā)明的實施例實現(xiàn)了較少的假警報和高檢測率。
附圖說明
圖1示出了根據(jù)本發(fā)明的一個實施例的檢測視頻中的移動對象的方法的流程圖;
圖2a-圖2c示出了通過傳統(tǒng)方法和本發(fā)明的一個實施例獲得的移動對象檢測的結果;
圖3示出了根據(jù)本發(fā)明的一個實施例的檢測視頻中的移動對象的裝置的框圖;以及
圖4示出了適于實現(xiàn)本發(fā)明的示例實施例的示例計算機系統(tǒng)的框圖。
在整個附圖中,相同或相應的附圖標記表示相同或相應的部分。
具體實施方式
現(xiàn)在將參考若干示例實現(xiàn)來討論本發(fā)明的示例實施例。應當理解,這些實現(xiàn)被討論,僅為了使本領域技術人員能夠更好地理解并且從而實現(xiàn)本發(fā)明的實施例,而不是提出對本發(fā)明的范圍的任何限制。
如本文中使用的,術語“包括”及其變型應當被視為開放性術語,其意思是“包括但不限于”。術語“或”應當被視為“和/或”,除非上下文另外明確指出。術語“基于”應當被視為“至少部分基于”。術語“一個實現(xiàn)方式”和“實現(xiàn)方式”應當被視為“至少一個實現(xiàn)方式”。術語“另一實現(xiàn)方式”應當被視為“至少一個其他實現(xiàn)方式”。術語“第一”、“第二”、“第三”等可以用于指代不同或相同的對象。下面可以包括其他顯式和隱式定義。
傳統(tǒng)上,使用線性模型來完成移動對象檢測中的背景建模。線性模型的基本假設是背景遵循高斯分布。然而,發(fā)明人已經發(fā)現(xiàn),在實踐中通常不是這種情況。因此,線性模型無法充分地描述變化的背景、照明、像機運動、噪聲等復雜因素。本發(fā)明的示例實施例使用非線性模型來對視頻中的幀的背景建模。通過使用在描述復雜因素意義上比線性方法更好的非線性模型,可以提高視頻中的移動對象檢測的準確性和性能。
通常,通過將正被處理的視頻的原始幀或圖像轉換或映射到較高維度空間中來實現(xiàn)背景的非線性建模。通過在該高維度圖像空間中對轉換后的幀的背景進行建模,可以有效和高效地進行初始背景的非線性建模。
為了討論,定義如下多個符號。移動對象檢測的輸入是視頻中的一系列幀或圖像,表示為
目的是找到幀xt中的(多個)移動對象或前景的位置。在本公開的上下文中,術語“前景”和“移動對象”可以可互換地使用。在一個實施例中,前景位置的定位由前景指示符向量s∈{0,1}n來表示。s的像素i是si,其等于0或1,其中si=1表示幀xt中的像素i是前景,而si=0表示幀xt中的像素i是背景。也就是,
可以根據(jù)前景指示符向量來確定前景的像素值:
其中ps表示前景提取算子。為了討論,前景提取算子可以表示為
其中
現(xiàn)在將討論本發(fā)明的一些示例實施例。首先對圖1進行參考,圖1示出了檢測視頻中的移動對象的方法100的流程圖。根據(jù)本發(fā)明的實施例,視頻可以是任何合適的格式。視頻可以通過目前已知的或將來開發(fā)的任何合適的技術被壓縮或編碼。
如圖所示,方法100在步驟110進入,在步驟110,以非線性方式將視頻中的多個幀[xt-t,xt-t-1,...,xt-2,xt-1,xt]轉換到高維度圖像空間中。根據(jù)本發(fā)明的實施例,高維度圖像空間的維度m可以非常高。理論上,維度甚至可以無限大。例如,在一個實施例中,可以選擇m的值使得m遠大于每幀中的像素的數(shù)目。以這種方式,可以更好地表征和建模低維度圖像空間中的幀之間的非線性相關性。
在一個實施例中,為了轉換幀,可以使用被表示為φ的非線性轉換或映射函數(shù)??梢越Y合本發(fā)明的實施例來使用任何合適的映射函數(shù)。具體地,在一個實施例中,可以使用滿足mercer定理的映射函數(shù)以保證轉換的緊湊性和收斂性。
通過應用映射函數(shù),將初始圖像空間中的幀轉換到高維度圖像空間中,從而獲得多個轉換后的幀[φ(xt-t),…,φ(xt-1),φ(xt)]。具體地,在一個實施例中,通過選擇用于映射函數(shù)φ(x)的適當參數(shù),轉換后的幀[φ(xt-t),…,φ(xt-1),φ(xt)]可以是線性的,并且因此可以更容易地描述,這將在下面討論。然而,應當理解,轉換后的幀[φ(xt-t),…,φ(xt-1),φ(xt)]在高維度圖像空間中不一定是線性的。本發(fā)明的范圍在這方面不受限制。
具體地,在一個實施例中,可以將幀轉換到高維度圖像空間中而不顯式地定義映射函數(shù)。例如,在一個實施例中,可以通過使用適當?shù)暮撕瘮?shù)來描述轉換后的幀及其建模。下面將討論這方面的示例實施例。
然后,方法100進行到步驟120,其中在高維度圖像空間中對多個幀的背景進行建模。
傳統(tǒng)上,假設幀的背景遵循高斯分布,并且因此通過線性轉換矩陣
其中
從等式(4)和(5)可以看出,背景和基向量之間的關系總是線性的。然而,幀[xt-t,xt-t-1,...,xt-2,xt-1,xt]可能不是線性的,例如,在存在變化的背景、照明、相機運動、噪聲等的情況下。本發(fā)明人的實驗已經發(fā)現(xiàn),傳統(tǒng)的線性模型不能魯棒地描述這種復雜因素。不準確的背景建模又會降低前景中的移動對象的檢測率。
相反,根據(jù)本發(fā)明的實施例,初始幀在步驟110被轉換到高維度圖像空間中,并且在步驟120在具有非常高的維度的圖像空間中被建模。這樣,實現(xiàn)了初始幀的背景的非線性建模。就此而言,幀的相關性可以更好地被表征,從而更準確地標識背景和前景(移動對象)。
具體地,如上所述,在一個實施例中,轉換后的幀在高維度圖像空間中可以是線性的。在本實施例中,基向量uj可以如下計算為轉換后的幀的背景的線性和:
其中
這些基向量uj一起形成線性轉換矩陣
其中
應當理解,在操作效率和計算復雜性方面,在高維度圖像空間中使用線性模型對轉換后的幀的背景進行建模將是有益的。但是,這并不是必需的。在備選實施例中,可以在高維度圖像空間中使用任何非線性模型來近似轉換后的幀的背景。
仍然參考圖1,方法100進行到步驟130,其中基于高維度圖像空間中的幀的背景的建模來檢測一個或多個移動對象(前景)。
在一個實施例中,在步驟130,可以基于在步驟120的建模來定義目標函數(shù)。更具體地,目標函數(shù)至少表征幀的背景的建?;蚪浦械恼`差。作為示例,在以線性方式對轉換后的幀的背景建模的實施例中,目標函數(shù)可以如下定義:
將等式(6)代入等式(8)得到:
在一些實施例中,可以在目標函數(shù)中使用一個或多個其他相關因子。例如,在一個實施例中,可以考慮前景(移動對象)的面積。通常,期望每幀中的移動對象的面積低于預定義的閾值,因為太大的移動對象可能表示不準確的檢測。在一個實施例中,面積項可以由下式給出:
larea=||s||1,(10)
其中||·||1表示1-范數(shù)算子。
另外地或備選地,在一個實施例中,可以考慮多個幀上的移動對象的連接性。應當理解,移動對象的軌跡在兩個相連幀之間通常是連續(xù)的。為了測量對象連接性,在一個實施例中,連接性可以如下定義:
其中n(i)是像素i的鄰居集合。
在一個實施例中,可以如下將建模誤差、前景面積和連接性組合在一起以如下定義目標函數(shù):
l=lbackground+βlarea+γlconnectivity,(12)
其中β和γ表示權重并且可以根據(jù)具體的要求和用例來設置。通過將等式(9)、(10)和(11)代入等式(12),目標函數(shù)表示為:
應當理解,僅為了說明的目而討論等式(13)中所示的目標函數(shù),而不提出對本發(fā)明的范圍的任何限制。在其他實施例中,可以在目標函數(shù)中使用任何附加或備選因子。此外,如上所述,可以簡單地使用近似誤差lbackground作為目標函數(shù)。
在一個實施例中,可以通過使目標函數(shù)最小化來檢測幀的背景。為此,在一個實施例中,可以直接求解可以最小化目標函數(shù)l的前景指示符向量s、系數(shù)
更具體地,給定諸如等式(13)中所示的目標函數(shù),目的是求解當s和yi固定時的
kij=k(xi,xj)。(14)
核函數(shù)可以是任何形式,只要所得到的核矩陣k是半正定的。在一個實施例中,核函數(shù)的示例如下所示:
其中σ是可以憑經驗選擇的參數(shù)。應當理解,等式(15)中所示的核函數(shù)僅僅出于說明的目的被給出,而沒有對本發(fā)明的范圍提出任何限制。在其他實施例中,也可以使用諸如高斯核函數(shù)、徑向基函數(shù)等任何合適的核函數(shù)。
在一個實施例中,可以通過求解以下特征分解問題來實現(xiàn)目標函數(shù)的優(yōu)化:
kα=λα,(16)
其中λ和α分別表示特征值和特征向量。應當理解,存在總共d個特征值λ1,...,λd。在一個實施例中,可以按升序排列特征值,使得λ1>λ2>…λd。特征向量αi對應于特征值λi。αi的元(entry)j是
給定s和
將等式(6)代入等式(17)得到:
從等式(18)可以看出,可以通過使用核函數(shù)來確定yi,而無需明確地定義或應用映射函數(shù)。
接下來,在yi和
其中
因此,等式(19)可以如下被公式化為核函數(shù)
其中cij表示系數(shù),c表示與數(shù)據(jù)無關的常數(shù)。因此,使用核函數(shù)將目標函數(shù)的至少一部分(即近似誤差lbackground)和幀的背景相關聯(lián)。
在一個實施例中,如上所述,例如,可以通過在等式(1)中定義的前景指示符s來標識或指示幀中的前景和背景部分。基于等式(21),在一個實施例中,可以至少部分地通過前景指示符來表達目標函數(shù)。也就是說,借助于核函數(shù),可以將目標函數(shù)與和多個幀中的每個幀中的每個像素相關的前景指示符相關聯(lián),其中前景指示符指示相關像素是否屬于移動對象(前景)。
為了討論,假設核函數(shù)是等式(15)的形式。通過使用泰勒擴展,可以將核函數(shù)近似為:
其中xiz表示幀i中的像素z的值。通過將等式(22)代入等式(23),如等式(19)中定義的lbackground可以表示如下:
其中
為了討論,假設目標函數(shù)是等式(13)的形式。也就是說,除了lbackground之外,目標函數(shù)還包括與移動對象的面積和連接性有關的項。基于等式(24)和(13),目標函數(shù)l可以寫為:
其中sz是s的元z??梢钥闯觯仁?26)是圖形切割的標準形式。在一個實施例中,通過使用眾所周知的圖形切割算法,可以有效地獲得最佳解s。
在使用核函數(shù)的一個實施例中,方法100可以通過下表中所示的偽代碼來實現(xiàn)。
表1
應當理解,表1中的偽代碼被給出僅用于說明的目的,而沒有對本發(fā)明的范圍提出任何限制。在實踐中,可以進行各種修改或變化。
通過使用更強大的用于描述諸如改變的背景(例如,水波紋和晃動的樹)、照明變化、相機運動、噪聲等復雜因素的非線性模型,本發(fā)明的實施例對于在復雜的情況下檢測移動對象更加魯棒和準確。所提出的方法實現(xiàn)了較少的假警報和高檢測率。
圖2a-圖2c示出了移動對象檢測的示例。圖2a示出了具有動態(tài)雨狀水點的視頻中的幀。圖2b是移動對象檢測的傳統(tǒng)方法的結果。在圖2b中可以看出,噴水被錯誤地分類為移動對象。相反,在通過如圖2c所示的本發(fā)明的一個實施例獲得的結果中,噴水從前景被移除,并且移動的人被正確地檢測到。
圖3示出了根據(jù)本發(fā)明的一個實施例的用于移動對象檢測的計算機實現(xiàn)的裝置的框圖。如圖所示,裝置300包括被配置為以非線性方式將視頻中的多個幀從初始圖像空間轉換到高維度圖像空間的圖像轉換器310;被配置為在高維度圖像空間中對多個幀的背景建模的建模器320;以及被配置為基于高維度圖像空間中的多個幀的背景的建模來檢測多個幀中的移動對象的移動對象檢測器330。
在一個實施例中,高維度圖像空間的維度大于多個幀中的每個幀中的像素的數(shù)目。
在一個實施例中,建模器320可以包括被配置為在高維度圖像空間中使用線性模型對多個轉換后的幀的背景建模的非線性建模器325,多個轉換后的幀通過以非線性方式對多個幀進行轉換而被獲得。
在一個實施例中,裝置300還可以包括被配置為確定表征多個幀的背景的建模的誤差的目標函數(shù)的目標函數(shù)控制器340。在本實施方式中,移動對象檢測器330被配置為基于目標函數(shù)來檢測移動對象。
在一個實施例中,目標函數(shù)還可以表征以下中的至少一項:多個幀中的移動對象的面積以及跨多個幀的移動對象的連接性。
在一個實施例中,裝置300還可以包括被配置為確定與高維度圖像空間相關聯(lián)的核函數(shù)集合的核函數(shù)控制器350。在此實施例中,目標函數(shù)控制器340被配置為使用核函數(shù)集合將目標函數(shù)的至少一部分與多個幀的背景相關聯(lián),并且移動對象檢測器330被配置為通過最小化目標函數(shù)來檢測移動對象。
在一個實施例中,目標函數(shù)控制器340被配置為使用核函數(shù)集合來將目標函數(shù)與和多個幀中的每個幀中的每個像素相關的前景指示符相關聯(lián),其中前景指示符指示相關像素是否屬于移動對象。
圖4示出了適用于實現(xiàn)本發(fā)明的示例實施例的示例計算機系統(tǒng)400的框圖。計算機系統(tǒng)400可以是固定類型的機器,諸如臺式個人計算機(pc)、服務器、主機等。備選地,計算機系統(tǒng)400可以是移動類型的機器,諸如移動電話、平板pc、膝上型計算機、智能電話、個人數(shù)字助理(pda)等。
如圖所示,計算機系統(tǒng)400包括諸如中央處理單元(cpu)401等處理器,其能夠根據(jù)存儲在只讀存儲器(rom)402中的程序或從存儲單元408加載到隨機存取存儲器(ram)403中的程序來執(zhí)行各種處理。在ram403中,還根據(jù)需要存儲在cpu401執(zhí)行各種處理等時所需的數(shù)據(jù)。cpu401、rom402和ram403經由總線404彼此連接。輸入/輸出(i/o)接口405也連接到總線404。
以下部件連接到i/o接口405:輸入單元406,包括鍵盤、鼠標等;輸出單元407,包括諸如陰極射線管(crt)、液晶顯示器(lcd)等的顯示器以及揚聲器等;存儲單元408,包括硬盤等;以及通信單元409,包括網(wǎng)絡接口卡,諸如lan卡、調制解調器等。通信單元409經由諸如互聯(lián)網(wǎng)等網(wǎng)絡進行通信處理。驅動器410也根據(jù)需要連接到i/o接口405。諸如磁盤、光盤、磁光盤、半導體存儲器等可移除介質411根據(jù)需要安裝在驅動器410上,從而從其中讀取的計算機程序根據(jù)需要被安裝到存儲單元408中。
具體地,根據(jù)本發(fā)明的示例實施例,上面參照圖1和表1描述的處理可以由計算機程序來實現(xiàn)。例如,本發(fā)明的實施例包括計算機程序產品,其包括在機器可讀介質上有形地實施的計算機程序,計算機程序包括用于執(zhí)行方法100的程序代碼和/或表1所示的偽代碼。在這樣的實施例中,可以經由通信單元409從網(wǎng)絡下載和安裝計算機程序和/或從可移除介質411安裝計算機程序。
至少一部分地由一個或多個硬件邏輯部件來執(zhí)行本文中描述的功能。例如而非限制,可以使用的說明性類型的硬件邏輯部件包括現(xiàn)場可編程門陣列(fpga)、專用集成電路(asic)、專用標準產品(assp)、系統(tǒng)上芯片系統(tǒng)(soc)、復雜可編程邏輯器件(cpld)等。
本發(fā)明的各種實施例可以以硬件或專用電路、軟件、邏輯或其任何組合來實現(xiàn)。一些方面可以以硬件來實現(xiàn),而其他方面可以以可以由控制器、微處理器或其他計算設備執(zhí)行的固件或軟件來實現(xiàn)。雖然本發(fā)明的實施例的各個方面被示出和描述為框圖、流程圖或使用一些其他圖形表示來示出和描述,但是應當理解的是,作為非限制性示例,本文中描述的框、裝置、系統(tǒng)、技術或方法可以以硬件、軟件、固件、專用電路或邏輯、通用硬件或控制器、或者其他計算設備、或其某種組合來實現(xiàn)。
作為示例,可以在實際或虛擬目標處理器上的設備中執(zhí)行的機器可執(zhí)行指令(諸如被包括在程序模塊中的指令)的一般上下文中描述本發(fā)明的實施例。通常,程序模塊包括執(zhí)行特定任務或實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、庫、對象、類、組件、數(shù)據(jù)結構等。程序模塊的功能在各種實現(xiàn)中可以根據(jù)需要在程序模塊之間組合或分開。用于程序模塊的機器可執(zhí)行指令可以在本地或分布式設備中執(zhí)行。在分布式設備中,程序模塊可以位于本地和遠程存儲介質中。
用于執(zhí)行本發(fā)明的方法的程序代碼可以以一種或多種編程語言的任何組合來編寫。這些程序代碼可以被提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器或控制器,使得程序代碼在由處理器或控制器執(zhí)行時引起在流程圖和/或框圖中規(guī)定的功能/操作被實現(xiàn)。程序代碼可以完全在機器上執(zhí)行,部分地在機器上執(zhí)行,作為獨立的軟件包執(zhí)行,部分地在機器上并且部分地在遠程機器上執(zhí)行,或者完全在遠程機器或服務器上執(zhí)行。
在本公開的上下文中,機器可讀介質可以是可以包含或存儲由指令執(zhí)行系統(tǒng)、裝置或設備使用或與指令執(zhí)行系統(tǒng)、裝置或設備結合使用的程序的任何有形介質。機器可讀介質可以是機器可讀信號介質或機器可讀存儲介質。機器可讀介質可以包括但不限于電子、磁性、光學、電磁、紅外或半導體系統(tǒng)、裝置或設備、或上述的任何合適的組合。機器可讀存儲介質的更具體示例包括具有一條或多條電線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、可擦除可編程讀取(eprom或閃速存儲器)、光纖、便攜式光盤只讀存儲器(cd-rom)、光存儲設備、磁存儲設備、或上述的任何合適的組合。
此外,雖然以特定的次序描繪操作,但是這不應被理解為要求以所示的特定次序或順序執(zhí)行這樣的操作,或者執(zhí)行所有所示的操作以實現(xiàn)期望的結果。在某些情況下,多任務和并行處理可能是有利的。同樣地,雖然上述討論中包含若干具體的實現(xiàn)細節(jié),但是這些不應當被解釋為對本發(fā)明的范圍的限制,而是對可以特定于特定實現(xiàn)方式的特征的描述。在單獨實現(xiàn)的上下文中描述的某些特征也可以在單個實現(xiàn)方式中組合地實現(xiàn)。相反,在單個實現(xiàn)方式的上下文中描述的各種特征也可以在多個實現(xiàn)方式中分開地或以任何合適的子組合來實現(xiàn)。
雖然已經以特定于結構特征和/或方法動作的語言描述了本發(fā)明,但是應當理解,在所附權利要求中定義的本發(fā)明不必限于上述具體的特征或動作。相反,上述具體的特征和動作被公開作為實現(xiàn)權利要求的示例形式。