User:Fasih
From Atemuri
Ahmed Fasih, OSU (http://www.ece.osu.edu/~fasiha)
email: fasih dot 1 at osu dot edu
Code
To engage in reproducible research, I will try and place as much of my code online as possible.
- User:Fasih/PGA.m Phase gradient autofocus m-function.
Progress
2007/6/19 synthetic data generator and detection of movers
So, to do:
- extend FLE synthetic SAR generator to accommodate movers using random point clouds representing targets. With some simple rotation and translation.
- implement Fienup's simple moving target detector.
- literature review on detection of moving targets.
- sic it on real data (June 25).
- feed into tracking and shoot ahead.
2007/6/11 synthetic generation of SAR phase history data
Working with the ATK/back-projection/ground-plane code and learning how it works to generate phase history data to feed into it. Next, we will generate data involving moving point scatterers, and see what we can see.
2007/5/15 Two-dimensional tracking; SAR!
Finished a simple gui application in Matlab to help the user draw 2d tracks over time and discretize them into evenly-sampled time bins.
Also extended to 2d tracking. Works really well!
Onto SAR!
- Read Lemanski thesis. How does reimaging results work with noisy velocity estimates? How badly does the image defocus?
- Image subtraction for streak detection and tracking a mover as it comes to rest. (That's when the most fingerprinting could be arranged to be done.)
- Step frequencies for radar pulses instead of linear FM chirp?
- Does Carrera talk about movers?
Looking at the SAR videos we have, it seems like you should be able to robustly tell the movers from the non-movers. Three causes of radar behavior we're interested in:
- layover (scattering centers with height)
- moving targets in scene
- street curbs?! I.e., a tophat or inverted tophat with a single scattering center that moves depending on look angle.
How exciting!
2007/4/30 Label-invariant posterior summaries
The modes of track configuration proposals are now label-invariant, i.e., the same global configuration can be visited at different iterations with different track IDs (e.g., "1213," then "6468") and will be counted as the same track assignments. This leads to usually drastically different track assignment modes than just looking at track ids.
Implementation is pretty inefficient and straightforward but works, and happens after Gibbs sampling so it does not affect run-time. I've been testing the algorithm with false alarms, and it works pretty darn well, usually either isolating or (more often) stringing together false alarms into tracks. The penalty for missed detections (Pd^(# missing points)) is helping but they still happen. This may be left to post processing, I'm unsure.
Next major todo: extend to 2d! (Easy, just time consuming. And I eventually need a tool to help make 2d tracks in time.)
2007/4/20 Kalman caching completed
Tracker now caches Kalman forward and backward filtering results and updates them when detections are reassigned, and synthesizes smoothed means and covariances when computing likelihoods for proposal draws. The application now runs at O(m*g), for m detections and g iterations, realizing major time savings.
(The cached proto-estimates are stored in cell arrays so there is (potentially significant) overhead, but profiling indicates that the operations involving fetches and stores account for less than 20% of runtime (~1 second for a 5.5 second run) so I'm not bothered by that right now.)
Main addition to todo list: I definitely need better proposal density evaluation than picking the modes of total track configurations because individual tracks reappear under different track identifications at various times during runtime. Eep!
2007/4/11: single-point Kalman smoother
The Kalman smoother can be simplified for our applications: we do not need the complete smoothed trajectory, only at one point.
I wrote my own implementation of the Kalman smoother, using Brown/Hwang's Introduction to random signals and applied Kalman filtering (1997) and their description of the Fraser-Potter forward-backward filter structure, and realized upwards of 50% better performance over Murphy's implementation for computing complete track trajectories (1.7x). On the whole, my single-point Kalman smoother yields a 5.8x speed boost for the complete Gibbs sampler tracker.
The Gibbs sampler still grows at (m^2)*g, for m detections and g iterations, but the 0.17*(m^2)*g should help! Next, I need to think about smart ways of caching the Kalman filter runs. Remaining to-do items stand.
Fasih 02:36, 8 April 2007 (EDT)
Accomplished today
- noted that the algorithm runtime grows as m^2, for the number of detections. The Kalman smoother component must be streamlined to avoid this, I want a stable growth w.r.t. m.
- introduced false alarms, and realize that I...
- ...need to introduce a penalty for missed detections. Then it won't (hopefully) string together false alarms as tracks.
- holistic mode-finding: find the configurations of all tracks that were most often visited by the chain. Noted that for at least one run, with false alarms, one configuration was visited much more often than the rest (150 times compared to 100 times, the runner up). This is good!
So, todo:
- Penalty for missed detections
- Enable multiple detections
- Ashokaraj, et al., (in IEEE Proc. Sensors, 2002) solve the multi-sensor fusion problem by simply picking the sensor which provided lower residual error... This seems shady.
- Speed up Kalman smoother process: can we create a one-shot batch-mode Kalman filter (instead of a recursive one)?
- Extend to 2d
- Complete a Matlab track-paintbrush drawing tool
- Enable inferences on target birth rate parameter α
(saved as "With variable number of targets!.zip")
Reading list
SAR
- Jao papers
- Chris Lemanski's thesis
Tracking
- Emily Fox, Asimlomar 2006.
- Kastella, Hero, et al., particle filtering and tracking.
- Khan, et al., Efficient particle filter-based tracking of multiple interacting targets using an MRF-based motion model. IEEE/RSJ International Conference on Intelligent Robots and Systems, 2003 (IROS 2003).
Basic graphical models, Markov random fields, learning, inference
- Heckerman, D., A tutorial on learning with Bayesian networks. In Learning in Graphical Models, M. Jordan, ed.. MIT Press, Cambridge, MA, 1999. link
- Butine, Wray, A Guide to the Literature on Learning Probabilistic Networks From Data. IEEE transactions On Knowledge and Data Engineering 1996. link
- Paul J. Krause, Learning Probabilistic Networks, The Knowledge Engineering Review, Volume 13, Issue 4 (February 1999). link
- POMDPs for Dummies link
- Edwards, Introduction to graphical models. 1995.
- Xiang, Probabilistic reasoning in multiagent systems. 2002.
Some resources from UMD's Graphical Models Reading Group, 2003
- Graphical Models for Machine Learning and Digital Communication, by Brendan J. Frey. 1998.
- McEliece, et al., "Turbo decoding as an instance of Pearl's 'belief propagation' algorithm," IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 16, NO. 2, FEBRUARY 1998, pp. 140-152.
- Ihler, Fisher, Willsky, "Nonparametric hypothesis tests for statistical dependency," IEEE TRANSACTIONS ON SIGNAL PROCESSING, VOL. 52, NO. 8, AUGUST 2004, pp. 2234-2249.
- Chris Hans (OSU Stats prof), et al., "Stochastic Computation For Gaussian Graphical Models," paper and software: http://xpress.isds.duke.edu:8080/softwarelinks/ggm.html
- Learning in Graphical Models, M. Jordan, ed.. MIT Press, Cambridge, MA, 1999.
- Nir Friedman's tutorials including ones on system biology (ICSB 2004: Tutorial on Graphical Models in Systems Biology): http://www.cs.huji.ac.il/~nirf/tutorials.html
- Many of Judea Pearl's papers and essays on causality and graphical models: http://bayes.cs.ucla.edu/csl_papers.html
Applied statistics, machine learning, information theory
- Probabilistic Robotics, by Sebastian Thrun, Wolfram Burgard, and Dieter Fox. 2005.
- An introduction to information theory : symbols, signals, and noise / John R Pierce. 2nd ed., 1980.
- Robert, Casella, Monte Carlo statistical methods. 1999.
- Variational Bayesian filtering
- Relevance vector machines
Stanford has a set of courses centered around data mining: http://scpd.stanford.edu/scpd/programs/certs/statistics.htm.
- R. Neal, Suppressing Random Walks in Markov Chain Monte Carlo Using Ordered Overrelaxation. http://www.cs.toronto.edu/~radford/over.abstract.html Discusses a better way to Gibbs+Metropolis. Should be worth checking out.
- M. Isard, the "Condensation" algorithm (fancy particle filtering?) http://www.robots.ox.ac.uk/%7Emisard/condensation.html I love the movies!!!
- Kailath, Sayed, Hassibi, Linear Estimation. Hopefully will be useful in creating optimized batch Kalman filters and smoothers.
- A tutorial on Bayesian statistics for non-statisticians is remarkably light on jargon: http://www.stat.osu.edu/~sses/ice_tutorial.html (Dr Calder is this group's assistant director!)
MPI and multi-core processor programming
I want to learn how to better utilize our multi-core PC technologies as well as cutting-edge multi-core machines such as the IBM Cell processor in the Sony Playstation 3.
- MPI resources and laboratories http://www.osc.edu/hpc/training/ -> Introduction to MPI (self-paced course using WebCT)
- IBM's Cell SDK http://www.alphaworks.ibm.com/topics/cell
- Bader at GATech was selected by STI to be a center of excellence. A one-day workshop with streaming video is at http://www-static.cc.gatech.edu/~bader/CellProgramming.html
- GPGPU?
- M.D. Mccool, "Signal Processing and General-Purpose Computing and GPUs," Signal Processing Magazine, IEEE, vol. 24, issue 3, 2007.
- D. Luebke, G. Humphreys, "How GPUs Work," (IEEE) Computer, vol. 40 , issue 2, Feb. 2007.
- Radar processing with the Cell BE: http://www.radar2007.org/Tutorial8_lundgren.htm
- Buttari, et al., "SCOP3: A Rough Guide to Scientific Computing On the PlayStation 3," technical report, http://www.netlib.org/utk/people/JackDongarra/PAPERS/scop3.pdf
Sandbox
Linky: Media:Example.zip
