Algorytm do poprawiania jakości zdjęć, rodem z filmów

Niemal każdy widział chociaż raz w życiu film lub serial, w którym wykorzystuje się technologię wyostrzania i ulepszania obrazu, dzięki czemu z kompletnie nieczytelnego zdjęcia udaje się odczytać szczegóły pozwalające przykładowo rozpoznać daną osobę. Oczywiście narzędzia tego typu istnieją, ale ich skuteczność jest daleka od tego co prezentuje się w kinie i telewizji, gdyż ciężko jest poprawić zdjęcie złej jakości i niskiej rozdzielczości oraz powiększać je bez dalszych strat.

W tym miejscu z pomocą przychodzą sieci neuronowe oraz algorytmt[1] EnhanceNet-PAT. Zdjęcia, które wyglądają tak, jakby nie było możliwe uzyskanie z nich szczegółów, są po obróbce bardzo zbliżone do oryginału. Algorytm działa w oparciu o wspomniane sieci neuronowe i wciąż się uczy, więc z czasem rezultaty będą jeszcze lepsze. Poniżej widać przykład działania:

Źródło: https://techxplore.com/news/2017-10-small-pixel-perfect-large.html Przykład działania algorytmu EnhanceNet-PAT. Zdjęcie niskiej jakości (po lewej), poprawione algorytmem (po środku) i porównane do oryginału (po prawej). Autorami są badacze z Instytutu Maksa Plancka.
Działanie EnhanceNet-PAT w praktyce. Zdjęcie niskiej jakości (po lewej) zostało poprawione algorytmem (po środku) i porównane do oryginału (po prawej). Autorami są badacze z Instytutu Maksa Plancka. Źródło: https://techxplore.com/news/2017-10-small-pixel-perfect-large.html

Rezultat jest bardzo dobry. W linku, który został podany poniżej newsa, dostępnych jest więcej przykładów i każdy z nich prezentuje się dużo lepiej od pliku przed obróbką.

Tego typu rozwiązanie pozwoli nie tylko lepiej rozpoznać poszukiwane osoby czy ulepszać mało wyraźne zdjęcia na potrzeby produkcji, ale w przyszłości podobny lub jeszcze bardziej rozbudowany algorytm może zostać użyty w zupełnie innym celu, np. do odzyskania danych, które zostały zamazane/zaciemnione. Całkiem niedawno w telewizji został zaprezentowany[2] materiał, w trakcie którego pokazano zamazany kod QR prowadzący do portfela bitcoinowego z 1000 dolarów w kryptowalucie.

Źródło: https://medium.freecodecamp.org/lets-enhance-how-we-found-rogerkver-s-1000-wallet-obfuscated-private-key-8514e74a5433
Źródło: https://medium.freecodecamp.org/lets-enhance-how-we-found-rogerkver-s-1000-wallet-obfuscated-private-key-8514e74a5433

Jak się okazało, kod udało się odczytać z powodu niedokładnego zamazania go. Wykorzystano przy tym budowę QR kodu i analizę poszczególnych klatek nagranego materiału.

Źródło: https://medium.freecodecamp.org/lets-enhance-how-we-found-rogerkver-s-1000-wallet-obfuscated-private-key-8514e74a5433
Źródło: https://medium.freecodecamp.org/lets-enhance-how-we-found-rogerkver-s-1000-wallet-obfuscated-private-key-8514e74a5433

Ostatecznie po długiej analizie i “odbudowie” poszczególnych fragmentów udało się uzyskać klucz, a tym samym dostęp do portfela z bitcoinami. Czy odpowiedni algorytm poradziłby sobie z tym szybciej? Być może. Większym problemem jest jednak kwestia zamazywania danych na dokumentach (blur), które są dostępne w sieci lub są wysyłane mailem. Już teraz wiele z zastosowanych metod da się odwrócić (odczytać pierwotnie zamazane dane), dlatego jedną z lepszych opcji jest po prostu całkowite zasłonięcie (np. czarnym kwadratem) danych na obrazie.

[1] http://webdav.tuebingen.mpg.de/pixel/enhancenet/files/EnhanceNet_paper.pdf
[2] https://medium.freecodecamp.org/lets-enhance-how-we-found-rogerkver-s-1000-wallet-obfuscated-private-key-8514e74a5433