當前位置:
首頁 > 最新 > 用Mask R-CNN自動創建動圖

用Mask R-CNN自動創建動圖

作者:Kirk Kaiser

編譯:Bing

GIF

在上一篇文章中,我們介紹了用深度學習結合攝像機的方法自動檢測並拍攝小鳥的照片。今天,我們用另一種新穎的深度學習模型——Mask R-CNN,自動從視頻中製作目標物體的GIF動圖。

Mask R-CNN已經有很多應用了,論智君此前還介紹過Facebook利用這一模型實現全身AR的項目。不過在這個項目中,作者Kirk Kaiser使用的是MatterPort版本。它支持Python 3,擁有超棒的樣本代碼,也許是最容易安裝的版本了。

第一步,輸入正確的內容

在開始製作gif自動生成器時,我選擇先做一件最蠢的事,這種模式在有創意性編碼項目中表現得很好。

首先,輸入的視頻中只能含有一個人,不要嘗試跟蹤監測視頻中的多個人。這樣我們就可以將目標物體與其他對象隔離開,同時更容易評估模型掩蓋目標對象的程度如何。如果目標對象不見了,我們就能發現,同時還能看到模型識別邊框的雜訊。

我選用的是自己在後院拍攝的視頻。

用Python處理視頻

儘管用Python處理視頻有其他方法,但我更喜歡將視頻轉換為圖像序列,然後再使用ffmpeg將其轉換回來。

使用以下命令,我們就能從輸入的視頻中獲取一系列圖像。根據輸入的視頻來源,它可能在每秒24到60幀之間。你需要跟蹤每秒輸入的視頻幀數,以便在轉換後保持同步。

這將創建一個5位、0填充的圖像序列,如果您輸入的視頻長度超過5位,則可以將改成。

數字序列將與視頻持續的時間一樣長(以秒為單位),乘以每秒的幀數。所以一個時長為三秒、每秒24幀的視頻,將有幀。

由此,我們得到了一系列靜止的圖像,可以使用我們的靜態掩碼R-CNN代碼輸入。

完成了對圖像的處理後,稍後將使用以下命令把它們重新放回視頻中:

參數規定了每秒中我們需要使用構建輸出視頻的幀數。如果我們想放慢視頻,可以降低參數的值,如果想加快速度,可以增加參數的值。

按照順序,讓我們先用Mask R-CNN來檢測並處理圖像。

檢測並標記圖像

Matterport版的Mask R-CNN附帶了Jupyter Notebook,幫助深入了解Mask R-CNN的工作原理。

一旦你在本地設置好了repo,我建議在demo筆記本上運行,並評估圖像檢測工作的水平。

通常掩碼是無符號的8位整數,形狀與輸入的圖像一致。當沒有檢測到目標對象時,掩碼是0或者黑色。當檢測到對象時,掩碼是255或白色。

為了處理蒙版,我們需要把它作為一個通道,複製或粘貼另一張圖像。用類似下面的代碼,可以從每個視頻的圖像中將單個人物摳出來,生成一張透明底的圖像:

其中的變數非常重要,它表示我們用COCO數據集分出的不同事物的類別。然後只需要把列表中的任意類別的名字更換成,你就可以從視頻中獲取帶有蒙版的版本了。

把圖片轉換成GIF

GIF

現在我們有了一組透明圖像,可以打開看看它們的效果。我的結果並不是很好,人物摳的不是很精緻,不過也挺有趣的。

然後我們就可以將圖像輸入進ffmpeg中製作動圖了,只需要找到圖像序列的最大寬度()和高度(),然後將其粘貼到一個新的圖像序列中:

上面的代碼打開了我們的這個目錄,並在所有圖像中迭代,尋找最大尺寸圖像的和。然後它將這些圖像都放到一個新目錄()中,我們就能將其生成gif。

在這裡,我們利用Imagemagick生成gif:

但是僅僅從視頻中自動生成動圖也沒什麼好激動的,讓我們繼續把它們混合起來,看看會發生什麼……

在Pygame或視頻中應用生成的GIFs

GIF

最近,我直接將這些提取的圖像用在了Pygame中。我並沒有將它們轉換成gifs,而是保留了原始PNG格式。

我自創了一個創意性小編程環境,其中包括一個和功能,將圖像序列作為輸入。使用這個設置,我可以將圖像旋轉、縮放或干擾它們。以下是代碼:

它將每個目錄中的圖像載入到一個alpha中。其中的每一個都被添加到列表中,然後我們可以在循環中或將每張圖片畫到屏幕上。

這只是基本設置,更高級的操作請看上面的代碼,或者到我的GitHub中查看其他有趣的實驗。

用提取的Mask修改輸入視頻

GIF

為了產生上圖的效果,我記錄了視頻的前n幀,以及人物()和滑板()的位置。

然後我將把之前摳出來的圖一個一個疊好,最後粘貼最後一張圖像。

除此之外我還試著將我的蒙版和其他視頻混合起來。這裡就是合成的一個案例:

GIF

同時調試環境和滑板者的每一幀,然後在環境上蓋上蒙版,覆蓋在滑板視頻的頂部。這個代碼也可以在我的GitHub里找到。

結語

GIF

想將深度學習與藝術結合,這種項目只是一個開始。另外還有一個名為OpenPose的模型,能夠預測一個人的動作,並且模型十分穩定。我計劃將OpenPose合併到未來的項目中,創建更有趣的作品。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

上妝工具小測評
單反攝影小白入門課 No.7 曝光補償以及白加黑減

TAG:全球大搜羅 |