
Qiji-font (qijiti) es:
? Declaración: Mis fuentes se han distribuido en Internet recientemente, pero todas son mal entendidas como "Ling 'Dongqi Ji Style". Mi nombre es Lingdong , y la fuente es Qiji ; Si quieres ser el último, también debes usar el " estilo Lingdong Qiji " como lo más importante, por lo que espero que puedas saberlo. ? ️

| Glifos únicos | Personajes cubiertos* | Libros escaneados |
|---|---|---|
| 4569 | 5916 | La explicación de los poemas de Li Changji/Huainan Honglie |
* Las formas simplificadas vuelven a las formas tradicionales, las variantes tradicionales más comunes recurren a formas de variantes menos comunes.
Paso I: descargue PDF de alta resolución (de shuge.org) y divida las páginas en imágenes.
Paso II: coloque manualmente una cuadrícula en la parte superior de cada página para generar cuadros delimitadores para caracteres (potencialmente reemplazables por un algoritmo automático de detección de esquina).

Paso III: Genere una máscara de bajo poli para cada personaje en la cuadrícula y guarde las miniaturas (usando OpenCV). Primero, el canal rojo se resta de la escala de grises, para limpiar las anotaciones impresas en tinta roja. A continuación, la imagen es umbral y se alimenta en el algoritmo de rastreo de contornos. Luego se usa una métrica para descartar formas que es poco probable que sean parte del personaje en interés. (Este paso no produce el glifo final, solo una extracción rápida y sucia para el procesamiento intermedio).

Paso IV: Alimente cada miniatura una por una en OCR chino de red neuronal para reconocer a los caracteres (actualmente utilizando chinocr/darknet-oCC, baja tasa de detección, precisión mediocre, muy lenta en la CPU, buscando mejores alternativas).
Paso V: juzga manualmente la producción de OCR: elija la instancia mejor atractiva de un personaje determinado y indique caracteres incorrectamente reconocidos.

Paso VI: para el conjunto de caracteres final, genere automáticamente la representación de trama fina de cada personaje. Cada personaje se coloca en su centro "visual" contando acumulativamente píxeles de izquierda y derecha, así como superior e inferior, de modo que el "peso" del personaje está en las líneas centrales, en lugar de centrar la caja delimitadora. Se utilizan dos métodos de umbral, el umbral global está dilatado y actúa como una máscara para el umbral adaptativo, preservando así los detalles al bloquear los boogers circundantes.

Paso VII: el software de rastreo de ráster a vector Potrace se utiliza para convertir las representaciones de trama en SVG. La biblioteca Python de FontForge se utiliza para generar el archivo de fuente final. ¡Hecho!
A medida que crece el número de caracteres, el procedimiento anterior será cada vez menos eficiente, ya que los personajes nuevos y previamente invisibles obtenidos de cada libro procesado serán más raros y raros. Se está construyendo un método alternativo que implica hacer clic en caracteres invisibles para elegirlos.
Requisitos:
pip3 install opencv-python )brew install fontforge ) El código principal está contenido en /workflow y corresponde a los pasos descritos anteriormente. La documentación del código aún no se ha realizado (pronto), así que no dude en preguntar si está interesado. Como habrás notado, hay un montón de trabajo involucrado en hacer una fuente china, por lo que la contribución es muy bienvenida :)
Hoja de todos los glifos únicos ordenados por el punto de entrada de Unicode, haga clic para ampliar. (Este es JPEG Losty, para PNG completo, consulte aquí, para SVG, ejecute node workflow/make_sheet.js )
