本發(fā)明有關(guān)于圖像分析,更具體的,有關(guān)于一種區(qū)域增長方法。
背景技術(shù):
近幾年深度相機(jī)(depthcamera)在游戲中變得流行起來。在計算機(jī)視覺系統(tǒng)(computervisionsystem)中執(zhí)行任何進(jìn)一步的圖像處理之前常常要檢測對象(object)(例如深度相機(jī)前的玩家)并對對象進(jìn)行標(biāo)記。在大多數(shù)情況中相機(jī)通常為固定的,利用背景相減算法(backgroundsubtractionalgorithm)可輕易地將對象從背景中分離出來。然而,背景相減算法并不能給出部分幀(frame)的完好分離對象。例如,由于背景相減算法可能的限制,從深度圖像(depthimage)檢測到的人像可能缺少身體的某些部分,例如頭部、手或腿。如果直接將上述不完整的結(jié)果反饋至處理階段(processingstage),將會對性能產(chǎn)生不良影響。因此在將這些可能不完整的對象傳輸至處理階段之前,可執(zhí)行傳統(tǒng)的區(qū)域增長算法(regiongrowingalgorithm)來恢復(fù)(recover)丟失的部分。
區(qū)域增長是常用的技術(shù)手段,用于將無序像素(unorderedpixel)分割為多個分塊區(qū)域(segmentedregion)。傳統(tǒng)的區(qū)域增長方法已廣泛運(yùn)用于強(qiáng)度圖像(intensityimages)和范圍圖像(rangeimage)(即深度圖像)中。大致上,區(qū)域增長的使用可分為兩種情況。一種是將整體圖像分割為不同區(qū)域;另一種是從整體圖像中分割出一些對象而保持剩余圖像完整。然而,傳統(tǒng)的圖像增長方法可能會遇到區(qū)域鏈(regionchaining)或過溢(overspill)的問題。其中,當(dāng)兩個區(qū)域增長為一個區(qū)域而實(shí)際上這兩個區(qū)域為彼此分離時即發(fā)生區(qū)域鏈問題。
區(qū)域增長也廣泛用于范圍圖像分割中。然而,范圍圖像分割的主要目標(biāo)是將多個像素標(biāo)記為不同的表面。對于大多數(shù)情況,一些表面為平面(planar),而另一些表面可能為曲面(curvedsurface)。如果考量中的對象不能以預(yù)定義表面來表示,則分割結(jié)果常常并不令人滿意。此外,范圍圖像分割中使用的區(qū)域增長方法為計算密集型(computationallyintensive)的,該區(qū)域增長方法并不能在邊界處將同一層面(plane)上的兩個表面區(qū)分離開。
隨著價格相對低廉的深度相機(jī)的引入,深度圖像中的圖像分析正變得十分必要。對于許多應(yīng)用來說,對象分割(segmentationofobject)已成為一個重要的步驟且通過由種子區(qū)域(seededregion)開始的區(qū)域增長可有效實(shí)現(xiàn)對象分割。因此,需要提出一種新穎的區(qū)域增長算法,以有效地由種子開始區(qū)域增長且不產(chǎn)生區(qū)域鏈。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供一種區(qū)域增長方法以及具有標(biāo)記功能的區(qū)域增長方法。
本發(fā)明提供一種區(qū)域增長方法,包括:選擇當(dāng)前幀中的種子節(jié)點(diǎn)作為當(dāng)前幀中的區(qū)域的初始增長節(jié)點(diǎn);確定該種子節(jié)點(diǎn)周圍的相鄰像素的背景置信值;根據(jù)至少該背景置信值,使用處理單元以用于檢查是否在該區(qū)域中允許包括該相鄰像素。
本發(fā)明另提供一種區(qū)域增長方法,包括:選擇當(dāng)前幀中的種子節(jié)點(diǎn)作為當(dāng)前幀中的區(qū)域的初始增長節(jié)點(diǎn);確定該種子節(jié)點(diǎn)的特性值與當(dāng)前幀中該種子節(jié)點(diǎn)周圍的相鄰像素的特性值之間的第一差值;根據(jù)至少該第一差值,使用處理單元以用于檢查是否允許在該區(qū)域中包括該相鄰像素。
本發(fā)明又提供一種區(qū)域增長方法,包括:選擇當(dāng)前幀中的種子節(jié)點(diǎn)作為當(dāng)前幀中的區(qū)域的初始增長節(jié)點(diǎn);確定該種子節(jié)點(diǎn)周圍的相鄰像素的特性值與該種子節(jié)點(diǎn)的原始種子節(jié)點(diǎn)的背景模型值之間的第一差值;以及根據(jù)至少該第一差值,使用處理單元以用于檢查是否允許在該區(qū)域中包括該相鄰像素。
本發(fā)明再提供一種區(qū)域增長方法,包括:選擇當(dāng)前幀中的種子節(jié)點(diǎn)作為區(qū)域的初始增長節(jié)點(diǎn);當(dāng)在先前幀中將特定像素歸類為前景像素時,確定該當(dāng)前幀中的該相鄰像素的特性值與該先前幀中的該特定像素的特性值之間的差值,其中,該相鄰像素與該特定像素為同位像素;根據(jù)至少該差值,使用處理單元以用于檢查是否允許在該區(qū)域中包括該相鄰像素。
本發(fā)明另提供一種區(qū)域增長方法,包括:選擇當(dāng)前幀中的種子節(jié)點(diǎn)作為區(qū)域的初始增長節(jié)點(diǎn);檢查是否允許在該區(qū)域中包括當(dāng)前幀中的該種子節(jié)點(diǎn)周圍的相鄰像素;當(dāng)響應(yīng)該檢查的步驟將該當(dāng)前幀中的該相鄰像素歸類為背景像素且將先前幀中的特定像素歸類為前景像素時,確定該相鄰像素的特性值與該特定像素的特性值之間的差值,其中,該相鄰像素與該特定像素為同位像素;以及根據(jù)該差值選擇性地將該相鄰像素重新歸類為前景像素。
本發(fā)明又提供一種區(qū)域增長方法,包括:選擇當(dāng)前幀中的種子節(jié)點(diǎn)作為區(qū)域的初始增長節(jié)點(diǎn);使用處理單元以用于參考平表面檢測結(jié)果檢查是否該當(dāng)前幀中的該種子節(jié)點(diǎn)周圍的相鄰像素屬于所檢測的平表面,且相應(yīng)地產(chǎn)生檢查結(jié)果;當(dāng)該檢查結(jié)果指示該相鄰像素屬于該所檢測的平表面時,將該相鄰像素排除在該區(qū)域之外。
本發(fā)明還提供一種具有標(biāo)記功能的區(qū)域增長方法,包括:選擇當(dāng)前幀中的種子節(jié)點(diǎn)作為區(qū)域的初始增長節(jié)點(diǎn);使用處理單元以用于確定該當(dāng)前幀中的該種子節(jié)點(diǎn)的特性值與先前幀中的特定節(jié)點(diǎn)的特性值之間的差值;以及根據(jù)該差值確定分配給該種子節(jié)點(diǎn)的標(biāo)記,其中,該種子節(jié)點(diǎn)和該特定節(jié)點(diǎn)為同位節(jié)點(diǎn);檢查是否允許在該區(qū)域中包括該當(dāng)前幀中的該種子節(jié)點(diǎn)周圍的相鄰像素;以及響應(yīng)該檢查步驟當(dāng)允許在該區(qū)域中包括該相鄰像素時,由分配給該種子節(jié)點(diǎn)的該標(biāo)記設(shè)定該相鄰像素的標(biāo)記。
本發(fā)明提出的區(qū)域增長方法可有效地避免/減輕區(qū)域鏈或過溢的問題。
附圖說明
圖1為在背景建模階段獲取的背景置信值的分布示意圖;
圖2為應(yīng)用增長范圍限制的區(qū)域增長階段產(chǎn)生的區(qū)域增長結(jié)果的示意圖;
圖3為種子節(jié)點(diǎn)s與相鄰像素a之間的關(guān)系示意圖;
圖4為種子節(jié)點(diǎn)s與相鄰像素a之間的另一個關(guān)系示意圖;
圖5為根據(jù)本發(fā)明一個實(shí)施例的區(qū)域增長方法流程圖;
圖6為根據(jù)本發(fā)明一個實(shí)施例一種修改的區(qū)域增長方法與圖5所示的區(qū)域增長方法之間的差別部分示意圖;
圖7為根據(jù)本發(fā)明一個實(shí)施例另一種修改的區(qū)域增長方法與圖5所示的區(qū)域增長方法之間的差別部分示意圖;
圖8為根據(jù)本發(fā)明一個實(shí)施例地面檢測方法的流程圖;
圖9為根據(jù)本發(fā)明一個實(shí)施例另一種修改的區(qū)域增長方法與圖5所示的區(qū)域增長方法之間的差別部分示意圖;
圖10為根據(jù)本發(fā)明一個實(shí)施例另一種修改的區(qū)域增長方法與圖5所示的區(qū)域增長方法之間的差別部分流程圖;
圖11為根據(jù)本發(fā)明一個實(shí)施例的具有標(biāo)記功能的區(qū)域增長方法流程圖;
圖12為圖11的接續(xù)流程示意圖;
圖13為根據(jù)本發(fā)明一個實(shí)施例圖像處理裝置的方塊圖。
具體實(shí)施方式
在說明書及后續(xù)的權(quán)利要求當(dāng)中使用了某些詞匯來指稱特定的元件。所屬領(lǐng)域技術(shù)人員應(yīng)可理解,制造商可能會用不同的名詞來稱呼同樣的元件。本說明書及后續(xù)的權(quán)利要求并不以名稱的差異來作為區(qū)別元件的方式,而是以元件在功能上的差異來作為區(qū)別的基準(zhǔn)。在通篇說明書及后續(xù)的權(quán)利要求當(dāng)中所提及的「包括」為開放式的用語,故應(yīng)解釋成「包括但不限定于」。此外,「耦接」一詞在此包括任何直接及間接的電氣連接手段。因此,若文中描述第一裝置耦接于第二裝置,則代表該第一裝置可直接連接于該第二裝置,或透過其他裝置或連接手段間接地連接至該第二裝置。
通常,場景中需要被識別的對象在四周移動而背景保持固定。因此,可使用背景建模(backgroundmodeling)和背景相減法來識別移動對象。然而,在一些情形中,識別到的對象可能并不是完整的對象。例如,識別過程中檢測到了移動中的人的頭部,但并未檢測到身體的大部分。將這樣不完整的對象傳輸至后續(xù)的處理階段可能會導(dǎo)致許多種錯誤,例如不能進(jìn)行識別(failedrecognition)和追蹤(tracking)??蓪λ鶛z測到的人體的一部分執(zhí)行區(qū)域增長步驟以恢復(fù)對象未檢測到的部分。然而,如果不經(jīng)過仔細(xì)的考量,可能非常容易在區(qū)域增長步驟中同時將不需要的區(qū)域包括進(jìn)來。例如,當(dāng)人站在地板上且僅檢測到人的上半身部分時,如果對該檢測到的人體的上半身部分直接運(yùn)用傳統(tǒng)種子區(qū)域增長方法,則最大可能性地是最終的恢復(fù)對象將既包括人體又包括地板的一部分,即產(chǎn)生區(qū)域鏈問題。因此,本發(fā)明提出一種改進(jìn)的區(qū)域增長方法,該方法可減輕/避免區(qū)域鏈問題。具體地,本發(fā)明提出的區(qū)域增長方法使用具有新的/修改的步驟的種子區(qū)域增長方法框架來解決區(qū)域鏈問題。其中,種子區(qū)域增長方法框架將一些對象從整體圖像中分割出來而保留剩余的圖像完整。下面將討論會產(chǎn)生本發(fā)明提出的區(qū)域增長方法并使該方法可克服區(qū)域鏈問題的一些發(fā)現(xiàn)。
第一發(fā)現(xiàn)是對于許多幀而言背景是固定的。因此,背景大多數(shù)并不會發(fā)生改變,且背景還可能暫時被移動的對象所阻擋。背景建模階段用于構(gòu)建背景模型,同時也可根據(jù)所建立的背景模型的背景模型值來估計所有像素的背景置信值(backgroundconfidencevalue)。具體地,屬于背景的每個像素將具有高背景置信值,因此顯示出高的背景置信度。圖1為在背景建模階段獲取的背景置信值的分布示意圖。由圖1可見,黑暗區(qū)域中的像素具有較低的背景置信值,而明亮區(qū)域中的像素具有較高的背景置信值。因此,該背景置信值分布表示明亮區(qū)域具有較高的置信度,是背景的一部分。在區(qū)域增長階段,如果一個像素具有高的背景置信值,說明該像素更可能是背景像素且應(yīng)該停止將區(qū)域增長至該像素。換言之,如果確定一個像素為背景像素,可在區(qū)域增長步驟中忽略該像素而不將該像素合并入種子區(qū)域。
第二發(fā)現(xiàn)是在很多情況下,尤其在深度圖像中,一個對象可能不會增長為距離一個種子節(jié)點(diǎn)(seedpoint)較遠(yuǎn)的非常大的區(qū)域,且一個對象更不會增長為距離多個種子節(jié)點(diǎn)較遠(yuǎn)的非常大的區(qū)域。對于一個深度圖像,參照種子節(jié)點(diǎn)的深度,被檢測對象在深度上可能僅在相對較小的范圍擴(kuò)展。如果應(yīng)用一些限制來定義在深度上一個區(qū)域可距離種子節(jié)點(diǎn)多遠(yuǎn),則可減輕/避免不希望出現(xiàn)的區(qū)域鏈。圖2為應(yīng)用增長范圍限制的區(qū)域增長階段產(chǎn)生的區(qū)域增長結(jié)果的示意圖。盡管應(yīng)用一些限制來定義在深度上一個區(qū)域可增長為距離種子節(jié)點(diǎn)多遠(yuǎn),區(qū)域增長階段仍然可進(jìn)行丟失部分的恢復(fù)而同時避免/減輕不希望出現(xiàn)的區(qū)域鏈。具體而言,上述操作的性能依賴于所選擇的種子節(jié)點(diǎn)數(shù)目。
第三發(fā)現(xiàn)假設(shè)背景模型用于檢測對象。圖3為種子節(jié)點(diǎn)s與相鄰像素a之間的關(guān)系示意圖。類似于前述的第二發(fā)現(xiàn),如果節(jié)點(diǎn)a距離前景(foreground)種子節(jié)點(diǎn)s不遠(yuǎn),則在節(jié)點(diǎn)a的背景模型值很有可能接近種子節(jié)點(diǎn)s處的背景模型值。在使用區(qū)域增長方法處理深度圖像的情況下,由于節(jié)點(diǎn)s為前景種子節(jié)點(diǎn),節(jié)點(diǎn)s的深度值depth(s)與背景模型值(即深度背景值)b(s)之間的差值(即深度距離)d1較大。在使用區(qū)域增長方法處理色彩圖像(colorimage)(即rgb圖像)的情況下,由于節(jié)點(diǎn)s為前景種子節(jié)點(diǎn),節(jié)點(diǎn)s的色彩值color(s)與背景模型值(即色彩背景值)b’(s)之間的差值(即色彩距離)d1’較大。根據(jù)第二發(fā)現(xiàn),如果節(jié)點(diǎn)a為前景像素且節(jié)點(diǎn)a與種子節(jié)點(diǎn)s距離不遠(yuǎn),即a與s之間的距離小,則節(jié)點(diǎn)a的深度值depth(a)與節(jié)點(diǎn)s的背景模型值b(s)之間的差值d2也較大,或者節(jié)點(diǎn)a的色彩值color(a)與節(jié)點(diǎn)s處的背景模型值b’(s)之間的差值d2’也較大。因此,如果差值d2/d2’反而較小,則很有可能節(jié)點(diǎn)a是背景像素而并非前景像素。因此,可使用像素a的深度/色彩值與種子節(jié)點(diǎn)s的背景模型值之間的差值d2/d2’作為指示元(indicator)以停止區(qū)域鏈。即,當(dāng)差值d2/d2’指示像素a很可能為背景像素時,則停止將區(qū)域增長至該像素。實(shí)際上,該第三發(fā)現(xiàn)非常有助于防止將身體的部分(例如腳)過溢至地板。
請注意上述的第二發(fā)現(xiàn)和第三發(fā)現(xiàn)并非在所有情況下都適用。然而,這兩個發(fā)現(xiàn)實(shí)際上確實(shí)可很好地抑制區(qū)域鏈問題。前述三個發(fā)現(xiàn)主要用于處理區(qū)域鏈問題,且上述方法都通過一些閾值(threshold)進(jìn)行控制。如果閾值過于寬松,則可能將一些不需要的區(qū)域包括進(jìn)區(qū)域;而如果閾值過于嚴(yán)格,則可能將一些需要的區(qū)域排除在外。實(shí)際上,嚴(yán)格的閾值通常比寬松的閾值好,這是因為恢復(fù)丟失的區(qū)域相比移除不需要的區(qū)域來說更容易。
而第四發(fā)現(xiàn)是在場景中通常存在平面表面(例如墻和地板),且平面表面通常為背景。區(qū)域鏈問題通常在區(qū)域增長結(jié)果中包括這些表面時發(fā)生。如果可以預(yù)先檢測到這些平面表面,則有助于防止將區(qū)域增長至這些平面表面。圖4為種子節(jié)點(diǎn)s與相鄰像素a之間的另一個關(guān)系示意圖。由圖4可以看出,節(jié)點(diǎn)a位于作為一部分背景的平面上。盡管節(jié)點(diǎn)a和種子節(jié)點(diǎn)s彼此非常接近,但應(yīng)該將背景節(jié)點(diǎn)a從由種子節(jié)點(diǎn)s開始增長的區(qū)域中排除。
根據(jù)上述發(fā)現(xiàn),本發(fā)明提出一些區(qū)域增長算法,如下所述。
請參考圖5,圖5為根據(jù)本發(fā)明一個實(shí)施例的區(qū)域增長方法流程圖。在實(shí)現(xiàn)大致相同結(jié)果的前提下,本發(fā)明所述區(qū)域增長方法的步驟并不需嚴(yán)格按照圖5所示的順序。可將該示例區(qū)域增長方法概括如下。
步驟500:開始。
步驟502:從隊列q獲取種子節(jié)點(diǎn)s。
步驟504:選擇所獲取種子節(jié)點(diǎn)s周圍的相鄰像素n,其中,相鄰像素n和種子節(jié)點(diǎn)s都位于相同的幀內(nèi)。
步驟506:檢查是否相鄰像素n需要進(jìn)行后面的區(qū)域增長過程,如果是,流程進(jìn)行至步驟508;否則,流程進(jìn)行至步驟520。
步驟508:確定/計算相鄰像素n的背景置信值c(n)。
步驟510:確定/計算相鄰像素n的特性值與種子節(jié)點(diǎn)s的特性值之間的差值d1,其中,當(dāng)將區(qū)域增長方法應(yīng)用于深度地圖時,所述每個特性值為深度值;而當(dāng)將區(qū)域增長方法應(yīng)用于色彩圖像(例如rgb圖像)時,所述每個特性值為色彩值。因此,d1=|depth(n)-depth(s)|,或者d1=|color(n)-color(s)|。
步驟512:確定/計算相鄰像素n的特性值與種子節(jié)點(diǎn)s的原始種子節(jié)點(diǎn)(originalseedpoint)o(s)的背景模型值之間的差值d2。即,當(dāng)將區(qū)域增長方法運(yùn)用于深度地圖時,d2=|depth(n)-b(o(s))|;而當(dāng)將區(qū)域增長方法運(yùn)用于色彩圖像時,d2=|color(n)-b’(o(s))|。
步驟514:根據(jù)函數(shù)f()來確定/計算組合值f。即,f=f(c(n),d1,d2),其中,d1andd2分別作為函數(shù)f()的參數(shù)。
步驟516:通過將組合值f與預(yù)定義閾值th2進(jìn)行比較,檢查是否組合值f小于預(yù)定義的閾值th2。如果是,則流程進(jìn)行至步驟518;如果否,則流程進(jìn)行至步驟520。
步驟518:確定相鄰像素n應(yīng)該包括在由種子節(jié)點(diǎn)s開始增長的區(qū)域,然后將相鄰像素n加入至區(qū)域中,并將相鄰像素n放入隊列q中以作為新的種子節(jié)點(diǎn),其中,新加入的種子節(jié)點(diǎn)(即相鄰像素n)的原始種子節(jié)點(diǎn)仍為o(s)。
步驟520:檢查是否已處理所選擇種子節(jié)點(diǎn)s的所有相鄰像素。如果是,流程進(jìn)行至步驟522;否則,流程進(jìn)行至步驟504以選擇種子節(jié)點(diǎn)s周圍的另一個相鄰像素。
步驟522:檢測是否隊列q為空。如果是,流程進(jìn)行至步驟524;否則,流程進(jìn)行至步驟502以從隊列q中獲取下一個種子節(jié)點(diǎn)。
步驟524:結(jié)束。
在開始將區(qū)域增長方法應(yīng)用于當(dāng)前幀時,將當(dāng)前幀的多個原始種子節(jié)點(diǎn)放入隊列q,其中,每次執(zhí)行步驟502時,是從隊列q中逐個地選擇各個原始種子節(jié)點(diǎn)。在步驟502中,從隊列q中獲取一個種子節(jié)點(diǎn)s。需注意的是,在隊列q中的所有原始種子節(jié)點(diǎn)已經(jīng)順序地被選擇并從隊列q移除之前,在步驟502中所獲取的種子節(jié)點(diǎn)s將作為原始的種子節(jié)點(diǎn)。換言之,在隊列q中不再包括原始種子節(jié)點(diǎn)之后,步驟502中獲取的任何種子節(jié)點(diǎn)s將成為前景像素并被識別且合并至由其中一個原始種子節(jié)點(diǎn)開始增長的區(qū)域中,然后將該種子節(jié)點(diǎn)s加入至隊列q作為新的種子節(jié)點(diǎn)。
在步驟504中,選擇種子節(jié)點(diǎn)周圍的一個相鄰像素n。例如,可將靠近種子節(jié)點(diǎn)s且未被處理的像素選為相鄰像素n。然后,根據(jù)流程將要檢查是否相鄰像素n應(yīng)進(jìn)行后續(xù)的區(qū)域增長過程。在一個示例設(shè)計中,可對相鄰像素n與種子節(jié)點(diǎn)s之間運(yùn)用簡單比較。例如,可將深度/色彩差值d1(即,d1=|depth(n)-depth(s)|或d1=|color(n)-color(s)|)與預(yù)設(shè)閾值th1進(jìn)行比較?;蛘?,根據(jù)實(shí)際設(shè)計的考慮,可在步驟506中運(yùn)用其他更復(fù)雜的比較。
假設(shè)步驟506運(yùn)用了上述的簡單比較。當(dāng)比較結(jié)果發(fā)現(xiàn)深度/色彩差值d1大于預(yù)定義閾值th1,這說明相鄰像素n并不是與種子節(jié)點(diǎn)s相似的前景像素,且不可將相鄰像素n包括在由種子節(jié)點(diǎn)s開始增長的區(qū)域中。因此,將丟棄相鄰像素n,跳過后面的區(qū)域增長過程,且將該區(qū)域增長方法的流程直接進(jìn)行至步驟520。
然而,當(dāng)深度/色彩差值d1并不大于預(yù)設(shè)閾值th1時,這說明相鄰像素n可能是與種子節(jié)點(diǎn)s類似的前景像素,且需要將相鄰像素n包括在由種子節(jié)點(diǎn)s開始增長的區(qū)域中。然而,為避免/減輕區(qū)域鏈問題,還需要執(zhí)行包括步驟508-516在內(nèi)的后面的區(qū)域增長程序,以用于檢查相鄰像素n是否允許被包括在由種子節(jié)點(diǎn)s開始增長的區(qū)域中。
根據(jù)前述的第一發(fā)現(xiàn),在步驟508中獲取相鄰像素n的背景置信值c(n)。如上所述,可在背景建模階段構(gòu)建背景置信值。存在多種可能方法來建立背景置信值。在當(dāng)前像素構(gòu)建背景置信值的其中一種可行方法是通過如下方式計算一個值:
背景置信值=(作為背景的當(dāng)前深度的#-無意義的#)/作為背景的當(dāng)前像度的#
而背景置信度估計的另一種方式是建立一個場景,例如首先偵測場景中的所有表面,然后給這些表面上的像素分配高的背景置信值。
此外,根據(jù)前述的第二發(fā)現(xiàn),在步驟510中計算差值d1。而且,根據(jù)前述的第三發(fā)現(xiàn),在步驟512中計算差值d2。差值d1和d2提供有利于防止區(qū)域鏈的額外信息。
在獲取c(n)、d1和d2之后,相應(yīng)地計算組合值f。舉例而言,函數(shù)f()可以為加權(quán)平均函數(shù)(weightedaveragefunction),該加權(quán)平均函數(shù)通過將加權(quán)因子w1、w2、w3用于輸入?yún)?shù)(即c(n)、d1及d2)而產(chǎn)生組合值f。換句話說,f=w1*c(n)+w2*d1+w3*d2。請注意,可將前述發(fā)現(xiàn)的一或多個應(yīng)用于區(qū)域鏈/過溢檢查。即,根據(jù)實(shí)際設(shè)計考慮,可將每個加權(quán)因子w1、w2、w3設(shè)定為零值或非零值。例如,當(dāng)將所有的加權(quán)因子w1、w2、w3設(shè)定為0時,則為不進(jìn)行區(qū)域鏈/過溢檢查。當(dāng)將加權(quán)因子w1設(shè)定為0時,則在進(jìn)行區(qū)域鏈/過溢檢查時不考量第一發(fā)現(xiàn)。當(dāng)將加權(quán)因子w2設(shè)定為0時,則在進(jìn)行區(qū)域鏈/過溢檢查時不考量第二發(fā)現(xiàn)。當(dāng)將加權(quán)因子w3設(shè)定為0時,則在進(jìn)行區(qū)域鏈/過溢檢查時不考量第三發(fā)現(xiàn)。
然后,在步驟516中,通過將組合值f和預(yù)設(shè)閾值th2進(jìn)行比較來完成區(qū)域鏈/過溢的檢查。當(dāng)組合值f小于預(yù)設(shè)閾值th2時,這說明相鄰像素n通過了區(qū)域鏈/過溢檢查,且應(yīng)該將相鄰像素n合并入由種子節(jié)點(diǎn)s開始增長的區(qū)域。因此,在步驟518中,將相鄰像素n加入該區(qū)域并放入隊列n以作為新的種子節(jié)點(diǎn)。需注意,新加入種子節(jié)點(diǎn)(即相鄰像素n)和種子節(jié)點(diǎn)s的原始種子節(jié)點(diǎn)相同。即,由于相鄰節(jié)點(diǎn)n和種子節(jié)點(diǎn)s都合并入相同區(qū)域,因此相鄰像素n的原始種子節(jié)點(diǎn)是從節(jié)點(diǎn)s的原始種子節(jié)點(diǎn)繼承而來。請注意,如果種子節(jié)點(diǎn)s為原始種子節(jié)點(diǎn),則原始種子節(jié)點(diǎn)o(s)將等于種子節(jié)點(diǎn)s。
在執(zhí)行步驟520時,步驟520用于檢查是否完成了當(dāng)前所選種子節(jié)點(diǎn)s的區(qū)域增長。具體地,如果已處理所選種子節(jié)點(diǎn)s的所有相鄰像素,則完成了自種子節(jié)點(diǎn)s的區(qū)域增長。然而,如果還存在所選擇種子節(jié)點(diǎn)s的至少一個相鄰像素未被處理,則流程返回至步驟504以繼續(xù)處理所選擇種子節(jié)點(diǎn)s的下一個相鄰像素。
在執(zhí)行步驟522時,步驟522用于檢查是否完成了當(dāng)前幀的區(qū)域增長。具體地,如果已處理隊列q中的所有種子節(jié)點(diǎn)從而使隊列q為空,則完成了當(dāng)前幀的區(qū)域增長(步驟524)。然而,如果隊列q中還存在至少一個種子節(jié)點(diǎn),則流程將返回至步驟502以繼續(xù)處理從隊列q中獲取的下一個種子節(jié)點(diǎn)。
圖5中所示的區(qū)域增長方法可有效地克服區(qū)域鏈問題。由于準(zhǔn)確的閾值難以確定,實(shí)際中更傾向于使用更嚴(yán)格的閾值來抑制區(qū)域鏈問題,然而通過識別區(qū)域而確定的最終對象中可能會具有孔洞(即缺失的部分)??梢酝ㄟ^使用從先前幀(previousframe)中提取的信息來消除這些孔洞。因此,本發(fā)明的第五發(fā)現(xiàn)為如果像素a屬于先前幀中的前景對象,且先前幀與當(dāng)前幀之間的同一像素a的特征差(例如深度差或色彩差)很小,則在當(dāng)前幀中像素a很可能屬于前景對象。根據(jù)從先前幀中得到的附加信息,本發(fā)明提出根據(jù)如圖5所示區(qū)域增長方法的一些修改的區(qū)域增長方法。
請參考圖6,圖6為根據(jù)本發(fā)明一個實(shí)施例一種修改的區(qū)域增長方法與圖5所示的區(qū)域增長方法之間的差別部分示意圖。修改的區(qū)域增長方法與圖5所示區(qū)域增長方法的主要區(qū)別在于修改的區(qū)域增長方法在具有附加步驟613和替代步驟614。其中,附加步驟613跟隨在圖5所示的步驟512之后,而替代步驟614替代圖5中所示的步驟514。應(yīng)注意的是,修改的區(qū)域增長方法也具有圖5中所示的相同步驟500-512及516-524,為簡潔,圖6中并未顯示。而步驟613和步驟614描述如下。
步驟613:當(dāng)將先前幀中的特定像素lf(n)被歸類為前景像素時,確定當(dāng)前幀中相鄰像素n的特性值與先前幀中該特定像素lf(n)的特性值之間的差值d3。其中,相鄰像素n和特定像素lf(n)為同位(co-located)像素。例如,d3=|depth(n)-depth(lf(n))|,或d3=|color(n)-color(lf(n))|。
步驟614:根據(jù)函數(shù)f’()確定/計算組合值f。即,f=f’(c(n),d1,d2,d3),其中c(n)、d1、d2及d3為函數(shù)f’()的參數(shù)。
舉例而言,函數(shù)f’()可以為加權(quán)平均函數(shù),該加權(quán)平均函數(shù)通過將加權(quán)因子w1、w2、w3、w4用于輸入?yún)?shù)(即c(n)、d1、d2及d3)而產(chǎn)生組合值f。換句話說,f=w1*c(n)+w2*d1+w3*d2+w4*d3。請注意,可將前述發(fā)現(xiàn)的一或多個應(yīng)用于區(qū)域鏈/過溢檢查。即,根據(jù)實(shí)際設(shè)計考慮,可將每個加權(quán)因子w1、w2、w3、w4設(shè)定為零值或非零值。例如,當(dāng)將所有的加權(quán)因子w1、w2、w3、w4設(shè)定為0時,則為不進(jìn)行區(qū)域鏈/過溢檢查。當(dāng)將加權(quán)因子w1設(shè)定為0時,則在進(jìn)行區(qū)域鏈/過溢檢查時不考量第一發(fā)現(xiàn)。當(dāng)將加權(quán)因子w2設(shè)定為0時,則在進(jìn)行區(qū)域鏈/過溢檢查時不考量第二發(fā)現(xiàn)。當(dāng)將加權(quán)因子w3設(shè)定為0時,則在進(jìn)行區(qū)域鏈/過溢檢查時不考量第三發(fā)現(xiàn)。當(dāng)將加權(quán)因子w4設(shè)定為0時,則在進(jìn)行區(qū)域鏈/過溢檢查時不考量第五發(fā)現(xiàn)
請參考圖7,圖7為根據(jù)本發(fā)明一個實(shí)施例另一種修改的區(qū)域增長方法與圖5所示的區(qū)域增長方法之間的差別部分示意圖。修改的區(qū)域增長方法與圖5所示區(qū)域增長方法的主要區(qū)別在于修改的區(qū)域增長方法在具有附加步驟723-725,附加步驟723-725將插入在圖5中的步驟522與步驟524之間。應(yīng)注意的是,修改的區(qū)域增長方法也具有圖5中所示的相同步驟500-520,為簡潔,圖7中并未顯示。而步驟723-725描述如下。
步驟723:對于當(dāng)前幀中被歸類為背景像素的每個像素a,當(dāng)先前幀中像素a的同位像素lf(a)被歸類為前景對象時,確定當(dāng)前幀中像素a的特性值與同位像素lf(a)的特性值之間的差值d3。例如,d3=|depth(a)-depth(lf(n))|,或d3=|color(a)-color(lf(n))|。
步驟724:通過將差值d3與預(yù)定義的閾值th3檢查是否差值d3小于預(yù)定義的閾值th3。如果是,則流程進(jìn)行至步驟725;如果否,則流程進(jìn)行至步驟524。
步驟725:將當(dāng)前幀中的像素a重新歸類為前景像素。
在步驟522中完成當(dāng)前幀的區(qū)域增長之后,再執(zhí)行圖7中的附加步驟723-725以通過參考先前幀中被歸類的前景像素來恢復(fù)可能缺失的部分。即,根據(jù)第五發(fā)現(xiàn),當(dāng)連續(xù)幀中的同位像素a和lf(a)的特征差(例如深度差或色彩差)較小時,可將當(dāng)前幀中被歸類為背景像素的任何像素重新歸類(reclassify)為前景像素。然而,對于包括步驟723-725在內(nèi)的修改的區(qū)域增長方法,由于這需要對先前幀的信息進(jìn)行保留并對先前幀的前景對象中所有像素進(jìn)行檢查,存儲器消耗和計算消耗將會增加很多。因此,對比圖7所示的修改的區(qū)域增長方法,圖6所示的修改的區(qū)域增長方法將更具性價比(cost-efficient),這是圖6所示的修改的區(qū)域增長方法只在當(dāng)前幀的每個像素的區(qū)域增長過程中使用先前幀的每個像素的信息。更具體地說,圖6所示的修改的區(qū)域增長方法不需要保持先前幀的信息。
除了前述的第一、第二、第三及第五發(fā)現(xiàn)之外,還可考量其他的發(fā)現(xiàn)(例如第四發(fā)現(xiàn))來克服區(qū)域鏈問題。如前所述,第四發(fā)現(xiàn)是場景中通常存在平表面,這些平表面通常為背景。如果預(yù)先檢測到這些平表面(例如地面),可使用平表面檢測結(jié)果來快速區(qū)分幀中的前景像素和背景像素。請參考圖8,圖8為根據(jù)本發(fā)明一個實(shí)施例地面檢測方法的流程圖。在對幀進(jìn)行其他處理之前對每個幀執(zhí)行該地面檢測方法。且該地面檢測方法包括下列步驟。
步驟800:開始。
步驟802:隨機(jī)選擇包括m(m>=3)個像素的像素集合,然后計算該像素集合的模(norm)n。
步驟804:通過將差值d4與預(yù)設(shè)閾值th4(例如5度)進(jìn)行比較,檢查是否地面的法向量(normalvector)與模n之間的夾角接近90度。如果差值d4小于預(yù)設(shè)閾值th4,接近垂直地面,則該像素集合為地面的候選項。因此,流程進(jìn)行至步驟806。然而,如果差值d4不小于預(yù)設(shè)閾值th4,則像素集合為并不是地面的候選項且直接丟棄該像素集合。然后地板檢測程序進(jìn)行至步驟802以選擇另一個像素集合。
步驟806:對于候選地面,檢測相鄰像素并且如果相鄰像素屬于候選地面則將這些相鄰像素加入候選地面。將像素加入至候選地面之后再計算地面的模。
步驟808:檢查是否候選地面中像素的總體數(shù)目大于預(yù)定義閾值th5。如果是,流程進(jìn)行至步驟810;如果否,流程進(jìn)行至步驟802以選擇另一個像素集合。
步驟810:在已得到識別的地板平面上識別所有剩余像素且對剩余像素進(jìn)行標(biāo)記(label)以供之后使用。然后,地板檢測程序進(jìn)行至步驟802以選擇另一個像素集合。
需注意的是,圖8中所示的地面檢測方法僅用于說明的目的,任何傳統(tǒng)的地面檢測算法都可用于提供每個幀的平表面信息以供之后的本發(fā)明提出的區(qū)域增長階段使用。
請參考圖9,圖9為根據(jù)本發(fā)明一個實(shí)施例另一種修改的區(qū)域增長方法與圖5所示的區(qū)域增長方法之間的差別部分示意圖。修改的區(qū)域增長方法與圖5所示區(qū)域增長方法的主要區(qū)別在于修改的區(qū)域增長方法在具有附加步驟907,附加步驟907將插入在圖5中的步驟506與步驟508之間。應(yīng)注意的是,修改的區(qū)域增長方法也具有圖5中所示的相同步驟500-524,為簡潔,圖9中并未顯示。而步驟907描述如下。
步驟907:參考當(dāng)前幀的平表面檢測結(jié)果(例如地面檢測結(jié)果)檢查是否相鄰像素n屬于檢測到的平表面(例如,檢測到的地面)。如果是,流程進(jìn)行至步驟520;否則,流程進(jìn)行至步驟508。
簡單地說,根據(jù)第四發(fā)現(xiàn),當(dāng)步驟907的檢查結(jié)果指示相鄰像素n屬于背景平表面時,將相鄰像素n排除在由種子節(jié)點(diǎn)s開始增長的區(qū)域之外。這樣,可防止區(qū)域增長至平表面區(qū)域。例如,通過引入的步驟907,可防止人身體部分(例如腳)的區(qū)域增長至地面。因而,區(qū)域增長結(jié)果的準(zhǔn)確度相應(yīng)得到改進(jìn)。
經(jīng)過背景建模階段,可能初步將當(dāng)前幀的像素a歸類為背景像素,然而之后的區(qū)域增長階段又將像素a辨別為前景像素。這說明像素a的背景模型并不可靠。根據(jù)這個發(fā)現(xiàn),本發(fā)明進(jìn)一步提出對背景建模階段進(jìn)行反饋以用于指示像素a的背景模型并不可靠。由此,可將后續(xù)幀(nextframe)的同位像素正確地歸類為前景像素,這樣區(qū)域增長階段則不必再恢復(fù)該同位像素。通過此方式,區(qū)域增長階段可獲得更好的結(jié)果而無需進(jìn)行更多計算。請參考圖10,圖10為根據(jù)本發(fā)明一個實(shí)施例另一種修改的區(qū)域增長方法與圖5所示的區(qū)域增長方法之間的差別部分流程圖。修改的區(qū)域增長方法與圖5所示區(qū)域增長方法的主要區(qū)別在于修改的區(qū)域增長方法具有附加步驟1018和1019,附加步驟1018和1019將插入在圖5中的步驟518與步驟520之間。應(yīng)注意的是,修改的區(qū)域增長方法也具有圖5中所示的相同步驟500-524,為簡潔,圖10中并未顯示。而步驟1018和1019描述如下。
步驟1018:檢查是否從背景像素中將相鄰像素n歸類為前景像素。如果是,該修改的區(qū)域增長方法進(jìn)行至步驟1019;如果否,該修改的區(qū)域增長方法進(jìn)行至步驟1020。
步驟1019:發(fā)送具有第一邏輯值(例如1)的正反饋至背景建模階段以指示相鄰像素n的背景模型值為不可靠。
步驟1020:發(fā)送具有第一邏輯值(例如0)的負(fù)反饋至背景建模階段以指示相鄰像素n的背景模型值為可靠的。
因此,根據(jù)從區(qū)域增長階段得到的反饋信息,背景建模階段將知曉區(qū)域增長階段當(dāng)前處理的相鄰像素n的背景模型為不可靠的。這樣,可對背景建模階段和背景相減階段進(jìn)行配置以執(zhí)行正確操作來從后續(xù)幀中得到正確的區(qū)域增長結(jié)果。即,為了從后續(xù)幀中獲取正確的區(qū)域增長結(jié)果,需要不同圖像處理階段的協(xié)作,包括區(qū)域增長階段、背景建模階段和背景相減階段。更進(jìn)一步的詳細(xì)描述如下。
在區(qū)域增長階段,如果將像素a錯誤歸類為背景像素,但是區(qū)域增長算法將其恢復(fù)為前景像素,則區(qū)域增長階段發(fā)送一個正反饋以指示背景建模階段將背景a的對應(yīng)背景模型標(biāo)記為不可靠的。
在背景建模階段,如果從區(qū)域增長階段產(chǎn)生的正反饋表示像素a的背景模型不可靠,則背景建模階段將檢查是否可將像素a的背景模型值更新為更大值。需注意的是,如果背景模型值較大,則對應(yīng)的像素更可能為背景像素。因此,如果允許將像素a的背景模型值更新為較大的值,則背景建模階段將照常執(zhí)行背景模型值更新,且將標(biāo)記為不可靠的像素a的背景模型值重設(shè)為一個可靠值。否則,不進(jìn)行變化,這表示像素a的背景模型值仍然被標(biāo)記為不可靠。
在背景建模階段之后的背景相減階段,如果像素a的背景模型值并不可靠,背景相減階段將像素a歸類為前景像素。
還有一個共同任務(wù)是對幀中分割的不同對象進(jìn)行標(biāo)記。通過一些修改,也可在區(qū)域增長階段完成該任務(wù)。為了對當(dāng)前幀中已識別的對象進(jìn)行標(biāo)記。應(yīng)保持由先前幀產(chǎn)生的對象標(biāo)記結(jié)果。請參考圖11和圖12。圖11為根據(jù)本發(fā)明一個實(shí)施例的具有標(biāo)記功能(labeling)的區(qū)域增長方法流程圖。圖12為圖11的接續(xù)流程示意圖。在結(jié)果大致相同的前提下,所述具有標(biāo)記的區(qū)域增長方法的步驟并不需要嚴(yán)格按照圖11和圖12所示的順序。圖11和圖12所示的示例性區(qū)域增長方法基于圖5所示的區(qū)域增長方法,且包括如下的附加步驟。
步驟1102:確定當(dāng)前幀中種子節(jié)點(diǎn)s的特性值與先前幀中特定節(jié)點(diǎn)lf(s)的特性值之間的差值d5,其中,種子節(jié)點(diǎn)s和特定節(jié)點(diǎn)lf(s)為同位像素。例如,當(dāng)將該區(qū)域增長方法運(yùn)用于深度地圖,特性值可為深度值;或者當(dāng)將該區(qū)域增長方法運(yùn)用于色彩圖像(例如rgb圖像),特性值可為色彩值。因此,d5=|depth(s)-depth(lf(s))|,或d5=|color(s)-color(lf(s))|
步驟1104:通過將差值d5與預(yù)定義的閾值th5進(jìn)行比較,檢查是否差值d5小于預(yù)定義的閾值th5。如果是,則流程進(jìn)行至步驟1106;如果否,則流程進(jìn)行至步驟1110。
步驟1106:檢測是否對先前幀中的特定節(jié)點(diǎn)lf(s)分配了一個定義的標(biāo)記(definedlabel)。如果是,流程進(jìn)行至步驟1108;否則,流程進(jìn)行至步驟1110。
步驟1108:由特定節(jié)點(diǎn)lf(s)的定義的標(biāo)記設(shè)定種子節(jié)點(diǎn)s的標(biāo)記。然后流程進(jìn)行至步驟504。
步驟1110:將種子節(jié)點(diǎn)的標(biāo)記設(shè)定為未定義。
步驟1119:由種子節(jié)點(diǎn)s的標(biāo)記設(shè)定新加入的種子節(jié)點(diǎn)(即相鄰像素n)的標(biāo)記。
步驟1123:為具有未定義的標(biāo)記的像素組成的每個未定義的區(qū)域分配至少一個定義的標(biāo)記。
在此實(shí)施例中,可將具有相同標(biāo)記的區(qū)域(可以是定義的標(biāo)記或未定義的標(biāo)記)進(jìn)行合并,或者將具有定義的標(biāo)記的區(qū)域與具有未定義的標(biāo)記的區(qū)域合并;但是具有不同定義的標(biāo)記的區(qū)域之間不能進(jìn)行合并。根據(jù)上述合并規(guī)則,步驟1123的操作可總結(jié)如下。
當(dāng)未定義的區(qū)域不連接任何區(qū)域時,對該未定義的區(qū)域分配一個新的未定義的標(biāo)記;當(dāng)該未定義的區(qū)域連接僅一個定義的區(qū)域時,對該未定義的區(qū)域分配該定義的區(qū)域的定義的標(biāo)記;且當(dāng)該未定義的區(qū)域僅連接多于一個的定義的區(qū)域時,將該未定義的區(qū)域分割為不同的子區(qū)域,且對每個子區(qū)域分配最接近該子區(qū)域的定義的區(qū)域的定義的標(biāo)記。由此,出現(xiàn)在不同幀中的相同對象將具有相同的標(biāo)記以實(shí)現(xiàn)對象識別目的。
簡而言之,上述算法同時處理了標(biāo)記和區(qū)域增長。在步驟1102中,可由先前幀的對象位置定義多個區(qū)域以用于比較當(dāng)前幀和先前幀之間的深度值,且可收縮(shrank)該多個區(qū)域以減少由運(yùn)動而產(chǎn)生的可能的錯誤。
需注意的是,將步驟1102-1110、1119及1123加入圖5所示的區(qū)域增長方法僅為本發(fā)明的一種可能的實(shí)現(xiàn)。在一種替代設(shè)計中,可將步驟1102-1110、1119及1123加入圖6中所示的具有步驟613及614的修改的區(qū)域增長方法。在另一種替代設(shè)計中,還可將步驟1102-1110、1119及1123加入圖7中所示的具有步驟723、724及725的修改的區(qū)域增長方法。在又一種替代設(shè)計中,還可將步驟1102-1110、1119及1123加入圖9中所示的具有步驟907的修改的區(qū)域增長方法。通過上述設(shè)計,可同時實(shí)現(xiàn)處理對象標(biāo)記和對象增長的相同目標(biāo)。
本發(fā)明所提出的算法使用了若干個閾值。可預(yù)先通過特定感應(yīng)器(sensor)的實(shí)驗來確定這些閾值。例如,深度感應(yīng)器(depthsensor)在不同的深度范圍具有不同的準(zhǔn)確度??稍诓煌纳疃?色彩范圍進(jìn)行實(shí)驗以獲取閾值。在一種替代設(shè)計中,可通過考慮例如小區(qū)域周圍的統(tǒng)計值(例如,深度/色彩值的均值或方差)等因數(shù)來適應(yīng)性確定這些閾值。
總體而言,本發(fā)明所提出的區(qū)域增長算法可具有以下特征,即依賴于閾值的設(shè)定。在采用圖5/圖6/圖7/圖9/圖10中的區(qū)域增長方法時,當(dāng)由深度相機(jī)捕捉人物和地面且人物保持在小區(qū)域內(nèi)移動時,有時人物對象中會包括地面中的小部分不需要區(qū)域。此種情況發(fā)生的機(jī)會比較小。在采用圖5中的區(qū)域增長方法時,被檢測的人物可能具有一些孔洞。這主要是由于過于嚴(yán)格的閾值,且此情況發(fā)生的頻率相對較高。在另一種情況中,采用的是圖6/圖7/圖9/圖10中的區(qū)域增長方法,如果一些幀中存在一些錯誤,例如前述的包括不需要的區(qū)域,則一段時間內(nèi)在后續(xù)幀中都將會出現(xiàn)這些錯誤。在又一種情況中,采用圖10中的區(qū)域增長方法,當(dāng)背景建模算法接收到來自區(qū)域增長算法的反饋時,即使這些像素的深度/色彩值不變,靠近前景像素的一些背景像素可在后續(xù)幀中逐漸變?yōu)榍熬跋袼亍?/p>
由圖像處理裝置可執(zhí)行所提出的每種區(qū)域增長方法。請參考圖13,圖13為根據(jù)本發(fā)明一個實(shí)施例圖像處理裝置的方塊圖。舉例而言,圖像處理裝置1300包括處理單元1302和計算機(jī)可讀介質(zhì)(computerreadablemedium)1304。其中,處理單元1302可為處理器,例如中央處理單元(centralprocessingunit,cpu)或微處理單元(microcontrolunit,mcu),而計算機(jī)可讀介質(zhì)可為存儲裝置,例如易失性存儲器(volatilememory)或非易失性存儲器(non-volatilememory)。程序代碼prog存儲在計算機(jī)可讀介質(zhì)1304中,且當(dāng)處理單元1302執(zhí)行該程序代碼prog時,該程序代碼prog致能處理單元1302執(zhí)行本發(fā)明所提出的區(qū)域增長方法。所屬領(lǐng)域的技術(shù)人員在閱讀關(guān)于本發(fā)明提出的區(qū)域增長方法的上述段落之后,應(yīng)能理解讀取圖像處理裝置1300的操作,為簡潔,在此省略進(jìn)一步的描述。可使用基于軟件的架構(gòu)來實(shí)現(xiàn)圖像處理裝置1300。然而,此僅為說明的目的,本發(fā)明并不限于此。即,也可利用使用純硬件實(shí)現(xiàn)的圖像處理裝置用于執(zhí)行所述的區(qū)域增長算法。
任何所述領(lǐng)域的技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可做些許的改動與修飾。因此,本發(fā)明的保護(hù)范圍以權(quán)利要求為準(zhǔn)。