*** Right now, I can show you demos of my OpenCV C++ counters, counting vehicle traffic. ***
I have completed many OpenCV C++ counting projects, and already have a robust frame-work for counting. My existing counting systems can count many different ways, using different techniques (optical flow, or blob tracking) as conditions (camera angle, view, resolution, frame rate, lighting) can vary greatly. My counter compiles in C++ in linux and Windows VC++, with C# API also.
What I do not have at this time, is built-in classification of the moving objects that are counted. So, that classification of the type of vehicle would be the big push for the project for me.
Q: How many categories of vehicles do you have? What kind of camera views will you have, what kind of frame rate, and resolution?
Here is the first 20 lines of the command-line help for my counter (linux version):
Use the object-counting computer vision library to count moving objects.
Set up a counting gate (default: a vertical gate, 1/2 way across), and
count objects crossing it, both ways.
Input is from camera, or a movie (using ffmpeg) or
frame file names, one to a line, from stdin (the default).
count_moving_objects [options]
[options]
input
--video-device n, -v n use video dev n
--video-size r:c, -Z r:c set video capture frame size to rows:cols
--video-url url video url or file as input (cv::VideoCapture)
[170+ more lines just for the command-line help...]