Inspiration

After hearing about the NJ Transit Innovation team, our group was inspired to tackle an issue faced by NJ Transit. We found the problem of arrival and departure times combined with counting the number of passengers entering and leaving the train interesting, and were inspired to take on the challenge.

What it does

Using facial tracking, our program is able to increment and decrement the amount of people on the train based on the direction they are walking. Using this information, we estimate how long each person takes to get on and how many passengers on the train (currently commented but can be uncommented to see in the output.txt file), and use this to create a new data set that tells us:

  1. How many passengers are currently on the train.
  2. The estimated wait time between arrival and departure.
  3. The adjusted arrival and departure times based on each route. ## How we built it Using a mix of VSCode and Replit, our team split up our code into smaller segments that we could each tackle. One team member worked on the front-end aspects of the website, one worked on facial tracking, and the others worked on updating the data.

How to test the facial tracking

To test the tracking, install opencv. Then when running the program, position yourself in the middle and ensure that you have a clear background since it randomly detects non-people as people. Then to test the counter, you would move up (closer to the camera) would count as a person walking into the train, and moving down (away from the camera) would count as a person walking away from the train. Normally this would be positioned over a door and angled down (roughly at 80-85 degrees).

Challenges we ran into

We ran into trouble figuring out how to segment the data and differentiate each route from one another, as the departure times of a train in route 1 would not affect the arrival times of a train in route 2. Determining these logistics and learning new syntax along the way was ultimately our greatest challenge.

Accomplishments that we're proud of

We are very proud of how the website turned out, as well as just how much coding we got done in just a short span of time. For having two absolute beginners on the team, we really learned a lot and stepped up to create something that we feel confident in.

What we learned

We learned how to work as a team in programming, about NJ Transit's data collection, and new syntax.

What's next for NJ Transit Estimate Wait Times

We would like to add to our website with maps and a more user-friendly interface. We are happy with what we have now, but it can definitely been improved upon in the future.

Additional Works that didn't have time to be added to website

An experimental openSeat identification program which scans to see if an open seat on the train is empty or being used by either a person or an object. It uses a very limited dataset that was compiled using images on google.

Share this project:

Updates