Google開發出可以理解各種重複過程的模型RepNet,像是人類跑步、鐘擺以及鳥類拍動翅膀等動作,Google提到,過去的研究是跨不同的影片,以非常精細的等級理解同一個動作,而這個研究則是從單一影片,辨識出不停重複的動作。

在日常生活中,常見各種不停重複的過程,像是月亮的陰晴圓缺,到各種生產線和交通的重複模式,Google提到,重複過程能夠提供許多資訊,可以幫助研究人員,探索事件重複發生的原因,或是場景中改變的趨勢。

這些重複過程,通常具有明確的動作單元,也就是構成動作的有意義片段,Google舉例,當一個人切洋蔥,動作單元便是重複製造出洋蔥切片的這個動作,動作單元可用於自動化精細地分析這些行動,且不需要人工註釋這些動作單元。

而RepNet是一種模型,以影片作為輸入,這些影片包含各種周期性動作,RepNet能計算動作重複的周期數,而過去解決重複計數的問題,通常是比較影格的像素強度,但是Google提到,實際的影片在拍攝過程,攝影機可能會移動,場景中的物體也會被遮蔽,比例還可能出現急劇變化,所以模型必須要能夠學習不受這些雜訊影響的特徵。

因此Google以端到端的方式訓練機器模型,來估算重複的次數,RepNet由3部分組成,影格編碼器,以及稱為相似矩陣的中介表示,還有周期預測器。系統會先將每個影格的嵌入與其他影格進行比較,計算時間自相似矩陣(TSM),輸出可讓後續模組容易分析和計算次數的矩陣。

之後每個影格,都根據時間自相似矩陣的相似性序列,使用Transformers來預測重複周期,一旦有了周期,就可以將整個周期片段中的影格數除以周期長度,獲得每影格計數,進行加總後就能預測影片中,動作的重複次數。

部分例子具有固定周期,但是部分則沒有(下圖),像是人進行開合跳則是典型有固定周期的案例,但球在地面彈跳,重複的周期會隨著失去能量而縮短,還有攪拌混凝土的人(圖右),這個重複動作片段的前後,皆有一段沒有動作的區間。

Google提到,這3個例子在TSM中有明顯的不同,而RepNet把TSM作為中介層的優點是,Transformer的處理會在自相似空間而非特徵空間,因此可以擴及應用到更多種類的案例,像是跳高或是游泳,只要動作以相似的動作和節奏進行,RepNet就能夠處理。

要訓練這類的模型,需要收集大量重複動作的影片資料集,並且由人工計算影片中,動作重複的次數,但這個過程太過繁瑣耗時,因此Google使用合成資料集來訓練RepNet,研究人員以重複不包含重複動作的影片,來生成重複任意次數的影片,但Google提到,深度學習太聰明,可以找出偽影作弊,而非真的學會辨識重複模式,因此他們還使用了相機運動增強技術,在播放影片的同時移動影片,以增加困難度。

Google提到,即便RepNet是以合成資料集訓練,但是仍可以良好地處理實際的影片,RepNet可以應用在許多的場景中,像是計算心臟跳動這種等速的重複運動,也能夠用於計算變速的案例(下圖)。


Advertisement

更多 iThome相關內容