影片編輯利器,不喜歡就框除!開源影片物體移除軟體video object removal

  • 2019 年 12 月 27 日
  • 筆記


image inpainting

像上圖中的image inpainting相信大家並不陌生,OpenCV就有相關的例子。

但如果是去除影片里的目標呢,就不那麼容易了。

今天跟大家介紹一款基於PyTorch的video object removal的開源庫,只用在第一幀框出物體就可以將框出的物體在影片中移除,操作很方便,移除的效果也不錯。

程式碼鏈接:

https://github.com/zllrunning/video-object-removal

對於移除影像中的物體,我們可以先將物體使用mask遮住,再用image inpainting來解決,而影片中如果想移除某個物體呢?

可以簡單的使用拆幀按照影像來處理,但是影片中的物體會有移動,那我們需要每幅影像的mask,這會帶來很大的工作量,而且這種思路沒有考慮到影片中時序上的關係。

CVPR 2019有篇文章Deep Video Inpainting[1]介紹了一種影片的處理方法,生成效果時序上更加一致,但此方法同樣需要影片中每幀的物體的mask,如果想使用此方法那我們就需要想辦法獲取物體的mask。

在3月7日,52CV發了關於SiamMask[2]目標跟蹤演算法的文章(CVPR 2019 | 驚艷的SiamMask:開源快速同時進行目標跟蹤與分割演算法),將跟蹤與分割結合起來,能夠對給出目標的像素級標註。

那SiamMask提供影片幀中物體的mask,Deep Video Inpainting負責物體的移除、修復,便可以實現一鍵移除影片中的物體,解放了標註mask的雙手。

這就是本文介紹的這款開源軟體的做法。

軟體使用也非常簡單。

在配置好環境後,只需要一條命令:

python demo.py --data data/Human6

支援影片文件的測試:

python demo.py --data data/bag.avi

如果你發現這個物體的邊緣處理的不是很乾凈你可以更改--mask-dilation這個參數,作用是擴大遮罩的範圍:

python demo.py --data data/Human6  --mask-dilation 32

最後看下效果:

操作示例,框出要移除的物體

修復後的影片會自動存儲results/inpaint文件夾下。

感覺用這個可以做很多有意思的應用,你有什麼想法嗎?歡迎留言。

參考文獻

[1] Wang Q, Zhang L, Bertinetto L, et al. Fast online object tracking and segmentation: A unifying approach[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 1328-1338.

[2] Kim, Dahun and Woo, Sanghyun and Lee, Joon-Young and So Kweon, In, Deep Video Inpainting//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.2019: 5792—5801.

這份程式碼剛剛開源,感謝開發者,也歡迎大家給大佬加星。

https://github.com/zllrunning/video-object-removal

Tags: