Piksele na zrzutach ekranu a piksele na zdjęciach
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].
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ń).
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.
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
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:
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]
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.
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.
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.
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.
Komentarze
Brak komentarzy. Podziel się swoją opinią jako pierwsza osoba.