Piksele na zrzutach ekranu a piksele na zdjęciach

Piksele na zrzutach ekranu — zdjęcie wyróżniające

Czym właściwie są piksele?

Rozmawiając o kolorach, projektanci i programiści potrzebują wspólnej konwencji zwanej przestrzenią barw. Projektanci przyjęli praktykę nadawania kolorom unikalnych nazw (np. „Nostalgia Rose”, „Cloud Dancer ” i „Cocoon” z palety Pantone), podczas gdy programiści używają kodów szesnastkowych. Niektórzy potrafią rozpoznać kolor, patrząc jedynie na cyfry w kodzie szesnastkowym.

Kody szesnastkowe opierają się na przestrzeni barw RGB (czerwony, zielony, niebieski). Na przykład główny kolor akcentowy naszej marki, fiolet TeleportHQ, jest oznaczony kodem #822CEC, co odpowiada 53% czerwieni, 23% zieleni i 86% niebieskiego. Istnieją też inne konwencje przestrzeni barw, takie jak HSL (odcień, nasycenie, jasność) i HSV (odcień, nasycenie, wartość). W określonych przypadkach mogą być bardziej odpowiednie.

Przestrzeń barw RGB nawiązuje do sposobu, w jaki nasze oczy postrzegają otaczające nas kolory. Komórki czopkowe mierzą intensywność (jasność) światła na różnych poziomach energii (kolorów). Następnie przekazują te informacje do pozostałych obszarów mózgu, co pozwala nam postrzegać otoczenie. Warto zauważyć, że niektóre zwierzęta nie widzą barw trójchromatycznie: ssaki morskie są monochromatami, a większość gadów — tetrachromatami. Odpowiednio jeden i cztery rodzaje komórek czopkowych pozwalają im widzieć 100 milionów kolorów, podczas gdy większość ludzi widzi „zaledwie” 10 milionów [źródło: Wikipedia].

How the eye works image

Przekrój ludzkiego oka i powiększenie ściany siatkówki, ukazujące nerwy, które wychwytują światło i przekazują je do pręcików i czopków w celu analizy. Źródło: https://www.xrite.com

Pojęcia intensywności i energii pochodzą z fizyki. Światło składa się z fotonów o różnej energii, a ludzki mózg potrafi odbierać światło jedynie w określonym zakresie długości fal. Fotony o wyższej energii należą do zakresu ultrafioletu (który powoduje oparzenia skóry), a fotony o niższej energii — do zakresu podczerwieni (nasze ciało emituje takie fotony, które mogą być rejestrowane przez kamery na podczerwień).

The electromagnetic spectrum image

Widmo elektromagnetyczne. Źródło: https://www.radio2space.com

Na ekranie komputera każdy piksel składa się z trzech małych diod LED: czerwonej, zielonej i niebieskiej. Aby wyświetlić kolory, komputer reguluje intensywność światła emitowanego przez każdą diodę, a nasz mózg przetwarza te informacje.

How pixels work in television image

Zbliżenie pikseli telewizora. Źródło: https://jakubmarian.com

Emitowane światło ma naśladować to, co widzimy w naturze, ale jest pewien haczyk. Niebieski kolor nie występuje w naturze tak obficie jak na ekranie komputera, a biel, na przykład, znacznie różni się od barwy światła słonecznego. Dlatego niebieskie światło tak męczy nasze oczy, a żółte filtry i filtry trybu nocnego są bardzo przydatne dla osób spędzających dużo czasu przed ekranem.

Uczenie maszynowe doskonale radzi sobie z obrazami

Difference of white in the sun and TV image

Porównanie bieli emitowanej przez diodę LED z barwą światła słonecznego. Dane: http://galileo.graphycs.cegepsherbrooke.qc.ca

Podczas analizy obrazów systemy uczenia maszynowego nie sprawdzają kodów szesnastkowych ani nazw kolorów. Zamiast tego analizują wartości pikseli, podobnie jak nasze oczy. Dla maszyny poniższe dwa obrazy są takie same:

Human vs computer interpreting image

Te same obrazy w skali szarości przedstawiające widok 3D z perspektywy komputera i człowieka

Aby analizować obrazy, uczenie maszynowe wykorzystuje ciekły trik: skanuje je, analizując fragmenty pikseli, zamiast traktować każdy piksel osobno. Dzięki temu można wykrywać bardziej złożone wzorce i znacznie poprawić skuteczność algorytmu wykrywania. Takie systemy nazywa się warstwami splotowymi. Łącząc wiele takich warstw (czyli stosując słynne głębokie uczenie), możemy trenować modele zdolne do uczenia się bardziej abstrakcyjnych i złożonych cech. Choć wynaleziono je w latach 90. [ref], moc obliczeniowa i duże zbiory danych potrzebne, by pokazały pełnię swoich możliwości, stały się dostępne dopiero w 2012 roku.[ref]

Illustration of a convolutional layer in a neural network

Ilustracja warstwy splotowej w sieci neuronowej: https://github.com/vdumoulin

Jednak nawet po tak długim czasie nadal nie do końca rozumiemy, dlaczego sieci neuronowe osiągają tak dobre wyniki [ref]. Jednym z najlepszych przykładów są badania grupy naukowców, którzy wykazali, że można oszukać algorytm i sprawić, by uznał skorupy żółwi za karabiny [ref]. Jednym z wyjaśnień może być to, że sieć neuronowa skupia się bardziej na teksturze małych fragmentów pikseli niż na całym obrazie, co przeczy temu, co napisano kilka akapitów wcześniej o zdolności tych algorytmów do uczenia się abstrakcyjnych cech.

Neural network interpreting turtle image

Dla sieci neuronowej wszystkie te obrazy przedstawiają karabiny: http://www.3ders.org

A co ze zrzutami ekranu?

To prowadzi nas do różnicy między zrzutami ekranu a fotografią. Fotografie zawierają bardzo subtelne gradienty, które pomagają modelowi wydobywać informacje z obrazu i podejmować trafne decyzje. Na zrzutach ekranu gradienty występują znacznie rzadziej, a często całkowicie zanikają ze względu na monochromatyczne obszary obrazu, przez co model ma bardzo niewiele informacji do przeanalizowania.

A screenshot and a photo viewed in 3D

Zrzut ekranu i fotografia w widoku 3D

Algorytmy te są nadal przydatne, ale nie w przypadku każdego rodzaju problemu. Na przykład w TeleportHQ wykonujemy kilka rodzajów zadań uczenia maszynowego w ramach naszego procesu generowania kodu na podstawie makiet i projektów w wysokiej rozdzielczości. Z jednej strony uzyskujemy dobre wyniki, wykrywając poszczególne widżety na zrzucie ekranu za pomocą detekcji obiektów. Z drugiej strony, gdy próbujemy klasyfikować zrzuty ekranu aplikacji mobilnych według rodzaju ekranu (galeria, wyskakujące okienko, menu, formularze), model nie potrafi nauczyć się pojęć wysokiego poziomu, a prostsze drzewo decyzyjne okazuje się skuteczniejsze. Więcej informacji o tych dwóch projektach opublikujemy wkrótce.

Text and images detected in two screenshots

Tekst i obrazy wykryte na dwóch zrzutach ekranu

Podsumowanie

Nie wiadomo jeszcze, czy różnica między zrzutami ekranu a obrazami przedstawiającymi rzeczywisty świat faktycznie wpływa na wydajność głębokich sieci neuronowych. Różnica jest jednak wyraźna, gdy przyjrzymy się pikselom w widoku 3D: to niemal jak porównanie krajobrazu miejskiego z wiejskim.

Społeczność uczenia maszynowego uznała głębokie uczenie za bezkonkurencyjne rozwiązanie w dziedzinie widzenia komputerowego, ale w przypadku zrzutów ekranu aplikacji internetowych i mobilnych uważamy, że inne techniki wciąż mają szansę się sprawdzić.

Obecnie badamy podejście hybrydowe, które łączy wyniki technik widzenia komputerowego i przetwarzania języka naturalnego zastosowanych do tego samego źródła danych: ciągów HTML oraz odpowiadającej im reprezentacji DOM i wyrenderowanych danych obliczonych. O tym podejściu opowiemy we wpisie na blogu, który ukaże się wkrótce.

Jak zawsze, bardzo chętnie wymienimy się opiniami z innymi pasjonatami tego tematu. Jeśli interesują Cię nasze badania, skontaktuj się z nami za pośrednictwem dowolnego kanału mediów społecznościowych wymienionego w stopce tej strony.

Inspiracje

Powiązane posty

Komentarze

Brak komentarzy. Podziel się swoją opinią jako pierwsza osoba.

Dodaj komentarz

Twój adres e-mail nigdy nie jest widoczny publicznie.
Komentarze są sprawdzane przed opublikowaniem.