如何光明正大地學習KISS?當然是用這個DL接吻檢測器了

(給機器學習算法與Python學習加星標,提升AI技能) 

選自 arXiv

作者:Amir Ziai

本文轉自“機器之心”(almosthuman2014)

不要誤會。作爲一個嚴肅的公衆號,我們纔不會收集什麼奇怪的視頻呢!我們批判了大量電影,造訪了衆多 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

推薦閱讀
厲害了!潘石屹Python考試首秀99分!

下載 | 5 本程序員成長必讀書籍
太讚了!微軟官方再次上線了Python教程,這次比較高級
太牛逼了!一位中國博士把整個CNN都給可視化了,每個細節看的清清楚楚!

放棄Excel,擁抱Python!神級編輯器統一表格與Python


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章