Implementación de Tensorflow de detección de caracteres CTPN
Referencia: https://github.com/Li-Ming-Fan/OCR-DETECTION-CTPN
Pasos de entrenamiento
Siga los pasos a continuación para entrenar el modelo CTPN:
1. python data_base_normalize.py # Normaliza la imagen de fondo previamente entrenada
2. python data_generator.py 0 # Genera datos de verificación
3. python data_generator.py 1 # Genera datos de entrenamiento
4. python script_detect.py # para entrenamiento y verificación
Si el tamaño no es 800x600, la imagen normalizada previamente se escalará primero y luego se recortará un rectángulo de 800x600 de la imagen reescalada. Las imágenes de 800x600 se almacenarán en el directorio recién creado ./images_base.
Los pases 2 y 3 generarán datos de verificación y datos de entrenamiento. Estos se almacenarán en los directorios recién creados ./data_valid y ./data_train, respectivamente.
A las 4 en punto, se entrenará y validará el modelo. Los resultados de la verificación se almacenarán en ./data_valid/results. El archivo ckpt se almacenará en el directorio recién creado ./model_detect
Predecir una sola imagen
Cambie la parte de python script_detect.py:
# -*- coding: utf-8 -*-
"""
@author: limingfan
"""
import model_detect_meta as meta
import model_detect_data as model_data
from model_detect_wrap import ModelDetect
import os
#
os.environ['CUDA_VISIBLE_DEVICES'] = '0' #使用 GPU 0
#os.environ['CUDA_VISIBLE_DEVICES'] = '0,1' # 使用 GPU 0,1
#
#
model = ModelDetect()
#
#
# predict
model.prepare_for_prediction()
img_file="./my_test/korean1.jpg"
print(img_file)
#
conn_bbox, text_bbox, conf_bbox = model.predict(img_file, out_dir='./my_output')
#
'''
list_images_valid = model_data.get_files_with_ext(meta.dir_images_valid, 'png')
for img_file in list_images_valid:
#
# img_file = './data_test/images/bkgd_1_0_generated_0.png'
#
print(img_file)
#
conn_bbox, text_bbox, conf_bbox = model.predict(img_file, out_dir = './results_prediction')
#
'''
Imagen del efecto de detección
La computadora solo ha entrenado más de 4000 veces y el efecto no ha alcanzado el mejor nivel. Puedes entrenar decenas de miles de veces y el efecto será mucho mejor.