File size: 2,075 Bytes
3f42a6f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import string, os
from edocr2.tools import train_tools

#region ############# Alphabet and fonts definition #################
GDT_symbols = '⏤⏥○⌭⌒⌓⏊∠⫽⌯⌖◎↗⌰'
FCF_symbols = 'ⒺⒻⓁⓂⓅⓈⓉⓊ'
Extra = '(),.+-±:/°"⌀='

alphabet_gdts = string.digits + ',.⌀ABCDZ' + GDT_symbols + FCF_symbols
alphabet_dimensions = string.digits + 'AaBCDRGHhMmnxZtd' + Extra

gdt_fonts=[]
for i in os.listdir('edocr2/tools/gdt_fonts'):
    gdt_fonts.append(os.path.join('edocr2/tools/gdt_fonts', i))


dimension_fonts = []
for i in os.listdir('edocr2/tools/dimension_fonts'):
    dimension_fonts.append(os.path.join('edocr2/tools/dimension_fonts', i))
#endregion

#region ############## Detector ##############################

########## Training Detector ###############################
detect_basepath = train_tools.train_synth_detector(alphabet_dimensions, dimension_fonts, samples = 200, epochs =1, batch_size=8, basepath = 'edocr2/models')


######### Testing Detector #################################
train_tools.save_detect_samples(alphabet_dimensions, dimension_fonts, 2)
from edocr2.keras_ocr.detection import Detector
#detect_basepath = 'edocr2/models/detector_8_58'
detector = Detector()
detector.model.load_weights(detect_basepath + '.keras')
train_tools.test_detect('detect_samples', detector, show_img=True)

#endregion

#region ############## Recognizer ############################

########## Training Recognizer #############################
recog_basepath = train_tools.train_synth_recognizer(alphabet_gdts, gdt_fonts, bias_char='.,', samples = 25000, epochs = 3, batch_size=256, basepath = 'edocr2/models', string_length=(2,6))

########## Testing Recognizer ##############################

from edocr2.keras_ocr.recognition import Recognizer
recognizer = Recognizer(alphabet=alphabet_gdts)
train_tools.save_recog_samples(alphabet_gdts, gdt_fonts, 30, recognizer)
#recog_basepath = 'edocr2/models/recognizer_17_44'
recognizer.model.load_weights(recog_basepath + '.keras')
train_tools.test_recog('recog_samples', recognizer)

#endregion