Jonathan’s Status Report – 3/26/2022

This week I worked on further honing the object detection and tracking schema.

I utilized the MOG2 background subtractor algorithm which dynamically subtracts background layers to mask out moving vehicles. Shown below is a screenshot of this in practice. Using MOG2 works very well for our raw footage because the traffic light camera footage is from a fixed POV and the background is generally not changing. Additionally, We plan on using the masked image below to detect motion and then we plan on using the colored image (as it contains more data) to create the bounding boxes.

I have also made changes to how we detect / track our bounding boxes. This algorithm shown above will detect the vehicles but I am currently working on implementing a CSRT algorithm for tracking  vehicles and using the colored image.

Goran Goran’s Status Report – 3/26/22

For this week our group focused on the implementation of many of the ideas that we have previously been talking about. I focused on finally making use of the HERE Api system to actually achieve dynamic rerouting. I was able to get to the point where I can create a live server hosting the map data, which when given an origin, destination, and an intersection to avoid it will provide us with different sorts of routes that a car can take through traffic. In the future I hope to add more user functionality onto the server for the crash detection, as well as provide constantly updating simulation data for the operator. Just so that the operator will be aware of how traffic is flowing and the general trends that exist. There’s no point in rerouting if it just ends up causing even more delays in the long term.

Pre crash on fifth:

 

 

 

 

Post Crash on fifth:

Arvind Status Report 3/26/2022

This week I have primarily been working on the crash detection algorithm .I’ve gotten it working to the point where we having boundary outlines of the moving objects in frame. Here’s an example below:

These cars are moving in parallel. There’s an example of a crash I put in the team status report.

The thing we need to fine tune is when we decide overlap of these boundaries are indeed a crash. What we are trying to do right now is using directions. When I detect overlap, i go back a few frames and track the movement of the object. This gives us a direction vector. If the two objects that are overlapping have similar i.e. parallel direction vectors then they are probably just next to each other in lane and it’s not a crash. If they are travelling in opposite directions i.e. perpendicular then we classify it as a crash. I think there’s still some fine tuning to do however in terms of leeway and getting the exact metrics right in terms of how much overlap and how perpendicular of an angle we require to classify a crash.

 

Overall we are a bit behind schedule, but we aim to catch up by the interim demo. I certainly want to get this working more robustly by then, and work with my team members to effectively interface with the other major part of our project which is the crash detection module.

Team Status Update 3/26/2022

This week as a group, we have primarily been focusing on two areas- learning and reflecting about engineering ethics and how it pertains to our project, as well as continuing to work on our project.

In terms of ethics, we think some of the more pertinent issues are how our traffic system could disrupt current social norms and lead to more dangerours outcomes in the long term. For example, if a crash is not detected, and people assume the automatic system would just work, they may not call the cops themselves as the status quo solution. Another pertinent issue is that of malicious surveillance as we are dealing with cameras that are used to track vehicles and other moving objects (including people).

 

In terms of the project, we have made progress in both crash detection and rerouting, In crash detection we have been able to get outlines of the moving objects in frame, and are able to see when they overlap. We just need to keep track of the direction of movement to figure out if the vehicles are close together due to being on a collision course or they are just close together driving in two lanes in parallel directions. 

 

In terms of rerouting, we have a functioning system that efficiently reroutes given intersection location data. It is fully functional for up to 20 intersections. We are now also working on combining the different aspects of our project together,

Arvind status report 3/19/22

This week I’ve been thinking and brainstorming different ethics concerns of our project and how we may be able to counter it. Since we have a project that involves a camera, the main item of concern for me is the idea of a surveillance state. There is also the issue of someone with malicious intent hacking our system and rerouting traffic or specific vehicles into bad situations or causing unnecessary harm.

I think there are two simple fixes. For the issue of a surveillance state we make sure that the only part of a camera feed that is ever stored or used for further processing is the parts of the video involved with a car crash. Therefore, this is a basic prevention against using any video not involved in crash detection as it is not stored from the live feed and immediately discarded. As for the malicious intent, one easy way to safeguard against misuse is that every time any rerouting suggestion is pushed out, we re check to make sure there was in fact an improvement in traffic flow according to our traffic rerouting algorithm. If some suggestion is in fact making the situation worse or not helping, we can shut the system down immediately. Of course, this is not to say that these are very fail safe procedures or anything like that. Making our system truly secure could be a semester long task of its own, however I think this week’s focus on ethics has made us consider ethics and we have thought out some rudimentary first step ways to counter ethics issues in our system.

Jonathan’s Status Report – 3/19/2022

This week I worked more on using the contour map Arvind created to detect crashes. Currently I am using the contour map to draw rectangles around vehicles and map them on a plane to identify relative velocity / relative direction.

The current contour map we are using is essentially a pickle file where each index represents each frame. Within each index, there is are multiple arrays. Each array holds contour edges which combined create the object contour as shown below:

Notably during this integration step, we have been running into issues with our current algorithm for detecting moving vehicles. This has stalled progress on my side. For example, when multiple vehicles are in close proximity. The contours overlap and become one. This has become an issue when we tried testing our collision algorithm.

We plan to address this by exploring other algorithms for object tracking. We we still utilize the motion detecting algorithm that we have established.

 

 

Goran’s Status Report – 3/19/22

For this week our group tried to get back into the groove of work following our Design Review and spring break. Right before spring break I realized that it became necessary to fully pivot away from the Spatial Network Analysis route for rerouting. We had not really nailed down our definition of what rerouting was until now, previously I believed putting the responsibility on users to go to a specific website to get rerouting information was too placing too much faith in them, but I now realize that is necessary. Planning on using traffic lights to control traffic was both impractical and infeasible.

Now I have been making myself familiar with and using the HERE maps API, along with the React WebApp framework. Our goal is to have the rerouting information publicly available on a web server and allow for users to insert their own locations and destinations. Given an area that a traffic light has blocked off, we can make use of the routing API to find alternate paths.