Learning a Tracking Policy
- J. Supancic, D. Ramanan. " Tracking as Online Decision-Making: Learning a Policy from Streaming Videos with Reinforcement Learning" International Conference on Computer Vision (ICCV) Venice, Italy, 2017.
Computer Vision Scientist
J. Supancic, G. Rogez, Y. Yang, D. Ramanan, J. Shotton. "Depth-based hand pose estimation: data, methods, and challenges" International Conference on Computer Vision (ICCV), Santiago, Chile, December 2015.
G. Rogez, J. Supancic, D. Ramanan. "Understanding Everyday Hands in Action from RGB-D Images" International Conference on Computer Vision (ICCV), Santiago, Chile, December 2015.
G. Rogez, J. Supancic, D. Ramanan. "First-Person Pose Recognition using Egocentric Workspaces" Computer Vision and Pattern Recognition (CVPR), Boston, MA, June 2015.
G. Rogez, M. Khademi, J. Supancic, J. Montiel, D. Ramanan. "3D Hand Pose Detection in Egocentric RGB-D Images" Workshop on Consumer Depth Cameras for Computer Vision, European Conference on Computer Vision (ECCV), Zurich, Switzerland, Sept. 2014. PDF
J. Supancic, D. Ramanan. "Self-Paced Learning for Long-Term Tracking" Computer Vision and Pattern Recognition (CVPR), Portland, OR, June 2013.
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); }