Пример #1
0
HRESULT NextParametersGenerator::Init(const ParameterSet& paramSet, const ParameterSetRange& paramSetRange)
{
	if(paramSet.GetParamNum() != paramSetRange.GetParamNum())
		return E_FAIL;

	int nParamNum = paramSet.GetParamNum();

	m_currParamSet = paramSet;
	m_paramSetRange = paramSetRange;

	for(int x=0; x<nParamNum; x++)
	{
		m_currParamSet.SetParameterByIndex(x,m_paramSetRange.GetParameterLow(x));
	}

	m_nextParamSet = m_currParamSet;

	//--- calculate total iteration ---
	double low,high,step;
	int times = 1;
	int currTimes = 1;

	for(int x=0; x<m_paramSetRange.GetParamNum(); x++)
	{
		m_paramSetRange.GetParameterRange(x,&low,&high,&step);
		currTimes = (int)((high-low)/step) +1;
		times *= currTimes;
	}
	m_nTotalIteration = times;
	m_nCurrIteration = 0;
	
	return S_OK;
}
Пример #2
0
void TestDetection()
{
	DetectionModule *pDM = new DetectionModule();

	pDM->Init("E:\\ImDetection\\ImDetectionApp\\Test\\Rscreen_shortFinger.avi");

	pDM->DoDetection();

	SimpleFingerDetectionResultSet resultSet;

	pDM->GetDetectionResult(resultSet);

	for(int x=0; x<resultSet.m_nFrameNum; x++)
	{
		SimpleDetectionResult* &currDR = resultSet.m_arrSimpleDR[x];
		WCHAR str[MAX_PATH];
		swprintf(str, L"[shooting] %d , fingerNum = %d \n",x,currDR->GetFingerNum());
		//cout << str <<endl;
		OutputDebugStringW(str);
		//_DPRINTF((L"%d , fingerNum = %d \n",x,m_pDetectionModule->m_arrDetectionResults[x]->m_nFingerNum));
	}

	ParameterSet paramSet;
	pDM->GetParameters(paramSet);

	for(int x=0; x<paramSet.GetParamNum(); x++)
	{
		cout << "x = " <<x <<"name = " << paramSet.GetParameterName(x) << "value = " << paramSet.GetParameterByIndex(x) <<endl;
		//printf("%d, %s %d \n",x,paramSet.GetParameterName(x),paramSet.GetParameter(x));
	}

	paramSet.SetParameterByIndex(4,60/255.0);

	pDM->DoDetection();

	delete pDM;

}
Пример #3
0
void TestClasses()
{
	ParamSetAndMeasurement pam;
	pam = LoaderAndWriter::LoadParameterSetAndMeasurementFromFile("E:\\ImDetection\\ImDetectionApp\\OptimalParameterEstimation\\Result5\\TotalResult.txt");

	for(int x=36; x >=30; x--)
	{
		vector<int> vecIndex = pam.GetParamSetAndMeasurementSetPairIndexArrByScore(x);
		char filaname[MAX_PATH];
		sprintf(filaname,"E:\\ImDetection\\ImDetectionApp\\OptimalParameterEstimation\\Result5\\%d.txt",x);
		LoaderAndWriter::WriteSpecificParameterSetAndMeasurementToFile(pam,vecIndex,filaname);
	}
	CalculateScore cal;
	LoaderAndWriter myLoaderAndWriter;

	{



		SimpleFingerDetectionResultSet fileResultSet = myLoaderAndWriter.LoadDetectionResultSetFromFile("GT.txt");
		SimpleFingerDetectionResultSet resultSetDR = myLoaderAndWriter.LoadDetectionResultSetFromFile("DR.txt");

		cal.SetGroundTruth(fileResultSet);
		cal.SetDetectionResult(resultSetDR);
	}

	MeasurementSet ms;
	cal.DoCalculateScore(&ms);

	SimpleFingerDetectionResultSet resultSetDR;
	cal.GetDetectionResult(&resultSetDR);
	myLoaderAndWriter.WriteDetectionResultSetToFile(resultSetDR,"test_write.txt");


	ParamSetAndMeasurementSet pair;
	{
		ParameterSet paramSet;
		paramSet.AddParameter("ABC",10);
		paramSet.AddParameter("DEf",10);
		pair.AddParamSetAndMeasurementSetPair(paramSet,ms);
	}
	LoaderAndWriter::WriteParameterSetAndMeasurementSetToFile(pair,"paraAndmeasure.txt");

	ParameterSet paramSet2;
	//pair.GetParamSetAndScorePair(0,&paramSet2,&score2);

	paramSet2;

	NextParametersGenerator myGenerator;


	ParameterSet paramSet3;
	paramSet3.AddParameter("A",0.2);
	paramSet3.AddParameter("B",10);
	paramSet3.AddParameter("C",1);


	ParameterSetRange paramSetRange;
	paramSetRange.AddParameterRange(0,1,0.2);
	paramSetRange.AddParameterRange(5,15,5);
	paramSetRange.AddParameterRange(1,7,2);

	double low,high,step;
	paramSetRange.GetParameterRange(0,&low,&high,&step);

	ParameterSet iteParamSet;
	bool flagFinish = false;
	myGenerator.Init(paramSet3,paramSetRange);

	int counter = 0;
	while(!flagFinish)
	{
		myGenerator.GetNextParamSet(&iteParamSet);

		for(int x=0; x<iteParamSet.GetParamNum(); x++)
		{
			cout << iteParamSet.GetParameterName(x) << "," << iteParamSet.GetParameterByIndex(x) <<endl;
		}

		cout << "=================== "<< counter <<endl;

		myGenerator.GenerateNextParamSet(&flagFinish);

		counter++;
	}


	system("pause");
}