如何光明正大地學習KISS?當然是用這個DL接吻檢測器了
情人節的時候,機器之心向大家推薦了一個鑒黃數據集,結果大家反應熱烈,紛紛留言。還有一些有「大膽想法」的朋友在問有沒有視頻的數據集,這不,福利來了 [賊笑]←←
不要誤會。作為一個嚴肅的公眾號,我們才不會收集什麼奇怪的視頻呢!我們批判了大量電影,造訪了眾多 GitHub,這次推薦給大家的內容的確包含大量視頻數據,這些視頻的確有那麼點少兒不宜,大家看完還可以借鑒一下裡面的姿勢呢。
誒,想什麼呢?這些只是接吻的視頻而已。這些接吻視頻片段來自 100 部電影,看完這些,你可能就學會了十八式或者一百零八式接吻姿勢了?
這個項目是斯坦福的 Amir Ziai 做的,至於他到底在斯坦福念的是什麼學位,小編還沒搞明白。但略查了查,這人還挺厲害:
打開今日頭條,查看更多圖片
本科畢業於有「伊朗麻省理工」之稱的謝里夫理工大學,念的是機械工程;然後在加拿大名校西蒙弗雷澤大學讀了碩士學位,接著又在 UC Berkeley 拿到了數據科學的碩士學位,然後是喬治亞理工大學的計算機科學、機器學習碩士學位。最後,這兩年在斯坦福進修 AI。
貌似跑題了,重點是他做的項目:深度學習電影鏡頭接吻檢測器。一看就好有內涵哦……
這個系統到底是幹嘛用的?
不要以為作者這麼無聊,就為了集中看一下電影中的接吻鏡頭順便觀摩學習一下。其實,電影中的場景類型對於視頻編輯、分類和個性化等應用來說,都非常重要。
精確的場景探測器可以豐富特定場景類型的視頻元數據,用戶也可以輕鬆搜索和檢索目標片段。
但是,大多數現有系統都只是對靜止幀進行分類,或者識別整個視頻中是否存在某個動作。所以,在這項研究中,作者提出了一個檢測和提取電影中接吻片段的系統。
本著學習的精神,小編為廣大讀者朋友們推薦了這個系統,大家可以試試這個檢測系統好不好用,好用的話用來干點別的也是可以的。當然,你想集中觀看一下這些電影中的接吻片段,順便觀摩學習一下也是可以的。
激動人心接吻檢測器
看到這裡,大家一定急著想用這個工具來「學習」了。作者在 Github 上提供了使用代碼的方法,可以通過提供的 API 從視頻中獲得接吻鏡頭。
調用代碼的方式如下:
使用作者提供的 segmentor 和 unpickle 兩個 API,然後使用 seg.visualize_segments
提取本地 mp4 文件中的接吻鏡頭:
從 Youtube 網站的視頻獲取接吻鏡頭:
代碼可以在 Github 的 examples 文件夾中找到。
- Github 地址:https://github.com/amirziai/kissing-detector
這個檢測系統是怎麼做的?
這個系統輸入的是單個視頻(電影),輸出的是視頻中檢測到的一個或多個不重疊的接吻片段。比如說一部 60 分鐘的電影 M 中有兩個時長為 1 分鐘的接吻場景,分別在第 5 分鐘和第 55 分鐘時出現。這時系統應該輸出 K1 和 K2,其中 K1 表示第一個接吻片段,K2 表示第二個接吻片段。
它需要兩個組件來實現這一點:二元分類模型和聚合演算法(aggregation algorithm)。作者小哥哥還製作了一個小視頻,他簡要介紹了這篇論文的最主要思想與做法:
首先,二元分類模型獲取連續且不重疊的 1 秒鐘視頻片段,然後為每個片段預測一個二進位標籤(即該片段是否為接吻片段)。接著,聚合演算法把對這些片段的預測聚集到一組接吻場景中。圖 1 描述了這個過程,如下所示:
二元分類模型
二元分類模型由兩個架構組成:一個 18 層的 ResNet CNN 和一種類似 VGG 的架構 VGGish。如下圖所示:
ResNet 以 3 通道 224x224 張量的形式在 1 秒鐘視頻片段的最後一幀上運行。作者已經分離了最後一個全連接的層,並使用了前一層的 512 維輸出。
而 VGGish 對 1 秒鐘視頻片段最後 960 毫秒的音頻波進行轉換。這種轉換是以單通道 96x64 張量的方式完成的。VGGish 是一種卷積網路,它有效地將轉換後的音頻視為圖像,並生成語義上有意義的 128 維嵌入。
聚合演算法
聚合演算法結合了來自二元分類器的預測標籤列表 P,並生成了一組接吻片段。例如,有一部 60 分鐘的電影中包含一個兩分鐘長的接吻場景,從第 30 分鐘開始。
分類器將輸出 3600 個預測結果,作者再將這些預測放在列表 P 中。假如有一個完美的分類器,那分割器的預期輸出將是包含單個視頻片段的列表,該片段從第 30 分鐘開始,在第 32 分鐘時結束。
演算法 1 詳細描述了聚合演算法的邏輯:
數據集來自哪裡?
作者使用的數據是一個 2.3TB 大小的資料庫,裡面包含了從 1915 年到 2016 年的 600 部好萊塢電影。這些電影的題材範圍很廣,解析度也各不相同,大小在 200MB 到 12GB 之間。
作者從中手動選擇了 100 部電影,然後對這些電影中的接吻片段進行了注釋。未注釋的片段被視為非接吻片段並被如此標記,如圖 4 所示。
最後,作者總共標註了 263 個接吻片段和 363 個非接吻片段,時長從 10 秒到 120 秒不等。數據集分為訓練、驗證和測試集,比例分別為 80%、10%、10%。
對於每個帶注釋的視頻片段,作者會提取兩組特徵,分別是圖像特徵和音頻特徵。
這個接吻鏡頭檢測系統好用嗎?
作者使用了 F1 得分來評估二元分類器的質量。F1 被計算為精確度和召回率的調和平均數,並在二者之間達到平衡,這使得系統很難作弊。
作者對二元分類器訓練了 10 個 epoch 後,評估 F1 得分為 0.95。也就是說,這個系統的準確率高達 95%。對於這個初始實驗,他訓練了網路中的所有權重。此外,使用的批大小是 64,ResNet-18 作為圖像特徵提取器,VGGish 作為音頻特徵提取器,Adam 優化器的學習率為 0.001。
並且,作者通過實驗發現,ResNet 是這一任務和訓練配置的最佳架構。因此,他還對 3D ResNet-34 訓練了 10 個 epoch,但使用該架構的 F1 得分為 0.88,低於 ResNet-18。
對於這一差異,作者認為可能有兩個原因:首先,ResNet-18 受益於在 ImageNet 上進行的預訓練,而 3D ResNet-34 是從頭開始訓練的;其次,模型在 16 幀的時間深度上可能不足以捕捉相關上下文。
如果對這個系統感興趣,可以戳下面的鏈接了解更多信息哦~
- https://arxiv.org/pdf/1906.01843.pdf
※每類13張標註圖就可從頭學分類器,DeepMind新半監督模型超越AlexNet
TAG:機器之心 |