基于視頻圖像的目標(biāo)實時追蹤方法及其裝置制造方法
【專利摘要】本申請公開了一種基于視頻圖像的目標(biāo)實時追蹤方法/裝置:獲取跟蹤目標(biāo)在參考幀中的位置,基于該位置計算跟蹤目標(biāo)在當(dāng)前幀的位置,而后利用所計算的位置上的特征矩陣基于驗證模型判斷當(dāng)前幀的跟蹤目標(biāo)是否追蹤成功,從而提高了跟蹤的正確性,進(jìn)而降低了錯誤追蹤跟蹤目標(biāo)的概率;進(jìn)一步,利用連貫度模型計算跟蹤目標(biāo)形態(tài)連貫度以決定是否需要更新驗證模型、預(yù)設(shè)分類器,從而保證了追蹤的可持續(xù)性。
【專利說明】基于視頻圖像的目標(biāo)實時追蹤方法及其裝置
【技術(shù)領(lǐng)域】
[0001] 本申請涉及視頻與圖像信息處理領(lǐng)域,尤其涉及到一種基于視頻圖像的目標(biāo)實時 追蹤方法及其裝置。
【背景技術(shù)】
[0002] 目標(biāo)追蹤是一種主動的視頻監(jiān)控方式,在監(jiān)控場景中出現(xiàn)突發(fā)事件或檢測到感興 趣目標(biāo)后,主動對該目標(biāo)進(jìn)行鎖定,通過不斷估算偏移量,調(diào)整攝像機(jī)的角度、焦急等參數(shù), 來達(dá)到持續(xù)追蹤目標(biāo)的目的。通過不斷追蹤,可以捕獲目標(biāo)的完整運(yùn)行軌跡和詳細(xì)特征信 息,為突發(fā)事件分析、感興趣目標(biāo)行為分析以及公安機(jī)關(guān)辦案提供數(shù)據(jù)支持。
[0003] 通常,在對跟蹤目標(biāo)進(jìn)行實時追蹤時,會從已知跟蹤目標(biāo)位置的圖像幀中選取一 幀作為參考幀,以輔助當(dāng)前幀的追蹤。當(dāng)跟蹤目標(biāo)形態(tài)變化、被阻擋物遮攔等狀況發(fā)生時, 常會發(fā)生追蹤偏移甚至追蹤錯誤?,F(xiàn)有技術(shù)中,尚缺乏對跟蹤目標(biāo)的追蹤驗證,因此,當(dāng)前 中貞跟S示目標(biāo)追S示偏移/錯誤后,在后續(xù)的追S示過程中,其目標(biāo)追S示可能會建立在追S示偏移/ 錯誤參考幀的基礎(chǔ)上,從而導(dǎo)致偏移/錯誤累積,進(jìn)而導(dǎo)致整個追蹤失敗。
【發(fā)明內(nèi)容】
[0004] 本申請?zhí)峁┮环N基于視頻圖像的目標(biāo)實時追蹤方法及其裝置,以實現(xiàn)驗證跟蹤目 標(biāo)是否被正確跟蹤。
[0005] 根據(jù)本申請的第一方面,本申請?zhí)峁┮环N基于視頻圖像的目標(biāo)實時追蹤方法,包 括:
[0006] 圖像獲取步驟:獲取當(dāng)前幀圖像數(shù)據(jù);
[0007] 跟蹤目標(biāo)參考幀位置確定步驟:從之前的已知跟蹤目標(biāo)位置的圖像數(shù)據(jù)中選取至 少一巾貞作為參考巾貞,并獲取跟蹤目標(biāo)在參考巾貞中的位置;
[0008] 跟蹤目標(biāo)當(dāng)前位置計算步驟:基于跟蹤目標(biāo)在參考幀圖像數(shù)據(jù)中的位置計算跟蹤 目標(biāo)在當(dāng)前幀的位置;
[0009] 跟蹤目標(biāo)驗證步驟:計算當(dāng)前幀位置像素矩陣的特征矩陣,基于該特征矩陣?yán)?驗證模型計算跟蹤目標(biāo)在該當(dāng)前幀位置上的驗證概率,如果驗證概率大于預(yù)設(shè)驗證閾值, 則該當(dāng)前幀的位置為跟蹤目標(biāo)在該當(dāng)前幀的位置。
[0010] 根據(jù)本申請的第二方面,本申請?zhí)峁┮环N基于視頻圖像的目標(biāo)實時追蹤裝置,包 括:圖像獲取模塊、參考位置確定模塊、當(dāng)前位置計算模塊和跟蹤目標(biāo)驗證模塊,其中,
[0011] 圖像獲取模塊用于獲取當(dāng)前幀圖像數(shù)據(jù);
[0012] 參考位置確定模塊用于從之前至少一幀已知跟蹤目標(biāo)位置的圖像數(shù)據(jù)中選取一 中貞作為參考巾貞,并獲取跟蹤目標(biāo)在參考巾貞中的位置;
[0013] 當(dāng)前位置計算模塊用于基于跟蹤目標(biāo)在參考幀圖像數(shù)據(jù)中的位置計算跟蹤目標(biāo) 在當(dāng)前幀的位置;
[0014] 跟蹤目標(biāo)驗證模塊,用于計算當(dāng)前幀位置像素矩陣的特征矩陣,基于該特征矩陣 利用驗證模型計算跟蹤目標(biāo)在該當(dāng)前幀位置上的驗證概率,如果驗證概率大于預(yù)設(shè)驗證閾 值,則該當(dāng)前幀的位置為跟蹤目標(biāo)在該當(dāng)前幀的位置。
[0015] 本申請的有益效果是:由于利用驗證模型計算跟蹤目標(biāo)在當(dāng)前幀跟蹤位置上的驗 證概率,根據(jù)所求的驗證概率能夠判斷出當(dāng)前幀跟蹤目標(biāo)所處位置是否正確,從而提高了 跟蹤的正確性,進(jìn)而降低了錯誤追蹤跟蹤目標(biāo)的概率。
【專利附圖】
【附圖說明】
[0016] 圖1為本申請實施例基于視頻圖像的目標(biāo)實時追蹤裝置的一種結(jié)構(gòu)不意圖;
[0017] 圖2為本申請實施例基于視頻圖像的目標(biāo)實時追蹤方法流程圖;
[0018] 圖3a和圖3b為本申請實施例跟蹤目標(biāo)所在位直不意圖,其中,圖3a為跟蹤目標(biāo) 在參考幀中的位置示意;圖3b為跟蹤目標(biāo)在當(dāng)前幀中的位置示意圖;
[0019]圖4為本申請實施例劃分像素塊的策略示意圖;
[0020] 圖5為本申請實施例跟蹤目標(biāo)的當(dāng)前幀位置計算流程圖;
[0021] 圖6為本申請實施例P-N分類器隊列示意圖;
[0022] 圖7為本申請實施例跟蹤目標(biāo)驗證流程圖;
[0023] 圖8為本申請實施例跟蹤目標(biāo)形態(tài)連貫度計算流程圖。
【具體實施方式】
[0024] 下面通過【具體實施方式】結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)說明。
[0025] 在基于視頻圖像對目標(biāo)進(jìn)行實時跟蹤時,通常會實時地從已知跟蹤目標(biāo)位置的圖 像中選取一幀作為參考幀,基于跟蹤目標(biāo)在所選取參考幀的位置來計算跟蹤目標(biāo)在當(dāng)前圖 像幀的位置,從而實現(xiàn)跟蹤目標(biāo)的實時跟蹤。
[0026] 請參考圖1,為本實施例公開的一種基于視頻圖像的目標(biāo)實時追蹤裝置,該追蹤裝 置包括:圖像獲取模塊1、跟蹤目標(biāo)參考幀位置確定模塊2、跟蹤目標(biāo)當(dāng)前位置計算模塊3和 跟蹤目標(biāo)驗證模塊4,其中,
[0027] 圖像獲取模塊1用于獲取當(dāng)前幀圖像數(shù)據(jù);
[0028] 參考位置確定模塊2用于從之前至少一幀已知跟蹤目標(biāo)位置的圖像數(shù)據(jù)中選取 一中貞作為參考巾貞,并獲取跟蹤目標(biāo)在參考巾貞中的位置RectO ;
[0029] 當(dāng)前位置計算模塊3用于基于跟蹤目標(biāo)在參考幀圖像數(shù)據(jù)中的位置RectO計算跟 蹤目標(biāo)在當(dāng)前幀的位置Recti ;
[0030] 跟蹤目標(biāo)驗證模塊4用于計算當(dāng)前幀位置Recti像素矩陣的特征矩陣,基于該特 征矩陣?yán)抿炞C模型計算跟蹤目標(biāo)在該當(dāng)前幀位置Recti上的驗證概率p2,如果驗證概率 P2大于預(yù)設(shè)驗證閾值T2,則該當(dāng)前幀的位置Recti為跟蹤目標(biāo)在該當(dāng)前幀的位置,否則,該 當(dāng)前幀的位置Recti非所述跟蹤目標(biāo)在該當(dāng)前幀的位置。
[0031] 在優(yōu)選的實施例中,還包括更新模塊5,更新模塊5用于基于當(dāng)前幀位置Recti像 素矩陣的特征矩陣?yán)眠B貫度模型計算用于表征跟蹤目標(biāo)形態(tài)變化的形態(tài)連貫度P3,如果 形態(tài)連貫度P3在預(yù)設(shè)連貫范圍內(nèi),則對驗證模型進(jìn)行更新。
[0032] 根據(jù)上述基于視頻圖像的目標(biāo)實時追蹤裝置,本實施例還公開了一種基于視頻圖 像的目標(biāo)實時追蹤方法,請參考圖2,為該追蹤方法的流程圖,具體方法包括步驟如下:
[0033] 步驟S100,圖像獲取。獲取當(dāng)前幀圖像數(shù)據(jù)。圖像數(shù)據(jù)可以是灰度圖像數(shù)據(jù),也可 以是彩色圖像數(shù)據(jù)。
[0034] 步驟S200,跟蹤目標(biāo)參考幀位置確定。從之前的已知跟蹤目標(biāo)位置的圖像數(shù)據(jù)中 選取至少一幀作為參考幀,并獲取跟蹤目標(biāo)在所述參考幀中的位置RectO。請參考圖3a,為 已知跟蹤目標(biāo)位置的一幀圖像數(shù)據(jù),其中虛線框所示為跟蹤目標(biāo)在該參考幀圖像所在的位 置RectO,該圖像的其余部分為背景圖像數(shù)據(jù)。在具體實施例中,跟蹤目標(biāo)可以是人、動物、 交通工具、和/或其它用戶感興趣的能夠與背景圖像區(qū)分的任何物體。
[0035] 在具體實施例中,參考幀可以是一幀,也可以是多幀,采用多幀圖像作為參考幀相 對于一幀作為參考幀所包含的信息會更豐富,譬如能夠獲得跟蹤目標(biāo)之前的運(yùn)動矢量、形 態(tài)變化等。當(dāng)采用一幀圖像作為參考幀時,應(yīng)優(yōu)選最接近當(dāng)前幀的圖像幀作為參考幀,譬 如,當(dāng)前幀為第n巾貞,當(dāng)?shù)趎-a幀和第n-b幀的圖像中都已知跟蹤目標(biāo)時(其中,a〈b〈n),則 應(yīng)優(yōu)選第n-a幀圖像作為參考幀圖像。
[0036] 步驟S300,跟蹤目標(biāo)當(dāng)前位置計算?;诟櫮繕?biāo)在參考幀圖像數(shù)據(jù)中的位置 RectO計算跟蹤目標(biāo)在當(dāng)前巾貞的位置Recti。請參考圖3b,為虛線框所示跟蹤目標(biāo)在當(dāng)前中貞 圖像中的位置Recti。在具體的實施例中,可以采用現(xiàn)有的技術(shù)方案計算跟蹤目標(biāo)在當(dāng)前幀 圖像中的位置Rectl,例如貝葉斯估計、支持向量機(jī)(SVM)等。
[0037] 步驟S400,跟蹤目標(biāo)驗證。計算當(dāng)前幀位置Recti像素矩陣的特征矩陣,基于該特 征矩陣?yán)抿炞C模型計算跟蹤目標(biāo)在該當(dāng)前幀位置Recti上的驗證概率p2。如果驗證概率 P2大于預(yù)設(shè)驗證閾值T2,則執(zhí)行步驟S501,否則執(zhí)行步驟S502。需要說明的是,特征矩陣 可以采用現(xiàn)有的技術(shù)方案求取,例如求取該像素矩陣的特征值,根據(jù)特征值求得特征向量, 進(jìn)而得到特征矩陣。在具體實施例中,預(yù)設(shè)驗證閾值T2可以根據(jù)經(jīng)驗或者理論推導(dǎo)在系統(tǒng) 中設(shè)置。
[0038] 步驟S501,當(dāng)前幀跟蹤成功。如果驗證概率p2大于預(yù)設(shè)驗證閾值T2,則可以確定 該當(dāng)前幀的位置Recti為跟蹤目標(biāo)在該當(dāng)前幀的位置,即步驟S300所跟蹤到的目標(biāo)是正確 的,目標(biāo)處于持續(xù)跟蹤中。在優(yōu)選的實施例中,可將當(dāng)前幀圖像數(shù)據(jù)作為下一幀的參考幀圖 像。
[0039] 步驟S502,當(dāng)前幀跟蹤失敗。如果驗證概率p2小于預(yù)設(shè)驗證閾值T2,則該當(dāng)前幀 的位置Recti并非跟蹤目標(biāo)在該當(dāng)前幀的位置,即步驟S300中跟蹤目標(biāo)丟失。在實際跟蹤 過程中,跟蹤目標(biāo)的丟失可能是因為跟蹤目標(biāo)被遮擋物遮擋,也有可能是確實沒有跟蹤到, 在一具體實施例中,可以修正跟蹤目標(biāo)的位置,重新跟蹤;在另一具體實施例中,也可以放 棄當(dāng)前幀的跟蹤,進(jìn)入下一幀圖像的跟蹤。在進(jìn)行下一幀圖像的目標(biāo)跟蹤時,應(yīng)優(yōu)選繼續(xù)采 用目前的參考幀圖像作為下一次跟蹤的參考幀。
[0040] 在優(yōu)選的實施例中,可以對當(dāng)前幀滑動窗口,而后利用各窗口的多尺度矩形特征 來計算跟蹤目標(biāo)在當(dāng)前幀的位置,因此,在步驟S100獲取當(dāng)前幀圖像數(shù)據(jù)之后,還可以進(jìn) 一步包括:
[0041] 步驟S600,窗口滑動?;谂c選取的參考幀相同的預(yù)設(shè)規(guī)則對獲取的當(dāng)前幀圖像 滑動窗口形成多個窗口,如圖3b實線框所示,需要說明的是,在具體實施例中,形成的多個 窗口應(yīng)覆蓋RectO附近的區(qū)域,在優(yōu)選的實施例中,形成的多個窗口應(yīng)該能夠遍歷當(dāng)前幀 圖像的所有位置。
[0042] 對于每個窗口,都會包含著多個大小不同的像素塊,在一具體實施例中,可以利用 隨機(jī)矩形列表RT = {RT(1),RT(2),RT(3)……RT (m)}來表征各個不同的像素塊,如圖4所 示。各像素塊之間可以部分交疊,也可以不交疊。其中,一種優(yōu)選的預(yù)設(shè)規(guī)則為:以跟蹤目標(biāo) 在參考幀中的位置RectO為基準(zhǔn),按照預(yù)設(shè)的水平、垂直和尺度的步長( SX,Sy,SS)對位置 RectO附近窗口領(lǐng)域的所有的檢測位置(不同的像素塊)進(jìn)行編號。隨機(jī)矩形RT列表可以 是自上而下、從左到右的順序標(biāo)記,也可以是逆序標(biāo)記,還可以是隨機(jī)的。需要說明的是,在 具體實施例中,在一段對跟蹤目標(biāo)完整跟蹤的視頻圖像中,隨機(jī)矩形列表RT的編號方式應(yīng) 該保持一致,在優(yōu)選的實施例中,隨機(jī)矩形列表RT = {RT (1),RT (2),RT (3)……RT (m)}在算 法初始化時計算一次,然后在追蹤的過程中保持不變。對當(dāng)前幀圖像滑動窗口并對窗口劃 分像素塊,可以高效地計算各窗口像素均值,例如可以通過積分圖計算各窗口的灰度均值, 從而降低多尺度矩形特征計算的復(fù)雜度。
[0043] 步驟S700,多尺度矩形特征U提取。提取當(dāng)前幀各窗口的多尺度矩形特征U = {U (1),U (2),U (3)……U (m)},其中,m為正整數(shù),U (m)為某一窗口第m個像素塊的多尺度矩 形特征。在一具體實施例中,可以利用像素均值的方法求取各像素塊的多尺度矩形特征,具 體地,可以采用實現(xiàn)如下公式計算各像素塊的多尺度矩形特征U :
【權(quán)利要求】
1. 一種基于視頻圖像的目標(biāo)實時追蹤方法,其特征在于,包括: 圖像獲取步驟:獲取當(dāng)前峽圖像數(shù)據(jù); 跟蹤目標(biāo)參考峽位置確定步驟;從之前的已知跟蹤目標(biāo)位置的圖像數(shù)據(jù)中選取至少一 中貞作為參考巾貞,并獲取跟蹤目標(biāo)在所述參考巾貞中的位置化ectO); 跟蹤目標(biāo)當(dāng)前位置計算步驟:基于跟蹤目標(biāo)在參考峽圖像數(shù)據(jù)中的位置巧ectO)計算 跟蹤目標(biāo)在當(dāng)前峽的位置巧ectl); 跟蹤目標(biāo)驗證步驟;計算當(dāng)前峽位置(Recti)像素矩陣的特征矩陣,基于該特征矩陣 利用驗證模型計算跟蹤目標(biāo)在該當(dāng)前峽位置巧ectl)上的驗證概率(p2),如果驗證概率 (p2)大于預(yù)設(shè)驗證闊值訂2),則該當(dāng)前峽的位置(Recti)為所述跟蹤目標(biāo)在該當(dāng)前峽的位 置。
2. 如權(quán)利要求1所述的目標(biāo)實時追蹤方法,其特征在于,如果驗證概率(p2)小于預(yù)設(shè) 驗證闊值訂2),則該當(dāng)前峽的位置巧ectl)非所述跟蹤目標(biāo)在該當(dāng)前峽的位置。
3. 如權(quán)利要求1所述的目標(biāo)實時追蹤方法,其特征在于,還包括: 窗口滑動步驟;基于與選取的參考峽相同的預(yù)設(shè)規(guī)則對獲取的當(dāng)前峽圖像滑動窗口形 成多個窗口; 多尺度矩形特征扣)提取步驟;提取各窗口中各像素塊的多尺度矩形特征U=扣(1), U(2), U(3)……U(m)},其中,m為正整數(shù),U(m)為各窗口中第m個像素塊的多尺度矩形特 征; 所述跟蹤目標(biāo)當(dāng)前位置計算步驟包括: 將各窗口中各像素塊的多尺度矩形特征U=扣(1),U(2),U(3)……U(m)}代入預(yù)設(shè)分 類器,并求取各像素塊的跟蹤檢測值(pl); 查找跟蹤檢測值(pi)的極大值,所述跟蹤檢測值(pi)的極大值所對應(yīng)的像素塊即為 跟蹤目標(biāo)在該當(dāng)前峽的位置巧ectl)。
4. 如權(quán)利要求3所述的目標(biāo)實時追蹤方法,其特征在于,所述驗證模型為P-N分類器, 所述P-N分類器包括用于表征跟蹤目標(biāo)特征信息的目標(biāo)隊列(巧和用于表征背景信息的背 景隊列(腳; 所述跟蹤目標(biāo)驗證步驟包括: 獲取目標(biāo)隊列(P); 獲取背景隊列(腳; 計算當(dāng)前峽跟蹤目標(biāo)位置(Recti)像素塊的多尺度矩形特征與目標(biāo)隊列(巧的相關(guān)函 數(shù),并查找目標(biāo)隊列最大相關(guān)函數(shù)值; 計算當(dāng)前峽跟蹤目標(biāo)位置(Recti)像素塊的多尺度矩形特征與背景隊列(腳的相關(guān)函 數(shù),并查找背景隊列最大相關(guān)函數(shù)值; 根據(jù)目標(biāo)隊列最大相關(guān)函數(shù)值和背景隊列最大相關(guān)函數(shù)值求取所述驗證概率(p2)。
5. 如權(quán)利要求3所述的目標(biāo)實時追蹤方法,其特征在于,還包括: 基于當(dāng)前峽位置化ectl)像素矩陣的特征矩陣?yán)眠B貫度模型計算用于表征跟蹤目 標(biāo)形態(tài)變化的形態(tài)連貫度(p3); 如果所述形態(tài)連貫度(p3)在預(yù)設(shè)連貫范圍內(nèi),則對所述驗證模型和/或預(yù)設(shè)分類器進(jìn) 行更新。
6. 如權(quán)利要求5所述的目標(biāo)實時追蹤方法,其特征在于,所述連貫度模型包括;用于表 征跟蹤目標(biāo)特征信息的目標(biāo)隊列(巧和用于表征背景信息的背景隊列(腳; 所述形態(tài)連貫度(p3)的計算方法包括: 獲取目標(biāo)隊列(P); 獲取背景隊列(腳; 從獲取的目標(biāo)隊列(P)中選取若干元素構(gòu)成驗證隊列,并計算當(dāng)前峽跟蹤目標(biāo)位置 (Recti)像素塊的多尺度矩形特征與所述驗證隊列的相關(guān)函數(shù),并查找驗證隊列最大相關(guān) 函數(shù)值; 計算當(dāng)前峽跟蹤目標(biāo)位置(Recti)像素塊的多尺度矩形特征與背景隊列(腳的相關(guān)函 數(shù),并查找背景隊列最大相關(guān)函數(shù)值; 根據(jù)目標(biāo)隊列最大相關(guān)函數(shù)值和背景隊列最大相關(guān)函數(shù)值求取所述形態(tài)連貫度(p3)。
7. 如權(quán)利要求5所述的目標(biāo)實時追蹤方法,其特征在于,所述對驗證模型更新包括: 從當(dāng)前峽跟蹤目標(biāo)位置巧ectl)的鄰域內(nèi)隨機(jī)采樣若干正樣本構(gòu)成正樣本隊列(PL); 正樣本隊列(PL)中各元素所占權(quán)值(PV)與該元素到當(dāng)前峽跟蹤目標(biāo)位置Recti的距離成 反比。
8. 如權(quán)利要求1-7任意一項所述的目標(biāo)實時追蹤方法,其特征在于,還包括: 偏移量估計步驟;根據(jù)跟蹤目標(biāo)在當(dāng)前峽和參考峽的坐標(biāo)計算跟蹤目標(biāo)的偏移量,所 述偏移量包括水平位移、垂直位移、和/或尺度偏移。
9. 一種基于視頻圖像的目標(biāo)實時追蹤裝置,其特征在于,包括: 圖像獲取模塊,用于獲取當(dāng)前峽圖像數(shù)據(jù); 參考位置確定模塊,用于從之前至少一峽已知跟蹤目標(biāo)位置的圖像數(shù)據(jù)中選取一峽作 為參考峽,并獲取跟蹤目標(biāo)在所述參考峽中的位置巧ectO); 當(dāng)前位置計算模塊,用于基于跟蹤目標(biāo)在參考峽圖像數(shù)據(jù)中的位置化ectO)計算跟蹤 目標(biāo)在當(dāng)前峽的位置巧ectl); 跟蹤目標(biāo)驗證模塊,用于計算當(dāng)前峽位置(Recti)像素矩陣的特征矩陣,基于該特征 矩陣?yán)抿炞C模型計算跟蹤目標(biāo)在該當(dāng)前峽位置巧ectl)上的驗證概率(p2),如果驗證概 率(p2)大于預(yù)設(shè)驗證闊值燈2),則該當(dāng)前峽的位置(Recti)為所述跟蹤目標(biāo)在該當(dāng)前峽的 位置。
10. 如權(quán)利要求9所述的目標(biāo)實時追蹤裝置,其特征在于,還包括: 更新模塊,用于基于當(dāng)前峽位置(Recti)像素矩陣的特征矩陣?yán)眠B貫度模型計算用 于表征跟蹤目標(biāo)形態(tài)變化的形態(tài)連貫度(p3);如果所述形態(tài)連貫度(p3)在預(yù)設(shè)連貫范圍 內(nèi),則對所述驗證模型進(jìn)行更新。
【文檔編號】H04N7/18GK104346811SQ201410525220
【公開日】2015年2月11日 申請日期:2014年9月30日 優(yōu)先權(quán)日:2014年9月30日
【發(fā)明者】吳偉華, 靳強(qiáng), 李殿平 申請人:深圳市華尊科技有限公司