Github熱門源碼:藉助TensorFlow.js讓你在視頻中瞬間消失

 

最近,一個實時人物刪除(Real Time Person removation)的項目在GitHub上流行起來。它最近在GitHub趨勢排名第一,目前擁有3k+顆星星。

 

這個項目的神奇之處在於,你只需要在網頁瀏覽器中使用JavaScript,並使用200多行TensorFlow.js代碼,就能讓視頻屏幕中的字符和對象實時從複雜的背景中消失!

 

雖然這不能讓你像哈利波特那樣隱形的夢想在現實生活中成真,但至少你可以在視頻和動畫中體驗隱形的刺激。

 

這個項目開發者是谷歌網站工程師傑森·梅耶斯。通過TensorFlow.js製作了一個插件,允許系統分離人和背景,然後實時從場景中移除任何人,這意味着人們可以從視頻中“消失”。

 

我們兩看兩張例子:

 

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1uploading.4e448015.gif轉存失敗重新上傳取消

有人可能會認爲,在複雜的背景下實現“隱身”非常複雜,而且是實時的,但實際上,實現這種效果只需要200多行JS代碼。

 

作者整個項目的核心是TensorFlow.js提供的身體分割模型。js可以說是一個網站工程師使用機器學習模型的工件!

 

js是一個使用JavaScript開發機器學習的庫,允許使用JavaScript開發機器學習模型,並且可以直接在瀏覽器或Node.js中使用機器學習模型。

 

爲了使人物在鏡頭中“消失”,作者必須首先找到人體的位置區域。這裏使用的是TensorFlow.js已經訓練過的身體分割模型。

 

例如,在上述項目中使用的體分割模型MobileNet非常容易調用:

  •  
  •  
  •  
  •  
  •  
  •  
const net = await bodyPix.load({ architecture: 'MobileNetV1', outputStride: 16, multiplier: 0.75, quantBytes: 2});

當然,除了MobileNet這樣的小而快的模型,但是精度不是特別高,你也可以選擇ResNet這樣精度相對較高的大而慢的模型。

除了身體分割模型,TensorFlow.js還提供了各種現成的機器學習模型,如圖像分類、對象檢測、身體分割和句子編碼。當然,如果需要的話,用戶也可以重新訓練他們的模型。

 

TensorFlow.js只有你想不到,沒有它做不到。

 

jason的個人網站:

https://codepen.io/jasonmayes

開源地址:

https://github.com/jasonmayes/Real-Time-Person-Removal

 

更多論文地址源碼地址:關注“圖像算法”微信公衆號

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