重複過程從自然週期(例如月相或心跳和呼吸)到人工重複過程(例如在生產線或交通模式中發現的重複過程)在我們的日常生活中司空見慣。除了它們的普遍性之外,研究人員還對重複過程感興趣,因為人們可以從中梳理出各種見解。多次發生的事情背後可能有潛在的原因,或者場景中可能有可能有助於理解的逐漸變化。有時,重複過程為我們提供了明確的“動作單元”,即構成動作的語義上有意義的片段。例如,如果一個人正在切洋蔥,則動作單元是重複以產生額外切片的操作動作。這些單元可能表示更復雜的活動,並且可以讓我們在更精細的時間尺度上自動分析更多此類動作,而無需人工註釋這些單元。由於上述原因,旨在長時間觀察和理解我們的世界的感知系統將從理解一般重複的系統中受益。
在“ Counting Out Time: Class Agnostic Video Repetition Counting in the Wild ”中,我們展示了RepNet,這是一個單一模型,可以理解廣泛的重複過程,從人們鍛鍊或使用工具,到動物奔跑和鳥類扇動翅膀,鐘擺擺動,以及其他各種各樣的鐘擺。與我們之前的工作相比,我們之前的工作使用相同動作的不同影片的迴圈一致性約束來在細粒度級別理解它們,在這項工作中,我們提出了一個可以識別單個影片中重複的系統。除了這個模型,我們還發布了一個數據集來對影片中的類別無關計數進行基準測試,以及一個Colab 筆記本來執行 RepNet。
RepNet
RepNet 是一種模型,它將包含各種類(包括訓練期間未見過的)的週期性動作的影片作為輸入,並返回其中發現的重複週期。在過去透過直接比較幀中的畫素強度已經解決了重複計數的問題,但現實世界的影片具有相機運動、現場物體遮擋、嚴重的尺度差異和形式變化,這需要學習對此類噪聲不變的特徵。為此,我們以端到端的方式訓練機器學習模型,以直接估計重複的週期。該模型由三部分組成:幀編碼器、稱為時間自相似矩陣的中間表示(我們將在下面描述)和週期預測器。
首先,幀編碼器使用ResNet架構作為每幀模型來生成影片每一幀的嵌入 The ResNet選擇架構是因為它已成功用於許多影象和影片任務。透過基於 ResNet 的編碼器傳遞影片的每一幀會產生一系列嵌入。
在這一點上,我們透過將每個幀的嵌入與影片中的每個其他幀進行比較來計算時間自相似矩陣(TSM),返回一個矩陣,便於後續模組分析以計算重複次數。該過程在影片幀流中顯示了自相似性,從而實現了週期估計,如下面的影片所示。
對於每一幀,我們然後使用Transformers直接從 TSM 中的相似性序列預測重複週期和週期性(即,幀是否是週期性過程的一部分)。一旦我們有了週期,我們透過將週期段中捕獲的幀數除以週期長度來獲得每幀計數。我們總結一下以預測影片中的重複次數。
時間自相似矩陣
上面顯示的晝夜迴圈中的 TSM 示例源自具有固定週期重複的理想化場景。來自真實影片的 TSM 通常會揭示世界上迷人的結構,如下面的三個示例所示。Jumping jacks 接近於理想的固定週期的週期性動作,而相反,彈跳球的週期隨著球透過反覆彈跳而失去能量而下降。有人攪拌混凝土的影片展示了重複動作,前後一段沒有運動。這三種行為在學習到的 TSM 中是有明顯區別的,這就要求模型注意場景中的細微變化。
在 RepNet 中使用 TSM 作為中間層的一個優點是,transformer 的後續處理是在自相似空間而不是特徵空間中完成的。這鼓勵了對看不見的類的泛化。例如,由跳躍或游泳等不同動作產生的 TSM 是相似的,只要該動作以相似的速度重複。這使我們能夠在某些類上進行訓練,但期望泛化到看不見的類。
資料
訓練上述模型的一種方法是收集捕獲重複活動的大型影片資料集,並用重複次數標記它們。這方面的挑戰是雙重的。首先,它需要檢查大量影片以識別那些重複動作的影片。之後,每個影片都必須用重複動作的次數進行註釋。雖然對於某些任務,註釋者可以跳過幀(例如,將影片歸類為顯示跳躍的影片),但他們仍然需要檢視整個影片以計算執行了多少次跳躍。
我們透過引入合成數據生成過程來克服這一挑戰,該過程使用可能根本不包含重複動作的影片來生成重複影片。這是透過隨機選擇一段影片重複任意次數來實現的,由原始影片上下文預定。
雖然這個過程生成的影片類似於具有重複過程的自然影片,但對於深度學習方法來說仍然太簡單了,深度學習方法可以透過尋找偽像來學習作弊,而不是學習識別重複。為了解決這個問題,我們執行了極端的資料增強,我們稱之為相機運動增強。在這種方法中,我們修改影片以模擬攝像機,該攝像機在影片播放時使用 2D仿射運動平滑移動。
評估
儘管我們可以在合成重複影片上訓練模型,但生成的模型必須能夠推廣到重複過程的真實影片。為了評估經過訓練的模型在真實影片上的效能,我們從Kinetics 資料集收集了約 9000 個影片的資料集。由於 Youtube 上看到的資料的多樣性,這些影片跨越了許多動作類並捕捉了不同的場景。我們用影片中重複的動作計數來註釋這些影片。為了鼓勵該領域的進一步研究,我們釋出了這個資料集的計數註釋,我們稱之為Countix。
應用
與類別無關的計數模型有許多有用的應用。RepNet 作為一個單一模型,可以計算來自許多不同領域的重複:
RepNet 可用於估計來自超聲心動圖影片的心跳率,即使它在訓練中沒有看到此類影片:
RepNet 還可用於監控重複活動的速度變化。下面我們將展示如何將此類速度變化也用於其他質量或過程控制設定。