Po co używać splotowych NN do zadań kontroli wizualnej w porównaniu z klasycznym dopasowaniem szablonu CV?


9

Miałem interesującą dyskusję na podstawie projektu, nad którym pracowaliśmy: po co używać systemu kontroli wizualnej CNN zamiast algorytmu dopasowywania szablonów?

Tło: Pokazałem demo prostego systemu wizyjnego CNN (kamera internetowa + laptop), który wykrył, czy określony typ obiektu został „uszkodzony” / uszkodzony, czy nie - w tym przypadku płytka drukowana PCB. Mój model CNN pokazał przykłady prawidłowych i uszkodzonych płytek drukowanych (około 100 zdjęć każdej) na statycznym tle. Nasz model wykorzystał kilka pierwszych warstw konwekcyjnych / maksymalnych prędkości wstępnie przeszkolonego VGG16 (na imagenet), a następnie dodaliśmy kilka bardziej trenowalnych konwek / puli, z kilkoma denami, prowadząc do zakodowanego na gorąco wyjściowego wektora zakodowanego dim-3 do klasyfikacji : (is_empty, has_good_product, has_defective_product).

Model dość łatwo trenował i osiągnął 99% walidację bez problemów; przeszkoliliśmy także w zakresie rozszerzania danych, ponieważ wiemy, że nasz zestaw danych był niewielki. W praktyce działało około 9 razy na 10, ale kilka przypadkowych tłumaczeń / rotacji tej samej płytki drukowanej od czasu do czasu umieszczało ją w przeciwnej klasie. Być może pomogłoby bardziej agresywne powiększanie danych. Tak czy inaczej, z prototypowego projektu koncepcyjnego byliśmy zadowoleni.

Teraz przedstawialiśmy się innemu inżynierowi i jego współpracownikowi, a on podniósł argument, że NN są nadmiernie zdolni do tego, powinien po prostu użyć dopasowania szablonu, dlaczego miałby chcieć robić CNN?

Nie mieliśmy doskonałej odpowiedzi na pytanie, dlaczego nasze podejście może być lepsze w niektórych zastosowaniach (np. W innych częściach do sprawdzenia). Niektóre poruszone przez nas punkty:

1) Bardziej odporny na niezmienniki (np. Poprzez augmentację danych)

2) Potrafi przeprowadzić naukę online w celu ulepszenia systemu (np. Człowiek może powiedzieć oprogramowaniu, które przykłady popełnił błąd)

3) Nie trzeba ustawiać progów, jak w klasycznych komputerowych algorytmach widzenia. Jak myślicie, czy są jakieś dodatkowe korzyści dla systemu CNN dla tego rodzaju zadań kontrolnych? W jakich przypadkach byłoby lepiej niż dopasowanie szablonu?

Jeszcze kilka przypadkowych pomysłów na to, kiedy głębokie NN mogą być technologią do tego zadania: dla systemów, które wymagają detekcji głębokości 3D jako części danych wejściowych, lub dowolnego rodzaju obiektu, który może być zdeformowany / rozciągnięty / zgnieciony, ale nadal „dobry” i nie uszkodzony (np. wypchane zwierzę, druty itp.). Ciekawy usłyszeć twoje myśli :)


Lubię podejścia do głębokiego uczenia się i wiem, że są przyszłością. Jednak gdy potrzebujesz wyników o wysokiej precyzji, powiedzmy dokładnego obrotu i dokładnej skali, dopasowanie szablonu nadal daje lepsze wyniki. Mówię o błędzie współczynnika skali 0,1 stopnia / mniej. Głębokie uczenie się zapewnia „prawdopodobieństwo” prawdopodobnie „najlepszego” wyniku, więc nie wystarczy, gdy wymagana jest wysoka precyzja. Chciałbym znaleźć sposób na uzyskanie takiej dokładności za pomocą głębokiego uczenia, ale nadal nie mogę znaleźć żadnego algorytmu dla precyzyjne dopasowywanie szablonów za pomocą głębokiego uczenia. Jestem otwarty na wszelkie opinie / sugestie lub
Pablo Gonzalez

Odpowiedzi:


3

Inżynier, o którym mowa, który zaproponował tradycyjne metody CV dla twojej aplikacji, po prostu zrobił to z przyzwyczajenia. Używanie dopasowywania szablonów jest bardzo nieaktualne i wykazano, że działa bardzo słabo. Uważam jednak, że CNN jest nadmierną umiejętnością w zależności od rozmiaru zestawu danych.

Jak działa dopasowywanie szablonów?

Dopasowywanie szablonów przesuwa okno po obrazie, które zapewnia procentowe dopasowanie do szablonu. Jeśli dopasowanie procentowe jest powyżej określonego z góry określonego progu, wówczas przyjmuje się, że jest to dopasowanie. Na przykład, jeśli masz obraz psa i chcesz ustalić, czy na obrazie jest pies, przesuń szablon psa po całym obszarze obrazu i sprawdź, czy procent dopasowania jest wystarczająco duży. Spowoduje to prawdopodobnie bardzo niską wydajność, ponieważ wymaga identycznego nakładania się szablonu na obraz . Jakie jest tego prawdopodobieństwo w praktyce? Niezbyt wysoko.

Jedynym czasem dopasowania szablonu jest wystarczająca technika, jeśli wiesz dokładnie, czego szukasz i jesteś pewien, że pojawi się prawie identycznie w każdym przykładzie danej klasy.

Dlaczego zamiast tego korzystać z uczenia maszynowego?

Techniki uczenia maszynowego nie są sztywne. W przeciwieństwie do tego, co powiedział stmax, CNN są w stanie bardzo dobrze uogólnić zestaw danych . Właśnie dlatego są tak potężni. Na przykładzie psa CNN nie musi widzieć zdjęcia każdego psa, aby zrozumieć, co stanowi psa. Możesz pokazać to może 1000 obrazów z wyszukiwarki Google, a wtedy algorytm będzie w stanie wykryć, że twój pies jest w rzeczywistości psem. Fakt, że algorytmy uczenia maszynowego uogólniają się bardzo dobrze, powoduje, że zastąpiły one wszystkie starożytne techniki CV. Teraz problemem jest ilość danych potrzebnych do wyszkolenia CNN. Są bardzo intensywne w przetwarzaniu danych .

Nie sądzę, że 100 punktów danych wystarcza do wyszkolenia solidnego CNN. Ze względu na głęboką złożoność modelu w celu ograniczenia stronniczości należy zwiększyć liczbę przykładów. Zazwyczaj sugeruję 100 przykładów dla każdej cechy dla modeli głębokich i 10 przykładów dla każdej cechy dla modeli płytkich. To naprawdę wszystko zależy od twojej przestrzeni funkcji.

Co sugeruję

To, co naprawdę robisz, to wykrywanie anomalii . Masz wiele przykładów, które zostaną zaprezentowane na PCB, które w innym przypadku byłyby w dobrej formie. Chcesz wykryć te, które są zepsute. Dlatego spróbowałbym zamiast tego niektórych metod wykrywania anomalii. Są one znacznie prostsze w implementacji i można uzyskać dobre wyniki przy użyciu płytkich modeli, szczególnie w przekrzywionych zestawach danych (1 klasa jest nadreprezentowana).


Dziękujemy za wyczerpujący komentarz! Czy możesz podać przykłady projektów lub dokumentów, które wyjaśniają (i ewentualnie demonstrują) wykrywanie anomalii? Na zdrowie
JDS

1
Oto przegląd literatury dotyczącej wykrywania anomalii V. Chandola, A. Banerjee i V. Kumar, „Wykrywanie anomalii: ankieta”, ACM Computing Surveys, vol. 41, nr 3, p. 15, 2009.
JahKnows

5

Odpowiedź zależy od zadania. Dopasowywanie szablonów może działać dla niektórych zadań, ale nie dla wszystkich. Sieci CNN potencjalnie mogą uogólniać na niewidzialne dane wejściowe, które nie pasują do żadnego z twoich szablonów, więc mogą potencjalnie lepiej uogólniać.

Ale to, czy CNN pokonają dopasowywanie szablonów, będzie zależeć od konkretnego zadania i tego, co konkretnie próbujesz osiągnąć. To jest nauka empiryczna; ostatecznie sposób, w jaki dowiadujesz się, co działa lepiej, to wypróbowanie ich obu - lub uczenie się od innych, którzy je wypróbowali (np. czytając literaturę). Nie sądzę, żebyś znalazł jakąś teorię lub taksonomię, która zastąpiłaby empiryczną ocenę danych rzeczywistych.


5

Jednym z problemów, na jaki możesz natknąć się przy pomocy NN (i innych metod klasyfikacji) jest to, że ponieważ pokazałeś mu tylko pewne wady, może nie wiedzieć, jak zareagować na całkowicie nowe / jeszcze niewidoczne wady, które mogą się pojawić w przyszłości.

Chcesz, aby NN nauczył się, że „wszystko, co nie wygląda jak nie uszkodzona płytka drukowana, jest uszkodzoną płytką drukowaną”. Ale co, jeśli nauczył się, że „wszystko, co nie wygląda jak uszkodzona płytka drukowana, jest nieuszkodzoną płytką drukowaną”?

Możesz spróbować zmodyfikować niektóre obrazy nieuszkodzonych płytek drukowanych, dodając do nich małą białą plamę (lub inną małą perturbację) w losowych lokalizacjach i zlecając sieci neuronowej klasyfikację tych zmodyfikowanych obrazów. Zdecydowanie należy je sklasyfikować jako wadliwe, prawda? Ale prawdopodobnie przegapi niektóre (lub całkiem sporo), ponieważ nigdy wcześniej nie widział takich wad.

Aby wykryć zupełnie nowe defekty, metody wykrywania anomalii / klasyfikatory jednej klasy mogą być bardziej… godne zaufania, ponieważ powinny wychwycić wszystko, czego nigdy wcześniej nie widziano.

Jak powiedział DW, będziesz musiał wypróbować obie metody i dowiedzieć się, która z nich działa lepiej. Tylko upewnij się, że masz naprawdę dobry zestaw testowy, który zawiera również zupełnie nowe usterki!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.