How the select the representative frame when detecting vehicles
I can not give you a full approach, but I might have an interesting suggestion. As soon as you detect a vehicle, start tracking it.

For every detection, you could "remember" the first and last frame of the video where you tracked that vehicle. You associate every vehicle detection with a series of consecutive frames. The beginning frame would be the one when the detection was made, and the ending would be the first frame when the tracking algorithm fails.

Then, you could select only a single frame for every distinct vehicle you tracked during your video sequence, with more or less simple approaches:


select the middle frame of the tracking sequence, as there is a high chance that in the middle of the tracking, the vehicle was well visible
do matching between several points in the sequence, or just base your decision on the number of features you can still track at a certain frame:  selecting a frame with a large number of trackable/matchable features is probably a good choice
remember the "quality" of your detection for every frame in the sequence, and select the frame where the detection quality was the best
depending on the preferences, be mindful to either select one representative frame if the sequences for two vehicles overlap, or purposefully select different frames (possibly from non-overlapping parts of the sequences).