IA de reconnaissance de l'écriture manuscrite coréenne
Université Konkuk. Senior, Programmation multimédia - Projet à terme (Projet individuel)
1. Introduction
« L'écriture coréenne d'un individu peut-elle être apprise grâce à un réseau neuronal artificiel ?
Même lorsque l’on écrit les mêmes lettres, le style d’écriture de chaque personne est subtilement différent. Le style d'écriture des personnes qui sont obligées d'écrire ou qui écrivent en éructant laissera des traces différentes de celles habituelles, ce qui le rend très fiable comme preuve. Cette unicité est ce qui rend une signature unique. Dans les documents et examens importants, il est très important de vérifier l’authenticité de l’écriture manuscrite.
Puisqu’elle est utilisée pour prouver l’identité, l’écriture manuscrite est unique, mais s’il existe deux écritures différentes avec seulement des différences subtiles, il est difficile pour les humains de distinguer la différence à l’œil nu. Par conséquent, j'ai souhaité implémenter un modèle d'intelligence artificielle pour la reconnaissance de l'écriture manuscrite coréenne.
(1-1) Données d'entrée
- Écriture manuscrite coréenne de 10 personnes
- L’image ci-dessus est entièrement écrite par une personne différente. (Vous pouvez voir que ce sont les mêmes lettres, mais subtilement différentes.)
(1-2) Cible
- 10 personnes (3 membres de la famille, 7 amis proches)
- BSN(Sona Bang), CHW(Howon Choi), KBJ(Beomjun Kim), KJH(Joonhyung Kwon), LJH(Jongho Lee), LSE(Seungeon Lee), PJH(Jonghyuk Park), PSM(Sangmoon Park), SHB( Suk Hyunbin), SWS (Woosub Shin)
(1-3) Champ d'application attendu
- Vérification manuscrite de l'examen national et des documents importants.
- OCR (reconnaissance optique de caractères)
2. Création d'une base de données
2-1. Données à une lettre
(1) j'ai lu
- Modèle utilisé fourni par "Ongle-leap", une société de conception de polices
- Inclus toutes les combinaisons de lettres coréennes
(2) Masque non aiguisé
- Utiliser un masque non aiguisé pour aiguiser son écriture
(3) Transformation en niveaux de gris
(4) Examen de l'histogramme et application du 1er seuil
- Le seuil est défini via l'histogramme et l'image est binarisée en fonction du seuil.
- (Dans cet exemple, le seuil est fixé à 150 de 0 à 255)
(5) Appliquer le LPF
- Afin d'extraire la position de l'écriture manuscrite, il est nécessaire de lisser l'écriture manuscrite via LPF afin que le contour soit exposé.
- Définissez la taille du noyau de manière appropriée et appliquez LPF aux images binarisées via cv2.filter2D.
- Plus la taille du noyau est petite, plus il est facile de détecter des unités plus petites telles que les voyelles et les consonnes, et plus la taille du noyau est grande, plus il est facile de détecter le contour de la lettre elle-même.
- (L'exemple s'applique au noyau 21x21)
(6) Examen de l'histogramme et application du 2ème seuil
- Définissez le seuil via l'histogramme de l'image lissée avec LPF, puis la binarisation est à nouveau effectuée en fonction du seuil.
- (Exemple de valeur seuil : 230)
(7) Extraire le contour et les coordonnées, recadrer l'image
- Un petit contour, qui n'est pas une lettre, n'a pas été extrait.
- Les coordonnées x,y et les valeurs w,h ont été extraites du contour extrait, et les coordonnées ont été calculées à nouveau avec un carré afin que les caractéristiques d'écriture manuscrite ne soient pas perdues autant que possible car elles ont dû être redimensionnées ultérieurement au format 64x64.
- Grâce aux coordonnées calculées, l’image a été recadrée en forme carrée.
(8) Imécrire
- 81 données d'une lettre par personne
- total : 810 données d'une lettre ont été collectées,
2-2. Données à deux lettres
- Les données à deux lettres ont été créées en combinant différentes données à une seule lettre, chacune étant mise à l'échelle de manière appropriée.
- Afin de réduire la perte d'informations sur les caractéristiques lors du redimensionnement, la fonction img_concat(img1, img2) a été créée et utilisée pour connecter les images et les former en carrés.
- Acquisition de 6 480 données à deux lettres par cible (81P2)
2-3. Données à trois lettres
- Les données à trois lettres ont été créées en combinant des données à une lettre et des données à deux lettres, chacune étant mise à l'échelle de manière appropriée.
- Acquisition de 7 980 données à trois lettres par cible
2-4. Données manuscrites réelles issues de la prise de notes
- Les données ont été acquises à partir de la prise de notes réelle de la cible.
- Acquisition de 30 données manuscrites réelles par cible
3. 1er résultat
Données du train : Données de test = 9 : 1
Données utilisées = Une lettre (81) + Deux lettres (500) + Trois lettres (500) + Écriture manuscrite réelle (30)
n.Epoch = 20, taille du lot = 50, taux d'apprentissage = 0,01
Configuration de la couche
- Résultat
- Perte=0,7819, Précision=0,72
- Résultat pour les données de test = 0,6503
4. 2ème résultat
Données du train : Données de test = 9 : 1
Données utilisées = Une lettre (81) + Deux lettres (1 000) + Trois lettres (1 300) + Écriture manuscrite réelle (30)
n.Epoch = 20, taille du lot = 150, taux d'apprentissage = 0,04
Configuration de la couche
- Résultat
- Perte=0,0397, Précision=0,9908
- Résultat pour les données de test = 0,9360
5. Analyse des résultats
Par rapport au premier résultat, les seconds résultats ont tous été significativement améliorés. Je pense que la raison pour laquelle les résultats se sont améliorés est la suivante.
(5-1) Augmenter les données utilisées pour l'apprentissage
- Lors de la première tentative, 1 111 données ont été utilisées par cible, et lors de la deuxième tentative, 2 411 données ont été utilisées, soit plus du double.
- Étant donné que l'apprentissage et l'évaluation étaient effectués à partir de davantage de données, des caractéristiques plus délicates de l'écriture manuscrite de la cible auraient pu être capturées.
(5-2) Modifications de la couche du réseau neuronal artificiel
- Lors de la deuxième tentative, la taille du masque de convolution et la taille du pooling ont été modifiées.
- La taille du masque de convolution a été réduite à une taille plus petite qu'auparavant pour capturer des caractéristiques d'écriture très fines.
- Réduction de la perte de caractéristiques d'écriture manuscrite dans le processus d'apprentissage en réduisant la taille de la mise en commun.
- De plus, pour contenir plus d'informations sur l'écriture manuscrite en tant que paramètres, le nombre de nœuds entièrement connectés a été augmenté de 128 à 256.
(5-3) Augmentation de la taille du lot et du taux d'apprentissage