Udostępnij przez


Jak ulepszyć model usługi Custom Vision

Ważne

Firma Microsoft ogłasza planowaną emeryturę usługi Azure Custom Vision. Firma Microsoft zapewni pełną pomoc techniczną dla wszystkich istniejących klientów usługi Azure Custom Vision do 25.09.2028 r. W tym oknie pomocy technicznej zachęcamy klientów do rozpoczęcia planowania i przeprowadzania przejścia do alternatywnych rozwiązań. W zależności od przypadku użycia zalecamy następujące ścieżki przejścia:

  • W przypadku tworzenia modeli niestandardowych na potrzeby klasyfikacji obrazów i wykrywania obiektów usługa Azure Machine Learning AutoML oferuje możliwość trenowania obu typów modeli niestandardowych przy użyciu klasycznych technik uczenia maszynowego
  • Dowiedz się więcej o usłudze Azure Machine Learning AutoML i dowiedz się, jak może ona oferować obsługę trenowania modelu niestandardowego.

Firma Microsoft inwestuje również w rozwiązania oparte na sztucznej inteligencji, które zwiększają dokładność w scenariuszach niestandardowych przy użyciu inżynierii monitów i innych technik.

  • Aby użyć modeli generatywnych, możesz użyć jednego z modeli dostępnych w katalogu modeli Foundry i utworzyć własne rozwiązanie dla niestandardowych potrzeb wizualnych.
  • Dla zarządzanego rozwiązania generatywnego do klasyfikacji obrazów, usługa Azure Content Understanding w narzędziach Foundry Tools (obecnie w publicznej wersji zapoznawczej) oferuje możliwość tworzenia niestandardowych przepływów pracy klasyfikacji. Obsługuje również przetwarzanie danych bez struktury dowolnego typu (obraz, dokumenty, dźwięk, wideo) i wyodrębnianie szczegółowych informacji strukturalnych na podstawie wstępnie zdefiniowanych lub zdefiniowanych przez użytkownika formatów.
  • Dowiedz się więcej o modelach microsoft Foundry i usłudze Azure Content Understanding (publiczna wersja zapoznawcza) i dowiedz się, jak mogą one oferować alternatywne ścieżki dla Twoich potrzeb niestandardowych.

Aby uzyskać bardziej szczegółowe wskazówki dotyczące migracji, zobacz Przewodnik po migracji usługi Azure Custom Vision.

Z tego przewodnika dowiesz się, jak poprawić jakość modelu usługi Custom Vision. Jakość klasyfikatora lub detektora obiektów zależy od ilości, jakości i różnych danych oznaczonych etykietami oraz tego, jak zrównoważony jest ogólny zestaw danych. Dobry model ma zrównoważony zestaw danych trenowania, który jest reprezentatywny dla tego, co jest do niego przesyłane. Proces tworzenia takiego modelu jest iteracyjny; Często trzeba wykonać kilka rund treningu, aby osiągnąć oczekiwane wyniki.

Poniżej przedstawiono ogólny wzorzec ułatwiając trenowanie dokładniejszego modelu:

  1. Szkolenie pierwszej rundy
  2. Dodaj więcej obrazów i zrównoważ dane; przeprowadź ponowne szkolenie.
  3. Dodaj obrazy o różnym tle, oświetleniu, rozmiarze obiektu, kącie aparatu i stylu; Przetrenuj
  4. Testowanie przewidywania przy użyciu nowych obrazów
  5. Modyfikowanie istniejących danych treningowych zgodnie z wynikami przewidywania

Zapobieganie nadmiernemu dopasowaniu

Czasami model uczy się tworzyć przewidywania na podstawie dowolnych cech wspólnych dla obrazów. Na przykład, jeśli tworzysz klasyfikator dla jabłek a cytrusów, a używasz obrazów jabłek w rękach i cytrusów na białych talerzach, klasyfikator może dać niepotrzebne znaczenie dla rąk a talerzy, a nie jabłek a cytrusów.

Aby rozwiązać ten problem, należy udostępnić obrazy pod różnymi kątami, tłami, rozmiarem obiektu, grupami i innymi odmianami. Poniższe sekcje rozszerzają te pojęcia.

Zapewnianie ilości danych

Liczba obrazów szkoleniowych jest najważniejszym czynnikiem dla zestawu danych. Zalecamy używanie co najmniej 50 obrazów na etykietę jako punktu wyjścia. W przypadku mniejszej liczby obrazów występuje większe ryzyko przeuczenia, a podczas gdy wyniki pod kątem wydajności mogą sugerować dobrą jakość, model może mieć trudności z rzeczywistymi danymi.

Zapewnianie równowagi danych

Ważne jest również, aby wziąć pod uwagę względne ilości danych treningowych. Na przykład użycie 500 obrazów dla jednej etykiety i 50 obrazów dla innej etykiety sprawia, że zestaw danych treningowych jest niezrównoważony. Dzięki temu model może być dokładniejszy w przewidywaniu jednej etykiety niż innej. Prawdopodobnie zobaczysz lepsze wyniki, jeśli zachowasz co najmniej 1:2 stosunek między etykietą z najmniejszymi obrazami a etykietą z największą liczbą obrazów. Jeśli na przykład etykieta z większością obrazów zawiera 500 obrazów, etykieta z najmniejszymi obrazami powinna zawierać co najmniej 250 obrazów do trenowania.

Zapewnianie różnorodności danych

Pamiętaj, aby używać obrazów, które są reprezentatywne dla tego, co zostanie przesłane do klasyfikatora podczas normalnego użytku. W przeciwnym razie model może nauczyć się tworzyć przewidywania na podstawie dowolnych cech wspólnych dla obrazów. Na przykład, jeśli tworzysz klasyfikator dla jabłek a cytrusów, a używasz obrazów jabłek w rękach i cytrusów na białych talerzach, klasyfikator może dać niepotrzebne znaczenie dla rąk a talerzy, a nie jabłek a cytrusów.

Zdjęcie owoców z nieoczekiwanym dopasowaniem.

Aby rozwiązać ten problem, uwzględnij różnorodne obrazy, aby zapewnić, że model może dobrze uogólnić. Poniżej przedstawiono kilka sposobów, aby zestaw szkoleń był bardziej zróżnicowany:

  • Tło: podaj obrazy obiektu przed różnymi tłami. Zdjęcia w kontekstach naturalnych są lepsze niż zdjęcia przed neutralnymi tłami, ponieważ zapewniają więcej informacji dla klasyfikatora.

    Zdjęcie próbek tła.

  • Oświetlenie: Udostępniaj obrazy o zróżnicowanym oświetleniu (czyli wykonanym z lampą błyskową, wysoką ekspozycją itd.), zwłaszcza jeśli obrazy używane do przewidywania mają różne oświetlenie. Warto również używać obrazów o różnym nasyceniu, odcieniu i jasności.

    Zdjęcie próbek oświetlenia.

  • Rozmiar obiektu: podaj obrazy, w których obiekty różnią się rozmiarem i liczbą (na przykład zdjęcie pęczek bananów i zbliżenie pojedynczego bananu). Zróżnicowane rozmiary pomagają klasyfikatorowi lepiej uogólniać.

    Zdjęcie przykładów rozmiarów.

  • Kąt aparatu: umożliwia udostępnianie zdjęć wykonanych z różnymi kątami aparatu. Alternatywnie, jeśli wszystkie zdjęcia muszą być wykonane ze stałymi kamerami (takimi jak kamery monitoringu), pamiętaj, aby przypisać inną etykietę do każdego regularnie występującego obiektu, aby uniknąć nadmiernego dopasowania — interpretowania niepowiązanych obiektów (takich jak latarnie) jako kluczową funkcję.

    Zdjęcie próbek kątowych.

  • Styl: podaj obrazy różnych stylów tej samej klasy (na przykład różne odmiany tych samych owoców). Jeśli jednak masz obiekty o drastycznie różnych stylach (takich jak Myszka Miki w zestawieniu z prawdziwą myszą), zalecamy oznaczenie ich jako oddzielne klasy, aby lepiej reprezentować ich odrębne cechy.

    Zdjęcie przykładów stylów.

Użyj obrazów ujemnych (tylko klasyfikatory)

Jeśli używasz klasyfikatora obrazów, może być konieczne dodanie negatywnych próbek, aby pomóc w zwiększeniu jego dokładności. Próbki ujemne to obrazy, które nie pasują do żadnego z innych tagów. Po załadowaniu tych obrazów zastosuj do nich specjalną etykietę 'Negatywna'.

Detektory obiektów automatycznie obsługują próbki ujemne, ponieważ wszystkie obszary obrazów poza narysowanymi ramkami ograniczającymi są uznawane za ujemne.

Uwaga

Usługa Custom Vision wspiera pewne automatyczne przetwarzanie obrazów negatywnych. Jeśli na przykład tworzysz klasyfikator winogron i bananów i przesyłasz obraz buta do przewidywania, klasyfikator powinien ocenić ten obraz jako zbliżony do 0% zarówno dla winogron, jak i bananów.

Z drugiej strony, w przypadkach, gdy obrazy negatywne są tylko odmianą obrazów używanych w procesie trenowania, prawdopodobnie model będzie klasyfikować obrazy negatywne jako oznaczoną etykietą klasę ze względu na znaczne podobieństwo. Na przykład, jeśli masz klasyfikator pomarańczy i grejpfrutów, do którego wprowadzasz obraz klemensyny, może on sklasyfikować klemensynę jako pomarańczę, ponieważ wiele cech klemensyny przypomina cechy pomarańczy. Jeśli obrazy ujemne są tego rodzaju, zalecamy utworzenie co najmniej jednego dodatkowego tagu (takiego jak Inne) i oznaczenie obrazów ujemnych tym tagiem podczas trenowania, aby umożliwić modelowi lepsze rozróżnienie między tymi klasami.

Obsługa okluzji i przycięcia (tylko detektory obiektów)

Jeśli chcesz, aby detektor obiektów wykrył obcięte obiekty (obiekty, które są częściowo wycięte z obrazu) lub obiektów okludowanych (obiektów częściowo zablokowanych przez inne obiekty na obrazie), należy uwzględnić obrazy szkoleniowe, które obejmują te przypadki.

Uwaga

Problem obiektów, które są okludnione przez inne obiekty, nie należy mylić z progiem nakładania się, parametrem oceny wydajności modelu. Próg nakładania się na stronie internetowej Custom Vision określa, jak bardzo przewidywana ramka ograniczająca musi nakładać się na rzeczywistą ramkę, aby była uznawana za poprawną.

Używanie obrazów przewidywania do dalszego trenowania

Jeśli używasz lub testujesz model, przesyłając obrazy do punktu końcowego przewidywania, usługa Custom Vision przechowuje te obrazy. Następnie można ich użyć, aby ulepszyć model.

  1. Aby wyświetlić obrazy przesłane do modelu, otwórz stronę internetową usługi Custom Vision, przejdź do projektu i wybierz kartę Przewidywania . Widok domyślny przedstawia obrazy z bieżącej iteracji. Możesz skorzystać z rozwijanego menu Iteracji, do wyświetlania obrazów przesyłanych w poprzednich iteracjach.

    zrzut ekranu przedstawiający kartę przewidywania z obrazami w widoku

  2. Zatrzymaj wskaźnik myszy na obrazie, aby zobaczyć tagi przewidywane przez model. Obrazy są sortowane tak, aby te, które mogą przynieść najwięcej ulepszeń do modelu, są wymienione na początku. Aby użyć innej metody sortowania, zaznacz pole wyboru w sekcji Sortowanie .

    Aby dodać obraz do istniejących danych treningowych, wybierz obraz, ustaw poprawne tagi, a następnie wybierz pozycję Zapisz i zamknij. Obraz zostanie usunięty z sekcji Predictions (Przewidywania) i dodany do zestawu obrazów szkoleniowych. Możesz go wyświetlić, wybierając kartę Obrazy szkoleniowe.

    Zrzut ekranu przedstawiający stronę tagowania.

  3. Następnie użyj przycisku Train (Trenowanie), aby ponownie wytrenować model.

Wizualne sprawdzanie przewidywań

Aby sprawdzić przewidywania obrazów, przejdź do karty Obrazy szkoleniowe, wybierz poprzednią iterację trenowania w menu rozwijanym Iteracji i sprawdź co najmniej jeden tag w sekcji Tagi. Widok powinien teraz wyświetlić czerwone pole wokół każdego z obrazów, dla których model nie może poprawnie przewidzieć danego tagu.

Obraz historii iteracji

Czasami inspekcja wizualna może identyfikować wzorce, które można następnie poprawić, dodając więcej danych treningowych lub modyfikując istniejące dane szkoleniowe. Na przykład klasyfikator jabłek a limonki może niepoprawnie oznaczyć wszystkie zielone jabłka jako limonki. Następnie możesz rozwiązać ten problem, dodając i dostarczając dane szkoleniowe zawierające oznakowane obrazy zielonych jabłek.

Następny krok

W tym przewodniku przedstawiono kilka technik, dzięki którym niestandardowy model klasyfikacji obrazów lub model narzędzia do wykrywania obiektów jest bardziej dokładny. Następnie dowiedz się, jak programowo testować obrazy, przesyłając je do interfejsu API przewidywania.