Nie jest dla mnie jasne, co chcesz osiągnąć za pomocą aplikacji, ale zakładam, że próbujesz wydrukować czcionkę z bazy danych czcionek, która najbardziej pasuje do pisma odręcznego użytkownika.
W uczeniu maszynowym byłby to problem z klasyfikacją. Numer klasy będzie równy liczbie różnych czcionek w bazie danych.
Można to rozwiązać za pomocą narzędzia Convolutional neural network, które są szeroko stosowane do zadań związanych z rozpoznawaniem obrazów i wideo. Jeśli nigdy nie zaimplementowałeś CNN, zanim zasugeruję, abyś sprawdził te zasoby, aby dowiedzieć się o Torch
, który jest łatwym do uruchomienia zestawem narzędzi do implementacji CNN. (Oczywiście istnieje więcej Konstrukcje takie jak: Tensor Flow
, Caffe
, Lasagne
...)
Główną przeszkodą będzie musiał stawić czoła jest Neural Sieci potrzebują tysięcy obrazów (>100.000)
, aby odpowiednio je szkolić i osiągnąć zadowalające wyniki. Co więcej, potrzebujesz nie tylko obrazów, ale także prawidłowej etykiety dla każdego obrazu. Powiedzą, że potrzebujesz obrazu treningowego, takiego jak odręczny znak i odpowiadająca mu czcionka, którą najbardziej pasuje do Twojej bazy danych jako etykiety.
Sugeruję, aby przeczytać o tak zwanym transfer learning, który może dać ci początkowy impuls, ponieważ nie musisz samodzielnie konfigurować modelu CNN. Ponadto ludzie mają taki model do pokrewnego zadania, aby zapewnić sobie dodatkowy czas, ponieważ nie trzeba go trenować przez wiele godzin na GPU. (zob. CUDA)
Doskonałym zasobem na początek jest artykuł: How transferable are features in deep neural networks?, który może być pomocny z podanych powodów.
Aby uzyskać ton szkolenia i danych testowych można sprawdzić następujące otwarte zbiory danych, które zapewniają wszystkie rodzaje znaków, które mogą być pomocne dla zadania:
Aby uzyskać dostęp do wielu czcionek, a może nawet możliwość stworzenia kolejnych zestawów danych na własną rękę można rzucić okiem na Google Fonts.
Więc, w zasadzie, pytasz, jak napisać aplikację, która może powiedzieć, czy moje pismo wygląda jak "Arial" lub "Tahoma" lub "Century Gothic" lub jedna z milionów (i liczących) istniejących czcionek ?! –