Self Paced Long Term Tracking

learning_splash_figure

April, 2013Posted by James

 
Our paper, "Self Paced Learning for Long-Term Tracking" was accepted for publication at CVPR 2013. The paper presents a novel technique for adapting an appearance model for long term tracking.
  1. Project Source Code (Release Version, WIP)
    1. See it's README.txt for instructions.
    2. Feel free to email me if you have problems.
  2. Self-paced learning for long-term tracking (Paper in PDF form)
  3. Videos and Ground Truth (Data Set)
  4. Output Tracks (CSV: x1, y1, x2, y2, cost). If x1 == NaN then the tracker said the target was occluded or out of frame.
    1. Offline Output Tracks (CSV format)
    2. Online Output Tracks (CSV format)

Displaying Real Valued Data in OpenCV

Dec 19th, 2012Posted by James

 
The imageeq function, which follows, equalizes a floating point image before displaying it. It is much better than MATLAB's imagesc for visualizing depth data.
void imageeq(const char* winName, cv::Mat_< float > im)
{
    // compute the order statistics
    vector< float > values;
    for(int rIter = 0; rIter < im.rows; rIter++)
        for(int cIter = 0; cIter < im.cols; cIter++)
                values.push_back(im.at< float >(rIter,cIter));
    std::sort(values.begin(),values.end());
    auto newEnd = std::unique(values.begin(),values.end());
    values.erase(newEnd,values.end());
    
    // compute an equalized image
    Mat showMe(im.rows,im.cols,DataType< uchar >::type);
    float oldQuant = 0;
    for(int qIter = 1; qIter <= 256; qIter++)
    {
        float quantile = static_cast< float >(qIter)/256;
      
        float thresh_low = values[oldQuant*(values.size() - 1)];
        float thresh_high = values[quantile*(values.size() - 1)];
        //printf("q = %f low = %f high = %f\n",quantile,thresh_low,thresh_high);
        for(int rIter = 0; rIter < im.rows; rIter++)
            for(int cIter = 0; cIter < im.cols; cIter++)
            {
                float curValue = im.at< float >(rIter,cIter);
                if(curValue <= thresh_high && curValue >= thresh_low)
                    showMe.at< uchar >(rIter,cIter) = qIter-1;
            }
        
        oldQuant = quantile;
    }
    
    imshow(winName,showMe);
}

Welcome to my academic homepage

headshot

Dec 18th, 2012Posted by James

 
The above figure contains the inverse HOG visualization of the HOG features in a picture of me. I am a first year PhD student at UC Irvine. I work in computer vision. I'm interested in how we might exploit temporal data (tracking) and depth data (e.g. Kinect) in semi-supervised learning to create effective detectors.