Jak trudna może być identyfikacja kłód?
Mówiąc o Timbeter i wykrywaniu kłód często zadawano mi pytania typu, „Czy to jest takie trudne? Nie możesz po prostu znaleźć okręgów na zdjęciu?”
Jednak w prawdziwym życiu jest to nieco trudniejsze:
- kłody mają często nieokrągły kształt
- są one zazwyczaj częściowo zasłaniane przez inne obiekty, takie jak liście, resztki kory lub wskaźnik referencyjny
- warunki pogodowe mogą sprawić, że krawędzie kłód będą prawie niewidoczne
- detektor nie wie, czego się spodziewać: jaki jest kolor kłód, czy mają one wyraźną fakturę lub czy kora jest widoczna na zewnątrz
- zazwyczaj jest wiele innych przedmiotów, które również mają z grubsza okrągły kształt
Problemy te sprawiają, że uproszczone podejście geometryczne staje się zasadniczo bezużyteczne.
Samouczenie się i sieci neuronowe
Ludzie uczą się, obserwując wzorce. Uczenie maszynowe (samouczenie się) próbuje robić to samo: zamiast programowania precyzyjnych reguł, jak decydować o tym, czy na obrazku znajduje się kłoda, program otrzymuje wiele przykładów z kłodami i bez kłód. Następnie próbuje znaleźć wzory, które są specyficzne dla obrazów, które zawierają kłody. Wzorce te mogą być użyte do wykrywania kłód na obrazku, którego program nigdy wcześniej nie widział. Metodą wdrażania maszynowego uczenia się jest zastosowanie sztucznych sieci neuronowych — początkowo inspirowanych przez nasz mózg.
W naszym mózgu każdy neuron odbiera sygnały elektryczne z innych neuronów i opiera się na nich oraz prostych zasadach zakodowanych w połączeniach między neuronami; same decydują o tym, czy wysyłać sygnały alarmowe. Nawet jeśli każdy neuron ma stosunkowo proste zadanie do wykonania, jako całość, sieć neuronów działa jak niewiarygodnie złożony system. Świetną rzeczą jest to, że te reguły w połączeniach nie są stałe: dostosowują się tak, aby mózg mógł lepiej wykonywać zadania, z którymi często się spotyka.
Jak sama nazwa wskazuje, sztuczne sieci neuronowe są nieco podobne: składają się z wielu „neuronów” połączonych z „siecią”. Te „neurony” wysyłają sobie nawzajem sygnały jak w naszym mózgu. Różnica polega na tym, że neurony nie są obiektami fizycznymi, ale są przechowywane w pamięci komputera lub tabletu, a sygnały są jedynie bitami płynącymi między procesorem a pamięcią. Podobnie jak w prawdziwym mózgu, zasady wysyłania sygnałów nie są wyraźnie zaprogramowane; zamiast tego, uczą się same na dużej liczbie przykładów.
Jak Timbeter wykorzystuje sieci neuronowe
Timbeter wykorzystuje sieci neuronowe jako podstawowe mechanizmy odpowiedzialne za proces wykrywania kłód. Ogromne wyzwanie polegało na tym, aby proces wykrywania sieci neuronowych był stosunkowo szybki na tabletach i telefonach bez poświęcania ich dokładności. Aby to osiągnąć, wykorzystaliśmy nowoczesne i wydajne techniki szkolenia sieci neuronowych, co z drugiej strony pozwoliło nam na wykorzystanie sieci o mniejszej liczbie neuronów. W sumie przyspieszyło to proces wykrywania, jednocześnie osiągając jeszcze wyższy poziom poprawności.
Rozwijamy detektor od około czterech lat i jest on stale udoskonalany. Eksperymentujemy z nowymi rozwiązaniami i będziemy je wprowadzać w miarę ich udoskonalania.
Bądź na bieżąco!