CSE 586 Final Programming Project Spring 2011 Due date: Tuesday, May 3

Similar documents
Computer vision: models, learning and inference. Chapter 10 Graphical Models

Chapter 8 of Bishop's Book: Graphical Models

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Algorithms for Inference Fall 2014

Introduction to Graphical Models

FMA901F: Machine Learning Lecture 3: Linear Models for Regression. Cristian Sminchisescu

Automated Video Analysis of Crowd Behavior

Short-Cut MCMC: An Alternative to Adaptation

Machine Learning A W 1sst KU. b) [1 P] Give an example for a probability distributions P (A, B, C) that disproves

18 October, 2013 MVA ENS Cachan. Lecture 6: Introduction to graphical models Iasonas Kokkinos

Algorithms for Markov Random Fields in Computer Vision

Analysis: TextonBoost and Semantic Texton Forests. Daniel Munoz Februrary 9, 2009

Machine Learning A WS15/16 1sst KU Version: January 11, b) [1 P] For the probability distribution P (A, B, C, D) with the factorization

ECE521: Week 11, Lecture March 2017: HMM learning/inference. With thanks to Russ Salakhutdinov

Tracking Computer Vision Spring 2018, Lecture 24

Mixture Models and EM

Machine Learning A W 1sst KU. b) [1 P] For the probability distribution P (A, B, C, D) with the factorization

To complete the computer assignments, you ll use the EViews software installed on the lab PCs in WMC 2502 and WMC 2506.

Evaluation of Moving Object Tracking Techniques for Video Surveillance Applications

10708 Graphical Models: Homework 4

Feature Tracking and Optical Flow

Stereo Matching.

Feature Tracking and Optical Flow

Robert Collins CSE598G. Robert Collins CSE598G

In the real world, light sources emit light particles, which travel in space, reflect at objects or scatter in volumetric media (potentially multiple

CS 664 Segmentation. Daniel Huttenlocher

CS 4495 Computer Vision. Linear Filtering 2: Templates, Edges. Aaron Bobick. School of Interactive Computing. Templates/Edges

Introduction to Mobile Robotics Bayes Filter Particle Filter and Monte Carlo Localization. Wolfram Burgard

Final Review CMSC 733 Fall 2014

Announcements. Edge Detection. An Isotropic Gaussian. Filters are templates. Assignment 2 on tracking due this Friday Midterm: Tuesday, May 3.

The Plan: Basic statistics: Random and pseudorandom numbers and their generation: Chapter 16.

Computer Experiments. Designs

Clustering K-means. Machine Learning CSEP546 Carlos Guestrin University of Washington February 18, Carlos Guestrin

Markov Random Fields and Segmentation with Graph Cuts

Autonomous Mobile Robot Design

Object recognition (part 1)

CS4442/9542b Artificial Intelligence II prof. Olga Veksler

3. Data Structures for Image Analysis L AK S H M O U. E D U

Overview. Monte Carlo Methods. Statistics & Bayesian Inference Lecture 3. Situation At End Of Last Week

Programming-By-Example Gesture Recognition Kevin Gabayan, Steven Lansel December 15, 2006

Motivation: Shortcomings of Hidden Markov Model. Ko, Youngjoong. Solution: Maximum Entropy Markov Model (MEMM)

Pairwise Threshold for Gaussian Mixture Classification and its Application on Human Tracking Enhancement

Clustering K-means. Machine Learning CSEP546 Carlos Guestrin University of Washington February 18, Carlos Guestrin

Humanoid Robotics. Monte Carlo Localization. Maren Bennewitz

Chapter Four: Loops II

Introduction to Mobile Robotics

Pedestrian Detection Using Correlated Lidar and Image Data EECS442 Final Project Fall 2016

Assignment 2. Unsupervised & Probabilistic Learning. Maneesh Sahani Due: Monday Nov 5, 2018

Robotics. Lecture 5: Monte Carlo Localisation. See course website for up to date information.

Probabilistic Robotics

CS 231A Computer Vision (Fall 2012) Problem Set 3

Case-Based Reasoning. CS 188: Artificial Intelligence Fall Nearest-Neighbor Classification. Parametric / Non-parametric.

CS 188: Artificial Intelligence Fall 2008

Fall 2012 Points: 35 pts. Consider the following snip it from Section 3.4 of our textbook. Data Description

Scientific Computing with Case Studies SIAM Press, Lecture Notes for Unit IV Monte Carlo

Learning and Inferring Depth from Monocular Images. Jiyan Pan April 1, 2009

COMP90051 Statistical Machine Learning

A Tutorial Introduction to Belief Propagation

Statistical and Learning Techniques in Computer Vision Lecture 1: Markov Random Fields Jens Rittscher and Chuck Stewart

Practical Course WS12/13 Introduction to Monte Carlo Localization

Schedule for Rest of Semester

Efficient Feature Learning Using Perturb-and-MAP

Hidden Markov Models. Slides adapted from Joyce Ho, David Sontag, Geoffrey Hinton, Eric Xing, and Nicholas Ruozzi

Feature Extractors. CS 188: Artificial Intelligence Fall Nearest-Neighbor Classification. The Perceptron Update Rule.

Why is computer vision difficult?

convolution shift invariant linear system Fourier Transform Aliasing and sampling scale representation edge detection corner detection

Statistical image models

Image Processing. Filtering. Slide 1

The Detection of Faces in Color Images: EE368 Project Report

COS Lecture 13 Autonomous Robot Navigation

Structured Models in. Dan Huttenlocher. June 2010

Topics in AI (CPSC 532L): Multimodal Learning with Vision, Language and Sound. Lecture 12: Deep Reinforcement Learning

Chapter 3 Analyzing Normal Quantitative Data

Estimating the Information Rate of Noisy Two-Dimensional Constrained Channels

Time series, HMMs, Kalman Filters

Fitting: The Hough transform

LAB 1 INSTRUCTIONS DESCRIBING AND DISPLAYING DATA

Object Recognition Using Pictorial Structures. Daniel Huttenlocher Computer Science Department. In This Talk. Object recognition in computer vision

Computer Vision I. Announcement. Corners. Edges. Numerical Derivatives f(x) Edge and Corner Detection. CSE252A Lecture 11

Problem Set 3 CMSC 426 Due: Thursday, April 3

(Sample) Final Exam with brief answers

An Introduction to Markov Chain Monte Carlo

CS 231A Computer Vision (Winter 2014) Problem Set 3

Random projection for non-gaussian mixture models

The Normal Distribution & z-scores

CS4495 Fall 2014 Computer Vision Problem Set 6: Particle Tracking

Computer Vision Course Lecture 04. Template Matching Image Pyramids. Ceyhun Burak Akgül, PhD cba-research.com. Spring 2015 Last updated 11/03/2015

Introduction to Machine Learning CMU-10701

Detailed instructions for video analysis using Logger Pro.

Chapter 1. Introduction

Machine Learning and Data Mining. Clustering (1): Basics. Kalev Kask

Create ruler guides. Create a ruler guide

Tangents. In this tutorial we are going to take a look at how tangents can affect an animation.

Recap from Previous Lecture

Conditional Random Fields and beyond D A N I E L K H A S H A B I C S U I U C,

A System for Real-time Detection and Tracking of Vehicles from a Single Car-mounted Camera

Tracking. Establish where an object is, other aspects of state, using time sequence Biggest problem -- Data Association

Computer Vision I. Announcements. Fourier Tansform. Efficient Implementation. Edge and Corner Detection. CSE252A Lecture 13.

Loopy Belief Propagation

Complex Sensors: Cameras, Visual Sensing. The Robotics Primer (Ch. 9) ECE 497: Introduction to Mobile Robotics -Visual Sensors

Approximate Solutions to Differential Equations Slope Fields (graphical) and Euler s Method (numeric) by Dave Slomer

Transcription:

CSE 586 Final Programming Project Spring 2011 Due date: Tuesday, May 3 What I have in mind for our last programming project is to do something with either graphical models or random sampling. A few ideas are below, but I also hope you will put some thought into coming up with a project idea of your own that is of interest to you or is relevant to your research. Theses topics (graphical models; sampling) are pretty wide open, so should be able to encompass anything you can think of recall that even averaging numbers together can be formulated as a graphical model; dynamic programming also could be considered to fall under the topic, for an appropriately defined model. Also, unlike previous projects, it is OK for this project to use publicly available software packages/toolboxes that perform the underlying mechanics of graphical model reasoning (some examples are below). However, if you use one, I would then expect you would be spending relatively more effort on defining the graphical model (what are nodes; what is the graph topology; what are the appropriate potential functions) or on evaluating against alternative approaches. Project idea 1: (MRFs) The paper A Comparative Study of Energy Minimization Methods for Markov Random Fields with Smoothness-Based Priors by Rick Szeliski et.al. contains a number of experiments across different vision applications, formalized as MRF problems on a pixel grid graph. They compare three solution methods: belief propagation, graph cuts, and tree-reweighted message passing. The paper, along with all the data and code they used, is at http://vision.middlebury.edu/mrf/. One project idea is to choose one of their applications, and try to replicate their results using their image data, and then extending to try on your own data or to solve a new image-based MRF problem that you formulate. Also, recall that you watched a video lecture by Dan Huttenlocher on efficient methods for belief propagation in low-level vision MRFs. He has a paper (coauthored with Pedro Felzenswalb on this work, as well a C++ implementation of the methods for several vision problems at http://people.cs.uchicago.edu/~pff/bp/. You could try to use that code instead, and replicate their results / extend to use on a problem of your own. Project idea 2: (HMMs) Kevin Murphy has a Matlab toolbox for learning and inference within Hidden Markov Models at http://www.cs.ubc.ca/~murphyk/software/hmm/hmm.html A second project idea is to download and learn how to use this toolbox, and demonstrate HMM learning and inference on a problem of your choosing. (Note, recent versions of matlab also have HMM functionality implemented in the stats toolbox http://www.mathworks.com/help/toolbox/stats/f8368.html ). As for applications ideas, here s one: Ara Nefian has a bunch of papers on using HMMs for face recognition, for example by slicing face images into horizontal regions and

matching the 1D sequence of regions to learned face models to achieve recognition. His papers on this are at http://www.anefian.com/research/face_reco.htm Project idea 3: (HMMs again) Another HMM-related idea is to try to implement the segmental K-means algorithm for HMM training, as laid out in our lecture notes http://www.cse.psu.edu/~rcollins/cse586/lectures/cse586hmm_6pp.pdf (note: original slides were from Steve Mills at U.Nottingham.) For example, you could try to learn HMMs to represent common paths through a scene given a set of observed trajectories. One such sample dataset is something we put together here, from tracking people in the Hub. The dataset consists of two 15-minute sequences. The first sequence, called SU2-L has low-density crowds, and the second sequence, SU2-H, has higher crowd density crowd. Each sequence is broken into a series of short 20 second clips. All people in the middle frame of each clip were detected and tracked by human volunteers to collect ground truth trajectories for that clip. Figure 1: Sample ground truth trajectories of pedestrians tracked in the PSU Hub building. Left: from clip 50 of SU2-L (low density sequence). Right: Clip 20 of SU2-H (high density sequence). http://www.cse.psu.edu/~rcollins/cse586/hubtrajectories.zip - Hub trajectory data I ve supplied a function read_traj_block.m that reads in the trajectories for the people in each clip. See the comments at top of that file for more information. The routine returns arrays of X,Y coordinates for the trajectories of all people in the clip. Since the human volunteers only clicked on each person s location every 10 frames over the 20 second clip, there are 61 points for each trajectory. The X,Y locations are set to -1 for sampled frames where that person was not visible, otherwise they will be a positive numbers representing col and row in a top-down view (look at how the trajectories are displayed in read_traj_block.m for more details). Also returned in a third array are ID numbers for each person. Project idea 4: (Kalman Filter) As part of the VS-PETS 2003 workshop, some nice people hand-labeled 2500 video frames of a soccer sequence by drawing boxes around each person in every frame. There are 37,444 labeled boxes! This ground-truth box data is nice because they provide the raw observation or measurement data for a Kalman filter tracker, without having to get our hands dirty with detecting blobs in the raw image. So another project idea is to pick a box at random from this dataset, and start trying to track it from frame to frame, using a Kalman filter tracker. Recall that Kalman filters

have the same graphical model structure as HMMs, but they work with continuous variables and only Gaussian probabilities. Greg Welch has a web site devoted to Kalman filter resources http://www.cs.unc.edu/~welch/kalman/, including tutorials, slides, tools, etc. Also note that Kevin Murphy (again) has a Kalman filter matlab toolbox, at http://www.cs.ubc.ca/~murphyk/software/kalman/kalman_download.html. Some design decisions you need to make to use a Kalman filter are what the state space should be (just x,y centroid of the box, or also width and height, or also include velocity on each of those terms, or ) and what the motion model should be (constant position plus noise, constant velocity plus noise, constant acceleration plus noise, or ). Another decision is how to decide which box in frame k+1 is the measurement that corresponds to your target. This is a data association task. A simple approach is to try to take the box that has a state vector closest to your motion-predicted state in frame k+1, taking into account the uncertainty in your prediction (it s covariance). I have written some sample code to show how to read the box data and figure out what boxes are in each frame, as well as where and what size they are. This picture is produced by the sample code: http://www.cse.psu.edu/~rcollins/cse598b/datasets/soccerboxes.mat - the box data http://www.cse.psu.edu/~rcollins/cse598b/datasets/soccerboxesusage.m - sample code http://www.cse.psu.edu/~rcollins/cse598b/datasets/genfilename.m - helper function http://www.cse.psu.edu/~rcollins/cse598b/datasets/soccer.zip - all the image data (big) Project idea 5: (Quasi-Monte Carlo) Recall that Monte Carlo integration is a numerical integration method that works by generating uniform random numbers in a volume that encloses the function you are trying to integrate, and then estimates the integral as being proportional to the percentage of point samples falling within your function times the area of the outer volume you are generating the samples in. It turns out that you can generate

even better (lower-variance) estimates if you use something called quasi-random numbers rather than regular pseudo-random numbers that most languages give. Suppose you generate a set of 3000 pseudo-random 2D points using Matlab's rand function, and plot them as shown in Figure3a. Although the pseudo-random numbers are uniformly distributed, they will tend to form clusters and gaps, as can be seen in the figure. Figure3b shows the same number of points, but generated by the quasi-random Sobol generator. It looks much different! Indeed, the points seem to form a smooth texture that fills the whole space much more evenly. To make clear the correlated, texture-like nature of Sobol points, Figure3c shows a picture containing only a 1000 point samples. The pattern formed from the points looks like a regular lattice, which it pretty much is. Quasi-random number generators work in a coarse-to-fine manner, appearing to first fill space coarsely with a correlated pattern, then going back to fill in remaining gaps again and again at progressively finer scales. Figure 3: (a) 3000 points from a pseudo-random number generator. Note the clustering and gaps. (b) 3000 points from the Sobol quasi-random number generator, which fills space more evenly. (c) 1000 points from the Sobol generator, clearly displaying the lattice-like structure of the point generation process. One project idea then, is to implement Monte Carlo Integration using pseudorandom numbers, and also using quasi-random numbers, and compare the results for some functions that you know the analytic answer for. You would want to compare for different numbers of sample points, and over many independent runs, so that you could empirically compare the variance in the estimates, for different numbers of points N. For more on quasi-random Monte-Carlo integration, see the page http://www.puc-rio.br/marco.ind/quasi_mc.html (also there are pages on quasi-monte Carlo at wiki and wolfram mathworld). An implementation of one kind of quasi-random point generator can be found at http://people.sc.fsu.edu/~jburkardt/m_src/sobol/sobol.html.

Project idea 6: (Sampling-based Graphical Model Inference) We ve seen how to use belief propagation to estimate either the marginal distribution or expected value of a variable (node) within a graphical model. We should be able to do the same thing with random sampling methods. The idea is to simulate many different likely configurations of variable values in the graphical model, and estimate the marginal or expected value using those configurations (this is basically a process of numeric integration via Monte Carlo). Do do the simulation within the graph-structured model, we use something called ancestral sampling. Here is what Chris Bishop has to say about ancestral sampling in his PRML book So one project idea is to define a directed graphical model, perhaps having either a chain or tree structure (so that belief propagation yields exact solutions for the marginal using sum-product algorithm), and compute marginals for various nodes using BP, and also using ancestral sampling / monte carlo integration, and compare the results. If you are ambitious, you could also try computing MAP estimates using BP and using sampling (a MAP estimate computed by sampling is formed simply by remembering the sampled configuration that yields the highest joint probability seen so far super easy!).