From: Pierre M. <sid...@us...> - 2005-06-02 16:42:53
|
Update of /cvsroot/robotflow/RobotFlow/Vision/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7576 Modified Files: VisualTarget.h Log Message: Fixed multi-cue similarity method. Index: VisualTarget.h =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/Vision/include/VisualTarget.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** VisualTarget.h 26 May 2005 19:37:29 -0000 1.4 --- VisualTarget.h 2 Jun 2005 16:42:43 -0000 1.5 *************** *** 200,204 **** } ! double sim = 1.0; for (int i=0; i<m_numDesc; i++) { --- 200,204 ---- } ! double sim = 0.0; for (int i=0; i<m_numDesc; i++) { *************** *** 207,211 **** } ! sim *= m_cueWeights[i]*(*m_targetDesc)[i]->Similarity((*i_desc)[i]->GetCstFeatures(), (*i_desc)[i]->GetSize()); } --- 207,211 ---- } ! sim += m_cueWeights[i]*(*m_targetDesc)[i]->Similarity((*i_desc)[i]->GetCstFeatures(), (*i_desc)[i]->GetSize()); } *************** *** 220,224 **** int i; ! double sim = 1.0, cueSim, sumCueSim = 0.0; for (i=0; i<m_numDesc; i++) { --- 220,224 ---- int i; ! double sim = 0.0, cueSim, sumCueSim = 0.0; for (i=0; i<m_numDesc; i++) { *************** *** 229,233 **** m_tmpCueProb[i] = (*m_targetDesc)[i]->Similarity((*i_desc)[i]->GetCstFeatures(), (*i_desc)[i]->GetSize()); sumCueSim += m_tmpCueProb[i]; ! sim *= m_cueWeights[i]*m_tmpCueProb[i]; } --- 229,239 ---- m_tmpCueProb[i] = (*m_targetDesc)[i]->Similarity((*i_desc)[i]->GetCstFeatures(), (*i_desc)[i]->GetSize()); sumCueSim += m_tmpCueProb[i]; ! sim += m_cueWeights[i]*m_tmpCueProb[i]; ! std::cout << "Cue Weights [" << i << "]=" << m_cueWeights[i] << " Current Cue Prob=" << m_tmpCueProb[i] << std::endl; ! } ! ! if (sumCueSim == 0.0) { ! std::cerr << "WARNING: VisualTarget::SimilarityWCueAdapt: cannot adapt cue weights with a total probability of 0.0." << std::endl; ! return sim; } *************** *** 237,246 **** sumCueSim = 0.0; - if (sumCueSimInv == 0.0) { - sumCueSimInv = 0.0; - } - for (i=0; i<m_numDesc; i++) { ! m_cueWeights[i] = i_rate*m_tmpCueProb[i]*sumCueSim + rateInv*m_cueWeights[i]; sumCueSim += m_cueWeights[i]; } --- 243,248 ---- sumCueSim = 0.0; for (i=0; i<m_numDesc; i++) { ! m_cueWeights[i] = i_rate*m_tmpCueProb[i]*sumCueSimInv + rateInv*m_cueWeights[i]; sumCueSim += m_cueWeights[i]; } *************** *** 305,314 **** VisualROI *GetROI() { ! return &(*m_refROI); } const VisualROI *GetCstROI() const { ! return (const VisualROI *)(&(*m_refROI)); } --- 307,316 ---- VisualROI *GetROI() { ! return m_refROI.get(); } const VisualROI *GetCstROI() const { ! return (const VisualROI *)(m_refROI.get()); } |