Jak zrobić aplikację do rozpoznawania pisma ręcznego

Korzystanie z MNIST Model Core ML i Vision Framework

Dowolną liczbę można zapisać na tysiące różnych sposobów. Może to bardzo utrudnić aplikacjom rozpoznającym pismo ręczne konwersję pisma ręcznego na tekst. Właśnie dlatego mamy bazę danych Zmodyfikowanego Narodowego Instytutu Standardów i Technologii (MNIST). Zawiera różne odręczne cyfry, które są powszechnie używane do testowania i szkolenia w dziedzinie uczenia maszynowego. Dlatego będziemy używać tego w naszej aplikacji.

Na końcu kodu powinna wyglądać Twoja aplikacja…

Spis treści:

  • Co robi ta aplikacja?
  • Jak zacząć
  • Co robić
  • Koniec!

Co robi ta aplikacja?

Ta aplikacja będzie miała puste płótno u dołu ekranu, na którym użytkownik będzie mógł narysować dowolną liczbę. Gdy użytkownik narysuje liczbę (na przykład 4), kliknie przycisk „Rozpoznanie”, a górna połowa ekranu poinformuje użytkownika, który numer napisał (spójrz na zdjęcie u góry). Następnie, jeśli użytkownik chce napisać inny numer, kliknąłby przycisk „Wyczyść”, a obszar roboczy znów stał się pusty.

Jak zacząć

Aby rozpocząć tworzenie tej aplikacji, potrzebujesz aplikacji dla programistów o nazwie xCode (dostępnej tylko na urządzenia Apple). Najlepsze jest to, że… ZA DARMO! A baza danych MNIST, która będzie dostępna na mojej stronie Github… ZA DARMO! Napisanie i debugowanie kodu zajęło mi około 2 godzin, ale ten samouczek powinien zająć około 30–60 minut. Sugeruję więc, abyś miał przy sobie butelkę wody, abyś mógł kontynuować.

Co robić

Krok # 1: Puste płótno

Otwórz aplikację (oczywiście) i utwórz czarny prostokąt na obrysie telefonu, który pojawia się na ekranie…

Narysuj prostokąt od lewego górnego rogu telefonu do prawego dolnego rogu

Następnie tworzysz nową stronę o nazwie „CanvasView” w folderze Canvas (spójrz na kolumnę po lewej stronie obrazka powyżej). Strony to w zasadzie różne arkusze do kodowania różnych części programu. Istnieje kilka właściwości, które trzeba będzie wywołać na początku strony „CanvasView”.

„Ścieżka” to miejsce, w którym palec użytkownika porusza się po ekranie. (Reszta nie wymaga wyjaśnień)

Następnie musimy wybrać, jaki kolor ma mieć nasz rysunek i jak szerokie powinny być linie.

Możesz wybrać własny kolor i rozmiar. Właśnie z tym poszedłem.

Teraz wiemy, jak będą wyglądały nasze rysunki, ale jak powinniśmy sprawić, by te rysunki wyglądały? Aby to zrobić, musisz utworzyć kilka funkcji.

Bez konieczności kodowania określonego punktu początkowego, program sam rozpoznaje, gdzie zaczyna się palec użytkownika i w jakim kierunku się porusza. Ostatni wiersz pokazuje, że program sam wyświetli ruch palca użytkownika!

Prawie skończyliśmy z krokiem 1! Musimy tylko stworzyć funkcję czyszczenia ekranu. Dokładnie tak to brzmi. Wyczyści ekran i zaczniesz od nowa!

Krok 2: Baza danych MNIST

Jak wspomniałem wcześniej, potrzebujemy MNIST, aby porównać numer użytkownika z innym numerem w bazie danych. Więc stworzymy nowy dokument xCode i dodamy bazę danych MNIST oraz folder Canvas z poprzedniego kodu xCode…, który napisaliśmy.

Tak powinna wyglądać lewa strona ekranu podczas przesyłania obu folderów. Możesz być zdezorientowany, w jaki sposób dotarły tam inne foldery i arkusze, ale dzieje się to samo z powodu elementów w folderze MNIST.

Na samym początku mojego artykułu w podtytule widniało coś o nazwie „Wizja”. Czas zaimportować tutaj tego złego chłopca. Będziesz musiał stworzyć jeszcze kilka funkcji, aby sklasyfikować i porównać numer użytkownika z bazą danych MNIST, co pomoże nam Vision Framework, zwłaszcza, że ​​używamy obrazów (baza danych MNIST).

Ma to na celu pomóc w stworzeniu Vision Framework

Krok # 3: Ekran wyświetlacza

Po skonfigurowaniu Vision Framework musisz ponownie modelować ekran wyświetlacza aplikacji, ale zaufaj mi, to nie jest zbyt trudne i nie potrwa to długo.

Po prostu przeciągnij prawy górny róg czarnego prostokąta w dół, aby Płótno stanowiło około połowy ekranu. W prawym dolnym rogu ekranu powinien być pasek wyszukiwania. Przycisk wyszukiwania. Następnie w modelu telefonu powinno pojawić się pole tekstowe ze słowem „przycisk”. Przeciągnij go w wybrane miejsce i napisz „Wyczyść”. Następnie zrób to samo dla „Rozpoznaj”. Następnie dodaj pole tekstowe i wpisz w nim cyfrę 0. To nie koniec. Aby móc z nich korzystać, potrzebujesz trzech rzeczy w swoim kodzie.

Kliknij przycisk asystenta (2 nakładające się koła w prawym górnym rogu) i po prostu przeciągnij każdy przycisk i cyfrę do kodu, jak pokazano na powyższym obrazku. Spowoduje to automatyczne napisanie kodu, który sprawi, że te rzeczy będą działać. Czy to narzędzie nie jest po prostu niesamowite! Zapisuje dla ciebie część twojego kodu !!! W każdym razie asystent poprosi o „nadanie nazwy” każdemu przeciąganemu elementowi, więc nazwij przycisk „Wyczyść”, przycisk rozpoznawania „Rozpoznaj”, a 0 powinno być „Liczba”.

Krok # 4: Zakończenie

Potrzebujesz funkcji lub fragmentu kodu, który pomoże Vision Framework rozpoznać numer użytkownika za pomocą obrazu…

Ponieważ w bazie danych MNIST będzie więcej niż jeden obraz, Vision Framework powinien być w stanie porównać liczbę użytkowników z DOWOLNYMI obrazami. Dlatego jest to część naszej funkcji.

Uwaga: nie jest to cały potrzebny kod. Możesz uzyskać dostęp do całego kodu na mojej stronie Github…

Jeśli podobał Ci się mój artykuł, zachęcaj mnie do klaśnięcia i śledzenia mnie na Medium i LinkedIn, aby być na bieżąco z moimi postępami!