国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種用于投影交互系統(tǒng)的連續(xù)幀連通域并行標記方法與流程

      文檔序號:11135307閱讀:418來源:國知局
      一種用于投影交互系統(tǒng)的連續(xù)幀連通域并行標記方法與制造工藝

      本發(fā)明涉及計算機視覺處理技術(shù)領(lǐng)域,具體涉及一種用于投影交互系統(tǒng)的連續(xù)幀連通域并行標記方法。



      背景技術(shù):

      人機交互技術(shù)時計算機科學中至關(guān)重要的一個領(lǐng)域,其發(fā)展歷史基本上代表了計算機的發(fā)展。從最早的大型機上的笨拙的開關(guān)系統(tǒng)到到期鍵盤和鼠標的出現(xiàn),以及當下非常流行的觸摸屏,人機交互技術(shù)的發(fā)展速度日新月異。今年來,由于計算機視覺技術(shù)的飛速發(fā)展,以及新的傳感器的出現(xiàn),使得各種便攜式的人機交互方式層出不窮。

      但是,由于目前Kinect等深度相機在距離精度和空間分辨率上都明顯不足,利用Kinect等深度相機直接與計算機進行交互并不能達到進行精細操作的目睹,不能直接在利用投影儀投射在墻壁上的顯示區(qū)域內(nèi)進行便捷而靈敏的操作,尤其是雙擊這種空間精度和時間精度要求較高的操作。

      利用光筆和攝像頭組合形成的系統(tǒng),對投影圖像進行操作,從而達到操控計算機的目的。為了獲取當前手指或者光筆所在的位置,需要對攝像機捕獲的圖像進行分析,從中提取前景像素,并且進行連通區(qū)域分析,從而完成手指或者光筆的檢測和定位。

      傳統(tǒng)的連通標記方法,都是針對單幀圖像進行的,在利用攝像機進行實時檢測時,相鄰兩幀圖像之間的差異其實很小,如果每一幀圖像都完全重新標記,則需要進行大量的重復計算,效率不高,對投影系統(tǒng)的流暢影響很大。



      技術(shù)實現(xiàn)要素:

      本發(fā)明的目的在于提供一種用于投影交互系統(tǒng)的連續(xù)幀連通域并行標記方法,以實現(xiàn)連續(xù)幀連通域快速標記。

      為實現(xiàn)上述目的,本發(fā)明采用了以下技術(shù)方案:

      一種用于投影交互系統(tǒng)的連續(xù)幀連通域并行標記方法,其包括以下步驟:

      (1)對第一幀圖像進行分塊標記,獲取圖像視頻,對圖像視頻的第一幀圖像的連通區(qū)域進行標記,得到子行對應的標記圖;

      (2)獲取新生像素和消失像素,將當前幀圖像與前一幀圖像使用幀差法計算,得到兩者的偵差圖,對幀差圖進行分塊標記,通過不同分塊之間的子行融合,得到當前幀圖像中消失像素子行和新生像素子行;

      (3)通過對消失像素子行及新生像素子行的處理,完成對前一幀圖像進行標記結(jié)果的修正,并將修正結(jié)果融入到當前幀圖像的標記結(jié)果中。

      所述的用于投影交互系統(tǒng)的連續(xù)幀連通域并行標記方法,步驟(1)中,所述對第一幀圖像進行分塊標記,獲取圖像視頻,對圖像視頻的第一幀圖像的連通區(qū)域進行標記,得到子行對應的標記圖,具體包括以下步驟:

      (11)利用線程對每個子塊進子行檢測;

      (12)通過計算每個子塊中最大子行數(shù)目,進行子行序號整理;

      (13)將子行的起點和終點按照分塊在圖像中位置進行還原;

      (14)對所有子行按照序號依次進行分析,將相接的子行進行融合;

      (15)根據(jù)融合子行的相接關(guān)系,構(gòu)建關(guān)系圖,得到連通域標記圖。

      所述的用于投影交互系統(tǒng)的連續(xù)幀連通域并行標記方法,步驟(15)中,所述根據(jù)融合子行的相接關(guān)系,構(gòu)建關(guān)系圖,得到連通域標記圖,具體包括以下步驟:

      (151)為每個子行分配一個線程;

      (152)在每個子行所在位置的下一行,搜索其中的所有子行,通過比較相互的起點和終點位置,分析其是否相接,若相接,則在相應結(jié)點之間建立聯(lián)系,完成關(guān)系圖的構(gòu)建;

      (153)對關(guān)系圖進行掃描,得到連通區(qū)域標記圖。

      所述的用于投影交互系統(tǒng)的連續(xù)幀連通域并行標記方法,步驟(3)中,通過對消失像素子行及新生像素子行的處理,完成對前一幀圖像進行標記結(jié)果的修正,并將修正結(jié)果融入到當前幀圖像的標記結(jié)果中,具體包括以下步驟:

      (31)為每一個消失像素子行,分配一個線程;

      (32)在消失像素子行所在的行中,分析消失像素子行所造成的原有像素子行的斷裂、縮短和消失,通過比較消失像素子行的起點和終點位置與原有像素子行的起點和終點的位置,判斷發(fā)生變動的消失像素子行,對于已經(jīng)消失的原有像素子行,直接從關(guān)系圖中刪除,但不修改與其關(guān)聯(lián)的像素子行中的連接信息;

      (33)為每一個新生像素子行,分配一個線程。

      (34)在新生像素子行所在的行中,分析新生像素子行所造成的子行的融合、邊長和新出現(xiàn),通過比較新生像素子行的起點和終點位置與原有像素子行的起點和終點的位置,判斷發(fā)生變動的新生像素子行,對于新生的像素子行,將其添加到關(guān)系圖中,但不修改與其關(guān)聯(lián)的像素子行中的連接信息;

      (35)將所有發(fā)生了變化消失像素子行、新生像素子行,及其關(guān)聯(lián)的消失像素子行、新生像素子行的序號進行記錄;

      (36)為關(guān)系圖中每一個發(fā)生了變化的消失像素子行、新生像素子行分配一個線程,去掉其原有的連接信息,在其下一行中搜索可能存在的連接像素子行,修改連接信息,完成對上一幀標記信息的修改。

      由上述技術(shù)方案可知,本發(fā)明所述的用于投影交互系統(tǒng)的連續(xù)幀連通域并行標記方法,在處理連續(xù)幀圖像時能夠快速完成二值圖像中連通區(qū)域的標記功能。在進行連續(xù)幀圖像標記時速度較快,提高了連通區(qū)域標記的速度。

      附圖說明

      圖1是本發(fā)明的流程圖;

      圖2是本發(fā)明子行融合時的示意圖;

      圖3是本發(fā)明第一幀前景圖像;

      圖4是本發(fā)明當前幀圖像。

      圖5是圖3與圖4的幀差圖。

      圖6是圖5的掃描分析圖;

      圖7是圖3的連通域標記示意圖。

      具體實施方式

      下面結(jié)合附圖對本發(fā)明做進一步說明:

      一種用于投影交互系統(tǒng)的連續(xù)幀連通域并行標記方法,包括以下步驟:

      S1:對第一幀圖像進行分塊標記,獲取圖像視頻,對圖像視頻的第一幀圖像的連通區(qū)域進行標記,得到子行對應的標記圖:

      本專利中的連通域標記方法,是利用子行作為基本單位的圖來進行表達的。因此,在對圖像進行分塊處理時,可以將一行作為一個子塊進行分割,每個線程處理一行圖像,這樣既可以保證數(shù)據(jù)的連貫性,利于流水線,同時又適合算法以行為單位進行表達的特點。如果GPU的線程數(shù)足夠多,還可以將一行分割為多段,進一步提高并行度。

      如圖2所示,一行20個像素,被分成4個子塊進行并行處理,黑色粗線條的豎線表示相鄰分塊之間的分割線。圖2中,白色像素表示前景像素。本行中總共存在3個子行,但是由于分塊,導致第一個子行變成2段,第二個子行變成3段,因此需要在分塊的結(jié)果上進行子行融合(該任務由第一個線程進行處理)。

      利用四個線程對四個子塊進行子行檢測,具體過程如下:

      S11:每個線程單獨檢測,得到如下的子行結(jié)果:

      子塊0:[0:0:3,4]

      子塊1:[0:0:0,0],[1:0:4,4]

      子塊2:[0:0:0,4]

      子塊3:[0:0:0,0],[1:0:4,4]

      S12:序號整理:

      為了防止不同子塊之間的子行序號發(fā)生重復,需要計算每個子塊中的最大子行數(shù)目(比如子塊尺寸為1*5,則最多有3個子行),然后第N個(從0開始計數(shù))子塊的子行序號都加上3*N。

      子塊0:[0:0:3,4]

      子塊1:[3:0:0,0],[4:0:4,4]

      子塊2:[6:0:0,4]

      子塊3:[9:0:0,0],[10:0:4,4]

      S13:子行位置整理:

      同時,將子行的起點和終點按照分塊在圖像中位置進行還原。即將子行的起點和終點都加上5*N(5是每個子塊的寬度)。此時圖2的子行掃描結(jié)果如下所示:

      子塊0:[0:0:3,4]

      子塊1:[3:0:5,5],[4:0:9,9]

      子塊2:[6:0:10,14]

      子塊3:[9:0:15,15],[10:0:19,19]

      S14:子行融合

      對此時所有的子行,按照序號依次進行分析,看相鄰的兩個子行是否相接。如果相接,則將它們?nèi)诤蠟橐粋€。通過修改前一個子行的終點位置實現(xiàn)融合。最終融合之后的子行信息如下:

      [0:0:3,5],[4:0:9,15],[10:0:19,19]

      為了防止不同的行,出現(xiàn)子行序號重合的問題,同樣也需要對融合后的子行序號進行整理。如果一行的最大子行數(shù)目為M,當前為第y行(從0開始計數(shù)),則每個子行的序號,都需要加上y*M。

      S15:關(guān)系圖構(gòu)建:

      在對圖像中所有的行完成并行處理之后,需要分析相鄰行之間的子行的相接關(guān)系,從而完成關(guān)系圖,最終得到連通域標記的結(jié)果。下面以圖3為例,來說明該過程的細節(jié)過程:

      首先為每個子行分配一個線程,圖3中總共有6個子行(最后一行不參與主動搜索),因此需要分配6個線程。在每一個子行所在位置的下一行,搜索其中的所有子行,通過比較相互的起點和終點位置,分析其是否相接。如果相接,則在相應結(jié)點之間建立聯(lián)系。(最后一行沒有下一行,不需要搜索相接的子行)。每個子行只需要搜索它的下一行的位置,而所有線程綜合的結(jié)果,則完成了整個關(guān)系圖的構(gòu)建。如圖3所示,子行0找到子行2,子行1找到子行3,子行2和子行3都找到子行5,這樣第一個連通域的關(guān)系圖構(gòu)建就完成了。同樣,子行4找到子行7和子行8,子行6找到子行10。在一次搜索周期內(nèi),每個子行只進行了很少的操作,但所有線程分工合作,很快就完成全圖范圍的關(guān)系圖構(gòu)建。對關(guān)系圖進行掃描,得到最終的連通域標記結(jié)果,如圖4所示。

      S2:獲取新生像素和消失像素,將當前幀圖像與前一幀圖像使用幀差法計算,得到兩者的偵差圖,對幀差圖進行分塊標記,通過不同分塊之間的子行融合,得到當前幀圖像中消失像素子行和新生像素子行;

      計算幀差圖中消失像素構(gòu)成的子行,與新生像素構(gòu)成的子行時所有的分塊策略,與第一幀連通域分塊標記時的分塊策略是一致的。都是將一行作為一個子塊進行分割,每個線程處理一行圖像。如果GPU的線程數(shù)足夠多,也是將一行分割為多段,提高并行度。通過在每一個分塊中完成幀差圖的計算,然后將全圖所有的分塊的幀差圖融合起來,就可以得到最終的結(jié)果。

      子行的檢測和融合:在檢測消失像素子行和新生像素子行,以及將不同分塊之間的子行進行融合時,策略也與第一幀連通域分塊標記時的分塊策略是一致的。將位于不同分塊,但是又相接的子行根據(jù)起點和終點位置融合起來。如圖6所示,是當前幀的幀差圖中,消失像素子行和新生像素子行的標記結(jié)果。經(jīng)過該過程,就可以得到全圖范圍的當前幀圖像中的消失像素子行和新生像素子行。

      S3:通過對消失像素子行及新生像素子行的處理,完成對前一幀圖像進行標記結(jié)果的修正,并將修正結(jié)果融入到當前幀圖像的標記結(jié)果中。該步驟具體通過以下步驟實現(xiàn):

      S31:為每一個消失像素子行,分配一個線程;

      S32:在消失像素子行所在的行中,分析消失像素子行所造成的原有像素子行的斷裂、縮短和消失,通過比較消失像素子行的起點和終點位置與原有像素子行的起點和終點的位置,判斷發(fā)生變動的消失像素子行,對于已經(jīng)消失的原有像素子行,直接從關(guān)系圖中刪除,但不修改與其關(guān)聯(lián)的像素子行中的連接信息;

      S33:為每一個新生像素子行,分配一個線程。

      S34:在新生像素子行所在的行中,分析新生像素子行所造成的子行的融合、邊長和新出現(xiàn),通過比較新生像素子行的起點和終點位置與原有像素子行的起點和終點的位置,判斷發(fā)生變動的新生像素子行,對于新生的像素子行,將其添加到關(guān)系圖中,但不修改與其關(guān)聯(lián)的像素子行中的連接信息;

      S35:將所有發(fā)生了變化消失像素子行、新生像素子行,及其關(guān)聯(lián)的消失像素子行、新生像素子行的序號進行記錄;

      S36:為關(guān)系圖中每一個發(fā)生了變化的消失像素子行、新生像素子行分配一個線程,去掉其原有的連接信息,在其下一行中搜索可能存在的連接像素子行,修改連接信息,完成對上一幀標記信息的修改。

      將上述算法用于圖6,具體過程如下:

      為圖中的4個消失子行——子行11,子行12,子行13,子行14,分配線程。在第0行中搜索與子行11有關(guān)聯(lián)的原子行,發(fā)現(xiàn)子行0與子行11有交疊,于是修改子行0的位置。同樣,原子行5,子行7也需要修改位置。子行9則消失了。為圖中4個新出現(xiàn)的子行——子行15,16,17,18,分配線程。在各行中搜索與新出現(xiàn)子行有位置交疊的原子行,發(fā)現(xiàn)子行1需要修改位置,而子行16,17,18則都屬于新出現(xiàn)的子行。對發(fā)生了變動的子行,也就是子行0,5,7,9,1,16,17,18,在原關(guān)系圖中找到它們的關(guān)聯(lián)子行,即子行3,4,10。為這些子行全部都分配線程。對每個變動子行,及其關(guān)聯(lián)子行,首先去掉其保留的連接信息,然后在其下一行中找到相接子行,建立連接,修改關(guān)系圖。如果子行位于最后一行,則不需要處理。算法完成,最終得到4個連通域。

      以上所述的實施例僅僅是對本發(fā)明的優(yōu)選實施方式進行描述,并非對本發(fā)明的范圍進行限定,在不脫離本發(fā)明設(shè)計精神的前提下,本領(lǐng)域普通技術(shù)人員對本發(fā)明的技術(shù)方案作出的各種變形和改進,均應落入本發(fā)明權(quán)利要求書確定的保護范圍內(nèi)。

      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1