Home || Visual Search || Applications || Architecture || Important Messages || OGL || Src

Quid Impala::Core::Trec::ThreadVisualSimilarity::GetNearestFrameQuid ( VectorReal64  exampleFeatureVector  )  [inline]

Definition at line 165 of file ThreadVisualSimilarity.h.

References Impala::Core::Table::SimilarityTableSet::ComputeRanksTopN(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::Get1(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::GetColumn1(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::GetColumn2(), Impala::Core::VideoSet::Keyframes::GetFrameId(), Impala::Core::VideoSet::Keyframes::GetNrKeyframes(), Impala::Core::VideoSet::Keyframes::GetQuidFrame(), Impala::Core::Table::SimilarityTableSet::GetRankTable(), Impala::Core::VideoSet::Keyframes::GetShotId(), Impala::Core::Table::SimilarityTableSet::GetSimTable(), ILOG_ERROR, ILOG_INFO, Impala::Core::VideoSet::Keyframes::IsRKF(), mFeatureTable, Impala::Min(), mKeyframes, mOrigin, mSimSet, Impala::Core::Table::Table::SetSize(), Shot2Key(), Impala::Core::Vector::Similarity(), and Impala::Core::Table::Table::Size().

00166     {
00167         Table::SimilarityTableSet::SimTableType* sTable =
00168             mSimSet->GetSimTable(0);
00169         Real64* sim = sTable->GetColumn1()->GetData();
00170         Vector::Similarity(sim, exampleFeatureVector,
00171                            mFeatureTable->GetColumn2(), 0, 1,
00172                            Vector::Norm1Dist<Real64>);
00173         sTable->SetSize(mFeatureTable->Size());
00174         int nr = Min(mFeatureTable->Size(), 8);
00175 
00176         mSimSet->ComputeRanksTopN(nr, false);
00177 
00178         // return best result:
00179         Table::SimilarityTableSet::RankTableType* ranktable = mSimSet->GetRankTable(0);
00180         Table::SimilarityTableSet::SimTableType* scoretable = mSimSet->GetSimTable(0);
00181 
00182         Quid rquid = ranktable->Get1(0);
00183        
00184 
00185         // verification
00186         int ver_keyframe = mKeyframes->GetFrameId(rquid);
00187        ILOG_INFO("GetNearestFrameQuid:" << QuidObj(rquid) << " keyframe: " << ver_keyframe );
00188        if (mKeyframes->IsRKF(ver_keyframe)) 
00189          {
00190             ILOG_INFO("is rkf");
00191          }
00192        
00193         if (ver_keyframe > mKeyframes->GetNrKeyframes()) 
00194         {
00195             ILOG_ERROR("Keyframe does not exist!");
00196         }
00197        
00198        // only take RKF's:
00199        int shot = mKeyframes->GetShotId(ver_keyframe);
00200        int rkf_keyframe = Shot2Key(shot);
00201        Quid rrquid = mKeyframes->GetQuidFrame(rkf_keyframe);
00202        if (rrquid != rquid) 
00203           ILOG_INFO("Quid " << QuidObj(rrquid) << " differs fromr result!");
00204         mOrigin = -1;
00205        return rrquid;
00206     }

Here is the call graph for this function:


Generated on Thu Jan 13 09:21:33 2011 for ImpalaSrc by  doxygen 1.5.1