視頻內容理解核心技術解密:Partial re-ID 在成片體檢中的技術實踐

csdn 發佈 2020-08-14T10:15:44+00:00

在圖1中,鏡頭 A 中的人物形象具有可識別的正臉,此時,如果我們能夠匹配出鏡頭 B 中的同一人物,那麼我們最終就能識別出那些在某些鏡頭中僅僅只是背面或者側面的人物角色信息。

作者 | 阿里文娛高級算法工程師 朔衣

責編 | 李雪敬

頭圖 | CSDN下載自視覺中國

引言

人物重拾(Person Re-identification,簡稱為re-ID)是一項在現實世界非常具有挑戰性的任務,它旨在利用視覺算法模型匹配出不同視角的不同攝像頭下的相同人物。無處不在的遮擋,複雜的背景,光照的變化等都使得這個問題困難重重。而目前大部分的開源數據集,如 Market1501,DukeMTMC 等都是在監控視頻下採集的行人數據,這些數據集的人物形象大多是直立全身的固定姿態,目前的一些主流的算法模型對於這些數據集都有很好的性能優化和提升。然而,基於內容視頻數據進行的人物 re-ID 的研究工作卻是屈指可數。區別於傳統的監控視頻,內容視頻中有大量的人工剪輯和鏡頭切換,大量多角度和多機位的鏡頭拍攝,這些都使得內容視頻中的人物形象存在不同程度的遮擋,人體區域的丟失,角度,姿態以及大小的變化。

我們可以通過如圖1的一個具體的示例看下。在圖1(a)中,A 和 B 是用來描述同一場景的不同角度和機位的鏡頭。而鏡頭 A 中和鏡頭 B 中的人物匹配問題可以看做是一個針對全身人體和半身人體的匹配問題。在圖1(b)中,鏡頭 A 中的人物形象具有可識別的正臉,此時,如果我們能夠匹配出鏡頭 B 中的同一人物,那麼我們最終就能識別出那些在某些鏡頭中僅僅只是背面或者側面的人物角色信息。這有助於我們提高視頻內容分析指標的準確性和有效性。

(a) (b)

圖1 內容視頻中的人物匹配

綜上我們可以看出,內容視頻中的 re-ID 算法要解決的一個主要問題就是遮擋或者部分人物形象的匹配,學術界通常稱為 partial re-ID 或者 occluded re-ID。目前行業內對於這類問題的主要解決思路一種是通過將局部區域特徵重建為全局特徵來實現隱式的對齊操作,另一種則是利用人體空間區域劃分,來實現相同區域特徵的顯式對齊操作。但是現有這些方法的問題一方面是訓練數據集跟內容視頻的數據差異較大,另一方面是粗粒度的空間區域劃分並不能適應內容視頻中複雜的人體姿態。因此,我們考慮從數據集和算法模型兩個方面進行內容視頻中的 re-ID 算法優化。

數據集構建

圖2是開源數據集和劇集視頻數據的一個對比,從圖中我們發現,劇集視頻中的人物姿態更加多變,解析度較高,並且伴隨著大量的遮擋或人體部分丟失,而開源數據集中的人物姿態較為固定,較多是直立全身的圖像。因此,在目前的開源數據集上訓練的算法模型很難直接應用於內容視頻之中。基於此,我們直接構建了一個劇集場景下的大型 re-ID 數據集。

圖2 數據集對比

整個數據集的構建流程主要分為以下幾步:

1. 篩選劇集:根據時間和熱度選取大約500部劇集,每部選擇10-20集。

2. 抽幀檢測:對每集視頻抽幀檢測,利用人體檢測模型獲取人體框圖片。

3. 數據分組:對檢測好的人體框圖片,按照 show 進行分組,以減少標註工作量。

4. 數據標註:對分組的數據集進行人物ID的標註,每個 ID 大約標註30張左右。

最終得到我們劇集場景下的 Drama-ReID 數據集,整個數據集大約有1W的 ID 數,包含38W左右的圖片數量。是目前行業內最大的劇集場景的 re-ID 數據集。

算法模型

我們的整體算法模型框架如圖3所示。基礎網絡部分使用預訓練的 resnet50,為了獲得更大的特徵圖,我們會將 backbone 的最後一個卷積層的 stride 設置為1。在 backbone 之後有三個主要的模塊:人體語義分割,信息熵度量模塊,語義對齊匹配。整個網絡結構是 end-to-end 訓練。

圖3 網絡結構

1. 人體語義分割

不同於現有的一些算法那樣對人體區域進行一個空間區域上的劃分,我們利用人體語義分割進行人體語義區域的劃分,如圖4所示:

圖4 人體語義分割

一方面,我們可以利用人體語義區域劃分來實現語義級別的特徵對齊,另一方面,我們可以去掉背景區域特徵,防止部分複雜背景的圖像對人物匹配造成影響。同時,我們也並沒有像現有一些算法中那樣利用一個單獨的語義分割模型來提取人體語義區域,而是使用一個多任務學習的人體語義分割,它的好處一是可以減少模型的複雜度和計算量,另一個則是通過增加語義分割的監督 loss,可以有效提高基礎特徵的空間表征能力

2. 信息熵度量模塊

多任務的人體語義分割可以幫助我們提取人體語義區域,但同時我們也需要考慮語義分割錯誤的情況。錯誤的語義分割會帶來錯誤的特徵對齊,從而導致人物匹配錯誤。考慮到如果某個區域的分割機率越高,這個區域被分割正確的可能性就越高,我們通過計算分割機率的信息熵來度量這種分割的不確定性。計算公式如下:

如果越小,表示模型對於這部分區域分割正確的把握就越高。通過這種方式,我們可以計算出特徵圖上每個點的信息熵,然後通過設定一個合適的信息熵閾值,我們將整個人體區域劃分為了高熵和低熵區域。

整個的信息熵度量模塊如圖5所示:

圖5 信息熵度量

高熵區域是語義分割不確定性高的部分,它們可能無法被正確的劃分到某個的語義區域上,我們直接提取它們的全局特徵。而往往,同一個人物的高熵部分具有某種獨特性(例如某個人物的特殊的帽子),這種獨特少有的元素很難被分割正確,但它卻是我們進行人物匹配的一個重要依據,而我們的高熵區域的全局特徵就是在表征這類人物所獨有的元素。

低熵區域是語義分割不確定性低的部分,它們往往是能夠輕易分割正確的部分,往往跟人體的區域結構具有強關聯性。我們通過一個 entropy attention map 來增強語義分割中確定性高的表征,而抑制語義分割中確定性低的表征。一方面增強了穩定的語義部件的表達,另一方面減少了錯誤對齊的可能。

同時,在模型訓練過程中,整體的信息熵會隨著分割 loss 的降低而降低。在訓練的初始階段,模型不能很好進行語義分割,導致信息熵都偏高,大部分的區域都會被劃分到高熵區域,此時人物比對的特徵以全局特徵為主。隨著訓練的進行,模型的語義分割能力會提高,信息熵會降低,大部分的區域都會被劃分到低熵區域,此時人物比對的特徵以語義特徵為主。這像是模型在特徵選擇上的一種自我對抗學習,在訓練的過程中動態的選擇高熵的全局特徵和低熵的局部特徵。

3. 語義對齊匹配

在獲得了高熵的全局特徵和低熵的語義特徵之後,我們會首先根據下面的公式計算其各自的重要性分數,對於高熵區域來說,如果它所包含的人體區域特徵越多,它的重要性分數會越高。而對於低熵區域來說,如果某個人體語義區域不可見,被遮擋或者不顯著,則它的重要性分數會低。而語義對齊匹配的如下圖所示:

圖6 語義對齊匹配

根據各自的重要性分數和其對應的特徵比對距離,可以計算最終人物匹配的整體距離。

此時,我們就實現了人體區域的動態對齊匹配。

結果分析

我們在開源數據集上進行了我們的模型一些 SOTA 模型的效果對比,結果如下:

圖7 Holistic 數據集對比

圖8 Partial 數據集對比

圖7是全身數據集上的對比結果,圖8是 Partial 數據集的對比結果。

同時我們也在構建的 Drama-ReID數 據集上進行了測試對比,結果如下:

圖9 Drama數據集對比

成片體檢應用案例

通過加入 Partial re-ID 特徵我們可以獲取更加准全的視頻人物數據,這些數據目前主要應用於成片體檢中各項指標的計算,例如人物出鏡,人物交互,故事線等, 同時我們可以根據以上這些指標對視頻內容進行量化的剪輯優化或者內容評估。以下是《冰糖燉雪梨》的一些 case 應用。

圖10 角色出鏡率

圖11 故事線分布

圖12 角色社交網絡關係

關鍵字: