Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Klasyfikacja obrazu

Użyj wstępnie wytrenowanego i zoptymalizowanego modelu, aby zidentyfikować setki klas obiektów, w tym ludzi, czynności, zwierzęta, rośliny i miejsca.

Zaczynaj

Jeśli nie znasz pojęcia klasyfikacji obrazów, powinieneś zacząć od przeczytania artykułu Co to jest klasyfikacja obrazów?

Aby dowiedzieć się, jak używać klasyfikacji obrazów w aplikacji mobilnej, zalecamy zapoznanie się z naszymi przykładowymi aplikacjami i przewodnikami .

Jeśli korzystasz z platformy innej niż Android lub iOS lub znasz już interfejsy API TensorFlow Lite, możesz pobrać nasz model klasyfikacji obrazu startowego i towarzyszące mu etykiety.

Pobierz model startowy i etykiety

Po uruchomieniu modelu startowego na urządzeniu docelowym możesz eksperymentować z różnymi modelami, aby znaleźć optymalną równowagę między wydajnością, dokładnością i rozmiarem modelu. Aby uzyskać wskazówki, zobacz Wybieranie innego modelu .

Przykładowe aplikacje i poradniki

Mamy przykładowe aplikacje do klasyfikacji obrazów zarówno na Androida jak i iOS. Dla każdego przykładu zapewniamy przewodnik, który wyjaśnia, jak to działa.

Android

Zobacz przykład Androida

Przeczytaj przykładowy przewodnik dotyczący Androida, aby dowiedzieć się, jak działa ta aplikacja.

iOS

Zobacz przykład iOS

Przeczytaj przykładowy przewodnik dotyczący systemu iOS, aby dowiedzieć się, jak działa aplikacja.

Zrzut ekranu

Poniższy zrzut ekranu przedstawia przykład klasyfikacji obrazu systemu Android.

Zrzut ekranu z przykładem Androida

Co to jest klasyfikacja obrazu?

Typowym zastosowaniem uczenia maszynowego jest identyfikacja tego, co reprezentuje obraz. Na przykład, możemy chcieć wiedzieć, jaki typ zwierzęcia pojawia się na poniższym zdjęciu.

pies

Zadanie przewidywania, co reprezentuje obraz, nazywa się klasyfikacją obrazu . Model klasyfikacji obrazów jest szkolony w zakresie rozpoznawania różnych klas obrazów. Na przykład model można nauczyć rozpoznawać zdjęcia przedstawiające trzy różne typy zwierząt: króliki, chomiki i psy.

Kiedy później dostarczymy nowy obraz jako dane wejściowe do modelu, wyświetli on prawdopodobieństwo obrazu reprezentującego każdy z typów zwierząt, na których był szkolony. Przykładowe dane wyjściowe mogą wyglądać następująco:

Typ zwierzęcia Prawdopodobieństwo
Królik 0,07
Chomik 0,02
Pies 0.91

Na podstawie wyników widzimy, że model klasyfikacyjny przewidział, że obraz ma duże prawdopodobieństwo reprezentowania psa.

Szkolenie, etykiety i wnioskowanie

Podczas szkolenia model klasyfikacji obrazów jest wprowadzany do obrazów i powiązanych z nimi etykiet . Każda etykieta to nazwa odrębnej koncepcji lub klasy, którą model nauczy się rozpoznawać.

Mając wystarczające dane szkoleniowe (często setki lub tysiące obrazów na etykietę), model klasyfikacji obrazów może nauczyć się przewidywać, czy nowe obrazy należą do którejkolwiek z klas, na których został przeszkolony. Ten proces przewidywania nazywa się wnioskiem .

Aby przeprowadzić wnioskowanie, obraz jest przekazywany jako dane wejściowe do modelu. Model wyświetli następnie tablicę prawdopodobieństw z zakresu od 0 do 1. W naszym przykładowym modelu proces ten może wyglądać następująco:

pies [0, 07, 0, 02, 0, 91]

Każda liczba w wynikach odpowiada etykiecie w naszych danych szkoleniowych. Wiążąc nasze wyniki z trzema etykietami, na podstawie których trenowano model, widzimy, że model przewidział wysokie prawdopodobieństwo, że obraz przedstawia psa.

Etykieta Prawdopodobieństwo
Królik 0,07
chomik 0,02
pies 0.91

Możesz zauważyć, że suma wszystkich prawdopodobieństw (dla królika, chomika i psa) jest równa 1. Jest to typowy typ wyniku dla modeli z wieloma klasami (więcej informacji można znaleźć w Softmax ).

Niejednoznaczne wyniki

Ponieważ prawdopodobieństwa zawsze będą sumować się do 1, jeśli obraz nie zostanie z pewnością rozpoznany jako należący do którejkolwiek z klas, na podstawie których trenowano model, można zobaczyć prawdopodobieństwo rozłożone na etykiety bez żadnej wartości, która jest znacznie większa.

Na przykład poniższe informacje mogą wskazywać na niejednoznaczny wynik:

Etykieta Prawdopodobieństwo
Królik 0.31
chomik 0.35
pies 0.34

Zastosowania i ograniczenia

Dostarczane przez nas modele klasyfikacji obrazów są przydatne do klasyfikacji z jedną etykietą, co oznacza przewidywanie, którą pojedynczą etykietę obraz najprawdopodobniej będzie reprezentował. Są przeszkoleni w rozpoznawaniu 1000 klas obrazów. Pełną listę klas można znaleźć w pliku etykiet w pliku zip modelu .

Jeśli chcesz uczyć model rozpoznawania nowych klas, zobacz Dostosowywanie modelu .

W następujących przypadkach użycia należy użyć innego typu modelu:

  • Przewidywanie typu i położenia jednego lub więcej obiektów na obrazie (patrz Wykrywanie obiektów )
  • Przewidywanie kompozycji obrazu, na przykład temat względem tła (patrz Segmentacja )

Po uruchomieniu modelu startowego na urządzeniu docelowym możesz eksperymentować z różnymi modelami, aby znaleźć optymalną równowagę między wydajnością, dokładnością i rozmiarem modelu. Aby uzyskać wskazówki, zobacz Wybieranie innego modelu .

Testy wydajności

Numery testów wydajności są generowane za pomocą opisanego tutaj narzędzia.

Nazwa modelu Rozmiar modelu Urządzenie NNAPI procesor
Mobilenet_V1_1.0_224_quant 4,3 Mb Pixel 3 (Android 10) 6 ms 13 ms *
Pixel 4 (Android 10) 3,3 ms 5 ms *
iPhone XS (iOS 12.4.1) 11 ms **

* 4 używane nici.

** 2 wątki używane na iPhonie w celu uzyskania najlepszej wydajności.

Wybierz inny model

Na naszej liście hostowanych modeli jest dostępnych wiele modeli klasyfikacji obrazów. Należy dążyć do wyboru optymalnego modelu dla swojej aplikacji w oparciu o wydajność, dokładność i rozmiar modelu. Między każdym z nich są kompromisy.

Występ

Mierzymy wydajność w kategoriach czasu, jaki zajmuje modelowi wykonanie wnioskowania na danym elemencie sprzętu. Im mniej czasu, tym szybszy model.

Wymagana wydajność zależy od aplikacji. Wydajność może być ważna w aplikacjach, takich jak wideo w czasie rzeczywistym, gdzie może być ważne, aby przeanalizować każdą klatkę w czasie przed narysowaniem następnej klatki (np. Wnioskowanie musi być szybsze niż 33 ms, aby wykonać wnioskowanie w czasie rzeczywistym na strumieniu wideo 30 kl./s) .

Wydajność naszych skwantyzowanych modeli MobileNet wynosi od 3,7 ms do 80,3 ms.

Precyzja

Dokładność mierzymy pod kątem tego, jak często model poprawnie klasyfikuje obraz. Na przykład można oczekiwać, że model o określonej dokładności 60% będzie prawidłowo klasyfikować obraz średnio w 60% przypadków.

Nasza lista hostowanych modeli zawiera statystyki dotyczące dokładności Top-1 i Top-5. Top-1 odnosi się do tego, jak często poprawna etykieta pojawia się jako etykieta z największym prawdopodobieństwem w wynikach modelu. Top-5 odnosi się do tego, jak często poprawna etykieta pojawia się w 5 największych prawdopodobieństwach w wynikach modelu.

Dokładność naszych skwantyzowanych modeli MobileNet wynosi od 64,4 do 89,9%.

Rozmiar

Rozmiar modelu na dysku zależy od jego wydajności i dokładności. Rozmiar może być ważny w przypadku tworzenia aplikacji mobilnych (gdzie może mieć wpływ na rozmiary pobieranych aplikacji) lub podczas pracy ze sprzętem (gdzie dostępne miejsce może być ograniczone).

Rozmiar naszych skwantyzowanych modeli MobileNet wynosi od 0,5 do 3,4 Mb.

Architektura

Na liście modeli hostowanych dostępnych jest kilka różnych architektur modeli , wskazanych przez nazwę modelu. Na przykład możesz wybrać między MobileNet, Inception i innymi.

Architektura modelu wpływa na jego wydajność, dokładność i rozmiar. Wszystkie nasze hostowane modele są szkolone na tych samych danych, co oznacza, że ​​możesz użyć dostarczonych statystyk, aby je porównać i wybrać, który jest optymalny dla Twojej aplikacji.

Dostosuj model

Dostarczane przez nas wstępnie przeszkolone modele są przeszkolone w rozpoznawaniu 1000 klas obrazów. Pełną listę klas można znaleźć w pliku etykiet w pliku zip modelu .

Możesz użyć techniki znanej jako transfer learning, aby ponownie wytrenować model, aby rozpoznawał klasy spoza oryginalnego zestawu. Na przykład można ponownie wyszkolić model, aby rozróżniać różne gatunki drzew, mimo że w oryginalnych danych szkoleniowych nie ma drzew. Aby to zrobić, będziesz potrzebować zestawu obrazów szkoleniowych dla każdej z nowych etykiet, które chcesz wytrenować.

Dowiedz się, jak przeprowadzić uczenie transferowe w programie Rozpoznaj kwiaty z kodem TensorFlow lub z zestawem narzędzi do tworzenia modeli .