去除視頻裡面的水印的方法:視頻去碼的軟體

我們現在經常用到的馬賽克其實起源於建築上的圖案裝飾,如今馬賽克常用於圖像或視頻的模糊處理。隨著技術的進步,打碼與去碼變成了一種常見的技術研究方向,同時也掀起了一場技術與道德的「戰爭」。

那麼為什麼要打馬賽克?其實是出於一種隱私保護,例如新聞上出現犯罪嫌疑人的畫面時是需要打碼的,因為尚未定罪時需要維護嫌疑人的肖像權。

現如今,大部分打馬賽克的工作都需要我們手動來打,比如在圖像/視頻製作軟體里添加馬賽克。那麼這種工作能不能交給AI呢?如果AI可以自動對圖像/視頻進行實時處理,無疑會幫人類減輕很大的工作量。

答案是可以!Adrian Rosebrock博士在博客中分享了通過OpenCV實現「人臉自動馬賽克」這一教程,而這個項目是受到了他的一位博客讀者的啟發。事實上,這個項目有很大的現實意義。

那麼,AI究竟是如何做到自動實時打碼的?說到這裡,首先需要介紹一下什麼是人臉模糊。

什麼是人臉模糊?

Adrian Rosebrock博士在博客中詳細的分享了技術實現方法,從介紹人臉檢測器,人臉模糊的簡單步驟,到分別用OpenCV對人臉進行高斯模糊和像素化模糊的詳細操作。

Adrian Rosebrock博士的詳細教程:

簡單來說,實現人臉模糊可以分為以下4步:

AI能實時檢測視頻流中人臉並打馬賽克,視頻後期福音!

第一步:人臉檢測

在這一步可以使用任何的人臉檢測器,只要它能在圖像或視頻中生成人臉的邊界框坐標就行。

AI能實時檢測視頻流中人臉並打馬賽克,視頻後期福音!

有一些常見的人臉檢測工具可以供你參考:

  • Haar cascades
  • HOG + Linear SVM
  • Deep learning-based face detectors

一旦識別到人臉,就可以進入到第二步了。

第二步:圖像/視頻的ROI提取

臉探測器會給出一個邊界框,也就是圖像中人臉的坐標(x, y)。

這些坐標通常表示:

  • 人臉邊界框的起始坐標x
  • 面部截止的坐標x
  • 人臉位置的起始坐標y
  • 面部截止的坐標y

然後就可以用這些信息來提取人臉ROI(感興趣區域),如下圖所示:

AI能實時檢測視頻流中人臉並打馬賽克,視頻後期福音!

接下來就開始進行人臉模糊啦。

第三步:人臉模糊

說到打碼這件事,有兩種常用的模糊方式,一個是高斯模糊,一個是像素化模糊。高斯模糊的效果比較「溫柔」,但很可能面臨著模糊不徹底的問題,而像素化模糊就相當簡單粗暴,是我們最常見的馬賽克樣式。AI能實時檢測視頻流中人臉並打馬賽克,視頻後期福音!

高斯模糊下的面部圖像

這兩個模糊方式都可以實現人臉自動模糊這個項目,練習時可以憑你的個人喜好選擇。

在進行人臉模糊之後,最後一步就是將模糊後的人臉放回原始圖像中。

第四步:將模糊後的照片整合到原始圖像中

AI能實時檢測視頻流中人臉並打馬賽克,視頻後期福音!

使用來自人臉檢測的原始(x, y)坐標(步驟二中提到的),我們可以得到模糊/匿名化的人臉,然後將其存儲到原始圖像中(如果使用OpenCV和Python,則此步驟使用NumPy數組切片)。

至此,人臉模糊的部分就完成了。

如何在實時視頻中通過AI實現人臉自動模糊?

文摘菌在這裡簡單展示一下如何使用OpenCV識別人臉,然後再將人臉模糊應用到實時視頻流中。

首先需要從Adrian Rosebrock博士的這篇博文中獲取源代碼,然後打開OpenCV人臉檢測器,使用以下命令啟動blur_face_video.py:

$ python blur_face_video.py --face face_detector --method simple
[INFO] loading face detector model...
[INFO] starting video stream...

AI能實時檢測視頻流中人臉並打馬賽克,視頻後期福音!

高斯模糊實時視頻流

以可以通過method pixelated來進行像素化的人臉模糊:

$ python blur_face_video.py --face face_detector --method pixelated
[INFO] loading face detector model...
[INFO] starting video stream...

AI能實時檢測視頻流中人臉並打馬賽克,視頻後期福音!

像素化模糊實時視頻流

以上應用的人臉模糊方法,是假設輸入視頻流的每一幀中都可以檢測到人臉。

那麼,如果檢測器中途未能檢測到人臉會怎樣?顯然,在漏掉的幀中無法進行打碼,也就破壞了人臉模糊的目的。

在這種情況下我們該怎麼做呢?

通常,在人臉移動的比較慢的情況下,有一個簡單的方法是取最後一個已知的面部位置,然後模糊該區域。

還有一種高級的方法是使用專門的對象跟蹤器,如果人臉檢測器沒有識別到,則對象追蹤器可以補充提供面部位置,這個方法會複雜很多,因為要在人臉的多個角度建立跟蹤,但是這個方法也更加完善。

微軟曾提出一種可在視頻中通過AI實現人臉模糊的方法

早在2017年,微軟研究院就提出了一套基於AI演算法的視頻人臉模糊解決方案。雖然該演算法能夠對視頻進行自動處理,但是需要用戶點擊想要打碼的人才能打上馬賽克。

這套演算法能夠將源視頻中的人物提取出來,並返回給用戶,然後用戶可以自由選擇給誰打碼。

AI能實時檢測視頻流中人臉並打馬賽克,視頻後期福音!

要想打碼,首先需要找出所有人臉的出現位置,並把同一個人所有幀中的人臉連接起來。為此,需要有三個演算法:人臉檢測、跟蹤、識別

下圖更為詳細的展示了關於這套人臉模糊系統具體是如何工作的:

AI能實時檢測視頻流中人臉並打馬賽克,視頻後期福音!

在時間複雜度方面,微軟研究院稱該系統在Azure的CPU伺服器上能夠實時處理720p的視頻,並且能夠以2倍時長處理1080p的高清視頻。

技術始終在進步,3年前就可以做到在視頻中通過AI進行人臉模糊,3年後已經可以利用AI在實時視頻流中自動打碼了,我們相信,科技還能做到更多。

儘管,目前AI實時打碼這一技術還尚未成熟,但總有一天技術能夠「承擔」起更多的社會責任,保護更多的人。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/225754.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 14:46
下一篇 2024-12-09 14:46

相關推薦

發表回復

登錄後才能評論