I need some software that will be used to process video and count people as they enter and exit a train or bus. The software must account for changing light conditions and be able to determine the difference between passengers and luggage. The software must be more than 90% accurate in order to be acceptable.
The software must provide the following interface:
- A get/set property that will start and stop the counting.
- A get/set property for the number of people that ENTERD since counting started.
- A get/set property for the number of people that EXITED since counting started.
- A get/set property that will indicate when the door is open or closed.
- An interface to a video feed (the video requirements will be provided by the developer and should include size, format, frames per second, etc...) The developer will also specify calibration properties and methods.
- A method to return the current frame of video (this will rarely be used).
The camera will be mounted INSIDE the vehicle directly above the door (this could be at various heights). The area near the door should not have any people standing when the vehicle is in motion (but there is a possibility that someone will violate the rules). The developer should also account for some possible vibrations from the vehicle while people are entering and exiting.
The developer will have some influence on the processor requirements (CPU, Memory, OS), however, these should be mainstream and should use the least amount of processing power possible.
The source code provided will not violate any copyrights or patents, be royalty free and will not require any licensing of third party software.
The software should be fully tested using the following scenarios:
- One person entering and exiting.
- Two people entering and exiting together.
- One person entering while another person is exiting.
- One person enters but exits before fully entering.
- A stream of people entering.
- A stream of people exiting.
- A stream of people entering while another stream of people are exiting.
Each of the scenarios should be tested with the following additional conditions:
- One or more people are carrying luggage.
- Different light conditions including day, night and moving shadows cast from other passengers.
- Passengers with different clothing styles and colors.
- When the door is opening and closing (this could be a sliding or folding door).
- If an infrared device is chosen, it must be tested during operating conditions to ensure that non-people heat sources do not interfere.
The developer will be responsible for gathering video feeds for testing purposes.
Items due at closing:
- Fully tested, functional and error free source code.
- Source code comments including a description of how the source code operates.
- Video requirments including calibration process and techniques.
- CPU, OS and memory requirements.
- Testing artifacts used and documents to support the minimum 90% accuracy.