GitHub標星7000+,快速恢復像素化圖像,效果驚人

整理 | 高衛華

出品 | AI科技大本營

像素化(類似於馬賽克)被許多領域用來加密圖像中的重要信息, 例如很多公司會將內部文檔中的密碼像素化以加密數據,但之後並沒有工具來恢復被像素化的圖像。

對此,GitHub上的一個開發者創建了一個工具Depix,適用於使用線性方框濾波器創建的像素化圖像,可從像素化屏幕快照中恢復密碼,測試效果如下:

 

此前一項人工智能的相關研究引起人們的關注,聲稱“研究人員創建了一種可以完美消除臉部像素的工具”。事實上,它並沒有做到這一點。這種最新的PULSE算法類似於Google在2016年開發的RAISR算法。當像素化時,AI可生成相同圖像的人臉,但其恢復的人臉並不是原始人臉。

參考鏈接:

https://gizmodo.com/researchers-have-created-a-tool-that-can-perfectly-depi-1844051752

諸如PULSE這類的算法看起來是新發展,但其實它們源於衆多去模糊工具。

M. W. Buie在1994年編寫了一個用於生成“ Plutos”的工具,可對圖像進行模糊處理,並將其與觀察到的圖像進行匹配。

在2006年發表的一篇文章中,D.Venkatraman提出了一種用於恢復被像素化的信用卡號的算法,D.Venkatraman生成了所有信用卡號,對它們進行像素化,然後將恢復結果與被像素化的卡號進行比較。

2019年,S.Sangwan解釋瞭如何通過銳化圖像以及Google圖像查找,來利用Photoshop爲OSINT恢復面部。與其他技術類似,它通過Google圖像查找的結果作“外力”參考,來恢復被像素化的面部圖像。

可以注意到,上述解決方案之間有相似之處:如果沒有足夠的信息來適當地平滑圖像,則選擇的技術是將相似數據像素化再檢查是否匹配。同時,這也是Depix從屏幕快照中恢復密碼的算法基礎。

像素化

像素化描述了降低圖像分辨率以檢查信息的過程。

Depix所用的濾波器不同於普通的線性方框濾波器, 其線性方框濾波器採用一個像素框,使用該框中所有像素的平均值覆蓋像素,實現起來非常簡單,且由於它可以並行處理多個塊,其運行速度很快。

表情符號的圖像分爲四個塊(block),塊的平均顏色會覆蓋塊的像素,從而產生最終的像素化圖釋。由於原始信息丟失,因此無法直接反轉濾波器。下圖爲線性方框濾波器的示例:

圖像模糊處理可以通過多種方式進行,使用線性方框濾波器的像素化可以看作是模糊技術的子集,大多數模糊算法在嘗試模仿由搖晃的相機或聚焦問題引起的自然模糊時,往往會通過散佈像素的方式。

算法說明

由於線性方框濾波器是確定性算法,將相同的值進行像素化會導致相同的像素塊。也就是說,使用相同的塊位置對相同的文本進行像素化將產生相同的塊值,因此可以嘗試對文本進行像素化以找到匹配的模式。

該算法要求在相同背景上具有相同的文本大小和顏色。而現代的文本編輯器還添加了色相、飽和度和亮度,允許使用大量可能的字體設置來拍攝屏幕截圖。其解決方案非常簡單:採用De Bruijn預期字符序列,將其粘貼到同一編輯器中,再進行截圖。該屏幕截圖用作類似塊的查找圖像。例如:

該序列包括預期字符的所有2個字符的組合。使用2個字符的組合很重要,因爲某些塊可以重疊兩個字符。

要找到適當的匹配項,需要在搜索圖像中存在相同像素配置的精確塊。在測試圖像中,Depix所用的算法找不到'o'的一部分,這是因爲在搜索圖像中,搜索塊還包含下一個字母的一部分(“ d”),但在原始圖像中會有一個空格。

創建一個在其周圍帶有空格的De Bruijn字母序列顯然會帶來相同的問題:該算法將無法爲連續字母找到合適的塊,帶有間隔和接近的字母的圖像需要更長的搜索時間,但會產生更好的結果。

該算法利用線性方框濾波器,分別處理每個塊,對搜索圖像中的所有塊進行像素化,以檢查直接匹配。

對於大多數像素化圖像,Depix先設法找到單匹配結果,然後假設這些是正確的,與周圍多匹配塊的結果進行比較,得出在幾何上與像素化圖像相同,匹配也被視爲正確,接着重複此過程幾次。當正確的塊不再具有幾何匹配之後,直接輸出所有正確的塊。對於多匹配塊,輸出所有匹配的平均值。

雖然Depix的輸出遠未達到完美的水平,但性能相當不錯,可以正確讀取大多數字符。下圖顯示了帶有隨機字符的測試圖像。

使用方法

1.從屏幕快照中將像素化的塊切出爲單個矩形。

2.在具有相同字體設置(文本大小,字體,顏色,hsl)的編輯器中,粘貼帶有預期字符的De Bruijn序列。

3.製作序列的屏幕截圖,最好使用與創建像素化圖像相同的屏幕截圖工具。

跑python depix.py -p [pixelated rectangle image] -s [search sequence image] -o output.png

參考鏈接:

https://github.com/beurtschipper/Depix

https://www.linkedin.com/pulse/recovering-passwords-from-pixelized-screenshots-sipke-mellema

https://damip.net/article-de-bruijn-sequence

更多精彩推薦

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