技術宅

平時我們拍攝的圖片,前景的人或物往往是和作為背景的風景緊密結合在一起的,要想實現精準摳圖并不容易,需要經過一系列精細的操作(圖1)。
我們以通道摳頭發絲操作為例。首先需要找出對象最清晰的通道,接著復制通道,再對通道的色階進行調整,然后使用畫筆工具涂抹人物以及需要的頭發部分,最后進行反向選擇、圖層復制等才能完成一次摳圖操作(圖2)。在此過程中,因為頭發絲比較細小而且混亂,光是涂抹選取就需要花費大量的時間。
除了上面的介紹外,如果摳取復雜背景的圖片,還可能需要多種工具結合在一起使用,這就必須了解蒙版、通道、快速選擇、圖層模式等用法。正是因為摳圖的專業性很強,因此對于普通人來說,要想熟練掌握摳圖技巧,就得反復不斷地練習,這絕對是件技術活。

大部分人并沒有時間花費在摳圖的學習上,所以各種摳圖工具應運而生,其中比較引人注目的是新近出現的Remove. bg網站,他們聲稱可以將這個復雜的技術活零門檻化。在網站的演示中可以看到,即使是類似頭發絲的高難度摳圖操作,通過網站的處理也可以輕松完成(圖3)。
Remove.bg的極速摳圖,其實是借助具有深度學習功能的Pythonl具來實現的。Python是一種程序開發語言,經常被設計用于編寫自動化腳本(Shell),通過一系列的腳本代碼實現很多自動操作,摳圖便是它在圖像領域中的一個典型應用(圖4)。

在Pytho門摳圖處理的腳本中,腳本代碼首先選定要抽取對象的區域,通過一定的算法將圖像識別為區域內(前景)和區域外(背景)兩部分。接著基于選定的區域,其中的Grabcut算法會對圖像的背景和前景進行分割,同時循環處理前景內容,將其中的前景提取出來并將背景內容刪除,從而實現摳圖(圖5)。
當然僅僅依靠腳本無法完全實現對任意圖像的背景和前景進行分割,為了能夠讓腳本有更高效和精準的處理功能,Remove.bg將Pytho門自動處理腳本和深度機器學習結合起來。為了讓腳本可以精準識別出前景物件,開發者預先借助一些機器學習庫和Python框架來制定一些算法,如Scikit和Tensorflow機器學習算法。這些算法可以自動檢測輸入中的模式,這樣開發者先將一些圖片給算法學習,輸入很多前后景混合的人物照片讓機器學習。以輸入斑馬在草原上的照片為例,算法可以將照片中的斑馬和草原環境識別出來(圖6)。
為了讓算法擁有更高的識別能力,開發者還準備了很多類似的斑馬圖片,比如斑馬在動物園中、籠子里、樹叢中的各種圖片供機器學習。利用深度學習和神經網絡,通過海量圖片的學習和自我糾錯,使得機器算法最終對各種照片中的前景和后景能精準識別出來。


最后開發者將這套算法生成的模型部署在Remove.bg服務器端,用戶只要通過網站上傳圖片,網站后臺的算法就可以實現對照片前景后景的準確識別并實現摳圖,用戶只需稍等片刻,然后下載處理好的摳圖就可以了(圖7)。

如上所述,借助Remove. bg網站,普通人通過部署在網站的算法服務就可以實現快速摳圖,這樣大大降低了摳圖的技術難度。比如想在朋友圈滿足一下自己在全球各地的旅游美圖,那么只要自拍一張人物照,然后上傳摳圖,并將摳圖貼在國外旅游景點上就OK了(圖8)。當然也可以進行各種惡搞特效制作。
其實不僅僅是摳圖,Python的自動處理腳本還可以應用到更多的領域。比如可以借助腳本對照片中人物臉部的識別,結合人臉識別技術快速在眾多的監控照片中提取犯罪嫌疑人照片。再比如將其應用到網站購物上,通過自動識別將各大購物網站的同類商品全部提取出來供我們選擇、參考,我們的生活將因此而越來越便利。