Every year, 34,000 individuals die due to bicycle and motorcycle accidents, and this number does not even take non-fatal accidents into account. Many of these accidents are a result of poor rear and side-view visibility: bikers have no idea of vehicles that are approaching in the lanes behind them. To take a look behind, bikers have to take their eyes off the road ahead -- a huge concern when driving right next to vehicles several thousand pounds heavier than them. So we set out to build Proxi, a proximity alert system that strives to equip bikers with the necessary technology to avoid dangerous incidents and stay informed on the road.
What it does
Proxi provides a “third eye” to bikers. Using cameras mounted to the back of bikes, Proxi utilizes machine learning and computer vision algorithms to detect where vehicles are (vectorized properties denoting distance, direction, and speed) in reference to the biker, determines if vehicles are within the warning zone, and informes the biker through a handlebar mounted LED light unit. The proximity of the approaching vehicle is conveyed through the intensity of the LED’s. For example, if there is a car approaching quickly to the left of a vehicle and a truck further back directly behind the vehicle, the left indicator lights will warn the rider with full intensity while the rear indicator lights will only dimly light up as a notification.
The data analyzed by each Proxi unit to alert its biker is also utilized to improve the safety of the biking community as a whole. Dangerous events are identified by each Proxi unit, tagged with GPS data, and sent to the cloud. An online heatmap then uses this data to inform the public as to which routes are traditionally the most dangerous for bikers.
How we built it
We used deep convolutional neural networks and OpenCV to accurately classify cars and their locations in an image. A combination of stereo-camera and machine learning algorithms was utilized to create an accurate depth map of the video stream and determine how far away the cars are. A custom Arduino-driven LED notification unit was designed and prototyped to easily convey alerts to the biker.
Lastly, we designed a our own danger-detection algorithm to identify heatmap-reportable incidents and then use an AWS database to store these incidents and relevant metadata. Google Cloud Platform was utilized to create the heat map that visualizes accident prone locations.
Challenges we ran into
One of the biggest challenges we ran into was making a real-time system without visible delay -- running image frames through a deep convolutional neural network and constantly classifying images at 30 fps requires heavy computational power. However, using multithreading techniques and scaling camera resolution down we were able to optimize our code to run efficiently. Dependency issues in hardware also proved to be difficult, as many of the libraries we used weren’t available as precompiled binaries, and compilation would take hours. The accuracy of the proximity detection algorithm also proved to be a challenge when working with high-speed vehicles; we had to experiment with many different algorithms and constantly fine-tune heuristics and filtering parameters.
Accomplishments that we're proud of
We are proud of having developed an end-to-end, software and hardware solution to successfully reduce the dangers that bikers face everyday. We are also proud of the multitude of proximity algorithms we produced through iteration and research, and of the fact that Karthik’s soldering work on the LED box hasn’t resulted in a fire yet.
What we learned
Because we did a hardware hack, we learned a great deal about interfacing and integrating various components with software. We also enjoyed learning about cutting-edge image processing and machine learning techniques, especially in real-time environments.
What's next for Proxi
In the future, we would like to invest and incorporate cameras with greater angles of vision to cover more area behind bikers and thus reduce blind spots. Next, we will further explore the different types of data we can collect and how this data can be analyzed to further improve biker security. Finally, we can experiment with different hardware to improve computing power and efficiency.