看一下效果圖,其中,第一行是被畫素化後的密碼序列,被狠狠地打了一層馬賽克,看不出一點原始痕跡。
第二行是經過 AI 還原後的密碼,可以看到密碼序列基本被還原了,而且準確度很高,只有稍加推理就能得到第三行的原始密碼
那麼,這個「不可思議」的 AI 還原技術是如何實現的?
我們知道,馬賽克是影象畫素化處理的一種手段,它透過將影像特定區域的色階細節劣化並打亂色塊,達到一種模糊影象的效果。
畫素化在許多領域被用於模糊影象資訊,其中線性盒濾波器( Linear Box Filter)是一種較為普遍的處理演算法。盒子濾波也稱為方框濾波,它採用一個畫素框,用該框中所有畫素的平均值覆蓋畫素。
像這樣,表情影象被分為四個色塊,每個色塊被色塊平均值所覆蓋,最終形成了畫素化表情,由於原始資訊丟失,因此不能直接反轉濾波器。
AI 還原演算法 - DepixMellema 正是利用了盒子濾波器 。
線性盒濾波器是一種確定性演算法,對相同的值執行畫素化通常會產生同樣的畫素塊(Block),那麼反之,使用相同位置的塊對相同文字執行畫素化,是否也會得到同樣的塊值?
Mellema 嘗試透過畫素化文字來找出匹配的模式,結果發現確實如此。
具體來說,Mellema 把每個塊或塊組合看作一個子問題。該演算法要求在相同背景上,具備相同的文字大小和顏色,因此他沒有選擇建立潛在字元的查詢表,因為現代文字編輯器可以新增色調、飽和度和亮度,也就是說存在海量潛在字元。
在處理字元方面,Mellema 使用待處理字元的德布魯因序列(De Bruijn sequence),將其貼上到相同的編輯器中,然後截圖。該截圖可用作相似塊的查詢影象,例如:
德布魯因序列包括待處理字元的所有雙字元組合,這一點很重要,因為一些塊會重疊兩個字元。
要找出合適的匹配需要搜尋影象中具備相同畫素配置的塊。在測試中,Depix 演算法無法找到字元「o」,因為在搜尋影象中,搜尋塊還包含下一個字母「d」,但在原始影象中這裡有個空格。
顯然,在建立字元的德布魯因序列時,如果加上空格會帶來同樣的問題,即演算法無法找到後續字母恰當的塊。有空格又有字母的影象需要更長的搜尋時間,但結果也更好。
對於大多數畫素化影象而言,Depix 可以找到塊的單個匹配結果。它先假設這些塊是正確的,然後將周圍多個匹配塊進行比較,使其與畫素化影象中的幾何距離相同,並假設這些匹配也是正確的。
在正確的塊沒有更多幾何匹配後,Depix 直接輸出所有正確的塊。對於多匹配塊,Depix 將輸出所有匹配的平均值。雖然 Depix 的輸出並不完美,但已經算不錯了。
下圖展示了包含隨機字元的測試影象的去畫素化結果,大部分字元被正確讀取:
最後需要說明的是,這個 AI 專案並不是為了竊取資訊,而是利用 ECB 和明文攻擊(Known-Plaintext Attacks)的模式,提高資訊保護技術。在他看來,不知道如何破壞當前的保護模式,是資訊保安中的常見陷阱。
AI 還原『人臉影象』
如前所述,除了字元密碼,AI 還原人臉照也不在話下。
今年 6 月中旬,杜克大學推出 AI 演算法—PULSE,可以將低解析度的人臉影象放大 64 倍,即使是打了馬賽克,面部的毛孔、皺紋,頭髮也都能變得清晰可見。
不過,被還原的人臉是一全新的虛擬面孔,並不是真實存在的。其中眼睛、鼻子、嘴巴等五官是 AI 在原始影象的基礎上,自行想象出的結果。
因此,這項 AI 技術不能用於身份識別。比如監控攝像頭拍攝的失焦、無法辨別的圖片,不能透過 PULSE 還原成真實存在的人像。不過,它在醫學、顯微鏡、天文學,以及衛星影象等領域有著廣泛的應用場景。
在技術方面,不同其他超解析度演算法,PULSE 不是遍歷 LR(Low Resolution)影象來慢慢新增細節,而是發現與 HR 相對應的 LR,透過 “縮減損失(Downscale)”的方式得到 SR(Super Resolution)影象。
其次,PULSE 使用了生成對抗網路(GAN)來進行模型訓練。GAN 包括一個生成器(Generator)和一個鑑別器(Discriminator),在同一組照片訓練中,二者透過相互博弈的方式檢驗輸出是否足夠逼真。
最後,無論是利用 AI 還原字元密碼、還是人臉影象,其初心都是科技向善。但這些 AI 技術不可避免地被有些人用於不良或非法用途。
因此,在這個科技高速發展的現在,保護個人資料顯得尤為重要。