
Qiji-Font (Qijiti) est:
? Déclaration: Mes polices ont été diffusées sur Internet récemment, mais ils sont tous mal compris comme "Ling 'Dongqi Ji Style". Mon nom est Lingdong , et la police est Qiji ; Si vous voulez être le dernier, vous devez également utiliser le " style Lingdong Qiji " comme la chose la plus importante, donc j'espère que vous pourrez le savoir. ? ️

| Glyphes uniques | Caractères couverts * | Livres scannés |
|---|---|---|
| 4569 | 5916 | Les poèmes de Li Changji / explication de Huainan Honglie |
* Les formes simplifiées retombent aux formes traditionnelles, les variantes traditionnelles plus courantes se replient à des formes variantes moins courantes.
Étape I: Téléchargez les PDF haute résolution (de shuge.org) et diviser les pages en images.
Étape II: Posez manuellement une grille sur chaque page pour générer des boîtes de délimitation pour les caractères (potentiellement remplables par un algorithme automatique de détection d'angle).

Étape III: Générez un masque à faible poly pour chaque caractère sur la grille et enregistrez les miniatures (en utilisant OpenCV). Tout d'abord, le canal rouge est soustrait de l'échelle de gris, afin de nettoyer les annotations imprimées à l'encre rouge. Ensuite, l'image est seuillée et introduite dans l'algorithme de traçage des contour. Une métrique est ensuite utilisée pour éliminer les formes qui sont peu susceptibles de faire partie du caractère d'intérêt. (Cette étape ne produit pas le glyphe final, seulement une extraction rapide et difficile pour le traitement intermédiaire.)

Étape IV: Nourris chaque vignette un par un dans l'OCR chinois du NEAT pour reconnaître les personnages (actuellement en utilisant ChineseCr / DarkNet-OCR, un faible taux de détection, une précision médiocre, très lente sur le processeur, à la recherche de meilleures alternatives).
Étape V: Juger manuellement la sortie de l'OCR: Choisissez l'exemple le plus beau d'un caractère donné et signalez des caractères incorrectement reconnus.

Étape VI: Pour le jeu de caractères final, générez automatiquement un rendu raster fin de chaque caractère. Chaque personnage est placé à son centre "visuel" en comptant cumulativement les pixels de gauche et de droite, ainsi qu'en haut et en bas, de sorte que le "poids" du personnage est sur les lignes centrales, au lieu de centrer la boîte de délimitation. Deux méthodes de seuil sont utilisées, le seuil global est dilaté et agit comme un masque du seuil adaptatif, préservant ainsi les détails tout en bloquant les boogers entourant.

Étape VII: Le logiciel de traçage raster-vers-vecteur Potrace est utilisé pour convertir les rendus raster en SVG. La bibliothèque Python de FontForge est utilisée pour générer le fichier de police final. Fait!
Au fur et à mesure que le nombre de caractères augmente, la procédure ci-dessus sera de moins en moins efficace, car de nouveaux caractères auparavant invisibles obtenus à partir de chaque livre traité seront plus rares et plus rares. Une autre méthode qui implique de cliquer uniquement sur des caractères invisibles pour les choisir est en construction.
Exigences:
pip3 install opencv-python )brew install fontforge ) Le code principal est contenu dans /workflow et correspond aux étapes décrites ci-dessus. La documentation du code n'a pas encore été effectuée (bientôt), alors n'hésitez pas à vous renseigner si vous êtes intéressé. Comme vous l'avez peut-être remarqué, il y a une tonne de travail impliqué dans la fabrication d'une police chinoise, donc la contribution est très bienvenue :)
Feuille de tous les glyphes uniques triés par point d'entrée Unicode, cliquez pour agrandir. (Ceci est perdu JPEG, pour PNG complet, vérifiez ici, pour SVG, exécutez node workflow/make_sheet.js )
