📄 nnshaperecognizer.cpp
字号:
"Error: " << ECONFIG_FILE_RANGE <<
LVQITERATIONSCALE << " should be a positive integer " <<
" NNShapeRecognizer::readClassifierConfig()"<<endl;
delete shapeRecognizerProperties;
LTKReturnError(ECONFIG_FILE_RANGE);
}
}
else
{
m_LVQIterationScale = NN_DEF_LVQITERATIONSCALE;
LOG(LTKLogger::LTK_LOGLEVEL_DEBUG) <<
"Using default value for LVQIterationScale: " << m_LVQIterationScale <<
" NNShapeRecognizer::readInternalClassifierConfig()"<<endl;
}
//LVQ Initial Alpha
tempStringVar="";
errorCode = shapeRecognizerProperties->getConfigValue(LVQINITIALALPHA,
tempStringVar);
if(errorCode == SUCCESS)
{
m_LVQInitialAlpha = atof((tempStringVar).c_str());
if((m_LVQInitialAlpha>1)||(m_LVQInitialAlpha<0))
{
LOG(LTKLogger::LTK_LOGLEVEL_ERR)<<
"Error: " << ECONFIG_FILE_RANGE <<
LVQINITIALALPHA << " is out of permitted range " <<
" NNShapeRecognizer::readClassifierConfig()"<<endl;
delete shapeRecognizerProperties;
LTKReturnError(ECONFIG_FILE_RANGE);
}
}
else
{
m_LVQInitialAlpha = NN_DEF_LVQINITIALALPHA ;
LOG(LTKLogger::LTK_LOGLEVEL_DEBUG) <<
"Using default value for LVQInitialAlpha: " << m_LVQInitialAlpha <<
" NNShapeRecognizer::readInternalClassifierConfig()"<<endl;
}
//LVQ Distance Measure
tempStringVar = "";
errorCode = shapeRecognizerProperties->getConfigValue(LVQDISTANCEMEASURE,
tempStringVar);
if(errorCode == SUCCESS )
{
if((LTKSTRCMP(tempStringVar.c_str(), EUCLIDEAN_DISTANCE) == 0) ||
(LTKSTRCMP(tempStringVar.c_str(), DTW_DISTANCE) == 0))
{
m_LVQDistanceMeasure = tempStringVar;
LOG(LTKLogger::LTK_LOGLEVEL_DEBUG)<<
"LVQ Prototype Distance Method = " <<tempStringVar<<endl;
}
else
{
LOG(LTKLogger::LTK_LOGLEVEL_ERR)<<
"Error: " << ECONFIG_FILE_RANGE << " " <<
LVQDISTANCEMEASURE << " : " << tempStringVar <<
" is not supported" <<
"NNShapeRecognizer::readClassifierConfig()"<<endl;
delete shapeRecognizerProperties;
LTKReturnError(ECONFIG_FILE_RANGE);
}
}
else
{
LOG(LTKLogger::LTK_LOGLEVEL_DEBUG)<<
"Using default value for " LVQDISTANCEMEASURE " : " <<
m_prototypeDistance << endl;
}
tempStringVar = "";
errorCode = shapeRecognizerProperties->getConfigValue(MDT_UPDATE_FREQUENCY,
tempStringVar);
if(errorCode == SUCCESS)
{
if ( LTKStringUtil::isInteger(tempStringVar) )
{
m_MDTUpdateFreq = atoi(tempStringVar.c_str());
if(m_MDTUpdateFreq<=0)
{
LOG(LTKLogger::LTK_LOGLEVEL_ERR)<<
"Error: " << ECONFIG_FILE_RANGE << MDT_UPDATE_FREQUENCY <<
" should be zero or a positive integer" <<
" NNShapeRecognizer::readClassifierConfig()"<<endl;
delete shapeRecognizerProperties;
LTKReturnError(ECONFIG_FILE_RANGE);
}
}
else
{
LOG(LTKLogger::LTK_LOGLEVEL_ERR)<<
"Error: " << ECONFIG_FILE_RANGE << MDT_UPDATE_FREQUENCY <<
" should be zero or a positive integer" <<
" NNShapeRecognizer::readClassifierConfig()"<<endl;
delete shapeRecognizerProperties;
LTKReturnError(ECONFIG_FILE_RANGE);
}
}
else
{
LOG(LTKLogger::LTK_LOGLEVEL_DEBUG)<<
"Using default value for " << MDT_UPDATE_FREQUENCY <<
" : " << m_MDTUpdateFreq << endl;
}
tempStringVar = "";
errorCode = shapeRecognizerProperties->getConfigValue(MDT_FILE_OPEN_MODE,
tempStringVar);
if(errorCode == SUCCESS)
{
if ( tempStringVar == NN_MDT_OPEN_MODE_ASCII ||
tempStringVar == NN_MDT_OPEN_MODE_BINARY )
{
m_MDTFileOpenMode = tempStringVar;
}
else
{
LOG(LTKLogger::LTK_LOGLEVEL_ERR)<<
"Error: " << ECONFIG_FILE_RANGE << MDT_FILE_OPEN_MODE <<
" should be ascii or binary" <<
" NNShapeRecognizer::readClassifierConfig()"<<endl;
delete shapeRecognizerProperties;
LTKReturnError(ECONFIG_FILE_RANGE);
}
}
else
{
LOG(LTKLogger::LTK_LOGLEVEL_DEBUG)<<
"Using default value for " << MDT_FILE_OPEN_MODE <<
" : " << m_MDTFileOpenMode << endl;
}
tempStringVar = "";
errorCode = shapeRecognizerProperties->getConfigValue(SIZETHRESHOLD,
tempStringVar);
if(errorCode == SUCCESS)
{
m_headerInfo[DOT_SIZE_THRES] = tempStringVar;
}
tempStringVar = "";
errorCode = shapeRecognizerProperties->getConfigValue(ASPECTRATIOTHRESHOLD,
tempStringVar);
if(errorCode == SUCCESS)
{
m_headerInfo[ASP_RATIO_THRES] = tempStringVar;
}
tempStringVar = "";
errorCode = shapeRecognizerProperties->getConfigValue(DOTTHRESHOLD,
tempStringVar);
if(errorCode == SUCCESS)
{
m_headerInfo[DOT_THRES] = tempStringVar;
}
tempStringVar = "";
errorCode = shapeRecognizerProperties->getConfigValue(PRESERVERELATIVEYPOSITION,
tempStringVar);
if(errorCode == SUCCESS)
{
m_headerInfo[PRESER_REL_Y_POS] = tempStringVar;
}
tempStringVar = "";
errorCode = shapeRecognizerProperties->getConfigValue(PRESERVEASPECTRATIO,
tempStringVar);
if(errorCode == SUCCESS)
{
m_headerInfo[PRESER_ASP_RATIO] = tempStringVar;
}
tempStringVar = "";
errorCode = shapeRecognizerProperties->getConfigValue(SIZETHRESHOLD,
tempStringVar);
if(errorCode == SUCCESS)
{
m_headerInfo[NORM_LN_WID_THRES] = tempStringVar;
}
tempStringVar = "";
errorCode = shapeRecognizerProperties->getConfigValue(RESAMPLINGMETHOD,
tempStringVar);
if(errorCode == SUCCESS)
{
m_headerInfo[RESAMP_POINT_ALLOC] = tempStringVar;
}
tempStringVar = "";
errorCode = shapeRecognizerProperties->getConfigValue(SMOOTHFILTERLENGTH,
tempStringVar);
if(errorCode == SUCCESS)
{
m_headerInfo[SMOOTH_WIND_SIZE] = tempStringVar;
}
tempStringVar = "";
LTKStringUtil::convertIntegerToString(m_ptrPreproc->getTraceDimension(),
tempStringVar);
m_headerInfo[TRACE_DIM] = tempStringVar;
delete shapeRecognizerProperties;
LOG(LTKLogger::LTK_LOGLEVEL_DEBUG) << "Exiting " <<
"NNShapeRecognizer::readClassifierConfig()" << endl;
return SUCCESS;
}
/**********************************************************************************
* AUTHOR : Saravanan R
* DATE : 23-Jan-2007
* NAME : mapPreprocFunctions
* DESCRIPTION : Maps the module name and its function names in the preprocessing
sequence.
* ARGUMENTS : none
* RETURNS : SUCCESS on successful,
* errorNumbers on Failure.
* NOTES :
* CHANGE HISTROY
* Author Date Description
*************************************************************************************/
int NNShapeRecognizer::mapPreprocFunctions()
{
LOG(LTKLogger::LTK_LOGLEVEL_DEBUG) << "Entering " <<
"NNShapeRecognizer::mapPreprocFunctions()" << endl;
stringStringMap preProcSequence;
stringStringPair tmpPair;
stringVector moduleFuncNames;
stringVector modFuncs;
stringVector funcNameTokens;
string module = "", funName = "", sequence = "";
string::size_type indx;
LTKTraceGroup local_inTraceGroup;
LTKStringUtil::tokenizeString(m_preProcSeqn, DELEMITER_SEQUENCE, funcNameTokens);
int numFunctions = funcNameTokens.size();
if(numFunctions == 0)
{
LOG( LTKLogger::LTK_LOGLEVEL_ERR)<<"Error: "<<
"Wrong preprocessor sequence in cfg file : " + m_preProcSeqn <<
" NNShapeRecognizer::mapPreprocFunctions()"<<endl;
LTKReturnError(EINVALID_PREPROC_SEQUENCE);
}
for (indx = 0; indx < numFunctions ; indx++)
{
moduleFuncNames.push_back(funcNameTokens[indx]);
}
int numModuleFunctions = moduleFuncNames.size();
for(indx=0; indx < numModuleFunctions ; indx++)
{
sequence = moduleFuncNames[indx];
LTKStringUtil::tokenizeString(sequence, DELEMITER_FUNC, modFuncs);
if(modFuncs.size() >= 2)
{
module = modFuncs.at(0);
funName = modFuncs.at(1);
if(!module.compare("CommonPreProc"))
{
FN_PTR_PREPROCESSOR pPreprocFunc = NULL;
pPreprocFunc = m_ptrPreproc->getPreprocptr(funName);
if(pPreprocFunc!= NULL)
{
tmpPair.first = module;
tmpPair.second = funName;
m_preprocSequence.push_back(tmpPair);
}
else
{
LOG(LTKLogger::LTK_LOGLEVEL_ERR)<<"Error: "<< EINVALID_PREPROC_SEQUENCE << " " <<
"Wrong preprocessor sequence entry in cfg file : " <<funName<<
" NNShapeRecognizer::mapPreprocFunctions()"<<endl;
LTKReturnError(EINVALID_PREPROC_SEQUENCE);
}
}
else
{
LOG(LTKLogger::LTK_LOGLEVEL_ERR)<<"Error: "<< EINVALID_PREPROC_SEQUENCE << " " <<
"Wrong preprocessor sequence entry in cfg file : " << module<<
" NNShapeRecognizer::mapPreprocFunctions()"<<endl;
LTKReturnError(EINVALID_PREPROC_SEQUENCE);
}
}
else
{
LOG(LTKLogger::LTK_LOGLEVEL_ERR)<<"Error: "<< EINVALID_PREPROC_SEQUENCE << " " <<
"Wrong preprocessor sequence entry in cfg file : "<<module<<
" NNShapeRecognizer::mapPreprocFunctions()"<<endl;
LTKReturnError(EINVALID_PREPROC_SEQUENCE);
}
}
LOG(LTKLogger::LTK_LOGLEVEL_DEBUG) << "Exiting " <<
"NNShapeRecognizer::mapPreprocFunctions()" << endl;
return SUCCESS;
}
/**********************************************************************************
* AUTHOR : Saravanan R.
* DATE : 23-Jan-2004
* NAME : ~NNShapeRecognizer
* DESCRIPTION : destructor
* ARGUMENTS :
* RETURNS :
* NOTES :
* CHANGE HISTROY
* Author Date Description
*************************************************************************************/
NNShapeRecognizer::~NNShapeRecognizer()
{
LOG(LTKLogger::LTK_LOGLEVEL_DEBUG) << "Entering " <<
"NNShapeRecognizer::~NNShapeRecognizer()" << endl;
#ifdef _INTERNAL
deleteAdaptInstance();
#endif
int returnStatus = SUCCESS;
//To update MDT File
if(m_prototypeSetModifyCount >0)
{
m_prototypeSetModifyCount = m_MDTUpdateFreq-1;
returnStatus = writePrototypeSetToMDTFile();
if(returnStatus != SUCCESS)
{
LOG(LTKLogger::LTK_LOGLEVEL_ERR) << "Error: " << returnStatus << " " <<
" NNShapeRecognizer::~NNShapeRecognizer()" << endl;
throw LTKException(returnStatus);
}
}
m_neighborInfoVec.clear();
returnStatus = deletePreprocessor();
if(returnStatus != SUCCESS)
{
LOG(LTKLogger::LTK_LOGLEVEL_ERR) << "Error: " << returnStatus << " " <<
" NNShapeRecognizer::~NNShapeRecognizer()" << endl;
throw LTKException(returnStatus);
}
m_prototypeSet.clear();
m_cachedShapeSampleFeatures.clearShapeSampleFeatures();
//Unloading the feature Extractor instance
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -