原理分析與設計

1 系統架構圖

  為達最佳鏡頭之追蹤,我們建立了一套系統分別依物體移動情況作最適當的判斷,圖1為整套系統架構圖。                                         

    當攝影機靜止時,我們使用VISCA所支援的指令---alarm,使攝影機能針對某特定區域作監視,當區域中有任何變動時,即送出High-Level訊號,透過此功能,能判別物體出現及移動情形。當目標物移動條件成立時,會進入控制攝影機移動的狀態,也是本專題重點所在。透過H.264編碼所獲得的MV資訊,計算出整張畫面的Global motion,並找出物體真正移動的方向,進而控制攝影機鏡頭左右平移或是縮放,使物體維持在畫面中最佳位置。最後我們也將攝影機控制畫面實現於遠端網路之上,透過網路即時傳輸監控影像,以便管理者能掌控任何情形。

   之前我們介紹了整套系統的架構圖,在此我們將對Camera Control部分作詳細介紹。參考之前的作法[12][13],我們引用global motion estimationblock type weighting等部份想法,並加以修改整合成合適於我們的系統環境,我們將控制攝影機移動的決策流程圖顯示於圖2

 

 圖2 控制攝影機移動之決策流程圖

 

      首先,我們根據H.264所提供的Partition ModeMV資訊來估測整張畫面的Global motion,並藉由減去Global motion來得到物體真正移動的MV。接著根據整張畫面中不同的Partition mode,分別給予每個MVDg不同的權重,以強調目標物所在區域。同時,為了移除攝影機判斷時所產生的畫面不連續,我們使用temporal filter達成此效果。在判斷目標物所在後,我們可分別算出目標物的重心用來控制攝影機鏡頭平移,以及根據畫面中目標物的大小來控制鏡頭縮放,以達最佳鏡頭畫面。

 

1.     Global motion estimation and subtraction

      本研究設計出一套完整的系統,使攝影機能自動且即時的偵測到監視畫面中的動態影像,並達到最佳的攝影位置與角度,亦即最佳鏡頭。然而在作自動追蹤時,同時會產生Background Change的問題。當鏡頭隨著人移動時,後方背景也會往反方向移動,因此當鏡頭偵測到背景往反方向移動的移動向量(Motion Vector)時,也會跟著往與目前移動方向相反的方向跟蹤,但此時跟蹤對象已不再是人,而是背景,因此如何解決此種問題,值得深入研究。

  當攝影機跟蹤物體時,因為鏡頭移動,背景相對會產生全域移動(Global Motion),在此使用H.264編碼所提供的MV資訊以及Partition mode來估測出Global motion。首先,我們可以利用目前畫面的移動向量,藉由(1-1)式得出前一張畫面物體原本的位置。

       

             (1-1)

 (1-1)式中,xtyt為目前畫面已知的移動向量,xt-1yt-1則代表前一張畫面中相對應的位置。至於p1~p6這六個參數,可以由(1-2)式獲得。

                                               

                                                    (1-2)

 

       (1-2)式中,代表在時間t的畫面中之的k移動向量,而則是與移動向量之總和。

為得到更理想的Global Motion,需反覆作以下演算流程:

(1)   選用畫面中較大的PartitionMV找出Global Motion的六個參數。

(2)   計算MVsglobal motion 差值,MVDg之標準差。

(3)   在下一次估測中將MVDg大於1.5倍標準差的MV移除。

(4)   重複上述步驟3次以得到global motion model及最終的MVDg

利用最小平方法計算出Global motion後的六個參數後,當攝影機移動時,我們可將畫面中MVs扣除背景的Global motion,以判斷出目標物真正移動的範圍,也就是畫面之前景。

 

2.    MVDg weighting

       根據H.264所提供的編碼資訊不難看出,在整張畫面中,背景通常有較大的block size,而前景也就是目標物的block size相對較小。在此一步驟,我們針對每一個MVDg,根據block size的大小,分別給予不同的權重,其數學公式如下:

                    (2-1)

 其中MVDg為前一步驟中global motionMVs的差值,Wnpartition mode n的權重係數,MVDw則為加權後的結果。透過加權步驟,大的MB給予小的權重,小的MB給予大的權重,可強調整張畫面的前景分割,有利於最佳鏡頭之判斷。圖3顯示了對同一張畫面,會有不同的block size,可看出前景通常有較小的block size

3 不同的Partition mode

3.    Temporal refinement

 當攝影機在對畫面作判斷時,需要反應時間,因此會造成畫面不連續的現象,且對於突然出現的雜訊,也會影響攝影機判斷的效果,temporal refinement可幫助我們移除這些雜訊及克服時間上畫面的不連續。透過前一張畫面與目前畫面的MV值作平均,可使整張畫面能流暢的呈現。(3-1)式為Temporal refinement之數學式:

              (3-1)

其中MVDr,t為目前畫面作Temporal refinement後的結果,MVDr,t-1為前一張畫面作Temporal refinement後的結果。 3可看作Temporal refinement後的結果,畫面中的前景分割效果明顯變好。

                                                            

                        4-a.未做分割前             圖4-b.未作Temporal refinement           4-c.Temporal refinement

4 Temporal refinement效果之比較

4.     Threshold

MV值會隨著與原點的距離增加而變大,因此畫面邊緣會使Global motion估測產生誤差,需取Threshold克服。

實驗中所使用的Threshold如下:

                                                    

     其中Th(x, y) :位置(x,y)threshold xmax ymax xy之最大值。 MVDr,mean MVDr (temporal refinement之結果)之平均值。 C 常數,實驗中取C=1.5

        之後將每點MVDTheshold比較,得出適當前景。

5.     Decision

 透過Global Motion估測、Weighting及作Temporal refinement,得出整張畫面的前景分割,接著我們利用這些資訊,來判斷畫面中目標物的位置及大小,並控制攝影機的鏡頭作平移及縮放。以下將分別討論平移及縮放的判斷流程。

(1)       Pan/Tilt

 當物體左右移動時,畫面中的重心會隨著物體位置的不同而改變,因此我們事先算出畫面的重心位置,並依據位置的大小,來控制鏡頭平移的方向。在做完Temporal refinement之後,我們已順利得出整張畫面的前景所在,也得出整張畫面的MVD(亦即MVDr),由於要做平移,因此需先算出水平方向及垂直方向的重心位置(5-2)(5-3),以及整張畫面的MVD值加總w(5-1),以代表物體的移動程度,當w大於W1時,會將前景視為有移動,並重新計算畫面中的重心位置;反之,當物體被視為靜止時,則將重心維持在固定位置。而整張畫面的前景大小如(5-4)式所示。

                                                                                                                                          (5-1)

                                                                                                                             (5-2)

                                                                                                                            (5-3)

              (5-4)

    在算出畫面中的重心位置及前景大小後,我們可利用此資訊來控制攝影機之鏡頭自動追蹤物體移動,6為鏡頭判斷之示意圖。我們將示意圖分為水平、垂直以及縮放等三部分,其判斷規則如下:

                                                                                        

    圖6 鏡頭移動示意圖

A.        水平方向

a.    x_cor < X1: 鏡頭左移

b.    X1 < x_cor < X2: 鏡頭靜止

c.    X2 < x_cor: 鏡頭右移

 

B.    垂直方向

a.    y_cor < Y1: 鏡頭下移

b.    Y1 < y_cor < Y2: 鏡頭靜止

c.    Y2< y_cor: 鏡頭上移

 

C.鏡頭縮放

a.      W<W2:即為黃色區塊,未達最佳畫面,鏡頭Zoom in

b.      W2<W<W1:即為紫色區塊,此範圍中達最佳畫面,鏡頭靜止。

c.      W>W1:即為空白區塊,此時超出最佳畫面,鏡頭Zoom out