Video-based transportation data collection

De Transport

Methods for detection and tracking of road users

Software Development

Because I am relying on OpenCV for computer vision functionality, and because C++ is fast, the previous software was written in C++. For the same reasons, the core most computationally intensive functions should be written in C++ (although the python wrappers are more and more usable). The most up to date documentation is at http://opencv.itseez.com.

The platform of choice for development is Linux (e.g. the Ubuntu distribution). I would like to have the code cross-platform, ie the C++ should compile at least under Windows and Linux, which is not too difficult if using the right tools (g++, make or CMake).

I am If you are not familiar with any of the following topic, please read more:

dedicated to developing quality software that can be easily maintained over the long term.

- C++ The faq lite is a great resource http://www.parashift.com/c++-faq-lite/ I recommend the use of smart pointers for ease of memory management (avoiding memory leaks in a program meant to process hours of video without crashing is essential) See Boost shared pointers http://www.boost.org/doc/libs/1_46_1/libs/smart_ptr/smart_ptr.htm

- Version Control: I refuse to work in teams without software version control. I use mercurial which has a fairly low barrier to entry and good documentation. http://mercurial.selenic.com/

- Test-driven development: writing tests takes a bit more time when developing, but helps in testing and ensures that the software still matches its specifications when refactoring later. I have used the Boost test library and it does the job http://www.boost.org/doc/libs/1_47_0/libs/test/doc/html/index.html, Google test is getting famous and is used in OpenCV.

  • Computer vision algorithms: see above

- Python is nice for visualization, and the binding to OpenCV seem now pretty robust (less important)

I would like to make use of a project I supervised in the Google Summer of Code 2010 on a library for trajectory management, with I/O functions and a lot of distances implemented (https://bitbucket.org/trajectories/trajectorymanagementandanalysis). I also have a preliminary open source project at https://bitbucket.org/Nicolas/trafficintelligence/wiki/Home, but it has very little in computer vision.


Installation

Resources