tesseract
3.05.02
classifier_factory.cpp
Go to the documentation of this file.
1
/**********************************************************************
2
* File: classifier_factory.cpp
3
* Description: Implementation of the Base Character Classifier
4
* Author: Ahmad Abdulkader
5
* Created: 2007
6
*
7
* (C) Copyright 2008, Google Inc.
8
** Licensed under the Apache License, Version 2.0 (the "License");
9
** you may not use this file except in compliance with the License.
10
** You may obtain a copy of the License at
11
** http://www.apache.org/licenses/LICENSE-2.0
12
** Unless required by applicable law or agreed to in writing, software
13
** distributed under the License is distributed on an "AS IS" BASIS,
14
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
** See the License for the specific language governing permissions and
16
** limitations under the License.
17
*
18
**********************************************************************/
19
20
#include <stdio.h>
21
#include <stdlib.h>
22
#include <string>
23
#include "
classifier_factory.h
"
24
#include "
conv_net_classifier.h
"
25
#include "
feature_base.h
"
26
#include "
feature_bmp.h
"
27
#include "
feature_chebyshev.h
"
28
#include "
feature_hybrid.h
"
29
#include "
hybrid_neural_net_classifier.h
"
30
31
namespace
tesseract
{
32
33
// Creates a CharClassifier object of the appropriate type depending on the
34
// classifier type in the settings file
35
CharClassifier
*
CharClassifierFactory::Create
(
const
string
&data_file_path,
36
const
string
&
lang
,
37
LangModel
*lang_mod,
38
CharSet
*char_set,
39
TuningParams
*params) {
40
// create the feature extraction object
41
FeatureBase
*feat_extract;
42
43
switch
(params->
TypeFeature
()) {
44
case
TuningParams::BMP
:
45
feat_extract =
new
FeatureBmp
(params);
46
break
;
47
case
TuningParams::CHEBYSHEV
:
48
feat_extract =
new
FeatureChebyshev
(params);
49
break
;
50
case
TuningParams::HYBRID
:
51
feat_extract =
new
FeatureHybrid
(params);
52
break
;
53
default
:
54
fprintf(stderr,
"Cube ERROR (CharClassifierFactory::Create): invalid "
55
"feature type.\n"
);
56
return
NULL;
57
}
58
59
// create the classifier object
60
CharClassifier
*classifier_obj;
61
switch
(params->
TypeClassifier
()) {
62
case
TuningParams::NN
:
63
classifier_obj =
new
ConvNetCharClassifier
(char_set, params,
64
feat_extract);
65
break
;
66
case
TuningParams::HYBRID_NN
:
67
classifier_obj =
new
HybridNeuralNetCharClassifier
(char_set, params,
68
feat_extract);
69
break
;
70
default
:
71
fprintf(stderr,
"Cube ERROR (CharClassifierFactory::Create): invalid "
72
"classifier type.\n"
);
73
return
NULL;
74
}
75
76
// Init the classifier
77
if
(!classifier_obj->
Init
(data_file_path,
lang
, lang_mod)) {
78
delete
classifier_obj;
79
fprintf(stderr,
"Cube ERROR (CharClassifierFactory::Create): unable "
80
"to Init() character classifier object.\n"
);
81
return
NULL;
82
}
83
return
classifier_obj;
84
}
85
}
tesseract::TuningParams::CHEBYSHEV
Definition:
tuning_params.h:41
tesseract::TuningParams
Definition:
tuning_params.h:33
tesseract::CharSet
Definition:
char_set.h:42
tesseract::TuningParams::TypeClassifier
int TypeClassifier() const
Definition:
tuning_params.h:54
tesseract-c_api-demo.lang
string lang
Definition:
tesseract-c_api-demo.py:28
conv_net_classifier.h
classifier_factory.h
hybrid_neural_net_classifier.h
tesseract::TuningParams::HYBRID
Definition:
tuning_params.h:42
tesseract::TuningParams::BMP
Definition:
tuning_params.h:40
tesseract::FeatureChebyshev
Definition:
feature_chebyshev.h:33
tesseract::CharClassifierFactory::Create
static CharClassifier * Create(const string &data_file_path, const string &lang, LangModel *lang_mod, CharSet *char_set, TuningParams *params)
Definition:
classifier_factory.cpp:35
feature_hybrid.h
feature_bmp.h
tesseract
Definition:
baseapi.cpp:81
tesseract::CharClassifier::Init
virtual bool Init(const string &data_file_path, const string &lang, LangModel *lang_mod)=0
tesseract::ConvNetCharClassifier
Definition:
conv_net_classifier.h:48
tesseract::TuningParams::HYBRID_NN
Definition:
tuning_params.h:37
tesseract::TuningParams::TypeFeature
int TypeFeature() const
Definition:
tuning_params.h:55
tesseract::HybridNeuralNetCharClassifier
Definition:
hybrid_neural_net_classifier.h:41
tesseract::FeatureBmp
Definition:
feature_bmp.h:33
feature_chebyshev.h
tesseract::LangModel
Definition:
lang_model.h:34
feature_base.h
tesseract::FeatureHybrid
Definition:
feature_hybrid.h:33
tesseract::FeatureBase
Definition:
feature_base.h:34
tesseract::CharClassifier
Definition:
classifier_base.h:35
tesseract::TuningParams::NN
Definition:
tuning_params.h:36
cube
classifier_factory.cpp
Generated on Mon Oct 29 2018 11:27:49 for tesseract by
1.8.14