Vehicle segmentation and tracking
Alas, optical flow is a difficult problem too ;-)

Well, to be more constructive, here are a few algorithms that should be worth trying (or have been tried on this particular sequence) :


re-train your bags of features on a databse of vehicles more representative (in size and orientation) to your actual problem in order to obtain better results
use the fact that the ground is a flat plane to do some parametric optical flow (search for an affine flow) or to compute some affine registration between the frames of the sequence. The moving vehicles will then be outlier from this dominant motion
use some optical flow algorithm to compute the flow, then try to classifiy / cluster the optical flow vectors (this is still a widely open problem!). Depending on the language you use, you can use OpenCV's optical flow, the one from TU Graz, D. Sun's optical flow, or even mine ;-). Note however that segmenting the flow will be a non-trivial task that you should probably do in two steps: global (dominant) motion etsimation, then small motion detection.