User Tools

Site Tools


cs401r_w2016:lab7

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
cs401r_w2016:lab7 [2016/02/18 05:19]
admin [Grading:]
cs401r_w2016:lab7 [2021/06/30 23:42] (current)
Line 6: Line 6:
 ====Pre-requisite:​==== ====Pre-requisite:​====
  
-You must install the python ''​skimage''​ package. ​ This can be installed via ''​conda install ​skimage''​.+You must install the python ''​skimage''​ package. ​ This can be installed via ''​conda install ​scikit-image''​.
  
 ---- ----
Line 13: Line 13:
 For this lab, you will implement the Kalman filter algorithm on two datasets. ​ Your notebook should produce two visualizations of the observations,​ the true state, the estimated state, and your estimate of the variance of your state estimates.  ​ For this lab, you will implement the Kalman filter algorithm on two datasets. ​ Your notebook should produce two visualizations of the observations,​ the true state, the estimated state, and your estimate of the variance of your state estimates.  ​
  
-For the first dataset, you will implement a simple random accelerations model and use it to track a simple target. ​ Your final visualization should look something like the following:+**For the first dataset,** you will implement a simple random accelerations model and use it to track a simple target. ​ Your final visualization should look something like the following:
  
 {{ :​cs401r_w2016:​lab7_kf.png?​direct |}} {{ :​cs401r_w2016:​lab7_kf.png?​direct |}}
  
-For the second dataset, you will use a series of '​(x,​y)'​ observations that were derived from a vision processing task.  For this dataset, you will need to set the parameters of your filter to whatever best values you can, and then show a visualization of the result. ​ The visualization of the result should consist of two parts:+**For the second dataset,** you will use a series of '​(x,​y)'​ observations that were derived from a vision processing task.  For this dataset, you will need to set the parameters of your filter to whatever best values you can, and then show a visualization of the result. ​ The visualization of the result should consist of two parts:
  
   - First, a series of frame snapshots showing the estimated position and uncertainty   - First, a series of frame snapshots showing the estimated position and uncertainty
   - Second, a plot of how the ball moved around in the field of view   - Second, a plot of how the ball moved around in the field of view
  
-Examples of both are here:+Finally, you should clearly explain in your notebook why you selected the parameters you did. 
 + 
 +Examples of both visualizations ​are here:
  
 {{ :​cs401r_w2016:​lab7_ball.png?​direct |}} {{ :​cs401r_w2016:​lab7_ball.png?​direct |}}
Line 43: Line 45:
 For the first dataset, you will perform simple target tracking using the random accelerations model. ​ You should use the equations given in Lecture 17.  The data can be found here: For the first dataset, you will perform simple target tracking using the random accelerations model. ​ You should use the equations given in Lecture 17.  The data can be found here:
  
-[[http://hatch.cs.byu.edu/courses/stat_ml/​kfdata.mat|Simple target tracking data]]+[[https://www.dropbox.com/s/11fgx6e5atfv3zy/kfdata.mat?dl=0|Simple target tracking data]]
  
 There are two arrays in this .mat file: ''​data''​ contains the actual (noisy) observations at each timestep, while ''​true_data''​ contains the true x,y coordinates at each timestep. ​ Note that your kalman filter should only use the noisy observations;​ the true x,y coordinates are only given for visualization purposes. There are two arrays in this .mat file: ''​data''​ contains the actual (noisy) observations at each timestep, while ''​true_data''​ contains the true x,y coordinates at each timestep. ​ Note that your kalman filter should only use the noisy observations;​ the true x,y coordinates are only given for visualization purposes.
Line 90: Line 92:
 The dataset is derived from a sequence of images, which can be downloaded here: The dataset is derived from a sequence of images, which can be downloaded here:
  
-[[http://hatch.cs.byu.edu/courses/stat_ml/​ball_data.mat|Ball data]]+[[https://www.dropbox.com/s/1x7jtg162upc3o9/​ball_data.mat?dl=0|Ball data]]
  
 The data is a sequence of images of a ball rolling across a camera'​s field of view.  We'd like to implement a tracker for the ball, but there'​s no way we can cope with images in the framework of the Kalman filter. ​ Instead, we'll do a brief pre-processing step: we'll use template matching to search for the ball in each frame of video, and record the best ''​(x,​y)''​ position of the template match. The data is a sequence of images of a ball rolling across a camera'​s field of view.  We'd like to implement a tracker for the ball, but there'​s no way we can cope with images in the framework of the Kalman filter. ​ Instead, we'll do a brief pre-processing step: we'll use template matching to search for the ball in each frame of video, and record the best ''​(x,​y)''​ position of the template match.
Line 136: Line 138:
  
 # assumes that "​mus"​ contains a list of Gaussian means, and that "​covs"​ is a list of Gaussian covariances # assumes that "​mus"​ contains a list of Gaussian means, and that "​covs"​ is a list of Gaussian covariances
 +# also assumes you are running in Jupyter Notebook
 +
 +from IPython.display import clear_output
 +
  
 for t in range(0, data.shape[0]):​ for t in range(0, data.shape[0]):​
Line 152: Line 158:
     plt.xlim([1,​ 360])     plt.xlim([1,​ 360])
     plt.ylim([243,​1])     plt.ylim([243,​1])
-    ​+    ​clear_output(wait = True) 
     plt.pause(0.01)     plt.pause(0.01)
  
 </​code>​ </​code>​
cs401r_w2016/lab7.1455772787.txt.gz · Last modified: 2021/06/30 23:40 (external edit)