IPhone: jak korzystać z funkcji wykrywania tekstu w systemie iOS

Vision w iOS 11 ma wszystko, czego potrzebujesz, aby stworzyć aplikację, która potrafi rozpoznawać znaki tekstowe przy jednoczesnej implementacji. Nie potrzebujesz technicznej wiedzy o kodowaniu – poruszanie się po funkcji jest dość proste. Co więcej, wdrożenie przebiega bezproblemowo.

Ramy wizji

Ramy wizyjne umożliwiają łatwą realizację każdego zadania, które obejmuje szczegóły dotyczące komputera. Struktura wykonuje wykrywanie twarzy i punktów orientacyjnych twarzy, rozpoznawanie kodów kreskowych, rejestrację obrazu, ogólne śledzenie cech i wykrywanie tekstu. Vision umożliwia również korzystanie z niestandardowych modeli Core ML do zadań takich jak klasyfikacja lub wykrywanie obiektów.

VN DetectTextProstokąty Żądanie

ten VN DetectTextProstokąty Żądanie to żądanie analizy obrazu, które znajduje obszary widocznego tekstu na obrazie; funkcja zwraca znaki tekstowe w postaci prostokątnej ramki ograniczającej z początkiem i rozmiarem.

Jeśli jesteś przyzwyczajony do używania Swift i programujesz od jakiegoś czasu, prawdopodobnie zastanawiasz się, do czego służy Vision, gdy istnieją inne funkcje, takie jak obraz i AVFoundation. Cóż, Vision jest dokładniejszy i prostszy. Ta funkcja jest również dostępna na różnych platformach. Jednak korzystanie z Vision może wymagać większej mocy obliczeniowej i czasu przetwarzania.

Aby używać Vision do wykrywania tekstu, będziesz potrzebować Xcode 9 i urządzenia z systemem iOS 11.

Tworzenie kamery za pomocą Avcapture

Najpierw musisz stworzyć kamerę z Przechwytywanie AV; jest to inicjowanie jednej sesji AVcaptures do wykonywania przechwytywania w czasie rzeczywistym lub offline. Następnie nawiąż sesję z połączeniem urządzenia.

Aby zaoszczędzić czas potrzebny na budowanie interfejsu użytkownika aplikacji, zastanów się nad stworzeniem projektu startowego, który na początek da ci czas na skupienie się na nauce frameworka Vision.

  1. Otwórz swój projekt startowy. Widoki w scenorysie powinny być gotowe i skonfigurowane dla Ciebie.
  2. Na ViewController.swift, poszukaj sekcji kodu z funkcjami i wyjściami.
  3. Pod gniazdem-ImageView, dogłosić sesję dla Sesja nagraniowa AV – jest używany, gdy chcesz, aby akcje były wykonywane w oparciu o transmisję na żywo.
  4. Ustaw Sesja nagraniowa AV i Typ mediów AV do wideo, ponieważ wykonasz sesję z kamery, aby umożliwić jej ciągłe działanie
  5. Zdefiniuj urządzenie wyjściowe i wejściowe
  6. Wejście jest tym, co zobaczy kamera, a wyjściem jest wideo w ustawionym formacie typu KCVPixelFormatType_32GRA.
  7. Na koniec dodaj podwarstwa który zawiera filmy do obrazWidok i rozpocznij sesję. Funkcja jest znana jako inViewdidload. Musisz także ustawić ramkę warstwy.

Wywołaj funkcję w zobaczBędzie się pojawiać metoda.

Ponieważ granice nie są jeszcze sfinalizowane, zastąp viewDidLayoutSubviews ( ) metoda aktualizacji powiązanych warstw.

Po premierze iOS 10 potrzebny jest dodatkowy wpis w Info.plist, jest to powód do korzystania z aparatu. Powinieneś także ustawić opis użycia prywatności-kamery.

Wykrywanie tekstu; Jak działa Vision Framework

Implementacja Vision w aplikacji składa się z trzech kroków.

  1. Przewoźnicy – to jest wtedy, gdy chcesz, aby framework zrobił coś po wywołaniu żądania.
  2. Obserwacje – to jest to, co chcesz zrobić z danymi dostarczonymi przez Ciebie, zaczynając od jednej prośby
  3. Żądania – wtedy prosisz o framework Detect

Najlepiej, jeśli utworzysz jedno żądanie tekstowe jako VNdetecttextrectanglesżądanie. To jest rodzaj VNżądanie który otacza tekst. Po tym, jak framework zakończy aplikację, przystępujesz do wywołania Dettexthandler funkcjonować. Będziesz także chciał poznać dokładną ramkę, która została rozpoznana, ustaw ją na Zgłoś pola znaków=Prawda.

Następnie zdefiniuj obserwacje zawierające wszystkie wyniki VNdetecttextrectanglesżądanie, pamiętaj, aby dodać Vision do kamery wyjściowej. Ponieważ Vision udostępnia interfejsy API wysokiego poziomu, praca z nim jest bezpieczna.

Funkcja sprawdza, czy Cmsampmplebuffer istnieje i PutOut Wyjście przechwytywania. Następnie powinieneś przystąpić do tworzenia jednej zmiennej Opcje żądania jako 1 typ słownika Opcja obrazu VN. ten VNmag opcja to rodzaj struktury, która zawiera właściwości i dane z kamery. Powinieneś wtedy stworzyć VNimagerequesthandler i wykonaj żądanie tekstowe.

Rysowanie granic wokół wykrytego tekstu

Możesz zacząć od narysowania dwóch ramek, jednego dla każdej wykrytej litery, a drugiego dla każdego słowa. Tabele są kombinacją wszystkich pól znaków, które znajdziesz w Twojej prośbie.

  • Zdefiniuj punkty na swoim widoku, które pomogą Ci ustawić pola.
  • Następnie utwórz CALayer; posługiwać się VNrectangleobserwacja aby zdefiniować swoje ograniczenia, ułatwiając proces obrysowywania pudełka.

Masz teraz rozplanowane wszystkie funkcje.

Aby połączyć kropki, zacznij od asynchronicznego uruchamiania kodu. Następnie sprawdź, czy w Twoich wynikach z Twojego VNObserwacja tekstu.

Możesz teraz wywołać swoją funkcję, która narysuje prostokąt w obszarze. Sprawdź, czy w regionie znajdują się pola znaków, a następnie zadzwoń do usługi, która wprowadza pole wokół każdej litery.

Następnie utwórz zmienną Opcje żądania. Możesz teraz utworzyć Obsługa żądań obrazu VN obiektu i wykonaj żądanie tekstowe, które utworzyłeś.

Ostatnim krokiem jest uruchomienie kodu wizji z transmisją na żywo. Musisz wziąć wyjście wideo i przekonwertować je na Cmsampbuffer.

Dodatkowe wskazówki

  1. Zawsze staraj się przycinać obraz i przetwarzać tylko tę część, której potrzebujesz. Zmniejszy to czas przetwarzania i zużycie pamięci
  2. Włącz korekcję języka, gdy masz do czynienia ze znakami nienumerycznymi, a następnie wyłącz ją, gdy masz do czynienia ze znakiem numerycznym
  3. Uwzględnij weryfikację rozpoznanych ciągów liczbowych, aby potwierdzić dokładność i wyeliminować wyświetlanie fałszywej wartości użytkownikowi.
  4. Kontroler kamery dokumentacyjnej jest najlepszym towarzyszem rozpoznawania tekstu, ponieważ jakość obrazu odgrywa znaczącą rolę w rozpoznawaniu tekstu.
  5. Rozważ ustawienie minimalnej wysokości tekstu, aby zwiększyć wydajność.

Dzięki Vision masz wszystko, czego potrzebujesz do rozpoznawania tekstu. Ponieważ Vision jest łatwy w użyciu i zajmuje niewiele czasu na wdrożenie, używanie go jest prawie równoznaczne z zabawą Legos. Przetestuj swoją aplikację na różnych obiektach, czcionkach, oświetleniu i rozmiarach. Możesz również zaimponować sobie, łącząc Vision z Core ML.