Tracking moving objects in a video is a two-step problem. First you have to identify which pixels belong to the thing you are tracking. Second you have to determine the mapping between objects in consecutive frames. If the image is high contrast and the objects are well separated and slow moving relative to the frame rate, the problem is fairly easy.
In this project, everything was wrong. The cells were faintly visible and packed onto one another. With a little patience and the SciPy package scikit-image, it is possible to separate them.
The next problem was the object speed relative to frame rate. However, most of the motion was bulk motion so if we subtracted off the average motion, the problem suddenly simplified.
This allowed us to generate statistics on the cell motion by running a single Python script.