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

Wykrywanie obiektów

Wykryj wiele obiektów na obrazie z obwiedniami. Rozpoznaj 90 różnych klas obiektów.

Zaczynaj

Jeśli jesteś nowym użytkownikiem TensorFlow Lite i pracujesz z systemem Android lub iOS, zalecamy zapoznanie się z następującymi przykładowymi aplikacjami, które pomogą Ci rozpocząć.

Przykład systemu Android Przykład iOS

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

Pobierz model początkowy z metadanymi

Aby uzyskać więcej informacji na temat modelu rozrusznika, patrz model podstawowy .

Aby uzyskać więcej informacji na temat metadanych i powiązanych pól (np.: labels.txt ), zobacz Odczytywanie metadanych z modeli

Co to jest wykrywanie obiektów?

Mając obraz lub strumień wideo, model wykrywania obiektów może zidentyfikować, który ze znanych zestawów obiektów może być obecny i dostarczyć informacji o ich pozycji w obrazie.

Na przykład ten zrzut ekranu naszej przykładowej aplikacji pokazuje, w jaki sposób dwa obiekty zostały rozpoznane i ich pozycje zostały opisane:

Zrzut ekranu z przykładem Androida

Model wykrywania obiektów jest szkolony w celu wykrywania obecności i lokalizacji wielu klas obiektów. Na przykład model można wytrenować za pomocą obrazów zawierających różne kawałki owoców, wraz z etykietą określającą klasę owoców, które reprezentują (np. Jabłko, banan lub truskawka) oraz danymi określającymi, gdzie każdy przedmiot występuje w Obraz.

Kiedy następnie dostarczymy obraz do modelu, wyświetli on listę wykrytych obiektów, lokalizację obwiedni zawierającej każdy obiekt oraz ocenę, która wskazuje, że wykrywanie było poprawne.

Wyjście modelu

Wyobraź sobie, że model został wyszkolony do wykrywania jabłek, bananów i truskawek. Kiedy przekażemy mu obraz, wyświetli określoną liczbę wyników wykrywania - w tym przykładzie 5.

Klasa Wynik Lokalizacja
jabłko 0.92 [18, 21, 57, 63]
Banan 0.88 [100, 30, 180, 150]
Truskawka 0.87 [7, 82, 89, 163]
Banan 0,23 [42, 66, 57, 83]
jabłko 0.11 [6, 42, 31, 58]

Wynik zaufania

Aby zinterpretować te wyniki, możemy spojrzeć na wynik i lokalizację każdego wykrytego obiektu. Wynik to liczba od 0 do 1, która wskazuje na pewność, że obiekt został rzeczywiście wykryty. Im liczba jest bliższa 1, tym pewniejszy jest model.

W zależności od aplikacji możesz określić próg odcięcia, poniżej którego wyniki wykrywania zostaną odrzucone. W naszym przykładzie możemy zdecydować, że rozsądną wartością graniczną jest wynik 0,5 (co oznacza 50% prawdopodobieństwo, że wykrycie jest prawidłowe). W takim przypadku zignorowalibyśmy dwa ostatnie obiekty w tablicy, ponieważ te wyniki ufności są poniżej 0,5:

Klasa Wynik Lokalizacja
jabłko 0.92 [18, 21, 57, 63]
Banan 0.88 [100, 30, 180, 150]
Truskawka 0.87 [7, 82, 89, 163]
Banan 0,23 [42, 66, 57, 83]
jabłko 0.11 [6, 42, 31, 58]

Odcięcie, którego używasz, powinno opierać się na tym, czy bardziej czujesz się komfortowo z fałszywymi pozytywami (obiekty, które są błędnie zidentyfikowane lub obszary obrazu, które są błędnie zidentyfikowane jako obiekty, gdy nie są) lub fałszywe negatywy (oryginalne przedmioty, które są przegapili, ponieważ ich zaufanie było niskie).

Na przykład na poniższym obrazku gruszka (która nie jest obiektem, do którego wykrywania został wyszkolony model) została błędnie zidentyfikowana jako „osoba”. To jest przykład fałszywego pozytywnego wyniku, który można zignorować, wybierając odpowiednią wartość graniczną. W takim przypadku odcięcie 0,6 (lub 60%) z łatwością wykluczyłoby fałszywie dodatni wynik.

Zrzut ekranu przedstawiający przykład Androida pokazujący fałszywy alarm

Lokalizacja

Dla każdego wykrytego obiektu model zwróci tablicę czterech liczb reprezentujących prostokąt ograniczający, który otacza jego położenie. Dla dostarczanego przez nas modelu startowego numery są uporządkowane w następujący sposób:

[ Top, lewo, Dolny, dobrze ]

Górna wartość reprezentuje odległość górnej krawędzi prostokąta od górnej części obrazu w pikselach. Lewa wartość reprezentuje odległość lewej krawędzi od lewej krawędzi obrazu wejściowego. Pozostałe wartości reprezentują dolną i prawą krawędź w podobny sposób.

Testy wydajności

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

Nazwa modelu Rozmiar modelu Urządzenie GPU procesor
Dysk SSD COCO MobileNet v1 27 Mb Pixel 3 (Android 10) 22 ms 46 ms *
Pixel 4 (Android 10) 20 ms 29 ms *
iPhone XS (iOS 12.4.1) 7,6 ms 11 ms **

* 4 używane nici.

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

Model początkowy

Zalecamy rozpoczęcie od tego wstępnie wyszkolonego, skwantyzowanego modelu COCO SSD MobileNet v1.

Pobierz model startowy i etykiety

Zastosowania i ograniczenia

Dostarczony przez nas model wykrywania obiektów może zidentyfikować i zlokalizować do 10 obiektów na obrazie. Jest wyszkolony w rozpoznawaniu 90 klas obiektów. Pełną listę klas można znaleźć w pliku etykiet osadzonym w modelu z wizualizacją metadanych .

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, którą pojedynczą etykietę najprawdopodobniej reprezentuje obraz (patrz klasyfikacja obrazu )
  • Przewidywanie kompozycji obrazu, na przykład temat względem tła (patrz segmentacja )

Wejście

Model przyjmuje obraz jako dane wejściowe. Oczekiwany obraz ma wymiary 300 x 300 pikseli, z trzema kanałami (czerwonym, niebieskim i zielonym) na piksel. Powinno to zostać wprowadzone do modelu jako spłaszczony bufor o wartości 270 000 bajtów (300x300x3). Ponieważ model jest kwantowany , każda wartość powinna być pojedynczym bajtem reprezentującym wartość od 0 do 255.

Wynik

Model generuje cztery tablice, odwzorowane na indeksy 0-4. Tablice 0, 1 i 2 opisują 10 wykrytych obiektów, z jednym elementem w każdej tablicy odpowiadającym każdemu obiektowi. Zawsze będzie wykrytych 10 obiektów.

Indeks Imię Opis
0 Lokalizacje Wielowymiarowa tablica wartości zmiennoprzecinkowych [10] [4] od 0 do 1, wewnętrzne tablice reprezentujące obwiednie w postaci [góra, lewo, dół, prawo]
1 Zajęcia Tablica 10 liczb całkowitych (wyprowadzanych jako wartości zmiennoprzecinkowe), z których każda wskazuje indeks etykiety klasy z pliku etykiet
2 Wyniki Tablica 10 wartości zmiennoprzecinkowych z przedziału od 0 do 1 reprezentujących prawdopodobieństwo wykrycia klasy
3 Liczba i wykryć Tablica o długości 1 zawierająca wartość zmiennoprzecinkową wyrażającą całkowitą liczbę wyników wykrywania

Dostosuj model

Dostarczane przez nas wstępnie wyszkolone modele są przeszkolone w wykrywaniu 90 klas obiektów. Pełną listę klas można znaleźć w pliku etykiet w metadanych modelu .

Możesz użyć techniki znanej jako transfer learning, aby ponownie wytrenować model w celu rozpoznawania klas, które nie znajdują się w oryginalnym zestawie. Na przykład można ponownie nauczyć model wykrywania wielu rodzajów warzyw, mimo że w oryginalnych danych szkoleniowych znajduje się tylko jedno warzywo. Aby to zrobić, będziesz potrzebować zestawu obrazów szkoleniowych dla każdej z nowych etykiet, które chcesz wyszkolić.

Dowiedz się, jak przeprowadzić uczenie transferu w ramach szkolenia i obsługiwać mobilny detektor obiektów w czasie rzeczywistym w 30 minut .