Stara metoda: spojrzenie na całe obrazu, region po regionie
Przed YOLO, liderami detektorów obiektów były metody pracujące w etapach: najpierw propozowali tysiące kandydatów regionów, które mogły zawierać obiekt, a potem przetwarzały każdy region osobno, aby ustalić, co to jest. Ta pipeline propozycji regionów, używana przez metody takie jak R-CNN i jej sukcesory, była precyzyjna, ale bardzo wolna, ponieważ te same obrazy musiały być przetwarzane ponownie dla każdego kandydatowego prostokąta. To sprawiało, że nie byłaby praktyczna dla czegoś, co potrzebowało działać w czasie rzeczywistym, takiego jak strumienie wideo, samochody autonomiczne lub robocze reagujące na otaczający ich świat w czasie rzeczywistym.
Duża idea YOLO: Jeden rzut oka, jedna przetworzona osoba
YOLO, wprowadzone przez Redmona, Divvalę, Girshicha i Farhadiego w 2016 roku, odświeżyło detekcję jako pojedyncze zadanie regresji zamiast pipeline z sekwencji oddzielonych kroków. Sieć podzieliła obraz wejściowy na siatkę rozmiaru S x S, a w jednym przetworzeniu przódowym jednocześnie przewidziało dla każdego komórek siatki zestaw prostokątów granicznych z ocenami pewności oraz prawdopodobieństw klasy obiektu. Dlatego całe obrazu przetwarzane jest przez jedną sieć naraz, YOLO rozważa globalny kontekst zamiast izolowanych pól, co również pomaga mu popełniać mniej błędów w tle.
Z rawych prognoz do końcowych detekcji
Jednorazowy przebieg tworzy znacznie więcej kandydatów na ramki niż istnieje rzeczywistych obiektów, dlatego wyjście netwerku wymaga czyszczenia przed jego użytecznym użyciem. Po pierwsze, próg pewności odrzucenie ramek, które sieć nie jest pewna zawierają obiekty w ogóle. Następnie supresja maksimum (NMS) porównuje pozostające się nakładające się ramki dla każdej klasy i zachowuje tylko najwyższy-pewny ramkę na każdy obiekt, odrzucając resztę jako duplikaty tej samej detekcji. Wynikiem jest czysta, końcowa grupa etykietowanych ramek granicznych gotowych do wyświetlenia lub działania.
Przyspieszenie Zmieniło Wszystko
Zgromadzając detekcję w jednym ocenie sieciowej, YOLO działał znacznie szybciej niż dwuetapowe detektory. To pozwoliło na prawdziwie rzeczywiste aplikacje: live video annotation, robotyka, dronie i realnośc zwiększona stały się możliwe. Wymiana w oryginalnym YOLO polegała na precyzji przy małych lub gęsto skupionych obiektach, ponieważ każda komórka siatki mogła zaproponować tylko ograniczoną liczbę prostokątów, co sprawiało, że sceny zgrupowane, takie jak stadia ptaków czy gęste tłumy ludzi, były trudniejsze do pełnej rozstrzygnięcia. Wersje późniejsze YOLO znacząco ulepszyły strategię siatki i propozycji prostokątów, zamknięto wiele tego braku, zachowując podstawowy przyspieszony korzyści z jednopasowej oceny sieci.
Często zadawane pytania
Dlaczego YOLO jest o tyle szybszy niż wcześniejsze detektorzy?
Wczesniejsze detektorzy wykonywali oddzielny krok klasyfikacji dla każdego zaproponowanego obszaru na obrazie, co oznaczało przetwarzanie tej samej obrazy wielokrotnie. YOLO zamiast tego używa jednego sieciowego neuronowego, który podczas jednej spojrzenia na całe obrazu przewiduje wszystkie ramki ograniczające i klasy jednocześnie, co oznacza, że ciężka obliczeniowa operacja wykonywana jest tylko raz dla każdego obrazu.
Co dokładnie robi zsupresja maksimum?
Gdy siatka YOLO przewiduje nadmiarowe ramki ograniczające dla tego samego obiektu, zsupresja maksimum zachowuje tylko box o najwyższej ocenie pewności i usuwa resztę, które znacznie nakładają się na niego. To zapobiega temu, aby ten sam obiekt był zgłoszony jako wiele osobnych detekcji.
Czy YOLO nadal jest używany w współczesnych systemach wizji komputerowej?
Tak, rodzina YOLO przeszła przez wiele iteracji od 2016 roku i nadal pozostaje jednym z najczęściej używanych podejść do detekcji obiektów w czasie rzeczywistym, wspierając aplikacje od monitorowania ruchu drogowego do inspekcji przemysłowej. Jej podstawowa filozofia jednego przebiegu okazała się wytrzymałą, nawet gdy architektury sieciowe na tle podstawowym znacząco ewoluowały.
Wypróbuj na żywo
Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz YOLO: Real-Time Object Detection in a Single Glance i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.
▶ Otwórz symulację YOLO: Real-Time Object Detection in a Single Glance