Как да направите приложение за разпознаване на почерк

Използване на MNIST Model Core ML & Vision Framework

Всяко число може да бъде написано по хиляди различни начини. Това може да затрудни приложенията за разпознаване на ръкописен текст да конвертират почерк в текст. Ето защо разполагаме с базата данни на Модифицирания национален институт за стандарти и технологии (MNIST). Той съдържа различни ръкописни цифри, които обикновено се използват за тестване и обучение в областта на машинното обучение. Ето защо ние ще използваме това в нашето приложение.

В края на кода това трябва да изглежда приложението ви ...

Съдържание:

  • Какво прави това приложение
  • Как да започнем
  • Какво да правя
  • Край!

Какво прави това приложение

Това приложение ще има празно платно в долната част на екрана, където потребителят може да нарисува произволно число. След като потребителят нарисува номера (например 4), ще натисне бутона „Разпознаване“ и горната половина на екрана ще каже на потребителя кой номер е написал (вижте изображението в горната част). След това, ако потребителят иска да напише друго число, ще натисне бутона „Изчисти“ и платното отново ще остане празно.

Как да започнем

За да започнете да правите това приложение, ще ви трябва приложение за разработчици, наречено xCode (достъпно само за устройства с ябълки). Най-добрата част е ... БЕЗПЛАТНО! И базата данни MNIST, която ще бъде достъпна на страницата ми в Github ... БЕЗПЛАТНО! Отне ми около 2 часа, за да напиша и да отстраня грешки в кода си, но с този урок трябва да ви отнеме около 30 - 60 минути. Така че, предлагам ви да запазите бутилка вода със себе си, за да продължите напред.

Какво да правя

Стъпка # 1: Пустото платно

Отворете приложението (очевидно) и направете черен правоъгълник върху очертанията на телефона, който се показва на екрана…

Начертайте правоъгълника от горния ляв ъгъл на телефона до долния десен ъгъл

След това създавате нова страница, наречена „CanvasView“ в папката „Canvas“ (погледнете колоната вляво от изображението по-горе). Страниците са по принцип различни листове, за да кодирате различни части от програмата. Има няколко свойства, които ще трябва да се обадите в началото на страницата „CanvasView“.

„Път“ е мястото, където пръстът на потребителя се движи по екрана. (Останалите са обяснителни)

Тогава трябва да изберем какъв цвят искаме да бъде рисунката ни и колко широка искаме да бъдат линиите.

Можете да изберете свой собствен цвят и размер. Само с това отидох.

Сега знаем как ще изглеждат нашите рисунки, но как всъщност трябва да направим рисунките да се появяват? За да направите това, трябва да създадете няколко функции.

Без да се налага да кодира конкретна начална точка, програмата сама разпознава откъде започва пръстът на потребителя и в каква посока се движи. Последният ред показва, че програмата сама ще покаже движението на пръста на потребителя!

Почти сме приключили с стъпка 1! Просто трябва да направим функция за изчистване на екрана. Точно това звучи. Той ще изчисти екрана и ще ви позволи да започнете отново!

Стъпка # 2: MNIST база данни

Както споменах по-рано, имаме нужда от MNIST, за да сравним номера на потребителя с този на другия в базата данни. Така че ние ще създадем нов xCode документ и ще добавим базата данни MNIST и папката Canvas от предишния xCode… код, който написахме.

Ето как трябва да изглежда лявата част на екрана ви, когато качвате и двете папки. Може да се объркате как са стигнали другите папки и листове там, но това се случва самостоятелно заради елементите в папката MNIST.

В самия връх на статията ми в подзаглавието видяхте нещо, наречено „Vision“. Време е да импортирам лошото момче тук. Ще трябва да създадете още няколко функции, за да класифицирате и сравните номера на потребителя с базата данни MNIST, което е, което Vision Framework ще ни помогне да правим, особено след като използваме изображения (база данни MNIST).

Това е за да се създаде Vision Framework

Стъпка # 3: Екранът на дисплея

След като настроите Vision Framework, трябва да моделирате отново екрана на приложението, но повярвайте ми, това не е твърде трудно и няма да отнеме толкова дълго.

Просто плъзнете горния десен ъгъл на черния правоъгълник надолу, така че платното да е около половината от екрана. В долната дясна част на екрана трябва да има лента за търсене. Бутон за търсене След това на вашия модел телефон трябва да се появи текстово поле с думата „бутон“. Плъзнете го на желаното място и напишете „Изчисти“. След това направете същото за „разпознаване“. След това добавете текстово поле и напишете числото 0 в него. Това не свършва просто тук Имате нужда от три неща във вашия действителен код, за да можете да ги използвате.

Щракнете върху бутона за помощник (2-те припокриващи се кръга в горния десен ъгъл) и просто плъзнете всеки бутон и номер в кода, както е показано на снимката по-горе. Това автоматично ще напише код за вас, който ще накара тези неща да работят. Не е ли този инструмент просто невероятен! Той пише част от вашия код за вас !!! Както и да е, асистентът ще ви помоли да „назовете“ всеки елемент, който преместите, така че да назове бутона за изчистване „Изчисти“, бутона за разпознаване „Разпознаване“ и 0 трябва да бъде „Число“.

Стъпка # 4: Завършване

Имате нужда от функция или парче код, който помага на Vision Framework всъщност да разпознае номера на потребителя с изображение ...

Тъй като в базата данни на MNIST ще има повече от едно изображение, Vision Framework трябва да може да сравнява номера на потребителя с ВСИЧКИ изображения. Ето защо това е част от нашата функция.

Забележка: Това не е всички необходими кодове. Можете да получите достъп до целия код на моята страница в Github ...

Ако ви хареса моята статия, не се колебайте да ми дадете хлопки и да ме последвате в Medium и LinkedIn, за да сте в течение с напредъка си!