Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
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
if
(feat_extract ==
NULL
) {
60
fprintf(stderr,
"Cube ERROR (CharClassifierFactory::Create): unable "
61
"to instantiate feature extraction object.\n"
);
62
return
NULL
;
63
}
64
65
// create the classifier object
66
CharClassifier
*classifier_obj;
67
switch
(params->
TypeClassifier
()) {
68
case
TuningParams::NN
:
69
classifier_obj =
new
ConvNetCharClassifier
(char_set, params,
70
feat_extract);
71
break
;
72
case
TuningParams::HYBRID_NN
:
73
classifier_obj =
new
HybridNeuralNetCharClassifier
(char_set, params,
74
feat_extract);
75
break
;
76
default
:
77
fprintf(stderr,
"Cube ERROR (CharClassifierFactory::Create): invalid "
78
"classifier type.\n"
);
79
return
NULL
;
80
}
81
82
if
(classifier_obj ==
NULL
) {
83
fprintf(stderr,
"Cube ERROR (CharClassifierFactory::Create): error "
84
"allocating memory for character classifier object.\n"
);
85
return
NULL
;
86
}
87
88
// Init the classifier
89
if
(!classifier_obj->
Init
(data_file_path, lang, lang_mod)) {
90
delete
classifier_obj;
91
fprintf(stderr,
"Cube ERROR (CharClassifierFactory::Create): unable "
92
"to Init() character classifier object.\n"
);
93
return
NULL
;
94
}
95
return
classifier_obj;
96
}
97
}
tesseract::HybridNeuralNetCharClassifier
Definition:
hybrid_neural_net_classifier.h:41
feature_base.h
tesseract::FeatureHybrid
Definition:
feature_hybrid.h:33
tesseract::ConvNetCharClassifier
Definition:
conv_net_classifier.h:48
tesseract::FeatureBmp
Definition:
feature_bmp.h:33
tesseract::TuningParams::NN
Definition:
tuning_params.h:36
feature_hybrid.h
tesseract::TuningParams::HYBRID_NN
Definition:
tuning_params.h:37
tesseract::TuningParams::BMP
Definition:
tuning_params.h:40
tesseract::CharClassifier
Definition:
classifier_base.h:35
tesseract::FeatureBase
Definition:
feature_base.h:34
tesseract::LangModel
Definition:
lang_model.h:34
conv_net_classifier.h
tesseract::CharSet
Definition:
char_set.h:42
feature_bmp.h
tesseract::TuningParams::TypeFeature
int TypeFeature() const
Definition:
tuning_params.h:55
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
tesseract::TuningParams::CHEBYSHEV
Definition:
tuning_params.h:41
tesseract::TuningParams::HYBRID
Definition:
tuning_params.h:42
hybrid_neural_net_classifier.h
tesseract::TuningParams
Definition:
tuning_params.h:33
tesseract
Definition:
baseapi.cpp:83
classifier_factory.h
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
tesseract::CharClassifier::Init
virtual bool Init(const string &data_file_path, const string &lang, LangModel *lang_mod)=0
NULL
#define NULL
Definition:
host.h:144
tesseract::FeatureChebyshev
Definition:
feature_chebyshev.h:33
feature_chebyshev.h
cube
classifier_factory.cpp
Generated on Mon Jul 20 2015 18:37:53 by
1.8.8